:root{--ink:#14181c;--ink-mute:#5c666c;--paper:#f4f6f7;--sheet:#ffffff;--rule:#d3d9dc;--copper:#c2551f;--copper-deep:#8c3a15;--copper-wash:#fbede6;--verified:#1f6b52;--assumed:#b07a12;--font-sans:system-ui,-apple-system,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;--radius-sm:2px;--radius-md:6px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px}*,:after,:before{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:.875rem;font-weight:400;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}h1{font-size:1.75rem;font-weight:700;line-height:1.05;letter-spacing:-.01em;text-wrap:balance}h1,h2{margin:0;font-family:var(--font-sans);word-break:keep-all}h2{font-size:.9375rem;letter-spacing:-.005em}h2,h3{font-weight:600;line-height:1.15}h3{margin:0;font-family:var(--font-sans);font-size:.8125rem;word-break:keep-all}.caption,.label,.muted,caption,label,p,small{line-height:1.5}.muted{color:var(--ink-mute)}.num,.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5}a{color:var(--copper-deep);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;line-height:1.5}.shell{max-width:1440px;margin:0 auto;padding:var(--space-md) var(--space-lg)}.panel{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:var(--space-md)}.chip-assumed{font-size:.75rem;color:var(--assumed);border:1px solid var(--assumed);padding:1px 6px;border-radius:var(--radius-sm);background:transparent}.btn-primary,.chip-assumed{display:inline-block;line-height:1.5}.btn-primary{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:var(--radius-sm);padding:12px 16px;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;box-shadow:none}.btn-primary:hover{background:var(--copper);border-color:var(--copper);color:#fff;text-decoration:none}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{display:inline-block;background:var(--sheet);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:12px 16px;font-size:.875rem;font-weight:500;line-height:1.5;cursor:pointer;text-decoration:none;text-align:center;box-shadow:none}.btn-secondary:hover{border-color:var(--ink-mute);text-decoration:none}.btn-secondary:active{transform:scale(.98)}.field{margin-bottom:var(--space-md)}.field label{display:block;font-weight:600;margin-bottom:4px}.field input,.field select{width:100%;max-width:28rem;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--radius-sm);font:inherit;background:var(--sheet);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid var(--copper);outline-offset:1px}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table td,.data-table th{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top}.data-table th{font-size:.75rem;font-weight:600;color:var(--ink-mute);letter-spacing:.02em}.data-table .tabular,.data-table td.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.demo-account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.public-landing .public-hero{margin-bottom:var(--space-md)}.public-landing .hero-kicker{margin:0 0 8px;letter-spacing:.04em;line-height:1.5}.public-landing .public-hero h1{line-height:1.05;word-break:keep-all;max-width:22em}.public-landing .hero-lead{margin-top:var(--space-sm);max-width:42rem;line-height:1.5;word-break:keep-all}.p0-keyword-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:var(--space-md) 0 0;padding:0}.p0-keyword-list li{font-family:var(--font-mono);font-size:.75rem;line-height:1.5;padding:4px 10px;border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--paper);word-break:keep-all}.hero-cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--space-md)}.landing-section{margin-bottom:var(--space-md)}.landing-section h2{line-height:1.15;word-break:keep-all}.landing-section-lead{margin-top:var(--space-xs);max-width:44rem;line-height:1.5}.landing-grid-2{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);margin-top:var(--space-sm)}@media (min-width:800px){.landing-grid-2{grid-template-columns:1.4fr 1fr}}.landing-grid-2 p{line-height:1.5;word-break:keep-all}.contrast-once{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:12px 14px;background:var(--paper);box-shadow:none}.contrast-label{margin:0 0 6px;font-size:.75rem;letter-spacing:.06em;line-height:1.5}.flow-steps{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:grid;grid-gap:10px;gap:10px}.flow-steps li{display:grid;grid-template-columns:auto 1fr;grid-gap:12px;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);align-items:start}.flow-steps li:last-child{border-bottom:0}.flow-n{font-size:.75rem;font-weight:600;color:var(--copper-deep);line-height:1.5;padding-top:2px}.flow-steps strong{display:block;line-height:1.5;word-break:keep-all}.flow-steps p{margin:2px 0 0;line-height:1.5}.landing-mini-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);margin-top:var(--space-md)}@media (min-width:900px){.landing-mini-grid{grid-template-columns:repeat(3,1fr)}}.landing-mini{margin:0;border:1px solid var(--rule);border-radius:var(--radius-sm);overflow:hidden;background:var(--sheet);box-shadow:none}.landing-mini figcaption{font-size:.75rem;font-weight:600;padding:8px 10px;border-bottom:1px solid var(--rule);background:var(--paper);line-height:1.5;word-break:keep-all}.landing-mini-svg{display:block;width:100%;height:auto;vertical-align:top}.demo-account-card{padding:12px;box-shadow:none;border-radius:var(--radius-sm)}.demo-account-card h3{margin-bottom:6px;line-height:1.15;word-break:keep-all}.demo-account-line{margin:6px 0;font-size:.8125rem;line-height:1.5;word-break:keep-all}.demo-account-home{margin:0 0 10px;font-size:.75rem;line-height:1.5}.demo-account-link{width:100%;display:block;box-sizing:border-box}.label-caps{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.04em;line-height:1.5;text-transform:uppercase}.autofill-buttons{display:flex;flex-direction:column;gap:var(--space-sm)}@media (min-width:720px){.autofill-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-sm);gap:var(--space-sm)}}.autofill-btn{flex:1 1 140px;min-width:0;white-space:normal;word-break:keep-all;height:auto;min-height:2.75rem;overflow:visible}@media (max-width:420px){.shell{padding:var(--space-md) var(--space-sm)}.autofill-btn,.btn-primary,.btn-secondary{width:100%;box-sizing:border-box}.autofill-buttons{display:flex;flex-direction:column}}@media (prefers-reduced-motion:reduce){.btn-primary:active,.btn-secondary:active{transform:none}}.app-header{border-radius:var(--radius-sm);box-shadow:none}.coating-page{max-width:1440px;margin:0 auto}.case-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 14px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);margin-bottom:12px;box-shadow:none}.case-id{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.05;word-break:keep-all;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0}.case-meta{font-size:.8rem;color:var(--ink-mute);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5;word-break:keep-all}.badge{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:3px 8px;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:var(--radius-sm);line-height:1.5}.badge-warn{color:var(--copper-deep);border-color:var(--copper)}.badge-ok,.badge-warn{background:transparent}.badge-ok{color:var(--verified);border-color:var(--verified)}.badge-mute{background:transparent;color:var(--ink-mute);border-color:var(--rule)}.status-badge{font-feature-settings:normal;font-variant-numeric:normal;white-space:nowrap}.login-page{max-width:960px;margin:0 auto}.login-card{border-radius:var(--radius-sm);box-shadow:none;border:1px solid var(--rule);padding:var(--space-md)}.login-card-header h1{line-height:1.05;word-break:keep-all}.login-lead{margin-top:var(--space-xs);line-height:1.5;word-break:keep-all;max-width:52ch}.login-form-slot{margin-top:var(--space-md)}@media (min-width:900px){.login-form-wrap{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.15fr);grid-gap:var(--space-lg);gap:var(--space-lg);align-items:start}.login-form-wrap .login-form{position:-webkit-sticky;position:sticky;top:12px}.autofill-panel{margin-top:0;padding-top:0;border-top:0;border-left:1px solid var(--rule);padding-left:var(--space-lg)}.autofill-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}}.admin-home-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);margin-top:var(--space-md)}@media (min-width:1000px){.admin-home-grid{grid-template-columns:1fr 1fr}.admin-home-span{grid-column:1/-1}}.access-denied-grid{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);margin-top:var(--space-md)}@media (min-width:900px){.access-denied-grid{grid-template-columns:1fr 1fr}}.access-denied-list{margin:0;padding-left:1.15rem;line-height:1.55;word-break:keep-all}.access-denied-list li+li{margin-top:6px}.case-access-denied .hero-cta-row{display:flex;flex-wrap:wrap;gap:8px}.login-form .field input{max-width:none}.login-submit{width:100%;border-radius:var(--radius-sm);box-shadow:none}.login-error{color:var(--copper-deep);margin:0 0 8px;line-height:1.5}.autofill-panel{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--rule)}.autofill-panel h2{margin-bottom:var(--space-sm);line-height:1.15;word-break:keep-all}.autofill-hint{margin-bottom:var(--space-sm);line-height:1.5}.autofill-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border-radius:var(--radius-sm);box-shadow:none;padding:10px 12px}.autofill-btn-title{font-weight:600;line-height:1.5;word-break:keep-all}.autofill-btn-desc{font-size:.75rem;line-height:1.5;word-break:keep-all;font-weight:400}.kpi{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:12px}.kpi-card{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:12px 14px;box-shadow:none}.kpi-card .lbl{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);line-height:1.5}.kpi-card .big,.kpi-card .lbl{font-weight:700;word-break:keep-all}.kpi-card .big{font-family:var(--font-mono);font-size:1.85rem;letter-spacing:-.03em;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px;color:var(--ink)}.kpi-card .big.over{color:var(--copper)}.kpi-card .big.ok{color:var(--verified)}.kpi-card .unit{font-size:.8rem;font-weight:500;color:var(--ink-mute);margin-left:4px}.kpi-card .sub{font-size:.75rem;color:var(--ink-mute);margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5;word-break:keep-all}.kpi-card .sub.over{color:var(--copper-deep);font-weight:600}.workspace{display:grid;grid-gap:10px;gap:10px;align-items:start}.workspace-intake{grid-template-columns:minmax(240px,1fr) minmax(280px,1.15fr)}.workspace-quote{grid-template-columns:minmax(200px,.65fr) minmax(240px,.8fr) minmax(280px,1fr)}.dense-panel{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:0;box-shadow:none;min-width:0}.panel-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--rule);background:#eef1f2}.panel-h h2{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.15;word-break:keep-all;color:var(--ink)}.panel-sub{font-size:.7rem;color:var(--ink-mute);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5}.panel-b{padding:10px 12px 12px}.fg{margin:0 0 12px;border:0;padding:0}.fg-label{display:block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;line-height:1.5;word-break:keep-all}.row2{grid-template-columns:1fr 1fr;grid-gap:6px}.row2,.row3{display:grid;gap:6px}.row3{grid-template-columns:1fr 1fr 1fr;grid-gap:6px}.dense-field{margin-bottom:6px}.dense-field label{display:block;font-size:.75rem;font-weight:500;color:var(--ink-mute);margin-bottom:2px;line-height:1.5;word-break:keep-all}.dense-field .val{display:flex;align-items:baseline;border:1px solid var(--rule);background:#fafbfc;padding:5px 8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:.85rem;line-height:1.5;border-radius:var(--radius-sm)}.dense-field .val .num,.dense-field .val input.num{flex:1 1;font-weight:600;min-width:0;border:0;background:transparent;padding:0;font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);width:100%;max-width:none}.dense-field .val .num:focus,.dense-field .val input.num:focus{outline:none}.dense-field .val .unit{font-size:.7rem;color:var(--ink-mute);margin-left:6px;flex-shrink:0}.input-num,.input-plain{width:100%;max-width:none;padding:5px 8px;border:1px solid var(--rule);border-radius:var(--radius-sm);font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:#fafbfc;color:var(--ink);line-height:1.5}.input-num{font-weight:600}.comp-bar,.input-num{font-family:var(--font-mono)}.comp-bar{display:flex;height:22px;border:1px solid var(--rule);border-radius:var(--radius-sm);overflow:hidden;font-size:.65rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.comp-bar span{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;min-width:0}.comp-bar .am{background:var(--ink)}.comp-bar .ca{background:#4a5560}.comp-bar .bd{background:var(--copper)}.comp-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:5px;font-size:.75rem;color:var(--ink-mute);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5}.comp-legend i{display:inline-block;width:8px;height:8px;margin-right:4px;vertical-align:middle}.comp-legend .ok-sum{color:var(--verified);font-weight:600}.comp-legend .bad-sum{color:var(--copper-deep);font-weight:700}.inline-error{color:var(--copper-deep);font-size:.75rem;line-height:1.5;margin:6px 0 0;word-break:keep-all}.draw-warn,.draw-wrap{position:static}.draw-warn{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;margin-bottom:8px;background:var(--copper-wash);border:1px solid var(--copper);border-left-width:3px;border-radius:var(--radius-sm)}.draw-warn strong{display:block;font-size:.8rem;font-weight:700;color:var(--copper-deep);line-height:1.15;word-break:keep-all;letter-spacing:-.01em}.draw-warn p{font-size:.75rem;color:var(--ink);margin:2px 0 0;line-height:1.5;word-break:keep-all}.draw-warn .tag{flex-shrink:0;font-family:var(--font-mono);font-size:.65rem;font-weight:700;color:#fff;background:var(--copper);padding:2px 5px;border-radius:var(--radius-sm);line-height:1.5}.draw-svg{display:block;width:100%;height:auto;background:#f8fafb;border:1px solid var(--rule)}.draw-caption{margin-top:8px;font-size:.75rem;color:var(--ink-mute);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5;word-break:keep-all}.draw-caption b{color:var(--ink);font-weight:600}.draw-caption .over{color:var(--copper-deep);font-weight:700}.cta-note{font-size:.75rem;color:var(--ink-mute);text-align:center;line-height:1.5;margin-top:6px;word-break:keep-all}.ledger-panel{min-width:0}.ledger-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.ledger-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.75rem;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums;line-height:1.5}.ledger-table th{text-align:left;font-weight:600;font-size:.65rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-mute);padding:3px 6px;border-bottom:1px solid var(--rule);background:#f7f9fa;line-height:1.5}.ledger-table th:nth-child(3),.ledger-table th:nth-child(4){text-align:right}.ledger-table td{padding:3px 6px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule);vertical-align:top;color:var(--ink);line-height:1.5}.ledger-table td:last-child{border-right:0}.ledger-table td:nth-child(3),.ledger-table td:nth-child(4){text-align:right;white-space:nowrap}.ledger-table td.lab{font-family:var(--font-sans);font-size:.78rem;font-weight:600;white-space:nowrap;line-height:1.5;word-break:keep-all}.ledger-table td.eq{color:var(--ink-mute);font-size:.75rem}.ledger-table td.eq,.ledger-table td.res{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ledger-table tr.ledger-final td{border-bottom:0;background:#f0f7f4;border-top:2px solid var(--verified)}.ledger-table tr.ledger-final td.lab,.ledger-table tr.ledger-final td.res{color:var(--verified);font-weight:700}.chip-assumed-ledger{display:inline-block;font-family:var(--font-sans);font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;border:1px solid var(--assumed);color:var(--assumed);border-radius:var(--radius-sm);vertical-align:middle;margin-left:4px;line-height:1.5;background:transparent}.ledger-note{margin:8px 12px 12px;padding:6px 8px;border:1px dashed var(--rule);font-size:.75rem;color:var(--ink-mute);line-height:1.5;word-break:keep-all}.ledger-note b{color:var(--copper-deep)}.bottom{margin-top:12px;display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:stretch}.price-box{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;box-shadow:none}.price-item .lbl{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-mute);line-height:1.5}.price-item .amt{font-family:var(--font-mono);font-size:1.25rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15;margin-top:2px}.price-item .amt small{font-weight:500}.price-item .amt small,.ver-badge{font-size:.75rem;color:var(--ink-mute)}.ver-badge{display:inline-flex;align-items:center;gap:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:4px 8px;border:1px solid var(--rule);background:#fafbfc;border-radius:var(--radius-sm);line-height:1.5}.ver-badge b{color:var(--ink);font-weight:700}.cta{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:6px;min-width:200px}.btn-ghost{display:inline-block;font-size:.75rem;font-weight:600;padding:8px 12px;background:transparent;color:var(--ink-mute);border:1px solid var(--rule);border-radius:var(--radius-sm);text-align:center;text-decoration:none;line-height:1.5;box-shadow:none}.btn-ghost:hover{border-color:var(--ink-mute);text-decoration:none}.role-home-admin,.role-home-researcher,.role-home-reviewer{border-radius:var(--radius-sm);box-shadow:none;padding:var(--space-md)}.autofill-panel,.login-form .field input,.login-form-wrap,.public-main .panel{border-radius:var(--radius-sm);box-shadow:none}@media (max-width:1100px){.workspace-quote{grid-template-columns:1fr 1fr}.ledger-panel{grid-column:1/-1}.kpi{grid-template-columns:1fr 1fr}}@media (max-width:720px){.bottom,.workspace-intake,.workspace-quote{grid-template-columns:1fr}.case-header{flex-direction:column;align-items:flex-start}.kpi{grid-template-columns:1fr 1fr}.kpi-card .big{font-size:1.45rem}}.gantt-panel{margin-top:12px}.gantt{overflow-x:auto;-webkit-overflow-scrolling:touch}.gantt-head{display:grid;grid-template-columns:100px repeat(8,minmax(56px,1fr));grid-gap:2px;gap:2px;margin-bottom:4px;font-size:.65rem;color:var(--ink-mute);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center;line-height:1.5}.gantt-head .lbl{text-align:left;color:var(--ink-mute);font-weight:600}.gantt-row{display:grid;grid-template-columns:100px repeat(8,minmax(56px,1fr));grid-gap:2px;gap:2px;margin-bottom:3px;align-items:stretch}.gantt-row .name{font-size:.75rem;font-weight:600;color:var(--ink);display:flex;flex-direction:column;justify-content:center;padding-right:6px;line-height:1.5;word-break:keep-all}.gantt-row .name small{display:block;font-weight:400;color:var(--ink-mute);font-size:.62rem;line-height:1.5}.cell,button.cell{height:28px;min-width:0;background:#fafbfc;border:1px solid var(--rule);border-radius:1px;padding:0;cursor:pointer;box-shadow:none}button.cell:disabled{cursor:not-allowed;opacity:.85}.cell.busy{background:rgba(31,107,82,.12);border-color:rgba(31,107,82,.35)}.cell.locked{background:#eef1f2;border-color:var(--ink-mute);background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(138,148,154,.35) 0,rgba(138,148,154,.35) 4px);cursor:not-allowed}.cell.sel{background:rgba(194,85,31,.14);border-color:var(--copper);box-shadow:inset 0 0 0 1px var(--copper)}.cell.shared{border-style:dashed}.gantt-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.75rem;color:var(--ink-mute);line-height:1.5}.gantt-legend i{display:inline-block;width:12px;height:10px;border-radius:1px;vertical-align:middle;margin-right:4px;border:1px solid var(--rule)}.gantt-legend i.locked{background:#eef1f2;background-image:repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(138,148,154,.4) 0,rgba(138,148,154,.4) 3px)}.gantt-legend i.busy{background:rgba(31,107,82,.12);border-color:rgba(31,107,82,.35)}.gantt-legend i.sel{background:rgba(194,85,31,.14);border-color:var(--copper)}.gantt-legend i.shared{background:#fafbfc;border-style:dashed}.schedule-err,.schedule-ok,.schedule-pick{margin-top:10px;font-size:.8rem;line-height:1.5;word-break:keep-all}.schedule-err{color:var(--copper-deep);font-weight:600}.schedule-ok{color:var(--verified);font-weight:600}.schedule-cta{margin-top:12px}.lifecycle-strip{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0}.lifecycle-chip{font-size:.65rem;line-height:1.5;padding:2px 6px;border:1px solid var(--rule);border-radius:1px;color:var(--ink-mute);background:transparent;word-break:keep-all}.lifecycle-chip.active{border-color:var(--ink);color:var(--ink);font-weight:600}.lifecycle-chip.done{border-color:var(--verified);color:var(--verified)}.lifecycle-chip.blocked{border-color:var(--copper);color:var(--copper-deep)}.invoice-sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:20px 24px;max-width:800px}.invoice-sheet .invoice-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule);line-height:1.5}.invoice-sheet .invoice-total{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:16px;line-height:1.1}.refund-tier-table{width:100%;border-collapse:collapse;font-size:.8rem}.refund-tier-table td,.refund-tier-table th{border:1px solid var(--rule);padding:6px 8px;text-align:left;line-height:1.5}.refund-tier-table th{background:#fafbfc;font-weight:600}.refund-current{background:rgba(31,107,82,.08);font-weight:600}.assumption-banner{background:var(--copper-wash);border:1px solid var(--assumed);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:12px;box-shadow:none}.assumption-banner-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;line-height:1.5;word-break:keep-all;margin-bottom:6px}.assumption-banner p{margin:0;font-size:.8125rem;line-height:1.5;color:var(--ink);word-break:keep-all}.cell-type-opt{display:inline-flex;align-items:center;gap:6px;font-weight:500;line-height:1.5;cursor:pointer;margin-right:12px}.cell-scope-list{margin:0;padding-left:1.2rem;line-height:1.5}.cell-scope-list li{margin-bottom:6px;word-break:keep-all}.val-input{display:flex;align-items:center;gap:6px}.val-input input,.val-input select{flex:1 1;min-width:0;max-width:none;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius-sm);font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--sheet);color:var(--ink)}.val-input .unit{font-size:.75rem;color:var(--ink-mute);white-space:nowrap;line-height:1.5}.new-case-options{display:grid;grid-gap:8px;gap:8px}.new-case-opt{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:10px;column-gap:10px;grid-row-gap:2px;row-gap:2px;padding:12px;border:1px solid var(--rule);border-radius:var(--radius-sm);cursor:pointer;background:var(--sheet);box-shadow:none}.new-case-opt.selected{border-color:var(--ink)}.new-case-opt input{grid-row:1/span 2;align-self:center}.new-case-opt-title{font-weight:600;line-height:1.5;word-break:keep-all}.new-case-opt-desc{font-size:.8rem;line-height:1.5;grid-column:2;word-break:keep-all}.new-case-opt .chip-assumed{grid-column:2;justify-self:start;margin-top:4px}@media print{body{background:#fff}.app-header,.cta,.no-print,.schedule-cta,.shell>header{display:none!important}.invoice-sheet{border:0;max-width:100%;padding:0}@page{size:A4;margin:18mm}}@media (max-width:420px){.kpi{grid-template-columns:1fr}.ledger-table thead{display:none}.ledger-table,.ledger-table tbody,.ledger-table td,.ledger-table tr{display:block;width:100%}.ledger-table tr{padding:8px 10px;border-bottom:1px solid var(--rule)}.ledger-table tr.ledger-final,.ledger-table tr:last-child{border-bottom:0;background:#f0f7f4}.ledger-table tr.ledger-final{border-top:2px solid var(--verified)}.ledger-table td{border:0;padding:1px 0;text-align:left!important;white-space:normal}.ledger-table td.lab{white-space:normal;margin-bottom:2px}.ledger-table td.eq{font-size:.75rem}.ledger-table td.res{font-weight:700;font-size:.85rem}.ledger-table td.res:after{content:" " attr(data-unit);font-weight:500;color:var(--ink-mute);font-size:.75rem}.data-table thead,.ledger-table td.unit-col{display:none}.data-table,.data-table tbody,.data-table td,.data-table tr{display:block;width:100%}.data-table tr{padding:10px 12px;border:1px solid var(--rule);border-radius:var(--radius-sm);margin-bottom:8px;background:var(--sheet)}.data-table td{border:0;padding:3px 0;text-align:left!important;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.data-table td:before{content:attr(data-label);display:block;font-size:.7rem;font-weight:600;color:var(--ink-mute);letter-spacing:.02em;margin-bottom:1px}.data-table td:empty,.data-table td:not([data-label]):before,.refund-tier-table thead{display:none}.refund-tier-table,.refund-tier-table tbody,.refund-tier-table td,.refund-tier-table tr{display:block;width:100%}.refund-tier-table tr{padding:8px 10px;border-bottom:1px solid var(--rule)}.refund-tier-table td{border:0;padding:2px 0;white-space:normal}}.login-page{min-height:calc(100vh - 120px);display:flex;flex-direction:column;justify-content:flex-start;width:100%}.login-card{width:100%;margin:0 auto;flex:1 0 auto}.case-access-denied{min-height:calc(100vh - 140px)}.panel.dense-panel.fill-viewport{min-height:40vh}