/* StrataSnap — desktop council dashboard. Consumes the StrataSnap Design
   System tokens from app.css (no local token overrides, no raw hex). */
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
iconify-icon{display:inline-flex;flex:0 0 auto;vertical-align:-0.15em;line-height:1}
html,body{margin:0;height:100%}
body{font-family:var(--font-sans);color:var(--ink-700);background:var(--raise)}
#root{height:100vh}

/* ── login ──────────────────────────────────────────────────── */
.d-login2{height:100vh;display:flex;overflow:hidden}
.dl-left{flex:1 1 50%;position:relative;display:flex;align-items:flex-start;padding:64px;overflow:hidden;
  background:linear-gradient(155deg,var(--acc-strong) 0%,var(--acc) 42%,var(--acc) 100%)}
.dl-skyline{position:absolute;left:0;right:0;bottom:0;height:55%;opacity:.7}
.dl-skyline svg{width:100%;height:100%;display:block}
.dl-illus{position:absolute;right:-2%;bottom:0;width:var(--dl-illus-w,86%);max-width:760px;height:auto;
  opacity:.96;pointer-events:none;z-index:0;mix-blend-mode:screen}
.dl-deco{position:absolute;left:64px;bottom:48px;width:160px;height:104px;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.30) 1.4px, transparent 1.6px);background-size:17px 17px;
  -webkit-mask-image:linear-gradient(140deg,#000,transparent 72%);mask-image:linear-gradient(140deg,#000,transparent 72%)}
.dl-deco::after{content:"";position:absolute;left:-2px;bottom:-12px;width:38px;height:38px;border-left:2px solid rgba(255,255,255,.42);border-bottom:2px solid rgba(255,255,255,.42)}
.dl-left-in{position:relative;z-index:1;max-width:480px}
.dl-eyebrow{display:inline-block;padding:7px 14px;margin:var(--dl-hero-gap,36px) 0 0;border:1px solid rgba(255,255,255,.34);border-radius:var(--r-pill);
  font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.86)}
[data-eyebrow="off"] .dl-eyebrow{display:none}
.dl-left-in h1{font-family:var(--font-display);font-size:48px;font-weight:700;letter-spacing:-.028em;line-height:1.06;color:var(--white);margin:var(--dl-hero-gap,36px) 0 0}
.dl-left-in p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.85);margin:calc(var(--dl-hero-gap,36px) * .55) 0 0}
.dl-trust{display:inline-flex;align-items:center;gap:11px;margin-top:var(--dl-hero-gap,36px);font-size:13.5px;color:rgba(255,255,255,.82)}
.dl-trust-ic{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);display:inline-flex;align-items:center;justify-content:center;color:var(--white);flex:0 0 auto}
.dl-right{flex:1 1 50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--ink-50);padding:40px}
.dl-card{width:100%;max-width:430px;background:var(--page);border:1px solid var(--line2);border-radius:var(--r-lg);padding:38px 36px;box-shadow:var(--shadow-login-card)}
.dl-card h2{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.018em;color:var(--ink-900);margin:0}
.dl-cardsub{font-size:15px;color:var(--ink-500);margin:8px 0 0}
.dl-field{display:flex;align-items:center;gap:11px;height:50px;padding:0 14px;border:1px solid var(--line2);border-radius:var(--r-sm);margin-bottom:14px;color:var(--ink-400)}
.dl-field:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-tint)}
.dl-field input{flex:1 1 auto;border:0;outline:none;background:transparent;font-family:inherit;font-size:15px;color:var(--ink-900)}
.dl-eye{background:none;border:0;color:var(--ink-400);cursor:pointer;padding:4px;flex:0 0 auto}
.dl-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--ink-400);font-family:var(--font-mono);font-size:11px;letter-spacing:.16em}
.dl-or::before,.dl-or::after{content:"";flex:1 1 auto;height:1px;background:var(--line2)}
.dl-google{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;height:50px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);font-family:inherit;font-size:15px;font-weight:600;color:var(--ink-800);cursor:pointer}
.dl-links{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:22px}
.dl-links .linkbtn{font-size:14px;font-weight:600}
.dl-foot{font-size:12.5px;color:var(--ink-400);margin-top:18px;text-align:center}
.dl-foot b{color:var(--ink-600)}
.dl-notice{margin-top:12px;border:1px solid var(--acc-tint-border);border-radius:var(--r-xs);background:var(--acc-tint);color:var(--acc-text);padding:10px 12px;font-size:13px;line-height:1.35;font-weight:600}
.ms-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.dl-resident{background:none;border:0;cursor:pointer;font-family:inherit;font-size:13px;color:var(--ink-500);margin-top:20px;white-space:nowrap}
.dl-resident span{color:var(--acc-text);font-weight:600}
.linkbtn{background:none;border:0;padding:0;font-family:inherit;color:var(--acc-text);font-weight:600;cursor:pointer}
.si-div{width:1px;height:15px;background:var(--line2);display:inline-block}
.d-login h1{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--ink-900);margin:0;letter-spacing:-.01em}
.d-login p{font-size:15px;line-height:1.5;color:var(--ink-500);margin:8px 0 0}
.d-login .lead{font-size:15px;line-height:1.5;color:var(--ink-500);margin:8px 0 26px}

.lbl-sm{display:block;font-size:13px;font-weight:600;color:var(--ink-700);margin:22px 0 8px}
.d-inp{width:100%;background:var(--page);border:1px solid var(--line2);border-radius:var(--r-sm);padding:13px 14px;
  font-family:inherit;font-size:15px;color:var(--ink-900);outline:none}
.d-inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-tint)}
.d-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:var(--r-sm);
  border:0;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;white-space:nowrap;transition:filter .15s,box-shadow .15s,border-color .15s,background .15s}
.d-btn:active{filter:brightness(.96)}
.d-btn.acc{background:var(--acc);color:var(--white)}.d-btn.dark{background:var(--ink-900);color:var(--white)}
.d-btn.out{background:var(--page);color:var(--ink-800);border:1px solid var(--line2)}
.d-btn.ghost{background:transparent;color:var(--ink-600)}
.d-btn.full{width:100%}.d-btn.sm{height:38px;font-size:14px;padding:0 14px;border-radius:var(--r-xs)}
.d-btn:disabled{opacity:.5;cursor:not-allowed}
.d-btn:focus-visible,.d-navitem:focus-visible,.d-segbtn:focus-visible,.d-tab:focus-visible,
.d-opt:focus-visible,.d-prow:focus-visible,.ds-task-list button:focus-visible,
.ds-location:focus-visible,.ds-theme-choice:focus-visible,.ds-print-option:focus-visible,.dl-google:focus-visible,
.linkbtn:focus-visible,.dl-resident:focus-visible,.d-user .out:focus-visible{
  outline:0;box-shadow:var(--focus) !important
}

/* ── app shell ──────────────────────────────────────────────── */
.d-app{display:flex;height:100vh;overflow:hidden}
.d-app-setup-focus{display:block;background:var(--raise)}
.d-app-setup-focus .ds-setup{height:100vh;min-height:100vh}
.d-app-setup-focus .ds-setup-scroll{grid-template-columns:minmax(230px,280px) minmax(0,880px);justify-content:center}
.d-app-setup-focus .d-topbar{padding-left:max(26px,calc((100vw - 1210px)/2 + 26px));padding-right:max(26px,calc((100vw - 1210px)/2 + 26px))}
.d-app-setup-focus .ds-card{padding-bottom:92px}
.d-app-setup-focus .ds-step-footer{position:sticky;bottom:0;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 -12px 28px -24px rgba(10,27,63,.35)}
.d-side{width:248px;flex:0 0 auto;background:var(--ground-900);color:var(--ink-200);display:flex;flex-direction:column;padding:20px 14px}
.d-side .brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}
.d-side .bldg{font-size:12px;color:var(--ink-400);padding:0 8px 14px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px;line-height:1.35}
.d-side .bldg b{display:block;color:var(--ink-100);font-size:13px;font-weight:700;margin-bottom:3px}
.d-side .bldg span{display:block}
.api-mode-badge{display:inline-flex;align-items:center;min-height:24px;margin-top:9px;padding:0 9px;border-radius:var(--r-pill);background:rgba(155,192,255,.16);border:1px solid rgba(155,192,255,.28);color:var(--acc-light);font-family:var(--font-mono);font-size:10.5px;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.d-nav{display:flex;flex-direction:column;gap:2px}
.d-navitem{display:flex;align-items:center;gap:11px;padding:10px 10px;border-radius:var(--r-xs);cursor:pointer;color:var(--ink-300);
  font-size:14px;font-weight:500;background:transparent;border:0;font-family:inherit;width:100%;text-align:left;white-space:nowrap}
.d-navitem:hover{background:rgba(255,255,255,.05);color:var(--ink-100)}
.d-navitem.on{background:rgba(255,255,255,.09);color:var(--white)}
.d-navitem .ct{margin-left:auto;font-size:12px;color:var(--ink-400);font-variant-numeric:tabular-nums}
.d-navitem.on .ct{color:var(--ink-200)}
.ss-nav-ic{width:28px;height:28px;margin:-5px -2px -5px -4px;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--acc-light);background:rgba(155,192,255,.10);border:1px solid rgba(155,192,255,.18)}
.d-navitem.on .ss-nav-ic{color:var(--white);background:rgba(155,192,255,.18);border-color:rgba(155,192,255,.28)}
.d-side .views-h{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);padding:18px 10px 8px}
.d-side .spacer{flex:1 1 auto}
.d-user{display:flex;align-items:center;gap:10px;padding:10px;border-top:1px solid rgba(255,255,255,.08)}
.d-user .nm{font-size:13px;color:var(--ink-100);font-weight:600;line-height:1.2}
.d-user .rl{font-size:11px;color:var(--ink-400)}
.d-user .av{width:30px;height:30px;border-radius:50%;background:var(--acc);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.d-user .out{margin-left:auto;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--ink-400);cursor:pointer;padding:0;border-radius:var(--r-xs)}
.d-user .out:hover{color:var(--ink-100);background:rgba(255,255,255,.06)}

.d-main{flex:1 1 auto;display:flex;min-width:0}
.d-list{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;background:var(--raise)}
.d-topbar{position:relative;display:flex;align-items:center;gap:16px;padding:18px 26px;border-bottom:1px solid var(--line2);background:var(--page)}
.d-topbar::after{content:"";position:absolute;top:14px;right:14px;width:13px;height:13px;border-top:2px solid var(--acc);border-right:2px solid var(--acc);opacity:.85}
.d-topbar h2{font-family:var(--font-display);font-size:23px;font-weight:600;color:var(--ink-900);margin:0;letter-spacing:-.01em}
.d-topbar .sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400);margin-top:5px}
.d-search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--raise);border:1px solid var(--line2);
  border-radius:var(--r-sm);padding:8px 12px;color:var(--ink-400);min-width:220px}
