
:root{
  --ink:#122733; --ink-2:#1A3644; --ink-3:#244B5C;
  --paper:#F3EFE6; --card:#FFFDF8; --card-2:#FAF6ED;
  --text:#182229; --muted:#687174; --muted-2:#8A908D;
  --line:#DED4C2; --line-2:#CDC1AB;
  --orange:#D4772B; --orange-dark:#B45B16; --orange-soft:#F8E5D2;
  --red:#A83A2E; --red-soft:#F6DFDA;
  --green:#2F6B4F; --green-soft:#E1EEE5;
  --yellow:#A97B1C; --yellow-soft:#F5EACD;
  --blue:#2C637B; --blue-soft:#E0EDF2;
  --radius:13px; --radius-sm:9px;
  --shadow:0 1px 0 rgba(18,39,51,.04), 0 26px 54px -36px rgba(18,39,51,.5);
  --sans:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:"Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --serif:Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(18,39,51,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(18,39,51,.028) 1px,transparent 1px);background-size:32px 32px}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
svg{display:block}
::selection{background:var(--orange-soft);color:var(--ink)}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:300;border-radius:0 0 8px 0}
.skip:focus{left:0}
.wrap{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.small{font-size:13px;line-height:1.45}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:4px}

/* Header */
.topbar{position:sticky;top:0;z-index:80;background:rgba(18,39,51,.97);backdrop-filter:blur(12px);color:#F4F1E8;border-bottom:1px solid rgba(255,255,255,.09)}
.topbar-top{height:62px;display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#F4F1E8;flex:none}
.brand-mark{width:31px;height:31px;flex:none}
.brand-name{font-weight:750;font-size:19px;letter-spacing:-.02em;line-height:1}
.brand-sub{display:block;font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:#9FB0B7;margin-top:3px;font-weight:650}
.topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.demo-chip{font-size:10.5px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:#F4C49D;background:rgba(212,119,43,.16);border:1px solid rgba(212,119,43,.35);border-radius:99px;padding:4px 9px;white-space:nowrap}
.progress-chip{font-family:var(--mono);font-size:12px;color:#D9E1E3;border:1px solid rgba(255,255,255,.17);border-radius:99px;padding:5px 10px;white-space:nowrap}
.save-state{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#93A3A8;white-space:nowrap}
.save-dot{width:6px;height:6px;border-radius:50%;background:#6FA783;box-shadow:0 0 0 3px rgba(111,167,131,.15);flex:none}
.save-state[data-state="error"] .save-dot{background:#D36A55;box-shadow:0 0 0 3px rgba(211,106,85,.15)}
.tabbar{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:0 0 9px}
.tabbar::-webkit-scrollbar{display:none}
.tab{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#A9B8BD;font-size:14px;font-weight:650;padding:8px 12px;border-radius:8px;white-space:nowrap}
.tab:hover{color:#fff;background:rgba(255,255,255,.06)}
.tab[aria-selected="true"]{background:#F4F1E8;color:var(--ink)}
.tab-count{font-family:var(--mono);font-size:10.5px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;background:rgba(255,255,255,.12);color:inherit}
.tab[aria-selected="true"] .tab-count{background:var(--orange-soft);color:var(--orange-dark)}

/* Hero */
.hero{background:var(--ink);color:#F4F1E8;position:relative;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.08)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000,transparent 70%);pointer-events:none}
.hero::after{content:"";position:absolute;width:620px;height:620px;right:-180px;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(212,119,43,.18),transparent 66%);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:58px;align-items:center;padding:58px 0 66px}
.eyebrow{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#9FB0B7}
.eyebrow::before{content:"";width:20px;height:1px;background:var(--orange)}
h1{font-size:clamp(2.65rem,5vw,4.35rem);line-height:1.02;letter-spacing:-.045em;font-weight:750;margin:18px 0 20px;max-width:12ch}
.h1-warm{color:#F0A36D}
.lede{font-size:17px;line-height:1.6;color:#C4CFD3;max-width:55ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}
.hero-trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;font-size:13px;color:#8FA1A7}
.hero-trust span{display:inline-flex;align-items:center;gap:6px}
.hero-trust svg{width:14px;height:14px;color:#82A894}
.hero-facts{display:flex;gap:0;margin-top:30px;border-top:1px solid rgba(255,255,255,.13);padding-top:19px;max-width:520px}
.hero-facts li{flex:1;padding-right:16px;margin-right:16px;border-right:1px solid rgba(255,255,255,.13)}
.hero-facts li:last-child{border:0;margin:0;padding:0}
.hero-facts b{display:block;font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;color:#fff;letter-spacing:-.02em}
.hero-facts span{display:block;font-size:12px;color:#93A4AA;margin-top:3px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:9px;padding:12px 18px;font-size:15px;font-weight:650;line-height:1;text-decoration:none;transition:background .16s,border-color .16s,color .16s}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-dark)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-3)}
.btn-light{background:#F4F1E8;color:var(--ink)}
.btn-light:hover{background:#fff}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(18,39,51,.03)}
.btn-ghost-light{background:transparent;border-color:rgba(255,255,255,.24);color:#F4F1E8}
.btn-ghost-light:hover{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.06)}
.btn-sm{padding:8px 11px;font-size:13px;border-radius:7px}
.btn:disabled{opacity:.42;cursor:not-allowed}

/* Plan card */
.plan-card{background:#FBF7EE;color:var(--text);border-radius:5px;padding:18px 19px 15px;box-shadow:0 36px 70px -38px rgba(0,0,0,.8);max-width:430px;justify-self:end;width:100%}
.plan-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.plan-tag{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#8B8172;border:1px solid #DCD1BC;border-radius:99px;padding:3px 8px;white-space:nowrap}
.plan-title{font-size:12px;font-weight:750;color:#3B403D}
.plan-svg{width:100%;height:auto;margin:1px 0 5px}
.plan-outline{fill:none;stroke:#1A3644;stroke-width:3}
.plan-room{fill:#EEF3F4;stroke:#1A3644;stroke-width:1.6}
.plan-room.alt{fill:#E7EFF1}
.plan-label{font-family:var(--sans);font-size:9.5px;font-weight:650;fill:#25495A}
.plan-sub{font-family:var(--mono);font-size:8px;fill:#7A878C}
.plan-dot{stroke:#FBF7EE;stroke-width:1.6}
.plan-dot.ok{fill:#2F6B4F}.plan-dot.defect{fill:#D4772B}.plan-dot.critical{fill:#A83A2E}.plan-dot.todo{fill:#AAB3B4}
.plan-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:9.5px;color:#6F746F;margin:0 0 9px}
.plan-legend span{display:inline-flex;align-items:center;gap:5px}
.plan-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}
.plan-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px dashed #CFC4AF;padding-top:9px;font-size:10.5px;color:#6F746F}
.plan-foot b{font-family:var(--mono);color:var(--text);font-weight:650}
.plan-note{font-size:10px;color:#8B8172;line-height:1.4;margin-top:7px}

/* Steps */
.steps-strip{background:var(--card);border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:19px 0}
.step{display:flex;gap:11px;padding:0 18px;border-right:1px solid var(--line)}
.step:first-child{padding-left:0}.step:last-child{border:0;padding-right:0}
.step-num{font-family:var(--mono);font-size:10.5px;color:var(--orange-dark);font-weight:700;padding-top:3px;flex:none}
.step b{display:block;font-size:13px;font-weight:700;line-height:1.3}
.step span{display:block;font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:3px}

/* Workspace */
.workspace{padding:34px 0 78px;scroll-margin-top:118px}
.app-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.app-head h2{font-size:clamp(1.7rem,2.8vw,2.25rem);line-height:1.1;letter-spacing:-.035em;font-weight:750;margin-top:4px}
.app-address{font-size:13px;color:var(--muted);margin-top:5px;max-width:70ch}
.app-meta{display:flex;gap:8px;flex-wrap:wrap}
.meta-pill{font-family:var(--mono);font-size:11.5px;border:1px solid var(--line-2);border-radius:99px;padding:5px 10px;color:#515A5C;background:rgba(255,253,248,.6);white-space:nowrap}
.meta-pill strong{font-weight:700;color:var(--text)}
.tab-panel{min-height:300px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.card h3{font-size:16px;letter-spacing:-.01em}

/* Inspect layout */
.inspect-layout{display:grid;grid-template-columns:262px minmax(0,1fr) 300px;gap:18px;align-items:start}
.inspect-layout > *{min-width:0}
.sidebar{padding:16px}
.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.side-head h3{font-size:14.5px}
.side-count{font-family:var(--mono);font-size:11px;color:var(--muted)}
.zone-list{display:flex;flex-direction:column;gap:3px}
.zone-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:8px 9px;color:#3E474A}
.zone-btn:hover{background:#F6F0E4;border-color:var(--line)}
.zone-btn.is-active{background:var(--ink);color:#F4F1E8;border-color:var(--ink)}
.zone-name{font-size:13px;font-weight:650;line-height:1.25;display:flex;align-items:center;gap:6px;min-width:0}
.zone-name .zdot{width:6px;height:6px;border-radius:50%;background:#B7ADA0;flex:none}
.zone-btn.is-active .zdot{background:#F0A36D}
.zone-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);text-align:right;line-height:1.25;white-space:nowrap}
.zone-btn.is-active .zone-meta{color:#AEBCC1}
.zone-bar{grid-column:1 / -1;height:3px;border-radius:99px;background:#E9E2D5;overflow:hidden;margin-top:1px}
.zone-bar i{display:block;height:100%;background:var(--green);border-radius:99px}
.zone-btn.is-active .zone-bar{background:rgba(255,255,255,.16)}
.zone-btn.is-active .zone-bar i{background:#7FB493}
.settings{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}
.settings summary{cursor:pointer;list-style:none;font-size:12px;font-weight:700;color:#50585A;display:flex;justify-content:space-between;align-items:center}
.settings summary::-webkit-details-marker{display:none}
.settings summary::after{content:"+";font-family:var(--mono);font-size:16px;color:var(--muted);font-weight:400}
.settings[open] summary::after{content:"−"}
.settings-body{margin-top:11px}
.zone-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:#4E5658;padding:5px 0;border-bottom:1px solid #F0EADD}
.zone-toggle:last-child{border-bottom:0}
.zone-toggle label{display:flex;align-items:center;gap:7px;cursor:pointer}
.zone-toggle input{accent-color:var(--orange);width:15px;height:15px}
.zone-remove{border:0;background:transparent;color:var(--muted-2);font-size:15px;line-height:1;padding:2px 4px}
.zone-remove:hover{color:var(--red)}
.add-room{width:100%;border:1px dashed var(--line-2);background:transparent;border-radius:7px;padding:7px;font-size:11.5px;color:#5B6365;margin-top:8px}
.add-room:hover{border-color:var(--ink);color:var(--text)}
.settings-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:11px;border-top:1px solid var(--line);padding-top:10px}
.tool-btn{border:0;background:transparent;color:#5E6769;font-size:11.5px;padding:4px 5px;border-radius:5px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px}
.tool-btn:hover{color:var(--text);background:rgba(18,39,51,.05);text-decoration-color:var(--line-2)}
.settings-note{font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:8px}

/* Checklist */
.checklist{padding:0;overflow:hidden}
.check-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 12px}
.check-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-dark);margin-bottom:4px}
.check-head h3{font-size:19px;line-height:1.2}
.check-count{font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:4px 9px;white-space:nowrap}
.filters{display:flex;gap:5px;flex-wrap:wrap;padding:0 20px 13px;border-bottom:1px solid var(--line)}
.filter-chip{border:1px solid var(--line-2);background:transparent;border-radius:99px;padding:6px 11px;font-size:12.5px;color:#5E6769}
.filter-chip:hover{border-color:var(--ink);color:var(--text)}
.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:#F4F1E8}
.checklist-body{padding:6px 14px 14px}
.check-group{margin-top:12px}
.check-group h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:750;padding:8px 6px 6px;display:flex;align-items:center;gap:8px}
.check-group h4::after{content:"";height:1px;background:var(--line);flex:1}
.check-item{border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin:7px 0;background:#FFFEFA;transition:border-color .15s,background .15s}
.check-item:hover{border-color:var(--line-2)}
.check-item.is-defect{border-color:#E7BCA0;background:#FFFBF6}
.check-item.is-ok{border-color:#D3E3D8;background:#FBFDF9}
.check-item.is-na{opacity:.72}
.check-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.check-title{font-size:15px;font-weight:650;line-height:1.3;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.critical-mark{font-size:9.5px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--orange-dark);background:var(--orange-soft);border-radius:99px;padding:2px 5px;white-space:nowrap}
.check-hint{font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:3px;max-width:66ch}
.status-group{display:flex;gap:2px;border:1px solid var(--line-2);border-radius:7px;padding:2px;background:#F3EEE4;flex:none}
.status-btn{border:0;background:transparent;border-radius:5px;padding:6px 8px;font-size:12px;font-weight:650;color:#687174;line-height:1.1;white-space:nowrap}
.status-btn:hover{color:var(--text);background:rgba(255,255,255,.6)}
.status-btn[data-status="ok"].is-active{background:var(--green);color:#fff}
.status-btn[data-status="defect"].is-active{background:var(--red);color:#fff}
.status-btn[data-status="na"].is-active{background:#6D777A;color:#fff}
.defect-panel{margin-top:10px;border-top:1px dashed #E2C5B1;padding-top:10px}
.sev-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.sev-row .sev-label{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:#8B6A50;margin-right:1px}
.sev-btn{border:1px solid #E0C9B7;background:#FFF9F2;border-radius:99px;padding:4px 8px;font-size:10.5px;font-weight:650;color:#7A5A43}
.sev-btn.is-active[data-sev="critical"]{background:var(--red);border-color:var(--red);color:#fff}
.sev-btn.is-active[data-sev="medium"]{background:var(--orange);border-color:var(--orange);color:#fff}
.sev-btn.is-active[data-sev="minor"]{background:var(--yellow);border-color:var(--yellow);color:#fff}
.defect-comment{width:100%;border:1px solid #E0C9B7;border-radius:7px;background:#fff;padding:8px 9px;font-size:12.5px;min-height:58px;resize:vertical;line-height:1.45}
.defect-comment:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(212,119,43,.12)}
.photo-check{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:#6C5A4C;margin-top:7px;cursor:pointer}
.photo-check input{accent-color:var(--orange);width:15px;height:15px}
.check-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px 17px;border-top:1px solid var(--line);flex-wrap:wrap}
.check-footer .btn{font-size:12.5px;padding:8px 11px}
.empty-check{padding:30px 15px;text-align:center;color:var(--muted)}
.empty-check b{display:block;font-size:14px;color:var(--text);margin-bottom:5px}
.empty-check p{font-size:12.5px;max-width:40ch;margin:0 auto;line-height:1.5}

/* Summary */
.summary{background:var(--ink);color:#F4F1E8;border-radius:var(--radius);padding:19px;box-shadow:0 26px 50px -36px rgba(18,39,51,.7);position:relative;overflow:hidden}
.summary::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--orange),#E8B07A 60%,var(--green))}
.summary h3{font-size:13px;color:#AEBCC1;font-weight:600;margin-bottom:13px}
.donut-wrap{display:flex;align-items:center;gap:14px;margin-bottom:15px}
.donut{width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p,0) * 1%), rgba(255,255,255,.12) 0);display:flex;align-items:center;justify-content:center;flex:none;position:relative}
.donut::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--ink)}
.donut b{position:relative;z-index:1;font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:-.03em}
.donut small{position:relative;z-index:1;font-size:9px;color:#AEBCC1;display:block;text-align:center;line-height:1;margin-top:2px}
.summary-progress{font-family:var(--mono);font-size:12px;color:#AEBCC1;line-height:1.4}
.summary-progress b{display:block;font-family:var(--sans);font-size:20px;color:#fff;font-weight:700;letter-spacing:-.03em}
.summary-progress span{display:block;font-size:10.5px;color:#8FA1A7;margin-top:3px}
.summary-defects{font-family:var(--mono);font-size:12px;color:#AEBCC1;margin-bottom:10px}
.summary-defects b{color:#F4A16B;font-size:22px;font-weight:700;font-family:var(--sans);letter-spacing:-.03em;margin-right:3px}
.sev-list{border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);padding:9px 0;margin-bottom:13px}
.sev-row-sum{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#AEBCC1;padding:3px 0}
.sev-row-sum span{display:inline-flex;align-items:center;gap:6px}
.sev-dot{width:7px;height:7px;border-radius:50%;display:inline-block}
.sev-dot.critical{background:#E36B59}.sev-dot.medium{background:#E8A05E}.sev-dot.minor{background:#D8C17A}
.sev-row-sum b{font-family:var(--mono);color:#fff;font-weight:600}
.summary .btn{width:100%;font-size:13px;padding:10px 12px}
.summary .btn + .btn{margin-top:7px}
.summary-note{font-size:10px;color:#809298;line-height:1.45;margin-top:11px}
.summary-address{font-size:10.5px;color:#8FA1A7;line-height:1.4;margin:-4px 0 12px}

/* Defects */
.defects-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.defects-head h2{font-size:1.7rem;letter-spacing:-.03em;line-height:1.1}
.defects-head p{font-size:12.5px;color:var(--muted);margin-top:4px}
.defects-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.defects-toolbar .search{flex:1;min-width:180px;max-width:320px;border:1px solid var(--line-2);background:var(--card);border-radius:8px;padding:8px 10px;font-size:12.5px}
.defects-toolbar .search:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(212,119,43,.12)}
.defect-list{display:flex;flex-direction:column;gap:7px}
.defect-row{display:grid;grid-template-columns:26px 96px minmax(0,1fr) 104px 62px 88px;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.defect-num{font-family:var(--mono);font-size:10.5px;color:var(--muted-2)}
.defect-zone{font-size:11.5px;color:#5E6769;line-height:1.25}
.defect-main{min-width:0}
.defect-title{font-size:13.5px;font-weight:650;line-height:1.3}
.defect-desc{font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px;overflow-wrap:anywhere}
.sev-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:750;border-radius:99px;padding:3px 7px;white-space:nowrap}
.sev-chip.critical{background:var(--red-soft);color:#7C2118}
.sev-chip.medium{background:var(--orange-soft);color:#8A4B17}
.sev-chip.minor{background:var(--yellow-soft);color:#705511}
.defect-photo{font-size:10.5px;color:var(--muted);text-align:center}
.defect-actions{display:flex;justify-content:flex-end;gap:2px}
.icon-btn{border:0;background:transparent;color:var(--muted-2);padding:5px;border-radius:5px;line-height:0}
.icon-btn:hover{color:var(--text);background:rgba(18,39,51,.06)}
.icon-btn svg{width:16px;height:16px}
.empty-state{background:var(--card);border:1px dashed var(--line-2);border-radius:12px;padding:38px 20px;text-align:center;color:var(--muted)}
.empty-state svg{width:48px;height:48px;margin:0 auto 10px;color:#B7AD9C}
.empty-state b{display:block;font-size:16px;color:var(--text);margin-bottom:5px}
.empty-state p{font-size:13px;max-width:42ch;margin:0 auto 14px;line-height:1.5}
.defect-count{font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:4px 9px;white-space:nowrap}

/* Documents */
.docs-grid{display:grid;grid-template-columns:386px minmax(0,1fr);gap:26px;align-items:start}
.doc-list{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.doc-tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:9px 10px;color:#4F585A}
.doc-tab:hover{background:#FBF7EE;border-color:var(--line)}
.doc-tab[aria-selected="true"]{background:var(--card);border-color:var(--line-2);box-shadow:0 1px 3px rgba(18,39,51,.05)}
.doc-tab-icon{width:28px;height:28px;border-radius:6px;background:#EDE6D9;display:flex;align-items:center;justify-content:center;flex:none;color:#6F7676}
.doc-tab[aria-selected="true"] .doc-tab-icon{background:var(--orange-soft);color:var(--orange-dark)}
.doc-tab-icon svg{width:14px;height:14px}
.doc-tab-text b{display:block;font-size:14.5px;font-weight:650;line-height:1.25}
.doc-tab-text span{display:block;font-size:12px;color:var(--muted);line-height:1.3;margin-top:1px}
.req-card{padding:15px}
.req-card summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:13px;font-weight:700}
.req-card summary::-webkit-details-marker{display:none}
.req-card summary::after{content:"+";margin-left:auto;font-family:var(--mono);font-size:17px;color:var(--muted);font-weight:400}
.req-card[open] summary::after{content:"−"}
.req-progress{font-size:10px;font-weight:650;color:var(--muted);background:#F0EADD;border-radius:99px;padding:3px 7px;white-space:nowrap}
.req-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.req-grid .field{margin:0}
.req-grid .full{grid-column:1 / -1}
.field{display:block;margin-bottom:10px}
.field > span,.field-label{display:block;font-size:12.5px;font-weight:750;color:#4E5658;margin-bottom:5px;line-height:1.3}
.input,select.input{width:100%;background:#fff;border:1px solid var(--line-2);border-radius:8px;padding:10px 11px;font-size:15.5px;min-height:44px;color:var(--text)}
.input:hover{border-color:#BFB29D}
.input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(212,119,43,.12)}
textarea.input{min-height:64px;resize:vertical;line-height:1.45}
.req-note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:9px}
.demand-hint{font-size:12px;color:var(--muted);line-height:1.5;margin-top:6px}
.doc-stage{min-width:0}
.doc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.doc-toolbar-title{font-size:12px;color:var(--muted)}
.doc-toolbar-actions{display:flex;gap:6px;flex-wrap:wrap}
.doc-warning{background:#FBF0E5;border:1px solid #F0D4BB;color:#7A4A24;border-radius:7px;padding:8px 11px;font-size:12.5px;line-height:1.45;margin-bottom:9px}
.doc-paper{background:#fff;color:#111;font-family:var(--serif);font-size:16px;line-height:1.55;padding:38px 42px;border:1px solid #E6E0D4;border-radius:3px;box-shadow:var(--shadow);max-width:800px;min-height:520px}
.doc-paper h1{font-family:var(--serif);font-size:18px;text-align:center;text-transform:uppercase;letter-spacing:.03em;line-height:1.35;margin:22px 0 16px;font-weight:700;max-width:none}
.doc-paper p{margin:0 0 9px;text-align:justify}
.doc-paper .doc-to{margin-left:auto;width:58%;font-size:13.5px;line-height:1.45;margin-bottom:18px}
.doc-paper .doc-to p{margin:0 0 3px;text-align:left}
.doc-paper .doc-date{display:flex;justify-content:space-between;gap:20px;margin:15px 0;font-size:12.5px}
.doc-paper table{width:100%;border-collapse:collapse;font-size:12.5px;margin:10px 0 12px}
.doc-paper th,.doc-paper td{border:1px solid #A9A9A9;padding:6px 7px;vertical-align:top;text-align:left}
.doc-paper th{background:#F2F0EB;font-weight:700}
.doc-paper .doc-list{margin:6px 0 9px;padding-left:18px;list-style:decimal;font-size:13.5px}
.doc-paper .doc-list li{margin-bottom:3px}
.doc-paper .doc-sign{display:flex;justify-content:space-between;gap:28px;margin-top:28px;font-size:13.5px}
.doc-paper .doc-sign div{flex:1}
.doc-paper .doc-small{font-size:12.5px;color:#444}
.doc-paper .blank{color:#8A5B2E;border-bottom:1px dotted #B58A5F}
.doc-empty{min-height:470px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.doc-empty svg{width:44px;height:44px;color:#B7AD9C;margin-bottom:10px}
.doc-empty b{font-family:var(--sans);font-size:14px;margin-bottom:5px}
.doc-empty p{font-family:var(--sans);font-size:12.5px;color:#6B6E6B;max-width:34ch;margin:0;line-height:1.5;text-align:center}

/* Norms */
.norms-head{max-width:760px;margin-bottom:22px}
.norms-head h2{font-size:clamp(1.7rem,2.8vw,2.2rem);letter-spacing:-.03em}
.norms-head p{font-size:14.5px;color:var(--muted);line-height:1.55;margin-top:6px}
.norm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-bottom:26px}
.norm-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:17px}
.norm-card h3{font-size:14.5px;line-height:1.3;margin-bottom:7px;display:flex;align-items:center;gap:8px}
.norm-icon{width:26px;height:26px;border-radius:6px;background:#F0EADD;display:inline-flex;align-items:center;justify-content:center;color:#6F6A5F;flex:none}
.norm-icon svg{width:14px;height:14px}
.norm-card p{font-size:13.5px;color:#5C6466;line-height:1.6}
.norm-card p b{color:var(--text)}
.norm-card .tag{display:inline-block;font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--orange-dark);background:var(--orange-soft);border-radius:99px;padding:2px 6px;margin-bottom:6px}
.norm-note{background:#FBF7EE;border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:11.5px;color:#5C6466;line-height:1.5;margin:0 0 20px}
.norm-note b{color:var(--text)}
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--line-2)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 2px;font-size:15.5px;font-weight:650;cursor:pointer;list-style:none;line-height:1.4}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:18px;color:var(--muted);font-weight:400;flex:none}
.faq details[open] summary::after{content:"−"}
.faq details p{font-size:14px;color:#5C6466;line-height:1.6;padding:0 28px 14px 2px;max-width:76ch}
.faq details p a{color:var(--orange-dark);text-underline-offset:2px}
.source-list{display:flex;flex-wrap:wrap;gap:7px 16px;margin-top:22px;font-size:11.5px;color:var(--muted)}
.source-list a{text-decoration-color:var(--line-2);text-underline-offset:2px}
.source-list a:hover{color:var(--text)}

/* Footer */
footer{background:var(--ink);color:#93A4AA;padding:32px 0 26px}
.footer-grid{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:10px;color:#F4F1E8}
.footer-note{font-size:11.5px;line-height:1.6;max-width:68ch;margin-top:10px}
.footer-links{display:flex;flex-direction:column;gap:6px;font-size:12px}
.footer-links a{color:#C3CDD0;text-decoration:none}
.footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:2px}
.footer-bottom{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:10.5px;color:#74868C}

/* Dialog */
.dialog{border:1px solid var(--line-2);border-radius:14px;padding:0;max-width:520px;width:calc(100% - 32px);background:var(--card);color:var(--text);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.dialog::backdrop{background:rgba(18,39,51,.55);backdrop-filter:blur(3px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.dialog-head h3{font-size:17px}
.dialog-close{border:0;background:transparent;font-size:22px;line-height:1;color:var(--muted);padding:2px 5px}
.dialog-body{padding:16px 18px}
.dialog-body .field{margin-bottom:11px}
.dialog-actions{display:flex;gap:7px;flex-wrap:wrap;padding:13px 18px 17px;border-top:1px solid var(--line)}
.dialog-actions .btn{flex:1;min-width:120px}
.dialog-actions .danger{background:var(--red);color:#fff;border-color:var(--red)}
.dialog-error{background:var(--red-soft);border:1px solid #EAC3BC;color:#7C2118;border-radius:7px;padding:7px 9px;font-size:11.5px;line-height:1.4;margin-bottom:9px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}

/* Toast */
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,14px);z-index:150;background:var(--ink);color:#F4F1E8;border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:10px 12px;display:flex;align-items:center;gap:14px;font-size:12.5px;box-shadow:0 20px 40px -18px rgba(0,0,0,.6);opacity:0;transition:opacity .18s,transform .18s;pointer-events:none;max-width:calc(100% - 28px)}
.toast.is-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast button{border:0;background:transparent;color:#F0A36D;font-weight:700;font-size:12.5px;padding:0;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
#printRoot{display:none}

/* Responsive */
@media (max-width:1100px){
  .hero-grid{grid-template-columns:1fr;gap:38px;padding:48px 0 56px}
  h1{max-width:16ch}
  .plan-card{justify-self:start;max-width:460px}
  .inspect-layout{grid-template-columns:236px minmax(0,1fr);gap:16px}
  .summary{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr;gap:0 20px;align-items:center}
  .summary h3{grid-column:1 / -1;margin-bottom:10px}
  .donut-wrap{grid-row:2 / span 3;margin:0}
  .summary-defects{margin:0}
  .sev-list{border-top:0;border-bottom:0;padding:0;margin:0;display:flex;gap:14px;flex-wrap:wrap}
  .sev-row-sum{padding:0}
  .summary .btn{width:auto;justify-self:start;margin-top:8px}
  .summary .btn + .btn{margin-top:8px}
  .summary-note{grid-column:1 / -1;margin-top:8px}
  .summary-address{grid-column:1 / -1;margin:0 0 8px}
  .docs-grid{grid-template-columns:350px minmax(0,1fr);gap:20px}
}
@media (max-width:900px){
  .wrap{width:calc(100% - 34px)}
  .topbar-top{height:56px;gap:12px}
  .brand-sub{font-size:9px}
  .save-state{display:none}
  .progress-chip{font-size:11px;padding:4px 8px}
  .demo-chip{font-size:9.5px}
  .tabbar{padding-bottom:8px}
  .tab{font-size:13.5px;padding:7px 10px}
  .hero-grid{padding:38px 0 46px;gap:30px}
  h1{font-size:clamp(2.45rem,8vw,3.5rem)}
  .lede{font-size:16px}
  .steps{grid-template-columns:1fr 1fr;gap:14px 0;padding:16px 0}
  .step{border-right:0;padding:0 12px}
  .step:nth-child(odd){padding-left:0}
  .step:nth-child(even){border-left:1px solid var(--line)}
  .workspace{padding:26px 0 60px;scroll-margin-top:106px}
  .inspect-layout{grid-template-columns:minmax(0,1fr);gap:14px}
  .sidebar{order:1}
  .summary{display:none}
  .donut-wrap{margin-bottom:12px}
  .summary .btn{width:100%}
  .sev-list{border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);padding:9px 0;margin-bottom:13px;display:block}
  .sev-row-sum{padding:3px 0}
  .checklist{order:2}
  .zone-list{display:flex;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px;scrollbar-width:none;min-width:0;max-width:100%}
  .zone-list::-webkit-scrollbar{display:none}
  .zone-btn{width:auto;min-width:150px;flex:0 0 160px;border-color:var(--line);background:#FFFEFA}
  .zone-btn.is-active{background:var(--ink)}
  .settings{margin-top:10px}
  .defect-row{grid-template-columns:24px 80px minmax(0,1fr) 92px 50px 70px;gap:8px;padding:9px 10px}
  .docs-grid{grid-template-columns:1fr;gap:16px}
  .doc-list{display:grid;grid-template-columns:1fr 1fr;gap:5px}
  .doc-paper{max-width:none}
  .norm-grid{grid-template-columns:1fr}
  .faq{max-width:none}
}
@media (max-width:640px){
  .wrap{width:calc(100% - 28px)}
  .topbar-top{height:54px}
  .brand-name{font-size:17px}
  .brand-mark{width:28px;height:28px}
  .progress-chip{display:none}
  .hero-grid{padding:32px 0 40px}
  h1{font-size:clamp(2.35rem,10.5vw,3rem)}
  .hero-actions .btn{width:100%}
  .hero-facts{flex-wrap:wrap;gap:12px 0}
  .hero-facts li{flex:1 1 30%;padding-right:9px;margin-right:9px}
  .hero-facts b{font-size:18px}
  .hero-facts span{font-size:11px}
  .plan-card{padding:14px 14px 12px}
  .plan-note{font-size:9.5px}
  .steps{grid-template-columns:1fr;gap:11px}
  .step{padding:0;border-left:0!important}
  .step:not(:last-child){padding-bottom:11px;border-bottom:1px solid var(--line)}
  .workspace{padding-top:20px}
  .app-head{align-items:flex-start;margin-bottom:13px}
  .app-head h2{font-size:1.55rem}
  .app-address{font-size:12px}
  .card{padding:15px;border-radius:11px}
  .check-head{padding:14px 15px 10px}
  .check-head h3{font-size:17px}
  .filters{padding:0 15px 10px}
  .checklist-body{padding:4px 9px 10px}
  .check-item{padding:10px}
  .check-top{grid-template-columns:1fr;gap:7px}
  .status-group{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}
  .status-btn{padding:7px 5px;font-size:12px}
  .check-title{font-size:14px}
  .check-hint{font-size:11.5px}
  .check-footer{padding:10px 15px 13px}
  .check-footer .btn{flex:1}
  .zone-btn{min-width:136px;padding:7px 8px}
  .defects-head h2{font-size:1.5rem}
  .defects-toolbar .search{max-width:none;flex-basis:100%}
  .defect-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"zone sev" "main main" "photo actions";gap:5px 8px;padding:10px}
  .defect-num{display:none}
  .defect-zone{grid-area:zone;font-size:11px;font-weight:650;color:#5E6769}
  .defect-main{grid-area:main}
  .defect-row .sev-chip{grid-area:sev;justify-self:end}
  .defect-photo{grid-area:photo;text-align:left;font-size:10.5px}
  .defect-actions{grid-area:actions;align-self:end;justify-self:end}
  .defect-title{font-size:12.5px}
  .defect-desc{font-size:11px}
  .doc-toolbar-actions{width:100%}
  .doc-toolbar-actions .btn{flex:1;font-size:12px;padding:8px 7px}
  .doc-paper{padding:22px 18px;font-size:15.5px;line-height:1.55;min-height:0}
  .doc-paper h1{font-size:17px}
  .doc-paper .doc-to{width:100%;font-size:13px}
  .doc-paper table{font-size:11.5px}
  .doc-paper table.calc-table{display:block;border:0;font-size:12px}
  .doc-paper table.calc-table thead{display:none}
  .doc-paper table.calc-table tbody{display:block}
  .doc-paper table.calc-table tr{display:block;border:1px solid #A9A9A9;margin:0 0 7px;padding:0}
  .doc-paper table.calc-table td{display:flex;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid #DDD;padding:4px 6px;text-align:right}
  .doc-paper table.calc-table td:last-child{border-bottom:0}
  .doc-paper table.calc-table td::before{content:attr(data-label);font-weight:700;color:#555;text-align:left;flex:none}
  .req-grid{grid-template-columns:1fr}
  .doc-list{grid-template-columns:1fr}
  .norm-card p{font-size:12.5px}
  .faq summary{font-size:13.5px}
  .faq details p{font-size:12.5px}
  .footer-grid{flex-direction:column}
  .toast{bottom:12px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Print */
@media print{
  @page{size:A4;margin:17mm 16mm}
  body.printing > *:not(#printRoot){display:none!important}
  body.printing{background:#fff}
  body.printing::before{display:none}
  #printRoot{display:block!important}
  #printRoot .doc-paper{box-shadow:none;border:0;border-radius:0;padding:0;max-width:none;min-height:0;font-size:12pt;line-height:1.42}
  #printRoot .doc-paper h1{font-size:14pt;margin:18px 0 14px}
  #printRoot .doc-paper .doc-to{width:58%;font-size:10.5pt}
  #printRoot .doc-paper table{font-size:9pt}
  #printRoot .doc-paper a{color:inherit;text-decoration:none}
}

.home-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;color:#D9E1E3;border:1px solid rgba(255,255,255,.17);border-radius:99px;padding:5px 9px;white-space:nowrap;text-decoration:none;line-height:1;flex:none}
.home-link:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.3)}
.hl-short{display:none}
@media (max-width:640px){.hl-text{display:none}.hl-short{display:inline}}
