@font-face{font-family:Public;src:url('../fonts/public-sans-var.woff2') format('woff2');font-weight:100 900;font-display:swap}@font-face{font-family:Barlow;src:url('../fonts/barlow-semi-condensed-600.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Barlow;src:url('../fonts/barlow-semi-condensed-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--ink:#233746;--muted:#566873;--rule:#d5dfe5;--paper:#f3f6f8;--white:#fff;--blue:#234f7c;--hover:#173c61;--tint:#e8f0f7;--green:#256044;--green-bg:#e9f3ee;--amber:#8a4c11;--amber-bg:#fcf1df;--red:#a03831;--red-bg:#fbecea;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s24:96px;--r:4px;--shadow:0 16px 48px #23374626;--motion:160ms ease-out}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 Public,sans-serif;font-variant-numeric:tabular-nums}::selection{background:var(--blue);color:var(--white)}button,input,select{font:inherit}button,a,label.file{cursor:pointer}button,a,input,select{touch-action:manipulation}button{border:1px solid var(--rule);border-radius:var(--r);padding:var(--s2) var(--s4);background:var(--white);color:var(--ink);font-weight:600;transition:background-color var(--motion),color var(--motion)}button:hover{background:var(--tint)}button.primary{background:var(--blue);border-color:var(--blue);color:var(--white)}button.primary:hover{background:var(--hover)}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--blue);text-underline-offset:4px}input,select{max-width:100%;padding:var(--s2) var(--s3);border:1px solid #8b9fab;border-radius:var(--r);background:var(--white);color:var(--ink);caret-color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3,.amount,.brand{font-family:Barlow,sans-serif}h1{font-size:40px;line-height:1.08;font-weight:600;letter-spacing:-.02em}h2{font-size:24px;line-height:1.2;font-weight:600}h3{font-size:20px;font-weight:600}.subtle,small{color:var(--muted)}small{font-size:12px}strong{font-weight:650}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.rail{padding:var(--s8) var(--s6);border-right:1px solid var(--rule);background:#eaf0f3;display:flex;flex-direction:column;gap:var(--s8)}.brand{font-size:24px;display:flex;align-items:center;gap:var(--s3);font-weight:600}.brand svg{width:28px;height:28px}.rail label{display:block;margin-bottom:var(--s2);color:var(--muted);font-size:12px}.rail select{width:100%;font-size:12px;padding:var(--s2)}nav{display:flex;flex-direction:column;gap:var(--s1)}nav button{text-align:left;background:transparent;border-color:transparent;font-weight:500;display:flex;align-items:center;gap:var(--s3);padding:var(--s3)}nav svg{height:18px;width:18px;flex-shrink:0}nav button.active{color:var(--white);background:var(--blue)}.rail-note{font-size:12px;color:var(--muted);padding-top:var(--s4);border-top:1px solid var(--rule)}.rail-bottom{margin-top:auto;display:grid;gap:var(--s3)}.rail-bottom button{font-size:12px;background:transparent;padding:var(--s2)}main{padding:var(--s8) var(--s10);min-width:0;max-width:1600px;width:100%;margin:auto;align-self:start}.topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s8);font-size:12px;color:var(--muted)}.topline span:last-child{display:flex;align-items:center;gap:var(--s2)}.heading{display:flex;justify-content:space-between;gap:var(--s6);align-items:center;margin-bottom:var(--s8)}.heading p{margin-top:var(--s2);color:var(--muted)}.actions{display:flex;gap:var(--s2);flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--rule);margin-bottom:var(--s8);background:var(--white)}.metric{padding:var(--s6);border-right:1px solid var(--rule)}.metric:last-child{border:0}.metric p{font-size:12px;color:var(--muted);margin-bottom:var(--s2)}.amount{font-size:32px;line-height:1.1;font-weight:600}.metric small{display:block;margin-top:var(--s2)}.split{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s8);align-items:start}.section-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-bottom:var(--s4)}.section-head p{margin-top:var(--s1);font-size:12px;color:var(--muted)}.legend{font-size:12px;display:flex;gap:var(--s4);align-items:center}.legend i{display:inline-block;width:8px;height:8px;background:var(--blue);margin-right:var(--s1)}.legend i.open{background:#b7c6d0}.sheet{background:var(--white);border:1px solid var(--rule);border-radius:2px;overflow:hidden}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:var(--muted);font-size:12px;font-weight:500;background:#f8fafb}td,th{padding:var(--s3);border-bottom:1px solid var(--rule);vertical-align:middle}td.number,th.number{text-align:right;white-space:nowrap}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--tint)}td strong{font-size:14px}.code{font-size:12px;color:var(--muted);display:inline-block;width:24px}td .trade{display:block}.bar{height:4px;display:flex;background:var(--paper);margin-top:var(--s2);max-width:180px}.bar span{background:var(--blue)}.bar .open{background:#b7c6d0}.risk{color:var(--red)}.positive{color:var(--green)}.table-foot{display:flex;gap:var(--s4);justify-content:space-between;padding:var(--s3) var(--s4);border-top:1px solid var(--rule);font-size:12px;background:#f8fafb}.note{font-size:12px;color:var(--muted);margin-top:var(--s3);line-height:1.6}.draw{background:var(--blue);color:var(--white);padding:var(--s6)}.draw h2{margin-bottom:var(--s4)}.draw dl{margin:var(--s6) 0}.draw dl div{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0}.draw dt{color:#d5dfe5}.draw dd{margin:0}.draw .total{border-top:1px solid #687f8d;margin-top:var(--s3);padding-top:var(--s4)}.draw .amount{font-size:40px}.draw p{font-size:12px;color:#d5dfe5}.draw button{width:100%;margin-top:var(--s6);border:0}.aside-note{padding:var(--s4) 0;border-bottom:1px solid var(--rule)}.aside-note p{font-size:12px;color:var(--muted);margin-top:var(--s2)}.badge{font-size:12px;padding:var(--s1) var(--s2);border-radius:2px;background:var(--green-bg);color:var(--green);display:inline-block}.badge.pending{background:var(--amber-bg);color:var(--amber)}.savings{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr 1.4fr;gap:var(--s8)}.savings p{margin-top:var(--s2);font-size:12px;color:var(--muted)}.savings summary{cursor:pointer;color:var(--blue);font-weight:600;margin-top:var(--s3)}.savings-fields{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4)}.savings-fields label{font-size:12px;width:100px}.savings-fields input{width:100%;margin-top:var(--s1)}.savings-result{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}.savings-result .amount{font-size:24px;margin-top:var(--s2)}footer{display:flex;justify-content:space-between;gap:var(--s4);margin-top:var(--s8);padding-top:var(--s4);color:var(--muted);font-size:12px;border-top:1px solid var(--rule)}.panel{padding:var(--s6);background:var(--white);border:1px solid var(--rule);margin-bottom:var(--s6)}.panel>p{margin-top:var(--s2);color:var(--muted)}.upload{border:1px dashed #8b9fab;padding:var(--s8);margin-top:var(--s6);background:#f8fafb}.upload input{display:block;margin:var(--s4) 0;width:100%;max-width:460px}.links{display:flex;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s4)}.callout{background:var(--amber-bg);color:var(--amber);padding:var(--s4);margin-bottom:var(--s4)}.error{color:var(--red);background:var(--red-bg);padding:var(--s4);margin-top:var(--s4)}.form-grid{display:flex;gap:var(--s4);flex-wrap:wrap;margin:var(--s4) 0}.form-grid label{display:grid;gap:var(--s1);min-width:140px;flex:1}.form-grid input{width:100%}.empty{padding:var(--s12);text-align:center}.empty p{margin-block:var(--s3)}.statement{max-width:850px;background:var(--white);border:1px solid var(--rule);padding:var(--s8)}.statement-top{display:flex;justify-content:space-between;border-bottom:2px solid var(--blue);padding-bottom:var(--s6);margin-bottom:var(--s6);gap:var(--s4)}.statement .sum-line{display:flex;justify-content:space-between;padding:var(--s3) 0;border-bottom:1px solid var(--rule)}.statement .sum-line.final{font-size:24px;color:var(--blue);font-weight:700}.statement h2{margin-top:var(--s6)}#status{position:fixed;bottom:var(--s6);left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);background:var(--ink);color:var(--white);padding:var(--s3) var(--s6);border-radius:var(--r);box-shadow:var(--shadow);z-index:20}#status:empty{display:none}dialog{border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);padding:var(--s6);width:420px;max-width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#23374666}dialog p{margin:var(--s4) 0}dialog .actions{justify-content:space-between}.tour-focus{outline:3px solid var(--blue);outline-offset:6px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#8b9fab;border-radius:4px}
@media(min-width:1600px){main{padding:var(--s12)}}@media(max-width:1250px){.split{grid-template-columns:1fr}.draw{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s8)}.draw dl{margin:0;grid-row:span 3}.draw .total{margin:0}.draw button{margin:0}.aside-note{display:none}.metric{padding:var(--s4)}main{padding:var(--s8) var(--s6)}}@media(max-width:850px){.shell{grid-template-columns:1fr}.rail{padding:var(--s4) var(--s6);display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);border-right:0;border-bottom:1px solid var(--rule)}.rail label,.rail-note{display:none}.rail nav{grid-column:1/-1;flex-direction:row;overflow-x:auto;gap:var(--s1)}nav button{flex-shrink:0;padding:var(--s2) var(--s3)}nav svg{display:none}.rail-bottom{display:none}.rail select{margin-top:var(--s1)}.topline{margin-bottom:var(--s6)}.savings{grid-template-columns:1fr}.metric .amount{font-size:24px}main{padding:var(--s6)}.heading{align-items:flex-start}.heading .actions{flex-shrink:0}.heading .actions button{padding:var(--s2) var(--s3)}}
@media(max-width:560px){body{font-size:14px}main{padding:var(--s6) var(--s4)}.rail{padding:var(--s4);gap:var(--s3)}.brand{font-size:24px}.brand svg{width:24px}.rail select{font-size:12px}.topline{font-size:12px}.topline .saved{display:none}.heading{display:block;margin-bottom:var(--s6)}h1{font-size:32px}.heading .actions{margin-top:var(--s4)}.metrics{grid-template-columns:1fr 1fr;margin-bottom:var(--s6)}.metric{padding:var(--s4)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--rule)}.metric .amount{font-size:24px}.section-head{align-items:flex-start}.legend{display:none}.budget-table thead{display:none}.budget-table tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:var(--s4);gap:var(--s3) var(--s1);border-bottom:1px solid var(--rule)}.budget-table td{padding:0;border:0;text-align:left;font-size:12px;white-space:normal}.budget-table td:first-child{grid-column:1/-1}.budget-table td:before{content:attr(data-label);display:block;color:var(--muted);font-size:12px;margin-bottom:var(--s1)}.budget-table td:first-child:before{display:none}.budget-table .trade{display:inline}.bar{max-width:none}.table-foot{flex-wrap:wrap}.draw{display:block}.draw dl{margin:var(--s4) 0}.draw button{margin-top:var(--s4)}.savings-result{gap:var(--s3)}footer{flex-wrap:wrap}.panel{padding:var(--s4)}.upload{padding:var(--s4)}.responsive-table thead{display:none}.responsive-table tr{display:block;padding:var(--s4);border-bottom:1px solid var(--rule)}.responsive-table td{display:flex;justify-content:space-between;gap:var(--s3);border:0;padding:var(--s1) 0;white-space:normal;overflow-wrap:anywhere}.responsive-table td:before{content:attr(data-label);color:var(--muted);flex-shrink:0}.responsive-table select{width:170px}.statement{padding:var(--s4)}.statement-top{display:block}.statement-top>div+div{margin-top:var(--s4)}.statement .sum-line{gap:var(--s3)}.statement .sum-line.final{font-size:20px}.section-head .actions{justify-content:flex-end}input[type=file]{font-size:12px}.form-grid label{min-width:120px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.rail,.topline,.heading,.metrics,.savings,footer,.no-print,#status{display:none!important}.shell{display:block}main{padding:0}.statement{border:0;max-width:none}body{background:white}}
.number-link{border:0;background:transparent;padding:0;font-weight:500;color:var(--blue);text-decoration:underline;text-decoration-color:#b7c6d0;text-underline-offset:4px}.text-button{border:0;background:transparent;color:var(--blue);padding:var(--s2) 0}.po-billed{width:110px;text-align:right}details>summary{cursor:pointer;color:var(--blue);font-weight:600}#mapform>button,#coform>button{margin-top:var(--s4)}footer button{padding:0;border:0;background:transparent;font-size:12px;color:var(--blue)}.mobile-reset,.mobile-tour{display:none}@media(max-width:850px){.mobile-reset,.mobile-tour{display:block}}
.tour-top{font-size:12px;padding:var(--s1) var(--s3);margin-left:var(--s4);background:transparent}.topline .saved{display:flex;align-items:center;gap:var(--s2)}@media(max-width:560px){.topline .saved{display:none}.tour-top{margin-left:0}}
.form-grid label{min-width:0;flex:1 1 140px}.form-grid select{width:100%;min-width:0}.responsive-table td>div{min-width:0;overflow-wrap:anywhere}
.form-grid input[type=checkbox]{width:auto;margin-right:var(--s2);accent-color:var(--blue)}
.draw dd{white-space:nowrap}
/* Review refinements: preserve the ruled field-ledger system. */
.brand{font-size:32px}.metric .amount{font-size:32px}.note,.section-head p,.aside-note p{font-size:14px}.metric small{text-wrap:pretty}.metric p{text-wrap:balance}input{font-variant-numeric:tabular-nums}.number,.sum-line>strong,.sum-line.final>span:last-child,.draw dd{white-space:nowrap}.sum-line>span:first-child,.draw dt{min-width:0}.statement .sum-line>strong{font-weight:400;flex-shrink:0}.statement .subtotal{border-top:2px solid var(--rule);margin-top:var(--s2)}.statement .subtotal>strong{font-weight:600}.statement .sum-line.final{font-weight:700}.budget-table .trade{display:inline}.budget-table .bar{height:2px;margin-top:var(--s1)}.budget-table td{padding-block:var(--s2)}.budget-table tr.selected{background:var(--tint)}.empty-amount{color:var(--muted);text-decoration:none}.file{display:inline-block;background:var(--blue);color:var(--white);padding:var(--s2) var(--s4);border-radius:var(--r);font-weight:600;margin-block:var(--s4)}.file:hover{background:var(--hover)}.visually-hidden{position:absolute;width:1px!important;height:1px;padding:0!important;margin:0!important;clip-path:inset(50%);overflow:hidden}.upload:focus-within{outline:3px solid var(--blue);outline-offset:3px}.upload small{display:block}.upload.dragover{background:var(--tint);border-color:var(--blue)}.needs-mapping{background:var(--amber-bg)}#mappingCount{color:var(--amber);margin-top:var(--s4)}#status{top:var(--s4);right:var(--s4);bottom:auto;left:auto;transform:none;max-width:min(420px,calc(100% - 32px));pointer-events:none}.mobile-tour{display:none!important}
@media(max-width:1250px){#drawPreview .draw+.aside-note{display:block}}
@media(max-width:560px){.metric .amount{font-size:24px}.register tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);padding:var(--s3) 0}.register td{display:block;overflow-wrap:normal}.register td:before{display:block;font-size:12px}.register td:first-child{grid-column:1/-1;text-align:left}.register td:first-child:before{display:none}.register td:nth-child(2){grid-column:1/-1}.register td.number{text-align:left;white-space:nowrap}.po-billed{width:100%;padding:var(--s1);font-size:12px}.change-register td:nth-child(3){grid-column:1/2}.change-register td:last-child{grid-column:1/-1}.change-register td:last-child:before{display:none}.change-register td:last-child button{padding:var(--s1) var(--s2)}#mapping td:last-child{display:block}#mapping td:last-child select{width:100%;margin-top:var(--s1)}#mapping td:first-child:before{display:none}.statement .sum-line{gap:var(--s2)}.metric small{font-size:12px}.section-head{flex-wrap:wrap}.section-head>button{white-space:nowrap}.budget-table td.number{white-space:nowrap}}
@media(max-width:480px){.rail nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}.rail nav button{grid-column:span 2;justify-content:center;text-align:center;font-size:12px;padding:var(--s2) var(--s1);white-space:nowrap}.rail nav button:nth-last-child(-n+2){grid-column:span 3}.form-grid{display:grid;grid-template-columns:minmax(0,1fr)}.form-grid label{width:100%}#ledger>.section-head{display:grid;justify-content:start}.statement .sum-line>span:first-child{overflow-wrap:anywhere}.savings-result .amount{font-size:20px}}
/* Round 2: readable financial records and compact phone workflows. */
:root{--touch:44px;--input-mobile:16px;--caption:14px}
small,.rail label,.rail select,.rail-note,.rail-bottom button,.metric p,.section-head p,.draw p,.aside-note p,.savings p,.savings-fields label,.tour-top{font-size:var(--caption)}
.responsive-table{font-size:var(--caption)}
.nav-tour{display:none}.over-badge{display:inline-block;color:var(--red);font-size:var(--caption);margin-top:var(--s1)}.bar.overrun span,.bar.overrun .open{background:var(--red)}
.callout.info{background:var(--tint);color:var(--ink)}.field-error{display:block;color:var(--red);font-size:var(--caption);margin-top:var(--s1)}[aria-invalid=true]{border-color:var(--red)}
.savings-result p{white-space:nowrap}.draw dt{white-space:nowrap}.draw dl div{gap:var(--s2)}
@media(max-width:560px){
 body{font-size:15px}main{padding-bottom:var(--s24)}
 input,select,textarea,.rail select,.po-billed{font-size:var(--input-mobile);min-height:var(--touch)}
 input[type=checkbox]{min-height:var(--s6);width:var(--s6);height:var(--s6);vertical-align:middle}
 button,.tour-top,.change-register td:last-child button,summary,.file{min-height:var(--touch)}
 summary{display:flex;align-items:center}summary::before{content:'+';margin-right:var(--s2)}details[open]>summary::before{content:'−'}
 .rail{grid-template-columns:80px minmax(0,1fr);gap:var(--s2);padding:var(--s3) var(--s4)}.brand{font-size:24px;gap:var(--s1)}.brand svg{display:none}.rail select{margin:0;padding:var(--s2)}
 .rail nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;gap:var(--s1)}
 .rail nav button,.rail nav button:nth-last-child(-n+2){grid-column:span 2;justify-content:center;text-align:center;font-size:14px;padding:var(--s1);white-space:normal;line-height:1.2}
 .rail nav .nav-tour{display:flex;color:var(--blue)}.topline [data-tour]{display:none}.topline{margin-bottom:var(--s3);font-size:14px}.topline>span:last-child{display:none}
 main:not(.view-budget) .desktop-project,main:not(.view-budget) .heading p{display:none}.heading{margin-bottom:var(--s6)}
 .number-link{min-height:var(--touch);display:inline-flex;align-items:center;margin-block:calc(-1 * var(--s2));padding-inline:var(--s1)}
 footer button.mobile-reset{padding:var(--s2) var(--s3);font-size:14px;min-height:var(--touch)}
 .metric small{font-size:14px}.metric p{font-size:14px}.metric{padding:var(--s3)}
 .po-register tr{grid-template-columns:1fr 1fr}.po-register td:nth-child(2):before,.change-register td:nth-child(2):before{display:none}
 .po-register td:nth-child(2),.change-register td:nth-child(2){color:var(--muted);padding:0}
 .po-register td:nth-child(4){grid-column:1/-1;grid-row:4}.po-register td:nth-child(5){grid-column:2;grid-row:3}
 .po-register td:nth-child(4):before{margin-bottom:var(--s1)}.po-billed{width:100%;padding:var(--s2) var(--s3);text-align:left}
 .register td:first-child{font-size:14px}.change-register td:last-child button{padding:var(--s2) var(--s3)}
 #status{inset:auto var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));max-width:none}
 .statement small,.draw p,.savings p{font-size:14px}.savings-result{grid-template-columns:1fr;gap:var(--s4)}
 .responsive-table select{min-width:0}.form-grid input[type=checkbox]{width:var(--s6)}
}
@media(max-width:560px){input[type=file]{font-size:var(--input-mobile)}.budget-table td{font-size:14px}}
#mappingCount.ready{color:var(--green)}
/* Round 3: the ledger is the first task, including on a phone. */
.nav-short,.header-tour,.phone-ledger-legend,.po-trade-inline{display:none}
.budget-table .bar{max-width:none;width:100%;margin-top:var(--s2)}
.metric small{min-height:calc(2 * 1.5em)}
#ledger>.aside-note{padding-block:var(--s3);border:0;display:block}
#ledger>.aside-note h3{font-size:20px}#ledger>.aside-note p{margin-top:var(--s1)}
#ledger>.aside-note .text-button{padding-block:var(--s1)}
summary{display:flex;align-items:center;gap:var(--s2);list-style:none}summary::-webkit-details-marker{display:none}summary::before{content:'';display:inline-block;width:var(--s2);height:var(--s2);border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);flex-shrink:0;margin-right:var(--s1)}details[open]>summary::before{content:'';transform:rotate(45deg)}
#tour{position:fixed;margin:0;inset:200px var(--s10) auto auto;width:280px;max-height:calc(100dvh - 224px);overflow:auto}
@media(min-width:601px) and (max-width:1250px){
 #drawPreview .draw{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s8)}
 #drawPreview .draw h2{grid-column:1/-1;margin:0}#drawPreview .draw>p:first-of-type{grid-column:1/-1}
 #drawPreview .draw dl{grid-column:1;grid-row:3/6;margin:0;align-self:end}
 #drawPreview .draw .total{grid-column:2;grid-row:3;margin:0}
 #drawPreview .draw>p:last-of-type{grid-column:2;grid-row:4}
 #drawPreview .draw>button{grid-column:2;grid-row:5;margin:0}
}
@media(max-width:1100px){#tour{inset:auto var(--s4) var(--s4) auto;width:420px;max-height:45dvh}}
@media(max-width:600px){
 .shell{display:block}.rail{display:grid;grid-template-columns:72px minmax(0,1fr) var(--touch);gap:var(--s2);padding:var(--s3) var(--s4)}
 .brand{font-size:24px}.brand svg,.rail label,.rail-note,.rail-bottom{display:none}.rail select{font-size:16px;min-height:var(--touch);margin:0;width:100%}
 .header-tour{display:block;min-height:var(--touch);padding:var(--s2);font-size:20px;color:var(--blue)}.topline{display:none}.nav-full{display:none}.nav-short{display:inline}
 .rail nav{grid-column:1/-1;display:flex;flex-direction:row;overflow-x:auto;gap:var(--s1);mask-image:linear-gradient(to right,#000 96%,transparent)}
 .rail nav button,.rail nav button:nth-last-child(-n+2){min-height:var(--touch);flex:1 0 auto;white-space:nowrap;font-size:14px;padding:var(--s2);line-height:1.2}.rail nav svg{display:none}
 main{padding:var(--s4) var(--s4) var(--s24)}.heading{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}.heading>div:first-child{min-width:0;flex:1}.heading h1{font-size:24px}.heading p,.desktop-project{display:none}.heading .actions{margin:0;flex-shrink:0}.heading button{min-height:var(--touch);padding:var(--s2) var(--s3);font-size:14px}
 .metrics{grid-template-columns:1fr 1fr;margin-bottom:var(--s6)}.metric{padding:var(--s3)}.metric small{display:none}.metric p{font-size:14px;margin-bottom:var(--s1)}.metric .amount{font-size:24px}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--rule)}
 #ledger>.section-head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s3)}#ledger>.section-head h2{font-size:24px}#ledger>.section-head p{display:none}#ledger>.section-head>button{width:auto;min-height:var(--touch);padding:var(--s2);font-size:12px}
 .phone-ledger-legend{display:flex;justify-content:space-between;gap:var(--s2);font-size:12px;color:var(--muted);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule)}
 .budget-table thead{display:none}.budget-table tbody tr{display:grid;position:relative;grid-template-columns:repeat(6,minmax(0,1fr));padding:var(--s3) var(--s3) var(--s4);gap:0 var(--s1)}
 .budget-table td{border:0;padding:0;font-size:12px;white-space:nowrap!important;text-align:left;min-width:0}
 .budget-table td:before{display:inline;font-size:12px;margin:0 var(--s1) 0 0}.budget-table td:first-child{grid-column:1/5;grid-row:1;white-space:normal!important}.budget-table td:first-child:before{display:none}
 .budget-table .code{width:20px}.budget-table .trade{font-size:14px;line-height:1.4}.budget-table td:nth-child(5){grid-column:5/7;grid-row:1;text-align:right;font-weight:650;font-size:14px}.budget-table td:nth-child(5):before{display:none}
 .budget-table td:nth-child(3){grid-column:1/3;grid-row:2}.budget-table td:nth-child(4){grid-column:3/5;grid-row:2;display:flex;align-items:center;justify-content:center}.budget-table td:nth-child(4):before{content:'POs'}
 .budget-table td:nth-child(2){grid-column:5/7;grid-row:2;display:flex;align-items:center;justify-content:flex-end}.budget-table td:nth-child(2):before{content:'of'}
 .budget-table .number-link{font-size:12px;margin:0;padding:0;min-height:var(--touch)}.budget-table td:nth-child(3):before{vertical-align:middle}.budget-table .bar{position:absolute;bottom:var(--s3);left:var(--s3);width:calc(100% - var(--s6));margin:0}
 .budget-table .over-badge{font-size:12px;margin:0;display:block}.table-foot{padding:var(--s2) var(--s3)}
 .po-register td:nth-child(2){display:none}.po-trade-inline{display:inline}.po-register td:first-child{font-size:14px}.po-register td:first-child strong{display:block}.po-register td:first-child br{display:none}.po-register tr{row-gap:var(--s1)}
 footer{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2)}footer .mobile-reset{order:1;padding:0;min-height:var(--touch);text-align:left}footer>span:last-of-type{order:2}
 summary::before,details[open]>summary::before{content:'';margin-right:var(--s1)}
 #tour{inset:auto var(--s4) var(--s4);width:auto;max-width:none;max-height:45dvh;padding:var(--s4)}#tour h2{font-size:24px}#tour p{margin-block:var(--s3)}
}
#drawPreview>.aside-note{display:block;padding-block:var(--s4)}
@media(min-width:601px) and (max-width:1250px){#drawPreview .draw dl{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}}
@media(max-width:600px){.po-register td:nth-child(3){grid-column:1;grid-row:2}.po-register td:nth-child(5){grid-column:2;grid-row:2}.po-register td:nth-child(4){grid-column:1/-1;grid-row:3}}
/* Round 4 craft corrections. */
button,.number-link,.tour-top,.rail-bottom button{font-size:var(--caption)}
#drawPreview>.aside-note{border-bottom:0}
.statement .note,.no-print .note{font-size:var(--caption)}
@media(min-width:601px) and (max-width:1250px){#drawPreview .draw dl{align-self:start;display:grid;gap:var(--s3);align-content:start;justify-content:normal}#drawPreview .draw dl div{padding:0}#drawPreview .draw .total{padding-top:0}}
@media(max-width:600px){
 .rail{grid-template-columns:var(--touch) minmax(0,1fr) var(--touch)}.brand{flex:none;min-width:var(--touch);justify-content:center}.brand .brand-name{display:none}.brand svg{display:block;width:var(--s6);height:var(--s6)}.rail>div:nth-child(2){min-width:0}
 .rail nav{mask-image:none}.rail nav.more-right{mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent)}
 #ledger>.section-head>button,.budget-table .number-link{font-size:var(--caption)}
 footer{gap:var(--s2)}footer button.mobile-reset{padding-inline:0;padding-block:0;min-height:var(--touch);display:inline-flex;align-items:center}
 #uploadPanel .upload{border:0;padding:0;background:transparent;margin-top:var(--s6)}#filename{display:none}.upload .file{display:flex;justify-content:center;align-items:center;width:100%;min-height:var(--touch);font-size:var(--caption)}
}
footer button{font-size:var(--caption)}
/* Report desk polish: one task surface, quieter supporting history. */
.heading h1{max-width:24ch;text-wrap:balance}.heading p{max-width:65ch}
.view-import .heading{margin-bottom:var(--s8)}
#uploadPanel{padding:var(--s8);border-radius:var(--r)}
#uploadPanel>p{max-width:65ch}
#uploadPanel .upload{padding:var(--s6);margin-top:var(--s6);border-radius:var(--r)}
.upload p{max-width:65ch;margin-top:var(--s2);color:var(--muted)}
#uploadPanel .links{align-items:center;gap:var(--s3) var(--s6)}
.links a{font-size:var(--caption)}
.import-history{padding-top:var(--s6);border-top:1px solid var(--rule);margin-top:var(--s8)}
.import-history h2{font-size:20px}.import-history p{margin-top:var(--s2);color:var(--muted);max-width:75ch}
.import-history table{margin-top:var(--s4)}
button:active,.file:active{background:var(--tint)}button.primary:active,.file:active{background:var(--hover)}
@media(max-width:600px){
 .rail nav button,.rail nav button:nth-last-child(-n+2){flex:1;justify-content:center}
 .heading h1{max-width:22ch}.view-import .heading{margin-bottom:var(--s6)}
 #uploadPanel{padding:var(--s6) var(--s4)}
 #uploadPanel .upload{padding:0;margin-top:var(--s6)}
 #uploadPanel .links{display:grid;gap:var(--s3)}
 .links a{min-height:var(--touch);display:flex;align-items:center}
 .import-history{margin-top:var(--s6)}
 #ledger>.section-head{display:flex;width:100%;justify-content:space-between}
 #ledger>.section-head>button{white-space:nowrap}
}