.d-search input{border:0;background:transparent;outline:none;font-family:inherit;font-size:14px;color:var(--ink-800);width:100%}
.d-strip{display:flex;gap:12px;padding:18px 26px 6px;background:var(--page)}
.d-stat{position:relative;flex:0 0 auto;min-width:104px;background:var(--page);border:1px solid var(--line2);border-radius:var(--r-sm);padding:13px 16px 12px;overflow:hidden}
.d-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink-200)}
.d-stat:nth-child(1)::before{background:var(--st-blue)}
.d-stat:nth-child(2)::before{background:var(--st-amber)}
.d-stat:nth-child(3)::before{background:var(--st-violet)}
.d-stat:nth-child(4)::before{background:var(--st-green)}
.d-stat.warn::before{background:var(--st-urgent)}
.d-stat b{display:block;font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--ink-900);line-height:1;font-variant-numeric:tabular-nums}
.d-stat span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);margin-top:6px;display:block}
.d-stat.warn b{color:var(--st-urgent)}
.d-tabs{display:flex;gap:8px;padding:14px 26px;background:var(--page);border-bottom:1px solid var(--line2)}

/* segmented view toggle */
.d-segwrap{padding:14px 26px;background:var(--page);border-bottom:1px solid var(--line2)}
.d-seg{display:inline-flex;background:var(--raise);border:1px solid var(--line2);border-radius:var(--r-sm);padding:3px;gap:2px}
.d-segbtn{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 16px;border:0;background:transparent;
  border-radius:var(--r-xs);font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink-500);cursor:pointer;transition:color .15s,background .15s;white-space:nowrap}
.d-segbtn:hover{color:var(--ink-800)}
.d-segbtn.on{background:var(--acc);color:var(--white);box-shadow:var(--shadow-accent-active)}
.d-segbtn.on iconify-icon,.d-segbtn.on svg{color:var(--white)}
.d-segbtn svg{color:currentColor}
.d-seg.sm .d-segbtn{min-height:38px;padding:0 14px;font-size:13px}
.map-modes{display:flex;justify-content:center;margin-bottom:16px}
.floormap.tall{aspect-ratio:3/4;max-width:520px}

/* drill-in filter chip in list tabs */
.d-tab.drill{display:inline-flex;align-items:center;gap:6px;background:var(--acc-tint);color:var(--acc-text);border-color:var(--acc-tint-border)}

/* By location — ranked rows */
.d-rollup{padding:18px 26px 30px;max-width:680px}
.rollup-row{display:flex;align-items:center;gap:15px;width:100%;min-height:54px;padding:12px 16px;margin-bottom:9px;
  background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s,transform .12s}
.rollup-row:hover{border-color:var(--ink-300);transform:translateX(2px)}
.rollup-name{flex:0 0 172px;font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink-900);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rollup-bar{flex:1 1 auto;height:10px;background:var(--raise);border-radius:var(--r-pill);overflow:hidden}
.rollup-fill{display:block;height:100%;border-radius:var(--r-pill)}
.rollup-count{flex:0 0 auto;font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink-900);min-width:24px;text-align:right;font-variant-numeric:tabular-nums}

/* By floor — vertical stacked bands (Roof → Ground → P1 → P2) */
.d-floors{padding:18px 26px 30px;max-width:680px}
.floors-stack{display:flex;flex-direction:column;gap:8px}
.floor-band{position:relative;display:flex;align-items:center;gap:15px;width:100%;min-height:66px;padding:0 18px;overflow:hidden;
  background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s,transform .12s}
.floor-band:hover:not(:disabled){border-color:var(--ink-300);transform:translateX(2px)}
.floor-band:disabled{cursor:default}
.floor-fill{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-md) 0 0 13px;opacity:.16}
.floor-fill.none{opacity:0}
.floor-code{position:relative;z-index:1;flex:0 0 auto;width:40px;height:40px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--ink-500);background:var(--raise);border:1px solid var(--line2)}
.floor-code.tone-green{color:var(--st-green);background:var(--st-green-bg);border-color:transparent}
.floor-code.tone-amber{color:var(--st-amber);background:var(--st-amber-bg);border-color:transparent}
.floor-code.tone-red{color:var(--st-urgent);background:var(--st-urgent-bg);border-color:transparent}
.floor-name{position:relative;z-index:1;flex:1 1 auto;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--ink-900);letter-spacing:-.01em}
.floor-meta{position:relative;z-index:1;display:flex;align-items:center;gap:10px;flex:0 0 auto}
.floor-count{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--ink-700);letter-spacing:.02em}
.floor-zero{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400)}

