:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#172033;background:#f3f6fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.brand-panel{background:linear-gradient(145deg,#0869ea,#14a9e8);color:#fff;padding:11vh 9vw;position:relative;overflow:hidden}.brand-panel:after{content:"";position:absolute;width:420px;height:420px;border:80px solid rgba(255,255,255,.08);border-radius:50%;right:-180px;bottom:-160px}.logo-mark{width:72px;height:72px;border-radius:20px;background:#fff;color:#0975eb;display:grid;place-items:center;font-size:36px;font-weight:800;box-shadow:0 12px 40px #00000026}.brand-panel h1{font-size:52px;margin:36px 0 10px}.brand-panel p{font-size:20px;opacity:.85}.brand-feature{margin-top:120px;font-size:18px;letter-spacing:3px}.login-card{padding:12vh 9vw;display:flex;flex-direction:column;gap:25px}.eyebrow{font-size:12px;letter-spacing:2px;color:#1777ed;font-weight:700}.login-card h2{font-size:34px;margin:10px 0}.muted,.hint{color:#7c879c}.hint{font-size:12px}.demo-users{display:flex;flex-wrap:wrap;gap:8px}.demo-users button{padding:8px 13px;border-radius:8px;background:#f0f3f8;color:#556178}.demo-users button.selected{background:#e4f0ff;color:#0869ea}.login-card form{display:flex;flex-direction:column;gap:15px}label{font-size:13px;color:#667085;display:flex;flex-direction:column;gap:7px}input,select{border:1px solid #dbe1eb;border-radius:9px;padding:11px 12px;background:#fff;color:#1c2637;outline:none}input:focus,select:focus{border-color:#1682ed;box-shadow:0 0 0 3px #1682ed1a}.primary{background:#1178ed!important;color:#fff!important;padding:11px 18px;border-radius:9px;font-weight:650}.wide{width:100%;padding:13px}.error,.toast{background:#fff0f0;color:#bd2727;border-radius:8px;padding:10px 12px}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}aside{background:#0d2346;color:#fff;padding:24px 14px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.logo-mark.small{width:42px;height:42px;border-radius:11px;font-size:22px}.side-brand b{display:block;font-size:19px}.side-brand span{font-size:11px;color:#9ab0ce}nav{display:flex;flex-direction:column;gap:6px}nav button{background:transparent;color:#b8c6da;border-radius:8px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:10px}nav button i{font-style:normal;width:25px;height:25px;border-radius:7px;background:#ffffff14;display:grid;place-items:center;font-size:12px}nav button.active{background:#1677ee;color:#fff}nav button em{margin-left:auto;background:#ff5c61;border-radius:20px;padding:2px 7px;font-style:normal;font-size:11px}.side-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 10px 0}.side-user span,.side-user small{display:block}.side-user small{color:#8fa5c1;margin-top:3px}.side-user button{background:none;color:#8fa5c1;padding:8px 0}.content{padding:30px 38px;max-width:1500px;width:100%;margin:auto}.content>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.content>header h1{margin:7px 0;font-size:28px}.content>header select{min-width:270px}.toast{margin:-10px 0 20px;cursor:pointer}.hero{background:linear-gradient(115deg,#0b65da,#159fe8);border-radius:16px;padding:28px 32px;color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 15px 35px #106fdf2e}.hero span{font-size:12px;opacity:.8}.hero h2{font-size:27px;margin:8px 0}.hero p{margin:0;opacity:.8}.hero .primary{background:#fff!important;color:#0b6fe8!important}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.stat{background:#fff;border-radius:13px;padding:21px;border-left:4px solid #8590a3;box-shadow:0 4px 15px #1c2b460d}.stat span{display:block;color:#7c8799;font-size:13px;margin-bottom:10px}.stat strong{font-size:25px}.stat.blue{border-color:#1677ee}.stat.orange{border-color:#f59a23}.stat.green{border-color:#16aa78}.panel{background:#fff;border-radius:14px;padding:22px;margin:18px 0;box-shadow:0 4px 18px #1c2b460d}.panel.attention{border:1px solid #d8e9ff;background:#f7fbff}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-title h3{margin:0 0 5px}.panel-title p{margin:0;color:#8792a5;font-size:13px}.text{background:none;color:#1477e9}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#8490a3;font-weight:500;padding:11px;border-bottom:1px solid #e8edf3}td{padding:14px 11px;border-bottom:1px solid #edf1f5}td small,td b{display:block}td small{color:#939dad;margin-top:4px}.money{font-weight:700}.badge{display:inline-block;padding:4px 9px;border-radius:20px;font-size:11px;background:#eef1f5;color:#657186}.status-draft,.status-available{background:#eef1f5;color:#657186}.status-approving,.status-pending{background:#fff3dc;color:#c8780d}.status-approved{background:#e8f3ff;color:#0874df}.status-paid,.status-reimbursed{background:#e4f8ef;color:#07845d}.status-rejected,.status-cancelled{background:#ffe9e9;color:#c43b3b}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;background:#f7f9fc;padding:18px;border-radius:11px;margin-bottom:22px}.form-grid .full{grid-column:1/-1}.actions{display:flex;flex-direction:row;gap:10px}.actions button:not(.primary){padding:10px 16px;border-radius:8px}.checkbox{flex-direction:row;align-items:center}.checkbox input{width:auto}.inline-message{padding:10px;background:#edf8f3;color:#087b57;border-radius:8px;margin-bottom:15px}.invoice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.invoice-grid article{border:1px solid #e6ebf2;border-radius:11px;padding:15px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.invoice-icon{width:40px;height:40px;border-radius:10px;background:#e9f7f1;color:#13a476;display:grid;place-items:center;font-weight:700}.invoice-grid b,.invoice-grid span,.invoice-grid small{display:block}.invoice-grid span{font-size:12px;color:#7f8a9d;margin:5px 0}.invoice-grid small.ok{color:#0a9a6b}.invoice-grid small.warn{color:#d98516}.invoice-money{text-align:right;font-weight:700}.invoice-money .badge{display:block;margin-top:7px}.approval-list{display:grid;gap:10px}.approval-list article{border:1px solid #e5eaf1;border-radius:11px;padding:16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.approval-list article:hover{border-color:#1a7bea}.approval-list h3{margin:10px 0 4px}.approval-list p{color:#8290a3;margin:0;font-size:13px}.approval-list strong{font-size:20px}.empty{text-align:center;color:#9aa5b6;padding:45px}.empty div{font-size:30px}.drawer-mask{position:fixed;inset:0;background:#08132575;z-index:20;display:flex;justify-content:flex-end}.drawer{width:min(650px,92vw);background:#fff;color:#172033;padding:0;box-shadow:-20px 0 50px #00000026}.drawer>header{padding:23px 26px;border-bottom:1px solid #e8edf3;display:flex;justify-content:space-between}.drawer>header h2{margin:7px 0 0}.drawer>header button{background:none;font-size:28px;color:#8a95a5}.drawer-body{padding:22px 26px;overflow:auto}.claim-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;background:#f5f8fc;border-radius:11px;padding:15px}.claim-summary span,.claim-summary b{display:block}.claim-summary span{color:#8792a3;font-size:12px;margin-bottom:4px}.claim-summary .big{font-size:21px;color:#0874df}.drawer-body>h3{margin-top:24px}.line-item{padding:13px 0;border-bottom:1px solid #edf1f5;display:flex;justify-content:space-between}.line-item span,.line-item small{display:block;color:#8490a3;font-size:12px;margin-top:4px}.timeline{border-left:2px solid #e5eaf1;margin-left:7px}.timeline>div{display:grid;grid-template-columns:16px 1fr auto;gap:10px;margin:14px 0 14px -9px}.timeline i{width:16px;height:16px;border-radius:50%;background:#c4ccd8;border:4px solid #fff}.timeline .done i{background:#14a779}.timeline .pending i{background:#f1a22b}.timeline span,.timeline small{display:block;color:#8a95a5;font-size:12px;margin-top:3px}.timeline em{font-style:normal;color:#1e8c6a;font-size:12px}.drawer>footer{margin-top:auto;padding:18px 26px;border-top:1px solid #e8edf3;display:flex;justify-content:flex-end;gap:10px}.drawer>footer button{padding:10px 17px;border-radius:8px}.danger{background:#fff0f0;color:#c83535}.drawer{height:100%;overflow:hidden}.drawer-body{flex:1}.drawer{display:flex}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.app-shell>aside{position:fixed;bottom:0;left:0;right:0;height:66px;z-index:10;padding:7px;display:block}.side-brand,.side-user{display:none}nav{flex-direction:row;justify-content:space-around}nav button{flex-direction:column;padding:5px 8px;font-size:10px;gap:2px}nav button i{height:22px}.content{padding:20px 15px 85px}.stats-grid{grid-template-columns:repeat(2,1fr)}.invoice-grid,.login-shell{grid-template-columns:1fr}.brand-panel{display:none}.login-card{padding:9vh 8vw}.hero{align-items:flex-start;gap:20px;flex-direction:column}.content>header{align-items:flex-start;gap:12px;flex-direction:column}.content>header select{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}@media(max-width:560px){.stats-grid{gap:9px}.stat{padding:15px}.stat strong{font-size:19px}.panel{padding:15px}.claim-summary{grid-template-columns:1fr}.drawer{width:100vw}}.payslip-list{display:grid;gap:10px}.payslip-list article{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:15px;border:1px solid #e5eaf1;border-radius:12px;padding:14px;cursor:pointer}.pay-month{width:52px;height:52px;background:#e8f3ff;color:#0874df;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:19px}.pay-month small{font-size:10px;margin-top:-12px}.payslip-list b,.payslip-list span{display:block}.payslip-list span{font-size:12px;color:#8490a3;margin-top:5px}.batch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.batch-grid article{background:#f7f9fc;border:1px solid #e8edf3;border-radius:11px;padding:16px}.batch-grid b,.batch-grid span,.batch-grid small{display:block}.batch-grid span{color:#526078;margin:9px 0}.batch-grid small{color:#929cad}.salary-hero{background:linear-gradient(120deg,#0b6ddd,#13a1e8);color:#fff;border-radius:15px;padding:25px;text-align:center}.salary-hero span,.salary-hero small{display:block;opacity:.8}.salary-hero strong{display:block;font-size:36px;margin:10px}.salary-table{margin-top:20px}.salary-table td:last-child{text-align:right;font-weight:600}.salary-table .subtotal{background:#f1f6fc}.salary-note{padding:15px;margin-top:18px;background:#fff7e7;color:#86621c;border-radius:9px}.payslip-drawer{width:min(560px,92vw)}@media(max-width:900px){.batch-grid{grid-template-columns:1fr}}@media(max-width:560px){.payslip-list article{grid-template-columns:50px 1fr}.payslip-list article>button{grid-column:1 / -1}}.invite-form{display:flex;gap:12px;align-items:end;background:#f7f9fc;border-radius:11px;padding:16px;margin-bottom:20px}.invite-form label{flex:1}.invite-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.invite-list{display:grid;gap:9px;align-content:start}.invite-list article{border:1px solid #e5eaf1;border-radius:10px;padding:13px;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.invite-list b,.invite-list span{display:block}.invite-list span{color:#8490a3;font-size:12px;margin-top:5px}.qr-preview{min-height:300px;background:#f7f9fc;border:1px dashed #cbd4e0;border-radius:12px;display:grid;place-items:center;padding:18px;text-align:center}.qr-preview img{width:min(100%,300px);background:#fff}.qr-preview p{color:#758196;font-size:13px}@media(max-width:900px){.invite-layout{grid-template-columns:1fr}.invite-form{align-items:stretch;flex-direction:column}}.notification-layout{display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start}.notification-layout .panel{margin-top:0}.notification-list{display:grid}.notification-list article{display:grid;grid-template-columns:10px 1fr auto;gap:13px;padding:16px 5px;border-bottom:1px solid #edf1f5;cursor:pointer}.notification-list article>i{width:8px;height:8px;border-radius:50%;background:#1677ee;margin-top:6px}.notification-list article.read{opacity:.62}.notification-list article.read>i{background:#c6ced8}.notification-list b{display:block}.notification-list p{margin:6px 0;color:#596579;font-size:13px}.notification-list small{color:#929dae}.notification-list article>span{color:#1677ee;font-size:11px}.preference-card form{display:grid;gap:16px}.switch-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf1f5}.switch-row input{width:18px;height:18px}@media(max-width:900px){.notification-layout{grid-template-columns:1fr}}.code-input{display:grid;grid-template-columns:1fr auto;gap:10px}.code-input button{border-radius:9px;padding:0 15px;background:#e9f2ff;color:#126fd4}.code-input button:disabled{color:#929eaf;background:#f0f2f5}.performance-hero{background:linear-gradient(120deg,#152b56,#245ca8);color:#fff;border-radius:16px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center}.performance-hero span{font-size:11px;letter-spacing:2px;opacity:.7}.performance-hero h2{margin:9px 0}.performance-hero p{margin:0;opacity:.75}.performance-actions{display:flex;gap:10px}.performance-actions button{padding:11px 16px;border-radius:9px;background:#ffffff21;color:#fff}.form-grid textarea,.stage-form textarea{border:1px solid #dbe1eb;border-radius:9px;padding:11px;resize:vertical}.form-help{margin:0;color:#7f8a9c;font-size:12px}.performance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.performance-stats>div{background:#fff;border-radius:12px;padding:18px;border-bottom:3px solid #347ee8}.performance-stats span,.performance-stats strong{display:block}.performance-stats span{color:#7f8a9c;font-size:12px}.performance-stats strong{font-size:25px;margin-top:8px}.performance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.performance-grid article{border:1px solid #e4eaf2;border-radius:12px;padding:16px;cursor:pointer}.performance-grid article:hover{border-color:#2b7eea;box-shadow:0 8px 20px #1e5ba914}.plan-top{display:flex;justify-content:space-between}.plan-top small{color:#8894a6}.performance-status{background:#edf4ff;color:#176fcf;border-radius:20px;padding:4px 9px;font-size:11px}.performance-grid h3{margin:16px 0 6px}.performance-grid p{color:#7f8b9d;font-size:12px}.plan-score{display:flex;justify-content:space-between;align-items:end;border-top:1px solid #edf1f5;padding-top:12px}.plan-score span{color:#8894a6;font-size:12px}.plan-score strong{font-size:25px;color:#156fd5}.performance-empty{text-align:center;color:#929cad;padding:50px}.performance-drawer{width:min(760px,96vw)}.performance-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#f4f7fb;border-radius:11px;padding:15px}.performance-summary span,.performance-summary b{display:block}.performance-summary span{color:#8792a3;font-size:12px}.performance-summary b{margin-top:4px}.goal-card{border:1px solid #e2e8f0;border-radius:12px;padding:15px;margin:12px 0}.goal-title{display:flex;align-items:center;gap:10px}.goal-title span{background:#eaf3ff;color:#176ecc;border-radius:6px;padding:3px 8px;font-size:11px}.goal-title h4{flex:1;margin:0}.goal-card>p{color:#748095;font-size:13px}.progress-bar{height:7px;background:#e9edf3;border-radius:10px;overflow:hidden}.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,#1677ee,#1eb2dc)}.goal-meta{display:flex;justify-content:space-between;color:#7f8b9e;font-size:12px;margin-top:8px}.goal-edit{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;background:#f7f9fc;margin-top:14px;padding:12px;border-radius:9px}.goal-edit .wide-field{grid-column:1/-1}.goal-edit button{grid-column:1/-1;padding:9px;border-radius:8px}.manager-score{margin-top:13px;max-width:180px}.stage-form{background:#f4f8fd;border-radius:11px;padding:16px;margin-top:18px;display:grid;gap:13px}.stage-form button{justify-self:end}.interview-record{background:#fff8e9;border-radius:10px;padding:15px;margin-top:18px}.interview-record p{color:#596579}.interview-record small{color:#8a7140}@media(max-width:1000px){.performance-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.performance-hero{align-items:flex-start;flex-direction:column;gap:20px}.performance-stats{grid-template-columns:repeat(2,1fr)}.performance-grid,.goal-edit{grid-template-columns:1fr}.performance-summary{grid-template-columns:1fr;gap:10px}}.org-head{background:linear-gradient(120deg,#123b47,#197082);color:#fff;border-radius:16px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center}.org-head span{font-size:11px;letter-spacing:2px;opacity:.7}.org-head h2{margin:9px 0}.org-head p{margin:0;opacity:.75}.org-head>div:last-child{display:flex;gap:10px}.org-head button{padding:11px 16px;border-radius:9px;background:#ffffff21;color:#fff}.org-tabs{display:flex;gap:8px;margin:18px 0}.org-tabs button{padding:10px 17px;border-radius:9px;background:#e8edf4;color:#667085}.org-tabs button.active{background:#1677ee;color:#fff}.org-tree{display:grid;gap:8px}.org-node{margin-left:calc(var(--depth) * 30px)}.org-node>div:first-child{display:flex;align-items:center;gap:12px;border:1px solid #e3e9f1;border-radius:10px;padding:12px;margin-bottom:8px}.org-node i{font-style:normal;width:38px;height:38px;border-radius:9px;background:#e7f4f5;color:#157081;display:grid;place-items:center;font-weight:700}.org-node span b,.org-node span small{display:block}.org-node span small{color:#8490a3;margin-top:4px}.user-search{display:flex;gap:8px}.user-search input{min-width:250px}.user-search button{border-radius:8px;padding:8px 14px}.member-status{font-size:11px;border-radius:20px;padding:4px 9px}.member-status.enabled{background:#e4f8ef;color:#07845d}.member-status.disabled{background:#ffe9e9;color:#c43b3b}.position-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.position-grid article{border:1px solid #e4eaf1;border-radius:10px;padding:15px}.position-grid b,.position-grid span,.position-grid small{display:block}.position-grid span{font-size:12px;color:#1677ee;margin:7px 0}.position-grid small{color:#8792a4}.org-drawer{width:min(670px,96vw)}.reset-card{background:#fff4f4;border-radius:10px;padding:15px;margin-top:20px}.reset-card h3{color:#a33}.reset-card>div{display:flex;gap:9px}.reset-card input{flex:1}.reset-card button{border-radius:8px;padding:8px 14px;color:#a33}@media(max-width:900px){.org-head{align-items:flex-start;flex-direction:column;gap:20px}.position-grid{grid-template-columns:1fr}.user-search input{min-width:0}.org-node{margin-left:calc(var(--depth) * 16px)}}.master-data-page{display:grid;gap:18px}.segment-tabs{display:flex;gap:8px}.segment-tabs button{padding:10px 18px;border-radius:9px;background:#edf2f8;color:#607087}.segment-tabs button.active{background:#1479ed;color:#fff}.master-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.compact-form form{display:grid;gap:14px}.project-cards{display:grid;gap:13px}.project-cards article{border:1px solid #e2e9f2;border-radius:12px;padding:16px;background:#fff}.project-cards article.inactive{opacity:.68}.project-cards header{display:flex;justify-content:space-between;gap:12px}.project-cards header b,.project-cards header small{display:block}.project-cards header small{color:#8490a3;margin-top:5px}.budget-meter{height:7px;background:#e8eef6;border-radius:10px;margin:18px 0 12px;overflow:hidden}.budget-meter span{display:block;height:100%;background:linear-gradient(90deg,#177cf0,#39bca1)}.budget-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.budget-values small,.budget-values b{display:block}.budget-values small{color:#8a96a8;margin-bottom:4px}.project-cards footer{display:flex;justify-content:flex-end;gap:14px;margin-top:13px}.company-list{display:grid;gap:11px}.company-list article{display:grid;grid-template-columns:48px 1fr auto;gap:13px;align-items:center;border:1px solid #e3e9f1;padding:14px;border-radius:12px}.company-list article.current{border-color:#2a84ed;background:#f5faff}.company-mark{width:48px;height:48px;border-radius:12px;background:#e3f0ff;color:#1479ed;display:grid;place-items:center;font-size:21px;font-weight:700}.company-list b,.company-list span,.company-list small{display:block}.company-list span,.company-list small{color:#8490a3;margin-top:4px}.company-list em{font-style:normal;color:#1479ed;font-size:12px}.rule-list{display:grid;gap:12px}.rule-list article{border:1px solid #e2e9f2;border-radius:12px;padding:16px}.rule-list article.inactive{opacity:.6}.rule-list header,.rule-list footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.rule-list header b,.rule-list header small{display:block}.rule-list header small,.rule-list footer small{color:#8793a5;margin-top:5px}.rule-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.rule-flow span{background:#edf5ff;color:#126fcf;padding:7px 10px;border-radius:8px;font-size:12px}.rule-flow i{font-style:normal;color:#9aa5b5}.amount-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:1000px){.master-grid{grid-template-columns:1fr}.compact-form{order:-1}}@media(max-width:560px){.segment-tabs{overflow-x:auto}.segment-tabs button{white-space:nowrap}.budget-values,.amount-pair{grid-template-columns:1fr}.company-list article{grid-template-columns:42px 1fr}.company-list em{grid-column:2}.company-mark{width:42px;height:42px}}
