
:root{--bg:#faf9f6;--ink:#252b27;--muted:#788078;--line:#e1e4dc;--green:#275d43;--wash:#eef2eb;--amber:#936328}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-variant-numeric:tabular-nums}button,input,select{font:inherit;color:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:0;background:transparent}a{color:var(--green);text-underline-offset:3px}header{max-width:1440px;margin:auto;padding:28px 48px 0;display:flex;justify-content:space-between;align-items:center}.brand{font-size:23px;letter-spacing:-1.1px;font-weight:750}.brand span{font-weight:350;letter-spacing:inherit;color:var(--ink);font-size:inherit;margin-left:9px}.stamp{font-size:12px;color:var(--muted)}nav{max-width:1440px;margin:22px auto 0;padding:0 48px;display:flex;border-bottom:1px solid var(--line);gap:30px}nav button{padding:16px 0 14px;color:var(--muted);border-bottom:2px solid transparent}nav button.active{color:var(--ink);border-color:var(--green)}main{max-width:1440px;margin:auto;padding:32px 48px 60px}.page{animation:appear .2s ease}h1{font-size:24px;font-weight:520;letter-spacing:-.8px;margin:0 0 6px}h2{font-size:16px;font-weight:560;letter-spacing:-.25px;margin:0}h3{font-size:13px;font-weight:580;margin:0 0 12px}p{line-height:1.6}.muted,.subtitle{color:var(--muted)}.subtitle{margin:0 0 26px;font-size:13px}.overview{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px}.aside{border-left:1px solid var(--line);padding-left:30px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:15px}.seg{display:flex;gap:2px;background:var(--wash);padding:3px;border-radius:6px}.seg button{font-size:12px;padding:8px 11px;border-radius:4px;white-space:nowrap;color:var(--muted)}.seg button.on{background:#fff;color:var(--green);box-shadow:0 1px 3px #14291812}.runway{font-size:82px;line-height:1.1;font-weight:400;letter-spacing:-5px;margin:16px 0 3px}.runway span{font-size:25px;letter-spacing:-.7px;color:var(--muted);margin-left:9px}.subvalue{font-size:12px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:26px 0 30px;gap:25px}.metric label{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.metric strong{font-size:24px;font-weight:450;letter-spacing:-.7px}.metric small{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.5}.chart{margin-top:12px;position:relative}.chart svg{display:block;width:100%;height:auto;min-height:225px}.chart svg path{transition:d .2s ease;}.chart svg text{font:11px -apple-system,BlinkMacSystemFont,sans-serif;fill:var(--muted)}.legend{display:flex;gap:20px;font-size:11px;color:var(--muted);margin:7px 0 25px}.dot{display:inline-block;width:15px;height:2px;background:#9ca39b;vertical-align:middle;margin-right:6px}.dot.green{background:var(--green)}.rule{border-top:1px solid var(--line);margin:25px 0}.small{font-size:12px;line-height:1.6}.warning{color:var(--amber);background:#f4eee1;border-radius:4px;padding:10px 13px;font-size:12px;line-height:1.5;margin:18px 0}.warning a{color:inherit}.note{font-size:12px;color:var(--muted);line-height:1.6;margin:15px 0}.plain-button{color:var(--green);font-size:12px;padding:4px 0}.button{background:var(--green);color:white;border-radius:5px;padding:10px 14px;font-size:12px}.ghost{border:1px solid var(--line);border-radius:5px;padding:9px 13px;font-size:12px;background:#fff}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.cost-brief{margin:8px 0;font-size:12px;color:var(--muted)}.cost-brief b{color:var(--ink);font-weight:480}.salary{padding:15px 0;border-bottom:1px solid var(--line)}.salary input[type=number]{width:112px;text-align:right;font-size:18px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:5px}.salary input[type=range]{width:100%;margin:15px 0 2px;accent-color:var(--green);height:3px}.presets{display:flex;gap:6px;margin:15px 0}.presets button{flex:1;padding:8px 4px;border:1px solid var(--line);border-radius:4px;font-size:12px;transition:background .15s}.presets button:hover,.presets button.on{background:var(--wash);border-color:#b9cbbd;color:var(--green)}.mini-label{font-size:11px;color:var(--muted);margin:0 0 8px}.input-row{margin:13px 0}.input-row label{display:block;font-size:12px;color:var(--muted);margin:0 0 7px}.input-row input,.input-row select{width:100%;padding:9px 10px;background:#fff;border:1px solid var(--line);border-radius:4px}.check{display:flex;gap:9px;align-items:center;font-size:12px;margin:12px 0;line-height:1.5}.check input{accent-color:var(--green)}.line-total{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.line-total strong{font-size:17px;font-weight:500}details{border-bottom:1px solid var(--line);padding:16px 0}summary{cursor:pointer;font-size:12px;color:var(--muted);list-style:none}summary::after{content:'+';float:right;color:var(--green)}details[open] summary::after{content:'−'}details p{font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse}th{color:var(--muted);font-size:11px;font-weight:440;text-align:left;border-bottom:1px solid var(--line);padding:12px 10px}td{padding:14px 10px;border-bottom:1px solid var(--line);font-size:12px}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.num{text-align:right}.comparison tbody tr{cursor:pointer;transition:background .15s}.comparison tbody tr:hover,.comparison tbody tr.selected{background:var(--wash)}.comparison td{font-size:13px}.comparison td strong{font-weight:500;color:var(--green)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:55px}.wide-metrics{grid-template-columns:repeat(4,1fr);margin:30px 0 36px}.bar-row{margin:14px 0}.bar-row .row{font-size:12px;margin-bottom:7px}.bar{background:var(--wash);height:4px}.bar i{display:block;height:100%;background:var(--green)}.bridge div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.bridge .total{font-weight:550;border-bottom:0}.search{padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:#fff;width:220px}.table-wrap{overflow:auto}.pill{font-size:10px;color:var(--muted);padding:3px 6px;background:var(--wash);border-radius:3px;white-space:nowrap}.pill.review{color:var(--amber);background:#f4eee1}.vendor-link{display:block;font-size:11px;margin-top:4px;color:var(--muted);text-decoration:none}.editable{width:100px;padding:8px;background:white;border:1px solid var(--line);border-radius:4px;text-align:right}.cost-name{min-width:200px}.cost-name small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.costs td{vertical-align:top}.costs .notes{max-width:430px;padding:5px 0 0;border:0}.costs .notes summary{font-size:10px;float:none}.costs .notes summary::after{float:none;margin-left:8px}.costs .notes p{margin:9px 0}.costs select{border:1px solid var(--line);border-radius:4px;padding:8px;font-size:12px;background:white}.costs input[type=checkbox]{accent-color:var(--green);margin-top:10px}.advance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.fund-number{font-size:45px;letter-spacing:-1.8px;font-weight:430;margin:18px 0}.fund-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.fund-row label{font-size:13px}.fund-row input{width:135px}.formula-note{background:var(--wash);padding:14px 16px;font-size:12px;line-height:1.7;border-radius:5px}.footer{margin-top:32px;display:flex;gap:18px;align-items:center;color:var(--muted);font-size:11px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toast{position:fixed;bottom:24px;right:24px;padding:12px 18px;background:var(--green);color:#fff;border-radius:5px;font-size:12px;animation:appear .2s ease;z-index:4}.dialog{border:0;border-radius:9px;padding:26px;max-width:480px;width:calc(100% - 32px);box-shadow:0 15px 80px #17271e33;background:var(--bg)}.dialog::backdrop{background:#15291d55}.dialog .advance-grid{grid-template-columns:1fr 1fr}.dialog form{margin-top:18px}.required{color:var(--amber)}.hidden{display:none!important}.timeline td{padding:9px;font-size:11px}.topline{display:flex;align-items:center;justify-content:space-between;gap:20px}.count{font-size:11px;color:var(--muted)}.salary-remove{font-size:11px;color:var(--muted);padding:0 0 0 8px}.open-sources{margin-top:20px}.source-links{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:11px;margin:16px 0}.caps-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--wash);margin:20px 0}.caps-bar i{height:100%;background:var(--green)}@keyframes appear{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){header,nav{padding-left:28px;padding-right:28px}main{padding:28px}.overview{gap:25px;grid-template-columns:minmax(0,1fr) 280px}.aside{padding-left:22px}.runway{font-size:70px}.metrics{gap:12px}.metric strong{font-size:22px}}@media(max-width:760px){header{padding:22px 20px 0}.brand span{margin-left:8px}.stamp{font-size:10px}nav{padding:0 20px;gap:22px;overflow:auto;white-space:nowrap;margin-top:10px}main{padding:24px 20px 45px}.overview,.two-col{grid-template-columns:1fr;gap:28px}.aside{border:0;border-top:1px solid var(--line);padding:24px 0 0}.runway{font-size:70px}.metric strong{font-size:21px}.metrics{gap:16px}.wide-metrics{grid-template-columns:1fr 1fr;gap:25px}.advance-grid{grid-template-columns:1fr 1fr}.topline{align-items:start}.search{width:170px}.chart svg{min-height:0}.section-head{flex-wrap:wrap}.comparison td{font-size:12px}.footer{flex-wrap:wrap}.aside .salary input[type=range]{height:5px}}
.usd-value{display:block;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:0;line-height:1.4;margin-top:4px}.usd-inline{font-size:10px;font-weight:400}.chart svg text.usd-axis{font-size:9px}.legend .usd-rate{margin-left:auto;font-size:10px}.legend{flex-wrap:wrap}

.overview-home .headline-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:38px 0 42px}.headline{padding:0;text-align:left}.headline label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}.headline strong{font-weight:430;font-size:40px;letter-spacing:-1.5px}.headline small{display:block;font-size:11px;color:var(--muted);margin-top:10px;line-height:1.6}.overview-chart{width:100%;max-width:none}.overview-bottom{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:35px}.change-row{display:flex;gap:20px;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}.change-row p{margin:4px 0;color:var(--muted);font-size:12px}.reports-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:26px 0}.reports-tabs button{padding:10px 0;color:var(--muted);border-bottom:2px solid transparent}.reports-tabs .on{color:var(--ink);border-color:var(--green)}.empty-report{padding:40px 0;max-width:640px}.empty-report h2{font-size:23px;font-weight:450}.metric small a{font-size:11px}.freshness{display:flex;gap:14px;align-items:center}.blocked{padding:50px 48px;max-width:700px}.headline:hover strong{color:var(--green)}.stamp .plain-button{margin-left:15px}.report-note{max-width:650px}.mini-label{line-height:1.5}.plan-anchor{scroll-margin-top:20px}@media(max-width:760px){.overview-home .headline-metrics{grid-template-columns:1fr 1fr;gap:32px 20px}.headline strong{font-size:33px}.overview-bottom{grid-template-columns:1fr;gap:30px}.reports-tabs{overflow:auto;white-space:nowrap}.stamp{max-width:165px;text-align:right}}
.sync-button{padding:8px 15px;border:1px solid #a8b9ad;border-radius:5px;color:var(--green);background:transparent;font-size:12px;transition:background .15s,border-color .15s}.sync-button:hover{background:var(--wash);border-color:var(--green)}.sync-button:disabled{opacity:.55;cursor:wait}


.category-row{display:block;width:100%;text-align:left;padding:4px 0;border-radius:3px}.category-row .bar{display:block}.category-row:hover .row{color:var(--green)}.category-row:hover .bar{background:#e1e9df}.category-row:focus-visible{outline:1px solid var(--green)}.transaction-section{scroll-margin-top:24px;outline:none}.transaction-tools{display:flex;align-items:center;gap:8px}.transaction-search,.date-filter{position:relative}.transaction-search .search{font-size:12px;line-height:18px;width:290px;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:transparent}.transaction-search .search:focus{outline:none;border-color:#7c9986;box-shadow:0 0 0 2px #275d4310}.search-suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:3;padding:5px;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #17271e10;max-height:310px;overflow:auto}.search-suggestions button{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;width:100%;padding:9px 8px;font-size:12px;border-radius:3px}.search-suggestions small{color:var(--muted);font-size:10px;flex-shrink:0}.search-suggestions button:hover,.search-suggestions [aria-selected=true]{background:var(--wash);color:var(--green)}.date-toggle{display:flex;align-items:center;justify-content:center;width:37px;height:37px;border:1px solid var(--line);border-radius:5px;color:var(--muted)}.date-toggle:hover,.date-toggle.on{color:var(--green);background:var(--wash);border-color:#a8b9ad}.date-popover{position:absolute;right:0;top:calc(100% + 5px);z-index:3;min-width:230px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #17271e10}.date-popover label{display:block;font-size:11px;color:var(--muted);margin-bottom:12px}.date-popover input{display:block;width:100%;padding:7px 8px;margin-top:5px;border:1px solid var(--line);border-radius:4px;background:transparent;font-size:12px}.transaction-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.transaction-filters:empty{display:none}.filter-chip{padding:5px 9px;background:var(--wash);color:var(--green);border-radius:4px;font-size:11px}.filter-chip span{margin-left:8px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg[tabindex]:focus-visible{outline:1px solid #7c9986;outline-offset:3px}@media(max-width:760px){.transaction-tools{width:100%}.transaction-search{flex:1}.transaction-search .search{width:100%}.search-suggestions button{font-size:11px}}

.metric-category{text-align:left;padding:0}.metric-category:hover strong{color:var(--green)}

.cash-chart{height:300px;width:100%;min-width:0}.cash-chart .recharts-surface{min-height:0;outline:none}.chart .cash-chart svg{width:auto;height:auto;min-height:0}.cash-chart .cash-axis-gbp{font-size:11px;fill:var(--muted)}.cash-chart .cash-axis-usd{font-size:9px;fill:var(--muted)}.cash-tooltip{min-width:210px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #17271e0d;font-size:11px}.cash-tooltip-date{color:var(--muted);font-size:10px;margin-bottom:10px}.cash-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0}.cash-tooltip-row>span:first-child{display:flex;align-items:center;gap:7px}.cash-tooltip-row i{width:3px;height:22px;border-radius:1px}.cash-tooltip-row>span:last-child{text-align:right}.cash-tooltip-row b{font-size:12px;font-weight:500}.cash-tooltip-row small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.bridge .subtotal{color:var(--muted);font-size:12px}@media(max-width:760px){.cash-chart{height:250px}}

.burn-item{position:relative;cursor:help;outline-offset:4px}.burn-item:focus-visible{outline:1px solid #7c9986;border-radius:2px}.burn-tooltip{visibility:hidden;opacity:0;position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:5;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 12px #17271e0d;color:var(--ink);font-size:11px;font-weight:400;line-height:1.55;pointer-events:none;transition:opacity .12s}.burn-item:hover .burn-tooltip,.burn-item:focus .burn-tooltip{visibility:visible;opacity:1}

.overview-home .headline{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}.headline label{line-height:18px;margin-bottom:12px}.headline strong{display:block;font-size:40px;line-height:1.15;min-height:46px}.capital-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:20px 0 20px}.capital-tabs button{padding:10px 0;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}.capital-tabs .on{color:var(--ink);border-color:var(--green)}.cap-safes{margin-top:40px}.cap-safes h2{margin-bottom:10px}.capital-page tfoot td{font-weight:550;border-bottom:0;padding-top:16px}@media(max-width:760px){.headline strong{font-size:33px;min-height:38px}}

.continuous-tooltip{position:absolute;z-index:3;pointer-events:none}.cash-chart{position:relative}

.costs .cost-group th{padding:24px 0 9px;border-bottom:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:550}.costs .budget-row td{padding-top:12px;padding-bottom:12px;vertical-align:top}.costs .cost-title{font-size:13px;line-height:36px;color:var(--ink)}.costs .notes{padding:0;border:0}.costs .cost-name{width:46%;max-width:450px}.costs .editable{width:120px;max-width:100%;padding:9px 12px;font-size:12px;background:transparent;border:1px solid var(--line);border-radius:5px;text-align:right;appearance:textfield;-moz-appearance:textfield}.costs .editable::-webkit-inner-spin-button,.costs .editable::-webkit-outer-spin-button{appearance:none;-webkit-appearance:none;margin:0}.costs select{height:36px;min-width:120px;padding:7px 28px 7px 10px;font-size:12px;background:transparent;border-radius:5px}.cost-detail-label{display:block;color:var(--muted);font-size:12px;margin:12px 0}.cost-detail-label select{display:block;width:100%;margin-top:6px}.salary input[type=number]{padding:5px 8px 5px 4px;width:130px}.salary input[type=number]::-webkit-inner-spin-button{margin-left:9px}button:not(:disabled),button:not(:disabled) *{cursor:pointer}button{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}button:not(:disabled):hover{background-color:var(--wash)}button.button:not(:disabled):hover{background-color:#1f4c36}.plain-button:not(:disabled):hover,nav button:not(:disabled):hover{color:#194c32}.plain-button{border-radius:3px}.headline{border-radius:5px}.cost-title:hover{color:var(--green)}input:hover,select:hover{border-color:#b9c5ba}.continuous-hover rect{cursor:crosshair}@media(max-width:760px){.costs .cost-name{min-width:220px}.costs .editable{width:110px}.costs select{min-width:110px}}

.reports-tabs{display:inline-flex;gap:3px;padding:4px;background:var(--wash);border:0;border-radius:7px;margin:20px 0 22px}.reports-tabs button{padding:8px 13px;border:0;border-radius:4px;font-size:12px;white-space:nowrap}.reports-tabs .on{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px #17271e09}.reports-tabs button:not(:disabled):hover{background:#e2e9df;color:var(--green)}.reports-tabs .on:not(:disabled):hover{background:var(--bg)}
nav{border:0;gap:5px}nav button{border:0;padding:10px 15px;border-radius:6px;font-size:12px}nav button.active{background:var(--wash);color:var(--green)}nav button:not(:disabled):hover{background:#e7ece3}.capital-tabs{display:inline-flex;gap:3px;padding:4px;background:var(--wash);border:0;border-radius:7px}.capital-tabs button{padding:8px 13px;border:0;border-radius:4px}.capital-tabs .on{background:var(--bg);box-shadow:0 1px 3px #17271e09;color:var(--green)}.capital-tabs button:not(:disabled):hover{background:#e2e9df;color:var(--green)}.capital-tabs .on:not(:disabled):hover{background:var(--bg)}.chart-range button{font-size:11px;padding:6px 10px}.dot.history{background:#839386}.accountant-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:13px 0;font-size:12px;color:var(--muted)}.accountant-status span:last-child{color:var(--green)}
.salary-control{display:flex;align-items:center;border-bottom:1px solid var(--line)}.salary .salary-control input{border:0;width:107px;appearance:textfield;-moz-appearance:textfield}.salary .salary-control input::-webkit-inner-spin-button,.salary .salary-control input::-webkit-outer-spin-button{appearance:none;-webkit-appearance:none;margin:0}.salary-arrows{display:flex;flex-direction:column;gap:2px;padding:2px 0 2px 8px}.salary-arrows button{display:flex;align-items:center;justify-content:center;padding:3px 5px;border-radius:3px}.salary-arrows svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.costs .notes summary.cost-title{font-size:13px;line-height:36px}.costs .editable,.costs select{font-size:13px}input[type=checkbox],select{cursor:pointer}
.date-popover{position:fixed;right:auto;width:304px;min-width:0;padding:14px;border-radius:9px;box-shadow:0 10px 35px #17271e15;z-index:10}.calendar-range{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.calendar-range button{text-align:left;border:1px solid var(--line);border-radius:5px;padding:9px 10px;background:transparent}.calendar-range button.on{border-color:#8fa795;background:var(--wash)}.calendar-range small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.calendar-range span{font-size:12px;color:var(--ink)}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-heading span{font-size:13px;font-weight:550}.calendar-heading button{font-size:23px;line-height:24px;width:29px;height:29px;border-radius:4px;color:var(--muted)}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-week>[role=columnheader]{text-align:center;font-size:10px;color:var(--muted);padding:0 0 9px}.calendar-cell{text-align:center;margin:2px 0;height:33px}.calendar-cell.in-range{background:var(--wash)}.calendar-cell button{width:33px;height:33px;border-radius:5px;font-size:12px;font-weight:450;padding:0}.calendar-cell button.outside{color:#a6ada5}.calendar-cell button.today{box-shadow:inset 0 0 0 1px #a8b9ad}.calendar-cell button.selected,.calendar-cell button.selected:not(:disabled):hover{background:var(--green);color:white}.calendar-cell button:focus-visible{outline-offset:1px}.calendar-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.calendar-done{font-size:12px;padding:7px 12px;border-radius:4px;background:var(--wash);color:var(--green)}
.select-control{position:relative}.select-control select[hidden]{display:none}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:5px;background:transparent;font-size:13px;text-align:left;white-space:nowrap}.select-trigger svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:var(--muted);flex-shrink:0}.costs .select-control{min-width:130px}.select-menu{position:fixed;inset:auto;margin:0;max-height:310px;overflow:auto;padding:5px;background:var(--bg);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #17271e10;color:var(--ink)}.select-menu::backdrop{background:transparent}.select-menu button{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;width:100%;padding:9px 8px;font-size:12px;border-radius:3px}.select-menu button:hover,.select-menu button:focus-visible{background:var(--wash);color:var(--green)}.select-check{font-size:11px;color:var(--green);width:12px;flex-shrink:0}.select-menu [aria-selected=true]{color:var(--green)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,svg[tabindex]:focus-visible,.category-row:focus-visible,.burn-item:focus-visible{outline:none;box-shadow:none}input:focus,.transaction-search .search:focus{outline:none;box-shadow:none;border-color:var(--green);border-width:2px}.costs .editable,.input-row input{height:38px}.transaction-search .search{height:38px}.select-trigger:focus-visible,.select-trigger[aria-expanded=true]{border-color:var(--green);border-width:2px;padding:7px 10px}.date-toggle:focus-visible,.calendar-range button:focus-visible{border-color:var(--green);border-width:2px}.salary-control{height:39px}.salary-control:focus-within{border-bottom:2px solid var(--green)}.salary .salary-control input:focus{border:0}.calendar-cell button:focus-visible{background:var(--wash);color:var(--green)}.calendar-cell button.selected:focus-visible{background:var(--green);color:white}.calendar-cell button.today:focus-visible{border:2px solid var(--green);box-shadow:none}.burn-item:focus-visible{background:var(--wash)}a:focus-visible{text-decoration:underline;text-decoration-thickness:2px}summary:focus-visible{color:var(--green);background:var(--wash)}button:focus-visible{background:var(--wash);color:var(--green)}button.button:focus-visible{background:#1f4c36;color:white}
.costs .cost-title{font-size:13px;line-height:38px;cursor:default}.cost-title:hover{color:var(--ink)}
.costs .editable:focus{outline:none;box-shadow:none;border:2px solid var(--green)}.costs .editable:hover:not(:focus),.input-row input:hover:not(:focus){border-color:#9aad9e}

/* Reserve the scrollbar space and keep local controls in place while data changes. */
html{scrollbar-gutter:stable}body{overflow-y:scroll}.page{animation:none}
.chart{height:300px}.legend{min-height:16px}#runway-results .subvalue{min-height:20px;line-height:20px}#runway-results .metrics{min-height:77px}
#report-panel,#cap-table-panel{display:flow-root;min-height:740px}.empty-report{padding-top:26px}.cap-basis{margin:0 0 20px;color:var(--muted);font-size:12px}
/* Background hover belongs only to navigation and segmented tabs. */
button:not(:disabled):hover,button:focus-visible{background-color:transparent;color:var(--green)}
button.button:not(:disabled):hover,button.button:focus-visible{background-color:var(--green);color:#fff;box-shadow:0 2px 7px #17271e20}
button.ghost:not(:disabled):hover{background:#fff;border-color:var(--green)}
.headline:hover strong,.metric-category:hover strong{color:var(--green)}.headline:hover label,.metric-category:hover label,button.change-row:hover p{color:var(--green)}
.category-row:hover .bar{background:var(--wash)}.category-row:hover .row{color:var(--green)}
.sync-button:hover{background:transparent;border-color:var(--green);box-shadow:0 2px 6px #17271e0d}
.date-toggle:hover{background:transparent;color:var(--green);border-color:var(--green)}
.search-suggestions button:hover,.search-suggestions [aria-selected=true],.select-menu button:hover,.select-menu button:focus-visible{background:transparent;color:var(--green)}
.select-trigger:hover{background:transparent;color:var(--green);border-color:var(--green)}.select-trigger:hover svg{color:var(--green)}
.presets button:hover,.presets button:focus-visible{background:transparent;color:var(--green);border-color:var(--green)}
.burn-item:focus-visible,summary:focus-visible{background:transparent;color:var(--green)}
a:hover{color:#173b29;text-decoration-thickness:2px;cursor:pointer}summary,.salary label button,input[type=checkbox],input[type=radio]{cursor:pointer}
button.filter-chip{display:inline-flex;align-items:center;padding:3px 4px 3px 10px;background:var(--wash);color:var(--green);border:0;gap:8px}
.filter-chip span{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;margin:0;font-size:14px;color:inherit;font-weight:400}
button.filter-chip:not(:disabled):hover,button.filter-chip:focus-visible{background:var(--wash);color:var(--green);border:0;box-shadow:none;outline:none}.filter-chip:hover span,.filter-chip:focus-visible span{font-weight:700}
/* All interactive hit areas, including their nested labels and icons, use a pointer. */
:is(button,a[href],summary,[role="button"],[role="tab"],[role="option"]):not(:disabled),:is(button,a[href],summary,[role="button"],[role="tab"],[role="option"]):not(:disabled) *,input:not(:disabled),select:not(:disabled),label:has(input:not(:disabled)),label:has(input:not(:disabled)) *,.burn-item,.continuous-hover rect{cursor:pointer}

nav button:not(:disabled):hover{background:#e7ece3;color:var(--green)}
.seg button:not(:disabled):hover,.reports-tabs button:not(:disabled):hover,.capital-tabs button:not(:disabled):hover{background:#e2e9df;color:var(--green)}
.seg button.on:not(:disabled):hover,.reports-tabs button.on:not(:disabled):hover,.capital-tabs button.on:not(:disabled):hover{background:var(--bg)}
.calendar-cell button:not(.selected):hover{background:transparent;color:var(--green)}.calendar-range button.on:hover{background:var(--wash)}
@media(max-width:760px){.chart{height:250px}#runway-results .metrics{min-height:74px}.overview>.section-head{flex-wrap:nowrap}}

.legend .dot{background:radial-gradient(circle,currentColor 1px,transparent 1.1px) 0 center/5px 3px repeat-x;color:#839386;width:18px;height:3px}.legend .dot.green{color:var(--green)}


/* Common controls and accessibility. App layout overrides must retain these. */
:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--danger:#ac5550}
body,button,input,select,textarea{font-family:var(--font-sans)}
textarea{font:inherit;color:inherit}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--green)!important;outline-offset:3px}
button:disabled{cursor:default;opacity:.55}
button svg{width:16px;height:16px;stroke-width:1.5;flex-shrink:0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Foak Inspection: the customer's live view. Shared Foak primitives come first
   (design/internal-ui.css, copied from Meta); this file holds the page layout. */
:root{--danger:#ac5550;--danger-wash:#f6e8e6;--amber-wash:#f4eee1;--stage:#1b201d;--stage-ink:#f3f1ec}

header{padding-top:22px}
main{padding-top:18px}
.job-state{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.job-state .clock{color:var(--ink);font-size:13px;min-width:44px}
.state-dot{width:8px;height:8px;border-radius:50%;background:#b9c0b8}
.state-dot.live{background:var(--green);animation:breathe 1.6s ease-in-out infinite}
.state-dot.complete{background:var(--green)}

.vehicle{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}
.vehicle h1{margin:0}
.vehicle .variant{font-weight:380;color:var(--muted)}
.vehicle .subtitle{margin:8px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.plate{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.6px;color:var(--ink);background:#f3e9b8;border:1px solid #d9cc8d;border-radius:3px;padding:2px 7px;margin-right:8px}
.summary{display:flex;gap:30px;margin:0}
.summary div{min-width:58px}
.summary dt{font-size:11px;color:var(--muted);margin-bottom:6px}
.summary dd{margin:0;font-size:28px;font-weight:430;letter-spacing:-1px;line-height:1}
.summary dd small{font-size:13px;color:var(--muted);letter-spacing:0}
.summary .red dd{color:var(--danger)}
.summary .amber dd{color:var(--amber)}
.summary .green dd{color:var(--green)}

.cockpit{display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:40px;align-items:start}
.side{position:sticky;top:16px;display:flex;flex-direction:column;gap:30px}

/* Stage: the live views. A dark canvas so video reads as video. */
.stage-main{position:relative;aspect-ratio:16/9;background:var(--stage);border-radius:6px;overflow:hidden}
.media{display:block;width:100%;height:100%;object-fit:cover;background:var(--stage)}
.media.offline{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#aab2ab;font-size:13px}
.media.offline small{font-size:11px;color:#79827b}
.media.offline.small{font-size:11px}
.pulse{animation:breathe 1.6s ease-in-out infinite}
.overlay{position:absolute;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:12px;pointer-events:none}
.overlay.top{top:0;align-items:flex-start}
.overlay.bottom{bottom:0}
.tile-label,.now-chip{font-size:11px;color:var(--stage-ink);background:#141915b8;backdrop-filter:blur(6px);border-radius:4px;padding:5px 8px}
.now-chip{display:inline-flex;align-items:center;gap:8px;font-size:12px;padding:7px 10px}
.now-chip.done{color:#cfe3d6}
.now-dot{width:7px;height:7px;border-radius:50%;background:#7fd09d;animation:breathe 1.6s ease-in-out infinite}
.result-toast{display:flex;flex-direction:column;gap:3px;min-width:180px;background:#faf9f6f2;color:var(--ink);border-radius:5px;padding:9px 12px;border-left:3px solid var(--line);animation:rise .25s ease}
.result-toast .muted{font-size:11px}
.result-toast strong{font-size:18px;font-weight:500;letter-spacing:-.4px}
.result-toast.red{border-color:var(--danger)}.result-toast.red strong{color:var(--danger)}
.result-toast.amber{border-color:var(--amber)}.result-toast.amber strong{color:var(--amber)}
.result-toast.green{border-color:var(--green)}
.stage-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.thumb{position:relative;aspect-ratio:16/9;padding:0;border-radius:5px;overflow:hidden;background:var(--stage);text-align:left}
.thumb .tile-label{position:absolute;left:8px;bottom:8px}
.thumb:not(:disabled):hover{background:var(--stage);outline:1px solid #7c9986}

/* Findings */
.findings{margin-top:34px}
.findings-body{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:28px;align-items:start}
.findings-empty{margin:8px 0}

















.finding-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.finding{animation:rise .3s ease}
.finding button{display:flex;flex-direction:column;gap:9px;width:100%;padding:0;text-align:left;border-radius:5px}
.finding button:not(:disabled):hover{background:transparent}
.finding button:hover strong{color:var(--green)}
.finding figure{position:relative;margin:0;aspect-ratio:16/10;border-radius:5px;overflow:hidden;background:var(--stage)}
.finding img{width:100%;height:100%;object-fit:cover;display:block}
.finding.selected figure{outline:2px solid var(--ink);outline-offset:2px}
.no-still{display:flex;align-items:center;justify-content:center;height:100%;color:#aab2ab;font-size:11px}
.box{position:absolute;border:2px solid;border-radius:3px}
.box.red{border-color:#e07870;box-shadow:0 0 0 1px #0004}.box.amber{border-color:#e0b062;box-shadow:0 0 0 1px #0004}.box.green{border-color:#7fd09d}
.finding-text{display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:1.45}
.finding-text strong{font-size:13px;font-weight:540}
.pin-number{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;margin-right:6px;font-size:9px;color:#fff}

/* Grades: colour always paired with a word */
.grade-label{display:inline-flex;align-items:center;font-size:11px;font-weight:520;padding:2px 7px;border-radius:3px;white-space:nowrap}
.grade-label.red{color:var(--danger);background:var(--danger-wash)}
.grade-label.amber{color:var(--amber);background:var(--amber-wash)}
.grade-label.green{color:var(--green);background:var(--wash)}
.grade-label.red .pin-number{background:var(--danger)}.grade-label.amber .pin-number{background:var(--amber)}.grade-label.green .pin-number{background:var(--green)}

/* Checklist */
.progress{display:flex;gap:2px;margin:-4px 0 6px}
.progress i{flex:1;height:4px;border-radius:1px;background:var(--line)}
.progress i.active{background:#8db69c;animation:breathe 1.6s ease-in-out infinite}
.progress i.done{background:#b9c5ba}
.progress i.done.green{background:var(--green)}.progress i.done.amber{background:var(--amber)}.progress i.done.red{background:var(--danger)}
.progress i.not_inspected{background:repeating-linear-gradient(90deg,var(--line) 0 3px,transparent 3px 5px)}
.area h3{font-size:11px;font-weight:520;color:var(--muted);margin:18px 0 2px}
.area ul{list-style:none;margin:0;padding:0}
.check{display:grid;grid-template-columns:14px minmax(0,1fr);gap:8px;padding:8px 6px;margin:0 -6px;border-bottom:1px solid var(--line);border-radius:3px;transition:background .3s}
.check:last-child{border-bottom:0}
.check.active{background:var(--wash)}
.glyph{width:8px;height:8px;margin-top:5px;border-radius:50%;border:1.5px solid #b9c0b8}
.check.active .glyph{border-color:var(--green);background:var(--green);animation:breathe 1.6s ease-in-out infinite}
.check.done .glyph{border-color:#b9c5ba;background:#b9c5ba}
.check.done.green .glyph{border-color:var(--green);background:var(--green)}
.check.done.amber .glyph{border-color:var(--amber);background:var(--amber)}
.check.done.red .glyph{border-color:var(--danger);background:var(--danger)}
.check.not_inspected .glyph{border-style:dashed}
.check-line{display:flex;align-items:baseline;gap:10px}
.check-title{font-size:13px}
.check.pending .check-title,.check.not_inspected .check-title{color:var(--muted)}
.values{font-size:12px;white-space:nowrap}
.values .red{color:var(--danger);font-weight:560}.values .amber{color:var(--amber);font-weight:560}
.values .sep{color:#b9c0b8}
.check-title{flex:1;min-width:0}
.check-line .status,.check-line .grade-label{flex-shrink:0}
.status{font-size:11px;color:var(--muted);min-width:20px;text-align:right}
.small-line,.note-line{display:block;font-size:11.5px;line-height:1.45;margin-top:3px}
.note-line{color:var(--ink)}
.note-line.red{color:var(--danger)}.note-line.amber{color:var(--amber)}

/* Video and report */
.timeline{display:flex;gap:3px;height:62px}
.timeline .note{margin:0;align-self:center}
.segment{position:relative;flex-basis:0;min-width:34px;border-radius:4px;overflow:hidden;background:#ebede7;animation:rise .3s ease}
.segment img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.segment.ready::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,#141915cc)}
.segment.planned{background:transparent;border:1px dashed #c3c9c0}
.segment.rendering .segment-fill{position:absolute;inset:0;background:linear-gradient(90deg,#ebede7 0%,#dfe6dd 50%,#ebede7 100%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}
.segment-title,.segment-state{position:absolute;left:6px;right:6px;z-index:1;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.segment-title{bottom:16px;color:var(--ink)}
.segment-state{bottom:4px;color:var(--muted)}
.segment.ready .segment-title{color:#fff}.segment.ready .segment-state{color:#d6dcd5}
.final-video{width:100%;border-radius:5px;background:var(--stage);display:block}
.deliver-row{margin:10px 0 12px}
.toolbar .ghost{text-decoration:none;color:var(--ink);display:inline-block}
.ghost.disabled{color:var(--muted);cursor:default;background:transparent}

@keyframes breathe{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes rise{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:0 0}}
@keyframes march{to{stroke-dashoffset:-7}}

@media(max-width:1100px){.cockpit{grid-template-columns:1fr}.side{position:static}.findings-body{grid-template-columns:1fr}}
@media(max-width:760px){.vehicle{flex-direction:column;align-items:flex-start}.summary{gap:22px}.summary dd{font-size:24px}.stage-thumbs{gap:8px}.job-state .pill{display:none}}

/* The printable report: a paper vehicle health check (Bosch Service layout) */
.vhc{--vg:#3aa357;--va:#f2b705;--vr:#e03b2f;--vk:#1d1d1b;--vl:#c8c8c4;font:9.5pt/1.35 "Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--vk);font-variant-numeric:tabular-nums}
.vhc-screen{max-width:none;padding:24px 0}
.vhc-page{width:210mm;height:297mm;overflow:hidden;margin:0 auto 24px;padding:12mm 12mm 10mm;background:#fff;box-shadow:0 1px 6px #0002;display:flex;flex-direction:column}
.vhc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4mm}
.vhc-head h1{font-size:19pt;font-weight:700;letter-spacing:-.3pt;margin:0}
.vhc-head.small h1{font-size:14pt}
.vhc-mark{font-size:17pt;font-weight:750;letter-spacing:-.8pt;text-align:right;line-height:1}
.vhc-mark span{display:block;font-size:7.5pt;font-weight:400;letter-spacing:.2pt;color:#555;margin-top:3px}
.vhc-boxes{display:flex;gap:3mm;margin-bottom:4mm}
.vhc-boxes div{flex:0 0 70mm;border:1px solid var(--vk);padding:1.8mm 3mm;font-size:10.5pt}
.vhc-boxes span{font-weight:400;margin-right:6px}
.vhc-boxes strong{font-family:"Helvetica Neue",Arial,sans-serif;letter-spacing:.6pt}
.vhc-boxes.inline{margin:0}
.vhc-boxes.inline div{flex:none}
.vhc-demo{margin:-1mm 0 3mm;padding:1.5mm 3mm;background:#fff6d6;border-left:3px solid var(--va);font-size:8pt}
.vhc-label{font-size:9.5pt;font-weight:700;margin:0 0 1.5mm}
.vhc-details{display:grid;grid-template-columns:1fr 1fr 1fr;column-gap:7mm;margin:0 0 4mm}
.vhc-details div{display:flex;gap:6px;border-bottom:1px solid var(--vk);padding:1.1mm 0 .6mm;min-width:0}
.vhc-details dt{font-weight:400;white-space:nowrap}
.vhc-details dd{margin:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vhc-key{display:flex;justify-content:center;gap:9mm;margin:1mm 0 3mm;font-size:9pt}
.vhc-key span{display:flex;align-items:center;gap:2mm}
.vhc-key i,.vhc-photos figcaption i{display:inline-block;width:9mm;height:3mm}
.vhc-photos figcaption i{width:3mm;height:3mm;vertical-align:-1px;margin-right:2px}
i.g,.vhc .rag.g{background:var(--vg)}i.a,.vhc .rag.a{background:var(--va)}i.r,.vhc .rag.r{background:var(--vr)}
.vhc-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:3mm}
.vhc-table col.c-band{width:6mm}.vhc-table col.c-item{width:36mm}.vhc-table col.c-rag{width:5mm}.vhc-table col.c-cost{width:21mm}.vhc-table col.c-auth{width:13mm}.vhc-table col.c-mm{width:15mm}
.vhc-tyres col.c-mm{width:12.5mm}.vhc-tyres col.c-item{width:31mm}.vhc-table td.auth{text-align:center;font-weight:700}
.vhc-table th,.vhc-table td{border:1px solid var(--vl);padding:.8mm 1.5mm;font-size:8.2pt;vertical-align:top;color:var(--vk)}
.vhc-table td:first-child,.vhc-table th:first-child{padding-left:1.6mm}
.vhc-table td:last-child,.vhc-table th:last-child{padding-right:1.6mm}
.vhc-table thead th{font-weight:700;border-color:transparent transparent var(--vk);text-align:left;vertical-align:bottom;font-size:8.6pt;padding-bottom:1mm}
.vhc-table thead th small{display:block;font-size:7pt;font-weight:700}
.vhc-table thead th.rag{height:3mm;padding:0;border:2px solid #fff;border-bottom:1px solid var(--vk)}
.vhc-table .num{text-align:right}
.vhc-table th.band{background:var(--vk);color:#fff;padding:0;border-color:var(--vk);vertical-align:middle}
.vhc-table th.band span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);margin:auto;font-size:7.5pt;font-weight:700;letter-spacing:.6pt;text-transform:uppercase;white-space:nowrap}
.vhc-table td.item{font-weight:400}
.vhc-table td.rag{padding:0}
.vhc-table td.rag.on{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.vhc-table td.na{text-align:center;color:#777;font-size:7.5pt;background:#f2f2ef;padding:1.1mm 0}
.vhc-table .feedback .line{display:block}
.vhc-table .feedback .readings .amber{color:#9a6a00;font-weight:600}.vhc-table .feedback .readings .red{color:#c02a20;font-weight:600}
.vhc-table .photo-ref{color:#666;white-space:nowrap}
.vhc-table td.measure small{color:#777;font-size:7pt}
.vhc-table td.measure.amber{color:#9a6a00;font-weight:700}.vhc-table td.measure.red{color:#c02a20;font-weight:700}
.vhc .muted{color:#888}
.vhc-bottom{display:grid;grid-template-columns:1fr 30mm;gap:8mm;margin-top:0}
.vhc-notes{margin:0;font-size:8.2pt;line-height:1.45;color:#333;border-bottom:1px solid var(--vl);padding-bottom:2mm}
.vhc-car{margin:0;text-align:center}
.vhc-car svg{width:24mm;height:auto}
.vhc-car .body{fill:#fff;stroke:var(--vk);stroke-width:1.2}
.vhc-car .glass{fill:#f1f1ee;stroke:var(--vk);stroke-width:.8}
.vhc-car .line{stroke:#999;stroke-width:.6}
.vhc-car .wheel circle{fill:#fff;stroke:var(--vk);stroke-width:1}
.vhc-car text{font-size:9px;font-family:"Helvetica Neue",Arial,sans-serif}
.vhc-car .pin circle{stroke:#fff;stroke-width:1}.vhc-car .pin text{fill:#fff;font-size:7.5px;font-weight:700}
.vhc-car .pin.g circle{fill:var(--vg)}.vhc-car .pin.a circle{fill:#d39a00}.vhc-car .pin.r circle{fill:var(--vr)}
.vhc-car figcaption{font-size:6.8pt;color:#666;margin-top:1mm;line-height:1.3}
.vhc-small{font-size:6.8pt;line-height:1.4;color:#444;margin:auto 0 3mm;padding-top:2mm}
.vhc-sign{display:grid;grid-template-columns:1fr 50mm;gap:10mm}
.vhc-sign div{border-bottom:1px solid var(--vk);padding-bottom:1mm;font-size:9pt}
.vhc-sign span{font-weight:700;margin-right:6px}
.vhc-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:7mm 6mm}
.vhc-photo-grid figure{margin:0;break-inside:avoid}
.vhc-photo-grid .photo{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--vk);background:#222}
.vhc-photo-grid img{width:100%;height:100%;object-fit:cover;display:block}
.vhc-photo-grid .box{border-width:2.5px}
.vhc-photo-grid .photo-n{position:absolute;left:2mm;top:2mm;width:6mm;height:6mm;border-radius:50%;color:#fff;font-weight:700;font-size:8pt;display:flex;align-items:center;justify-content:center;border:1px solid #fff}
.photo-n.green{background:var(--vg)}.photo-n.amber{background:#d39a00}.photo-n.red{background:var(--vr)}
.vhc-photo-grid figcaption{display:flex;flex-direction:column;gap:.8mm;margin-top:2mm;font-size:8.6pt}
.vhc-photo-grid figcaption strong{font-size:9.5pt}
@page{size:A4;margin:0}
@media print{body{background:#fff}main.vhc-screen,main{padding:0;margin:0;max-width:none}.vhc-page{margin:0;box-shadow:none;break-after:page}.vhc-page:last-child{break-after:auto}.vhc *{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.twin{position:relative}
.twin canvas{display:block;width:100%!important;height:100%!important}

/* Demo controls (local preview only) */
.demo-controls{position:relative;display:flex;gap:6px}
.demo-toggle{padding:6px 10px;font-size:11px}
.demo-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:340px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:7px;box-shadow:0 10px 35px #17271e18;color:var(--ink);animation:rise .15s ease}
.demo-panel strong{font-size:13px;font-weight:560}
.demo-panel .row{margin-bottom:10px}
.demo-speed{padding:2px}
.demo-speed button{padding:4px 9px;font-size:11px}
.demo-steps{list-style:none;margin:0 0 6px;padding:0;max-height:300px;overflow:auto}
.demo-steps button{display:flex;justify-content:space-between;width:100%;padding:7px 8px;border-radius:4px;font-size:12px;text-align:left}
.demo-steps button.on{background:var(--wash);color:var(--green)}
.demo-panel .note{margin:10px 0 0;font-size:11px}
.job-status{display:inline-flex;align-items:center;gap:10px}
.grade-label.na{color:var(--muted);background:#efefea}

/* The report being filled in live: the PDF's form, written field by field */
.live-report{position:relative;width:100%;height:100%;overflow:auto;background:#e7e5df;overscroll-behavior:contain;outline:none}
.live-report.thumb{overflow:hidden;pointer-events:none}
.live-report-sizer{position:relative;margin:0 auto}
.live-report-page{position:absolute;left:0;top:0;width:794px;transform-origin:0 0}
.live-report .vhc-page{margin:0;box-shadow:none}
.live-report tr.working td,.live-report tr.working .item{background:#fff5d6;transition:background .3s}
.live-report tr.working td.rag.on.g{background:var(--vg)}.live-report tr.working td.rag.on.a{background:var(--va)}.live-report tr.working td.rag.on.r{background:var(--vr)}
.live-report [data-written="pending"],.live-report [data-written="pending"] *{color:transparent!important;background-color:transparent!important}
.live-report [data-written="typing"]{animation:write var(--type-ms) linear both}
.live-report td.rag[data-written="typing"],.live-report td.na[data-written="typing"]{animation:ink var(--type-ms) ease-out both}
.wrench{position:absolute;left:0;top:0;z-index:2;width:30px;height:30px;margin:-24px 0 0 -6px;padding:5px;border-radius:50%;background:#fff;color:#1d1d1b;box-shadow:0 2px 8px #0003;transition-property:transform;transition-timing-function:cubic-bezier(.3,.7,.3,1);pointer-events:none}
.wrench.writing{transition-timing-function:linear}
.wrench svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform-origin:25% 75%}
.wrench.writing svg{animation:tap .18s ease-in-out infinite alternate}
.wrench:not(.writing) svg{animation:hover 1.3s ease-in-out infinite alternate}
.live-report.thumb .wrench{width:22px;height:22px;margin:-18px 0 0 -4px;padding:3px}
.report-expand{position:absolute;top:12px;right:12px;z-index:3;font-size:11px;color:var(--stage-ink);background:#141915b8;backdrop-filter:blur(6px);border-radius:4px;padding:5px 9px}
.report-expand:not(:disabled):hover{background:#141915}
.stage-main .live-report.main{position:absolute;inset:0}
.report-overlay{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;gap:12px;padding:16px 20px 20px;background:#141915ee;animation:rise .2s ease}
.report-overlay-bar{display:flex;justify-content:space-between;align-items:center;color:#f3f1ec;font-size:13px}
.report-overlay-bar .ghost{background:#faf9f6}
.report-overlay .live-report{flex:1;border-radius:6px}
@keyframes ink{from{opacity:0}to{opacity:1}}
@keyframes write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes hover{from{transform:translateY(-4px) rotate(-8deg)}to{transform:translateY(4px) rotate(4deg)}}
@keyframes tap{from{transform:rotate(-24deg) translateY(-1px)}to{transform:rotate(14deg) translateY(1px)}}
@media(max-width:760px){.stage-thumbs{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.wrench{transition:none}.live-report [data-written="typing"]{animation:none}}

/* The car in 3D */
.car3d{position:relative;height:300px;border-radius:6px;background:radial-gradient(ellipse at 50% 70%,#ffffff 0%,#eef0ec 70%);overflow:hidden;cursor:grab}
.car3d:active{cursor:grabbing}
.car3d canvas{display:block;width:100%!important;height:100%!important}
.car3d-labels{position:absolute;inset:0}
.pin3d{width:20px;height:20px;border-radius:50%;border:1.5px solid #fff;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0004;cursor:pointer;padding:0}
.pin3d.red{background:var(--danger)}.pin3d.amber{background:#d39a00}.pin3d.green{background:var(--green)}
.pin3d.selected{outline:2px solid var(--ink);outline-offset:1px}
.pin3d.now{animation:breathe 1.2s ease-in-out infinite}
.car3d-figure{margin:0}
.car3d-credit{font-size:10px;color:var(--muted);margin-top:5px}
.tyre3d{display:flex;flex-direction:column;gap:1px;padding:4px 7px;border-radius:4px;background:#faf9f6ee;border-left:3px solid #b9c0b8;font-size:10px;line-height:1.3;color:var(--ink);white-space:nowrap;box-shadow:0 1px 4px #0002;font-variant-numeric:tabular-nums;pointer-events:none}
.tyre3d strong{font-weight:600}
.tyre3d.green{border-color:var(--green)}.tyre3d.amber{border-color:#d39a00}.tyre3d.red{border-color:var(--danger)}
.tyre3d.now{outline:1.5px solid var(--green);outline-offset:1px}
.car3d:not([data-model="detailed"])+.car3d-credit{display:none}