/* ── floor map ──────────────────────────────────────────────── */
.d-mapscroll{padding:22px 26px 30px}
.floormap{position:relative;width:100%;max-width:760px;margin:0 auto;aspect-ratio:104/80;
  border:1px solid var(--line2);border-radius:var(--r-md);overflow:hidden;background:#F7FAFF;
  background-image:linear-gradient(rgba(30,80,200,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(30,80,200,.055) 1px,transparent 1px);
  background-size:6.2% 6%;box-shadow:0 18px 42px -28px rgba(26,69,174,.35)}
.floormap.section-map{max-width:620px;aspect-ratio:4/3}
.floormap.uploaded{background:var(--white);background-image:none}
.floor-uploaded-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--white)}
.map-source-pill{position:absolute;left:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;border:1px solid var(--line2);border-radius:var(--r-pill);background:rgba(255,255,255,.92);color:var(--acc-text);font-size:12.5px;font-weight:700;box-shadow:0 10px 24px -18px rgba(10,27,63,.35)}
.floor-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.floor-svg .fp-grid line{stroke:rgba(30,80,200,.085);stroke-width:0.18}
.floor-svg .fp-wall-o{fill:rgba(234,240,252,.68);stroke:#7F9ED8;stroke-width:0.72}
.floor-svg .fp-wall-i{fill:rgba(255,255,255,.96);stroke:#9BB3E1;stroke-width:0.38}
.floor-svg .fp-stroke{fill:none;stroke:#6D86B7;stroke-width:0.34}
.floor-svg .fp-stroke .fp-balcony{stroke:#9BB3E1;stroke-dasharray:1 0.8}
.floor-svg .fp-balcony{fill:none;stroke:#9BB3E1;stroke-width:0.28;stroke-dasharray:1 0.8}
.floor-svg .fp-core{fill:rgba(30,80,200,.08);stroke:#7F9ED8}
.floor-svg .fp-door{fill:none;stroke:#819BCB;stroke-width:0.27}
.floor-svg .fp-hatch line{stroke:#91A9D6;stroke-width:0.22}
.floor-svg .fp-grid-ref line{stroke:#91A9D6;stroke-width:0.24}
.floor-svg .fp-grid-ref line.dim{stroke:#6D86B7;stroke-width:0.3}
.floor-svg .fp-grid-ref line.dim-tick{stroke:#6D86B7;stroke-width:0.3}
.floor-svg .fp-grid-ref circle{fill:#F7FAFF;stroke:#6D86B7;stroke-width:0.35}
.floor-svg .fp-grid-ref text{font-family:var(--font-mono);font-size:2.2px;font-weight:700;fill:#2B477A}
.floor-svg .fp-dim{font-family:var(--font-mono);font-size:1.55px;letter-spacing:.02em;fill:#526C9D}
.floor-svg .fp-label{font-family:var(--font-mono);font-size:2.2px;font-weight:700;fill:#1B2E54;letter-spacing:.02em}
.floor-svg .fp-area{font-family:var(--font-mono);font-size:1.5px;font-weight:500;fill:#6178A8}
.floor-svg .fp-cp{font-family:var(--font-mono);font-size:1.6px;letter-spacing:.08em;fill:#526C9D}
.floor-svg .fp-north circle{fill:rgba(255,255,255,.78);stroke:#526C9D;stroke-width:0.35}
.floor-svg .fp-north path{fill:none;stroke:#526C9D;stroke-width:0.35}
.floor-svg .fp-north .fp-north-fill{fill:#0A1B3F;stroke:none}
.floor-svg .fp-north text{font-family:var(--font-mono);font-size:2.2px;font-weight:800;fill:#1B2E54}
.floor-svg .fp-titleblock rect{fill:rgba(255,255,255,.85);stroke:#7F9ED8;stroke-width:0.32}
.floor-svg .fp-titleblock line{stroke:#9BB3E1;stroke-width:0.26}
.floor-svg .fp-titleblock .tb-k{font-family:var(--font-mono);font-size:1.5px;letter-spacing:.1em;fill:#6178A8}
.floor-svg .fp-titleblock .tb-v{font-family:var(--font-mono);font-size:1.9px;font-weight:800;fill:#1B2E54}
.floor-svg .fp-title{font-family:var(--font-mono);font-size:2.1px;font-weight:800;letter-spacing:.16em;fill:#1B2E54}
.floor-svg .fp-scaletag{font-family:var(--font-mono);font-size:1.7px;letter-spacing:.12em;fill:#6178A8}
.map-pin-wrap{position:absolute;transform:translate(-50%,-50%);z-index:2}
.map-pin{min-width:44px;height:44px;border-radius:50%;border:3px solid rgba(255,255,255,.96);cursor:pointer;
  font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--white);display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 18px -8px rgba(10,27,63,.42),0 0 0 1px rgba(10,27,63,.08);transition:transform .14s}
.map-pin:hover{transform:scale(1.1)}
.tone-green{background:var(--st-green)} .tone-amber{background:var(--st-amber)} .tone-red{background:var(--st-urgent)}
.map-pin.tone-green{background:var(--st-green)} .map-pin.tone-amber{background:var(--st-amber)} .map-pin.tone-red{background:var(--st-urgent)}
.map-pop{position:absolute;transform:translate(-50%,calc(-50% - 64px));z-index:5;width:260px;
  background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:0 16px 40px -12px rgba(20,18,14,.4);overflow:hidden}
.map-pop-head{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.mp-name{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink-900);line-height:1.2}
.mp-floor{font-size:12px;color:var(--ink-500);margin-top:3px}
.mp-x{margin-left:auto;background:transparent;border:0;color:var(--ink-400);cursor:pointer;padding:3px;border-radius:var(--r-xs);flex:0 0 auto}
.mp-x:hover{background:var(--raise);color:var(--ink-800)}
.map-pop-list{max-height:200px;overflow-y:auto}
.mp-row{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:9px 14px;border:0;border-top:1px solid var(--line);
  background:transparent;font-family:inherit;text-align:left;cursor:pointer}
.mp-row:first-child{border-top:0}
.mp-row:hover{background:var(--raise)}
.mp-id{font-family:var(--font-mono);font-size:11px;color:var(--ink-400);flex:0 0 auto}
.mp-sum{flex:1 1 auto;min-width:0;font-size:13px;font-weight:500;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-legend{display:flex;align-items:center;gap:18px;max-width:680px;margin:14px auto 0;flex-wrap:wrap}
.ml-title{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-400)}
.ml-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-600)}
.ml-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}
.d-tab{border:1px solid var(--line2);background:var(--page);cursor:pointer;min-height:38px;padding:0 14px;border-radius:var(--r-pill);
  font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink-500);display:inline-flex;align-items:center;justify-content:center}
.d-tab.on{background:var(--acc);color:var(--white);border-color:var(--acc)}

.d-scroll{flex:1 1 auto;min-width:0;overflow:auto}
.d-table{width:100%;min-width:920px;border-collapse:collapse}
.d-table thead th{position:sticky;top:0;background:var(--raise);z-index:1;text-align:left;font-size:11px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);padding:12px 16px;border-bottom:1px solid var(--line2)}
.d-table td{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-700);vertical-align:middle}
.d-table tbody tr{cursor:pointer}
.d-table tbody tr:hover{background:var(--page)}
.d-table tbody tr.sel{background:var(--acc-tint)}
.d-table tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--acc)}
.d-table .id{font-family:var(--font-mono);font-size:12px;color:var(--ink-400);white-space:nowrap}
.d-table .sm-sum{font-weight:600;color:var(--ink-900);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.sum-cell{display:inline-flex;align-items:center;gap:11px;min-width:0}
.row-thumb{width:34px;height:34px;border-radius:var(--r-xs);object-fit:cover;flex:0 0 auto;background:var(--raise)}
.row-thumb.ph{display:flex;align-items:center;justify-content:center;color:var(--acc);border:1px solid var(--line2)}
.d-photos{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.d-photos img{width:118px;height:90px;border-radius:var(--r-sm);object-fit:cover;border:1px solid var(--line2);background:var(--raise)}
.d-photo-ph{width:118px;height:90px;border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--raise);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink-400);font-size:11.5px;font-weight:600}
.d-voice-list{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.d-voice-item{display:flex;align-items:center;gap:10px;min-height:48px;padding:9px 11px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--raise);font-size:13px;color:var(--ink-700)}
.d-voice-item svg{color:var(--acc);flex:0 0 auto}
.d-voice-item span{flex:1 1 auto;min-width:0}
.d-voice-item audio{height:32px;max-width:170px;flex:0 1 auto}
.d-table .muted{color:var(--ink-500);white-space:nowrap}
.d-table .av{width:24px;height:24px;border-radius:50%;background:var(--raise);border:1px solid var(--line2);font-size:10px;font-weight:600;color:var(--ink-600);display:inline-flex;align-items:center;justify-content:center}
@media (max-width:1120px){
  .d-table{min-width:0}
  .d-table th:nth-child(6),.d-table td:nth-child(6),
  .d-table th:nth-child(7),.d-table td:nth-child(7){display:none}
  .d-app-setup-focus .ds-setup-scroll{grid-template-columns:minmax(220px,250px) minmax(0,1fr)}
}
.d-empty{text-align:center;color:var(--ink-400);padding:60px 0;font-size:15px}

/* ── poster network ─────────────────────────────────────────── */
.poster-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px 26px 6px;background:var(--page)}
.poster-toolbar-card{display:flex;align-items:center;gap:10px;min-height:56px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);padding:12px 14px;color:var(--acc)}
.poster-toolbar-card b{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink-900);line-height:1}
.poster-toolbar-card span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-500);line-height:1.25}
.poster-network{padding:20px 26px 30px}
.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(286px,1fr));gap:18px}
.poster-card{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.poster-card-top{display:flex;align-items:center;gap:11px}
.poster-card-ic{width:38px;height:38px;border-radius:var(--r-sm);background:var(--acc-tint);border:1px solid var(--acc-tint-border);color:var(--acc);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.poster-loc-name{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink-900);line-height:1.15;letter-spacing:-.01em}
.poster-loc-meta{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400);margin-top:4px}
.poster-open{margin-left:auto;border-radius:var(--r-pill);padding:5px 9px;color:var(--white);font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.poster-preview{border:1px solid var(--line2);border-radius:var(--r-sm);background:linear-gradient(180deg,var(--white),var(--ink-50));padding:16px;text-align:center}
.poster-mini-eyebrow{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-400)}
.poster-mini-title{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--ink-900);line-height:1.05;margin:7px 0 11px}
.poster-mini-qr{display:inline-block;padding:10px;border:1px solid var(--line2);border-radius:var(--r-xs);background:var(--white)}
.poster-mini-loc{display:inline-flex;align-items:center;gap:6px;margin-top:12px;background:var(--acc-tint);color:var(--acc-text);border:1px solid var(--acc-tint-border);border-radius:var(--r-pill);padding:6px 11px;font-size:12.5px;font-weight:600;max-width:100%}
.poster-meta{display:grid;gap:8px}
.poster-meta div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:8px}
.poster-meta span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400);white-space:nowrap}
.poster-meta b{font-size:13px;font-weight:600;color:var(--ink-700);text-align:right;line-height:1.25}
.poster-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:auto}

@media print{
  @page{size:letter;margin:.45in}
  html,body,#root{height:auto;background:#fff !important}
  body{color:#111 !important}
  .d-side,.d-topbar,.poster-toolbar,.poster-actions,.poster-open,.d-toast,.tweaks-panel{display:none !important}
  .d-app,.d-list,.d-scroll,.poster-network{display:block !important;height:auto !important;overflow:visible !important;background:#fff !important;padding:0 !important}
  .poster-grid{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.35in !important}
  .poster-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #111 !important;border-radius:0 !important;background:#fff !important;box-shadow:none !important;padding:.24in !important;gap:.12in !important;min-height:4.6in}
  .poster-card-top{padding-bottom:.08in;border-bottom:1px solid #ddd}
  .poster-card-ic{display:none}
  .poster-loc-name{font-size:16pt !important;color:#111 !important}
  .poster-loc-meta,.poster-mini-eyebrow,.poster-meta span{color:#555 !important}
  .poster-preview{border:0 !important;background:#fff !important;padding:.08in 0 !important}
  .poster-mini-title{font-size:24pt !important;color:#111 !important;margin:.08in 0 .14in !important}
  .poster-mini-qr{border:1px solid #222 !important;border-radius:0 !important;padding:.12in !important;background:#fff !important}
  .poster-mini-qr svg{width:1.95in !important;height:1.95in !important}
  .poster-mini-loc{border:1px solid #222 !important;border-radius:999px !important;background:#fff !important;color:#111 !important}
  .poster-meta div{border-top:1px solid #ddd !important}
  .poster-meta b{color:#111 !important}
}

/* ── usage report ───────────────────────────────────────────── */
.usage-page{background:var(--raise)}
.usage-scroll{padding:24px 26px 30px;max-width:1120px}
.usage-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.84fr);gap:22px;align-items:center;background:linear-gradient(180deg,var(--page),var(--surface-blue-soft));border:1px solid var(--line2);border-radius:var(--r-md);padding:18px 20px;margin-bottom:22px}
.usage-hero h3{font-family:var(--font-display);font-size:25px;font-weight:750;color:var(--ink-900);letter-spacing:-.02em;margin:0}
.usage-hero p{font-size:13.5px;line-height:1.45;color:var(--ink-500);margin:6px 0 0;max-width:62ch}
.usage-hero-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.usage-hero-grid span,.usage-metrics div{display:grid;gap:4px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);padding:13px 14px;min-width:0}
.usage-hero-grid b,.usage-metrics b{font-family:var(--font-display);font-size:24px;font-weight:750;line-height:1;color:var(--ink-900);font-variant-numeric:tabular-nums}
.usage-hero-grid small,.usage-metrics span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-500);line-height:1.25}
.usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:22px;align-items:start}
.usage-panel{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);overflow:hidden}
.usage-wide{margin-bottom:22px}
.usage-panel-head{display:flex;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--line);background:var(--ink-50)}
.usage-panel-head>svg{width:38px;height:38px;padding:9px;border-radius:var(--r-sm);background:var(--acc-tint);border:1px solid var(--acc-tint-border);color:var(--acc);box-sizing:border-box;flex:0 0 auto}
.usage-panel-head h3{font-family:var(--font-display);font-size:18px;font-weight:750;letter-spacing:-.01em;color:var(--ink-900);margin:0}
.usage-panel-head p{font-size:12.5px;line-height:1.35;color:var(--ink-500);margin:3px 0 0}
.usage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px}
.usage-list{display:grid;gap:0;border-top:1px solid var(--line)}
.usage-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:10px 16px;border-top:1px solid var(--line)}
.usage-list div:first-child{border-top:0}
.usage-list span{font-size:13px;color:var(--ink-500);line-height:1.25}
.usage-list b{font-size:13px;font-weight:750;color:var(--ink-900);text-align:right;white-space:nowrap}
.usage-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-height:30px;border-radius:var(--r-pill);padding:0 11px;background:var(--st-amber-bg);border:1px solid var(--st-amber-line);color:var(--st-amber);font-size:12px;font-weight:750;white-space:nowrap}
.usage-badge.ready{background:var(--st-green-bg);border-color:var(--st-green-line);color:var(--st-green)}
.usage-location-table{display:grid}
.usage-location-head,.usage-location-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(110px,.7fr) minmax(70px,.45fr) minmax(70px,.45fr) minmax(90px,.5fr);align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line)}
.usage-location-head{background:var(--page);font-family:var(--font-mono);font-size:10.5px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400)}
.usage-location-row{min-height:58px;font-size:13px;color:var(--ink-700)}
.usage-location-row b{display:block;font-size:14px;font-weight:750;color:var(--ink-900);line-height:1.2}
.usage-location-row small{display:block;font-size:12px;color:var(--ink-500);margin-top:3px}
.usage-location-row>span:not(:first-child){font-family:var(--font-mono);font-size:12px;color:var(--ink-600)}
.usage-location-row>span.ready{color:var(--st-green);font-weight:750}

@media (max-width:1120px){
  .usage-scroll{max-width:none}
  .usage-hero,.usage-grid{grid-template-columns:1fr}
  .usage-hero-grid,.usage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .usage-location-head,.usage-location-row{grid-template-columns:minmax(180px,1fr) minmax(90px,.6fr) minmax(58px,.35fr) minmax(58px,.35fr) minmax(78px,.45fr)}
}

@media (max-width:760px){
  .usage-scroll{padding:18px}
  .usage-hero-grid,.usage-metrics{grid-template-columns:1fr}
  .usage-location-table{overflow:auto}
  .usage-location-head,.usage-location-row{min-width:680px}
}

/* ── detail panel ───────────────────────────────────────────── */
.d-detail{width:460px;flex:0 0 auto;border-left:1px solid var(--line2);background:var(--page);display:flex;flex-direction:column;overflow:hidden}
.d-detail .dh{padding:20px 24px;border-bottom:1px solid var(--line)}
.d-detail .dh .top{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.d-detail .dh .id{font-family:var(--font-mono);font-size:12px;color:var(--ink-400)}
.d-detail .dh .x{margin-left:auto;width:36px;height:36px;background:transparent;border:0;color:var(--ink-400);cursor:pointer;padding:0;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center}
.d-detail .dh .x:hover{background:var(--raise);color:var(--ink-800)}
.d-detail .dh .sum{font-family:var(--font-display);font-size:23px;font-weight:600;color:var(--ink-900);line-height:1.12;letter-spacing:-.015em;margin:0 0 12px}
.d-detail .dbody{flex:1 1 auto;overflow-y:auto;padding:20px 24px}
.d-secl{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-400);margin:18px 0 10px}
.d-secl:first-child{margin-top:0}
.facts{display:flex;flex-wrap:wrap;gap:7px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:12.5px;font-weight:500;color:var(--ink-600);background:var(--raise);border:1px solid var(--line2);border-radius:var(--r-xs);padding:0 10px;white-space:nowrap}
.chip svg{color:var(--ink-400)}

.lane-row{display:flex;gap:10px}
.lane-row .lane-btn{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:13px 14px;border-radius:var(--r-sm);cursor:pointer;text-align:left;font-family:inherit;transition:filter .14s}
.lane-row .lane-btn:active{filter:brightness(.97)}
.lane-row .lane-btn .tt{font-size:14px;font-weight:600;display:flex;align-items:center;gap:7px;white-space:nowrap}
.lane-row .lane-btn .ds{font-size:11.5px;line-height:1.3;display:block;width:100%}
.lane-btn.pub{background:var(--acc-tint);border:1px solid var(--acc-tint-border)}
.case-summary{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--acc-tint-border);background:var(--acc-tint);border-radius:var(--r-sm);margin-bottom:18px}
.case-summary-ic{width:40px;height:40px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;background:var(--page);color:var(--acc);border:1px solid var(--acc-tint-border);flex:0 0 auto}
.case-summary-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--acc-text);font-weight:600}
.case-summary-v{font-size:14px;color:var(--ink-700);line-height:1.35;margin-top:3px}
.lane-btn.pub .tt{color:var(--acc-text)}.lane-btn.pub .ds{color:var(--acc-text);opacity:.8}
.lane-btn.priv{background:var(--page);border:1px solid var(--line2)}
.lane-btn.priv .tt{color:var(--ink-800)}.lane-btn.priv .ds{color:var(--ink-500)}
.lane-btn.pub .tt svg,.lane-btn.priv .tt svg{flex:0 0 auto}

