.rpt-dek{color:var(--muted);font-size:var(--fs-3);max-width:720px;line-height:var(--lh-body)}.rpt-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0 6px}@media(max-width:640px){.rpt-kpis{grid-template-columns:repeat(2,1fr)}}.rpt-kpi{background:var(--panel);border:1px solid var(--line);border-radius:0;padding:15px 16px}.rpt-kpi b{display:block;font-family:var(--disp);font-size:var(--fs-6);line-height:var(--lh-tight);color:var(--accent)}.rpt-kpi span{display:block;color:var(--muted);font-size:var(--fs-1);margin-top:7px;line-height:var(--lh-snug)}.rpt-cmp{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}@media(max-width:640px){.rpt-cmp{grid-template-columns:1fr}}.rpt-card{border:1px solid var(--line);border-radius:0;padding:16px 18px;background:var(--panel)}.rpt-card h3{font-size:var(--fs-2);margin:0 0 4px;color:var(--text)}.rpt-card .big{font-family:var(--disp);font-size:var(--fs-5);color:var(--accent)}.rpt-card.warn .big{color:var(--flag)}.rpt-card p{color:var(--muted);font-size:var(--fs-1);margin:6px 0 0}.rpt-wrap-x{overflow-x:auto;margin-top:10px;max-width:100%}.cmp-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.rpt-table{width:100%;border-collapse:collapse;font-size:var(--fs-2);min-width:560px}.rpt-table th,.rpt-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}.rpt-table th{color:var(--muted);font-weight:var(--w-bold);font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.04em}.rpt-table td.num,.rpt-table th.num{text-align:right;font-variant-numeric:tabular-nums}.rpt-table a{color:var(--accent);font-weight:var(--w-bold);text-decoration:none}.rpt-zero{color:var(--flag);font-weight:700}.rpt-hi{color:var(--flag);font-weight:700}.rpt-neg{color:var(--flag);font-weight:var(--w-bold)}.rpt-note{color:var(--muted);font-size:var(--fs-3);margin:14px 0 0;line-height:var(--lh-body)}.rpt-method{background:var(--mist);border-radius:0;padding:16px 18px;color:var(--muted);font-size:var(--fs-2);margin-top:24px;line-height:var(--lh-body)}.rpt-method b{color:var(--text)}.rpt-chip{cursor:pointer;user-select:none;border:none}.rpt-chip.on{background:var(--accent);color:#fff}.rpt-nomatch{display:none;color:var(--muted);padding:18px 0;text-align:center}.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:8px}@media(max-width:640px){.hub-grid{grid-template-columns:1fr}}.hub-card{display:block;border:1px solid var(--line);border-radius:0;padding:20px 22px;background:var(--panel);text-decoration:none;color:inherit;transition:border-color var(--ease),transform var(--ease)}.hub-card:hover{border-color:var(--terracotta);transform:translateY(-2px)}.hub-card .tag{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-weight:700}.hub-card h3{font-family:var(--disp);font-weight:var(--w-bold);font-size:var(--fs-4);margin:8px 0 5px;color:var(--text)}.hub-card p{color:var(--muted);font-size:var(--fs-2);margin:0}.hub-soon{opacity:.6}.hub-soon .tag{color:var(--muted)}
.btn-outline{margin-top:16px;background:transparent;color:var(--green-dk);border:1.5px solid var(--green-dk);border-radius:var(--r-btn);font-family:var(--body);font-weight:700;font-size:var(--fs-3);padding:12px 20px;cursor:pointer;transition:background var(--ease),color var(--ease)}.btn-outline:hover{background:var(--green-dk);color:#fff}.src-table{display:flex;flex-direction:column;gap:2px;margin-top:8px}.src-row{padding:9px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.src-row a{font-weight:var(--w-bold);text-decoration:none;font-size:var(--fs-2)}.src-row a:hover{text-decoration:underline}.src-meta{font-size:var(--fs-1);color:var(--muted)}.guide-meta{display:flex;flex-wrap:wrap;gap:2px 17px;font-size:var(--fs-1);line-height:var(--lh-body);color:var(--text-3);margin:8px 0 20px;clip-path:inset(-6px -6px -6px 0)}.guide-meta>*{position:relative}.guide-meta>*::before{content:"";position:absolute;left:-10px;top:50%;width:3px;height:3px;margin-top:-1px;background:currentColor}.guide-meta a{color:inherit}.key-points{background:var(--green-tint);border:1px solid #CBD8D0;border-radius:0;padding:26px 28px;margin:18px 0 26px}.key-points b{color:var(--green);font-family:var(--mono);font-size:var(--fs-1);letter-spacing:.12em;text-transform:uppercase;font-weight:var(--w-medium)}.key-points ul{margin:8px 0 0;padding-left:20px}.key-points li{margin:4px 0}.guide-toc{background:var(--base);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 22px;margin:18px 0 30px}.guide-toc h2{font-size:var(--fs-2);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.guide-toc ol{margin:0;padding-left:20px}.guide-toc li{margin:5px 0}.guide-toc a{font-weight:var(--w-bold);text-decoration:none}.guide-toc a:hover{text-decoration:underline}.guide-section{margin-top:44px;padding-top:6px;scroll-margin-top:calc(var(--hdr-h) + 16px)}.worked-example{background:var(--base);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin:18px 0}.worked-example h3{font-family:var(--disp);font-weight:var(--w-bold);font-size:var(--fs-4);margin:0 0 10px;color:var(--green-dk)}.common-mistake{background:var(--terracotta-tint);border:none;border-left:3px solid var(--terracotta);border-radius:0;padding:20px 24px;margin:18px 0;color:#4A342B}.common-mistake b{color:var(--accent-text);font-family:var(--mono);font-size:var(--fs-1);letter-spacing:.12em;text-transform:uppercase;font-weight:var(--w-medium)}.decision-rule{background:var(--ink);color:#fff;border-radius:var(--r);padding:20px 22px;margin:18px 0}.decision-rule a{color:#fff;text-decoration:underline}.decision-rule .lbl{font-size:var(--fs-1);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--meta);margin-bottom:6px}.decision-rule p{margin:0;font-family:var(--disp);font-size:var(--fs-3);font-weight:700;line-height:var(--lh-snug)}.plain-checklist{margin:16px 0;padding-left:20px;color:var(--muted)}.plain-checklist li{margin:6px 0}.review-meta{border-top:1px solid var(--line);margin-top:36px;padding-top:16px;font-size:var(--fs-1);color:var(--muted);display:grid;grid-template-columns:repeat(2,1fr);gap:6px 20px}@media(max-width:560px){.review-meta{grid-template-columns:1fr}}.evidence-pack{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}@media(max-width:640px){.evidence-pack{grid-template-columns:1fr}}.evidence-card{background:var(--mist);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.evidence-card .ek{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.evidence-card .ev{font-family:var(--disp);font-weight:800;font-size:var(--fs-4);margin-top:4px}.interpretation-list{display:flex;flex-direction:column;gap:12px;margin:16px 0}.interpretation{background:var(--mist);border-radius:var(--r);padding:14px 18px}.interpretation b{color:var(--green-dk)}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.chip{background:var(--mist2);color:var(--green-dk);font-size:var(--fs-1);font-weight:700;padding:6px 13px;border-radius:0}.checklist-cat{margin-top:34px}.checklist-cat h2{font-family:var(--disp);font-size:var(--fs-4);font-weight:var(--w-bold);margin:0 0 4px;color:var(--green-dk)}.checklist-items{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.checklist-items li{display:flex;gap:10px;align-items:flex-start;padding:9px 6px;font-size:var(--fs-2);border-bottom:1px solid var(--line)}.checklist-items input{margin-top:3px;flex:none}.badge-live{display:inline-block;font-size:var(--fs-1);font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:var(--green);color:#fff;padding:3px 9px;border-radius:0}.src-cite{font-size:var(--fs-1);color:var(--muted);text-decoration:none;font-weight:var(--w-bold)}.reform-callout-dark .src-cite{color:#B8B5B3}.src-cite:hover{color:var(--green-dk);text-decoration:underline}.src-missing{font-size:var(--fs-1);color:var(--coral);font-weight:700}.calc-panel{background:var(--base);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 26px;margin:20px 0;box-shadow:var(--sh)}.calc-row{display:grid;grid-template-columns:1fr 140px;gap:10px 16px;align-items:center;margin-bottom:12px}.calc-row label{font-size:var(--fs-2);font-weight:var(--w-bold);color:var(--ink)}.calc-row input,.calc-row select{padding:10px 12px;border:1.5px solid var(--line-2);border-radius:0;font-size:var(--fs-3);font-family:var(--body);background:var(--base);color:var(--ink);width:100%}.calc-results{background:var(--mist);border-radius:var(--r);padding:18px 20px;margin-top:18px}.calc-out-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-2)}.calc-out-row:last-child{border-bottom:none}.calc-out-row b{font-family:var(--disp);font-size:var(--fs-3)}.calc-out-row.total{border-top:2px solid var(--line);margin-top:4px;padding-top:12px}.calc-out-row.total b{font-size:var(--fs-5);color:var(--green-dk)}.calc-methodology{margin-top:16px;background:var(--base);border:1px dashed var(--line);border-radius:var(--r);padding:14px 16px;font-size:var(--fs-1);color:var(--muted)}.calc-methodology summary{cursor:pointer;font-weight:700;color:var(--ink)}.stress-scenario{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--fs-2)}.stress-scenario:last-child{border-bottom:none}.stress-scenario b{font-family:var(--disp)}@media(max-width:560px){.calc-row{grid-template-columns:1fr}}@media print{.checklist-items input{-webkit-print-color-adjust:exact}}.g2-shell{display:grid;grid-template-columns:200px minmax(0,1fr);gap:48px;align-items:start}.g2-toc{position:sticky;top:calc(var(--hdr-h) + 24px);max-height:calc(100vh - var(--hdr-h) - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.g2-toc-label{font:var(--w-medium) var(--fs-1)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--meta);padding-bottom:10px;border-bottom:1px solid var(--line)}.g2-toc ul{margin:8px 0 0;display:grid;gap:0;list-style:none;padding:0}.g2-toc li{list-style:none;margin:0}.g2-toc a{display:block;padding:7px 0 7px 12px;font-size:var(--fs-2);line-height:var(--lh-snug);color:var(--soft);border-left:2px solid var(--line);text-decoration:none}.g2-toc a:hover{color:var(--accent-text);text-decoration:underline}.g2-toc a.on{color:var(--ink);border-left-color:var(--terracotta)}.g2-article{min-width:0;max-width:74ch}.g2-article h2[id]{scroll-margin-top:calc(var(--hdr-h) + 24px)}.evidence-box{margin-top:26px;border:1px solid var(--line);background:var(--mist);padding:22px}.evidence-box .lbl{font:var(--w-medium) var(--fs-1)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}.evidence-box .review-meta{border-top:0;margin-top:0;padding-top:0}.ds-callout .review-meta{border-top:0;margin-top:0;padding-top:0}@media(max-width:900px){.g2-shell{grid-template-columns:minmax(0,1fr);gap:0}.g2-toc{position:static;top:auto;max-height:none;overflow:visible;display:flex;align-items:center;gap:10px;margin:-10px 0 14px;border-bottom:1px solid var(--line)}.g2-toc-label{flex:none;padding:0;border:0}.g2-toc ul{flex:1 1 auto;min-width:0;display:flex;gap:6px;margin:0;padding:6px 28px 6px 0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,black calc(100% - 28px),transparent);mask-image:linear-gradient(to right,black calc(100% - 28px),transparent)}.g2-toc ul::-webkit-scrollbar{display:none}.g2-toc li{flex:none}.g2-toc a,.g2-toc a.on{display:flex;align-items:center;min-height:var(--tap);padding:0 12px;white-space:nowrap;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.g2-toc a:hover{color:var(--ink);background:var(--surface-2)}}
/* The shared look of every calculator (PM slice 06.1). Uses only tokens the site already defines, each
   with a fallback, so a later change to the token values needs no edit here. Inlined into tool pages by
   deploy/tool_shell.py (one <style>, no extra request). Controls are 16 px type and 48 px high at every
   width: below 16 px iOS Safari zooms the page on focus, and 48 px clears the 44 px tap target.
   Dense by design: fields sit in a responsive grid sized by the tool's own width (container query, with
   a media-query fallback), labels and help text are compact, and the answer figure is the loudest thing
   in the tool. */
.tool{margin:22px 0 30px;container-type:inline-size;container-name:tool}
.tool .vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tool>.sec-h{margin-bottom:6px}

/* ---- fields ---- */
.tool-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin:18px 0;align-items:start}
.tool-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.tool-field--wide{grid-column:1/-1}
.tool-field[hidden]{display:none}
.tool-field label{font-weight:var(--w-bold,700);font-size:var(--fs-2);line-height:var(--lh-snug,1.3);color:var(--ink,#201E1D)}
.tool input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.tool select,.tool textarea{
  font:inherit;font-size:max(var(--fs-3),1em);line-height:var(--lh-snug,1.3);min-height:48px;padding:10px 12px;border:2px solid var(--line-2,#7A7673);
  border-radius:0;width:100%;box-sizing:border-box;background:var(--surface,#fff);color:var(--ink,#201E1D);
  font-variant-numeric:tabular-nums;transition:border-color var(--ease,120ms ease)}
.tool input:not([type=checkbox]):not([type=radio]):not([type=hidden]):hover,.tool select:hover,.tool textarea:hover{border-color:var(--ink,#201E1D)}
.tool input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,.tool select:focus,.tool textarea:focus{border-color:var(--ink,#201E1D)}
/* One chevron for every select, drawn with currentColor so it follows the text colour. */
.tool select{-webkit-appearance:none;appearance:none;padding-right:40px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.tool input[type=date]{min-width:0;-webkit-appearance:none;appearance:none}
.tool-help{color:var(--muted,#4B4846);font-size:var(--fs-1);line-height:var(--lh-snug,1.3)}
.tool-err{color:var(--negative,#962E20);font-size:var(--fs-2);font-weight:var(--w-bold,700);line-height:var(--lh-snug,1.3)}
.tool-err[hidden]{display:none}
.tool input[aria-invalid=true],.tool select[aria-invalid=true]{border-color:var(--negative,#962E20);background-color:var(--negative-bg,#F9E9E4)}
.tool-checks{gap:0}
.tool-check{display:flex;gap:12px;align-items:center;min-height:48px;padding:6px 0;font-size:var(--fs-2);line-height:var(--lh-snug,1.3);cursor:pointer}
.tool-check[hidden]{display:none}
.tool-check input{width:24px;height:24px;margin:0;flex:none;accent-color:var(--ink,#201E1D);cursor:pointer}
/* The form's submit is the tool's one primary action: the accent fill, at least 12em wide. Placed straight
   in the form it spans the grid, so it never sits half-width. */
.tool-form>.tool-btn,.tool-form>button[type=submit]{grid-column:1/-1;justify-self:start}
.tool-form button[type=submit]{min-width:12em;background:var(--accent-fill,#D12B10);border-color:var(--accent-fill,#D12B10);color:var(--on-accent,#fff)}
.tool-form button[type=submit]:hover{background:var(--accent-fill-hover,#B8240D);border-color:var(--accent-fill-hover,#B8240D)}
.tool-form .tool-actions{margin:4px 0 0}

/* ---- buttons and actions ---- */
.tool-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0}
.tool-btn{min-height:48px;padding:10px 20px;font:inherit;font-size:var(--fs-3);font-weight:var(--w-bold,700);line-height:var(--lh-snug,1.3);cursor:pointer;
  border:2px solid var(--ink,#201E1D);background:var(--ink,#201E1D);color:var(--on-accent,#fff);border-radius:0;
  transition:background-color var(--ease,120ms ease),color var(--ease,120ms ease)}
.tool-btn:hover{background:var(--text-2,#4B4846);border-color:var(--text-2,#4B4846)}
.tool-btn--ghost{background:transparent;color:var(--ink,#201E1D)}
.tool-btn--ghost:hover{background:var(--surface-2,#EAE9E9);border-color:var(--ink,#201E1D);color:var(--ink,#201E1D)}
.tool-actions .tool-btn[data-action]{font-size:var(--fs-2);padding:10px 16px;white-space:nowrap}
.tool-actions .tool-btn[data-action]:not(.tool-btn--ghost){background:transparent;color:var(--ink,#201E1D)}
.tool-actions .tool-btn[data-action]:not(.tool-btn--ghost):hover{background:var(--surface-2,#EAE9E9)}
.tool-copy-field{max-width:34em}

/* ---- answer ---- */
.tool-answer{border:2px solid var(--ink,#201E1D);border-top:6px solid var(--accent-fill,#D12B10);padding:16px 20px 18px;background:var(--surface,#fff)}
.tool-answer__kicker{margin:0;font-size:var(--fs-1);font-weight:var(--w-bold,700);letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#4B4846)}
.tool-answer__figure{margin:2px 0 6px;font-weight:var(--w-display,800);font-size:var(--fs-6);line-height:var(--lh-tight,1.1);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink,#201E1D)}
.tool-answer__line{margin:0;font-size:var(--fs-2);line-height:var(--lh-snug,1.3);color:var(--text-2,#4B4846);max-width:62ch}
.tool-badge{display:inline-block;padding:2px 8px;border:1px solid currentColor;font-size:var(--fs-1);font-weight:700}
.tool-stale-note{margin:0 0 10px;padding:10px 14px;border:2px solid var(--negative,#962E20);background:var(--negative-bg,#F9E9E4);
  color:var(--ink,#201E1D);font-size:var(--fs-2);font-weight:var(--w-bold)}
.tool-stale-note[hidden]{display:none}
/* Greyed, not faded: opacity would drop the text below contrast; the note above says why it is grey. */
.tool[data-state=stale] [data-slot=answer],.tool[data-state=stale] [data-slot=working]{filter:grayscale(1)}
.tool[data-state=stale] [data-slot=answer]{outline:2px dashed var(--line-2,#7A7673);outline-offset:4px}
.tool-failure{border:2px solid var(--negative,#962E20);padding:16px 18px;background:var(--surface,#fff)}
.tool-failure h3{margin:0 0 6px}
.tool-failure p{margin:0}

/* ---- working, assumptions, next steps ---- */
.tool-working{border-top:2px solid var(--ink,#201E1D);margin-top:16px}
.tool-working summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-weight:var(--w-bold,700)}
.tool-assumptions-wrap{font-size:var(--fs-2)}
.tool-assumptions-wrap h3{font-size:var(--fs-3);margin:20px 0 8px}
.tool-assumptions-list{display:grid;grid-template-columns:minmax(0,14em) 1fr;gap:6px 16px;margin:0}
.tool-assumptions-list dt{font-weight:700}
.tool-assumptions-list dd{margin:0}
.tool-next ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.tool-next a{display:block;min-height:48px;padding:12px 14px;border:1px solid var(--line-2,#7A7673);box-sizing:border-box}
.tool-back{display:inline-block;min-height:48px;padding:12px 0}
.tool-inputs-summary,.tool-print-source{display:none}
.tool-nojs{display:none}
.tool :focus-visible{outline:3px solid var(--focus,#201E1D);outline-offset:2px}

/* ---- widths: the tool's own width decides the field grid ---- */
@media (max-width:640px){
  .tool-form{grid-template-columns:1fr}
  .tool-form>.tool-btn,.tool-form>button[type=submit],.tool-form button[type=submit]{justify-self:stretch;width:100%}
  .tool-actions .tool-btn[data-action]{flex:1 1 auto}
  .tool-assumptions-list{grid-template-columns:1fr}
}
@container tool (min-width:400px){
  .tool-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container tool (max-width:399px){
  .tool-form{grid-template-columns:1fr}
  .tool-form>.tool-btn,.tool-form>button[type=submit],.tool-form button[type=submit]{justify-self:stretch;width:100%}
}
/* The answer figure is sized by the box it sits in, not the window: --fs-6 by default, the display size
   only when that box is wide enough for an eight-figure amount. A box that holds a figure (the shell's
   answer card, or a page's own figure card) becomes a size container for this. */
:where(.tool) :has(>.tool-answer__figure){container-type:inline-size;container-name:tool-fig}
@container tool-fig (min-width:480px){
  .tool-answer__figure{font-size:var(--fs-7)}
}
/* Fields in the same row line up their controls even when one label wraps to two lines: each field
   takes three rows of the form's grid through subgrid (label, control, note). Help and error share the
   note row, and the error replaces the help while it shows, so an empty row costs at most one gap. */
@supports (grid-template-rows:subgrid) and selector(:has(a)){
  .tool-form>.tool-field:not(.tool-field--wide):not([hidden]){display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:5px;align-content:start}
  .tool-form>.tool-field:not(.tool-field--wide):not([hidden])>label{align-self:end}
  .tool-form>.tool-field:not(.tool-field--wide)>.tool-help,.tool-form>.tool-field:not(.tool-field--wide)>.tool-err{grid-row:3}
  .tool-form>.tool-field:not(.tool-field--wide)>.tool-help:has(~.tool-err:not([hidden])){display:none}
}
@media (prefers-reduced-motion:reduce){.tool *{transition:none!important;scroll-behavior:auto!important}}
@media print{
  .tool{container-type:normal}
  .tool-form,.tool-actions,.tool-next,.tool-stale-note,.tool-back,.tool-copy-field{display:none!important}
  .tool-inputs-summary{display:block;margin:0 0 12px;padding-left:18px;font-size:var(--fs-1)}
  .tool-print-source{display:block;margin:12px 0 0;font-size:var(--fs-1);word-break:break-all}
  .tool-answer,.tool-assumptions-list{break-inside:avoid}
  details.tool-working>*{display:block}
  .tool [data-slot]{min-height:0!important}
}

.ac-box{border:2px solid var(--line);padding:16px 18px;background:var(--surface)}.ac-box label{display:block;font-size:var(--fs-2);font-weight:var(--w-bold);margin-bottom:6px}.ac-box-row{display:flex;gap:8px;position:relative}.ac-box input[type=text]{flex:1;min-width:0;font-size:var(--fs-3);padding:12px 14px;border:2px solid var(--line-strong);background:var(--surface);color:var(--text);min-height:44px;border-radius:0}.ac-box button{min-height:44px;padding:0 20px;font-size:var(--fs-3);font-weight:700;background:var(--accent-fill);color:var(--on-accent);border:none;cursor:pointer;border-radius:0}.ac-box button:hover{background:var(--accent-fill-hover)}.ac-box .ac-hint{font-size:var(--fs-1);color:var(--text-3);margin:8px 0 0}.ac-box .ac-msg{margin:8px 0 0;font-size:var(--fs-2)}.ac-box .ac-msg[data-kind=error]{color:var(--negative)}.ac-listbox{list-style:none;margin:0;padding:0;position:absolute;top:100%;left:0;right:0;background:var(--surface);border:2px solid var(--line-strong);border-top:none;max-height:320px;overflow:auto;z-index:20;box-shadow:var(--shadow-pop)}.ac-listbox[hidden]{display:none}.ac-option{padding:10px 14px;min-height:44px;box-sizing:border-box;cursor:pointer;font-size:var(--fs-3);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}.ac-option:last-child{border-bottom:none}.ac-option-active,.ac-option:hover{background:var(--surface-accent)}.ac-option-loading{cursor:default;color:var(--text-3)}.ac-option-loading:hover{background:transparent}.ac-opt-street,.ac-opt-addr{font-weight:var(--w-medium)}.ac-opt-locality{color:var(--text-3);font-size:var(--fs-2)}.ac-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ac-code{font-family:monospace;font-size:var(--fs-1);color:var(--text-3)}.ac-card{border:2px solid var(--text);background:var(--surface);margin-top:16px}.ac-card:focus{outline:none}.ac-card-header{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;align-items:flex-start;padding:16px 18px;border-bottom:2px solid var(--text)}.ac-card-header h2{margin:0 0 2px;font-size:var(--fs-5);line-height:var(--lh-snug)}.ac-locality{margin:0 0 8px;color:var(--text-2);font-size:var(--fs-2)}.ac-tag{display:inline-block;font-size:var(--fs-1);font-weight:var(--w-bold);line-height:var(--lh-snug);padding:3px 8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);white-space:nowrap}.ac-tag-code{font-family:monospace;letter-spacing:.02em;color:var(--text)}.ac-tag-pos{background:var(--positive-bg);border-color:var(--positive);color:var(--positive)}.ac-tag-neg{background:var(--negative-bg);border-color:var(--negative);color:var(--negative)}.ac-tag-caution{background:var(--caution-bg);border-color:var(--caution);color:var(--caution)}.ac-tag-muted{background:var(--surface-2);border-color:var(--line);color:var(--text-3)}.ac-method-badge{display:inline-block;font-size:var(--fs-1);font-weight:700;padding:3px 8px;background:var(--info-bg);border:1px solid var(--info);color:var(--info)}.ac-hd-actions{display:flex;gap:8px;flex-wrap:wrap}.ac-copy-btn,.ac-retry-btn,.ac-nearby-btn,.ac-watch-jump{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:var(--fs-2);font-weight:var(--w-bold);border:2px solid var(--line-strong);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none;border-radius:0;box-sizing:border-box}.ac-watch-jump{background:var(--text);border-color:var(--text);color:var(--surface)}.ac-glance dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-bottom:2px solid var(--text)}.ac-decide{margin:0;padding:12px 14px;border-bottom:2px solid var(--text)}.ac-decide-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;box-sizing:border-box;background:var(--text);color:var(--surface);text-decoration:none}.ac-decide-link span{flex:1}.ac-decide-link strong{display:block}.ac-decide-link:after{content:"\2192"}.ac-decide-link:hover,.ac-decide-link:focus-visible{text-decoration:underline}.ac-tile{padding:12px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.ac-tile[hidden]{display:none}.ac-tile dt{font-size:var(--fs-2);font-weight:var(--w-bold)}.ac-tile dt a{color:var(--text-3);text-decoration:none}.ac-tile dt a:hover{text-decoration:underline}.ac-tile dd{margin:0}.ac-tile-v{font-size:var(--fs-5);font-weight:var(--w-display);line-height:var(--lh-tight);margin:4px 0 2px!important;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ac-tile-s{font-size:var(--fs-2);color:var(--text-2);line-height:var(--lh-snug);margin-top:4px!important}.ac-tile-v+.ac-tile-s{margin-top:0!important}.ac-tile-neg .ac-tile-v{color:var(--negative)}.ac-tile-pos .ac-tile-v{color:var(--positive)}.ac-tile-caution .ac-tile-v{color:var(--caution)}.ac-method-note{margin:0;padding:10px 18px;font-size:var(--fs-2);background:var(--info-bg);color:var(--text);border-bottom:1px solid var(--line)}.ac-report-grid{display:grid;grid-template-columns:minmax(0,1fr)}.ac-report-main,.ac-report-aside{min-width:0}.ac-sec{padding:16px 18px;border-bottom:1px solid var(--line)}.ac-sec-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--fs-4);margin:0 0 10px;line-height:var(--lh-snug)}.ac-rows{list-style:none;margin:0;padding:0}.ac-row,.ac-exp-row{padding:8px 0;border-top:1px solid var(--line)}.ac-rows>li:first-child{border-top:none;padding-top:2px}.ac-row-main{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.ac-row-main h4{font-size:var(--fs-3);margin:0;font-weight:var(--w-bold);line-height:var(--lh-snug)}.ac-coverage{font-size:var(--fs-2);color:var(--text-2);margin:2px 0 0}.ac-exp-headline{font-size:var(--fs-2);margin:4px 0 0;color:var(--text-2)}.ac-exp-flagged .ac-exp-headline{color:var(--text)}.ac-src{font-size:var(--fs-1);margin:4px 0 0;color:var(--text-3)}.ac-note{font-size:var(--fs-2);color:var(--text-2)}.ac-fine{font-size:var(--fs-1);color:var(--text-3);margin:10px 0 0;line-height:var(--lh-body)}.ac-ask{font-size:var(--fs-2)}.ac-ov-group+.ac-ov-group{margin-top:8px}.ac-ov-group-h{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:6px 0 2px}.ac-more{margin-top:6px}.ac-more>summary{cursor:pointer;font-size:var(--fs-2);font-weight:var(--w-bold);color:var(--accent-text);min-height:32px;display:inline-flex;align-items:center;gap:6px;list-style:none}.ac-more>summary::-webkit-details-marker{display:none}.ac-more>summary:before{content:"+";display:inline-block;width:1em;text-align:center;font-weight:800}.ac-more[open]>summary:before{content:"\2013"}.ac-more-body{padding:4px 0 2px 16px;border-left:2px solid var(--line);font-size:var(--fs-2)}.ac-more-body p{margin:0 0 8px}.ac-timeline{list-style:none;margin:0;padding:0;font-size:var(--fs-2)}.ac-timeline li{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--line)}.ac-timeline li:first-child{border-top:none}.ac-timeline time{font-weight:var(--w-bold);color:var(--text-3);font-variant-numeric:tabular-nums}.ac-school-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 20px}.ac-school-cols h4{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 4px}.ac-school-cols ul{list-style:none;margin:0;padding:0;font-size:var(--fs-3);font-weight:var(--w-medium)}.ac-school-cols li{padding:2px 0}.ac-sz-fact{display:block;font-size:var(--fs-2);font-weight:var(--w-regular);color:var(--text-2);margin-top:2px}.ac-exp-checks-h{font-weight:var(--w-bold);font-size:var(--fs-2);margin:4px 0 2px}.ac-exp-checks{font-size:var(--fs-2);margin:0 0 8px;padding-left:18px}.ac-exp-checks li{margin-bottom:4px}.ac-exp-src,.ac-exp-guide{font-size:var(--fs-1);color:var(--text-3)}.ac-nearby .ac-exp-headline{color:var(--text);margin:0 0 4px}.ac-nb-line{font-size:var(--fs-2);margin:0 0 4px;color:var(--text-2)}.ac-nb-list{list-style:none;margin:6px 0 4px;padding:0}.ac-nb-item{padding:8px 0;border-top:1px solid var(--line)}.ac-nb-item p{margin:0}.ac-nb-what{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:var(--fs-3)}.ac-nb-where{font-size:var(--fs-2);color:var(--text-2);margin-top:2px!important;overflow-wrap:anywhere}.ac-nb-defs{margin:0 0 8px;font-size:var(--fs-2)}.ac-nb-defs div{padding:3px 0}.ac-nb-defs dt{display:inline;font-weight:var(--w-bold)}.ac-nb-defs dt:after{content:": "}.ac-nb-defs dd{display:inline;margin:0}.ac-map-section{position:relative;overflow:hidden}.ac-next-list{list-style:none;margin:0;padding:0;font-size:var(--fs-2)}.ac-next-list li{border-top:1px solid var(--line)}.ac-next-list li:first-child{border-top:none}.ac-next-list a{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:8px;color:var(--text);text-decoration:none;font-weight:var(--w-medium)}.ac-next-list a:after{content:"\2192";color:var(--accent-text)}.ac-next-list a:hover{text-decoration:underline}.ac-watch{padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}.ac-watch .uploadcard{background:none;border:none;padding:0;box-shadow:none}.ac-watch .uploadcard h2{font-size:var(--fs-4);margin:0 0 2px}.ac-watch .uploadcard .lead{font-size:var(--fs-2);margin:0 0 10px;color:var(--text-2)}.ac-watch .fld{font-size:var(--fs-2);font-weight:var(--w-bold);display:block;margin:0 0 4px}.ac-watch-row{display:flex;gap:8px;flex-wrap:wrap}.ac-watch-row input{flex:1 1 180px;min-width:0;min-height:44px;padding:0 12px;font-size:var(--fs-3);border:2px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:0;box-sizing:border-box}.ac-watch-row .btn{flex:0 0 auto;min-height:44px;margin:0;width:auto}.ac-watch .reassure{text-align:left;margin:8px 0 0;font-size:var(--fs-1)}.ac-report-foot{padding:0}.ac-disclaimer{background:var(--caution-bg);padding:12px 18px;font-size:var(--fs-2);border-bottom:1px solid var(--line)}.ac-disclaimer p{margin:0}.ac-sources-wrap{padding:8px 18px 12px}.ac-sources ul{margin:6px 0 0;padding-left:18px;font-size:var(--fs-1);color:var(--text-3)}.ac-sources li{margin-bottom:4px}.ac-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.ac-fig{border:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.ac-fig-k{font-size:var(--fs-1);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.ac-fig-v{font-size:var(--fs-5);font-weight:var(--w-display);font-variant-numeric:tabular-nums}.ac-fig-s{font-size:var(--fs-1);color:var(--text-2)}.ac-charges h4{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:12px 0 4px}.ac-charges-table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.ac-charges-table .ac-line-note{display:block;margin:2px 0 0;font-size:var(--fs-1)}.ac-charges-table th{text-align:left;font-weight:400;padding:6px 8px 6px 0;border-bottom:1px solid var(--line)}.ac-charges-table td{text-align:right;white-space:nowrap;padding:6px 0;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line)}.ac-charges-form fieldset{border:none;padding:0;margin:0}.ac-val-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 12px}.ac-charges-form .fld{display:block;font-size:var(--fs-2);font-weight:var(--w-bold);margin:6px 0 4px}.ac-charges-form input{width:100%;box-sizing:border-box;min-height:44px;padding:0 10px;font-size:var(--fs-3);border:2px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:0}.ac-charges-sources{font-size:var(--fs-1);color:var(--text-3);padding-left:18px}.ac-error,.ac-notfound{border:2px solid var(--line-strong);background:var(--surface);padding:14px 18px;margin-top:16px}.ac-error p,.ac-notfound p{margin:0 0 10px}.ac-nearby-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.ac-unusable{padding:16px 18px}.ac-skeleton{padding:20px 0}.ac-skel-line,.ac-skel-block{background:var(--surface-2);margin-bottom:12px}.ac-skel-line{height:16px}.ac-skel-line.w60{width:60%}.ac-skel-line.w40{width:40%}.ac-skel-block{height:90px}.ac-example-tag{display:inline-block;font-size:var(--fs-1);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);margin:12px 18px 0}.ac-card>.ac-card-body{padding:4px 18px 14px}.ac-card-body h3{font-size:var(--fs-4);margin:12px 0 6px}.ac-zone-item h4,.ac-ov-item h4{font-size:var(--fs-3);margin:0 0 4px}.ac-card-body .ac-zone-item,.ac-card-body .ac-ov-item{margin-bottom:10px}.ac-report .ac-card-body{padding:0}.ac-report .ac-zone-item,.ac-report .ac-ov-item{margin-bottom:0}@media (min-width:1024px){.ac-report-grid{grid-template-columns:minmax(0,1fr) 380px}.ac-report-aside{border-left:2px solid var(--text)}.ac-report-grid:has(.ac-map-section){grid-template-areas:"main map" "main rest";grid-template-rows:auto 1fr}.ac-report-grid:has(.ac-map-section) .ac-report-main{grid-area:main}.ac-report-grid:has(.ac-map-section) .ac-map-section{grid-area:map;border-left:2px solid var(--text)}.ac-report-grid:has(.ac-map-section) .ac-report-aside{grid-area:rest}}@media (max-width:560px){.ac-card-header,.ac-sec,.ac-watch,.ac-disclaimer,.ac-sources-wrap,.ac-method-note{padding-left:14px;padding-right:14px}.ac-glance dl{grid-template-columns:repeat(2,minmax(0,1fr))}.ac-tile{padding:10px 12px}.ac-tile:last-child:nth-child(odd),.ac-tile:nth-child(odd):has(+.ac-tile[hidden]:last-child){grid-column:1/-1}.ac-tile-v{font-size:var(--fs-4)}.ac-hd-actions{width:100%}.ac-hd-actions>*{flex:1 1 auto;justify-content:center;white-space:nowrap;padding:0 10px}.ac-timeline li{grid-template-columns:1fr;gap:0}}.ac-before h4{font-size:var(--fs-3);margin:14px 0 6px}.ac-before p{font-size:var(--fs-2)}.ac-before .src-cite{font-size:var(--fs-1);color:var(--text-3)}.ac-questions{padding-left:22px;margin:8px 0 0;font-size:var(--fs-2)}.ac-questions li{margin-bottom:10px}.ac-q{display:block;font-weight:var(--w-bold)}.ac-because{display:block;font-size:var(--fs-1);color:var(--text-3)}.ac-s32-list{font-size:var(--fs-2);margin:0 0 6px;padding-left:20px}.ac-s32-list li{margin-bottom:6px}.ac-print-meta{display:none}@media print{.ac-print-meta{display:block;font-size:var(--fs-1);margin-top:16px;overflow-wrap:anywhere}.ac-questions li,.ac-s32-list li{break-inside:avoid}.ac-before h3,.ac-before h4,.ac-exp-checks-h{break-after:avoid}.ac-map-section .dmap-legend,.ac-map-section .dmap-skip,.ac-copy-btn,.ac-charges-form,.ac-watch,.ac-share-bar,.ac-hd-actions,.ac-decide,.ac-print-hide{display:none!important}.ac-more:not([open])>.ac-more-body{display:block}.ac-card{border:0;padding:0;margin:0}}
.sib-h{font-size:var(--fs-4);margin:22px 0 8px}.sib-sub{color:var(--muted);font-size:var(--fs-2);font-weight:400}.sib-answer .tool-answer__figure{font-size:var(--fs-5);letter-spacing:0;line-height:var(--lh-snug,1.3);margin:4px 0 8px;max-width:40em}.sib-addr{position:relative}.sib-addr .ac-listbox{top:100%}.sib-addr-status{font-size:var(--fs-2);margin:6px 0 0;min-height:1.3em}.sib-addr-status[data-kind=ok]{font-weight:700}.sib-addr-status[data-kind=error]{color:var(--negative,#962E20)}.sib-fieldset{grid-column:1/-1;border:0;padding:0;margin:8px 0 0}.sib-fieldset legend{font-weight:700;font-size:var(--fs-3);padding:0;margin:0 0 4px}.sib-note{border-left:4px solid var(--line-2,#7A7673);padding:8px 12px;margin:12px 0;font-size:var(--fs-2);background:var(--mist,#F4F2F0)}.sib-factors{list-style:none;padding:0;margin:0;display:grid;gap:12px}.sib-factor{border:1px solid var(--line);border-left:5px solid var(--line-2,#7A7673);padding:12px 14px}.sib-factor.sib-tier1{border-left-color:var(--accent-fill,#D12B10)}.sib-factor.sib-tier2{border-left-color:var(--ink,#201E1D)}.sib-factor.sib-unknown{border-style:dashed}.sib-f-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:var(--fs-1);color:var(--muted)}.sib-f-head .tool-badge{text-transform:uppercase;letter-spacing:.06em}.sib-factor h4{margin:6px 0 4px;font-size:var(--fs-3)}.sib-factor p{margin:4px 0;font-size:var(--fs-2);line-height:var(--lh-snug,1.35)}.sib-action{font-weight:700}.sib-src{color:var(--muted);font-size:var(--fs-1)}.sib-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:var(--fs-2);font-weight:700}.sib-table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.sib-table th,.sib-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.sib-table th[scope=row]{font-weight:400}.sib-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sib-table tr.sib-total th,.sib-table tr.sib-total td{font-weight:700}.sib-tablewrap{overflow-x:auto}.sib-trend{margin:0 0 6px;color:var(--muted);font-size:var(--fs-3)}.sib-qs{margin:0;padding-left:20px;display:grid;gap:6px;font-size:var(--fs-2)}.sib-qs-h{margin:14px 0 4px;font-size:var(--fs-3)}.sib-steps{margin:8px 0 0;padding-left:20px;font-size:var(--fs-2);display:grid;gap:4px}.sib-examples a{font-weight:700}.tool-working h4{margin:14px 0 4px;font-size:var(--fs-3)}.tool-working ul{margin:0;padding-left:20px}@media(max-width:480px){.sib-table th,.sib-table td{padding:8px 4px}}