:root{--paper: #f7f5f0;--panel: #fffefb;--ink: #1c2430;--ink-soft: #46505e;--ink-mute: #6c7684;--rule: #e2ddd1;--rule-strong: #c9c2b2;--accent: #b5542d;--accent-ink: #8f3f20;--accent-wash: #f6e8e0;--ok: #3e6b4f;--ok-wash: #e7efe9;--warn: #8f6514;--warn-wash: #f6ecd8;--bad: #a33b2e;--bad-wash: #f7e4e0;--info-wash: #e8ecf2;--serif: "Fraunces", Georgia, serif;--sans: "Archivo", system-ui, sans-serif;--mono-nums: "tnum" 1, "lnum" 1;--radius: 4px;--maxw: 1180px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--serif);font-weight:560;margin:0;letter-spacing:-.01em}h1{font-size:31px;line-height:1.2}h2{font-size:24px;line-height:1.25}h3{font-size:19.5px}p{margin:0 0 .75em}a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:2px}button{font-family:inherit}::selection{background:#e9d7c4}.num{font-feature-settings:var(--mono-nums);font-variant-numeric:tabular-nums}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:18px;padding:0 20px;height:56px;flex-shrink:0;position:sticky;top:0;z-index:40}.topbar .wordmark{font-family:var(--serif);font-size:21px;font-weight:560;color:var(--paper);text-decoration:none;display:flex;align-items:center;gap:9px;letter-spacing:.01em}.topbar .wordmark svg{display:block}.topbar nav{display:flex;gap:2px;margin-left:10px}.topbar nav a{color:#c9cfd8;text-decoration:none;font-size:15.5px;font-weight:500;padding:7px 12px;border-radius:3px;letter-spacing:.01em}.topbar nav a:hover{color:var(--paper);background:#ffffff12}.topbar nav a.active{color:var(--paper);background:#ffffff1f}.topbar .spacer{flex:1}.topbar .tenant-chip{font-size:14.5px;color:#c9cfd8;border:1px solid #3a4452;padding:5px 11px;border-radius:3px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;cursor:pointer}.topbar .tenant-chip:hover{color:var(--paper);border-color:#566070}.main{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:28px 20px 80px}.main.narrow{max-width:760px}.sechead{display:flex;align-items:baseline;gap:10px;margin:26px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule-strong)}.sechead:first-child{margin-top:0}.sechead .label{font-size:13.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}.sechead .hint{font-size:14.5px;color:var(--ink-mute)}.sechead .right{margin-left:auto;font-size:14.5px;color:var(--ink-mute)}.panel{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}.panel.pad{padding:16px 18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:16px;font-weight:600;letter-spacing:.01em;border-radius:var(--radius);border:1px solid transparent;padding:9px 18px;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s;background:none;color:var(--ink)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn.secondary{border-color:var(--rule-strong);background:var(--panel)}.btn.secondary:hover{border-color:var(--ink-mute)}.btn.quiet{color:var(--ink-soft)}.btn.quiet:hover{background:#0000000b}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.lg{font-size:17.5px;padding:12px 24px}.btn.sm{font-size:14.5px;padding:5px 12px;font-weight:600}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.field>label{font-size:14.5px;font-weight:600;color:var(--ink-soft);letter-spacing:.02em}.field .sub{font-size:14px;color:var(--ink-mute)}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font-family:inherit;font-size:16.5px;color:var(--ink);background:var(--panel);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:9px 11px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-wash)}textarea{resize:vertical;min-height:100px;line-height:1.55}.describe-box textarea{min-height:180px;font-size:18px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:3px;white-space:nowrap}.badge.ok{background:var(--ok-wash);color:var(--ok)}.badge.warn{background:var(--warn-wash);color:var(--warn)}.badge.bad{background:var(--bad-wash);color:var(--bad)}.badge.info{background:var(--info-wash);color:#3c4c66}.badge.plain{background:#eee9dd;color:var(--ink-soft)}.badge.accent{background:var(--accent-wash);color:var(--accent-ink)}table.sw{width:100%;border-collapse:collapse;font-size:15.5px}table.sw th{text-align:left;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-mute);padding:9px 11px;border-bottom:1px solid var(--rule-strong)}table.sw td{padding:10px 11px;border-bottom:1px solid var(--rule);vertical-align:top}table.sw tr:last-child td{border-bottom:none}table.sw td.r,table.sw th.r{text-align:right;font-feature-settings:var(--mono-nums)}table.sw tbody tr:hover{background:#00000004}.figure-row{display:flex;gap:14px;flex-wrap:wrap}.figure{flex:1;min-width:180px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px}.figure .cap{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:4px}.figure .val{font-family:var(--serif);font-size:30px;font-weight:560;line-height:1.1;font-feature-settings:var(--mono-nums)}.figure .range{font-size:14.5px;color:var(--ink-mute);margin-top:3px;font-feature-settings:var(--mono-nums)}.figure.hero{border-left:3px solid var(--accent)}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--ink-mute);font-size:15px}.small{font-size:14.5px}.stack>*+*{margin-top:10px}.hr{border:none;border-top:1px solid var(--rule);margin:16px 0}.notice{border-radius:var(--radius);padding:12px 15px;font-size:15.5px;border:1px solid}.notice.warn{background:var(--warn-wash);border-color:#e3cf9d;color:#6e4e10}.notice.bad{background:var(--bad-wash);border-color:#e3b3aa;color:#7e2d22}.notice.ok{background:var(--ok-wash);border-color:#bdd3c4;color:#2e5240}.notice.info{background:var(--info-wash);border-color:#c3cdda;color:#30415c}.empty{text-align:center;padding:56px 20px;color:var(--ink-mute);border:1px dashed var(--rule-strong);border-radius:var(--radius);font-size:16px}.empty h3{color:var(--ink-soft);margin-bottom:6px}.spin{width:19px;height:19px;border-radius:50%;border:2px solid var(--rule-strong);border-top-color:var(--accent);animation:swspin .8s linear infinite;display:inline-block;vertical-align:-3px}@keyframes swspin{to{transform:rotate(360deg)}}.loading-block{display:flex;align-items:center;gap:10px;color:var(--ink-mute);padding:40px 0;justify-content:center;font-size:16px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.photo-cell{position:relative;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:#eceade;aspect-ratio:4/3}.photo-cell img{width:100%;height:100%;object-fit:cover;display:block}.photo-cell .tag{position:absolute;left:5px;bottom:5px}.photo-cell .dup{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c24308c;color:#fff;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;font-size:14px;text-align:center;padding:6px}.dialog-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c243066;z-index:90;display:flex;align-items:flex-start;justify-content:center;padding:7vh 16px;overflow:auto}.dialog{background:var(--panel);border-radius:6px;border:1px solid var(--rule-strong);box-shadow:0 18px 50px #141a2440;width:100%;max-width:640px;padding:24px 26px}.q-item{border:1px solid var(--rule);border-left:3px solid var(--warn);border-radius:var(--radius);background:var(--panel);padding:13px 15px}.q-item .impact-high{border-left-color:var(--bad)}.proposal-doc{background:#fff;border:1px solid var(--rule);max-width:820px;margin:0 auto;padding:48px 56px}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.main{padding:0;max-width:none}.proposal-doc{border:none;padding:0}}@media (max-width: 720px){.main{padding:18px 12px 120px}.topbar{padding:0 12px;gap:8px}.topbar nav{display:none}.figure .val{font-size:25px}.mobile-bar{position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--panel);border-top:1px solid var(--rule-strong);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px}.mobile-bar .btn{flex:1}.proposal-doc{padding:24px 18px}}@media (min-width: 721px){.mobile-bar,.mobile-only{display:none}}