.d-prow{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line-muted);border-radius:var(--r-sm);margin-bottom:8px;cursor:pointer;background:var(--page);width:100%;font-family:inherit;text-align:left}
.d-prow:hover{border-color:var(--acc-tint-border);background:var(--raise)}
.d-prow:focus-visible{outline:3px solid var(--acc-tint-border);outline-offset:1px}
.d-prow:hover{background:var(--raise)}
.d-prow .k{font-size:13px;color:var(--ink-500);width:96px;flex:0 0 auto}
.d-prow .v{font-size:14px;color:var(--ink-900);font-weight:500;flex:1 1 auto;display:flex;align-items:center;gap:7px;white-space:nowrap}
.d-prow .chev{color:var(--ink-300)}
.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.kv:first-of-type{border-top:0}.kv .k{color:var(--ink-500)}.kv .v{color:var(--ink-900);font-weight:500;text-align:right}

/* timeline (desktop) */
.tl{position:relative}
.tl .te{position:relative;padding:0 0 16px 24px}
.tl .te::before{content:"";position:absolute;left:5px;top:3px;bottom:-4px;width:2px;background:var(--line2)}
.tl .te:last-child::before{display:none}
.tl .marker{position:absolute;left:0;top:2px;width:12px;height:12px;border-radius:50%;background:var(--ink-300);box-shadow:0 0 0 3px var(--page)}
.tl .te.update .marker{background:var(--acc)}.tl .te.note .marker{background:var(--ink-500)}
.tl .te.status .marker{background:var(--primary-400)}.tl .te.submitted .marker{background:var(--success)}
.tl .when{font-size:11.5px;color:var(--ink-400)}
.tl .tbody{font-size:14px;line-height:1.5;color:var(--ink-800);margin-top:3px}
.tl .who{font-size:12px;color:var(--ink-500);margin-top:2px}
.lane-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:var(--r-xs);margin-bottom:5px}
.lane-tag.pub{background:var(--acc-tint);color:var(--acc-text)}.lane-tag.priv{background:var(--raise);color:var(--ink-600)}

.d-empty-detail{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-300);gap:12px;text-align:center;padding:30px}

/* ── modal ──────────────────────────────────────────────────── */
.d-modal-bg{position:fixed;inset:0;background:var(--scrim);z-index:40;display:flex;align-items:center;justify-content:center;animation:dfade .15s ease}
@keyframes dfade{from{opacity:0}to{opacity:1}}
.d-modal{width:520px;max-height:86vh;background:var(--page);border-radius:var(--r-md);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-modal)}
.d-modal .mh{display:flex;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.d-modal .mh h3{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink-900);margin:0;flex:1}
.d-modal .mh .x{width:36px;height:36px;background:transparent;border:0;color:var(--ink-400);cursor:pointer;padding:0;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center}
.d-modal .mb{padding:20px 22px;overflow-y:auto}
.d-modal .mf{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.d-banner{display:flex;align-items:center;gap:11px;padding:13px 14px;border-radius:var(--r-sm);margin-bottom:14px}
.d-banner .ic{width:34px;height:34px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.d-banner .tt{font-size:13.5px;font-weight:700}.d-banner .ds{font-size:12px;margin-top:1px}
.d-banner.pub{background:var(--acc-tint);border:1px solid var(--acc-tint-border)}
.d-banner.pub .ic{background:var(--acc);color:var(--white)}.d-banner.pub .tt{color:var(--acc-text)}.d-banner.pub .ds{color:var(--acc-text);opacity:.85}
.d-banner.priv{background:var(--raise);border:1px solid var(--line2)}
.d-banner.priv .ic{background:var(--ink-200);color:var(--ink-700)}.d-banner.priv .tt{color:var(--ink-800)}.d-banner.priv .ds{color:var(--ink-500)}
.d-ta{width:100%;min-height:120px;resize:none;background:var(--page);border:1px solid var(--line2);border-radius:var(--r-sm);padding:13px 14px;font-family:inherit;font-size:15px;line-height:1.5;color:var(--ink-900);outline:none}
.d-ta:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-tint)}
.d-preview{background:var(--page);border:1px solid var(--line2);border-left:3px solid var(--acc);border-radius:var(--r-sm);padding:15px}
.d-preview .l{font-size:12px;font-weight:600;color:var(--acc-text);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.d-opt{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line2);border-radius:var(--r-sm);margin-bottom:8px;cursor:pointer;background:var(--page);width:100%;text-align:left;font-family:inherit}
.d-opt:hover{border-color:var(--acc);background:var(--acc-tint)}
.d-opt .nm{font-size:15px;font-weight:600;color:var(--ink-900)}
.d-opt .ds{font-size:12.5px;color:var(--ink-500);margin-top:2px}
.d-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink-900);color:var(--white);border-radius:var(--r-sm);padding:12px 18px;font-size:14px;display:flex;align-items:center;gap:9px;z-index:50;box-shadow:var(--shadow-toast)}
.d-toast svg{color:var(--acc)}
.flex1{flex:1 1 auto}

