:root{--bg:#f2f4f5;--surface:#fff;--surface-2:#eceff1;--ink:#0f1b2d;--ink-soft:#51606f;--ink-faint:#8695a3;--navy:#0a1730;--navy-2:#132544;--teal:#0e7490;--teal-light:#38bdf8;--line:#dde2e6;--line-strong:#c3cbd1;--amber:#b9791a;--red:#b3271e;--green:#2f7a4f;--amber-bg:#fbeed9;--red-bg:#fbe2e0;--green-bg:#e1efe6;--font-sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;--radius:3px;color-scheme:light}:root:not([data-theme=light]){@media (prefers-color-scheme:dark){--bg:#0a1119;--surface:#101a26;--surface-2:#16212f;--ink:#e7ecf1;--ink-soft:#a7b4c0;--ink-faint:#6d7b89;--navy:#0a1730;--navy-2:#0d1d38;--teal:#38bdf8;--teal-light:#7dd3fc;--line:#233042;--line-strong:#2e3d50;--amber:#e0a53e;--red:#e2665c;--green:#5cb98a;--amber-bg:#2c2312;--red-bg:#2c1614;--green-bg:#122a1e}}:root[data-theme=dark]{--bg:#0a1119;--surface:#101a26;--surface-2:#16212f;--ink:#e7ecf1;--ink-soft:#a7b4c0;--ink-faint:#6d7b89;--navy:#0a1730;--navy-2:#0d1d38;--teal:#38bdf8;--teal-light:#7dd3fc;--line:#233042;--line-strong:#2e3d50;--amber:#e0a53e;--red:#e2665c;--green:#5cb98a;--amber-bg:#2c2312;--red-bg:#2c1614;--green-bg:#122a1e}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#dbe4ee;padding:22px 18px;display:flex;flex-direction:column;gap:28px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:auto;flex:none;object-fit:contain}.brand-text{font-size:13.5px;letter-spacing:.04em;font-weight:600;color:#f2f6fa}.brand-sub{font-size:10.5px;color:#8ea3b8;font-family:var(--font-mono);margin-top:1px}.nav{display:flex;flex-direction:column;gap:1px;margin-top:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius);color:#aebdcc;font-size:13px;font-weight:500;border:1px solid transparent}.nav-item svg{width:15px;height:15px;flex:none;opacity:.85}.nav-item.active{background:rgba(56,189,248,.1);color:#eaf4fb;border-color:rgba(56,189,248,.25)}.nav-item:not(.active):hover{background:hsla(0,0%,100%,.04);color:#dbe4ee;cursor:pointer}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid hsla(0,0%,100%,.08);font-size:11.5px;color:#7386a0;font-family:var(--font-mono)}.sidebar-foot b{color:#b8c6d4;display:block;font-family:var(--font-sans);font-size:12.5px;margin-bottom:2px}.main{padding:28px 36px 60px;max-width:1180px}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}.crumbs{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);letter-spacing:.02em}.crumbs a:hover{color:var(--teal);cursor:pointer}.crumbs .sep{margin:0 6px;color:var(--line-strong)}h1{font-size:23px;margin:4px 0 0;font-weight:600;letter-spacing:-.01em}.page-actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:12.5px;font-weight:500}.btn:hover{color:var(--teal)}.btn-primary,.btn:hover{border-color:var(--teal)}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{filter:brightness(.92);color:#fff}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:26px}.stat{background:var(--surface);padding:14px 16px}.stat b{display:block;font-size:22px;font-weight:600;font-family:var(--font-mono)}.stat span{font-size:11.5px;color:var(--ink-soft)}.section-label{font-size:11px;font-family:var(--font-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.blist{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.brow{display:grid;grid-template-columns:1.6fr .9fr .7fr .8fr auto;grid-gap:14px;gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.brow:last-child{border-bottom:none}.brow:hover{background:var(--surface-2);cursor:pointer}.brow-name{font-weight:600;font-size:14px}.brow-addr{margin-top:2px}.brow-addr,.brow-meta{font-size:12px;color:var(--ink-soft)}.brow-meta b{color:var(--ink);font-family:var(--font-mono);font-weight:500}.brow-arrow{color:var(--ink-faint);font-size:16px}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500}.pill-dot{width:6px;height:6px;border-radius:50%}.pill-red{background:var(--red-bg);color:var(--red)}.pill-red .pill-dot{background:var(--red)}.pill-amber{background:var(--amber-bg);color:var(--amber)}.pill-amber .pill-dot{background:var(--amber)}.pill-green{background:var(--green-bg);color:var(--green)}.pill-green .pill-dot{background:var(--green)}.pill-neutral{background:var(--surface-2);color:var(--ink-soft)}.pill-neutral .pill-dot{background:var(--ink-faint)}.building-head{display:grid;grid-template-columns:1fr 260px;grid-gap:28px;gap:28px;margin-bottom:30px}.head-info p{margin:3px 0;color:var(--ink-soft);font-size:13px}.head-info .addr{font-size:14px;color:var(--ink);margin-top:6px}.kv-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 18px;gap:10px 18px;margin-top:16px}.kv{border-top:1px solid var(--line);padding-top:8px}.kv label{display:block;font-size:10.5px;font-family:var(--font-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.kv div{font-size:13px;font-weight:500}.side-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px}.side-panel h3{font-size:12px;margin:0 0 10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.doc-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}.doc-row:last-child{border:none;padding-bottom:0}.doc-name{font-weight:500}.doc-sub{color:var(--ink-faint);font-size:11px;margin-top:2px}.doc-status,.doc-sub{font-family:var(--font-mono)}.doc-status{font-size:10.5px;white-space:nowrap;padding-top:1px}.ok{color:var(--green)}.warn{color:var(--amber)}.timeline{position:relative;margin-left:6px;padding-left:26px;border-left:1px solid var(--line)}.tl-item{position:relative;padding-bottom:26px}.tl-item:last-child{padding-bottom:0}.tl-dot{position:absolute;left:-31px;top:3px;width:10px;height:10px;border-radius:50%;border:2px solid var(--teal)}.tl-card,.tl-dot{background:var(--surface)}.tl-card{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.tl-card:hover{border-color:var(--teal);cursor:pointer}.tl-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.tl-date{font-family:var(--font-mono);font-size:12.5px;font-weight:600}.tl-type{font-size:12.5px;margin-top:2px}.tl-crew,.tl-type{color:var(--ink-soft)}.tl-crew{display:flex;gap:16px;margin-top:10px;font-size:11.5px}.tl-crew span b{color:var(--ink);font-weight:500}.tl-crit-summary{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.insp-grid{display:grid;grid-template-columns:1.5fr 320px;grid-gap:24px;gap:24px;align-items:start}.facade-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px}.facade-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.facade-panel-head h3{margin:0;font-size:13px;font-weight:600}.facade-legend{display:flex;gap:12px;font-size:11px;color:var(--ink-soft)}.facade-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}svg.facade{width:100%;height:auto;display:block}.crit-marker{cursor:pointer}.crit-marker circle.ring{opacity:.28}.crit-marker:hover circle.core{stroke:var(--ink);stroke-width:1.5}.flight-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px;margin-bottom:16px}.flight-card h3{font-size:12px;margin:0 0 12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.fl-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line);font-size:12.5px}.fl-row:last-child{border:none}.fl-row span:first-child{color:var(--ink-soft)}.fl-row span:last-child{font-family:var(--font-mono);font-weight:500}.crit-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.crit-list h3{font-size:12px;margin:0;padding:14px 16px 0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.crit-item{padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.crit-item:last-child{border-bottom:none}.crit-item:hover{background:var(--surface-2)}.crit-item-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.crit-item-id{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.crit-item-type{font-weight:500;font-size:13px;margin-top:3px}.crit-item-note{font-size:12px;color:var(--ink-soft);margin-top:3px}.modal-backdrop{position:fixed;inset:0;background:rgba(9,15,24,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-backdrop.hidden{display:none}.modal{background:var(--surface);border-radius:var(--radius);max-width:440px;width:100%;padding:22px 24px;border:1px solid var(--line-strong)}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.modal-close{font-size:18px;color:var(--ink-faint);background:none;border:none;line-height:1;padding:2px}.modal-close:hover{color:var(--ink)}.modal h2{font-size:16px;margin:2px 0 4px}.modal-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);margin-bottom:14px}.modal-field{margin-bottom:10px}.modal-field label{display:block;font-size:10.5px;font-family:var(--font-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.modal-field div{font-size:13px}.report-page{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:760px;padding:48px 52px}.report-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--navy);padding-bottom:18px;margin-bottom:26px}.report-brand{font-weight:700;font-size:15px;letter-spacing:.04em}.report-brand span{display:block;font-weight:400;font-size:10.5px;letter-spacing:.02em;margin-top:2px}.report-brand span,.report-meta{font-family:var(--font-mono);color:var(--ink-faint)}.report-meta{text-align:right;font-size:11px}.report-h1{font-size:20px;margin:0 0 4px}.report-sub{color:var(--ink-soft);font-size:13px;margin-bottom:24px}.report-section{margin-bottom:26px}.report-section h4{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}.report-section p{font-size:13.5px;color:var(--ink);line-height:1.7}.report-table{width:100%;border-collapse:collapse;font-size:12.5px}.report-table th{text-align:left;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;color:var(--ink-faint);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line-strong)}.report-table td{padding:8px;border-bottom:1px solid var(--line)}.report-foot{margin-top:30px;padding-top:16px;border-top:1px solid var(--line);font-size:10.5px;color:var(--ink-faint);font-family:var(--font-mono)}@media (max-width:880px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;align-items:center;justify-content:space-between;padding:14px 18px}.nav,.sidebar{flex-direction:row}.nav{margin-top:0}.sidebar-foot{display:block;border:none;padding:0;margin:0;font-size:11px}.main{padding:20px}.building-head,.insp-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.brow{grid-template-columns:1fr;gap:6px}.brow-arrow{display:none}}