:root{font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#17201b;background:#f3f5f0;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17201b;--muted: #627067;--line: #d8ded7;--paper: #ffffff;--green: #184e3a;--green-soft: #e6f0eb;--input: #fff8d9;--calculated: #f0f3f1;--focus: #0b6f50;--danger: #a13c32;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:3px solid rgba(11,111,80,.35);outline-offset:1px}textarea:focus-visible{outline:3px solid rgba(11,111,80,.35);outline-offset:1px}select:focus-visible{outline:3px solid rgba(11,111,80,.35);outline-offset:1px}main{width:min(1560px,calc(100% - 32px));margin:0 auto;padding:24px 0 40px}.login-shell{display:grid;width:100%;min-height:100vh;padding:32px;place-items:center;background:radial-gradient(circle at 18% 15%,rgba(75,133,103,.2),transparent 34%),linear-gradient(145deg,#eff4ee,#f8f7f1)}.login-card{display:grid;gap:20px;width:min(440px,100%);padding:38px;background:#fffffff5;border:1px solid #d7e0d8;border-radius:18px;box-shadow:0 24px 70px #173c2e24}.login-card h1{color:var(--green);font-size:clamp(25px,6vw,34px);line-height:1.3}.login-card label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:750}.login-card input{min-height:46px;padding:10px 12px;color:var(--ink);background:#fff;border:1px solid #afbbb3;border-radius:8px}.login-card .primary-action{min-height:46px}.login-error{padding:11px 13px;color:#742a24;background:#fff0ee;border-left:4px solid var(--danger)}.app-header,.prototype-intro,.grid-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px}.app-header{padding:22px 26px;color:#f7fbf8;background:linear-gradient(120deg,#143d2f,#256247);border-radius:18px 18px 0 0}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(24px,3vw,36px);letter-spacing:.02em}.eyebrow{margin-bottom:6px;color:#7f9e8c;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.app-header .eyebrow{color:#b8d4c5}.context-strip{display:flex;flex-wrap:wrap;gap:8px}.context-strip span{padding:9px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:999px}.header-action{padding:9px 14px;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.28);border-radius:999px;cursor:pointer}.header-action:hover{background:#ffffff2e}.application-body{display:grid;grid-template-columns:176px minmax(0,1fr);min-height:720px;background:var(--paper);border-radius:0 0 18px 18px;box-shadow:0 18px 50px #1b2d231a;overflow:hidden}.side-nav{display:flex;flex-direction:column;gap:5px;padding:24px 14px;color:#dcebe3;background:#173c2e}.side-nav strong{padding:0 10px 14px;color:#fff}.side-nav button{width:100%;padding:10px;color:inherit;text-align:left;background:transparent;border:0;border-radius:8px;cursor:pointer}.side-nav .active{color:#173c2e;font-weight:750;background:#dbeade}.side-nav button:hover:not(.active){background:#ffffff14}.workspace{min-width:0;padding:22px 24px 28px}.context-controls{display:flex;flex-wrap:wrap;gap:14px;padding-bottom:18px}.context-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.context-action{display:grid;align-content:end;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.context-action button{min-height:38px;padding:8px 14px;color:#fff;background:var(--green);border:1px solid var(--green);border-radius:8px;cursor:pointer}.context-action button:disabled{color:#768078;background:#e7ebe8;border-color:#ccd3ce;cursor:not-allowed}.adjustment-list{display:grid;gap:8px;padding:0;list-style:none}.adjustment-list li{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:10px;background:#f7f2fb;border:1px solid #ddcfe8;border-radius:8px}.adjustment-list li div,.compact-form{display:grid;gap:7px}.compact-form{padding:12px;margin-top:10px;background:#f6f8f6;border:1px solid var(--line);border-radius:8px}.compact-form label{display:grid;gap:5px;font-size:12px;font-weight:700}.compact-form input,.compact-form textarea,.data-table input{width:100%;padding:8px;border:1px solid #afbbb3;border-radius:7px}.search-form{display:flex;align-items:end;gap:10px;padding:16px;background:#f4f7f5;border:1px solid var(--line);border-radius:10px}.search-form label{display:grid;flex:1;gap:6px;font-size:12px;font-weight:750}.search-form input{width:100%;padding:10px;border:1px solid #afbbb3;border-radius:8px}.search-results ol{display:grid;gap:10px;padding:0;list-style:none}.search-results li{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:10px}.search-results li>button{justify-self:start}.search-result-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.search-results p,.search-results small{margin:0}.context-controls select{min-width:190px;padding:9px 34px 9px 10px;color:var(--ink);background:#fff;border:1px solid #afbbb3;border-radius:8px}.context-controls select:disabled{color:#7a847e;background:#eef1ef}.loading-state,.empty-state,.fatal-message{padding:18px;margin-bottom:16px;border-radius:10px}.loading-state,.empty-state{color:var(--muted);background:#f0f4f1}.fatal-message{display:grid;gap:8px;color:#712c25;background:#fff0ee;border:1px solid #efc0bb}.fatal-message button{justify-self:start;padding:7px 11px;color:#712c25;background:#fff;border:1px solid #d79d96;border-radius:7px;cursor:pointer}.workspace .budget-grid-shell{padding:0;border-radius:0;box-shadow:none}.prototype-intro{padding:24px 26px 16px;background:var(--paper)}.prototype-intro h2{margin-bottom:8px}.prototype-intro p:last-child{max-width:840px;margin-bottom:0;color:var(--muted)}.failure-button,.toolbar-actions button,.panel-close{padding:8px 12px;color:var(--green);background:#fff;border:1px solid #afc1b6;border-radius:8px;cursor:pointer}.failure-button:hover,.toolbar-actions button:hover:not(:disabled){background:var(--green-soft)}.budget-grid-shell{padding:0 26px 24px;background:var(--paper);border-radius:0 0 18px 18px;box-shadow:0 18px 50px #1b2d231a}.grid-toolbar{min-height:54px;border-top:1px solid var(--line)}.save-state{margin-left:14px;padding:4px 8px;font-size:12px;border-radius:999px}.save-state-saved{color:#1f6247;background:#e1f2e9}.save-state-saving{color:#5f530c;background:#fff2ad}.save-state-failed{color:#852d25;background:#ffe2df}.toolbar-actions{display:flex;gap:8px}.toolbar-actions button:disabled{color:#939b96;cursor:default;border-color:#d9ddda}.grid-message{padding:10px 12px;margin-bottom:8px;color:#6d2b25;background:#fff1ef;border-left:4px solid var(--danger)}.grid-and-panel{position:relative;display:flex;border:1px solid #bcc8c0;border-radius:10px;overflow:hidden}.budget-grid-scroll{position:relative;flex:1;overflow:auto;background:#fff}.grid-header{position:sticky;z-index:20;top:0;display:flex;height:42px;color:#fff;background:#244d3b}.header-cell,.grid-label-cell,.grid-value-cell{flex:0 0 auto;display:flex;align-items:center;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.header-cell{justify-content:flex-end;padding:0 12px;font-size:13px;font-weight:750;border-color:#ffffff29}.header-cell.sticky-code,.grid-label-cell.sticky-code{width:96px;left:0}.header-cell.sticky-subject,.grid-label-cell.sticky-subject{width:280px;left:96px}.header-cell.sticky-code,.header-cell.sticky-subject{position:sticky;z-index:24;justify-content:flex-start;background:#1b3e2f}.grid-virtual-space{position:relative}.grid-row{position:absolute;top:0;left:0;display:flex}.grid-label-cell{position:sticky;z-index:8;padding:0 12px;font-size:13px;background:#fff}.grid-row-total .grid-label-cell,.grid-row-total .grid-value-cell{font-weight:750;background:#e8eee9}.grid-row-calculated .grid-label-cell{background:#f4f6f4}.tree-toggle{width:24px;padding:0;color:var(--green);background:transparent;border:0;cursor:pointer}.tree-spacer{display:inline-block;width:24px}.note-dot{margin-left:auto;color:#9d6816;font-size:10px}.row-inspect{margin-left:8px;padding:2px 6px;color:var(--green);font-size:11px;background:#fff;border:1px solid #bdc9c1;border-radius:5px;cursor:pointer}.grid-value-cell{position:relative;justify-content:flex-end;padding:0 12px;color:#26342c;cursor:cell;-webkit-user-select:none;user-select:none}.grid-value-cell input{width:calc(100% + 16px);height:32px;margin:0 -8px;padding:0 8px;text-align:right;border:2px solid var(--focus);border-radius:3px}.cell-editable{background:var(--input)}.cell-readonly{background:var(--calculated)}.cell-selected:after{position:absolute;inset:1px;content:"";background:#1f765314;border:1px solid rgba(31,118,83,.45);pointer-events:none}.cell-active:after{z-index:2;inset:-1px;border:2px solid var(--focus)}.explanation-panel{position:absolute;z-index:40;top:0;right:0;width:min(360px,85%);height:100%;padding:24px;background:#fcfdfb;border-left:1px solid #9eaea4;box-shadow:-12px 0 32px #152b1f24}.panel-close{position:absolute;top:12px;right:12px;width:32px;height:32px;padding:0;font-size:22px}.explanation-panel h2{padding-right:28px}.explanation-panel dt{margin-top:16px;color:var(--muted);font-size:12px;font-weight:750}.explanation-panel dd{margin:4px 0 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.grid-help{margin:12px 0 0;color:var(--muted);font-size:12px}.workbench-detail-host{position:relative}.detail-drawer{position:absolute;z-index:60;top:0;right:0;width:min(520px,94%);max-height:690px;padding:26px;overflow:auto;background:#fcfdfb;border:1px solid #9eaea4;border-radius:12px 0 0 12px;box-shadow:-16px 10px 40px #152b1f33}.detail-drawer h2,.page-heading h2{margin-bottom:4px}.detail-code,.muted-copy,.page-heading p,.section-heading p{color:var(--muted)}.detail-section,.attachment-section{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.detail-section h3,.attachment-section h3,.editor-card h3{margin:0 0 8px;font-size:16px}.detail-list{display:grid;grid-template-columns:112px minmax(0,1fr);gap:9px 12px;margin:0}.detail-list dt{color:var(--muted);font-size:12px;font-weight:750}.detail-list dd{min-width:0;margin:0;overflow-wrap:anywhere}pre{max-width:100%;margin:0;overflow:auto;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.hash-value{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.note-card{padding:12px;margin-bottom:8px;background:#f2f5f2;border-radius:8px}.note-card p{margin:6px 0;white-space:pre-wrap}.section-heading,.page-heading,.page-controls,.inline-actions,.snapshot-grid{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading>div,.page-heading>div{min-width:0}.section-heading p,.page-heading p{margin:4px 0 0}.page-panel{display:grid;gap:18px}.page-heading{align-items:flex-start}.page-heading button,.page-controls button,.inline-actions button,.editor-card button,.attachment-form button,.locatable-issues button{padding:7px 10px;color:var(--green);background:#fff;border:1px solid #afc1b6;border-radius:7px;cursor:pointer}button:disabled{color:#8b958f;cursor:not-allowed;background:#f1f3f1}.page-controls{justify-content:flex-start;flex-wrap:wrap;padding:12px;background:#f2f5f2;border-radius:9px}.page-controls label,.attachment-form label,.form-grid label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.page-controls select,.attachment-form select,.form-grid input,.form-grid select,.form-grid textarea{min-width:190px;padding:8px 10px;color:var(--ink);background:#fff;border:1px solid #afbbb3;border-radius:7px}.form-grid textarea{min-height:86px;resize:vertical}.table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px}.data-table{width:100%;min-width:900px;border-collapse:collapse;background:#fff}.data-table th,.data-table td{padding:10px 11px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.data-table th{position:sticky;z-index:2;top:0;color:#fff;font-size:12px;background:#244d3b}.data-table code{font-size:11px;overflow-wrap:anywhere}.selected-row td{background:#f0f7f3}.numeric-cell{text-align:right!important;font-variant-numeric:tabular-nums}.inline-actions{justify-content:flex-start;flex-wrap:wrap}.inline-actions a{color:var(--green);font-weight:700}.order-actions{white-space:nowrap}.order-actions button{width:30px;margin-right:3px;padding:4px}.status-chip{display:inline-flex;padding:3px 7px;color:#1f6247;font-size:11px;font-weight:750;background:#e1f2e9;border-radius:999px}.status-muted{color:#626b66;background:#e8ebe9}.status-danger{color:#842f27;background:#fde8e5}.scope-warning{display:grid;gap:5px;padding:12px 14px;color:#5f4b1f;background:#fff8e7;border-left:4px solid #b78220;border-radius:8px}.scope-warning span{font-size:12px}.scope-warning code{margin-left:5px}.editor-card{padding:18px;background:#f8faf8;border:1px solid #cbd5ce;border-radius:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.wide-field{grid-column:1 / -1}.checkbox-label{display:flex!important;align-items:center;gap:8px!important;color:var(--ink)!important}.attachment-list,.issue-list,.locatable-issues{padding:0;margin:12px 0;list-style:none}.attachment-list li,.locatable-issues li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.attachment-list li>div:first-child,.locatable-issues li>div{display:grid;gap:3px;min-width:0}.attachment-list span,.locatable-issues span{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.attachment-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:12px}.attachment-form input[type=file]{max-width:220px}.inline-message,.success-state{padding:10px 12px;margin:8px 0 0;color:#1f6247;background:#e7f3ec;border-radius:8px}.snapshot-grid{justify-content:flex-start;flex-wrap:wrap}.snapshot-grid span{padding:9px 11px;background:#eef3ef;border-radius:8px}.issue-list li{display:grid;gap:5px;padding:11px 12px;margin-bottom:8px;border-left:4px solid #b78220;background:#fff8e7}.issue-list .issue-blocking{color:#712c25;background:#fff0ee;border-left-color:var(--danger)}.issue-list code{overflow-wrap:anywhere}.danger-action{margin-top:14px;color:#842f27!important;border-color:#d49a94!important}.compact-table{max-height:440px;margin-top:12px}.stage-page{display:grid;gap:18px}.page-heading.compact h3,.page-heading.compact p{margin-bottom:0}.primary-action,.secondary-action,.export-actions button,.link-button{padding:9px 13px;color:var(--green);font-weight:700;text-decoration:none;background:#fff;border:1px solid #9fb5a8;border-radius:8px;cursor:pointer}.primary-action{color:#fff;background:var(--green);border-color:var(--green)}.primary-action:disabled{color:#7b8580;background:#e7ebe8;border-color:#cbd2cd}.stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:0;margin:0;overflow:hidden;list-style:none;background:#d7dfda;border:1px solid #d7dfda;border-radius:10px}.stepper li{display:flex;align-items:center;gap:8px;min-height:54px;padding:10px 14px;color:#6e7972;background:#f3f5f3}.stepper li.current{color:#183f30;font-weight:750;background:#e1eee6}.stepper span{display:grid;width:25px;height:25px;color:#fff;place-items:center;background:#83968b;border-radius:50%}.stepper .current span{background:var(--green)}.import-config-grid,.analysis-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;padding:16px;background:#f3f6f4;border:1px solid var(--line);border-radius:10px}.import-config-grid label,.analysis-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.import-config-grid input,.import-config-grid select,.analysis-controls input,.analysis-controls select{min-width:0;width:100%;padding:9px 10px;color:var(--ink);background:#fff;border:1px solid #afbbb3;border-radius:7px}.profile-facts,.reconciliation-strip{display:flex;flex-wrap:wrap;gap:8px}.profile-facts span,.reconciliation-strip{padding:9px 11px;background:#edf2ef;border-radius:7px}.warning-state{display:grid;gap:8px;padding:11px 13px;color:#654d18;background:#fff7df;border:1px solid #e5cf94;border-radius:8px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.metric-grid article{display:grid;gap:7px;padding:15px;background:#f5f8f6;border:1px solid var(--line);border-radius:10px}.metric-grid article span,.metric-grid article small{color:var(--muted)}.metric-grid article strong{font-size:20px}.danger-text{color:var(--danger)}.batch-report,.commit-panel,.completion-panel,.analysis-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:11px}.batch-report code{overflow-wrap:anywhere}.import-metrics{margin:14px 0}.import-preview-table td:last-child{display:grid;gap:5px;min-width:240px}.status-chip.warning,.status-chip.unmapped{color:#654d18;background:#fff0c7}.status-chip.error{color:#842f27;background:#fde8e5}.checkbox-row{display:flex;align-items:flex-start;gap:8px;margin:12px 0;font-size:13px}.checkbox-row input{margin-top:2px}.commit-panel h3,.completion-panel h3,.analysis-card h3{margin-top:0}.export-actions{display:flex;flex-wrap:wrap;gap:8px}.core-metrics article{border-top:4px solid #35644e}.analysis-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}.waterfall-chart{width:100%;height:410px}.fact-list{display:grid;gap:0;margin:0}.fact-list div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.fact-list dt{color:var(--muted)}.fact-list dd{margin:0;font-weight:750}.muted-note{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.contribution-table td:first-child{display:grid;gap:4px}.link-button{padding:5px 8px;font-size:12px}.anomaly-panel ul{display:grid;gap:8px;padding:0;margin:0;list-style:none}.anomaly-panel li{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:4px 12px;padding:11px 13px;color:#604b1d;background:#fff8e7;border-left:4px solid #b78220}.anomaly-panel li small{grid-column:1 / -1}.analysis-drilldown{position:fixed;z-index:100;inset:4vh 3vw;padding:24px;overflow:auto;background:#fcfdfb;border:1px solid #94a49b;border-radius:14px;box-shadow:0 20px 70px #0e221752}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--line)}.drilldown-organization{padding:16px 0;border-bottom:1px solid var(--line)}.drilldown-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.drilldown-columns article{display:grid;gap:9px;min-width:0;padding:12px;background:#f4f7f5;border-radius:9px}.drilldown-columns pre{max-height:240px;padding:9px;background:#fff;border:1px solid var(--line);border-radius:6px}@media(max-width:760px){main{width:100%;padding:0}.login-shell{display:grid;padding:18px}.login-card{padding:28px 22px}.app-header,.prototype-intro,.grid-toolbar{align-items:flex-start;flex-direction:column}.app-header,.budget-grid-shell{border-radius:0}.failure-button{align-self:stretch}.application-body{display:block;border-radius:0}.side-nav{display:none}.workspace{padding:16px 0 24px}.page-panel{padding:0 16px}.page-heading,.section-heading,.attachment-list li,.locatable-issues li{align-items:flex-start;flex-direction:column}.form-grid,.attachment-form,.import-config-grid,.analysis-controls,.analysis-split,.drilldown-columns{grid-template-columns:1fr}.stage-page{padding:0 16px}.stepper{grid-template-columns:1fr 1fr}.analysis-drilldown{inset:0;border-radius:0}.wide-field{grid-column:auto}.detail-drawer{position:fixed;inset:0;width:100%;max-height:none;border-radius:0}.context-controls{padding:0 16px 16px}.context-controls label,.context-controls select{width:100%}}