/* ── setup onboarding hub ───────────────────────────────────── */
.ds-setup{background:var(--raise)}
.ds-setup-scroll{display:grid;grid-template-columns:250px minmax(540px,1fr) 260px;gap:18px;padding:24px 26px 30px;align-items:start}
.ds-readiness,.ds-preview{position:sticky;top:0;display:flex;flex-direction:column;gap:14px}
.ds-readiness-card,.ds-card,.ds-preview-note,.ds-poster-preview{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md)}
.ds-readiness-card{padding:18px;text-align:center}
.ds-logo-preview{width:132px;height:64px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0 auto 14px;padding:10px}
.ds-logo-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.ds-ready-num{font-family:var(--font-display);font-size:42px;font-weight:750;letter-spacing:-.04em;line-height:1;color:var(--ink-900)}
.ds-ready-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400);margin-top:7px}
.ds-ready-bar{height:9px;border-radius:var(--r-pill);background:var(--raise);border:1px solid var(--line2);overflow:hidden;margin:15px 0 12px}
.ds-ready-bar span{display:block;height:100%;background:var(--acc);border-radius:var(--r-pill)}
.ds-readiness-card p{font-size:13.5px;line-height:1.45;color:var(--ink-500);margin:0}
.ds-task-list{display:flex;flex-direction:column;gap:8px}
.ds-task-list button{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:4px 10px;width:100%;min-height:58px;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);font-family:inherit;text-align:left;cursor:pointer}
.ds-task-list button span{width:28px;height:28px;border-radius:var(--r-xs);background:var(--raise);color:var(--ink-500);display:flex;align-items:center;justify-content:center}
.ds-task-list button b{font-size:13.5px;color:var(--ink-800);font-weight:650}
.ds-task-list button small{font-size:11px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.08em}
.ds-task-list button em{grid-column:2 / -1;font-style:normal;font-size:12px;color:var(--ink-500);line-height:1.3}
.ds-task-list button.done span{background:var(--st-green-bg);color:var(--st-green)}
.ds-task-list button.on{border-color:var(--acc-tint-border);background:var(--acc-tint)}
.ds-task-list button.on span{background:var(--acc);color:var(--white)}
.ds-mobile-stepper-head{display:none}
.ds-work{display:flex;flex-direction:column;gap:14px;min-width:0}
.ds-linear-head{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);padding:18px 20px}
.ds-linear-head span{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc-text);font-weight:700;margin-bottom:8px}
.ds-linear-head h3{font-family:var(--font-display);font-size:25px;font-weight:700;letter-spacing:-.02em;color:var(--ink-900);margin:0}
.ds-linear-head p{font-size:14px;line-height:1.45;color:var(--ink-500);margin:6px 0 0}
.ds-step-guidance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ds-step-guidance div{border:1px solid var(--line2);border-radius:var(--r-sm);background:linear-gradient(180deg,var(--page),var(--ink-50));padding:13px 14px}
.ds-step-guidance span{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc-text);font-weight:750;margin-bottom:6px}
.ds-step-guidance b{display:block;font-size:13.5px;line-height:1.42;color:var(--ink-700);font-weight:600}
.ds-intro-card{display:grid;grid-template-columns:minmax(280px,.92fr) minmax(360px,1.08fr);gap:18px;padding:22px}
.ds-intro-hero{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:420px;padding:8px 4px}
.ds-intro-hero > span{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 11px;border:1px solid var(--acc-tint-border);border-radius:var(--r-pill);background:var(--acc-tint);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc-text);font-weight:800}
.ds-intro-hero h3{max-width:10ch;font-family:var(--font-display);font-size:44px;line-height:.98;letter-spacing:-.035em;color:var(--ink-900);margin:18px 0 0}
.ds-intro-hero p{max-width:48ch;font-size:15px;line-height:1.55;color:var(--ink-600);margin:18px 0 0}
.ds-intro-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}
.ds-intro-flow{display:grid;grid-template-columns:1fr;gap:10px}
.ds-intro-step{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:3px 12px;align-items:center;min-height:76px;padding:13px 14px;border:1px solid var(--line2);border-radius:var(--r-sm);background:linear-gradient(180deg,var(--white),var(--ink-50));font-family:inherit;text-align:left;cursor:pointer}
.ds-intro-step:hover{border-color:var(--acc-tint-border);background:var(--acc-tint)}
.ds-intro-step span{grid-row:1 / 3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-pill);background:var(--acc);color:var(--white);font-family:var(--font-mono);font-size:13px;font-weight:850}
.ds-intro-step b{font-size:14.5px;line-height:1.15;color:var(--ink-900)}
.ds-intro-step em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-400);font-weight:800}
.ds-intro-step small{grid-column:2 / -1;font-size:12.5px;line-height:1.35;color:var(--ink-500)}
.ds-intro-note{grid-column:1 / -1;display:flex;align-items:center;gap:10px;border:1px solid var(--st-green-line);border-radius:var(--r-sm);background:var(--st-green-bg);color:var(--st-green);padding:12px 14px;font-size:13.5px;line-height:1.4;font-weight:650}
.ds-panel-tabs{display:flex;gap:8px;flex-wrap:wrap}
.ds-panel-btn{height:38px;padding:0 15px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--page);font-family:inherit;font-size:13.5px;font-weight:650;color:var(--ink-600);cursor:pointer}
.ds-panel-btn.on{background:var(--acc);border-color:var(--acc);color:var(--white)}
.ds-card{padding:18px}
.ds-card-head{margin-bottom:16px}
.ds-card-head h3{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink-900);margin:0;letter-spacing:-.02em;line-height:1.1}
.ds-card-head p{font-size:14px;line-height:1.5;color:var(--ink-500);margin:7px 0 0;max-width:62ch}
.ds-council-sequence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-2px 0 18px}
.ds-council-sequence div{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 9px;align-items:center;min-height:76px;padding:13px 14px;border:1px solid var(--line2);border-radius:var(--r-sm);background:linear-gradient(180deg,var(--white),var(--ink-50))}
.ds-council-sequence svg{grid-row:1 / 3;color:var(--acc);width:34px;height:34px;padding:8px;border-radius:var(--r-xs);background:var(--acc-tint);box-sizing:border-box}
.ds-council-sequence span{position:absolute;top:10px;right:11px;font-family:var(--font-mono);font-size:10px;font-weight:750;color:var(--ink-400)}
.ds-council-sequence b{font-size:13.5px;color:var(--ink-900);line-height:1.15}
.ds-council-sequence small{font-size:12px;color:var(--ink-500);line-height:1.25}
.ds-council-sequence div.done{border-color:var(--st-green-line);background:var(--st-green-bg)}
.ds-council-sequence div.done svg{background:var(--white);color:var(--st-green)}
.ds-council-sequence div.done span,.ds-council-sequence div.done b{color:var(--st-green)}
.ds-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ds-form-grid label{display:flex;flex-direction:column;gap:7px}
.ds-form-grid label.wide{grid-column:1 / -1}
.ds-form-grid label span{font-size:13px;font-weight:650;color:var(--ink-700)}
.ds-form-grid label small.ds-field-error{font-size:12px;color:var(--st-urgent);line-height:1.35}
.d-inp[aria-invalid="true"]{border-color:var(--st-urgent) !important;box-shadow:0 0 0 3px rgba(209,68,68,.12)}
.ds-brand-row{display:flex;align-items:center;gap:18px}
.ds-brand-row .ds-logo-preview{margin:0;width:160px;height:86px}
.ds-upload{position:relative;overflow:hidden;margin:0 0 12px}
.ds-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ds-brand-row p{font-size:13.5px;color:var(--ink-500);line-height:1.45;margin:12px 0 0;max-width:46ch}
.ds-brand-panel{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(360px,1.28fr);gap:16px;align-items:stretch}
.ds-logo-block,.ds-style-card,.ds-map-drop,.ds-map-controls{border:1px solid var(--line2);border-radius:var(--r-md);background:linear-gradient(180deg,var(--white),var(--ink-50));padding:16px}
.ds-logo-block{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ds-logo-block .ds-logo-preview{margin:0;width:150px;height:74px}
.ds-brand-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ds-logo-block p{font-size:13px;color:var(--ink-500);line-height:1.45;margin:0;max-width:44ch}
.ds-style-card{display:grid;grid-template-columns:126px 1fr;gap:14px;align-items:start}
.ds-qr-large{width:126px;height:126px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--white);display:flex;align-items:center;justify-content:center;padding:10px;box-shadow:inset 0 0 0 6px var(--white)}
.ds-qr-large svg{width:106px;height:106px}
.ds-style-controls{display:grid;gap:13px;min-width:0}
.ds-field-label{font-size:12.5px;font-weight:750;color:var(--ink-600)}
.ds-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ds-theme-choice{min-height:44px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);padding:7px 9px;font-family:inherit;font-size:12.5px;font-weight:750;color:var(--ink-700);text-align:left;cursor:pointer}
.ds-theme-choice.on{background:var(--acc-tint);border-color:var(--acc-tint-border);color:var(--acc-text);box-shadow:inset 0 0 0 1px var(--acc-tint-border)}
.ds-theme-swatch{width:18px;height:18px;border-radius:var(--r-pill);border:2px solid var(--white);box-shadow:0 0 0 1px var(--line2);display:block}
.ds-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ds-color-grid.qr-only{grid-template-columns:repeat(2,minmax(0,1fr))}
.ds-color-grid label{display:flex;flex-direction:column;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink-600)}
.ds-color-input{width:100%;height:40px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--white);padding:4px;cursor:pointer}
.ds-style-card .ds-inline-status{grid-column:2;margin-top:0}
.ds-location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.ds-location{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;min-height:66px;padding:12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--raise);font-family:inherit;text-align:left;cursor:pointer}
.ds-location.active{background:var(--page);border-color:var(--acc-tint-border)}
.ds-loc-ic{width:40px;height:40px;border-radius:var(--r-sm);background:var(--acc-tint);color:var(--acc);display:flex;align-items:center;justify-content:center}
.ds-location b,.ds-qr-row b{font-size:14.5px;color:var(--ink-900);line-height:1.2}
.ds-location small,.ds-qr-row small{display:block;font-size:12px;color:var(--ink-500);margin-top:3px}
.ds-location em{font-style:normal;font-size:12px;font-weight:750;color:var(--acc-text);background:var(--acc-tint);border-radius:var(--r-pill);padding:5px 9px}
.ds-location:not(.active) em{background:var(--raise);color:var(--ink-400)}
.ds-inline-status{margin-top:14px;border:1px solid var(--line2);background:var(--ink-50);border-radius:var(--r-sm);padding:11px 13px;font-size:13px;color:var(--ink-600)}
.ds-map-phase-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
.ds-map-phase{display:grid;gap:5px;min-height:82px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--ink-50);padding:11px 12px}
.ds-map-phase span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400)}
.ds-map-phase b{font-size:13px;line-height:1.2;color:var(--ink-900)}
.ds-map-phase em{align-self:end;font-style:normal;font-size:11.5px;font-weight:750;color:var(--acc-text)}
.ds-map-phase.phase-1{background:var(--acc-tint);border-color:var(--acc-tint-border)}
.ds-map-upload-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(240px,.82fr);gap:16px}
.ds-map-drop{position:relative;min-height:310px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px;background:linear-gradient(135deg,var(--white) 0%,var(--ink-50) 100%);border:1px solid var(--line2);cursor:crosshair}
.ds-map-drop img{display:block;width:100%;height:100%;max-height:380px;object-fit:contain;border-radius:var(--r-sm);background:var(--white);pointer-events:none}
.ds-map-drop > div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink-500);text-align:center}
.ds-map-drop svg{color:var(--acc)}
.ds-map-drop b{font-size:15px;color:var(--ink-800)}
.ds-map-drop span{font-size:13px}
.ds-map-pin-layer{position:absolute;inset:12px;display:block;pointer-events:none}
.ds-map-pin{position:absolute;z-index:2;transform:translate(-50%,-50%);width:34px;height:34px;border:3px solid var(--white);border-radius:var(--r-pill);background:var(--acc);color:var(--white);font-family:var(--font-mono);font-size:12px;font-weight:800;box-shadow:var(--shadow-card-subtle);cursor:pointer;pointer-events:auto}
.ds-map-pin.on{background:var(--st-amber);box-shadow:0 0 0 4px var(--st-amber-bg),var(--shadow-card-subtle)}
.ds-map-controls{display:flex;flex-direction:column;gap:12px}
.ds-map-controls .d-btn,.ds-map-controls .ds-upload{width:100%;margin:0}
.ds-review-stack{display:grid;gap:8px;margin-top:2px}
.ds-review-stack div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--white)}
.ds-review-stack span{font-size:12px;font-weight:700;color:var(--ink-500)}
.ds-review-stack b{font-size:14px;font-weight:700;color:var(--ink-900);text-align:right}
.ds-map-note{font-size:13px;line-height:1.45;color:var(--ink-500);margin:2px 0 0}
.ds-map-pin-editor{margin-top:16px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--page);overflow:hidden}
.ds-map-pin-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--ink-50)}
.ds-map-pin-editor-head h4{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);margin:0}
.ds-map-pin-editor-head span{font-size:12.5px;font-weight:700;color:var(--ink-500)}
.ds-map-pin-row{display:grid;grid-template-columns:auto minmax(150px,1.1fr) minmax(90px,.6fr) minmax(110px,.7fr) auto;align-items:end;gap:10px;padding:12px 14px;border-top:1px solid var(--line)}
.ds-map-pin-row:first-of-type{border-top:0}
.ds-map-pin-row.on{background:var(--acc-tint)}
.ds-map-pin-row label{display:flex;flex-direction:column;gap:6px;min-width:0}
.ds-map-pin-row label span{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500)}
.ds-map-pin-index{width:38px;height:38px;border:1px solid var(--acc-tint-border);border-radius:var(--r-pill);background:var(--acc);color:var(--white);font-family:var(--font-mono);font-weight:800;cursor:pointer}
.ds-map-review{margin-top:16px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--page);overflow:hidden}
.ds-map-review-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--ink-50)}
.ds-map-review-head span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:750;color:var(--acc-text)}
.ds-map-review-head b{font-size:12.5px;color:var(--ink-500);font-weight:700;text-align:right}
.ds-map-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}
.ds-map-review h4{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500);margin:0 0 8px}
.ds-map-chip-list{display:flex;flex-wrap:wrap;gap:8px}
.ds-map-chip-list span{display:inline-flex;align-items:center;gap:7px;min-height:30px;border:1px solid var(--line2);border-radius:var(--r-pill);background:var(--ink-50);padding:0 10px;font-size:12.5px;font-weight:750;color:var(--ink-800)}
.ds-map-chip-list small{font-size:11px;color:var(--ink-500);font-weight:700}
.ds-map-location-list{display:grid;gap:7px}
.ds-map-location-list div{border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--ink-50);padding:9px 10px}
.ds-map-location-list b{display:block;font-size:13px;color:var(--ink-900);line-height:1.2}
.ds-map-location-list span{display:block;font-size:12px;color:var(--ink-500);margin-top:3px;line-height:1.25}
.ds-map-questions{display:grid;gap:7px;margin:0;padding-left:18px;color:var(--ink-600);font-size:12.5px;line-height:1.35}
.ds-map-uncertainties{display:grid;gap:7px;border-top:1px solid var(--line);padding:12px 14px;background:var(--raise)}
.ds-map-uncertainties b{font-size:12px;font-weight:800;color:var(--ink-700)}
.ds-map-uncertainties span{font-size:12.5px;color:var(--ink-500);line-height:1.35}
.ds-schematic{margin-top:16px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--page);overflow:hidden}
.ds-schematic-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--ink-50)}
.ds-schematic-head span{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--acc-text)}
.ds-schematic-head b{font-size:12.5px;color:var(--ink-500);font-weight:700;text-align:right}
.ds-schematic-stage{display:grid;gap:10px;padding:14px;background:linear-gradient(180deg,var(--white),var(--ink-50))}
.ds-schematic-floor{border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);overflow:hidden}
.ds-schematic-floor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--raise)}
.ds-schematic-floor-head b{font-size:13.5px;color:var(--ink-900)}
.ds-schematic-floor-head span{font-size:12px;font-weight:750;color:var(--ink-500)}
.ds-schematic-zones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px}
.ds-schematic-zone{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;min-height:58px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--ink-50);padding:9px 10px;font-family:inherit;text-align:left;cursor:pointer}
.ds-schematic-zone:hover{border-color:var(--acc-tint-border);background:var(--acc-tint)}
.ds-schematic-zone span{grid-row:1/3;width:28px;height:28px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;background:var(--acc);color:var(--white);font-family:var(--font-mono);font-size:11px;font-weight:800}
.ds-schematic-zone b{font-size:13px;line-height:1.15;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-schematic-zone em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--ink-500)}
.ds-qr-table{display:flex;flex-direction:column;gap:9px}
.ds-print-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.ds-print-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;min-height:116px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--page);padding:14px;text-align:left;font-family:inherit;cursor:pointer}
.ds-print-option svg{width:34px;height:34px;padding:8px;border-radius:50%;background:var(--acc-tint);color:var(--acc);box-sizing:border-box}
.ds-print-option b{font-size:14px;color:var(--ink-900);line-height:1.2}
.ds-print-option span{font-size:12.5px;color:var(--ink-500);line-height:1.35}
.ds-print-option.on{border-color:var(--acc);background:var(--acc-tint);box-shadow:inset 0 0 0 1px var(--acc-tint-border)}
.ds-print-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;border:1px solid var(--line2);border-radius:var(--r-md);background:var(--ink-50);padding:14px}
.ds-print-form label{display:flex;flex-direction:column;gap:7px}
.ds-print-form label span{font-size:12.5px;font-weight:700;color:var(--ink-600)}
.ds-print-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}
.ds-empty-step{border:1px dashed var(--line2);background:var(--ink-50);border-radius:var(--r-sm);padding:18px;color:var(--ink-500);font-size:14px;line-height:1.45}
.ds-qr-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:12px;min-height:68px;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page)}
.ds-mini-qr{width:54px;height:54px;border:1px solid var(--line2);border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--white)}
.ds-qr-row > span:nth-child(3){font-size:12px;font-weight:750;color:var(--ink-400);white-space:nowrap}
.ds-qr-row > span.tested{color:var(--st-green)}
.ds-test-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ds-test-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.ds-test-summary span{border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--ink-50);padding:11px 12px;font-size:13px;font-weight:650;color:var(--ink-500)}
.ds-test-summary span.done{background:var(--st-green-bg);border-color:var(--st-green-line);color:var(--st-green)}
.ds-step-footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);margin:20px -20px -20px;padding:16px 20px 0}
.ds-step-footer .d-btn{min-width:108px}
.ds-step-footer .d-btn:last-child{margin-left:auto}
.ds-step-footnote{font-size:12.5px;color:var(--ink-500)}
.ds-poster-preview{padding:18px;text-align:center}
.ds-preview-note{padding:15px 16px}
.ds-preview-note b{font-size:14.5px;color:var(--ink-900)}
.ds-preview-note p{font-size:13px;line-height:1.45;color:var(--ink-500);margin:5px 0 0}

