:root{--navy:#1c3359;--ink:#1f2933;--muted:#5b6470;--line:#e3e7ec;--bg:#f6f7f9;--warn:#b36b00;--warnbg:#fff6e0;
--missing:#bf3a2b;--conflict:#cc7300;--check:#33669f}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
header.top{background:var(--navy);color:#fff}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 24px}
.brand{font-weight:700;font-size:20px;color:#fff;text-decoration:none;letter-spacing:.2px}
.mode{font-size:12px;background:rgba(255,255,255,.14);padding:3px 10px;border-radius:12px}
.wrap{max-width:980px;margin:0 auto}
main.wrap{padding:28px 24px 40px}
h1{font-size:26px;margin:0 0 6px;color:var(--navy)}
h2{font-size:18px;color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:4px;margin:32px 0 12px}
.lead{color:var(--muted);margin:0 0 20px}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px}
.upload{display:flex;flex-direction:column;gap:14px}
.drop{border:2px dashed #b9c3cf;border-radius:10px;padding:28px;text-align:center;background:#fafbfc}
.drop input{font-size:15px}
.hint{font-size:13px;color:var(--muted)}
button,.btn{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:11px 20px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.disclaimer{background:var(--warnbg);border-left:4px solid var(--warn);padding:12px 16px;border-radius:6px;font-size:14px;margin:18px 0}
.disclaimer strong{color:#7a4a00}
.error{background:#fdecea;border-left:4px solid var(--missing);padding:14px 18px;border-radius:6px;margin:0 0 18px}
.meta{color:var(--muted);font-size:14px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 4px}
.conf{display:inline-block;font-weight:700;padding:2px 10px;border-radius:12px;font-size:13px;color:#fff}
.conf.high{background:#2f7d4f}.conf.medium{background:#b07b00}.conf.low{background:var(--missing)}
ul.reasons{margin:8px 0 0;padding-left:20px;color:var(--muted);font-size:14px}
.flag{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:8px}
.sev{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;color:#fff;align-self:flex-start;white-space:nowrap;margin-top:2px}
.sev.missing{background:var(--missing)}.sev.conflict{background:var(--conflict)}.sev.check{background:var(--check)}
.flag b{display:block}
ul.tips{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px 12px 34px;margin:0}
ul.tips li{margin:4px 0}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:14px}
th{background:#eef1f5;color:var(--navy);text-align:left;font-size:13px;padding:8px 10px}
td{border-top:1px solid var(--line);padding:7px 10px;vertical-align:top}
td.num,th.num{text-align:right;white-space:nowrap}
td.basis{color:var(--muted);font-size:13px}
.small{font-size:13px;color:var(--muted)}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;padding:18px 24px 30px}
table.takeoff td:first-child{width:36%}table.takeoff td.basis{width:34%}

h3{font-size:15px;color:var(--navy);margin:22px 0 6px}
img.overlay{max-width:100%;border:1px solid var(--line);border-radius:6px;background:#fff}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;opacity:.7}
.sw0{background:#2e86de}.sw1{background:#27ae60}.sw2{background:#f1c40f}.sw3{background:#9b59b6}.sw4{background:#1abc9c}.sw5{background:#e67e22}.sw6{background:#34495e}.sw7{background:#e91e63}.sw8{background:#009688}.sw9{background:#795548}.sw10{background:#607d8b}.sw11{background:#cddc39}
.notmeasured{display:flex;gap:12px;background:#fff;border:1px dashed var(--missing);border-radius:8px;padding:10px 14px;margin-bottom:8px}
form.assumptions{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 14px 4px;margin:10px 0}
.assume-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px 16px}
label.assume{display:flex;flex-direction:column;font-size:13px}label.assume small{color:var(--muted);font-size:11.5px}
label.assume input{margin:2px 0;padding:3px 6px;border:1px solid var(--line);border-radius:4px;max-width:140px}
table.materials td:nth-child(2){width:24%}table.materials td.basis{width:48%;font-size:12.5px}
.sev.ok{background:#2f7d4f}
.verify{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin:8px 0 12px}
.inline{display:inline}
.scan-notice{background:#eef3fb;border-left:4px solid var(--navy);border-radius:8px;padding:10px 14px;margin-bottom:12px}.scan-notice p{margin:4px 0 0}
.what-you-get ul{margin:6px 0 0;padding-left:20px}.what-you-get li{margin-bottom:6px}
.locked{color:#6b7280;font-size:13px;white-space:nowrap}
