:root{--ink:#152d3f;--muted:#6c8492;--line:#dce8ed;--teal:#0d9488;--teal-dark:#0b6e68;--nav:#102b3e;--shadow:0 18px 45px rgba(27,60,79,.10)}
*{box-sizing:border-box}html{background:#edf4f6}body{margin:0;color:var(--ink);font:15px/1.5 "Microsoft YaHei",system-ui,sans-serif;background:linear-gradient(135deg,#eff7f8 0%,#f6f9fb 45%,#edf3f7 100%);min-height:100vh}button,input{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#d9e9ef;padding:22px 14px 18px;display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:10px;padding:0 7px;color:#fff}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#28c9bb,#0d9488);box-shadow:0 8px 18px rgba(13,148,136,.27)}.brand strong{font-size:15px;display:block}.brand small{color:#8fb1be;font-size:11px;display:block;margin-top:2px}.sidebar-label{color:#83a7b6;font-size:11px;letter-spacing:.12em;padding:5px 10px 0}.module-nav{display:grid;gap:4px;overflow:auto;min-height:0}.module-nav button{border:0;border-radius:10px;background:transparent;color:#c9dde5;padding:10px 11px;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:8px}.module-nav button:hover,.module-nav button.active{background:#1c465d;color:#fff}.module-nav button.active{box-shadow:inset 3px 0 0 #3ed5c7}.module-nav .count{color:#8aabb8;font-size:12px;white-space:nowrap}.module-nav button.active .count{color:#c9f8f3}.sidebar-footer{display:none;margin-top:auto;background:#173a4e;border-radius:14px;padding:13px;color:#a9c2cc;font-size:12px;line-height:1.7}.sidebar-footer small{color:#83a9b8}.dot{display:inline-block;width:7px;height:7px;background:#43d1c0;border-radius:50%;margin-right:5px}.main-content{padding:25px 30px 40px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.eyebrow{color:var(--teal);font-size:12px;font-weight:800;letter-spacing:.08em}.topbar h1{font-size:30px;line-height:1.15;margin:6px 0 7px;letter-spacing:-.03em}.topbar p{color:var(--muted);margin:0}.topbar-actions #topAddButton{display:none}.topbar-actions{display:flex;align-items:center;gap:9px}.avatar{width:39px;height:39px;border-radius:50%;background:#d8f4f0;color:var(--teal-dark);display:grid;place-items:center;font-weight:800}.button{border:0;border-radius:10px;padding:9px 13px;white-space:nowrap}.button.ghost{background:#fff;border:1px solid var(--line);color:#355467}.button.ghost:hover{border-color:#99c8c5;color:var(--teal-dark)}.button.primary{background:var(--teal);color:#fff}.button.primary:hover{background:var(--teal-dark)}.banner{display:none;justify-content:space-between;align-items:center;gap:14px;padding:18px 21px;margin-bottom:19px;border-radius:17px;color:#fff;background:linear-gradient(100deg,#12364a,#18566d);box-shadow:var(--shadow)}.banner strong{font-size:17px}.banner span{display:block;color:#b9d8de;font-size:13px;margin-top:4px}.banner .badge{background:#ffe8b6;color:#704800;border-radius:999px;padding:7px 10px;white-space:nowrap;font-size:12px}.metrics{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:19px}.metric{background:#fff;border:1px solid rgba(220,232,237,.9);border-radius:15px;padding:15px 17px;box-shadow:0 8px 24px rgba(26,58,76,.06)}.metric-label{font-size:12px;color:var(--muted)}.metric-value{font-weight:800;font-size:24px;margin-top:4px;letter-spacing:-.04em}.metric-hint{font-size:11px;color:#8599a4;margin-top:4px}.workspace{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.workspace-head{padding:16px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:17px}.workspace-title{font-size:18px;font-weight:800}.workspace-note{font-size:12px;color:var(--muted);margin-top:3px}.toolbar{display:flex;align-items:center;gap:8px}.search-box{min-width:250px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#f8fbfc;border-radius:9px;padding:8px 10px;color:#8aa0aa}.search-box:focus-within{border-color:#73c7bf;box-shadow:0 0 0 3px #d8f5f0}.search-box input{border:0;outline:0;background:transparent;min-width:0;width:100%;color:var(--ink)}.data-table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:980px}.data-table th{background:#f8fbfc;color:#688292;font-size:12px;text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 14px;border-bottom:1px solid #edf2f4;color:#244255;vertical-align:middle}.data-table tbody tr:hover{background:#fbfefe}.name-cell{font-weight:800;color:#174e6b;max-width:330px}.sub-cell{display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:#e8f7f4;color:#08796e;font-size:12px;white-space:nowrap}.tag.warn{background:#fff4dd;color:#986300}.tag.neutral{background:#f0f3f5;color:#718792}.record-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}.link-button{border:0;background:transparent;color:#1d6fa5;padding:0;font-size:12px;cursor:pointer}.link-button:hover{text-decoration:underline}.record-link{color:#1d6fa5;text-decoration:none;font-size:12px}.record-link:hover{text-decoration:underline}.cards{display:none}.empty-state{padding:48px 25px;text-align:center;color:var(--muted)}.empty-icon{width:44px;height:44px;margin:0 auto 11px;border-radius:14px;background:#eaf6f5;color:var(--teal);display:grid;place-items:center;font-weight:800;font-size:21px}.empty-state h3{margin:0 0 7px;color:var(--ink);font-size:17px}.empty-state p{margin:0 auto 17px;max-width:560px;font-size:13px}.empty-state .button{display:inline-block}.pagination{display:flex;justify-content:center;gap:6px;padding:13px;border-top:1px solid #edf2f4}.pagination button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 9px;color:#56717f}.pagination button.active{background:var(--teal);border-color:var(--teal);color:#fff}.pagination button:disabled{opacity:.45;cursor:not-allowed}.workspace-foot span:last-child{display:none}.workspace-foot{display:flex;justify-content:space-between;padding:12px 18px;color:#7d929e;font-size:12px}.mobile-module-bar{display:none}.mobile-nav{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(14,37,50,.45);z-index:20;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.detail-modal{width:min(720px,100%);max-height:min(760px,calc(100vh - 40px));display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(10,35,48,.25);overflow:hidden}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--line)}.detail-head h2{margin:4px 0 0;font-size:21px;line-height:1.3}.icon-button{border:0;background:#f2f6f8;color:#5d7785;border-radius:9px;width:32px;height:32px;font-size:23px;line-height:1}.detail-body{overflow:auto;padding:18px 22px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.detail-item{padding:11px 12px;background:#f7fafb;border-radius:10px;min-width:0}.detail-item dt{font-size:11px;color:#7a929e;margin-bottom:3px}.detail-item dd{margin:0;color:#244255;word-break:break-word}.detail-foot{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
@media(max-width:1000px){.app-shell{grid-template-columns:220px 1fr}.main-content{padding-left:20px;padding-right:20px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body{padding-bottom:65px}.app-shell{display:block}.sidebar{display:none}.main-content{padding:15px 12px 25px}.topbar{margin-bottom:13px}.topbar h1{font-size:24px}.topbar p{font-size:12px}.topbar-actions .button{display:none}.mobile-module-bar{display:flex;gap:7px;overflow:auto;padding:0 1px 11px;scrollbar-width:none}.mobile-module-bar::-webkit-scrollbar{display:none}.mobile-module-bar button{border:1px solid var(--line);background:#fff;color:#5f7987;border-radius:999px;padding:6px 11px;font-size:12px;white-space:nowrap}.mobile-module-bar button.active{border-color:#8ed2cc;background:#e9f8f5;color:var(--teal-dark);font-weight:800}.banner{padding:14px 15px;border-radius:14px;margin-bottom:13px}.banner strong{font-size:14px}.banner span{font-size:11px;line-height:1.5}.banner .badge{font-size:10px;padding:6px 8px}.metrics{gap:8px;margin-bottom:13px}.metric{padding:11px 12px;border-radius:12px}.metric-value{font-size:19px}.metric-hint{font-size:10px}.workspace{border-radius:14px}.workspace-head{display:block;padding:13px}.workspace-title{font-size:16px}.toolbar{margin-top:10px}.search-box{min-width:0;flex:1}.toolbar .button{padding:8px 11px}.data-table-wrap{display:none}.cards{display:grid;gap:9px;padding:10px}.card{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.card-name{color:#174e6b;font-weight:800;line-height:1.4}.card-meta{color:var(--muted);font-size:11px;margin-top:4px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid #edf2f4}.card-grid span{display:block;color:#8499a5;font-size:10px}.card-grid strong{display:block;margin-top:3px;font-size:13px}.card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:11px}.workspace-foot{padding:10px 13px;font-size:11px}.pagination{padding:10px}.pagination button{padding:5px 8px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;height:65px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);backdrop-filter:blur(14px);z-index:10}.mobile-nav button{border:0;background:transparent;color:#8095a2;font-size:11px}.mobile-nav button.active{color:var(--teal);font-weight:800}.mobile-nav b{display:block;font-size:19px;line-height:24px}.mobile-nav small{display:block;font-size:10px}.detail-grid{grid-template-columns:1fr}.detail-item.full{grid-column:auto}.detail-head,.detail-body{padding-left:16px;padding-right:16px}.detail-foot{padding:12px 16px;align-items:flex-start;flex-direction:column}.detail-foot .button{width:100%;text-align:center}}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:14px;border-bottom:1px solid var(--line)}
.dashboard-kpi{padding:14px 15px;border-radius:13px;background:linear-gradient(145deg,#f4fbfa,#f8fbfc);border:1px solid #e1efed}
.dashboard-kpi-label{font-size:12px;color:var(--muted)}
.dashboard-kpi strong{display:block;margin-top:5px;color:var(--ink);font-size:22px;letter-spacing:-.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-kpi span{display:block;margin-top:4px;font-size:11px;color:#8399a4}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:13px;padding:14px}
.dashboard-panel{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;min-width:0}
.dashboard-wide{grid-column:1 / -1}
.dashboard-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 15px;border-bottom:1px solid #edf2f4}
.dashboard-panel-head h3{margin:0;color:var(--ink);font-size:15px}
.dashboard-panel-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.month-list{padding:10px 15px 13px}
.month-row{display:grid;grid-template-columns:85px minmax(80px,1fr) 120px 120px 48px;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid #f0f4f5;font-size:12px}
.month-row:last-child{border-bottom:0}
.month-label{color:#4a6675;font-variant-numeric:tabular-nums}
.month-bar{height:8px;background:#ecf5f4;border-radius:999px;overflow:hidden}
.month-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#50c9bc,#0d9488)}
.month-value,.month-profit{text-align:right;color:#244255;font-variant-numeric:tabular-nums}
.month-profit{color:#08796e}
.month-profit.negative,.negative{color:#b45d26}
.month-count{text-align:right;color:#8499a5;font-size:11px}
.dashboard-summary{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:15px}
.dashboard-summary>div{background:#f7fafb;border-radius:11px;padding:12px}
.dashboard-summary span{display:block;color:#8399a4;font-size:11px}
.dashboard-summary strong{display:block;margin-top:4px;color:var(--ink);font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-links{display:flex;gap:8px;padding:0 15px 15px;flex-wrap:wrap}
.dashboard-links .button{font-size:12px;padding:7px 10px}
.dashboard-table-wrap{overflow:auto}
.dashboard-table{width:100%;border-collapse:collapse;min-width:520px}
.dashboard-table th{background:#f8fbfc;color:#6f8793;font-size:11px;text-align:left;padding:9px 12px;white-space:nowrap}
.dashboard-table td{padding:10px 12px;border-top:1px solid #edf2f4;color:#244255;font-size:12px;vertical-align:middle}
.dashboard-table td strong{display:block;color:#174e6b;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-table td small{display:block;color:var(--muted);font-size:10px;margin-top:2px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-table .number{text-align:right;white-space:nowrap}
.dashboard-empty{padding:24px;color:var(--muted);text-align:center;font-size:12px}
.dashboard-footnote{display:flex;align-items:center;gap:5px;padding:0 18px 15px;color:#7d929e;font-size:11px}
.child-sections{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.child-title{font-size:14px;color:var(--ink);font-weight:800;margin-bottom:9px}
.child-section{border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-top:9px}
.child-section-head{display:flex;justify-content:space-between;gap:8px;padding:9px 11px;background:#f7fafb;color:#315466;font-size:12px}
.child-section-head span{color:#7b909b;font-size:11px}
.child-table{min-width:640px}
.child-table th,.child-table td{font-size:11px;padding:8px 10px}
.child-more{padding:8px 11px;color:#7d929e;font-size:10px;border-top:1px solid #edf2f4}
.invoice-detail-modal{max-width:960px}.invoice-detail-section{margin-bottom:16px}.invoice-detail-section:last-child{margin-bottom:0}.invoice-detail-section-title{display:flex;align-items:center;gap:8px;margin-bottom:9px;color:var(--ink);font-size:14px;font-weight:800}.invoice-detail-section-title span{color:#7d929e;font-size:11px;font-weight:400}.invoice-items-table{min-width:760px}.invoice-items-table th,.invoice-items-table td{font-size:11px;padding:9px 10px}.invoice-note-box{padding:11px 12px;border-radius:10px;background:#f7fafb;color:#4d6877;white-space:pre-wrap;word-break:break-word;font-size:12px}
.danger-link{color:#b45d5d}.danger-link:hover{color:#8f3434}.form-modal{max-width:760px}.record-form{display:flex;flex-direction:column;min-height:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:19px 22px;overflow:auto}.form-grid label{display:flex;flex-direction:column;gap:6px;color:#54707e;font-size:12px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fbfdfe;color:var(--ink);padding:9px 10px;outline:0;font:inherit;font-size:13px;font-weight:400}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#73c7bf;box-shadow:0 0 0 3px #d8f5f0}.form-grid textarea{resize:vertical;min-height:82px}.form-full{grid-column:1 / -1}.form-actions{display:flex;gap:8px}.detail-foot .form-actions .button{width:auto;text-align:center}
.reimburse-kpis{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:14px;border-bottom:1px solid var(--line);background:#fbfdfd}.reimburse-kpi{padding:12px 14px;border:1px solid #e1efed;border-radius:12px;background:linear-gradient(145deg,#f2fbfa,#ffffff)}.reimburse-kpi span,.reimburse-kpi small{display:block;color:var(--muted);font-size:11px}.reimburse-kpi strong{display:block;margin:4px 0;font-size:22px;letter-spacing:-.04em}.reimburse-workflow{padding:14px}.reimburse-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.reimburse-tabs{display:flex;gap:6px;flex-wrap:wrap}.reimburse-tab{border:1px solid var(--line);background:#fff;color:#597482;border-radius:999px;padding:7px 12px;font-size:12px}.reimburse-tab.active{border-color:#8ed2cc;background:#e9f8f5;color:var(--teal-dark);font-weight:800}.reimburse-tab b{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 4px;border-radius:999px;background:#f8d58b;color:#795000;font-size:10px}.reimburse-flow-note{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px;border:1px solid #cfece8;border-radius:12px;background:#f0fbf9;color:#4e747d;font-size:12px}.reimburse-flow-note strong{color:var(--teal-dark);white-space:nowrap}.workflow-tip{color:#7b929d;font-size:12px}.reimburse-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.reimburse-table{width:100%;border-collapse:collapse;min-width:980px}.reimburse-table th{padding:10px 12px;text-align:left;background:#f8fbfc;border-bottom:1px solid var(--line);color:#6d8591;font-size:11px;white-space:nowrap}.reimburse-table td{padding:11px 12px;border-bottom:1px solid #edf2f4;color:#284656;vertical-align:middle;font-size:12px}.reimburse-table tbody tr:hover{background:#fbfefe}.reimburse-table strong{display:block;color:#174e6b;font-weight:800}.reimburse-table small{display:block;margin-top:3px;color:#8297a2;font-size:10px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reimburse-table .number{text-align:right;white-space:nowrap}.reimburse-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.action-yes{color:#08796e}.action-no{color:#9a6e30}.action-hint{color:#80949e;font-size:11px}.recognition-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eaf4ff;color:#2771a5;font-size:11px;white-space:nowrap}.reimburse-form-modal{max-width:850px}.upload-line{display:flex;align-items:center;gap:8px}.upload-line input[type=file]{padding:7px;font-size:11px}.upload-line span{flex:1;min-width:0;color:#6e8792;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-line .button{font-size:11px;padding:7px 9px}.form-help{display:block;color:#8a9ca5;font-size:11px;font-weight:400}.invoice-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:0}.invoice-fields label{min-width:0}.invoice-fields[hidden],#receiptAmountField[hidden]{display:none}.duplicate-warning{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border:1px solid #f0c5c5;border-radius:9px;background:#fff4f4;color:#9b4040;font-size:12px}.duplicate-warning[hidden]{display:none}.duplicate-warning strong{color:#8e2525}.duplicate-warning span{color:#a65b5b}.duplicate-warning .link-button{color:#ae3838}.payment-selector{display:flex;align-items:end;gap:18px;margin:10px 0 13px;padding:13px 14px;border:1px solid #d9ecea;border-radius:12px;background:#f7fcfb}.payment-selector label{display:flex;flex-direction:column;gap:5px;color:#5b7783;font-size:12px;font-weight:700;min-width:360px}.payment-selector select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.payment-total{margin-left:auto;text-align:right}.payment-total span{display:block;color:#7d929c;font-size:11px}.payment-total strong{display:block;margin-top:2px;color:var(--teal-dark);font-size:22px}.selectable-table input{width:16px;height:16px;accent-color:var(--teal)}.payment-submit-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 3px;color:#7a909b;font-size:12px}.empty-state.compact{padding:30px 20px}.payment-app-list{display:grid;gap:10px}.payment-app-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#fff}.payment-app-card h3{margin:3px 0 2px;color:var(--ink);font-size:16px}.payment-app-card p{margin:0;color:#7b929e;font-size:12px}.payment-app-amount{text-align:right;color:var(--teal-dark);font-size:20px;font-weight:800}.payment-app-amount small{display:block;margin-top:3px;color:#9a6e30;font-size:11px;font-weight:400}.payment-rule{display:flex;gap:10px;margin-top:13px;padding:11px 13px;border-radius:10px;background:#f8f5ea;color:#806632;font-size:12px}.payment-rule strong{white-space:nowrap}.toast{position:fixed;right:26px;bottom:26px;z-index:40;padding:11px 15px;border-radius:10px;background:#173a4e;color:#fff;box-shadow:0 15px 35px rgba(13,41,56,.2);font-size:13px}.toast.warning{background:#8a5a1e}.toast[hidden]{display:none}
@media(max-width:900px){
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
  .dashboard-kpi{padding:11px 12px}
  .dashboard-kpi strong{font-size:18px}
  .dashboard-grid{display:block;padding:10px}
  .dashboard-panel{margin-bottom:10px}
  .month-list{padding-left:11px;padding-right:11px}
  .month-row{grid-template-columns:64px minmax(45px,1fr) 84px 84px 35px;gap:5px;font-size:10px}
  .dashboard-summary{gap:8px;padding:11px}
  .dashboard-summary strong{font-size:15px}
  .dashboard-links{padding:0 11px 11px}
  .dashboard-table{min-width:480px}
  .dashboard-panel-head{padding:11px}
  .dashboard-footnote{padding:0 13px 12px}
  .form-grid{grid-template-columns:1fr;padding:16px}.form-full{grid-column:auto}.form-actions{width:100%}.form-actions .button{flex:1}.reimburse-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.reimburse-kpi{padding:10px 11px}.reimburse-kpi strong{font-size:19px}.reimburse-workflow{padding:10px}.reimburse-flow-note{align-items:flex-start;flex-direction:column;gap:3px}.invoice-fields{grid-template-columns:1fr;gap:10px}.upload-line{align-items:stretch;flex-wrap:wrap}.upload-line input[type=file]{width:100%}.upload-line span{flex-basis:calc(100% - 115px)}.payment-selector{display:block}.payment-selector label{min-width:0}.payment-total{margin-top:12px;text-align:left}.payment-submit-bar{align-items:flex-start;flex-direction:column}.payment-submit-bar .button{width:100%}.payment-app-card{align-items:flex-start;flex-direction:column;gap:9px}.payment-app-amount{text-align:left}.toast{right:12px;left:12px;bottom:76px;text-align:center}
}
\n
.auth-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#eef8f7,#edf4fa)}.auth-gate[hidden]{display:none}.auth-card{width:min(430px,100%);padding:34px 32px;border:1px solid rgba(190,216,220,.9);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 24px 80px rgba(21,59,73,.18);text-align:center}.auth-mark{margin:0 auto 16px}.auth-card h1{margin:8px 0 10px;color:var(--ink);font-size:24px}.auth-card p{margin:0 auto 22px;color:var(--muted);font-size:13px;line-height:1.7}.auth-login{width:100%;font-size:15px;padding:12px 16px}.auth-card small{display:block;margin-top:15px;color:#8499a4;font-size:11px;line-height:1.6}

/* Standalone enterprise login page: the QR is visible as soon as the page opens. */
body.auth-page{min-width:0;margin:0;background:#087d87;color:#17384a;overflow:auto}
body.auth-page .auth-gate{position:relative;inset:auto;min-height:100vh;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:64px clamp(18px,5vw,88px) 78px;background:linear-gradient(135deg,#047d89 0%,#06a6a5 48%,#075f83 100%);overflow:hidden}
body.auth-page .auth-gate::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.22),transparent 28%),radial-gradient(circle at 86% 10%,rgba(255,255,255,.15),transparent 24%),linear-gradient(115deg,transparent 0 48%,rgba(255,255,255,.08) 48.2%,transparent 48.5%);pointer-events:none}
body.auth-page .auth-gate::after{content:"";position:absolute;left:-5%;right:-5%;bottom:-9%;height:34%;opacity:.2;background:linear-gradient(120deg,transparent 0 6%,#b4f2ed 6.1% 6.35%,transparent 6.45% 18%,#b4f2ed 18.1% 18.35%,transparent 18.45% 31%,#b4f2ed 31.1% 31.35%,transparent 31.45% 45%,#b4f2ed 45.1% 45.35%,transparent 45.45% 61%,#b4f2ed 61.1% 61.35%,transparent 61.45% 78%,#b4f2ed 78.1% 78.35%,transparent 78.45%);transform:skewY(-4deg);pointer-events:none}
.auth-background{position:absolute;inset:0;pointer-events:none;overflow:hidden}.auth-orb{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 18px rgba(255,255,255,.025),0 0 0 42px rgba(255,255,255,.018)}.auth-orb-one{width:420px;height:420px;left:-150px;top:-160px}.auth-orb-two{width:560px;height:560px;right:-270px;bottom:-260px}.auth-grid{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.34) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.34) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,transparent,black 35%,black 74%,transparent)}
.auth-building{position:absolute;bottom:0;border:1px solid rgba(203,253,247,.5);border-bottom:0;background:linear-gradient(to top,rgba(5,66,91,.28),rgba(255,255,255,.04));box-shadow:inset 0 0 0 7px rgba(255,255,255,.035)}.auth-building::before{content:"";position:absolute;inset:14px 10px;background:repeating-linear-gradient(90deg,transparent 0 12px,rgba(211,255,249,.35) 12px 14px),repeating-linear-gradient(0deg,transparent 0 18px,rgba(211,255,249,.28) 18px 20px);opacity:.65}.auth-building-one{height:24%;width:9%;left:4%;transform:skewY(-5deg)}.auth-building-two{height:16%;width:15%;left:16%;transform:skewY(4deg)}.auth-building-three{height:31%;width:8%;right:11%;transform:skewY(5deg)}.auth-building-four{height:20%;width:14%;right:0;transform:skewY(-4deg)}
.auth-shell{position:relative;z-index:1;width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,.8fr);align-items:stretch;gap:0;border-radius:30px;overflow:hidden;box-shadow:0 28px 70px rgba(3,53,74,.28)}
.auth-brand-panel{display:flex;flex-direction:column;min-height:600px;padding:54px 54px 44px;color:#effffc;background:linear-gradient(145deg,rgba(7,73,96,.96),rgba(8,107,119,.92));border:1px solid rgba(212,255,249,.28);border-right:0}.brand-lockup{display:flex;align-items:center;gap:14px}.auth-brand-panel .auth-mark{display:grid;place-items:center;width:49px;height:49px;margin:0;border-radius:15px;color:#075d71;background:linear-gradient(145deg,#c5fbf1,#7de3dc);font-size:24px;font-weight:800;box-shadow:0 12px 24px rgba(0,0,0,.16)}.brand-company{font-size:18px;font-weight:750;letter-spacing:.03em}.brand-product{margin-top:4px;color:rgba(221,255,249,.7);font-size:12px;letter-spacing:.18em}.brand-kicker{margin-top:78px;color:#85ebe0;font-size:13px;font-weight:700;letter-spacing:.16em}.auth-brand-panel h1{margin:17px 0 16px;color:#fff;font-size:clamp(36px,4vw,56px);font-weight:760;line-height:1.16;letter-spacing:-.04em}.auth-brand-panel h1 span{color:#8ef1e8}.brand-intro{max-width:420px;margin:0;color:rgba(229,255,251,.78);font-size:14px;line-height:1.9}.brand-points{display:grid;gap:17px;margin:42px 0 0;padding:0;list-style:none}.brand-points li{display:flex;align-items:flex-start;gap:14px}.brand-points li>span{flex:0 0 27px;color:#83e9e0;font-size:11px;font-weight:800;letter-spacing:.08em}.brand-points strong{display:block;color:#fff;font-size:14px}.brand-points small{display:block;margin-top:3px;color:rgba(228,255,251,.64);font-size:12px}.brand-note{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:34px;color:rgba(228,255,251,.62);font-size:12px}.brand-note-dot{width:7px;height:7px;border-radius:50%;background:#8ff3e8;box-shadow:0 0 0 5px rgba(143,243,232,.14)}
body.auth-page .auth-card{width:auto;min-height:600px;box-sizing:border-box;padding:42px 48px 38px;border:0;border-radius:0;background:rgba(255,255,255,.98);box-shadow:none;text-align:center}.auth-card-head{display:flex;align-items:center;justify-content:space-between;color:#526b78;font-size:12px;font-weight:700}.secure-badge{display:inline-flex;align-items:center;gap:6px;color:#159c8d;font-weight:600}.secure-badge i{width:7px;height:7px;border-radius:50%;background:#24c3a8;box-shadow:0 0 0 4px rgba(36,195,168,.12)}.auth-card-logo{display:grid;place-items:center;width:48px;height:48px;margin:44px auto 17px;border-radius:15px;background:#1677f0;box-shadow:0 9px 20px rgba(22,119,240,.22)}.dingtalk-glyph{display:block;color:#fff;font-size:27px;line-height:1;transform:rotate(-28deg) translateY(-1px)}.auth-card h2{margin:0;color:#183747;font-size:27px;letter-spacing:-.04em}.auth-card p{max-width:340px;margin:10px auto 22px;color:#718792;font-size:13px;line-height:1.75}.qr-frame{display:grid;place-items:center;width:292px;height:292px;margin:0 auto;padding:11px;border:1px solid #dce8eb;border-radius:19px;background:#fff;box-shadow:0 10px 24px rgba(29,80,91,.08)}.dingtalk-qr{display:grid;place-items:center;width:268px;height:268px;overflow:hidden;border-radius:11px;background:#f5f8fa}.dingtalk-qr iframe{display:block;width:268px!important;height:268px!important;border:0}.qr-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;color:#8499a4;font-size:12px}.qr-spinner{width:23px;height:23px;border:2px solid #cbe9e5;border-top-color:#12a99e;border-radius:50%;animation:auth-spin .8s linear infinite}.qr-placeholder.qr-error span:first-child{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#bb796d;background:#fff2ef;font-size:17px;font-weight:800}.qr-status{min-height:20px;margin:16px 0 11px;color:#3c707a;font-size:13px}.qr-status[data-tone="error"]{color:#b16861}.auth-options{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:360px;margin:0 auto;color:#8a9ba2;font-size:11px}.auth-options a{color:#159c98;text-decoration:none;font-weight:700}.auth-options a:hover{text-decoration:underline}.session-icon{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:5px;border:1px solid #a8d8d3;border-radius:50%;color:#159c98;font-size:10px;font-style:normal}.auth-footnote{display:block;margin-top:35px;color:#a5b4b9;font-size:11px;line-height:1.6}.auth-footer{position:absolute;z-index:1;bottom:24px;left:0;right:0;text-align:center;color:rgba(235,255,252,.62);font-size:11px}.auth-footer span{padding:0 7px;color:rgba(235,255,252,.38)}
.login-mode-switch{display:flex;gap:4px;width:max-content;margin:27px auto 0;padding:4px;border-radius:999px;background:#f0f4f5}.mode-tab{border:0;border-radius:999px;padding:7px 18px;background:transparent;color:#8b9ba2;font-size:12px;cursor:pointer}.mode-tab.active{color:#204151;background:#fff;box-shadow:0 2px 7px rgba(38,83,93,.14);font-weight:800}.login-panel[hidden]{display:none}.qr-actions{display:flex;align-items:center;justify-content:center;gap:18px;min-height:21px;margin:0 auto;color:#8a9ba2;font-size:11px}.qr-actions a{color:#159c98;text-decoration:none;font-weight:700}.qr-actions a:hover{text-decoration:underline}.qr-refresh{border:0;padding:0;background:transparent;color:#159c98;font:inherit;font-weight:700;cursor:pointer}.qr-refresh:hover{text-decoration:underline}.auth-method-note{color:#a0b0b5}.quick-login-panel{min-height:334px;padding-top:4px}.quick-login-icon{display:grid;place-items:center;width:72px;height:72px;margin:25px auto 18px;border-radius:22px;color:#fff;background:#1677f0;box-shadow:0 12px 25px rgba(22,119,240,.22);font-size:40px;transform:rotate(-28deg)}.quick-login-panel h3{margin:0;color:#183747;font-size:22px;letter-spacing:-.03em}.quick-login-panel p{margin:12px auto 26px}.quick-login-button{display:inline-flex;align-items:center;justify-content:center;min-width:190px;padding:12px 23px;border-radius:10px;color:#fff;background:#1677f0;text-decoration:none;font-size:14px;font-weight:800;box-shadow:0 8px 18px rgba(22,119,240,.2)}.quick-login-button:hover{background:#0d62d0}.quick-login-panel small{display:block;max-width:280px;margin:17px auto 0;color:#9cacb2;font-size:11px;line-height:1.7}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media (max-width:820px){body.auth-page .auth-gate{align-items:flex-start;padding:26px 14px 62px}.auth-shell{grid-template-columns:1fr;max-width:540px;border-radius:24px}.auth-brand-panel{min-height:auto;padding:30px 28px 27px;border-right:1px solid rgba(212,255,249,.28);border-bottom:0}.brand-kicker{margin-top:35px}.auth-brand-panel h1{font-size:36px}.brand-points{grid-template-columns:1fr;gap:12px;margin-top:26px}.brand-points li:nth-child(3){display:none}.brand-note{padding-top:25px}.auth-card{min-height:0!important;padding:34px 22px 30px!important}.auth-card-logo{margin-top:28px}.auth-footer{bottom:16px}.auth-orb-two{right:-370px}}
@media (max-width:460px){.brand-company{font-size:15px}.brand-product{font-size:10px}.auth-brand-panel h1{font-size:31px}.brand-intro{font-size:13px}.qr-frame{width:272px;height:272px;padding:7px}.dingtalk-qr,.dingtalk-qr iframe{width:258px!important;height:258px!important}.auth-options{align-items:flex-start;flex-direction:column;gap:10px}.auth-footnote{margin-top:26px}}

/* Full official login owns QR, account tabs and desktop-client discovery. */
body.auth-page .auth-shell{grid-template-columns:minmax(0,1fr) 520px}
body.auth-page .auth-card{padding:28px 20px 24px;background:#fff}
.auth-card-head{padding:0 16px}
.official-login-frame{width:480px;max-width:100%;height:610px;margin:12px auto 0;background:#fff;overflow:hidden;border-radius:16px}
.official-login-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}
body.auth-page .auth-error{max-width:none;margin:14px 16px 0;padding:10px 14px;border-radius:9px;background:#fff3ef;color:#a1473f}
body.auth-page .auth-error[hidden]{display:none}
body.auth-page .qr-status{margin:2px 0 8px;font-size:12px}
body.auth-page .auth-options{justify-content:center;margin:10px auto 0}
body.auth-page .auth-footnote{margin-top:12px}
@media(max-width:1000px) and (min-width:821px){.auth-brand-panel{padding:42px 28px}.brand-company{font-size:15px}.auth-brand-panel h1{font-size:40px}}
@media(max-width:820px){body.auth-page .auth-shell{grid-template-columns:1fr}body.auth-page .auth-card{padding:24px 14px!important}.official-login-frame{width:480px}.auth-brand-panel .brand-kicker,.auth-brand-panel h1,.auth-brand-panel .brand-intro,.auth-brand-panel .brand-points,.auth-brand-panel .brand-note{display:none}}
@media(max-width:460px){body.auth-page .auth-gate{padding:14px 8px 50px}body.auth-page .auth-card{padding:22px 8px!important}.official-login-frame{height:620px}.auth-card-head{padding:0 10px}}

/* R54: keep filing information in normal flow, outside the record-list footer. */
.site-footer {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:4px 16px;
  color:#647583;
  font:400 12px/20px "Microsoft YaHei",system-ui,sans-serif;
  text-align:center;
}
.site-footer .site-footer-company { padding:0; color:inherit; }
.site-footer a { color:inherit; text-decoration:none; white-space:nowrap; }
.site-footer a:hover { text-decoration:underline; }
.site-footer a:focus-visible { outline:2px solid currentColor; outline-offset:4px; border-radius:2px; }

body.auth-page .auth-gate {
  display:grid;
  grid-template-rows:1fr auto;
  justify-items:center;
  align-items:center;
  gap:24px;
  min-height:100vh;
  min-height:100svh;
  padding-bottom:max(24px,env(safe-area-inset-bottom));
}
body.auth-page .auth-footer.site-footer {
  position:relative;
  inset:auto;
  width:100%;
  margin:0;
  color:#d1ebe9;
}
body .app-shell > .main-content { display:flex; flex-direction:column; }
body .main-content > .workspace { flex-shrink:0; }
body .main-content > .site-footer {
  flex-shrink:0;
  margin-top:auto;
  padding:18px 16px 0;
}

@media (max-width:820px) {
  .site-footer { flex-direction:column; gap:2px; }
  body.auth-page .auth-gate {
    gap:20px;
    padding-bottom:max(16px,env(safe-area-inset-bottom));
  }
  body .main-content > .site-footer { padding-top:16px; }
}
@media (max-width:700px) {
  body.mobile-record-screen .main-content > .site-footer {
    padding-bottom:calc(56px + env(safe-area-inset-bottom));
  }
}
@media print { .site-footer { display:none!important; } }

/* Keep the existing login content within the mobile grid track. */
@media (max-width:820px) {
  body.auth-page .auth-shell { grid-template-columns:minmax(0,1fr); min-width:0; }
  body.auth-page .auth-card { min-width:0; }
  body.auth-page .official-login-frame { min-width:0; width:100%; max-width:100%; }
}
/* A lone micro-login error caption is text, not the QR error icon. */
.official-login-frame .qr-error > span:only-child {
  display:block;
  width:auto;
  height:auto;
  border-radius:0;
  background:transparent;
  color:inherit;
  font-size:14px;
  font-weight:500;
  white-space:normal;
}

/* R125: provider-supported QR has a 300px working area; modes stay visible. */
body.auth-page .login-modes{display:flex;align-items:center;justify-content:center;gap:4px;width:max-content;max-width:100%;margin:30px auto 14px;padding:4px;background:#edf4f5;border-radius:10px;font-size:16px}
body.auth-page .login-modes[hidden]{display:none}
body.auth-page .login-modes a,body.auth-page .login-modes span{display:block;padding:10px 22px;line-height:1.4;color:#365561;text-decoration:none;border-radius:7px}
body.auth-page .login-modes [aria-current]{background:#fff;color:#164b58;font-weight:700}
body.auth-page .login-modes a:hover{background:#dcecee}
body.auth-page .login-modes a:focus-visible{outline:2px solid #087d87;outline-offset:2px}
body.auth-page .official-login-frame{width:300px;max-width:100%;height:300px;margin:0 auto 16px;border-radius:0}
body.auth-page .qr-status{font-size:14px;line-height:1.6;margin:8px 0}
body.auth-page #officialLoginHelp,body.auth-page #loginReturnHint{font-size:14px;line-height:1.6}
