:root{color-scheme:light;--blue:#1766cb;--blue-dark:#0b2e5b;--ink:#172a43;--muted:#748298;--line:#e3eaf3;--bg:#f3f6fb;--soft:#f7f9fc;--green:#16835f;--orange:#b46a15;--red:#ba3b4b}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible{outline:2px solid var(--blue)}input,select,textarea{color:var(--ink);border:1px solid #d9e2ef;background:#fff;border-radius:7px;padding:8px 11px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #c7dcfa;border-color:#7da8df}input[type=checkbox]{accent-color:var(--blue);width:16px;height:16px;flex-shrink:0}input[readonly]{background:var(--soft)}textarea{resize:vertical;min-height:70px}h1,h2,h3,p{margin:0}h1{font-size:24px;font-weight:650;letter-spacing:.3px}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}a{color:var(--blue)}small{font-size:12px}strong{font-weight:600}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#app{display:grid;grid-template-columns:214px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(165deg,#103764,#08254b);color:#fff;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;height:86px;padding:0 21px;border-bottom:1px solid #ffffff16}.brand-mark{background:#fff;color:#123c70;display:grid;place-items:center;width:36px;height:39px;border-radius:10px;font-weight:700;font-size:20px}.brand strong{font-size:15px;letter-spacing:1px;white-space:nowrap}.brand small{display:block;color:#b1c5df;font-size:11px;letter-spacing:2px;margin-top:2px}.nav-caption{font-size:11px;letter-spacing:2px;color:#7d9bbf;padding:25px 26px 10px}.sidebar nav{display:grid;gap:8px;padding:0 12px}.sidebar nav button{display:flex;align-items:center;gap:12px;text-align:left;min-height:46px;padding:11px 14px;border:0;color:#c1d0e3;background:transparent;border-radius:8px;white-space:nowrap}.sidebar nav button>span{font-size:20px;width:23px}.sidebar nav button:hover{background:#ffffff0d;color:#fff}.sidebar nav button.active{background:#206bd0;color:#fff;box-shadow:0 5px 16px #001c3c33}.sidebar-bottom{margin-top:auto;padding:18px 20px 24px}.sidebar-setting{background:#ffffff0a;border:1px solid #ffffff20;color:#c4d4e8;width:100%;padding:10px 8px;border-radius:8px;margin-bottom:16px;text-align:left}.edition-note{font-size:11px;color:#89a5c8;line-height:1.9}.workspace{min-width:0}.topbar{background:#fff;min-height:73px;border-bottom:1px solid var(--line);padding:15px 28px;display:flex;align-items:center;gap:15px;justify-content:space-between}.breadcrumb{font-size:12px;color:var(--muted);white-space:nowrap}.breadcrumb span{margin:0 10px;color:#ccd5e3}.breadcrumb strong{color:#34465f;font-weight:500}.topbar-right{display:flex;gap:12px;align-items:center}.topbar select{font-size:12px;padding:8px 9px;background:var(--soft)}.save-state{font-size:11px;color:#668579;white-space:nowrap}.avatar{background:#e7f0fe;color:var(--blue);width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.user-name{font-size:12px;white-space:nowrap}main{padding:26px 28px 32px;min-height:calc(100vh - 124px)}.footer{padding:10px 28px 20px;color:#8f9bb0;font-size:11px;display:flex;justify-content:space-between;gap:14px}.head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:21px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--blue);margin-bottom:5px}.subtitle{color:var(--muted);font-size:12px;margin-top:5px;line-height:1.8}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{background:#fff;border:1px solid #d8e2ef;color:#344b69;padding:8px 13px;min-height:36px;border-radius:7px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover{border-color:#82a9df;color:var(--blue)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:#1057b0}.btn.small{padding:5px 9px;font-size:12px;min-height:29px}.btn.link{border:0;background:transparent;color:var(--blue);padding:0;min-height:24px}.btn.icon{width:32px;min-height:32px;padding:0}.badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;padding:3px 8px;border-radius:5px;color:#5d6c82;background:#f0f3f7;font-weight:500}.badge.blue{background:#eaf2ff;color:#2869bf}.badge.green{background:#e8f6ef;color:var(--green)}.badge.orange{background:#fff3e2;color:var(--orange)}.badge.red{background:#fff0f2;color:var(--red)}.badge.purple{background:#f2eeff;color:#7452b7}.muted{color:var(--muted)}.tiny{font-size:11px}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.empty{padding:44px;text-align:center;color:var(--muted)}.empty strong{display:block;color:#536782;margin-bottom:6px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:#fff;border:1px solid var(--line);border-radius:10px;min-width:0;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #edf1f7}.card-head .subtitle{margin-top:2px;font-size:11px}.card-body{padding:18px 20px}.card-head+.card-body{padding-top:17px}.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.kpi{padding:17px 18px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:0}.kpi small{display:block;color:var(--muted);font-size:11px}.kpi strong{display:block;font-size:27px;font-weight:650;margin:6px 0 3px;color:#183d73;white-space:nowrap;font-variant-numeric:tabular-nums}.kpi strong em{font-style:normal;font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.kpi .hint{font-size:10px;color:#9aa6b6}.kpi.green strong{color:var(--green)}.kpi.orange strong{color:var(--orange)}.kpis.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi.primary{background:#1766cb;color:#fff;border-color:#1766cb}.kpi.primary strong,.kpi.primary small,.kpi.primary strong em{color:#fff}.kpi.primary .hint{color:#c6dcfb}.filters{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px 18px;margin-bottom:18px;display:flex;gap:11px;align-items:flex-end;flex-wrap:wrap}.filter{display:flex;flex-direction:column;gap:5px;min-width:116px;flex:1 1 116px}.filter label,.field>span{color:#6c7d95;font-size:11px}.filter input,.filter select{width:100%;height:36px;font-size:12px}.filter.search{flex:1.5 1 180px}.filter.category{flex:1.2 1 170px}.category-trigger{width:100%;justify-content:space-between;font-size:12px;text-align:left;padding-left:10px;overflow:hidden}.category-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis}.filter.end{flex:0 0 auto;min-width:auto}.filter-active{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-7px 0 14px;font-size:11px}.filter-active button{border:1px solid #cfe0f9;background:#edf4ff;color:#2769bc;border-radius:5px;padding:3px 8px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:18px;margin-bottom:18px}.metric-tabs{display:flex;gap:2px;background:#f0f4fa;border-radius:6px;padding:3px}.metric-tabs button{border:0;background:transparent;color:#7c89a0;border-radius:4px;font-size:11px;padding:4px 8px}.metric-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #1637640d}.province-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;padding:18px 20px 10px}.province-tile{border:1px solid #e4ebf5;border-radius:5px;min-height:47px;padding:4px;color:#54708e;background:#f6f8fb;font-size:11px;line-height:1.4}.province-tile b{display:block;font-size:10px;font-weight:500;min-height:14px}.province-tile.l1{background:#edf4ff;border-color:#dae8fd}.province-tile.l2{background:#d4e6ff;border-color:#c4ddfd;color:#356db2}.province-tile.l3{background:#a2c9fc;border-color:#a2c9fc;color:#1a4c8b}.province-tile.l4{background:#3984e4;border-color:#3984e4;color:#fff}.province-tile.selected{outline:2px solid #174b92;outline-offset:1px}.map-foot{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#8a99b0;padding:10px 20px 18px}.rank-list{display:grid;gap:10px}.rank-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(40px,1fr) 52px;align-items:center;gap:9px;width:100%;padding:0;background:none;border:0;color:#52657e;text-align:left;font-size:12px}.rank-row .track{height:6px;background:#f0f4fa;border-radius:10px;overflow:hidden}.rank-row .track i{display:block;height:100%;background:#78a7e6;border-radius:10px}.rank-row strong{text-align:right;font-size:11px;color:#2b5b99}.category-rank .rank-row{grid-template-columns:minmax(150px,1fr) minmax(30px,1fr) 38px}.small-metrics{display:flex;border-top:1px solid var(--line);margin-top:17px;padding-top:14px;gap:15px}.small-metrics>div{flex:1}.small-metrics small{display:block;color:var(--muted);font-size:10px}.small-metrics strong{display:block;font-size:19px;color:#254c80}.layout-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.notice{padding:11px 14px;border:1px solid #dce9fc;background:#f0f6ff;color:#5077a4;font-size:11px;border-radius:7px;margin-bottom:16px}.table-toolbar{padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.table-scroll{overflow:auto;max-height:660px;scrollbar-width:thin;scrollbar-color:#c9d7ea #f6f8fc}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;white-space:nowrap}.data-table th{background:#f5f8fc;color:#6c7c93;text-align:left;font-weight:500;border-bottom:1px solid #dce5f1;position:sticky;top:0;z-index:2;padding:12px 14px;height:43px}.data-table td{padding:13px 14px;border-bottom:1px solid #edf1f7;vertical-align:middle;max-width:280px;overflow:hidden;text-overflow:ellipsis;background:#fff}.data-table tbody tr:hover td{background:#f5f9ff}.data-table tr.clickable{cursor:pointer}.data-table .name-cell strong{display:block;color:#254773;font-weight:550;max-width:210px;overflow:hidden;text-overflow:ellipsis}.data-table .name-cell small{display:block;color:#99a5b7;font-size:10px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.data-table .right{text-align:right;font-variant-numeric:tabular-nums}.data-table .sticky-col{position:sticky;left:0;z-index:1;box-shadow:2px 0 4px #142e5205}.data-table th.sticky-col{z-index:3}.data-table th button{border:0;background:none;color:inherit;padding:0;white-space:nowrap;font-size:inherit}.data-table th button:hover{color:var(--blue)}.table-total{padding:12px 18px;display:flex;justify-content:space-between;gap:20px;background:#fbfcfe;border-top:1px solid var(--line);font-size:11px;color:#7c8ca3}.table-total strong{color:#2b568b}.table-footer{padding:12px 18px;font-size:10px;color:#92a0b4;display:flex;gap:18px;justify-content:space-between}.view-tabs{display:flex;gap:5px}.view-tabs button{border:1px solid transparent;background:transparent;color:#7889a0;border-radius:6px;padding:5px 9px;font-size:11px}.view-tabs button.active{background:#eaf2ff;border-color:#d9e7fb;color:var(--blue)}.profile-head{display:flex;align-items:center;gap:17px;padding:22px;margin-bottom:18px}.company-logo{width:62px;height:62px;border-radius:12px;background:#edf4ff;border:1px solid #dce8fa;color:#235da6;display:grid;place-items:center;font-size:20px;font-weight:600;flex-shrink:0}.profile-copy{flex:1}.profile-copy h1{font-size:21px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 22px}.info-item small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.info-item div{font-size:12px;overflow-wrap:anywhere}.info-item.wide{grid-column:1/-1}.flow{display:flex;gap:4px;margin-bottom:19px}.flow span{flex:1;background:#f0f3f8;color:#a2afc0;border-radius:4px;text-align:center;padding:7px 3px;font-size:10px}.flow span.done{background:#e9f4ff;color:#4b85d2}.flow span.current{background:#1b6acd;color:#fff}.area-pair{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.area-pair>div{padding:12px 14px;background:#f5f8fc;border:1px solid #e6edf6;border-radius:7px}.area-pair small{font-size:10px;color:var(--muted);display:block}.area-pair strong{font-size:23px;display:block;color:#285b9c}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);padding:0 20px;overflow-x:auto}.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;color:#7a8ba4;padding:15px 2px 12px;font-size:12px;white-space:nowrap}.tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}.timeline{display:grid;gap:0}.timeline-row{display:grid;grid-template-columns:110px 1fr;gap:15px;padding:14px 0;border-bottom:1px solid #edf1f7;font-size:12px}.timeline-row:last-child{border:0}.timeline-row time{color:var(--muted);font-size:11px}.timeline-row strong{display:block;margin-bottom:4px}.timeline-row small{color:var(--muted);font-size:11px}.special-box{background:#fff8ed;border:1px solid #f3e1c6;color:#947047;padding:12px 14px;border-radius:7px;font-size:12px;margin-top:16px}.special-box small{display:block;color:#b08c62;margin-bottom:3px}.plan-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;margin-bottom:18px}.plan-canvas{padding:20px;min-height:340px;background:linear-gradient(#e8edf5 1px,transparent 1px),linear-gradient(90deg,#e8edf5 1px,transparent 1px),#fafcff;background-size:20px 20px}.plan-zones{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(6,40px);gap:8px;margin-top:15px}.zone{border:1px solid #c3d9f6;background:#dfeeffbb;color:#4b7bb8;border-radius:5px;display:flex;justify-content:center;align-items:center;text-align:center;font-size:11px;padding:5px}.zone.green{background:#e1f3e9bf;border-color:#c1e2d0;color:#4e8f72}.zone.purple{background:#eee9fabf;border-color:#d9d1ed;color:#80709f}.zone.orange{background:#fff0dabf;border-color:#efdbc0;color:#b18a51}.version{border:1px solid var(--line);border-radius:7px;background:#fff;padding:12px;width:100%;text-align:left;margin-bottom:9px}.version.selected{background:#f1f7ff;border-color:#86b0e9}.version small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.plan-caption{text-align:center;font-size:11px;color:#8c9fb6;margin-top:18px}.file-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:11px;border-bottom:1px solid #edf1f7}.popup{position:fixed;width:310px;max-height:min(650px,80vh);z-index:100;background:#fff;border:1px solid #d8e2f0;border-radius:10px;box-shadow:0 12px 50px #17365426;overflow:auto}.popup-head{padding:13px 14px;border-bottom:1px solid var(--line)}.popup-head input{width:100%;font-size:12px;padding:7px 10px}.popup-tools{display:flex;justify-content:space-between;padding:9px 14px;border-bottom:1px solid #f0f3f8;font-size:11px}.popup-tools button{background:none;border:0;color:var(--blue);padding:0}.popup-options{padding:6px}.popup-option{display:flex;gap:8px;align-items:center;padding:8px 9px;border-radius:5px;cursor:pointer;font-size:12px}.popup-option:hover{background:#f0f6ff}.popup-option b{margin-left:auto;font-size:11px;font-weight:400;color:#91a0b5}.popup-foot{padding:9px 14px;border-top:1px solid var(--line);font-size:10px;color:#8c9bb0}.overlay{position:fixed;inset:0;background:#142b4c55;z-index:200;display:flex;justify-content:center;align-items:center;padding:24px;backdrop-filter:blur(2px)}.dialog{background:#fff;box-shadow:0 20px 80px #071f4544;border-radius:12px;width:min(760px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.dialog.wide{width:min(1080px,100%)}.overlay.drawer{justify-content:flex-end;padding:0}.drawer .dialog{border-radius:12px 0 0 12px;height:100vh;max-height:100vh;width:min(940px,100%)}.dialog-head{padding:20px 24px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}.dialog-head h2{font-size:19px}.dialog-head p{font-size:11px;color:var(--muted);margin-top:3px}.dialog-body{padding:22px 24px;overflow:auto;min-height:0}.dialog-foot{padding:15px 24px;background:#fbfcfe;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.dialog-foot>span{color:var(--muted);font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;font-size:12px;min-width:0}.section-label{font-size:13px;font-weight:600;margin:25px 0 13px;display:flex;align-items:center;gap:8px}.section-label:first-child{margin-top:0}.section-label:before{content:"";width:3px;height:14px;background:var(--blue);border-radius:2px}.error-box{background:#fff2f4;border:1px solid #f0ced5;color:#b1394d;font-size:12px;padding:10px 14px;border-radius:7px;margin-bottom:15px}.form-errors:empty{display:none}.fee-editor{overflow:auto;border:1px solid var(--line);border-radius:7px}.fee-editor table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.fee-editor th{background:var(--soft);text-align:left;font-size:10px;font-weight:500;color:var(--muted);padding:10px}.fee-editor td{padding:8px 10px;border-top:1px solid var(--line)}.fee-editor input{width:105px;font-size:12px;padding:6px 8px}.fee-editor .fee-note{width:150px}.fee-total{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:12px}.fee-total strong{font-size:23px;color:var(--blue)}.field-help{font-size:10px;color:#8a9ab0}.dict-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf1f7;font-size:12px}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,12px);z-index:1000;background:#173654;color:#fff;padding:11px 19px;border-radius:8px;box-shadow:0 7px 30px #142e5230;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;font-size:12px}.toast.visible{opacity:1;transform:translate(-50%,0)}.role-note{font-size:11px;color:#8a9ab0}.form-disabled input,.form-disabled select,.form-disabled textarea{background:#f6f8fb;color:#76869e}
@media(min-width:1600px){main{padding:30px 36px}.topbar{padding:15px 36px}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr)}.province-tile{min-height:55px}}
@media(max-width:1250px){#app{grid-template-columns:185px minmax(0,1fr)}.brand{padding:0 15px}.brand strong{font-size:13px}.sidebar nav button{font-size:12px;padding:10px}.topbar{padding:13px 20px}.save-state,.user-name{display:none}main{padding:22px 20px}.kpi{padding:14px 12px}.kpi strong{font-size:24px}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(255px,1fr)}.province-grid{grid-template-columns:repeat(7,1fr);padding:15px}.layout-two{gap:14px}.profile-head{flex-wrap:wrap}.profile-head .actions{width:100%;justify-content:flex-end}.info-grid{gap:15px}.category-rank .rank-row{grid-template-columns:minmax(140px,1fr) minmax(25px,1fr) 30px}}
@media(max-width:1000px){#app{grid-template-columns:170px minmax(0,1fr)}.brand{gap:8px;padding:0 12px}.brand-mark{width:29px;font-size:16px}.brand strong{font-size:12px}.brand small{font-size:10px;letter-spacing:1px}.sidebar nav{padding:0 8px}.sidebar nav button{font-size:11px;gap:8px}.kpis{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.plan-grid{grid-template-columns:1fr}.province-grid{grid-template-columns:repeat(9,1fr)}.layout-two{grid-template-columns:1fr}.topbar-right{gap:8px}.topbar select{max-width:175px;font-size:11px}.breadcrumb{font-size:11px}.breadcrumb span{margin:0 5px}.footer span{display:none}.form-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:740px){#app{display:block}.sidebar{height:auto;position:static}.brand{height:58px;padding:10px 16px}.brand strong{font-size:14px}.brand small,.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;padding:6px 10px 10px;gap:4px;overflow:auto}.sidebar nav button{font-size:11px;padding:7px 9px;min-height:34px;white-space:nowrap}.sidebar nav button>span{display:none}.topbar{padding:10px 14px;flex-wrap:wrap;gap:8px;min-height:60px}.topbar-right{flex:1;justify-content:flex-end}.avatar{display:none}.topbar select{font-size:10px;padding:6px;max-width:155px}main{padding:18px 13px}h1{font-size:21px}.head{flex-direction:column;gap:12px}.head .actions{align-self:flex-end}.filters{padding:12px;gap:9px}.filter,.filter.category{flex:1 1 135px;min-width:130px}.kpis{gap:8px}.kpi{padding:12px 9px}.kpi strong{font-size:22px}.kpi small{font-size:10px}.kpis.four{grid-template-columns:repeat(2,1fr)}.province-grid{grid-template-columns:repeat(6,1fr)}.card-head{padding:14px}.card-body{padding:14px}.dashboard-grid,.layout-two,.plan-grid{gap:12px;margin-bottom:12px}.profile-head{padding:16px;gap:12px}.profile-copy h1{font-size:18px}.company-logo{width:45px;height:50px;font-size:15px}.profile-head .actions{justify-content:flex-start}.area-pair>div{padding:10px}.area-pair strong{font-size:20px}.tabs{gap:16px;padding:0 14px}.overlay{padding:12px}.dialog-head,.dialog-body,.dialog-foot{padding:16px}.form-grid,.form-grid.three{grid-template-columns:1fr}.field.wide{grid-column:auto}.popup{width:min(310px,calc(100vw - 24px))}.plan-zones{grid-template-rows:repeat(6,31px);gap:5px}.zone{font-size:10px;padding:3px}.data-table th,.data-table td{padding:11px}.table-total{flex-wrap:wrap;gap:7px}.info-grid{gap:15px}.save-state{display:none}.footer{padding:8px 14px}.map-foot{padding:9px 15px 13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.deliverable-item{padding:15px;background:#f7faff;border:1px solid #dfe9f6;border-radius:8px;margin-bottom:12px}.drawing-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px;flex-wrap:wrap}.drawing-top select,.drawing-top input{font-size:12px;min-height:35px}.drawing-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:18px}.drawing-layout>.card:first-child{align-self:start}.drawing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#fbfcfe}.drawing-toolbar .btn.tool-active{background:#e8f1ff;color:var(--blue);border-color:#9fc1ee}#drawing-canvas{display:block;width:100%;height:auto;aspect-ratio:10/7;user-select:none;max-height:none}#drawing-canvas:focus{outline:2px solid #8cb4eb;outline-offset:-2px}.drawing-status{padding:10px 13px;border-top:1px solid var(--line);font-size:10px;color:#8191a8;display:flex;justify-content:space-between;gap:14px}.drawing-layout .info-grid{gap:15px 13px}.drawing-layout .info-item small{font-size:10px}.drawing-layout .info-item div{font-size:12px}.map-row-selected td{background:#edf5ff!important}.svg-booth:focus{outline:none}.svg-booth:focus>g{stroke-width:3px}.drawing-layout aside .empty{font-size:12px}.field>div.notice{font-size:12px}.deliverable-item .field>span{color:#6681a0}
@media(max-width:1250px){.drawing-layout{grid-template-columns:minmax(0,1fr) 235px;gap:12px}.drawing-layout .card-body{padding:14px}.drawing-toolbar .btn.small{font-size:10px;padding:5px 7px}}
@media(max-width:1000px){.drawing-layout{grid-template-columns:1fr}.drawing-layout aside .info-grid{grid-template-columns:repeat(3,1fr)}.drawing-layout aside .info-item.wide{grid-column:auto}.drawing-status{flex-wrap:wrap}}
@media(max-width:740px){.drawing-layout aside .info-grid{grid-template-columns:1fr 1fr}.drawing-top{align-items:flex-start}.drawing-toolbar{padding:9px}.drawing-toolbar .inline{gap:4px}.drawing-toolbar .btn.small{font-size:10px}#drawing-canvas{min-height:245px}.drawing-status{font-size:9px}.drawing-top input{max-width:100%}}

.drawing-viewport{overflow:auto;max-height:640px;scrollbar-width:thin;background:#f9fbfe}#drawing-canvas{min-height:0;max-width:none;flex-shrink:0}
.fee-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.fee-summary>div{padding:13px 14px;border:1px solid #dce7f6;border-radius:8px;background:#f5f9ff;min-width:0}.fee-summary small{display:block;font-size:11px;color:#71859e}.fee-summary strong{display:block;margin-top:6px;font-size:18px;color:#28588f;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.data-table td.benefits-cell{white-space:normal;min-width:180px;max-width:260px;line-height:1.7}
@media(max-width:1100px){.fee-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.fee-summary strong{font-size:17px}}
@media(max-width:740px){.fee-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fee-summary>div{padding:11px}.fee-summary strong{font-size:16px}}

.pdf-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px}.pdf-preview{height:690px;min-height:420px;background:#e9eef5;overflow:hidden}.pdf-object{display:block;width:100%;height:100%;border:0}.pdf-version{width:100%;text-align:left;background:#fff;border:1px solid var(--line);padding:13px;border-radius:8px;margin-bottom:10px;color:var(--ink)}.pdf-version.selected{border-color:#8ab2e6;background:#f0f6ff}.pdf-version small{display:block;color:#8a9ab0;font-size:10px;margin-top:5px}.pdf-version .subtitle{font-size:12px;color:#4d6b91;margin-top:7px}.pdf-layout .card-head h2{overflow-wrap:anywhere}.file-drop{border:1px dashed #9fbde6;background:#f5f9ff;padding:20px;display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;border-radius:9px;cursor:pointer;text-align:center}.file-drop>span:not(.file-drop-icon){font-size:11px;color:#7d94b0}.file-drop-icon{background:#e1ecfb;border:1px solid #cfdef4;color:#2563b2;font-size:12px;font-weight:600;border-radius:7px;padding:8px}.file-drop input{max-width:100%;border:0;background:transparent;font-size:11px;margin-top:3px}.import-controls{display:grid;grid-template-columns:1.1fr .7fr 1.5fr;gap:14px;margin:18px 0}.mapping-details{margin:15px 0;border:1px solid var(--line);border-radius:8px;background:#fff}.mapping-details summary{font-size:12px;padding:13px 15px;color:#52759f;cursor:pointer}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:5px 15px 18px}.mapping-grid select{font-size:11px;min-width:0}.import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 14px}.import-summary>div{border:1px solid var(--line);background:#f7faff;border-radius:8px;padding:13px 16px}.import-summary small{font-size:11px;color:#7b8fa9}.import-summary strong{display:block;font-size:25px;color:#2862a9;margin-top:3px}.import-summary .error-text{color:#c24b5d}.import-preview-scroll{max-height:320px;border:1px solid var(--line);border-radius:7px}.data-table .import-message{white-space:normal;min-width:220px;max-width:350px;font-size:11px;line-height:1.7}.pdf-layout aside .btn{margin-top:15px}.pdf-layout .card-head .btn{margin-top:0}.fee-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.pdf-layout{grid-template-columns:minmax(0,1fr) 235px}.pdf-preview{height:580px}.mapping-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.pdf-layout{grid-template-columns:1fr}.pdf-preview{height:620px}.pdf-layout aside .card-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pdf-version{margin:0}.pdf-layout aside .section-label,.pdf-layout aside .subtitle{grid-column:1/-1}.import-controls{grid-template-columns:1fr 1fr}.import-controls>.field:last-child{grid-column:1/-1}.fee-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:740px){.pdf-preview{height:500px;min-height:320px}.pdf-layout aside .card-body{grid-template-columns:1fr}.mapping-grid{grid-template-columns:1fr}.import-summary{gap:7px}.import-summary>div{padding:10px}.import-summary strong{font-size:21px}.import-controls{gap:10px}.file-drop{padding:15px}.dialog-foot{flex-wrap:wrap}.dialog-foot .actions{margin-left:auto}}

.data-management-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}.dictionary-menu{padding:12px;max-height:74vh;overflow:auto;position:sticky;top:90px}.dictionary-group{font-size:11px;font-weight:700;color:var(--muted);padding:15px 10px 7px;letter-spacing:.08em}.dictionary-menu button{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink);padding:10px;border-radius:7px;cursor:pointer;font:inherit;font-size:13px;margin:2px 0}.dictionary-menu button:hover{background:#f2f6ff}.dictionary-menu button.active{background:#eaf1ff;color:#245bd7;font-weight:650}.dictionary-menu small{background:#f0f3f8;border-radius:5px;min-width:24px;text-align:center;padding:1px 5px;color:#6c7890}.dictionary-menu .active small{background:#dae6ff;color:#245bd7}.dictionary-controls{padding:16px 20px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}.dictionary-controls>input{max-width:300px;flex:1;min-width:160px}.dictionary-controls input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb}.dictionary-controls label{white-space:nowrap}.dictionary-controls select{max-width:230px}.dictionary-controls .inline{display:flex;align-items:center;gap:8px}#dictionary-table td:last-child{white-space:nowrap}#dictionary-table td:last-child .btn+.btn{margin-left:6px}.customer-switcher{padding:16px 20px;margin-bottom:24px;border-left:3px solid #3978ee}.customer-switcher>div:first-child{display:flex;align-items:center;gap:14px;margin-bottom:11px}.customer-switch-controls{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(260px,1.4fr) auto auto;gap:10px;align-items:center}.customer-switch-controls input,.customer-switch-controls select{width:100%;min-width:0}.customer-switch-controls .btn{height:38px;white-space:nowrap}.customer-switcher .muted{color:var(--muted)}
@media(max-width:1100px){.data-management-layout{grid-template-columns:190px minmax(0,1fr)}.customer-switch-controls{grid-template-columns:minmax(150px,1fr) minmax(200px,1.5fr)}.customer-switch-controls .btn{width:100%}}
@media(max-width:760px){.data-management-layout{grid-template-columns:1fr}.dictionary-menu{position:static;max-height:240px;display:flex;flex-wrap:wrap;gap:4px}.dictionary-group{width:100%;padding-top:8px}.dictionary-menu button{width:auto;gap:10px}.customer-switcher>div:first-child{display:block}.customer-switcher .tiny{display:block;margin-top:5px}.customer-switch-controls{grid-template-columns:1fr 1fr}.customer-switch-controls>input,.customer-switch-controls>select{grid-column:1/-1}.dictionary-controls{padding:14px}}
.dictionary-sort-hint{margin:0;padding:10px 20px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}
#dictionary-table .dictionary-sort-cell{width:80px;min-width:80px;text-align:center;white-space:nowrap;padding-left:10px;padding-right:10px}
.dictionary-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid transparent;border-radius:6px;color:#8294af;background:transparent;font-size:25px;line-height:1;cursor:grab;touch-action:none;user-select:none}
.dictionary-drag-handle:hover,.dictionary-drag-handle:focus-visible{background:#edf3ff;color:#2463d7;border-color:#c8d9f5;outline:2px solid transparent}
.dictionary-drag-handle:disabled{cursor:default;opacity:.35}
.dictionary-sort-placeholder{color:#c5cfdd}
#dictionary-table .dictionary-dragging td{opacity:.4;background:#edf3ff}
#dictionary-table .dictionary-drop-before td{box-shadow:inset 0 3px #2563eb}
#dictionary-table .dictionary-drop-after td{box-shadow:inset 0 -3px #2563eb}
.dictionary-drag-ghost{position:fixed;z-index:10000;pointer-events:none;padding:11px 18px;max-width:min(340px,80vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #9dbbf5;border-radius:8px;box-shadow:0 8px 28px #194b9233;color:#193c70;font-size:14px}
.dictionary-is-dragging,.dictionary-is-dragging *{cursor:grabbing!important;user-select:none!important}

.dashboard-filters{display:block;padding:18px 20px}.dashboard-filters .filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 20px}.dashboard-filters .filter{min-width:0;margin:0;gap:6px}.dashboard-filters .filter label{white-space:nowrap;line-height:20px}.dashboard-filters .filter input,.dashboard-filters .filter select,.dashboard-filters .category-trigger{width:100%;height:38px;min-width:0;font-size:12px}.dashboard-filters .filter-actions{display:flex;justify-content:flex-end;margin-top:15px;padding-top:12px;border-top:1px solid #edf1f7}.dashboard-filters .filter-actions .btn{min-width:76px}.dashboard-filters .category-trigger>span:first-child{white-space:nowrap}
.customer-switcher{overflow:visible;position:relative;z-index:5}.customer-switch-controls{grid-template-columns:minmax(0,1fr) auto auto}.customer-search-combobox{position:relative;min-width:0}.customer-switch-controls #customer-switch-search{height:40px;font-size:13px;padding-right:42px;text-overflow:ellipsis}.customer-switch-controls .btn{height:40px}.customer-search-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:38px;border:0;background:transparent;border-radius:0 7px 7px 0;color:var(--muted);font-size:18px}.customer-search-toggle:hover{color:var(--blue);background:#f0f6ff}.customer-search-popover{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:60;background:#fff;border:1px solid #d3e0f2;border-radius:9px;box-shadow:0 10px 32px #18385926;overflow:hidden}.customer-search-status{padding:10px 13px;border-bottom:1px solid var(--line);background:#f8fafd;color:var(--muted);font-size:11px}.customer-search-results{max-height:310px;overflow-y:auto;overscroll-behavior:contain;padding:5px}.customer-result{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;width:100%;border:0;background:#fff;border-radius:6px;padding:11px 12px;color:var(--ink)}.customer-result:hover,.customer-result.is-active{background:#edf4ff}.customer-result-copy{min-width:0;display:grid;gap:3px}.customer-result-copy strong{font-size:13px}.customer-result-copy>span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.customer-result mark{background:#dbeaff;color:#1556aa;border-radius:2px;padding:0 1px}.customer-result-current{flex-shrink:0;font-size:11px;color:var(--blue);background:#e2edff;border-radius:4px;padding:2px 6px}.customer-search-empty{padding:23px 12px;text-align:center;font-size:12px;color:var(--muted)}
@media(max-width:1200px){.dashboard-filters .filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.dashboard-filters .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}}
@media(max-width:760px){.customer-switch-controls{grid-template-columns:1fr 1fr}.customer-search-combobox{grid-column:1/-1}.customer-result{gap:8px}.customer-result-current{font-size:10px}}
@media(max-width:520px){.dashboard-filters{padding:15px}.dashboard-filters .filter-grid{grid-template-columns:minmax(0,1fr)}}

.access-toolbar{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-top:16px}.access-toolbar .field:first-child{flex:1;max-width:380px;min-width:200px}.access-toolbar .field select{min-width:150px}.access-current{display:inline-block;margin-left:9px;font-size:10px;padding:2px 6px;background:#eaf2ff;color:var(--blue);border-radius:4px}.access-fullname{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:11px;margin-top:3px}.access-role-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.access-role-cards article{background:#f7faff;border:1px solid #dfebfb;border-radius:8px;padding:18px}.access-role-cards article>span{color:var(--blue);font-size:11px}.access-role-cards h2{font-size:19px;margin:5px 0 9px}.access-role-cards p{font-size:12px;color:var(--muted);line-height:1.8}.access-matrix th:first-child{min-width:210px}.access-matrix td{min-width:180px}.access-audit{margin-top:20px}.access-audit summary{padding:17px 20px;font-weight:600;cursor:pointer}.access-audit summary span{margin-left:12px;font-weight:400}.access-detail{white-space:normal!important;min-width:260px;line-height:1.8}.demo-account-label{display:flex;align-items:center;gap:8px}.demo-account-label>span{font-size:11px;color:var(--muted);white-space:nowrap}.permissions-panel .notice{margin-bottom:0}#member-form .field-help{line-height:1.8}#viewer-money-setting>span{display:flex;align-items:center;gap:8px}
@media(max-width:900px){.access-role-cards{grid-template-columns:1fr}.demo-account-label>span{display:none}}

.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-brand{background:linear-gradient(145deg,#123e70,#08244a);color:white;display:flex;flex-direction:column;justify-content:center;padding:10vw 7vw;position:relative;overflow:hidden}.auth-brand:after{content:'';position:absolute;width:550px;height:550px;border:1px solid #ffffff16;border-radius:50%;right:-250px;bottom:-240px;box-shadow:0 0 0 90px #ffffff04,0 0 0 180px #ffffff03}.auth-emblem{display:grid;place-items:center;background:white;color:#163f70;font-weight:700;font-size:28px;width:55px;height:60px;border-radius:12px;margin-bottom:24px}.auth-brand>p{letter-spacing:3px;color:#b8d3f3}.auth-brand h1{font-size:44px;line-height:1.5;letter-spacing:3px;margin:26px 0}.auth-brand>div:last-child{font-size:12px;color:#9ebddf}.auth-panel{display:flex;align-items:center;justify-content:center;padding:50px}.auth-panel form{width:min(370px,100%)}.auth-panel h1{font-size:30px;margin:10px 0}.auth-panel .field{margin-top:22px}.auth-panel .field input{height:45px}.auth-submit{width:100%;margin-top:30px;height:44px}.auth-help{color:var(--muted);font-size:11px;line-height:1.9;margin-top:24px}.auth-panel .form-errors{margin-top:20px}.auth-loading{min-height:100vh;display:grid;place-items:center;color:#315b8e;background:#f3f6fb}.topbar-right{flex-wrap:wrap}.user-name{max-width:210px;overflow:hidden;text-overflow:ellipsis}.access-panel .btn+.btn,#members-table td:last-child .btn+.btn{margin-left:6px}
@media(max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-brand{padding:35px 30px}.auth-brand h1{font-size:25px;margin:12px 0}.auth-brand h1 br{display:none}.auth-emblem{display:none}.auth-panel{padding:35px 25px}.topbar .btn{padding:5px 8px;font-size:11px}}
.pdf-preview{display:block!important;padding:0!important;min-height:400px}.pdf-view-controls{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#f8fafd}.pdf-view-controls span{font-size:12px;color:var(--muted);min-width:80px;text-align:center}.pdf-canvas-scroll{height:650px;max-height:75vh;overflow:auto;background:#e5eaf1;padding:14px;overscroll-behavior:contain}.pdf-canvas-scroll canvas{display:block;box-shadow:0 3px 12px #15325124;margin:0 auto;background:white}

.contract-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.btn.danger{color:#bd3434;border-color:#e9c6c6;background:#fff}
.btn.danger:hover{background:#fff2f2;border-color:#da9898}
.btn.danger-solid{color:#fff;background:#bd3434;border-color:#bd3434}
.btn.danger-solid:hover{background:#a62727}
.contract-delete-summary{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid var(--line);border-radius:8px;margin-bottom:18px;color:var(--muted);font-size:13px}
.contract-delete-summary strong{font-size:19px;color:var(--ink);overflow-wrap:anywhere}
.contract-delete-impact{margin-bottom:18px;line-height:1.8;font-size:13px}
.contract-delete-impact h3{margin:0 0 8px;font-size:14px}
.contract-delete-impact p{color:var(--muted)}
.contract-recycle-table td{white-space:normal;min-width:160px}
.contract-recycle-table td:last-child{min-width:100px;white-space:nowrap}
.contract-recycle-table small{display:block;color:var(--muted);margin-top:5px}
.contract-recycle-table .contract-archived-note{color:#a36b12}
