:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#1f2a30;background:#f6f8f9;line-height:1.5}
*{box-sizing:border-box}body{margin:0;min-width:320px}.site-shell{display:flex;min-height:100vh}.site-sidebar{width:240px;background:#1f3542;color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand-mark{font-size:22px;font-weight:700;letter-spacing:.03em}.brand-subtitle{font-size:12px;color:#b9cbd2;margin-top:4px}.site-nav{display:grid;gap:6px;margin-top:34px}.site-nav a,.site-logout{padding:10px 12px;border:0;border-radius:8px;color:#d6e3e7;text-decoration:none;background:transparent;text-align:left;cursor:pointer;font-size:14px}.site-nav a:hover,.site-nav a:focus,.site-logout:hover{background:#365b6a;color:#fff}.site-logout{margin-top:auto;border-top:1px solid #45616c}.site-main{flex:1;min-width:0}.site-header{height:72px;background:#fff;border-bottom:1px solid #e3eaec;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.eyebrow{display:block;color:#8a949b;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.user-chip{border:1px solid #d3dbe0;border-radius:999px;padding:7px 12px;font-size:13px}.site-content{max-width:1180px;margin:auto;padding:42px 32px}.page-heading h1{font-size:30px;margin:6px 0}.page-heading p{color:#5b6770}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:30px}.module-card,.auth-card{background:#fff;border:1px solid #e3eaec;border-radius:12px;box-shadow:0 2px 8px #1f2a3010;padding:24px}.module-card h2{margin-top:0;font-size:18px}.module-card p{color:#5b6770;min-height:48px}.primary-button,.secondary-button,.code-row button{border-radius:8px;padding:10px 16px;border:1px solid #427e94;background:#427e94;color:#fff;font-weight:600;cursor:pointer}.secondary-button,.code-row button{background:#fff;color:#427e94}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,100%);padding:32px}.auth-card h1{font-size:24px;margin:22px 0 4px}.auth-card p{color:#5b6770}.auth-tabs{display:flex;gap:8px;margin:22px 0}.auth-tabs a{flex:1;text-align:center;padding:9px;border:1px solid #d3dbe0;border-radius:8px;text-decoration:none;color:#427e94}.auth-tabs a.active{background:#427e94;color:#fff}.auth-card form{display:grid;gap:12px}.auth-card label{display:grid;gap:5px;font-size:13px;color:#5b6770}.auth-card input{border:1px solid #d3dbe0;border-radius:8px;padding:10px 12px;font:inherit}.code-row{display:flex;gap:8px}.code-row input{flex:1}.form-message{min-height:20px;color:#c0392b;font-size:13px}@media(max-width:760px){.site-sidebar{width:190px}.site-header{padding:0 18px}.site-content{padding:28px 18px}}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:28px 0}.admin-stats article,.admin-panel{background:#fff;border:1px solid #e3eaec;border-radius:12px;padding:20px}.admin-stats span{display:block;color:#5b6770;font-size:13px}.admin-stats strong{display:block;font-size:26px;margin-top:6px}.admin-panel{margin-top:18px}.admin-panel>h2{font-size:18px;margin:0 0 16px}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.status-grid>div{border:1px solid #e3eaec;border-radius:8px;padding:14px}.status-grid span{display:block;color:#5b6770;font-size:12px;margin-bottom:6px}.status-tag{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.status-tag.success{background:#e8f3ec;color:#15803d}.status-tag.warning{background:#fbf1e3;color:#b45309}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e3eaec}th{background:#f6f8f9;color:#5b6770}@media(max-width:900px){.admin-stats,.status-grid{grid-template-columns:repeat(2,1fr)}}
.forgot-link{text-align:center;color:#8a2524;text-decoration:none;font-size:13px}
.module-link{display:inline-block;text-decoration:none}
.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.inline-form input{border:1px solid #d3dbe0;border-radius:8px;padding:10px 12px;font:inherit}.task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;margin-top:20px}.task-card,.empty-panel{background:#fff;border:1px solid #e3eaec;border-radius:12px;padding:20px}.task-card.active{border-color:#427e94;box-shadow:0 0 0 3px #eef5f8}.task-card h2{font-size:18px;margin:12px 0 4px}.task-card p{color:#5b6770}.task-card dl{border-top:1px solid #e3eaec;padding-top:12px}.task-card dt{font-size:11px;color:#8a949b}.task-card dd{margin:3px 0;font-size:13px}.task-actions{display:flex;gap:8px;margin-top:16px}.danger-button{border:1px solid #ead2ce;background:#fff;color:#c0392b;border-radius:8px;padding:9px 14px;cursor:pointer}.empty-panel{grid-column:1/-1;text-align:center;color:#5b6770;padding:44px}@media(max-width:760px){.inline-form{grid-template-columns:1fr}.site-sidebar{position:sticky;top:0}}
.upload-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px dashed #8abcd1;border-radius:12px;padding:24px;margin-top:24px}.upload-panel h2{margin:0 0 5px}.upload-panel p{margin:0;color:#5b6770}.file-button{cursor:pointer;white-space:nowrap}
.matching-actions{display:flex;align-items:center;gap:14px;margin:18px 0}.matching-actions span{color:#5b6770;font-size:13px}.manual-match-form{display:grid;grid-template-columns:1.2fr 1.2fr .6fr auto;gap:10px}.manual-match-form select,.manual-match-form input{border:1px solid #d3dbe0;border-radius:8px;padding:10px;font:inherit}.status-tag.danger{background:#fbeae8;color:#c0392b}small{color:#8a949b}@media(max-width:900px){.manual-match-form{grid-template-columns:1fr}.match-stats{grid-template-columns:repeat(2,1fr)}}
.plan-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.plan-form-grid label{display:grid;gap:6px;color:#5b6770;font-size:13px}.plan-form-grid input,.plan-form-grid select,.map-source,.ledger-generate-form select{border:1px solid #d3dbe0;border-radius:8px;padding:9px 10px;font:inherit;background:#fff}.editor-actions,.ledger-generate-form{display:flex;align-items:center;gap:12px;margin-top:18px}.ledger-generate-form select{min-width:360px}@media(max-width:800px){.plan-form-grid{grid-template-columns:1fr}.editor-actions,.ledger-generate-form{align-items:stretch;flex-direction:column}.ledger-generate-form select{min-width:0;width:100%}}
.admin-stats-wide{grid-template-columns:repeat(6,1fr)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading h2{margin:0;font-size:18px}.admin-search{width:min(280px,100%);border:1px solid #d3dbe0;border-radius:8px;padding:8px 10px;font:inherit}.panel-note{color:#5b6770;font-size:13px}.module-toggle{display:block;margin-top:14px}@media(max-width:1100px){.admin-stats-wide{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.admin-stats-wide{grid-template-columns:repeat(2,1fr)}.panel-heading{align-items:stretch;flex-direction:column}.admin-search{width:100%}}
.ai-admin-grid,.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.ai-admin-grid>div,.resource-grid article{border:1px solid #e3eaec;border-radius:10px;padding:16px}.ai-admin-grid span,.resource-grid span{display:block;color:#5b6770;font-size:12px}.ai-admin-grid strong,.resource-grid h3{display:block;font-size:18px;margin:6px 0}.ai-admin-grid p,.resource-grid p{color:#5b6770;font-size:13px}.ai-settings-form{display:grid;grid-template-columns:1fr 1.2fr 1.6fr auto auto;gap:10px;align-items:end;margin:18px 0}.ai-settings-form label{display:grid;gap:5px;font-size:12px;color:#5b6770}.ai-settings-form input,.ai-settings-form select,.resource-lookup-form input{border:1px solid #d3dbe0;border-radius:8px;padding:9px 10px;font:inherit;background:#fff}.resource-lookup-form{display:flex;align-items:center;gap:10px;margin-top:18px}@media(max-width:1000px){.ai-settings-form{grid-template-columns:1fr 1fr}.ai-admin-grid,.resource-grid{grid-template-columns:1fr}}@media(max-width:700px){.ai-settings-form,.resource-lookup-form{display:flex;flex-direction:column;align-items:stretch}}
[data-import-organization]{border:1px solid #d3dbe0;border-radius:8px;padding:8px 10px;background:#fff;max-width:240px}

.ledger-center-shell{max-width:980px;margin:0 auto;padding:32px 30px}.ledger-center-heading h2{font-size:20px;color:#111827;margin:0}.ledger-center-heading p{font-size:12px;color:#6b7280;margin:7px 0 0}.ledger-function-list{display:grid;gap:16px;margin-top:24px}.ledger-function-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border:1px solid #dce6f8;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(36,99,235,.06);transition:box-shadow .2s ease,transform .2s ease}.ledger-function-card:hover{box-shadow:0 12px 32px rgba(36,99,235,.11);transform:translateY(-1px)}.ledger-function-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#e8effd;color:#1a56db;font-size:25px}.ledger-function-name{font-size:16px;font-weight:600;color:#111827}.ledger-function-copy{font-size:13px;color:#6b7280;margin-top:5px;line-height:1.7}.ledger-function-meta{font-size:12px;color:#9ca3af;margin-top:8px}.ledger-function-card .primary-button{white-space:nowrap;text-decoration:none}@media(max-width:700px){.ledger-center-shell{padding:22px 0}.ledger-function-card{grid-template-columns:1fr;gap:12px;padding:18px}.ledger-function-card .primary-button{width:100%;text-align:center}}
.module-shell{max-width:1180px;margin:0 auto;min-height:calc(100vh - 120px)}.module-heading{padding:4px 0 6px}.module-heading h1{font-size:24px;color:#111827;margin:4px 0 6px}.module-heading p{font-size:13px;color:#6b7280;margin:0}.module-actions{display:flex;justify-content:flex-end;padding:14px 0 10px}.task-create-bar{margin:8px 0 18px;padding:16px 18px;border:1px solid #dce6f8;border-radius:10px;background:#fbfcfe}.task-create-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:#111827}.task-create-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.task-create-form label{display:grid;gap:6px;font-size:12px;color:#6b7280}.task-create-form input{border:1px solid #d3dbe0;border-radius:8px;padding:10px 12px;font:inherit;background:#fff}.req{color:#dc2626;margin-left:3px}.task-create-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#8a949b;font-size:12px}.task-list-surface{border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:#fff}.module-list-head{min-height:62px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e5e7eb}.module-list-title{font-size:15px;font-weight:600;color:#111827}.module-upload-help{font-size:12px;color:#8a949b;margin-top:4px}.task-count{font-size:12px;color:#6b7280}.task-list-surface .task-grid{padding:18px 20px;margin:0}.task-card{box-shadow:0 2px 8px rgba(15,23,42,.04)}.task-card h2{font-size:16px}.task-card.active{border-color:#8abcd1;box-shadow:0 0 0 3px #eef5f8}.task-card dl{margin:12px 0 0}.task-card dd{color:#4b5563}@media(max-width:700px){.task-create-form{grid-template-columns:1fr}.task-create-foot{grid-column:auto;align-items:stretch;flex-direction:column}.task-create-foot .primary-button{width:100%}.module-list-head{padding:14px 16px}.task-list-surface .task-grid{padding:14px 16px}}
.upload-panel{display:flex;align-items:center;gap:16px;margin:18px auto 0;max-width:1180px;padding:16px 18px;border:1.5px dashed #c9dce4;border-radius:10px;background:linear-gradient(180deg,#fcfeff,#f4f9fb);box-shadow:none}.upload-panel>div{flex:1}.upload-panel h2{font-size:14px;margin:0;color:#1f2937}.upload-panel p{font-size:12px;color:#6b7280;margin:4px 0 0}.upload-panel .file-button{margin-left:auto}.admin-panel{max-width:1180px;margin:18px auto 0;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.admin-panel>h2{font-size:15px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.admin-panel .table-scroll{margin:0 -20px -20px;padding-top:4px}.admin-panel table{font-size:12px}.admin-panel th{font-size:12px;background:#fbfcfe}.admin-panel td{color:#4b5563}.form-message{margin:10px auto;max-width:1180px;color:#b45309;font-size:13px;min-height:20px}@media(max-width:700px){.upload-panel{align-items:stretch;flex-direction:column}.upload-panel .file-button{margin-left:0;text-align:center}.admin-panel .table-scroll{margin:0 -16px -16px}}
.match-stats{max-width:1180px;margin:20px auto 0;grid-template-columns:repeat(4,1fr)}.match-stats article{border:1px solid #dce6f8;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.match-stats article strong{color:#1a56db}.matching-actions{max-width:1180px;margin:16px auto;display:flex;align-items:center;gap:14px}.matching-actions span{font-size:12px;color:#6b7280}.manual-match-form{display:grid;grid-template-columns:1.25fr 1.25fr .65fr auto;gap:10px}.manual-match-form select,.manual-match-form input{border:1px solid #d3dbe0;border-radius:8px;padding:10px;font:inherit;background:#fff}.status-tag.danger{background:#fbeae8;color:#c0392b}.admin-panel .manual-match-form{padding-top:4px}.admin-panel:has(.manual-match-form){padding-bottom:20px}@media(max-width:900px){.match-stats{grid-template-columns:repeat(2,1fr)}.manual-match-form{grid-template-columns:1fr}}@media(max-width:700px){.match-stats{grid-template-columns:1fr 1fr}.matching-actions{align-items:stretch;flex-direction:column}}
.plan-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.plan-form-grid label{display:grid;gap:6px;font-size:12px;color:#6b7280}.plan-form-grid input,.plan-form-grid select,.map-source,.ledger-generate-form select{border:1px solid #d3dbe0;border-radius:8px;padding:10px;font:inherit;background:#fff}.editor-actions,.ledger-generate-form{display:flex;align-items:center;gap:12px;margin-top:18px}.ledger-generate-form select{min-width:360px}.plan-meta{padding-bottom:20px}.plan-meta h2{margin-bottom:14px}.editor-actions{max-width:1180px;margin-left:auto;margin-right:auto}.resource-grid{max-width:1180px;margin-left:auto;margin-right:auto}@media(max-width:800px){.plan-form-grid{grid-template-columns:1fr}.editor-actions,.ledger-generate-form{align-items:stretch;flex-direction:column}.ledger-generate-form select{min-width:0;width:100%}}

/* Historical desktop workflow styling. */
.ledger-kpi-grid{max-width:1180px;margin:20px auto 0;grid-template-columns:repeat(4,1fr)}.ledger-kpi-grid article{border:1px solid #dce6f8;border-radius:10px;background:#fff;padding:16px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.ledger-kpi-grid span,.ledger-kpi-grid small{display:block;color:#6b7280;font-size:12px}.ledger-kpi-grid strong{display:block;color:#1a56db;font-size:24px;margin:6px 0}.ledger-archive-panel{max-width:1180px;margin:18px auto 0}@media(max-width:900px){.ledger-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.ledger-kpi-grid{grid-template-columns:1fr}}
.template-wizard-steps{max-width:1180px;margin:18px auto;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.wizard-step{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid #d6dee5;border-radius:8px;background:#fff;color:#8a949b;font-size:13px}.wizard-step b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#eef4ff;color:#45616c}.wizard-step.active{border-color:#427e94;background:#f4f9fb;color:#1f3542}.wizard-step.active b,.wizard-step.done b{background:#427e94;color:#fff}.wizard-step.done{color:#365b6a}.template-setup-panel{padding-bottom:20px}.template-setup-actions{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:4px}.template-locked-note{margin:14px 0 0;color:#6b7280;font-size:12px}.template-setup-panel input:disabled{background:#f6f8f9}.template-setup-actions .file-button{display:inline-flex;align-items:center}.match-filter-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.match-filter-tabs button{border:1px solid #d6dee5;background:#fff;color:#52606d;border-radius:16px;padding:6px 14px;cursor:pointer}.match-filter-tabs button.active{border-color:#427e94;background:#eef5f8;color:#1f3542}
.form-label-line{display:inline-flex;align-items:center;gap:0;white-space:nowrap}
.template-structure-grid>label{display:block}.template-structure-grid>label>.form-select,.template-structure-grid>label>.template-structure-row{width:100%;margin-top:7px}
.plan-next-step{display:block;margin:0 18px 18px auto}.template-upload-surface[hidden],.template-plan-setup[hidden],.plan-next-step[hidden]{display:none}.template-upload-head>button{margin-left:auto}.template-save-success-inline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 30px;padding:16px 18px;text-align:left}.template-save-success-inline>div{display:flex;align-items:baseline;gap:12px}.template-save-success-inline strong{color:#167245}.template-save-success-inline span{color:#6b7280;font-size:13px}
.plans-workflow-page #templateUploadSurface .template-upload-head>div,.plans-workflow-page #templateUploadSurface #uploadStepStatus,.plans-workflow-page #templateUploadSurface .template-locked-note{display:none}.plans-workflow-page #templateUploadSurface .upload-bar-text{display:block}.plans-workflow-page #templateUploadSurface .upload-bar-sub{display:none}
.plans-workflow-page #templateUploadSurface .template-upload-head>button{display:none!important}
.plans-workflow-page .plan-summary-surface .status-green,.plans-workflow-page .template-mapping-surface .panel-heading>.status-tag.success{display:none!important}
.plans-workflow-page .mapping-guide{display:none!important}.plans-workflow-page .template-structure-grid>label{display:block;white-space:nowrap;min-width:0}.plans-workflow-page .template-structure-grid>label>.form-select,.plans-workflow-page .template-structure-grid>label>.template-structure-row{display:block;width:100%;margin-top:7px}.plans-workflow-page .template-structure-grid .req{display:inline-block;white-space:nowrap;margin-left:3px}.plans-workflow-page .template-plan-setup-body .form-input,.plans-workflow-page .template-plan-setup-body .form-select,.plans-workflow-page .template-structure-grid .form-input,.plans-workflow-page .template-structure-grid .form-select,.plans-workflow-page .map-source{min-height:42px;padding:10px 12px;font-size:14px;line-height:1.35}
.plans-workflow-page .template-structure-grid>label:first-child>.form-select{width:min(100%,420px)}

/* Website shell aligned with the desktop design source. */
.app{display:flex;height:100vh;min-height:680px;background:#f7f9fb;color:#1f2937;overflow:hidden}.sidebar{width:240px;flex:0 0 240px;background:linear-gradient(180deg,#0f294d 0%,#1a3a6c 100%);color:#fff;display:flex;flex-direction:column;box-shadow:2px 0 8px rgba(0,0,0,.15);z-index:10}.logo{padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#3b82f6,#06b6d4);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;margin-bottom:8px}.logo h1{font-size:18px;font-weight:700;letter-spacing:.5px;margin:0}.logo p{font-size:11px;color:rgba(255,255,255,.55);margin:2px 0 0}.nav{flex:1;padding:12px 8px;overflow-y:auto}.nav-group{margin-bottom:6px}.nav-group-title{font-size:11px;text-transform:uppercase;color:rgba(199,214,229,.65);padding:12px 12px 6px;letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:6px}.workspace-app-label{font-size:11px;color:rgba(255,255,255,.52);padding:5px 12px 7px}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:rgba(255,255,255,.74);transition:all .2s;margin-bottom:2px;text-decoration:none}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{background:rgba(138,189,209,.16);color:#fff}.nav-item.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:#f0b35b}.nav-item .icon{width:20px;text-align:center;font-size:16px;color:rgba(199,214,229,.85)}.sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7)}.user-info{display:flex;align-items:center;gap:9px;margin-bottom:12px}.user-info strong,.user-info small{display:block}.user-info strong{font-size:12px;color:#fff;font-weight:500;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info small{font-size:11px;color:rgba(255,255,255,.55);max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-avatar{width:30px;height:30px;border-radius:50%;background:#427e94;color:#fff;display:grid;place-items:center;font-weight:700}.site-logout{width:100%;padding:8px 10px;border:1px solid rgba(255,255,255,.18);border-radius:7px;color:#d6e3e7;background:transparent;text-align:center;cursor:pointer;font-size:12px}.site-logout:hover{background:rgba(255,255,255,.08);color:#fff}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:64px;flex:0 0 64px;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid #e5e7eb;display:flex;align-items:center;padding:0 24px;gap:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.topbar-title{font-size:16px;font-weight:600;color:#1f2937}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.status{border-radius:999px;padding:5px 10px;font-size:11px;white-space:nowrap}.status-yellow{background:#fff7df;color:#a16207;border:1px solid #f2d58b}.search-box input{width:245px;height:34px;border:1px solid #d6dee5;border-radius:7px;padding:0 11px;font:inherit;font-size:12px;background:#fff}.icon-btn{height:32px;padding:0 10px;border:1px solid #d6dee5;border-radius:7px;background:#fff;color:#52606d;font-size:12px;cursor:pointer}.icon-btn:hover{border-color:#8abcd1;color:#1a56db}.topbar-back,.mobile-nav-toggle{display:none}.content{flex:1;overflow:auto;padding:28px 32px 44px;max-width:none}.page-heading{max-width:1180px;margin:0 auto 22px}.page-heading h1{font-size:28px;letter-spacing:-.02em;color:#111827;margin:4px 0 7px}.page-heading p{font-size:13px;color:#6b7280}.module-grid{max-width:1180px;margin:20px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px;box-shadow:0 1px 3px rgba(15,23,42,.05);min-height:160px}.module-card h2{font-size:16px;color:#111827;margin:0 0 9px}.module-card p{font-size:13px;color:#6b7280;min-height:44px}.primary-button,.secondary-button{box-shadow:none}.primary-button{background:#1a56db;border-color:#1a56db}.secondary-button{color:#1a56db;border-color:#b9cbe9;background:#fff}.primary-button:hover{background:#1040a0;border-color:#1040a0}.secondary-button:hover{background:#eef4ff;border-color:#7ea6ed}@media(max-width:1000px){.sidebar{width:218px;flex-basis:218px}.topbar-right .search-box{display:none}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.app{min-height:100vh}.sidebar{position:fixed;left:-250px;top:0;bottom:0;transition:left .2s}.sidebar.open{left:0}.content{padding:22px 16px 36px}.topbar{padding:0 16px}.topbar-title{font-size:14px}.topbar-right .status,.topbar-right .icon-btn{display:none}.mobile-nav-toggle{display:inline-flex;border:0;background:transparent;font-size:20px;color:#52606d;cursor:pointer}.module-grid{grid-template-columns:1fr}}
.template-list-actions{max-width:1180px;margin:0 auto 12px;padding:0}.template-workflow-toolbar{max-width:1180px;margin:18px auto 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#1f2937}.template-workflow-toolbar strong{font-size:16px}.template-plan-list{margin:0;padding:18px 20px}.template-plan-card .task-actions{flex-wrap:wrap}.capability-picker{grid-column:1/-1;display:grid;gap:6px;color:#6b7280;font-size:12px}.capability-picker details{border:1px solid #d3dbe0;border-radius:8px;background:#fff}.capability-picker summary{padding:10px 12px;cursor:pointer;color:#374151}.capability-options{display:flex;gap:16px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid #e5e7eb}.capability-options label{display:flex;align-items:center;gap:6px;color:#4b5563}.entity-icon{width:40px;height:40px;margin:0 auto 10px;border-radius:10px;background:#eef4ff;color:#1a56db;display:grid;place-items:center;font-size:20px}
.plans-page{min-height:calc(100vh - 64px);margin:-28px -32px -44px;background:#fff;border-left:3px solid #f0b35b;color:#1f2937}.plans-page .template-list-actions{height:81px;max-width:none;margin:0;padding:18px 30px;border-bottom:1px solid #e5e7eb;display:flex;align-items:flex-start;justify-content:flex-end}.plans-page .template-plan-surface{max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;background:#fff}.plans-page .module-list-head{padding:20px 30px 0;border:0}.plans-page .module-upload-help{margin-top:5px}.plans-page .template-plan-list{min-height:205px;padding:34px 30px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center}.plans-page .empty-panel{width:100%;min-height:120px;border:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.plans-page .empty-panel h2{margin:0;font-size:14px;font-weight:400;color:#9ca3af}.plans-page .empty-panel p,.plans-page .entity-icon,.plans-page .task-count{display:none}.plans-loading,.plans-error{padding:80px 30px;color:#6b7280}
.plans-shell .sidebar{display:none}.plans-shell .topbar{height:70px;flex-basis:70px;padding:0 30px;border-bottom:1px solid #edf0f2;box-shadow:none}.plans-shell .topbar-title{font-size:18px;font-weight:600}.plans-shell .topbar-back{display:none}.plans-shell .topbar-right .status{display:none}.plans-shell .topbar-right{gap:16px}.plans-shell .search-box{order:0}.plans-shell .search-box input{width:108px;height:34px;border-radius:9px;padding-left:30px}.plans-shell .icon-btn{border:0;background:transparent;padding:0 2px;color:#4b5563}.plans-shell .main{width:100%}.plans-shell .content{padding:28px 10px 44px}.plans-shell .plans-page{margin:-28px -10px -44px}.plans-shell .plans-page .template-list-actions{height:81px;padding-right:32px}
.plans-shell .primary-button{background:#4b879b;border-color:#4b879b}.plans-shell .primary-button:hover{background:#3f7486;border-color:#3f7486}.plans-task-pill{height:32px;padding:0 14px;border:1px solid #f2d7ab;border-radius:999px;background:#fff8ed;color:#c66a18;font-size:12px}.plans-moon{border:0;background:transparent;color:#4b5563;font-size:20px;line-height:1;padding:0 4px}.plans-logout{border:0;background:transparent}.plans-shell .search-box input{color:#6b7280}.plans-shell .search-box input::placeholder{color:#6b7280}
/* The historical plan-list view is intentionally full-width; the plan editor uses workspace-shell. */
.plans-shell .main{width:auto}.plans-shell .content{padding:28px 32px 44px}.plans-shell .plans-page{margin:-28px -32px -44px}.plans-shell .plans-page .template-list-actions{padding-right:30px}
.app{min-height:0}.sidebar{width:240px;flex-basis:240px}.nav-group{margin-bottom:4px}.nav-group-title{color:rgba(255,255,255,.4);padding:12px 12px 6px;border-bottom:0;margin-bottom:0}.workspace-app-label{padding:4px 12px 7px}.nav-item.active{background:#1a56db;color:#fff;box-shadow:0 2px 8px rgba(26,86,219,.4)}.nav-item.active:before{display:none}.topbar{height:56px;flex-basis:56px;padding:0 24px;gap:16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}.topbar-right{gap:12px}.search-box input{width:280px;height:auto;padding:8px 12px 8px 36px;background:#f9fafb;font-size:13px}.icon-btn{width:36px;height:36px;padding:0;border:0;background:transparent;font-size:13px}.content{padding:24px}.app-footer{height:30px;flex:0 0 30px;border-top:1px solid #e5e7eb;background:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px;color:#6b7280;font-size:10px}.app-footer-left{display:flex;align-items:center;gap:6px}.app-footer-dot{width:7px;height:7px;border-radius:50%;background:#059669}.app-footer-center{text-align:center}.app-footer-right{text-align:right}.plans-shell .topbar{height:56px;flex-basis:56px;padding:0 24px}.plans-shell .content{padding:24px}.plans-shell .plans-page{min-height:calc(100vh - 86px);margin:-24px}.plans-shell .plans-page .template-list-actions{padding-right:30px}
.legacy-page{min-height:100%;color:#1f2937}.legacy-page-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:12px}.legacy-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);overflow:hidden}.legacy-card-spaced{margin-bottom:20px}.legacy-card-head{padding:16px 20px;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between}.legacy-card-title{font-size:15px;font-weight:600}.legacy-card-body{padding:20px}.legacy-empty{text-align:center;padding:30px;color:#6b7280}.legacy-empty h3{font-size:16px;color:#374151;margin-bottom:6px}.legacy-empty p{font-size:13px;color:#9ca3af}.legacy-inline-actions{margin-top:16px;display:flex;gap:8px;justify-content:center}.legacy-empty-cell{text-align:center!important;color:#9ca3af!important;padding:30px!important}
.legacy-empty-icon{font-size:34px;color:#8abcd1;margin-bottom:10px}.timeline{position:relative;padding-left:16px}.timeline-item{position:relative;padding:0 0 22px 24px;border-left:2px solid #e5e7eb}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:#8abcd1;border:3px solid #eef5f8}.timeline-time{font-size:11px;color:#8a949b}.timeline-title{font-size:14px;font-weight:600;margin:3px 0}.timeline-desc{font-size:12px;color:#6b7280}.archive-privacy-note{margin:12px auto 16px;max-width:620px;color:#6b7280!important}
.legacy-module-page{min-height:calc(100vh - 86px);margin:-24px;background:#fff}.legacy-loading{padding:36px 30px;color:#6b7280}.legacy-module-actions{height:76px;padding:18px 30px 0;display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #e5e7eb}.legacy-list-surface{background:#fff}.legacy-list-surface .module-list-head{padding:20px 30px 14px}.legacy-count{font-size:12px;color:#6b7280}.legacy-task-list{border-top:1px solid #f3f4f6}.legacy-task-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 30px;border-bottom:1px solid #e5e7eb;background:#fff}.legacy-task-item:hover{background:#f9fafb}.legacy-task-item.active{background:#f7faff}.legacy-task-number{width:30px;height:30px;border-radius:8px;background:#f3f4f6;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.legacy-task-item.active .legacy-task-number{background:#e8effd;color:#1a56db}.legacy-task-title-row{display:flex;align-items:center;gap:9px}.legacy-task-name{font-size:14px;font-weight:700;color:#111827}.legacy-task-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:11px;color:#6b7280}.legacy-cloud-path{margin-top:5px;font-size:11px;color:#9ca3af}.legacy-task-actions{display:flex;gap:8px}.legacy-task-actions .primary-button,.legacy-task-actions .danger-button{padding:6px 11px;font-size:12px}.legacy-empty{padding:52px 24px;text-align:center;color:#9ca3af}.legacy-empty p{margin-bottom:14px}.legacy-create-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px 30px 14px}.legacy-task-create{margin:0 30px 24px;padding:20px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.legacy-task-create form{display:grid;gap:18px}.legacy-task-settings{display:grid;grid-template-columns:1fr 1fr;gap:16px}.legacy-cloud-storage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.task-create-copy{font-size:11px;color:#9ca3af;margin-top:5px}.task-action-group{display:flex;align-items:center;gap:10px}.task-search-bar{display:flex;align-items:center;gap:8px}.task-search-bar .form-input{width:260px;height:38px}.task-search-bar .secondary-button{height:38px;padding:0 18px}
.plans-page .template-plan-list:has(.template-plan-item){display:block;padding:0;min-height:0}.template-plan-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 30px;border-bottom:1px solid #e5e7eb;background:#fff}.template-plan-item:last-child{border-bottom:0}.template-plan-name{font-size:14px;font-weight:700;color:#111827}.template-plan-desc{font-size:11px;line-height:1.55;color:#6b7280}.entity-meta{font-size:11px;color:#6b7280;margin-top:4px;word-break:break-all}.entity-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.entity-actions button{padding:6px 11px;font-size:12px}
.plans-page .template-plan-item{grid-template-columns:minmax(0,1fr) auto}.legacy-archive-page .legacy-empty{display:block!important}.legacy-archive-page .legacy-empty h3{margin-top:0}.legacy-archive-page .legacy-card-body{min-height:280px;display:flex;align-items:center;justify-content:center}
.legacy-task-create .form-label{display:block;margin-bottom:7px}.legacy-task-create .form-input,.legacy-task-create .form-select{width:100%;min-height:40px;padding:9px 12px;border:1px solid #d1d5db;border-radius:7px;background:#fff;font:inherit}.legacy-task-create .legacy-task-settings .form-label{margin-bottom:7px}.legacy-task-create .legacy-cloud-storage{margin-top:2px}
.modal-overlay{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.45);backdrop-filter:blur(2px)}.modal-overlay.show{display:flex}.modal{width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:12px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:17px;color:#111827}.modal-subtitle{margin:4px 0 0;font-size:12px;color:#8a949b}.modal-close{width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#6b7280;font-size:22px;cursor:pointer}.modal-close:hover{background:#f3f4f6}.modal-body{padding:22px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid #e5e7eb;background:#fafbfc}.manual-match-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.manual-match-form select,.manual-match-form input{min-height:42px;padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff;font:inherit}.manual-match-form input{grid-column:1/-1}@media(max-width:700px){.modal-overlay{padding:12px}.manual-match-form{grid-template-columns:1fr}.manual-match-form input{grid-column:auto}}
.manual-match-note{padding:12px 14px;margin-bottom:18px;border-radius:8px;background:#eef5f8;color:#5b6770;font-size:13px;line-height:1.7}.manual-match-field-labels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px;color:#4b5563;font-size:12px}.manual-match-hint{margin-top:14px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:7px;background:#f9fafb;color:#6b7280;font-size:12px}.manual-existing-links{margin-top:20px}.manual-existing-links h4{margin:0 0 10px;font-size:14px}.manual-existing-links>div{display:flex;justify-content:space-between;padding:8px 10px;border-top:1px solid #eef0f2;font-size:12px}.manual-existing-links p{margin:0;color:#9ca3af;font-size:12px}@media(max-width:700px){.manual-match-field-labels{grid-template-columns:1fr}}
.plans-workflow-page .template-wizard-steps{max-width:none;margin:18px 30px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.plans-workflow-page .wizard-step{position:relative;border:0;border-right:1px solid #e5e7eb;border-radius:0;padding:15px 18px;background:#fff;color:#6b7280}.plans-workflow-page .wizard-step:last-child{border-right:0}.plans-workflow-page .wizard-step.active{background:#f7faff;color:#1f2937}.plans-workflow-page .wizard-step.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#1a56db}.plans-workflow-page .wizard-step b{width:26px;height:26px}.plans-workflow-page .template-workflow-toolbar{max-width:none;margin:18px 30px 14px}.plans-workflow-page .template-setup-panel,.plans-workflow-page .plan-meta,.plans-workflow-page #planEditor>.admin-panel{max-width:none;margin:18px 30px 0;border:1px solid #e5e7eb;border-radius:10px;box-shadow:none}.plans-workflow-page .template-setup-panel{padding:18px}.plans-workflow-page .plan-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.plans-workflow-page .capability-picker{grid-column:1/-1}.plans-workflow-page .template-setup-actions{grid-column:1/-1}
.recognition-history-page .legacy-recognition-upload{padding:18px 30px 0}.recognition-history-page .module-upload-body{padding:16px 18px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.upload-plan-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.upload-plan-row label{display:grid;gap:6px;font-size:12px;color:#6b7280}.upload-plan-row input,.upload-plan-row select{width:100%;padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff}.upload-bar{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px dashed #d1d5db;border-radius:10px;background:#fbfcfe;cursor:pointer}.upload-bar:hover{border-color:#1a56db;background:#f7faff}.upload-bar.locked{opacity:.58}.upload-bar-icon{width:36px;height:36px;border-radius:8px;background:#e8effd;color:#1a56db;display:flex;align-items:center;justify-content:center}.upload-bar-text{flex:1}.upload-bar-title{font-size:13px;font-weight:700;color:#374151}.upload-bar-sub{font-size:11px;color:#9ca3af;margin-top:4px}.legacy-queue-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px}.legacy-queue-head>div:last-child{display:flex;gap:8px}.legacy-queue-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f9fafb;border-radius:8px;margin-bottom:7px}.legacy-queue-item b,.legacy-queue-item small{display:block}.legacy-queue-item b{font-size:12px}.legacy-queue-item small{font-size:10px;color:#9ca3af;margin-top:3px}.recognition-history-page .legacy-recognition-list{margin-top:18px;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.recognition-history-page .legacy-recognition-list .module-list-head{padding:14px 30px}.recognition-history-page .module-list-tools .form-input{width:260px;padding:6px 10px;font-size:12px}.recognition-history-page table{min-width:880px}
.legacy-invoice-heading{padding:18px 30px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.legacy-invoice-heading .module-title{font-size:18px;color:#111827}.legacy-invoice-heading #backToInvoiceUpload{margin-left:auto;white-space:nowrap}.invoice-history-table{min-width:1080px!important}.recognition-history-page .module-list-tools{display:flex;gap:8px}.recognition-history-page .module-list-tools select{width:130px;padding:6px 10px;font-size:12px}.invoice-history-table .num{text-align:right;white-space:nowrap}.recognition-history-page .upload-bar{justify-content:flex-start}.recognition-history-page .upload-bar>button{flex:0 0 auto;white-space:nowrap}.recognition-history-page .upload-bar>.invoice-results-button{order:4}@media(max-width:700px){.recognition-history-page .upload-bar{flex-wrap:wrap}.recognition-history-page .upload-bar-text{min-width:calc(100% - 52px)}.recognition-history-page .upload-bar>button{margin-left:auto}.recognition-history-page .upload-bar>.invoice-results-button{margin-left:0}}
.invoice-upload-history{margin-top:14px;border:1px solid #e3eaec;border-radius:10px;background:#fbfcfd;overflow:hidden}.invoice-upload-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #e3eaec}.invoice-upload-history-head>div{display:flex;align-items:center;gap:10px}.invoice-upload-history-head strong{font-size:12px;color:#26323b}.invoice-upload-history-head span{font-size:11px;color:#8a949b}.invoice-upload-history-head .danger-button{padding:5px 10px;font-size:11px}.invoice-upload-history-list{padding:4px 14px}.invoice-upload-history-item{display:grid;grid-template-columns:20px minmax(220px,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f3}.invoice-upload-history-item:last-child{border-bottom:0}.invoice-upload-history-file b,.invoice-upload-history-file small{display:block}.invoice-upload-history-file b{font-size:12px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-upload-history-file small{margin-top:3px;font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-upload-history-status{font-size:11px;white-space:nowrap;color:#6b7280}.invoice-upload-history-status.is-complete{color:#167245}.invoice-upload-history-status.is-failed{color:#8a2524}.invoice-upload-history-status.is-processing{color:#a16207}@media(max-width:700px){.invoice-upload-history-head{align-items:flex-start;flex-direction:column}.invoice-upload-history-item{grid-template-columns:20px 1fr;gap:7px}.invoice-upload-history-status{grid-column:2;justify-self:start}}
.matching-history-page{display:flex;flex-direction:column}.matching-history-page .task-workspace{flex:1;padding:0}.match-workbench{background:#fff}.match-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-bottom:1px solid #e5e7eb}.match-toolbar-title{font-size:14px;font-weight:700}.match-toolbar-summary{font-size:11px;font-weight:400;color:#6b7280;margin-left:6px}.match-toolbar-controls{display:flex;align-items:center;gap:8px}.match-toolbar .tabs{display:flex;margin:0;border:0;gap:2px}.match-toolbar .tab{border:0;border-bottom:2px solid transparent;background:transparent;padding:8px 10px;color:#6b7280;cursor:pointer}.match-toolbar .tab.active{color:#1a56db;border-bottom-color:#1a56db}.matching-history-page .match-table-scroll{overflow:auto}.matching-history-page .match-table{min-width:1320px}.matching-history-page .match-table td:last-child{display:flex;gap:6px}.task-footer{height:40px;display:flex;align-items:center;gap:26px;padding:0 18px;border-top:1px solid #e5e7eb;background:#fbfcfe;color:#6b7280;font-size:11px}.task-footer strong{color:#374151}.manual-match-form{display:grid;grid-template-columns:1fr 1fr 140px;gap:12px}.manual-match-form select,.manual-match-form input{padding:9px 10px;border:1px solid #d1d5db;border-radius:8px}
.ledger-history-page .kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 30px}.ledger-history-page .kpi-card{padding:18px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.kpi-label{font-size:12px;color:#6b7280}.kpi-value{font-size:22px;font-weight:700;color:#111827;margin-top:7px}.kpi-unit{font-size:12px;font-weight:500;margin-left:4px}.kpi-trend{font-size:10px;color:#6b7280;margin-top:6px}.kpi-trend.warn{color:#d97706}.ledger-history-list{margin-top:0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.ledger-history-list .module-list-head{padding:14px 30px}.ledger-history-list .module-list-tools{display:flex;gap:8px;align-items:center}.ledger-history-list .module-list-tools input,.ledger-history-list .module-list-tools select{width:auto;padding:6px 10px;font-size:12px}.ledger-history-list table{min-width:1280px}
.fatal-page{min-height:100vh;display:grid;place-items:center;background:#f6f8fa;padding:24px}.fatal-card{width:min(520px,100%);padding:32px;border:1px solid #dce3e8;border-radius:10px;background:#fff;box-shadow:0 8px 28px rgba(31,45,61,.08)}.fatal-card h1{margin:0 0 12px;font-size:22px}.fatal-card p{color:#65717c;line-height:1.7;word-break:break-word}.fatal-actions{display:flex;gap:12px;margin-top:22px}.fatal-actions a{text-decoration:none}
.legacy-detail-modal{width:min(1080px,calc(100vw - 48px));max-width:1080px}.legacy-detail-modal .modal-header small{display:block;margin-top:5px;color:#6b7280;font-size:12px;font-weight:400}.legacy-detail-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.legacy-detail-summary span{min-width:150px;padding:11px 14px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#6b7280;font-size:12px}.legacy-detail-summary b{display:block;margin-top:4px;color:#111827;font-size:15px}.legacy-detail-modal table{min-width:760px}
.invoice-scope-picker{position:relative;width:100%}.invoice-scope-picker summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;cursor:pointer;list-style:none}.invoice-scope-picker summary::-webkit-details-marker{display:none}.invoice-scope-picker[open] summary{border-color:#1a56db;box-shadow:0 0 0 3px rgba(26,86,219,.1)}.invoice-scope-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;max-height:220px;overflow:auto;padding:6px;border:1px solid #dce6ea;border-radius:9px;background:#fff;box-shadow:0 12px 28px rgba(31,42,48,.14)}.invoice-scope-menu label{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:6px;color:#374151;cursor:pointer}.invoice-scope-menu label:hover{background:#f2f7f9}.invoice-scope-menu input{width:auto!important;padding:0!important}.upload-plan-row label small{font-size:10px;color:#9ca3af}
.supplier-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.supplier-form-grid label{display:grid;gap:7px;color:#4b5563;font-size:12px}.supplier-form-grid label:first-child{grid-column:1/-1}.rebate-ready-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.rebate-ready-summary>div{padding:18px;border:1px solid #e5e7eb;border-radius:9px;background:#f9fafb}.rebate-ready-summary span,.rebate-ready-summary b{display:block}.rebate-ready-summary span{color:#6b7280;font-size:12px}.rebate-ready-summary b{margin-top:8px;color:#111827;font-size:22px}.legacy-rebate-page .legacy-page-actions,.legacy-archive-page .legacy-inline-actions{display:flex;align-items:center;gap:10px}.legacy-page-actions input[type=month],.legacy-inline-actions input[type=month]{width:160px}@media(max-width:700px){.supplier-form-grid,.rebate-ready-summary{grid-template-columns:1fr}.supplier-form-grid label:first-child{grid-column:auto}}
.plans-workflow-page .wizard-step>span{display:grid;gap:2px}.plans-workflow-page .wizard-step small{color:#9ca3af;font-size:10px;font-weight:400}.template-upload-surface,.template-plan-setup,.template-save-success{margin:18px 30px 0;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.template-plan-setup-head,.template-upload-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid #e5e7eb}.template-plan-setup-title{font-size:14px;font-weight:700;color:#111827}.template-plan-setup-note{margin-top:5px;color:#6b7280;font-size:11px}.template-plan-setup-body,.template-upload-body{padding:18px}.template-plan-setup-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.template-plan-setup-body>label{display:grid;gap:7px;color:#4b5563;font-size:12px}.template-upload-progress{height:6px;margin-top:14px;border-radius:999px;overflow:hidden;background:#e9eef3}.template-upload-progress .recognition-progress-fill{height:100%;width:0;background:#1a56db;transition:width .2s}.template-mapping-surface{padding:0;overflow:hidden}.template-mapping-surface .panel-heading{padding:16px 18px}.template-structure-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:16px 18px;border-top:1px solid #e5e7eb;background:#fbfcfe}.template-structure-grid>label{display:grid;gap:7px;color:#4b5563;font-size:12px}.template-structure-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.template-mapping-surface .module-upload-help{margin:14px 18px}.template-mapping-surface .table-scroll{border-top:1px solid #e5e7eb}.mapping-confidence{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border-radius:999px;font-size:10px}.mapping-confidence.high{background:#eaf7ef;color:#167245}.mapping-confidence.medium{background:#fff7df;color:#a16207}.mapping-confidence.low{background:#fef0ec;color:#b5472f}.template-save-success{padding:58px 24px;text-align:center}.template-save-success .entity-icon{width:56px;height:56px;margin-bottom:18px;font-size:26px}.template-save-success h2{margin:0 0 10px;color:#111827;font-size:20px}.template-save-success p{max-width:520px;margin:0 auto 22px;color:#6b7280;font-size:13px;line-height:1.8}@media(max-width:800px){.plans-workflow-page .template-wizard-steps{grid-template-columns:1fr 1fr}.plans-workflow-page .wizard-step:nth-child(2){border-right:0}.template-plan-setup-body,.template-structure-grid{grid-template-columns:1fr}}@media(max-width:560px){.plans-workflow-page .template-wizard-steps{grid-template-columns:1fr}.plans-workflow-page .wizard-step{border-right:0;border-bottom:1px solid #e5e7eb}.template-plan-setup,.template-upload-surface,.template-save-success,.plans-workflow-page .template-workflow-toolbar,.plans-workflow-page .template-wizard-steps{margin-left:14px;margin-right:14px}}
.fi{font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif;display:inline-flex;align-items:center;justify-content:center;line-height:1}.declaration-history-page .module-shell{max-width:none}.declaration-plan-gate{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:13px 15px;border:1px solid #e5e7eb;border-radius:9px;background:#fbfcfe}.declaration-plan-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.declaration-plan-controls .form-select{width:280px}.declaration-history-page .upload-bar.drag{border-color:#1a56db;background:#eef5ff}.declaration-history-page .upload-bar.busy{opacity:.68;pointer-events:none}.declaration-history-page #declQueueCount{margin-left:8px;color:#6b7280;font-size:12px}.file-item{display:flex;align-items:center;gap:12px;padding:12px 10px;border-top:1px solid #eef0f2;background:#fff}.file-item:first-child{border-top:0}.file-order{width:24px;text-align:center;color:#6b7280;font-weight:600}.file-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#eef4ff;color:#1a56db}.file-info{flex:1;min-width:0}.file-name{overflow:hidden;color:#111827;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.file-meta{margin-top:3px;color:#8a949b;font-size:11px}.file-status{padding:4px 9px;border-radius:999px;font-size:11px;white-space:nowrap}.file-status.pending{background:#f3f4f6;color:#6b7280}.file-status.uploading,.file-status.processing{background:#eaf2ff;color:#1a56db}.file-status.success{background:#eaf7ef;color:#167245}.file-status.error{background:#fef0ec;color:#b5472f}.file-item .action-btns{display:flex;gap:5px}.file-item .action-btns button{width:30px;height:30px;border:1px solid #d6dee5;border-radius:6px;background:#fff;color:#52606d;cursor:pointer}.file-item .action-btns button:disabled{opacity:.35;cursor:not-allowed}.file-item .action-btns .del{color:#b42318}.recognition-progress{display:none;margin-top:8px}.recognition-progress.show{display:block}.recognition-progress-head{display:flex;align-items:center;justify-content:space-between;color:#6b7280;font-size:10px}.recognition-progress-track{height:5px;margin-top:5px;border-radius:999px;overflow:hidden;background:#e5e7eb}.recognition-progress-fill{height:100%;width:0;background:#1a56db;transition:width .2s}.recognition-progress-fill.success{background:#1f9d62}.recognition-progress-fill.error{background:#dc4c3f}.batch-progress-box{display:none;margin:8px 0 12px;padding:10px 12px;border:1px solid #dbe4ed;border-radius:8px;background:#f9fbfd}.batch-progress-box.show{display:block}.declaration-ledger-table{table-layout:fixed;min-width:1020px}.declaration-ledger-table th:first-child{width:42px}.declaration-ledger-table th:nth-child(2){width:50px}.declaration-ledger-table th:nth-child(3){width:258px}.declaration-ledger-table th:nth-child(4){width:82px}.declaration-ledger-table th:nth-child(5){width:150px;text-align:right}.declaration-ledger-table th:nth-child(6){width:150px}.declaration-ledger-table th:nth-child(7){width:330px}.declaration-ledger-table td:nth-child(3) small{display:block;margin-top:4px;color:#6b7280;font-size:11px}.amount-cell{text-align:right;white-space:nowrap}.decl-ledger-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}.decl-ledger-actions .secondary-button,.decl-ledger-actions .danger-button{padding:6px 8px;font-size:11px}.declaration-batch-bar{position:fixed;left:50%;bottom:22px;z-index:50;display:flex;align-items:center;gap:10px;transform:translateX(-50%);padding:10px 12px;border:1px solid #d6dee5;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.18)}.declaration-batch-bar[hidden]{display:none}.declaration-batch-bar>span{padding:0 8px;color:#4b5563;font-size:12px}.declaration-batch-bar .batch-clear{border:0;background:transparent;color:#6b7280;cursor:pointer}.declaration-history-page .empty{padding:32px 20px;text-align:center;color:#8a949b}.declaration-history-page .empty-icon{font-size:40px;color:#b8c3cc}@media(max-width:800px){.declaration-plan-controls{width:100%}.declaration-plan-controls .form-select{width:100%}.file-item{align-items:flex-start}.file-status{display:none}.decl-ledger-actions{flex-wrap:wrap}}

/* Historical 20260806 workspace geometry and visual language. */
.workspace-shell .sidebar{width:212px;flex:0 0 212px;border-right:3px solid #e9ad5f;box-shadow:2px 0 12px rgba(15,41,77,.25)}
.workspace-shell .logo{height:68px;padding:14px 18px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.workspace-shell .logo-icon{grid-row:1/3;width:36px;height:36px;margin:0;border-radius:9px;background:linear-gradient(135deg,#8abcd1,#427e94)}
.workspace-shell .logo h1{font-size:17px;line-height:20px;letter-spacing:.04em}
.workspace-shell .logo p{font-size:10px;line-height:14px;margin:0;color:rgba(199,214,229,.6);white-space:nowrap}
.workspace-shell .nav{padding:12px 8px}
.workspace-shell .nav-group-title{padding:10px 12px 6px;font-size:10px;letter-spacing:.08em}
.workspace-shell .workspace-app-label{padding:5px 12px 7px;font-size:12px}
.workspace-shell .nav-item{padding:9px 12px;font-size:13px;font-weight:500}
.workspace-shell .nav-item .icon{font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif;font-size:17px}
.workspace-shell .topbar{height:64px;flex-basis:64px;padding:0 24px;gap:16px;background:rgba(255,255,255,.82);box-shadow:0 1px 2px rgba(31,42,48,.04)}
.workspace-shell .topbar-back{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 9px;border:1px solid #e3eaec;border-radius:7px;background:#fff;color:#3f4a52;font-size:11px;font-weight:600;cursor:pointer}
.workspace-shell .topbar-back-icon{font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif;font-size:12px}
.workspace-shell .topbar-title{font-size:16px;font-weight:600;white-space:nowrap}
.workspace-shell .tb-crumb{margin-right:7px;color:#8a949b;font-size:12px;font-weight:500}
.workspace-shell .tb-sep{margin-right:7px;color:#d3dbe0;font-weight:400}
.workspace-shell .topbar-right{gap:8px}
.workspace-shell .cmdk-trigger{display:flex;align-items:center;gap:6px;height:34px;padding:6px 10px;border:1px solid #e3eaec;border-radius:8px;background:#fff;color:#5b6770;font-size:12px;white-space:nowrap;cursor:pointer}
.workspace-shell .cmdk-trigger kbd{margin-left:2px;padding-left:6px;border-left:1px solid #e3eaec;color:#8a949b;font-family:inherit;font-size:11px}
.workspace-shell .status{padding:4px 12px;font-size:12px;font-weight:600}
.workspace-shell .search-box{position:relative}
.workspace-shell .search-box:before{content:"\e721";position:absolute;left:11px;top:50%;z-index:1;transform:translateY(-50%);font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif;color:#8a949b;font-size:14px}
.workspace-shell .search-box input{width:292px;height:36px;padding:8px 12px 8px 32px;border-color:#d3dbe0;border-radius:8px;background:#fff}
.workspace-shell .icon-btn{width:auto;height:36px;padding:0 9px;border:1px solid transparent;border-radius:8px;background:transparent;color:#3f4a52}
.workspace-shell .theme-button{width:36px;padding:0;font-size:18px}
.workspace-shell .content{padding:24px 30px;background:linear-gradient(180deg,#f6f8f9 0%,#fbfcfd 100%)}
.workspace-shell .app-footer{height:40px;flex-basis:40px;padding:0 24px;display:flex;justify-content:space-between;background:#fbfcfe;font-size:11px}
.workspace-shell .app-footer-center{flex:1}
.workspace-shell .legacy-module-page{min-height:calc(100vh - 104px);margin:-24px}
.workspace-shell .primary-button{padding:9px 16px;border:1px solid #3a7088;border-radius:8px;background:linear-gradient(180deg,#4a8aa0,#427e94);font-size:13.5px}
.workspace-shell .secondary-button{padding:9px 16px;border-color:#d3dbe0;border-radius:8px;color:#2c353b}
.declaration-history-page .legacy-recognition-upload{margin:18px 30px 0;padding:0;border:1px solid #e3eaec;border-radius:12px;box-shadow:0 1px 2px rgba(31,42,48,.05),0 1px 3px rgba(31,42,48,.04)}
.declaration-history-page .module-upload-body{padding:16px 18px}
.declaration-history-page .declaration-plan-gate{padding:2px 2px 14px;margin-bottom:14px;border:0;border-bottom:1px solid #e3eaec;border-radius:0;background:transparent;font-size:13px}
.declaration-history-page .declaration-plan-gate .module-upload-help{display:none}
.declaration-history-page .declaration-plan-controls .form-select{width:280px;height:40px;padding:8px 12px;border:1px solid #d3dbe0;border-radius:8px;background:#fff}
.declaration-history-page .upload-bar{min-height:76px;margin:0 0 16px;padding:14px 18px;border:1.5px dashed #c9dce4;border-radius:12px;background:linear-gradient(180deg,#fcfeff,#f4f9fb)}
.declaration-history-page .upload-bar-icon{width:42px;height:42px;border-radius:10px;background:#eef5f8;color:#427e94;font-size:20px}
.declaration-history-page .upload-bar-title{color:#1f2a30;font-size:14px;font-weight:600}
.declaration-history-page .upload-bar-sub{margin-top:2px;color:#5b6770;font-size:12px}
.declaration-history-page .legacy-recognition-list{margin-top:18px;border:1px solid #e3eaec;border-radius:12px;box-shadow:0 1px 2px rgba(31,42,48,.05),0 1px 3px rgba(31,42,48,.04)}
.declaration-history-page .legacy-recognition-list .module-list-head{min-height:62px;padding:16px 18px;border-bottom:1px solid #e3eaec;border-radius:12px 12px 0 0}
.declaration-history-page .module-list-title{font-size:15px;font-weight:600}
.declaration-history-page .module-list-tools .form-input{width:260px;height:34px;padding:6px 10px;border:1px solid #d3dbe0;border-radius:8px;font-size:12px}
.declaration-history-page .table-scroll{overflow:auto;border-radius:0 0 12px 12px}
.declaration-history-page .declaration-ledger-table{width:100%;min-width:880px;table-layout:fixed;font-size:13.5px}
.declaration-history-page .declaration-ledger-table th{padding:12px 11px;border-bottom:1px solid #d3dbe0;background:#f4f7f9;color:#3f4a52;font-size:12.5px;font-weight:600}
.declaration-history-page .declaration-ledger-table td{padding:13px 11px;border-bottom:1px solid #eef2f4}
.declaration-history-page .declaration-ledger-table th:nth-child(6){width:132px}
.declaration-history-page .declaration-ledger-table th:nth-child(7){width:230px}
.declaration-history-page .empty{min-height:190px;padding:52px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.declaration-history-page .empty-icon{margin-bottom:8px;color:#427e94;opacity:.45}
.declaration-history-page .empty p{margin:0}
@media(max-width:1180px){.workspace-shell .sidebar{width:184px;flex-basis:184px}.workspace-shell .logo p{display:none}.workspace-shell .search-box input{width:220px}}
.workspace-shell .nav-item.active{background:rgba(138,189,209,.16);color:#fff;box-shadow:none}
.workspace-shell .nav-item.active:before{display:block;background:#e9ad5f}
.declaration-history-page .upload-bar.locked{opacity:1}
.declaration-history-page .upload-bar-sub{font-size:0}
.declaration-history-page .upload-bar-sub:before{content:"每批最多 7 份 · 支持 PDF / JPG / PNG";font-size:12px}

/* Plan editor: keep the field-mapping grid inside the page. */
.plans-workflow-page{width:auto;min-width:0;max-width:none}
.plans-workflow-page #planEditor,.plans-workflow-page .template-mapping-surface{width:auto;min-width:0;max-width:none}
.plans-workflow-page .template-mapping-surface .table-scroll{width:100%;max-width:100%;margin:0;padding-top:4px;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain}
.plans-workflow-page .mapping-table{width:100%;min-width:0;table-layout:fixed}
.plans-workflow-page .mapping-table th,.plans-workflow-page .mapping-table td{min-width:0;overflow:hidden;vertical-align:middle}
.plans-workflow-page .mapping-table th:nth-child(1){width:56px}
.plans-workflow-page .mapping-table th:nth-child(2){width:88px}
.plans-workflow-page .mapping-table th:nth-child(3){width:26%}
.plans-workflow-page .mapping-table th:nth-child(5){width:160px}
.plans-workflow-page .mapping-table td:nth-child(3){overflow-wrap:anywhere;word-break:break-word}
.plans-workflow-page .mapping-table .map-source{display:block;width:100%;min-width:0;max-width:100%;height:42px;padding:8px 12px;border:1px solid #d3dbe0;border-radius:8px;background:#fff;text-overflow:ellipsis}
.mapping-advanced-tools{margin-top:8px}.mapping-source-tools{display:flex;align-items:center;gap:8px}.mapping-source-tools .map-transform{width:150px;min-width:120px;padding:6px 8px}.map-transform-length-wrap{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.map-transform-length{width:66px;padding:6px}.mapping-calculation-tools{padding:9px;border:1px solid #dbe4e8;border-radius:8px;background:#fbfcfe}.mapping-formula-row{display:flex;align-items:flex-start;gap:7px;margin-top:7px}.map-calculation-expression{min-height:74px;resize:vertical}.map-test-formula{flex:0 0 auto}.map-calculation-result{min-height:18px;margin-top:5px;font-size:11px;color:#6b7280}.map-calculation-result.success{color:#15803d}.map-calculation-result.error{color:#b42318}.mapping-calculation-settings{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:11px;color:#5b6770}.mapping-calculation-settings label{display:inline-flex;align-items:center;gap:4px}.map-calculation-decimals{width:56px;padding:5px}.map-calculation-missing{width:auto;padding:5px 7px}.mapping-advanced-tools [hidden]{display:none!important}
.plans-workflow-page .mapping-confidence{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Plan field architecture: source hierarchy first, processing rules second. */
.mapping-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 18px 18px}
.mapping-guide>div{display:grid;gap:4px;min-width:0;padding:13px 14px;border:1px solid #e6ebef;border-radius:12px;background:linear-gradient(180deg,#fff,#fafcfd)}
.mapping-guide b{color:#25313a;font-size:12px;letter-spacing:.01em}.mapping-guide span{color:#75818b;font-size:11px;line-height:1.55}
.plans-workflow-page .mapping-table th{padding:11px 14px;border-bottom:1px solid #dfe6ea;background:#f7f9fa;color:#66727c;font-size:11px;font-weight:650;letter-spacing:.02em;text-transform:none}
.plans-workflow-page .mapping-table td{padding:14px;border-bottom:1px solid #edf1f3;vertical-align:top;background:#fff}
.plans-workflow-page .mapping-table tbody tr:hover td{background:#fbfdfe}
.plans-workflow-page .mapping-table th:nth-child(1){width:52px}.plans-workflow-page .mapping-table th:nth-child(2){width:76px}.plans-workflow-page .mapping-table th:nth-child(3){width:23%}.plans-workflow-page .mapping-table th:nth-child(5){width:140px}
.mapping-column-letter{display:inline-grid;place-items:center;min-width:34px;height:30px;border:1px solid #dbe3e8;border-radius:8px;background:#f7f9fa;color:#44515b;font-size:12px;font-weight:700}
.mapping-enterprise-field{display:block;padding-top:6px;color:#26323b;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.plans-workflow-page .mapping-table .map-source{height:46px;padding:0 38px 0 13px;border:1px solid #cfd9df;border-radius:11px;background-color:#fff;color:#26323b;font-size:12px;font-weight:550;box-shadow:0 1px 2px rgba(28,42,50,.03);transition:border-color .16s ease,box-shadow .16s ease}
.plans-workflow-page .mapping-table .map-source:hover{border-color:#9fb7c2}.plans-workflow-page .mapping-table .map-source:focus{border-color:#4b8ca3;box-shadow:0 0 0 3px rgba(75,140,163,.13);outline:0}
.mapping-advanced-tools{display:grid;gap:8px;margin-top:9px}.mapping-source-meta{display:flex;align-items:center;gap:7px;min-height:22px;color:#77838d;font-size:11px;line-height:1.4}
.mapping-source-pill{display:inline-flex;align-items:center;flex:0 0 auto;padding:3px 7px;border-radius:999px;background:#edf6f8;color:#33768c;font-size:10px;font-weight:700}.mapping-source-pill.system{background:#eef2ff;color:#5264a8}.mapping-source-pill.formula{background:#f4efff;color:#7755a6}
.mapping-source-tools{min-height:40px;padding:8px 10px;border:1px solid #e5eaed;border-radius:10px;background:#fafcfd}.mapping-tool-label{flex:0 0 auto;color:#5e6a73;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.mapping-source-tools .map-transform{width:156px;min-width:138px;height:34px;border-color:#d8e0e5;border-radius:8px;background:#fff;font-size:11px}.map-transform-length{height:34px;border-radius:8px}
.mapping-source-tools .map-transform-text{width:180px;height:34px;border-radius:8px;font-size:11px}
.mapping-calculation-tools{padding:12px;border:1px solid #ded8ec;border-radius:11px;background:#fbfaff}.mapping-calculation-tools>.mapping-tool-label{display:block;margin-bottom:8px;color:#6f5a91}.mapping-calculation-tools .map-calculation-variable{height:38px;border-color:#ddd6eb;border-radius:9px;background:#fff}
.mapping-formula-row{gap:8px;margin-top:8px}.map-calculation-expression{min-height:78px;border-radius:9px;background:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.55}.map-test-formula{height:38px;white-space:nowrap}
.mapping-confidence{margin:6px 0 0!important;padding:4px 8px!important;font-weight:650}
@media(max-width:900px){.mapping-guide{grid-template-columns:1fr}.mapping-guide>div{padding:11px 12px}}

/* Mapping editor polish: give the formula editor a deliberate two-column rhythm. */
.plans-workflow-page .mapping-table th:nth-child(3){width:22%}
.plans-workflow-page .mapping-table th:nth-child(4){width:auto}
.plans-workflow-page .mapping-table th:nth-child(1),.plans-workflow-page .mapping-table td:nth-child(1){text-align:center}
.plans-workflow-page .mapping-table th:nth-child(2),.plans-workflow-page .mapping-table td:nth-child(2){text-align:center}
.plans-workflow-page .mapping-table td:nth-child(3){padding-right:24px}
.plans-workflow-page .mapping-table td:nth-child(4){padding-left:8px;padding-right:18px}
.plans-workflow-page .mapping-table tbody tr{height:72px}
.plans-workflow-page .mapping-table tbody tr:has(.mapping-advanced-tools){height:auto}
.plans-workflow-page .mapping-table th:nth-child(5){width:132px}
.plans-workflow-page .mapping-table td:nth-child(4){min-width:0}
.plans-workflow-page .mapping-table th:last-child,.plans-workflow-page .mapping-table td:last-child{display:none}
.plans-workflow-page .mapping-table th:nth-child(4){width:auto}
.mapping-source-meta{display:none!important}
.mapping-toggle{position:relative;display:inline-block;width:36px;min-width:36px;height:22px;padding:0;border:0;border-radius:999px;background:#e0524d;box-shadow:inset 0 0 0 1px rgba(122,25,22,.18),0 1px 2px rgba(31,41,55,.12);font-size:0;line-height:0;cursor:pointer;vertical-align:middle;transition:background-color .18s ease,box-shadow .18s ease}
.mapping-toggle::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(31,41,55,.28);transition:transform .18s ease}
.mapping-toggle.is-enabled{background:#35a66f;box-shadow:inset 0 0 0 1px rgba(16,96,57,.16),0 1px 2px rgba(31,41,55,.12)}
.mapping-toggle.is-enabled::after{transform:translateX(14px)}
.mapping-toggle:hover{box-shadow:inset 0 0 0 1px rgba(31,41,55,.16),0 0 0 3px rgba(53,166,111,.14)}
.mapping-toggle.is-disabled:hover{box-shadow:inset 0 0 0 1px rgba(122,25,22,.18),0 0 0 3px rgba(224,82,77,.14)}
.map-enabled{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.mapping-reference-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:9px;padding:10px;border:1px solid #dce7eb;border-radius:10px;background:#f8fbfc}
.mapping-reference-tools label{display:grid;gap:5px;color:#63717a;font-size:11px;font-weight:600}
.mapping-reference-tools .form-select{min-width:0;width:100%;height:36px;padding:0 9px;border:1px solid #cfdde2;border-radius:8px;background:#fff;font-size:12px}
.mapping-reference-tools[hidden]{display:none!important}
.plans-workflow-page .template-structure-grid{grid-template-columns:minmax(360px,420px) minmax(240px,1fr);gap:12px}
.plans-workflow-page .template-structure-row{grid-template-columns:72px 72px;justify-content:start;gap:8px}
.plans-workflow-page .template-structure-grid>label:nth-child(2){display:grid;grid-template-columns:72px 72px;gap:7px 8px;align-items:end}
.plans-workflow-page .template-structure-grid>label:nth-child(2) .template-structure-row{display:contents}
.plans-workflow-page .template-structure-grid>label:nth-child(2) .form-input{width:72px}
.mapping-reference-tools>select{min-width:0;width:100%;height:36px;padding:0 9px;border:1px solid #cfdde2;border-radius:8px;background:#fff;font-size:12px}
.mapping-calculation-tools{display:grid;gap:9px;min-width:0}
.mapping-calculation-tools .map-calculation-variable{width:100%;min-width:0}
.mapping-formula-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0}
.map-calculation-expression{display:block;width:100%;min-width:0;box-sizing:border-box;padding:10px 12px}
.mapping-calculation-settings{padding-top:2px;border-top:1px solid #eeeaf5}
.mapping-calculation-settings label{min-height:32px}
.mapping-source-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mapping-source-meta{padding:1px 0}
@media(max-width:1100px){
  .plans-workflow-page .mapping-table{min-width:980px}
  .mapping-formula-row{grid-template-columns:minmax(0,1fr) 86px}
}

/* Make mapping rows easy to scan without making the table feel loose. */
.plans-workflow-page .mapping-table tbody tr{height:82px;}
.plans-workflow-page .mapping-table tbody tr:nth-child(even) td{background:#fbfcfd;}
.plans-workflow-page .mapping-table tbody tr:hover td{background:#f3f8fa;}
.plans-workflow-page .mapping-table tbody tr + tr td{border-top:6px solid #f3f6f7;}
.plans-workflow-page .mapping-table tbody tr td{border-bottom:1px solid #dfe7eb;}
.plans-workflow-page .mapping-table tbody tr:has(.mapping-advanced-tools){height:auto;}
.calculation-sheet-picker{position:relative;margin-top:8px;}
.calculation-sheet-trigger{height:34px;padding:0 12px;border-color:#cfdde2;color:#427e94;background:#fff;font-size:12px;}
.calculation-sheet-popover{position:absolute;z-index:20;top:40px;left:0;display:grid;grid-template-columns:170px minmax(220px,1fr);width:min(560px,calc(100vw - 80px));min-height:190px;border:1px solid #cfdde2;border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(31,42,48,.16);overflow:hidden;}
.calculation-sheet-popover[hidden]{display:none;}
.calculation-sheet-list{padding:8px;background:#f6fafb;border-right:1px solid #e3eaec;}
.calculation-sheet-item,.calculation-sheet-field{display:block;width:100%;border:0;text-align:left;cursor:pointer;font:inherit;}
.calculation-sheet-item{padding:9px 10px;border-radius:7px;background:transparent;color:#40505a;font-size:12px;}
.calculation-sheet-item:hover,.calculation-sheet-item.is-selected{background:#e7f2f5;color:#2f7187;font-weight:650;}
.calculation-sheet-fields{padding:12px;max-height:260px;overflow:auto;}
.calculation-sheet-fields-title{margin-bottom:8px;color:#593a28;font-size:12px;font-weight:700;}
.calculation-sheet-field{padding:8px 10px;border-bottom:1px solid #edf1f3;background:#fff;color:#26323b;font-size:12px;}
.calculation-sheet-field:hover{background:#f3f8fa;color:#2f7187;}
.plans-workflow-page #suggestFields{display:none!important;}
.plans-workflow-page .editor-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 18px;min-height:74px;}
.plans-workflow-page .editor-actions .form-message{margin-right:auto;}
.plans-workflow-page .editor-actions .primary-button{margin-left:auto;align-self:flex-end;}
.plans-page .template-plan-name .status{display:none!important;}
.plans-page [data-plan-history]{display:none!important;}

/* Sidebar stays scrollable without showing a visual scrollbar. */
.sidebar,.sidebar .nav{scrollbar-width:none;-ms-overflow-style:none}
.sidebar::-webkit-scrollbar,.sidebar .nav::-webkit-scrollbar{width:0;height:0;display:none}
.task-list-tools{margin-left:auto;display:flex;align-items:center}.task-list-tools .form-input{width:240px;height:36px}

@media(max-width:1100px){
  .plans-workflow-page .mapping-table{min-width:860px}
  .plans-workflow-page .template-mapping-surface .table-scroll{scrollbar-width:thin}
}

/* Authoritative historical shell: one geometry for every workspace page. */
.nav-item .icon{font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif}
.workspace-shell .sidebar{width:212px;flex:0 0 212px;border-right:3px solid #e9ad5f;box-shadow:2px 0 12px rgba(15,41,77,.25)}
.workspace-shell .logo{height:68px;padding:14px 18px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.workspace-shell .logo-icon{display:flex;width:36px;height:36px;margin:0;grid-row:1/3;border-radius:9px;background:linear-gradient(135deg,#8abcd1,#427e94)}
.workspace-shell .logo h1{font-size:17px;line-height:20px;letter-spacing:.04em}
.workspace-shell .logo p{display:block;margin:0;color:rgba(199,214,229,.6);font-size:10px;line-height:14px;white-space:nowrap}
.workspace-shell .nav{padding:12px 8px}
.workspace-shell .nav-group-title{padding:10px 12px 6px;color:rgba(199,214,229,.65);font-size:10px;letter-spacing:.08em;border-bottom:1px solid rgba(89,58,40,.4);margin-bottom:6px}
.workspace-shell .workspace-app-label{padding:5px 12px 7px;color:rgba(199,214,229,.85);font-size:12px;font-weight:600}
.workspace-shell .nav-item{padding:9px 12px;color:rgba(199,214,229,.78);font-size:13px;font-weight:500}
.workspace-shell .nav-item .icon{font-size:17px;color:rgba(126,147,171,.95)}
.workspace-shell .nav-item.active{background:rgba(138,189,209,.16);color:#fff;box-shadow:none}
.workspace-shell .nav-item.active:before{display:block;background:#e9ad5f}
@media(max-width:1180px){.workspace-shell .sidebar{width:212px;flex-basis:212px}.workspace-shell .logo p{display:block}}
@media(max-width:1000px){.workspace-shell .sidebar{width:212px;flex-basis:212px}}

.legacy-task-create form>div:first-child{position:relative;z-index:2;margin-bottom:6px}
.legacy-task-create form>div:first-child .form-select{min-height:44px;font-size:15px;line-height:1.4}
.legacy-archive-page .legacy-empty>p{display:none}
.plan-module-option{display:grid!important;grid-template-columns:20px 1fr;gap:10px;align-items:start;padding:12px!important;border:1px solid #dbe4ec;border-radius:8px;background:#fff}
.plan-module-option:has(input:checked){border-color:#3f88a3;background:#f2f9fb}
.plan-module-option span,.plan-module-option em{display:block}.plan-module-option small{color:#3f88a3}.plan-module-option em{margin-top:4px;color:#71808f;font-size:12px;font-style:normal;line-height:1.5}
.business-module-manager{margin-top:24px;padding-top:20px;border-top:1px solid #dbe4ec}.business-module-manager h3{margin:0 0 4px}.business-module-upload{display:inline-flex;align-items:center;cursor:pointer}
/* Task list visual pass: restore the historical entity icon and active rail. */
.task-history-page .legacy-task-item.active{box-shadow:inset 3px 0 0 #1a56db}
.task-history-page .legacy-task-number{width:32px;height:32px;border-radius:8px;background:#eef4ff;color:#1a56db;font-size:0;font-family:"Segoe Fluent Icons","Segoe MDL2 Assets",sans-serif}
.task-history-page .legacy-task-number::before{content:"\e8b7";font-size:16px}
.task-history-page .legacy-task-actions .primary-button{background:linear-gradient(180deg,#4a8aa0,#427e94);border-color:#3a7088}
/* Matching workbench: preserve the historical toolbar/table/footer rhythm. */
.matching-history-page .match-workbench{min-height:calc(100vh - 144px);display:flex;flex-direction:column}
.matching-history-page .match-toolbar{flex-wrap:wrap;align-items:center;padding:14px 18px}
.matching-history-page .match-toolbar-controls{flex-wrap:wrap;justify-content:flex-end}
.matching-history-page .match-table-scroll{flex:1;max-height:calc(100vh - 190px);overflow:auto}
.matching-history-page .match-table th{position:sticky;top:0;z-index:2;background:#f4f7f9}
.matching-history-page .match-table td:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:150px}
.legacy-task-actions .secondary-button{padding:6px 11px;font-size:12px}

/* === 登录页 · 分栏布局 v1.0（数字办公 · 智能协同） === */
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,45%) minmax(0,55%);background:#f6f8f9;font-feature-settings:"tnum" 1}
.login-page--compact .brand-panel{justify-content:center}
.login-page--compact .modules{margin-bottom:0;margin-top:40px}
.brand-panel{position:relative;background:linear-gradient(135deg,#8abcd1 0%,#427e94 100%);color:#fff;padding:48px;overflow:hidden;display:flex;flex-direction:column;min-height:100vh}
.brand-head{display:flex;align-items:center;gap:14px;position:relative;z-index:2}
.brand-logo{width:44px;height:44px;border-radius:12px;background:#427e94;position:relative;flex-shrink:0;box-shadow:0 4px 12px rgba(31,42,48,.12)}
.brand-logo::after{content:"";position:absolute;right:-4px;bottom:-4px;width:14px;height:14px;border-radius:3px;background:#e9ad5f;box-shadow:0 2px 4px rgba(31,42,48,.18)}
.brand-titles{display:flex;flex-direction:column;gap:4px}
.brand-name{font-size:20px;font-weight:700;letter-spacing:.02em}
.brand-sub{font-size:12px;color:#dce7ee}
.hero-title{font-size:34px;font-weight:700;line-height:1.3;margin:48px 0 14px 0;letter-spacing:-.005em;position:relative;z-index:2}
.hero-sub{font-size:15px;color:#e2ecf2;line-height:1.7;margin:0 0 28px 0;max-width:480px;position:relative;z-index:2}
.illustration-wrap{position:relative;border-radius:16px;border:1px solid rgba(255,255,255,.22);overflow:hidden;box-shadow:0 12px 32px rgba(31,42,48,.18);margin-bottom:24px;max-width:516px;background:rgba(255,255,255,.08);aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;z-index:2}
.illustration{width:100%;height:100%;display:block;object-fit:cover}
.illustration-wrap::after{content:"办公智能 · 数字协同";position:absolute;bottom:12px;right:16px;font-size:11px;color:rgba(255,255,255,.55);letter-spacing:.04em;font-weight:500}
.modules{display:flex;flex-wrap:wrap;gap:18px 28px;margin-bottom:auto;position:relative;z-index:2}
.module{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.92);letter-spacing:.02em}
.module-icon{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.deco-ring{position:absolute;right:-120px;bottom:-120px;width:320px;height:320px;border-radius:50%;border:1.5px solid rgba(255,255,255,.18);pointer-events:none}
.form-panel{background:#f6f8f9;display:flex;align-items:center;justify-content:center;padding:40px;min-height:100vh;position:relative}
.form-panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#e9ad5f}
.login-card{width:100%;max-width:400px;background:#fff;border-radius:20px;border:1px solid #e3eaec;box-shadow:0 1px 2px rgba(31,42,48,.06),0 0 0 1px rgba(31,42,48,.02);padding:40px}
.card-title-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.card-stamp{width:8px;height:8px;border-radius:2px;background:#e9ad5f;flex-shrink:0}
.card-title{font-size:22px;font-weight:700;margin:0;color:#1f2a30;letter-spacing:-.01em}
.card-sub{font-size:13px;color:#5b6770;margin:0 0 28px 0}
.field{display:block;margin-bottom:20px}
.field-label{display:block;font-size:13px;font-weight:600;color:#1f2a30;margin-bottom:8px;letter-spacing:.01em}
.input-wrap{position:relative;display:flex;align-items:center;height:44px;background:#fff;border:1px solid #d3dbe0;border-radius:10px;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1),border-width .15s cubic-bezier(.4,0,.2,1)}
.input-icon{flex-shrink:0;width:20px;height:20px;margin:0 12px;color:#8abcd1;display:flex;align-items:center;justify-content:center}
.input-wrap input{flex:1;height:100%;border:none;outline:none;background:0 0;font-size:14px;color:#1f2a30;padding-right:12px;font-feature-settings:"tnum" 1}
.input-wrap input::placeholder{color:#8a949b}
.input-wrap:focus-within{border-color:#427e94;border-width:2px;box-shadow:0 0 0 4px rgba(199,165,156,.22);padding-left:0}
.input-wrap:focus-within .input-icon{color:#427e94}
.input-wrap.is-invalid{border-color:#8a2524;box-shadow:0 0 0 4px rgba(138,37,36,.12)}
.field-error{display:none;margin-top:6px;font-size:12px;color:#8a2524}
.field.is-invalid .field-error{display:block}
.login-btn{position:relative;width:100%;height:46px;border:none;border-radius:10px;background:#427e94;color:#fff;font-size:15px;font-weight:700;letter-spacing:.05em;transition:background-color .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px rgba(66,126,148,.18);overflow:hidden;cursor:pointer}
.login-btn:hover:not(:disabled){background:#4e889e;transform:translateY(-1px);box-shadow:0 6px 16px rgba(66,126,148,.28),0 1px 2px rgba(31,42,48,.06)}
.login-btn:active:not(:disabled){transform:translateY(0)}
.login-btn:disabled{background:#c7dce4;color:#8a949b;cursor:not-allowed;box-shadow:none}
.login-btn .btn-text{transition:opacity .15s cubic-bezier(.4,0,.2,1);display:inline-block}
.login-btn .btn-spinner{position:absolute;top:50%;left:50%;width:22px;height:22px;transform:translate(-50%,-50%);opacity:0;transition:opacity .15s cubic-bezier(.4,0,.2,1);pointer-events:none}
.login-btn .btn-spinner::before{content:"";display:block;width:100%;height:100%;border-radius:50%;border:2.5px solid rgba(255,255,255,.28);border-top-color:#fff;animation:login-spin .9s linear infinite}
.login-btn.is-loading .btn-text{opacity:0}
.login-btn.is-loading .btn-spinner{opacity:1}
@keyframes login-spin{to{transform:rotate(360deg)}}
.helper-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:13px;color:#5b6770}
.remember{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}
.remember input{accent-color:#427e94;width:14px;height:14px;margin:0}
.card-footer{margin-top:48px;padding-top:24px;border-top:1px solid #e3eaec;font-size:11px;color:#593a28;text-align:center;letter-spacing:.02em}
.form-message{margin-top:12px;font-size:13px;color:#8a2524;text-align:center;min-height:18px}
.register-card .card-sub{max-width:330px;line-height:1.7}
.register-card .input-wrap input{padding-left:14px}
.register-card .code-row{display:flex;align-items:stretch;gap:8px}
.register-card .code-row input{min-width:0;flex:1;height:44px;border:1px solid #d3dbe0;border-radius:10px;padding:0 12px;font:inherit;font-size:14px;color:#1f2a30;outline:none;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}
.register-card .code-row input:focus{border-color:#427e94;box-shadow:0 0 0 4px rgba(199,165,156,.22)}
.register-card .code-row .secondary-button{height:44px;white-space:nowrap;border-color:#427e94;color:#427e94;background:#fff;border-radius:10px;padding:0 14px;font-size:13px}
.register-card .code-row .secondary-button:hover{background:#f0f7f9}
.register-links{display:flex;justify-content:space-between;gap:12px;margin-top:16px;font-size:13px}
.register-links a,.forgot-link{color:#427e94;text-decoration:none}
.register-links a:hover,.forgot-link:hover{text-decoration:underline}
.register-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:#f6f8f9;border-top:3px solid #e9ad5f}
.register-page .register-card{max-width:430px}
@media(max-width:900px){
  .login-page{grid-template-columns:1fr;min-height:auto}
  .brand-panel{padding:24px 22px;min-height:auto}
  .brand-logo{width:32px;height:32px;border-radius:8px}
  .brand-logo::after{width:12px;height:12px;right:-3px;bottom:-3px}
  .brand-name{font-size:16px}
  .brand-sub{font-size:11px}
  .hero-title{font-size:22px;line-height:1.35;margin:24px 0 10px 0}
  .hero-sub{font-size:13px;margin-bottom:18px}
  .illustration-wrap{margin-bottom:18px}
  .modules{gap:10px 18px;margin-bottom:8px}
  .deco-ring{display:none}
  .form-panel{padding:24px 20px;min-height:auto}
  .form-panel::before{display:none}
  .login-card{padding:28px 22px;border-radius:16px;max-width:100%}
  .card-title{font-size:20px}
  .card-sub{font-size:12px;margin-bottom:22px}
  .login-btn{height:48px}
}

/* === 状态色补全（业务模块使用） === */
.status-green,.status-tag.success{background:#e6f4ec;color:#15803d;border:1px solid #bfe2cc}
.status-red{background:#fbe9e8;color:#8a2524;border:1px solid #e8b8b6}
.status-blue{background:#eaf4f8;color:#427e94;border:1px solid #b8d6e0}
.status-gray{background:#eef1f3;color:#5b6770;border:1px solid #d3dbe0}
.status-yellow,.status-tag.warning{background:#fff7df;color:#a16207;border:1px solid #f2d58b}

/* Keep the shell stable when a page is replaced after saving a plan. */
html,body,#root{min-height:100%;}
#root{height:100vh;}
.workspace-shell.app{position:fixed;inset:0;width:100%;height:100vh;min-height:100vh;overflow:hidden;}
.workspace-shell .main{height:100%;min-height:0;}
.workspace-shell .content{min-height:0;}
.workspace-shell .app-footer{flex:0 0 40px;min-height:40px;}
.map-calculation-variable optgroup{font-weight:700;color:#2f596b;}
.map-calculation-variable optgroup option{font-weight:400;color:#1f2a30;padding-left:12px;}
.invoice-upload-history-actions{flex-wrap:wrap}.invoice-upload-history-actions span{white-space:nowrap}.invoice-upload-history-search{width:210px;height:30px;padding:5px 9px;border:1px solid #cfdde2;border-radius:7px;background:#fff;font-size:12px}
.invoice-upload-history-table-wrap{overflow:auto}.invoice-upload-history-table{width:100%;min-width:760px;border-collapse:collapse;font-size:12px}.invoice-upload-history-table th,.invoice-upload-history-table td{padding:10px 12px;border-bottom:1px solid #edf1f3;text-align:left;vertical-align:middle}.invoice-upload-history-table th{background:#f6f9fa;color:#63717a;font-weight:650;white-space:nowrap}.invoice-upload-history-table .invoice-upload-history-item{display:table-row}.invoice-upload-history-table .invoice-upload-history-file b,.invoice-upload-history-table .invoice-upload-history-file small{display:block}.invoice-upload-history-table .invoice-upload-history-file b{font-size:12px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.invoice-upload-history-table .invoice-upload-history-file small{margin-top:3px;font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.invoice-upload-history-table .invoice-upload-history-status{white-space:nowrap}
.nav-admin-group { display: none !important; }

/* 管理端专属壳层：与用户业务端隔离，管理员只看到管理入口。 */
.admin-sidebar{width:248px;min-width:248px;background:#173b63;color:#fff;display:flex;flex-direction:column;min-height:100vh;border-right:3px solid #e9ad5f;box-shadow:8px 0 24px rgba(23,59,99,.12)}
.admin-brand{display:flex;gap:12px;align-items:center;padding:28px 24px 24px;border-bottom:1px solid rgba(255,255,255,.14)}
.admin-brand-mark{width:40px;height:40px;border-radius:12px;background:#8abcd1;color:#173b63;display:grid;place-items:center;font-size:20px;font-weight:800}
.admin-brand strong{display:block;font-size:18px;letter-spacing:.04em}.admin-brand small{display:block;margin-top:4px;color:rgba(255,255,255,.65);font-size:12px}
.admin-nav{display:flex;flex-direction:column;gap:5px;padding:22px 12px}.admin-nav-item{display:flex;align-items:center;min-height:42px;padding:0 16px;border-radius:9px;color:rgba(255,255,255,.78);text-decoration:none;font-size:14px;transition:background .18s,color .18s}.admin-nav-item:hover{background:rgba(138,188,209,.18);color:#fff}.admin-nav-item.is-active{background:#2b5a86;color:#fff;box-shadow:inset 3px 0 #e9ad5f}.admin-sidebar-footer{margin-top:auto;padding:18px 24px;color:rgba(255,255,255,.7);font-size:12px;border-top:1px solid rgba(255,255,255,.14)}
.admin-main-shell{background:#f5f7f9}.admin-main-shell .topbar{background:#fff}.admin-content-shell{padding:32px 36px 48px}.admin-content-shell>.page-heading{max-width:1400px;margin:0 auto 24px}.admin-content-shell>.admin-stats,.admin-content-shell>.admin-panel{max-width:1400px;margin-left:auto;margin-right:auto}.admin-content-shell .admin-panel[hidden]{display:none!important}.admin-content-shell .admin-stats[hidden]{display:none!important}
@media(max-width:900px){.admin-sidebar{width:210px;min-width:210px}.admin-content-shell{padding:24px 18px 36px}.admin-nav-item{padding-left:11px}}
.module-meta{display:grid;gap:8px;margin:16px 0;color:#667085;font-size:12px}.module-meta div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #eef1f4;padding-bottom:6px}.module-meta dt{color:#98a2b3}.module-meta dd{margin:0;color:#344054;text-align:right}.module-card .status{display:inline-flex;margin-right:8px}
