/* Compass — compass-assumptions.css (2026-10-05). The Assumptions panel (js/45): a side panel on a computer, a full-width
   sheet on a phone. Theme colours only (tools/theme/build.py --check). */
.asm-toggle { display:inline-flex; align-items:center; gap:6px; flex:none !important; width:auto !important; }
.asm-toggle svg { flex:none; }
@media (max-width:700px){ .asm-toggle-l { display:none; } html body .asm-toggle { min-width:0 !important; width:40px !important; padding:0 !important; justify-content:center; } }
.asm-wrap[hidden] { display:none; }
.asm-wrap { position:fixed; inset:0; z-index:1200; }
.asm-back { position:absolute; inset:0; background:rgba(var(--c-slate-15-rgb), 0.35); }
.asm { position:absolute; top:0; right:0; bottom:0; width:min(420px, 100vw); display:flex; flex-direction:column; background:var(--panel); color:var(--text); box-shadow:-12px 0 32px rgba(var(--c-slate-15-rgb), 0.22); border-left:1px solid var(--border); }
.asm header { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--border); }
.asm header h2 { margin:0; font-size:20px; }
.asm-x { border:0; background:none; font-size:20px; line-height:1; padding:6px 8px; cursor:pointer; color:var(--text); }
.asm-body { overflow-y:auto; padding:6px 18px 24px; -webkit-overflow-scrolling:touch; }
.asm-body section { padding:16px 0; border-bottom:1px solid var(--border); }
.asm-body h3 { margin:0 0 10px; font-size:15px; }
.asm-res { margin:12px 0 4px; padding:12px 14px; border-radius:12px; background:rgba(var(--c-teal-50-rgb), 0.08); font-size:15px; }
.asm-res b { font-size:20px; }
.asm-d { display:inline-block; margin-left:6px; font-size:13px; font-weight:700; }
.asm-d.up { color:var(--c-teal-50); } .asm-d.down { color:var(--red); }
.asm-stale { font-size:12.5px; color:var(--muted2); }
.asm-seg { display:flex; gap:6px; flex-wrap:wrap; }
.asm-seg button { flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 8px; border:1px solid var(--border); border-radius:12px; background:var(--panel); color:var(--text); font:inherit; font-size:14px; font-weight:600; cursor:pointer; text-align:center; }
.asm-seg button small { font-size:11.5px; font-weight:500; color:var(--muted2); }
.asm-seg button.on { border-color:var(--c-teal-50); background:rgba(var(--c-teal-50-rgb), 0.10); color:var(--c-teal-50); }
.asm-seg button.on small { color:inherit; }
.asm-note { margin:8px 0 0; font-size:12.5px; color:var(--muted2); }
.asm-lbl { margin:10px 0 6px; font-size:13px; font-weight:600; color:var(--muted); }
.asm-age { display:flex; align-items:center; gap:12px; padding:6px 0; }
.asm-age-l { width:64px; font-weight:600; }
.asm-step { display:flex; align-items:center; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.asm-step button { width:44px; height:40px; border:0; background:var(--panel); color:var(--text); font-size:20px; cursor:pointer; }
.asm-step b { min-width:48px; text-align:center; font-size:18px; }
.asm-age-y { color:var(--muted2); font-size:13px; }
.asm-retired { min-width:120px; font-weight:600; color:var(--text); } /* already retired: no stepper (2026-10-12) */
.asm-more { margin:16px 0 0; }
@media (max-width:700px){ .asm { left:0; width:auto; border-left:0; } }
.asm-most { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0 0; padding:10px 12px; border-radius:12px; background:rgba(var(--c-teal-50-rgb), 0.06); font-size:13.5px; }
.asm-most span { flex:1 1 220px; }
.asm-use { border:1px solid var(--c-teal-50); background:var(--c-teal-50); color:var(--c-gray-99); border-radius:999px; padding:7px 14px; font:inherit; font-weight:700; cursor:pointer; }
/* A chosen button's inner text follows the button's own colour. styles.css paints every pressed button's children
   white, which vanished on themes whose chosen button is white (Focus, Bold, Minimal) — 2026-10-05. */
.asm-wrap .asm .asm-seg button[aria-pressed="true"] * { color:inherit !important; }
.asm-wrap .asm .asm-seg button[aria-pressed="true"] small { opacity:.8; }
/* Market returns: where the forecasts come from (2026-10-10) */
.asm-src { margin-top:10px; font-size:12.5px; color:var(--muted2); }
.asm-src summary { cursor:pointer; font-weight:600; color:var(--text); }
.asm-src table { width:100%; border-collapse:collapse; margin:8px 0; font-variant-numeric:tabular-nums; }
.asm-src th, .asm-src td { text-align:left; padding:4px 6px; border-bottom:1px solid var(--border); }
.asm-src .asm-src-med td { font-weight:700; color:var(--text); }
.asm-src p { margin:6px 0 0; line-height:1.5; }

/* One design for the drawer and Review & run's Assumptions (2026-10-15, js/45 setsHtml; the mockup
   _audits/2026-10-15-assumptions-mockup.html): option cards in the radio style of Plan Details — a ring on the left, the chosen
   one a filled dot on a soft gray — with a short subtitle; one line under each setting's name. */
@layer studio {
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg { display:grid !important; grid-auto-flow:column; grid-auto-columns:minmax(0, 1fr); gap:8px !important; padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button { position:relative !important; display:flex !important; flex-direction:column !important; align-items:flex-start !important; justify-content:center !important; gap:1px !important; min-height:52px !important; height:auto !important; padding:8px 10px 8px 34px !important; border:1px solid var(--s-line2) !important; border-radius:10px !important; background:var(--s-card) !important; box-shadow:none !important; text-align:left !important; font-size:14px !important; font-weight:500 !important; color:var(--s-ink) !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button > span { color:var(--s-ink) !important; font-size:14px !important; font-weight:500 !important; line-height:1.3 !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button small { font-size:12px !important; font-weight:400 !important; line-height:1.3 !important; color:var(--s-muted) !important; opacity:1 !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button::before { content:'' !important; position:absolute; left:11px; top:50%; width:15px; height:15px; margin-top:-7.5px; box-sizing:border-box; border:1.5px solid var(--s-faint); border-radius:50%; background:var(--s-card); }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button:hover { border-color:var(--s-faint) !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button:is(.on, [aria-pressed="true"]) { border-color:var(--s-faint) !important; background:var(--s-bg) !important; color:var(--s-ink) !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button:is(.on, [aria-pressed="true"])::before { border-color:var(--s-blue); background:var(--s-blue); box-shadow:inset 0 0 0 3px var(--s-card); }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button:is(.on, [aria-pressed="true"]) small { color:var(--s-muted) !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-seg button:focus-visible { outline:2px solid var(--s-blue) !important; outline-offset:2px !important; }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-why { margin:-6px 0 10px; font-size:13px; line-height:1.45; color:var(--s-muted); }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-eff { margin:8px 0 0; font-size:13px; line-height:1.45; color:var(--s-ink2); }
  html.studio body :is(.asm-wrap .asm, #asmInline) .asm-num { margin:0 0 8px; }
  html.studio body #asmInline .asm-num > .field { display:block !important; max-width:170px !important; margin:0 !important; padding:0 !important; }
  html.studio body #asmInline .asm-num > .field > label { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
  html.studio body .asm-wrap .asm .asm-in { display:inline-flex; align-items:center; gap:8px; } html.studio body .asm-wrap .asm .asm-in input { width:96px; height:44px; padding:0 12px; border:1px solid var(--s-line2); border-radius:10px; font:inherit; font-weight:600; }
  html.studio body .asm-wrap .asm .asm-in span { font-size:13px; color:var(--s-muted); }
  html.studio body .asm-wrap .asm .asm-seg { grid-auto-flow:row; grid-template-columns:1fr; }
  html.studio body .asm-wrap .asm .asm-seg:has(> button:nth-child(2):last-child) { grid-template-columns:1fr 1fr; }
  html.studio body .asm-wrap .asm .asm-sec { margin:22px 0 0; font-size:12.5px; font-weight:700; color:var(--s-muted); }
  /* Review & run: the panel full width, two columns, Done in the header */
  html.studio body #toolView .rd-group.rd-assume.asm-has-inline { position:relative; grid-column:1 / -1 !important; width:auto !important; max-width:none !important; }
  html.studio body #toolView .rd-group.rd-assume.asm-has-inline > :is(.inputs-grid, .st-more):not(#asmX):not(#asmY) { display:none !important; }
  html.studio body #asmInline .asm-sets { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 32px; }
  html.studio body #asmInline .asm-set { padding:16px 0; border-bottom:1px solid var(--s-line); min-width:0; }
  html.studio body #asmInline .asm-set h3 { margin:0 0 8px; font-size:15px; font-weight:700; color:var(--s-ink); }
  html.studio body #asmInline .asm-src { margin-top:8px; font-size:13px; } html.studio body #asmInline .asm-src summary { display:list-item; cursor:pointer; font-weight:600; color:var(--s-link); }
}
@media (max-width:760px){ @layer studio { html.studio body #asmInline .asm-sets { grid-template-columns:minmax(0, 1fr); } html.studio body #asmInline .asm-seg { grid-auto-flow:row !important; grid-template-columns:minmax(0, 1fr); } } }
@media (min-width:701px){ @layer studio {
  html.studio body #toolView .rd-group.rd-assume.asm-has-inline:not(.rd-collapsed) > .rd-fold { position:absolute; top:18px; right:20px; margin:0 !important; }
  html.studio body #toolView .rd-group.rd-assume.asm-has-inline > .rd-group-h { padding-right:96px; } } }
