:root{color-scheme:light;--ink:#193335;--muted:#607374;--paper:#f3f6f7;--line:#dbe3e4;--teal:#123e40;--lime:#d1f47b;--white:#fff;--danger:#a6372b;--amber:#875719;--shadow:0 8px 32px #16383e08;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #50a1a8}input:focus,select:focus,textarea:focus{border-color:#418287;box-shadow:0 0 0 3px #4182871a;outline:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.2;letter-spacing:-.055em;font-weight:650}h2{font-size:1.25rem;letter-spacing:-.025em;font-weight:650}h3{font-size:1rem;font-weight:650}.muted{color:var(--muted)}.small{font-size:.875rem}.mono{font-variant-numeric:tabular-nums}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.skip-link{position:absolute;top:-100px;left:16px;background:white;padding:12px;z-index:100}.skip-link:focus{top:10px}.loading{padding:80px;text-align:center}
.shell{min-height:100vh;padding-left:228px}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;background:var(--teal);color:#d5e4e3;padding:30px 20px;display:flex;flex-direction:column;z-index:15}.brand{display:flex;align-items:center;gap:11px;margin:0 10px 44px;font-size:1.55rem;font-weight:750;letter-spacing:.13em;color:white}.brand-mark{width:33px;height:33px;background:var(--lime);color:var(--teal);display:grid;place-items:center;border-radius:8px;font-size:1.35rem;letter-spacing:-.1em;padding-right:2px}.nav-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.13em;color:#91b0ae;padding:0 12px 12px}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:7px;font-size:.875rem;font-weight:550}.nav-item:hover{background:#ffffff0c}.nav-item.active{background:#ffffff14;color:white}.nav-item.active svg{color:var(--lime)}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:22px 10px 0;display:flex;gap:10px;align-items:flex-start;color:#a8c0bf;font-size:.8rem}.sidebar-bottom strong{display:block;color:#e6eeee;font-weight:500}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fff;border-bottom:1px solid var(--line);gap:20px}.crumbs{display:flex;align-items:center;gap:10px;font-size:.875rem;min-width:0}.crumbs span:last-child{color:var(--muted);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-right{display:flex;align-items:center;gap:20px;white-space:nowrap}.local-label{border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:7px}.local-label svg{width:14px;height:14px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8eeee;color:var(--teal);font-size:.75rem;font-weight:650}.main{padding:32px 40px 60px;max-width:1800px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head p{color:var(--muted);font-size:.875rem;margin-top:8px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);font-size:.875rem;font-weight:600;min-height:42px;line-height:1.25}.btn:hover{background:#f2f7f6;border-color:#a7c0be}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.primary:hover{background:#1e5556}.btn.lime{background:var(--lime);color:var(--teal);border-color:var(--lime)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.danger{color:var(--danger)}.btn.compact{padding:7px 11px;min-height:34px}.icon-btn{display:inline-grid;place-items:center;border:0;background:transparent;color:var(--muted);border-radius:5px;width:33px;height:33px}.icon-btn:hover{background:#e8f0ef;color:var(--teal)}.icon-btn.danger:hover{color:var(--danger);background:#fff1ed}.icon-btn svg{width:17px;height:17px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);border-radius:10px;padding:22px 24px;box-shadow:var(--shadow)}.stat .label{font-size:.875rem;color:var(--muted);display:flex;justify-content:space-between;gap:12px}.stat .label svg{color:#7b9695}.stat .value{font-size:2.1rem;letter-spacing:-.055em;margin-top:10px;font-weight:600}.stat .note{font-size:.8rem;color:var(--muted);margin-top:3px}.stat.featured{background:var(--teal);color:white;border-color:var(--teal)}.stat.featured .label,.stat.featured .note{color:#b3cdca}.stat.featured svg{color:var(--lime)}.panel{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;gap:16px;border-bottom:1px solid var(--line)}.panel-body{padding:24px}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:.875rem;text-align:left}th{font-size:.75rem;font-weight:600;color:var(--muted);background:#f9fbfb;padding:13px 18px;white-space:nowrap;text-align:left;border-bottom:1px solid var(--line)}td{padding:17px 18px;border-bottom:1px solid #e9eeef;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.clickable:hover{background:#f8fbfa;cursor:pointer}.cell-main{font-weight:600;color:var(--ink)}.cell-sub{font-size:.75rem;color:var(--muted);margin-top:3px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:#edf1f4;color:#5b6c77;font-size:.75rem;font-weight:600;border-radius:5px;white-space:nowrap}.badge.good{background:#eaf3dc;color:#436726}.badge.warn{background:#fff4dc;color:#8a601a}.badge.teal{background:#e1f0ed;color:#2a635a}.badge svg{width:13px;height:13px}.empty{text-align:center;padding:58px 24px 64px;max-width:600px;margin:auto}.empty-icon{height:56px;width:56px;display:grid;place-items:center;border:1px solid #dbe7e5;background:#f1f7f5;border-radius:13px;margin:0 auto 18px;color:#4c7b72}.empty-icon svg{width:27px;height:27px}.empty h2{margin-bottom:8px}.empty p{color:var(--muted);margin-bottom:22px;font-size:.875rem}.empty .actions{justify-content:center}.footnote{font-size:.8rem;color:var(--muted);display:flex;gap:7px;align-items:center;padding:15px 22px;background:#fcfdfd;border-top:1px solid var(--line)}.footnote svg{width:15px;height:15px}
.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:0 0 24px;overflow-x:auto}.tab{background:none;border:0;border-bottom:3px solid transparent;padding:11px 2px 14px;color:var(--muted);font-size:.875rem;font-weight:600;white-space:nowrap}.tab.active{border-bottom-color:var(--teal);color:var(--teal)}.tab .count{background:#e4eceb;font-size:.75rem;border-radius:4px;margin-left:7px;padding:1px 6px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>span,.field>label{font-size:.875rem;color:#496063;font-weight:500}.field.full{grid-column:1 / -1}.field small{color:var(--muted);font-size:.75rem}.input,input[type=text],input[type=date],input[type=number],select,textarea{border:1px solid #cad6d8;border-radius:6px;padding:10px 11px;min-height:42px;width:100%;color:var(--ink);background:white;font-size:.875rem;transition:border .15s}textarea{resize:vertical;min-height:84px}input::placeholder,textarea::placeholder{color:#98a7aa}input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal);flex-shrink:0}.check{display:flex;gap:10px;align-items:center;font-size:.875rem;cursor:pointer;padding:9px 0}.check small{display:block;color:var(--muted)}.section-note{color:var(--muted);font-size:.875rem;margin-bottom:20px;max-width:850px}.section-title{display:flex;align-items:center;gap:10px}.section-number{background:#edf3f1;color:#53766c;border-radius:5px;font-size:.75rem;padding:3px 7px;min-width:25px;text-align:center}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.summary-side{position:sticky;top:20px;background:var(--teal);color:white;border-radius:10px;padding:23px}.summary-side .eyebrow{color:#acc5c2}.summary-total{font-size:1.9rem;letter-spacing:-.04em;margin-top:12px;word-break:break-word;line-height:1.3}.summary-total small{font-size:.9rem;color:#acc5c2;letter-spacing:0}.summary-divider{height:1px;background:#ffffff22;margin:20px 0}.summary-row{display:flex;justify-content:space-between;gap:10px;font-size:.875rem;margin:12px 0}.summary-row span:first-child{color:#b8cecb}.summary-side .btn{width:100%;margin-top:16px}.summary-side .hint{font-size:.8rem;color:#b8cecb;margin-top:12px}.dirty-label{display:none;color:#805a13;background:#fff5dd;padding:5px 9px;border-radius:5px;font-size:.75rem}.dirty-label.visible{display:inline-flex}.scenario-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.scenario-card{padding:22px;border:1px solid var(--line);border-radius:9px;background:white;display:flex;flex-direction:column;gap:16px}.scenario-card.final{border-color:#80a57c;box-shadow:inset 0 3px #a3c874}.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:18px}.scenario-card .amount{font-size:1.6rem;font-variant-numeric:tabular-nums;letter-spacing:-.035em}.scenario-card .card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.scenario-card .actions{margin-top:auto}.notice{display:flex;align-items:flex-start;gap:10px;border:1px solid #e7d9b9;background:#fffbef;border-radius:7px;padding:14px 16px;color:#795a20;font-size:.875rem;margin-bottom:20px}.notice.info{background:#edf5f6;border-color:#d2e5e7;color:#3e666d}.notice svg{margin-top:1px;flex-shrink:0}.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;min-width:120px}.toolbar .label{font-size:.8rem;color:var(--muted)}.line-table{min-width:1150px}.line-table th{padding:10px 8px}.line-table td{padding:7px 8px}.line-table input{padding:8px 9px;min-height:38px;min-width:80px;font-size:.875rem}.line-table .line-name{min-width:210px}.line-table .line-sku{min-width:120px}.line-table .line-small{width:90px}.line-table .line-currency{width:85px}.line-table .rowno{color:#8b9c9e;font-size:.75rem;width:24px}.line-table .row-actions{display:flex;align-items:center;gap:1px;min-width:108px}.line-detail{background:#f8fbfb}.line-detail td{padding:20px 24px}.line-detail .form-grid{min-width:800px;grid-template-columns:repeat(4,1fr)}.line-detail .form-grid input{min-width:0}.cost-card{border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:14px}.cost-card:last-child{margin-bottom:0}.cost-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.cost-head input{font-weight:600;max-width:380px}.manual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.manual-grid .field>span{font-size:.8rem}.manual-grid .manual-title{grid-column:1 / -1;color:var(--muted);font-size:.8rem}.result-stats{grid-template-columns:2fr 1fr 1fr}.result-stat-note{font-size:.8rem;color:var(--muted);margin-top:8px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.breakdown{margin:0}.breakdown>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:9px 0;font-size:.875rem}.breakdown dt{color:var(--muted)}.breakdown dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.breakdown .strong{border-top:1px solid var(--line);margin-top:8px;padding-top:17px;font-weight:650}.breakdown .strong dt{color:var(--ink)}details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;font-weight:600;font-size:.875rem}details>summary::-webkit-details-marker{display:none}details>summary:after{content:'+';font-size:20px;color:var(--muted)}details[open]>summary:after{content:'−'}details[open]>summary{border-bottom:1px solid var(--line)}.warnings{background:#fffaf0;border-color:#e8ddc2}.warnings summary{color:#8a601a}.warning-list{padding:10px 24px 20px;margin:0;list-style:none}.warning-list li{padding:5px 0;font-size:.875rem;color:#86642c}.formula-table td{font-size:.8rem}.formula-table td:nth-child(2){color:var(--muted);white-space:normal;min-width:240px}.formula-line{border-top:1px solid var(--line)}.compare-table th,.compare-table td{min-width:220px}.compare-table th:first-child,.compare-table td:first-child{position:sticky;left:0;min-width:220px;max-width:260px;background:#fcfdfd;z-index:2}.compare-table thead th{vertical-align:top;padding:20px}.compare-table thead .btn{margin-top:13px}.compare-table .highlight{background:#f0f6e6}.compare-table td.highlight{font-weight:700;color:#326031}.document-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.document-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:25px;display:flex;align-items:flex-start;gap:17px}.document-card>svg{width:32px;height:32px;color:#73918e}.document-card h3{margin-bottom:6px}.document-card p{font-size:.875rem;color:var(--muted);margin-bottom:14px}.history-table{font-size:.8rem}.history-table td{max-width:320px;overflow-wrap:anywhere}.history-table pre{font:inherit;margin:0;white-space:pre-wrap}.status-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;font-size:.8rem;color:var(--muted)}#toast{position:fixed;bottom:24px;right:24px;max-width:440px;background:var(--teal);color:white;padding:14px 20px;border-radius:9px;box-shadow:0 10px 40px #19333530;font-size:.875rem;z-index:100;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translateY(0)}#toast.error{background:#923e31}dialog{border:1px solid var(--line);border-radius:12px;box-shadow:0 30px 90px #0003;width:min(560px,calc(100% - 32px));padding:0;color:var(--ink)}dialog::backdrop{background:#14363866;backdrop-filter:blur(2px)}.modal-head{padding:24px 26px 18px;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:0 26px 26px}.modal-body p{color:var(--muted);font-size:.875rem;margin-bottom:20px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.hidden{display:none!important}.inline-error{background:#fff0eb;border:1px solid #edc8bb;color:#943d2b;padding:15px 20px;border-radius:8px;margin-bottom:20px;font-size:.875rem}.list-footer{color:var(--muted);font-size:.8rem;padding:16px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between}
@media(min-width:1500px){.main{padding-top:40px}.editor-layout{grid-template-columns:minmax(0,1fr) 310px}.form-grid{gap:22px}}
@media(max-width:1200px){.shell{padding-left:190px}.sidebar{width:190px;padding:26px 12px}.brand{font-size:1.3rem}.main{padding:26px}.topbar{padding:0 26px}.editor-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-stats{grid-template-columns:1.5fr 1fr 1fr}.stat{padding:20px}.stat .value{font-size:1.8rem}}
@media(max-width:980px){.shell{padding-left:76px}.sidebar{width:76px;padding:24px 11px}.brand{margin:0 auto 38px}.brand>span:last-child,.nav-item>span,.nav-label,.sidebar-bottom{display:none}.nav-item{justify-content:center;padding:13px 10px}.editor-layout{grid-template-columns:1fr}.summary-side{position:static;display:none}.result-grid{grid-template-columns:1fr}.topbar-right .date{display:none}}
@media(max-width:680px){.shell{padding-left:0;padding-bottom:62px}.sidebar{inset:auto 0 0 0;width:100%;height:62px;padding:7px 12px;flex-direction:row;border-top:1px solid #305255}.sidebar .brand{display:none}.sidebar nav{display:flex;justify-content:space-around;width:100%;gap:0}.nav-item{gap:6px;padding:8px 12px}.nav-item>span{display:inline;font-size:.75rem}.topbar{height:62px;padding:0 18px}.topbar-right .local-label{display:none}.main{padding:24px 16px}.page-head{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:22px}h1{font-size:1.75rem}.stats{gap:10px;grid-template-columns:1fr;margin-bottom:20px}.stat{padding:17px 20px}.stat .value{font-size:1.8rem;margin-top:5px}.stat .note{margin-top:0}.form-grid,.form-grid.two{grid-template-columns:1fr}.panel-head{padding:18px;align-items:flex-start;flex-wrap:wrap}.panel-body{padding:18px}.tabs{gap:20px}.document-grid{grid-template-columns:1fr}.page-head .actions{width:100%}.result-stats{grid-template-columns:1fr}.stat.featured .value{font-size:2.3rem}.scenario-grid{grid-template-columns:1fr}#toast{left:16px;right:16px;bottom:78px;max-width:none}.toolbar{width:100%}.toolbar input,.toolbar select{min-width:80px;max-width:180px}.cost-card{padding:15px}.list-footer{flex-direction:column;gap:6px}.local-label{display:none}}
@media print{.sidebar,.topbar,.actions,.tabs,.btn,.summary-side,#toast,.skip-link{display:none!important}.shell{padding:0}.main{padding:0;max-width:none}.panel,.stat{box-shadow:none;break-inside:avoid}body{background:white}.table-wrap{overflow:visible}.result-grid{grid-template-columns:1fr 1fr}}

/* Input expectations and errors stay next to the field, including inside tables. */
.control-wrap{display:block;position:relative;min-width:0;width:100%}.control-wrap.with-unit>input{padding-right:5.4em}.input-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.8rem;font-weight:500;color:#7b8d8e;pointer-events:none;max-width:4.8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input::placeholder,textarea::placeholder{color:#879697;opacity:.8}.required-note{display:inline-block;margin-left:8px;font-size:.65rem;font-weight:500;color:#77898a}.field>small{line-height:1.45}.field-error{display:block;color:var(--danger);font-size:.8rem;line-height:1.4;margin-top:7px;white-space:normal;max-width:560px}.field-error:before{content:'!';display:inline-grid;place-items:center;background:#a6372b14;border:1px solid #a6372b40;border-radius:50%;width:16px;height:16px;font-size:.7rem;font-weight:700;margin-right:6px}[aria-invalid="true"]{border-color:var(--danger)!important;background:#fff8f5!important;box-shadow:0 0 0 3px #a6372b16!important;scroll-margin:32px}.manual-status{grid-column:1/-1;padding:9px 12px;border-radius:6px;background:#fff6e6;color:#805b20;font-size:.8rem;font-variant-numeric:tabular-nums}.manual-status.complete{background:#edf6e9;color:#386838}.line-table .control-wrap.with-unit>input{padding-right:3.8em;min-width:105px}.line-table .input-unit{right:8px;font-size:.7rem}.line-table td .field-error{min-width:150px;max-width:260px}.line-detail .field-error{max-width:100%}.field>span.control-wrap{font-weight:400}.field>.field-error{font-weight:400}.control-wrap>input,.control-wrap>select,.control-wrap>textarea{width:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

.pin-screen{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(1200px 600px at 50% -10%,#1d5856 0%,var(--teal) 48%,#0d2c2e 100%);color:white}
.pin-card{width:min(360px,100%);text-align:center}
.pin-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:36px;font-size:1.35rem;font-weight:750;letter-spacing:.16em}
.pin-card h1{font-size:1.65rem;letter-spacing:-.04em;font-weight:650}
.pin-hint{margin-top:8px;color:#b7d0cd;font-size:.95rem}
.pin-dots{display:flex;justify-content:center;gap:14px;margin:28px 0 8px;min-height:18px}
.pin-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid #d5ebe6;background:transparent;transition:background .12s,transform .12s}
.pin-dot.filled{background:var(--lime);border-color:var(--lime);transform:scale(1.08)}
.pin-error{min-height:1.4em;margin:0 0 8px;color:#ffd0c8;font-size:.9rem}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}
.pin-key{height:76px;border:0;border-radius:50%;background:#ffffff14;color:white;font-size:1.85rem;font-weight:500;letter-spacing:-.03em}
.pin-key:hover{background:#ffffff22}
.pin-key:active{background:var(--lime);color:var(--teal)}
.pin-key.ghost{background:transparent;font-size:1rem}
.pin-key.ghost svg{width:26px;height:26px;margin:auto}
.pin-key.spacer{background:transparent;pointer-events:none}
.pin-card.busy .pin-key{opacity:.55;pointer-events:none}
.pin-dots.shake{animation:pin-shake .42s ease}
@keyframes pin-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@media(max-width:680px){.pin-key{height:68px;font-size:1.6rem}.pin-pad{gap:12px}}
