/* BUILD_STAMP: 2026-10-21 SGT · session: LAUNCH HUB — #anaAdvisory rules also apply to .adv-host (hub panes), stack metadata under stack headings. Local only, not deployed. */
/* POV Launch Advisory — styles (30 Sep 2026). Associate-only UI: the popup card
   (.adv-card inside #icBody) and Analysis → Launch Advisory (#anaAdvisory).
   Every rule is scoped under .adv-* / #anaAdvisory so nothing else on pov.sg is
   touched. pov.sg's own tokens (--ink, --lime, --line …) with the same values as
   fallbacks. Light only, like the rest of pov.sg (index.html: "pov.sg HAS NO DARK THEME"). */

#anaSub button[hidden]{display:none!important}

/* ── shared bits ─────────────────────────────────────────────────────────── */
.adv-card,:is(#anaAdvisory,.adv-host){--adv-good:#9ed321;--adv-good-bg:#eef9c8;--adv-fair:#4d5359;--adv-fair-bg:#ebebe8;
  --adv-str:#b25e09;--adv-str-bg:#fdecd6;--adv-hi:#b3261e;--adv-hi-bg:#fbe3e1;
  font-family:var(--font-b,'Inter',system-ui,sans-serif);color:var(--ink,#101214)}
.adv-card *,:is(#anaAdvisory,.adv-host) *{box-sizing:border-box}
.adv-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;
  line-height:1.3;white-space:nowrap;border:1px solid transparent}
.adv-chip.good{background:var(--lime,#c8f24b);color:#232a06;border-color:var(--lime-deep,#9ed321)}
.adv-chip.fair{background:var(--adv-fair-bg);color:var(--ink,#101214);border-color:var(--line,#e6e6e2)}
.adv-chip.stretch{background:var(--adv-str-bg);color:var(--adv-str);border-color:#f3c48c}
.adv-chip.none{background:#fff;color:var(--mut,#8b9095);border-color:var(--line,#e6e6e2);font-weight:600}
.adv-chip.grey{filter:grayscale(1);opacity:.55}
.adv-chip.exit-Low{background:#fff;color:var(--ink-2,#4d5359);border-color:var(--line,#e6e6e2)}
.adv-chip.exit-Medium{background:var(--adv-str-bg);color:var(--adv-str);border-color:#f3c48c}
.adv-chip.exit-High{background:var(--adv-hi-bg);color:var(--adv-hi);border-color:#f2b8b5}
.adv-pill{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--bg2,#ebebe8);color:var(--ink-2,#4d5359);
  font-size:11px;font-weight:600;white-space:nowrap}
.adv-pill.warn{background:var(--adv-str-bg);color:var(--adv-str)}
.adv-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line,#e6e6e2);
  background:#fff;color:var(--ink,#101214);font:600 12.5px/1.2 var(--font-b,'Inter',system-ui,sans-serif);cursor:pointer}
.adv-btn:hover{border-color:var(--ink,#101214)}
.adv-btn.dark{background:var(--ink,#101214);color:#fff;border-color:var(--ink,#101214)}
.adv-btn.lime{background:var(--lime,#c8f24b);color:#232a06;border-color:var(--lime-deep,#9ed321)}
.adv-btn:focus-visible,.adv-cell:focus-visible,.adv-fchip:focus-visible,.adv-tb th button:focus-visible{outline:2px solid var(--ink,#101214);outline-offset:2px}
.adv-muted{color:var(--mut,#8b9095)}
.adv-small{font-size:12px}
.adv-banner{margin:0 0 14px;padding:10px 12px;border-radius:var(--r-md,13px);background:var(--ink,#101214);color:#fff;
  font-size:13px;line-height:1.45;border-left:4px solid var(--lime,#c8f24b)}
.adv-note{margin:8px 0;padding:8px 10px;border-radius:var(--r-sm,9px);background:var(--adv-str-bg);color:#6b3a06;font-size:12.5px;line-height:1.45}
.adv-note.info{background:var(--bg2,#ebebe8);color:var(--ink-2,#4d5359)}

/* ── popup card (inside #icBody) ─────────────────────────────────────────── */
.adv-card{margin:0 0 12px;padding:12px 13px;border:1px solid var(--line,#e6e6e2);border-left:4px solid var(--lime,#c8f24b);
  border-radius:var(--r-md,13px);background:#fff;font-size:13px;line-height:1.45}
.adv-card .adv-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.adv-card .adv-hd b{font:700 13px/1.2 var(--font,'Space Grotesk',system-ui,sans-serif);letter-spacing:.2px;flex:1}
.adv-card .adv-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:5px 0}
.adv-card .adv-big{font:700 15px/1.25 var(--font,'Space Grotesk',system-ui,sans-serif)}
.adv-card .adv-how{font-size:12px;color:var(--ink-2,#4d5359)}
.adv-card .adv-say{margin-top:8px;border-top:1px dashed var(--line,#e6e6e2);padding-top:8px}
.adv-card .adv-say summary{cursor:pointer;font-weight:700;font-size:12.5px}
.adv-line{display:flex;gap:8px;align-items:flex-start;margin:7px 0}
.adv-line p{margin:0;flex:1;font-size:12.5px;line-height:1.5}
.adv-line .adv-btn{padding:4px 9px;font-size:11.5px;flex:none}
.adv-card .adv-ft{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;margin-top:9px;
  font-size:11.5px;color:var(--mut,#8b9095)}

/* ── Analysis → Launch Advisory ──────────────────────────────────────────── */
:is(#anaAdvisory,.adv-host) .adv-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}
:is(#anaAdvisory,.adv-host) .adv-tabs{display:flex;gap:2px;padding:3px;border-radius:12px;background:rgba(16,20,24,.05);margin:4px 0 14px;width:max-content;max-width:100%;overflow-x:auto}
:is(#anaAdvisory,.adv-host) .adv-tabs button{padding:7px 14px;border-radius:9px;border:0;background:none;font:600 13px/1.2 var(--font-b,'Inter',system-ui,sans-serif);color:var(--ink-2,#4d5359);cursor:pointer;white-space:nowrap}
:is(#anaAdvisory,.adv-host) .adv-tabs button.on{background:var(--ink,#101214);color:#fff}
:is(#anaAdvisory,.adv-host) .adv-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
:is(#anaAdvisory,.adv-host) .adv-filters input,:is(#anaAdvisory,.adv-host) .adv-filters select{font:500 13px/1.3 var(--font-b,'Inter',system-ui,sans-serif);padding:8px 10px;
  border:1px solid var(--line,#e6e6e2);border-radius:var(--r-sm,9px);background:#fff;color:var(--ink,#101214)}
:is(#anaAdvisory,.adv-host) .adv-filters input{flex:1 1 200px;min-width:0}
:is(#anaAdvisory,.adv-host) .adv-count{font-size:12px;color:var(--mut,#8b9095);margin:-4px 0 8px}
.adv-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line,#e6e6e2);border-radius:var(--r-md,13px);background:#fff}
.adv-tb{width:100%;border-collapse:collapse;font-size:13px}
.adv-tb th,.adv-tb td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line,#e6e6e2);white-space:nowrap;vertical-align:middle}
.adv-tb th{position:sticky;top:0;background:#fafaf8;font-size:11.5px;font-weight:700;color:var(--ink-2,#4d5359);text-transform:uppercase;letter-spacing:.03em;z-index:1}
.adv-tb th button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.adv-tb th[aria-sort="ascending"] button::after{content:"\25B2";font-size:9px}
.adv-tb th[aria-sort="descending"] button::after{content:"\25BC";font-size:9px}
.adv-tb td.num,.adv-tb th.num{text-align:right;font-variant-numeric:tabular-nums}
.adv-tb tbody tr.adv-click{cursor:pointer}
.adv-tb tbody tr.adv-click:hover{background:#f7fbe9}
.adv-tb td.wrap{white-space:normal;min-width:180px}
.adv-tb tr:last-child td{border-bottom:0}

:is(#anaAdvisory,.adv-host) .adv-back{margin:0 0 12px}
:is(#anaAdvisory,.adv-host) .adv-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:4px 0 4px}
:is(#anaAdvisory,.adv-host) .adv-h h2{margin:0}
:is(#anaAdvisory,.adv-host) .adv-sec{margin:18px 0 0;padding:14px 16px;border:1px solid var(--line,#e6e6e2);border-radius:var(--r-lg,18px);background:#fff}
:is(#anaAdvisory,.adv-host) .adv-sec h3{margin:0 0 10px;font:700 15px/1.25 var(--font,'Space Grotesk',system-ui,sans-serif)}
:is(#anaAdvisory,.adv-host) .adv-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
:is(#anaAdvisory,.adv-host) .adv-kv div{padding:9px 10px;border-radius:var(--r-sm,9px);background:#fafaf8;border:1px solid var(--line,#e6e6e2)}
:is(#anaAdvisory,.adv-host) .adv-kv b{display:block;font:700 16px/1.2 var(--font,'Space Grotesk',system-ui,sans-serif);font-variant-numeric:tabular-nums}
:is(#anaAdvisory,.adv-host) .adv-kv span{font-size:11.5px;color:var(--ink-2,#4d5359)}
:is(#anaAdvisory,.adv-host) p{font-size:13.5px;line-height:1.55}

/* price grid */
.adv-gridbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.adv-fchip{padding:5px 11px;border-radius:999px;border:1px solid var(--line,#e6e6e2);background:#fff;font:600 12px/1.2 var(--font-b,'Inter',system-ui,sans-serif);cursor:pointer;color:var(--ink,#101214)}
.adv-fchip.on{background:var(--ink,#101214);color:#fff;border-color:var(--ink,#101214)}
.adv-legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:11.5px;color:var(--ink-2,#4d5359);margin:0 0 10px}
.adv-legend i{display:inline-block;width:18px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px;border:1px solid rgba(16,18,20,.08)}
.adv-grid{border-collapse:separate;border-spacing:3px;font-size:11px;font-variant-numeric:tabular-nums}
.adv-grid th{font-weight:700;color:var(--ink-2,#4d5359);padding:2px 4px;text-align:center;position:sticky;background:#fff;z-index:1}
.adv-grid thead th{top:0}
.adv-grid tbody th{left:0;text-align:right}
.adv-grid th.best{background:var(--lime,#c8f24b);color:#232a06;border-radius:6px}
.adv-grid td{padding:0}
.adv-cell{display:block;width:64px;min-height:36px;padding:3px 4px;border-radius:6px;border:1px solid transparent;text-align:center;
  font:600 11px/1.25 var(--font-b,'Inter',system-ui,sans-serif);cursor:pointer;background:#fff;color:var(--ink,#101214)}
.adv-cell small{display:block;font-weight:500;font-size:10px;opacity:.8}
.adv-cell.empty{background:repeating-linear-gradient(45deg,#fafaf8,#fafaf8 4px,#f1f1ee 4px,#f1f1ee 8px);cursor:default;color:transparent}
.adv-cell.res{box-shadow:inset 0 0 0 2px var(--adv-str);}
.adv-cell.res::after{content:"R";display:block;font-size:9px;font-weight:800;color:var(--adv-str)}
.adv-cell.nr{background:#fff!important;color:var(--mut,#8b9095)!important;border:1px dashed #c9cbc6}
.adv-cell.dim{opacity:.18}
.adv-cell.sel{outline:3px solid var(--ink,#101214);outline-offset:1px}
.adv-cell.bestcol{border-color:var(--lime-deep,#9ed321)}
.adv-cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}
.adv-cmp .adv-unit{border:1px solid var(--line,#e6e6e2);border-radius:var(--r-md,13px);padding:10px;background:#fafaf8;font-size:12.5px}
.adv-cmp .adv-unit b{font:700 14px/1.2 var(--font,'Space Grotesk',system-ui,sans-serif)}
.adv-cmp .adv-unit dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:8px 0 0}
.adv-cmp .adv-unit dt{color:var(--ink-2,#4d5359)}
.adv-cmp .adv-unit dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.adv-thumb{display:block;width:100%;max-width:340px;max-height:260px;object-fit:contain;background:#fff;border:1px solid var(--line,#e6e6e2);border-radius:var(--r-sm,9px);margin-top:8px}
.adv-plan{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-top:12px}
.adv-plan .adv-thumb{max-width:280px}
@media (max-width:560px){
  .adv-cell{width:54px;min-height:34px;font-size:10.5px}
  :is(#anaAdvisory,.adv-host) .adv-sec{padding:12px}
}
/* ── ESTIMATES (est:true) — visibly different from the developer's real price list ── */
.adv-pill.est{background:#fff;color:#4d5359;border:1px dashed #7d8a64;font-weight:700;letter-spacing:.02em;text-transform:uppercase;font-size:10px}
.adv-est-line{align-items:center;gap:6px}
.adv-est-method{font-size:12.5px;line-height:1.45;color:var(--ink-2,#4d5359)}
.adv-est-hd{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.adv-cell.est{width:78px;background:repeating-linear-gradient(135deg,#fbfdf3,#fbfdf3 4px,#f0f6dc 4px,#f0f6dc 8px);
  border:1px dashed #7d8a64;color:var(--ink,#101214);font-weight:600;font-size:10.5px;line-height:1.2}
.adv-cell.est small{font-weight:500}
.adv-unit.est{border-style:dashed}
.adv-track{margin:8px 0;color:var(--ink-2,#4d5359)}
.adv-est-site{margin:6px 0}
.adv-est-site summary{cursor:pointer;font-weight:600;font-size:13px}
@media (max-width:640px){.adv-cell.est{width:70px;font-size:10px}}

/* 21 Oct LAUNCH HUB — stack heading metadata (type + size) in the hub's grid */
.adv-grid thead th .adv-stackmeta{display:block;font-weight:500;font-size:9.5px;color:var(--mut,#8b9095);white-space:nowrap;line-height:1.2}
.adv-grid thead th.best .adv-stackmeta{color:#232a06}
.adv-card.adv-hublink .adv-ft{margin:0}

/* ── 24 Oct SPACING — Launch Analytics → Projects / Method list view ─────────
   One rhythm (14px) between banner → tabs → notice → search → count → table.
   The pane gutter itself lives in launch-hub/hub.css (#laProjects/#laMethod). */
.adv-host > .wrap{max-width:1180px;margin:0 auto}
.adv-host .adv-top{margin:0 0 14px}
.adv-host .adv-top h2,.adv-host > .wrap > h2{font-size:clamp(22px,3vw,30px);margin:0 0 6px;line-height:1.15}
.adv-host .adv-top .lead,.adv-host > .wrap > .lead{color:var(--ink-2,#4d5359);font-size:14.5px;line-height:1.5;max-width:640px;margin:0}
.adv-host .adv-banner{margin:0 0 14px}
.adv-host .adv-tabs{margin:0 0 14px}
.adv-host .adv-body > .adv-note:first-child{margin:0 0 14px}
.adv-host .adv-filters{margin:0 0 10px}
.adv-host .adv-count{margin:0 0 10px}
.adv-host .adv-body > .adv-small:first-child{margin:0 0 12px}
.adv-host .adv-scroll + p,.adv-host .adv-scroll + .hub-more{margin:12px 0 0}
/* list tables: the box scrolls sideways, never the page; Project/Site column stays put */
.adv-scroll{max-width:100%;overscroll-behavior-x:contain}
.adv-tb.adv-list th:first-child,.adv-tb.adv-list td:first-child{position:sticky;left:0;z-index:2;background:#fff;
  box-shadow:inset -1px 0 0 var(--line,#e6e6e2)}
.adv-tb.adv-list th:first-child{background:#fafaf8;z-index:3}
.adv-tb.adv-list tbody tr.adv-click:hover td:first-child{background:#f7fbe9}
.adv-tb.adv-list td[colspan]{position:static;box-shadow:none}
@media (max-width:1100px){.adv-tb.adv-list .adv-c-region,.adv-tb.adv-list .adv-c-asof{display:none}}
@media (max-width:900px){
  .adv-tb.adv-list .adv-c-reg,.adv-tb.adv-list .adv-c-units,.adv-tb.adv-list .adv-c-unsold,.adv-tb.adv-list .adv-c-vs_fair_pct,
  .adv-tb.adv-list .adv-c-n27,.adv-tb.adv-list .adv-c-nl{display:none}
  .adv-tb.adv-list th,.adv-tb.adv-list td{padding:8px 9px}
}
@media (max-width:600px){
  .adv-tb.adv-list .adv-c-district,.adv-tb.adv-list .adv-c-d,
  .adv-tb.adv-list .adv-c-ptype,.adv-tb.adv-list .adv-c-land,.adv-tb.adv-list .adv-c-be{display:none}
  .adv-tb.adv-list td:first-child{white-space:normal;min-width:128px;max-width:160px}
  .adv-tb.adv-list td:first-child .adv-pill{margin-top:2px}
  .adv-host .adv-filters select{flex:1 1 30%;min-width:0}
}