@media (max-width:1120px){
  .ds-setup-scroll{grid-template-columns:240px minmax(420px,1fr)}
  .ds-preview{display:none}
  .ds-brand-panel,.ds-map-upload-grid{grid-template-columns:1fr}
  .ds-map-phase-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ds-map-pin-row{grid-template-columns:auto 1fr 1fr}
  .ds-schematic-zones{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ds-print-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:760px){
  .ds-setup-scroll{grid-template-columns:1fr;padding:18px}
  .ds-readiness{position:static}
  .ds-intro-card{grid-template-columns:1fr}
  .ds-intro-hero{min-height:auto;padding:0}
  .ds-intro-hero h3{max-width:14ch;font-size:36px}
  .ds-style-card,.ds-print-options,.ds-print-form{grid-template-columns:1fr}
  .ds-style-card .ds-inline-status{grid-column:auto}
  .ds-map-review-grid{grid-template-columns:1fr}
}

@media (max-width:760px){
  .d-app-setup-focus .ds-setup{display:flex;flex-direction:column;overflow:hidden;background:var(--ink-50)}
  .d-app-setup-focus,.d-app-setup-focus *{box-sizing:border-box}
  .d-app-setup-focus,.d-app-setup-focus .ds-setup,.d-app-setup-focus .ds-setup-scroll{max-width:100vw;overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y}
  .d-app-setup-focus .d-topbar{flex:0 0 auto;padding:12px 14px;background:var(--page)}
  .d-app-setup-focus .d-topbar::after{display:none}
  .d-app-setup-focus .d-topbar h2{font-size:20px;line-height:1.1}
  .d-app-setup-focus .d-topbar .sub{font-size:9.5px;letter-spacing:.09em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .d-app-setup-focus .ds-setup-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto;overflow-x:hidden;padding:10px 12px 92px;scroll-padding-bottom:110px}
  .d-app-setup-focus .ds-readiness{position:static;order:0;display:flex;flex-direction:column;gap:8px}
  .d-app-setup-focus .ds-readiness,.d-app-setup-focus .ds-work,.d-app-setup-focus .ds-card,.d-app-setup-focus .ds-linear-head{width:100%;max-width:100%;min-width:0}
  .d-app-setup-focus .ds-work{order:1;gap:10px}
  .d-app-setup-focus .ds-readiness-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px 12px;text-align:left;padding:10px 12px;border-radius:var(--r-sm)}
  .d-app-setup-focus .ds-readiness-card .ds-logo-preview{display:none}
  .d-app-setup-focus .ds-ready-num{grid-row:1/4;font-size:28px;letter-spacing:-.03em;min-width:54px;text-align:center}
  .d-app-setup-focus .ds-ready-label{margin:0;font-size:9.5px;letter-spacing:.1em}
  .d-app-setup-focus .ds-ready-bar{height:7px;margin:0}
  .d-app-setup-focus .ds-readiness-card p{min-width:0;font-size:12px;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .d-app-setup-focus .ds-mobile-stepper-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 0}
  .d-app-setup-focus .ds-mobile-stepper-head span{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400);font-weight:750}
  .d-app-setup-focus .ds-mobile-stepper-head b{min-width:0;font-family:var(--font-mono);font-size:11.5px;line-height:1.25;letter-spacing:.04em;color:var(--acc-text);font-weight:800;text-align:right}
  .d-app-setup-focus .ds-task-list{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;overflow:visible;padding:8px 10px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);scroll-snap-type:none}
  .d-app-setup-focus .ds-task-list::before{content:"";position:absolute;left:28px;right:28px;top:24px;height:2px;background:var(--line2)}
  .d-app-setup-focus .ds-task-list button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:44px;padding:0;border:0;background:transparent;border-radius:var(--r-pill);scroll-snap-align:none}
  .d-app-setup-focus .ds-task-list button.on{grid-column:auto;justify-content:center;border-radius:var(--r-pill);padding:0;background:transparent}
  .d-app-setup-focus .ds-task-list button span{display:none}
  .d-app-setup-focus .ds-task-list button::before{content:attr(data-step);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-pill);background:var(--white);border:1px solid var(--line2);color:var(--ink-500);font-family:var(--font-mono);font-size:12px;font-weight:800;box-shadow:0 0 0 4px var(--page)}
  .d-app-setup-focus .ds-task-list button.done::before{content:"✓";background:var(--st-green-bg);border-color:var(--st-green-line);color:var(--st-green)}
  .d-app-setup-focus .ds-task-list button.on::before{background:var(--acc);border-color:var(--acc);color:var(--white);box-shadow:0 0 0 4px var(--acc-tint)}
  .d-app-setup-focus .ds-task-list button b{display:none;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .d-app-setup-focus .ds-task-list button small,.d-app-setup-focus .ds-task-list button em{display:none}
  .d-app-setup-focus .ds-linear-head{padding:13px 14px;border-radius:var(--r-sm)}
  .d-app-setup-focus .ds-linear-head span{font-size:10px;letter-spacing:.1em;margin-bottom:6px}
  .d-app-setup-focus .ds-linear-head h3{font-size:22px;line-height:1.08}
  .d-app-setup-focus .ds-linear-head p{font-size:13px;line-height:1.35}
  .d-app-setup-focus .ds-intro-card{display:flex;flex-direction:column;gap:12px;padding:16px 14px 96px;border-radius:var(--r-sm)}
  .d-app-setup-focus .ds-intro-hero{min-height:auto;padding:0}
  .d-app-setup-focus .ds-intro-hero > span{height:28px;font-size:9.5px;letter-spacing:.1em}
  .d-app-setup-focus .ds-intro-hero h3{max-width:12ch;font-size:31px;line-height:1;margin-top:14px}
  .d-app-setup-focus .ds-intro-hero p{font-size:13.5px;line-height:1.45;margin-top:12px}
  .d-app-setup-focus .ds-intro-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%;margin-top:16px}
  .d-app-setup-focus .ds-intro-actions .d-btn{width:100%;height:46px}
  .d-app-setup-focus .ds-intro-flow{gap:8px}
  .d-app-setup-focus .ds-intro-step{grid-template-columns:32px minmax(0,1fr) auto;min-height:68px;padding:11px 12px}
  .d-app-setup-focus .ds-intro-step span{width:32px;height:32px}
  .d-app-setup-focus .ds-intro-step b{font-size:13.5px}
  .d-app-setup-focus .ds-intro-step small{font-size:12px}
  .d-app-setup-focus .ds-intro-note{align-items:flex-start;font-size:12.5px;padding:11px 12px}
  .d-app-setup-focus .ds-step-guidance{display:none}
  .d-app-setup-focus .ds-card{padding:14px 14px 92px;border-radius:var(--r-sm)}
  .d-app-setup-focus .ds-card-head{margin-bottom:12px}
  .d-app-setup-focus .ds-card-head h3{font-size:20px}
  .d-app-setup-focus .ds-card-head p{display:none}
  .d-app-setup-focus .ds-council-sequence{display:none}
  .d-app-setup-focus .ds-form-grid,.d-app-setup-focus .ds-brand-panel,.d-app-setup-focus .ds-style-card,.d-app-setup-focus .ds-map-upload-grid,.d-app-setup-focus .ds-map-phase-list,.d-app-setup-focus .ds-test-actions,.d-app-setup-focus .ds-test-summary{grid-template-columns:1fr}
  .d-app-setup-focus .ds-theme-grid,.d-app-setup-focus .ds-color-grid{grid-template-columns:1fr}
  .d-app-setup-focus .ds-style-card{gap:12px}
  .d-app-setup-focus .ds-qr-large{width:112px;height:112px}
  .d-app-setup-focus .ds-qr-large svg{width:94px;height:94px}
  .d-app-setup-focus .ds-location-grid{grid-template-columns:1fr}
  .d-app-setup-focus .ds-location{min-height:58px;grid-template-columns:36px 1fr auto;padding:10px}
  .d-app-setup-focus .ds-loc-ic{width:36px;height:36px}
  .d-app-setup-focus .ds-map-drop{min-height:220px}
  .d-app-setup-focus .ds-map-pin-row{grid-template-columns:auto 1fr;align-items:end}
  .d-app-setup-focus .ds-map-pin-row label{grid-column:auto}
  .d-app-setup-focus .ds-map-pin-row .d-btn,.d-app-setup-focus .ds-map-pin-row button:last-child{grid-column:1 / -1}
  .d-app-setup-focus .ds-map-review-grid,.d-app-setup-focus .ds-schematic-zones,.d-app-setup-focus .ds-print-options,.d-app-setup-focus .ds-print-form{grid-template-columns:1fr}
  .d-app-setup-focus .ds-qr-row{grid-template-columns:auto minmax(0,1fr) auto;gap:9px;padding:9px 10px}
  .d-app-setup-focus .ds-qr-row .d-btn{grid-column:2 / -1;justify-self:start;height:36px}
  .d-app-setup-focus .ds-step-footer{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:auto 1fr;gap:8px 10px;align-items:center;margin:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--line2);box-shadow:0 -12px 28px -22px rgba(10,27,63,.45);backdrop-filter:blur(12px)}
  .d-app-setup-focus .ds-step-footer .d-btn{min-width:0;height:46px;padding:0 14px}
  .d-app-setup-focus .ds-step-footer .d-btn:last-child{margin-left:0;grid-column:2;grid-row:1 / 3;width:100%}
  .d-app-setup-focus .ds-step-footnote{font-size:11.5px;line-height:1.2;color:var(--ink-500)}
}

/* ── updates feed (desktop) ─────────────────────────────────── */
.d-feed{max-width:780px;margin:0 auto;padding:12px 26px 30px}
.d-feed-item{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;font-family:inherit;cursor:pointer;
  background:var(--page);border:1px solid var(--line2);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:10px}
.d-feed-item:hover{border-color:var(--acc-tint-border);background:var(--acc-tint)}
.d-feed-item:hover .feed-mk{box-shadow:0 0 0 3px var(--page)}
.feed-mk{width:34px;height:34px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px}
.feed-mk.pub{background:var(--acc-tint);color:var(--acc-text)}
.feed-mk.priv{background:var(--raise);color:var(--ink-600)}
.feed-mk.new{background:var(--st-blue-bg);color:var(--st-blue)}
.feed-mk.status{background:var(--st-grey-bg);color:var(--ink-600)}
.d-feed-body{flex:1 1 auto;min-width:0}
.d-feed-top{display:flex;align-items:center;gap:10px}
.feed-tag{font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:var(--ink-500);text-transform:uppercase;letter-spacing:.1em}
.feed-when{margin-left:auto;font-size:12px;color:var(--ink-400);white-space:nowrap}
.d-feed-text{font-size:15px;color:var(--ink-800);line-height:1.45;margin-top:5px}
.d-feed-ref{font-size:13px;color:var(--ink-400);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-feed-ref .id{font-family:var(--font-mono);font-size:12px;color:var(--ink-500)}

/* ── settings (desktop) ─────────────────────────────────────── */
.settings-page{background:var(--raise)}
.settings-scroll{padding:24px 26px 30px;max-width:1120px}
.settings-readiness{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(180deg,var(--page),var(--surface-blue-soft));border:1px solid var(--line2);border-radius:var(--r-md);padding:18px 20px;margin-bottom:24px}
.settings-readiness h3{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--ink-900);letter-spacing:-.02em;margin:0}
.settings-readiness p{font-size:13.5px;line-height:1.45;color:var(--ink-500);margin:5px 0 0;max-width:58ch}
.pilot-readiness{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);padding:18px 20px;margin-bottom:24px}
.pilot-ready-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.pilot-ready-head h3{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--ink-900);letter-spacing:-.02em;margin:0}
.pilot-ready-head p{font-size:13.5px;line-height:1.45;color:var(--ink-500);margin:5px 0 0;max-width:68ch}
.pilot-ready-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:var(--r-pill);padding:0 12px;background:var(--st-amber-bg);border:1px solid var(--st-amber-line);color:var(--st-amber);font-size:12px;font-weight:750;white-space:nowrap}
.pilot-ready-badge.ready{background:var(--st-green-bg);border-color:var(--st-green-line);color:var(--st-green)}
.pilot-check-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.pilot-check{display:flex;align-items:flex-start;gap:10px;min-height:118px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);padding:12px}
.pilot-check.ready{background:var(--st-green-bg);border-color:var(--st-green-line)}
.pilot-check-ic{width:28px;height:28px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:var(--st-amber-bg);color:var(--st-amber)}
.pilot-check.ready .pilot-check-ic{background:var(--st-green);color:var(--white)}
.pilot-check b{display:block;font-size:13.5px;font-weight:750;color:var(--ink-900);line-height:1.2}
.pilot-check p{font-size:12px;line-height:1.35;color:var(--ink-500);margin:4px 0 0}
.pilot-service{margin-top:16px;border-top:1px solid var(--line2);padding-top:16px}
.pilot-service-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.pilot-service-head b{display:block;font-size:14px;font-weight:750;color:var(--ink-900);line-height:1.2}
.pilot-service-head p{font-size:12.5px;line-height:1.35;color:var(--ink-500);margin:4px 0 0}
.pilot-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.pilot-service-check{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line2);border-radius:var(--r-sm);padding:10px;background:var(--raise);min-height:88px}
.pilot-service-check.ready{background:var(--st-green-bg);border-color:var(--st-green-line)}
.pilot-service-check>span{width:24px;height:24px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;background:var(--st-amber-bg);color:var(--st-amber);flex:0 0 auto}
.pilot-service-check.ready>span{background:var(--st-green);color:var(--white)}
.pilot-service-check b{display:block;font-size:12.5px;font-weight:750;color:var(--ink-900);line-height:1.2}
.pilot-service-check p{font-size:11.5px;line-height:1.32;color:var(--ink-500);margin:3px 0 0}
.pilot-service-error{display:flex;align-items:center;gap:8px;border:1px solid var(--st-red-line);background:var(--st-red-bg);color:var(--st-red);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;font-weight:650}
.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;margin-bottom:22px;align-items:start}
.set-card{background:var(--page);border:1px solid var(--line2);border-radius:var(--r-md);overflow:hidden;margin-bottom:8px}
.set-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.set-form.single{grid-template-columns:1fr}
.set-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--ink-500)}
.set-form label.wide{grid-column:1/-1}
.set-note{display:flex;align-items:flex-start;gap:9px;background:var(--acc-tint);border:1px solid var(--acc-tint-border);border-radius:var(--r-sm);padding:11px 12px;color:var(--acc-text);font-size:12.5px;line-height:1.4}
.set-note svg{flex:0 0 auto;margin-top:1px}
.set-row{display:flex;align-items:center;padding:14px 16px;border-top:1px solid var(--line);font-size:14px}
.set-row:first-child{border-top:0}
.set-row .k{color:var(--ink-500);width:160px;flex:0 0 auto}
.set-row .v{color:var(--ink-900);font-weight:500}
.set-member{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line)}
.set-member:first-child{border-top:0}
.set-member .av{width:34px;height:34px;border-radius:50%;background:var(--acc-tint);color:var(--acc-text);display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;flex:0 0 auto}
.set-member .mnm{font-size:14.5px;font-weight:600;color:var(--ink-900)}
.set-member .mem{font-size:12.5px;color:var(--ink-500);margin-top:1px}
.set-member.editable{align-items:flex-start}
.set-member-fields{display:grid;grid-template-columns:1fr;gap:8px;flex:1 1 auto;min-width:0}
.set-member .role{width:170px;flex:0 0 auto}
.set-add{display:flex;align-items:center;gap:8px;width:100%;padding:13px 16px;border:0;border-top:1px solid var(--line);background:transparent;font-family:inherit;font-size:14px;font-weight:600;color:var(--acc-text);cursor:pointer}
.set-add:hover{background:var(--acc-tint)}
.set-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;border:0;border-top:1px solid var(--line);background:transparent;font-family:inherit;text-align:left;cursor:pointer}
.set-toggle:first-child{border-top:0}
.set-toggle:hover{background:var(--ink-50)}
.set-toggle.compact{border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--page);padding:12px 13px}
.set-toggle .mnm{font-size:14.5px;font-weight:600;color:var(--ink-900)}
.set-toggle .mem{font-size:12.5px;color:var(--ink-500);margin-top:2px}
.set-token-row{display:grid;grid-template-columns:1fr;gap:10px}
.billing-card{padding:0}
.billing-summary{display:flex;align-items:center;gap:13px;padding:16px;border-bottom:1px solid var(--line)}
.billing-summary .pilot-ready-badge{margin-left:auto}
.billing-summary b{display:block;font-size:15px;font-weight:750;color:var(--ink-900)}
.billing-summary span:not(.billing-ic):not(.pilot-ready-badge){display:block;font-size:12.5px;color:var(--ink-500);margin-top:2px}
.billing-ic{width:40px;height:40px;border-radius:var(--r-sm);background:var(--acc-tint);color:var(--acc);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.billing-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.billing-form .set-toggle{min-height:70px}
.sw{width:42px;height:24px;border-radius:var(--r-pill);background:var(--line2);position:relative;flex:0 0 auto;transition:background .18s}
.sw .kn{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--white);box-shadow:var(--shadow-switch-knob);transition:left .18s}
.sw.on{background:var(--acc)}.sw.on .kn{left:20px}
.set-connected{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:0;align-items:center}
.set-connected > div{padding:18px 20px;border-right:1px solid var(--line)}
.set-connected b{display:block;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink-900);letter-spacing:-.02em}
.set-connected span{display:block;font-size:12.5px;color:var(--ink-500);margin-top:2px}
.set-connected .d-btn{margin:0 16px;white-space:nowrap}

@media (max-width:1120px){
  .settings-scroll{max-width:none}
  .pilot-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pilot-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid{grid-template-columns:1fr}
  .billing-form{grid-template-columns:1fr}
  .set-connected{grid-template-columns:repeat(3,minmax(0,1fr))}
  .set-connected .d-btn{grid-column:1/-1;margin:0 16px 16px}
}

/* status pills (word + colour) */
.stt{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap}
.stt .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:currentColor}
.stt.big{font-size:13.5px;padding:6px 12px}.stt.big .dot{width:8px;height:8px}
.t-blue{background:var(--st-blue-bg);color:var(--st-blue)}
.t-violet{background:var(--st-violet-bg);color:var(--st-violet)}
.t-amber{background:var(--st-amber-bg);color:var(--st-amber)}
.t-teal{background:var(--st-teal-bg);color:var(--st-teal)}
.t-green{background:var(--st-green-bg);color:var(--st-green)}
.t-grey{background:var(--st-grey-bg);color:var(--st-grey)}
.d-new{background:var(--st-blue)}.d-review{background:var(--st-violet)}
.d-wait{background:var(--st-amber)}.d-sched{background:var(--st-teal)}
.d-done{background:var(--st-green)}.d-closed{background:var(--st-grey)}
.lane-row .lane-btn .tt{white-space:nowrap}
.kv .v{white-space:nowrap}
.d-detail .dh .top{flex-wrap:nowrap}
/* Next-step column: clip cleanly with ellipsis instead of hard truncation */
.d-table td:last-child{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Map popover: lift fully clear of its marker so the count badge stays visible */
.map-pop{transform:translate(-50%,calc(-100% - 30px))}

/* grouped inbox (default council view) */
.d-inbox{padding:18px 26px 30px;max-width:760px}
.gi-group{margin-bottom:26px}
.gi-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.gi-mark{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.gi-mark.tone-amber{background:var(--st-amber)} .gi-mark.tone-navy{background:var(--st-blue)} .gi-mark.tone-green{background:var(--st-green)}
.gi-head h3{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink-900);letter-spacing:-.01em;margin:0}
.gi-count{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink-600);background:var(--raise);border:1px solid var(--line2);border-radius:var(--r-pill);min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px}
.gi-hint{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400);margin-left:auto}
.gi-card{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 15px;margin-bottom:8px;
  background:var(--page);border:1px solid var(--line2);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .15s}
.gi-card:hover{border-color:var(--ink-300)}
.gi-card.sel{border-color:var(--acc);box-shadow:inset 2px 0 0 var(--acc)}
.gi-thumb{width:46px;height:46px;object-fit:cover;flex:0 0 auto;background:var(--raise)}
.gi-thumb.ph{display:flex;align-items:center;justify-content:center;color:var(--acc);border:1px solid var(--line2)}
.gi-main{flex:1 1 auto;min-width:0}
.gi-sum{font-family:var(--font-display);font-size:16.5px;font-weight:600;color:var(--ink-900);letter-spacing:-.01em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gi-meta{font-size:13px;color:var(--ink-500);margin-top:3px}
.gi-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.gi-assignee{font-family:var(--font-mono);font-size:11px;color:var(--ink-500)}
.gi-assignee.none{color:var(--ink-400)}
.gi-empty{font-size:14px;color:var(--ink-400);padding:6px 2px 2px}

/* ─── StrataSnap DS shape conformance: rounded cards (matches mobile), flat ─── */
.d-stat,.d-search,.d-seg,.d-tab,.d-table,.d-photos img,
.d-prow,.d-opt,.d-preview,.d-banner,.chip,
.floor-band,.floor-code,.rollup-row,.map-pop,.d-detail,
.set-card,.gi-card,.d-feed-item,.ds-task-list button{border-radius:var(--r-md) !important;box-shadow:none !important}
.row-thumb,.gi-thumb,.d-inp,.d-ta,.d-segbtn,.d-banner .ic,.feed-mk,.d-toast{border-radius:var(--r-sm) !important}
.floormap{border-radius:var(--r-md) !important;box-shadow:none !important}
.d-btn,.d-tab,.set-add .gi-count{border-radius:var(--r-pill) !important}
.d-btn.sm{border-radius:var(--r-pill) !important}
.gi-count,.sw,.rollup-bar,.rollup-fill{border-radius:var(--r-pill) !important}
.d-modal{border-radius:var(--r-lg) !important;box-shadow:var(--el-2) !important}
.av,.map-pin,.ml-dot,.stt .dot,.gi-mark,.set-member .av,.d-user .av{border-radius:50% !important}
.d-inp:focus,.d-ta:focus{box-shadow:var(--focus) !important;border-color:var(--acc)}
.floor-band:hover:not(:disabled),.rollup-row:hover{transform:none}

/* ─── Status = dot + label (calm); Urgent = filled red pill ─── */
.stt:not(.is-urgent){background:transparent !important;border:0 !important;padding:0 !important;color:var(--ink-700) !important;font-weight:600}
.stt .dot{background:var(--st-blue)}
.t-blue .dot{background:var(--st-blue)} .t-violet .dot{background:var(--st-violet)}
.t-amber .dot{background:var(--st-amber)} .t-teal .dot{background:var(--st-teal)}
.t-green .dot{background:var(--st-green)} .t-grey .dot{background:var(--st-grey)}
.stt.is-urgent{background:var(--st-urgent-bg) !important;color:var(--st-urgent) !important;
  padding:4px 11px !important;border-radius:var(--r-pill) !important;font-weight:600}
.stt.is-urgent .dot{background:var(--st-urgent) !important}

@media (max-width:820px){
  html,body,#root{min-height:100%;height:auto;overflow-x:hidden}
  body{background:var(--ink-50)}
  .d-login2{min-height:100dvh;height:auto;display:block;overflow-x:hidden;overflow-y:auto;background:var(--ink-50)}
  .dl-left{display:none}
  .dl-right{min-height:100dvh;width:100%;padding:max(24px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));justify-content:flex-start;align-items:stretch}
  .dl-card{max-width:520px;width:100%;margin:0 auto;border-radius:var(--r-lg);padding:28px 22px;box-shadow:none}
  .dl-card h2{font-size:32px;line-height:1.08;letter-spacing:-.02em}
  .dl-cardsub{font-size:15px;line-height:1.45;max-width:28ch}
  .dl-field{height:52px}
  .dl-field input{min-width:0;font-size:16px}
  .d-btn.full,.dl-google{height:52px;min-width:0;width:100%;font-size:15px;padding:0 14px;white-space:normal;line-height:1.2;text-align:center}
  .dl-links{gap:12px;flex-wrap:wrap}
  .dl-resident{white-space:normal;line-height:1.35;max-width:320px;align-self:center;margin:18px auto 0}
  .dl-foot{padding-bottom:8px}
  .d-app{height:100dvh;min-height:100dvh;flex-direction:column;overflow:hidden}
  .d-side{width:100%;max-height:42vh;display:block;padding:10px 12px;overflow:auto}
  .d-side .brand{padding:4px 4px 8px}
  .d-side .bldg{padding:0 4px 10px;margin-bottom:8px}
  .d-nav{flex-direction:row;gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .d-nav::-webkit-scrollbar{display:none}
  .d-navitem{width:auto;flex:0 0 auto;min-height:42px;padding:8px 10px;font-size:13px}
  .d-navitem .ct{margin-left:4px}
  .d-side .views-h{display:none}
  .d-side .spacer{display:none}
  .d-user{margin-top:8px;padding:8px 4px}
  .d-main,.d-list{min-height:0;flex:1 1 auto;width:100%}
  .d-topbar{padding:15px 18px}
  .d-topbar h2{font-size:21px}
  .d-search{display:none}
  .d-strip,.d-tabs,.d-segwrap,.d-mapscroll,.poster-network,.poster-toolbar{padding-left:18px;padding-right:18px}
  .d-detail{position:fixed;inset:0;z-index:20;width:auto;border-left:0}
  .d-app-setup-focus{height:100dvh}
  .d-app-setup-focus .ds-setup{height:100dvh;min-height:100dvh}
  .d-app-setup-focus .ds-setup-scroll{grid-template-columns:1fr;justify-content:stretch}
  .d-app-setup-focus .d-topbar{padding-left:18px;padding-right:18px}
}

@media (max-width:390px){
  .dl-right{padding-left:12px;padding-right:12px}
  .dl-card{padding:24px 18px}
  .dl-card h2{font-size:29px}
}
