/* isla-ui v1.1.0 · generated by tools/isla-ui-build.js from isla-ui/tokens.json + isla-ui/components.css. DO NOT EDIT this copy. */
:root,[data-iu-theme="command-centre"]{--iu-s-1:4px;--iu-s-2:8px;--iu-s-3:12px;--iu-s-4:16px;--iu-s-5:24px;--iu-s-6:32px;--iu-s-7:48px;--iu-s-8:64px;--iu-fs-legal:11px;--iu-fs-cap:12px;--iu-fs-sm:14px;--iu-fs-body:16px;--iu-fs-lg:18px;--iu-fs-xl:20px;--iu-fs-h3:24px;--iu-fs-h2:32px;--iu-fs-h1:40px;--iu-fs-hero:56px;--iu-lh-body:1.5;--iu-lh-head:1.2;--iu-lh-tight:1.1;--iu-track-caps:.12em;--iu-track-head:.045em;--iu-track-btn:.10em;--iu-weight-body:400;--iu-weight-strong:600;--iu-weight-head:650;--iu-weight-bold:700;--iu-tap:44px;--iu-tap-lg:48px;--iu-bar-h:56px;--iu-hair:1px;--iu-grid:44px;--iu-w-read:680px;--iu-w-form:480px;--iu-w-cards:1200px;--iu-w-desk:1440px;--iu-rail-w:280px;--iu-ink:#04070c;--iu-ink-2:rgba(10,20,30,.78);--iu-ink-3:#0b1622;--iu-ink-4:#122030;--iu-cyan:#37e0ff;--iu-cyan-2:#1fb6d4;--iu-cyan-soft:rgba(55,224,255,.10);--iu-line:rgba(55,224,255,.24);--iu-line-2:rgba(55,224,255,.12);--iu-bone:#d9eaf2;--iu-dim:#8fa8b6;--iu-faint:#6f8796;--iu-brass:#c9a86a;--iu-brass-2:#9c8149;--iu-brass-soft:rgba(201,168,106,.14);--iu-on-brass:#080c10;--iu-teal:#12b5be;--iu-ok:#63e0a0;--iu-watch:#ffb347;--iu-alert:#ff6b7a;--iu-violet:#a78bfa;--iu-scrim:rgba(4,7,12,.94);--iu-gridline:rgba(55,224,255,.028);--iu-font-serif:"Iowan Old Style","Source Serif 4",Charter,Georgia,"Times New Roman",serif;--iu-font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--iu-font-mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,"Liberation Mono",monospace;--iu-r-1:2px;--iu-r-2:3px;--iu-r-3:4px;--iu-r-pill:999px;--iu-glow-cyan:rgba(55,224,255,.30);--iu-glow-brass:rgba(201,168,106,.22);--iu-series-1:#37e0ff;--iu-series-2:#c9a86a;--iu-series-3:#63e0a0;--iu-series-4:#a78bfa;--iu-series-5:#ffb347;--iu-series-6:#8fa8b6}
[data-iu-theme="deep-water-ledger"]{--iu-s-1:4px;--iu-s-2:8px;--iu-s-3:12px;--iu-s-4:16px;--iu-s-5:24px;--iu-s-6:32px;--iu-s-7:48px;--iu-s-8:64px;--iu-fs-legal:11px;--iu-fs-cap:12px;--iu-fs-sm:14px;--iu-fs-body:16px;--iu-fs-lg:18px;--iu-fs-xl:20px;--iu-fs-h3:24px;--iu-fs-h2:32px;--iu-fs-h1:40px;--iu-fs-hero:56px;--iu-lh-body:1.5;--iu-lh-head:1.2;--iu-lh-tight:1.1;--iu-track-caps:.12em;--iu-track-head:.045em;--iu-track-btn:.10em;--iu-weight-body:400;--iu-weight-strong:600;--iu-weight-head:650;--iu-weight-bold:700;--iu-tap:44px;--iu-tap-lg:48px;--iu-bar-h:56px;--iu-hair:1px;--iu-grid:44px;--iu-w-read:680px;--iu-w-form:480px;--iu-w-cards:1200px;--iu-w-desk:1440px;--iu-rail-w:280px;--iu-ink:#04202b;--iu-ink-2:rgba(10,47,61,.86);--iu-ink-3:#0a2f3d;--iu-ink-4:#11404f;--iu-cyan:#5fe3e0;--iu-cyan-2:#3cc4c1;--iu-cyan-soft:rgba(95,227,224,.10);--iu-line:rgba(95,227,224,.30);--iu-line-2:rgba(95,227,224,.14);--iu-bone:#e4f1f5;--iu-dim:#8fb7c4;--iu-faint:#6f97a4;--iu-brass:#e3c17c;--iu-brass-2:#b8975a;--iu-brass-soft:rgba(227,193,124,.14);--iu-on-brass:#04202b;--iu-teal:#12b5be;--iu-ok:#63e0a0;--iu-watch:#ffb347;--iu-alert:#ff6b7a;--iu-violet:#b9a3ff;--iu-scrim:rgba(4,32,43,.94);--iu-gridline:rgba(95,227,224,.03);--iu-font-serif:"Iowan Old Style","Source Serif 4",Charter,Georgia,"Times New Roman",serif;--iu-font-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--iu-font-mono:ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace;--iu-r-1:2px;--iu-r-2:4px;--iu-r-3:6px;--iu-r-pill:999px;--iu-glow-cyan:rgba(95,227,224,.28);--iu-glow-brass:rgba(227,193,124,.22);--iu-series-1:#5fe3e0;--iu-series-2:#e3c17c;--iu-series-3:#63e0a0;--iu-series-4:#b9a3ff;--iu-series-5:#ffb347;--iu-series-6:#8fb7c4}
/* ── isla-ui v1 · components ────────────────────────────────────────────────────────────────────────────────────────
   Every class here enforces a rule of Isla Tech PR/UI_STANDARD.md (the § is beside it). Colours, type and spacing
   come ONLY from the --iu-* tokens above (generated from isla-ui/tokens.json). A page opts in with
   <html data-iu-theme="command-centre">; no theme attribute = command-centre. Docs + the copy-this page:
   ISLA_UI.md and todoculebra.com/isla-ui.html. The look gate (tools/ui-sweep.js, check "look") fails a page that
   paints outside these tokens or hand-styles a component a class here already covers. */

/* ground (§2 scrollbars wear the theme; the Life Ledger ink + 44 px cyan grid + brass glow) */
html[data-iu-theme],html.iu{color-scheme:dark;scrollbar-color:var(--iu-line) var(--iu-ink);-webkit-text-size-adjust:100%}
html[data-iu-theme] body,html.iu body,.iu-ground{margin:0;background-color:var(--iu-ink);color:var(--iu-bone);
  font:var(--iu-weight-body) var(--iu-fs-body)/var(--iu-lh-body) var(--iu-font-sans);
  background-image:radial-gradient(900px 380px at 50% -10%,var(--iu-brass-soft),transparent 62%),
    repeating-linear-gradient(0deg,var(--iu-gridline) 0 1px,transparent 1px var(--iu-grid)),
    repeating-linear-gradient(90deg,var(--iu-gridline) 0 1px,transparent 1px var(--iu-grid));
  background-attachment:fixed}
html[data-iu-theme] *,html[data-iu-theme] *::before,html[data-iu-theme] *::after{box-sizing:border-box}
html[data-iu-theme] ::-webkit-scrollbar{width:10px;height:10px}
html[data-iu-theme] ::-webkit-scrollbar-track{background:var(--iu-ink)}
html[data-iu-theme] ::-webkit-scrollbar-thumb{background:var(--iu-ink-4);border:2px solid var(--iu-ink);border-radius:var(--iu-r-3)}
html[data-iu-theme] :focus-visible{outline:2px solid var(--iu-cyan);outline-offset:2px}
html[data-iu-theme] [hidden]{display:none!important}
:where(html[data-iu-theme]) :where(a){color:var(--iu-cyan)}
:where(html[data-iu-theme]) :where(button,input,select,textarea){font:inherit;color:inherit}

/* ui-kit (hub-site/ui-kit.css, §3 form controls) reads its --ui-* knobs from these tokens: one look for fields too */
html[data-iu-theme]{--ui-accent:var(--iu-cyan);--ui-accent-soft:var(--iu-cyan-soft);--ui-on-accent:var(--iu-ink);--ui-surface:var(--iu-ink-3);
  --ui-ink:var(--iu-bone);--ui-ink-2:var(--iu-dim);--ui-text:var(--iu-bone);--ui-label:var(--iu-dim);--ui-rule:var(--iu-line);
  --ui-radius:var(--iu-r-2);--ui-font:var(--iu-font-sans);--ui-warn:var(--iu-watch);--ui-h:var(--iu-tap);--ui-gap:var(--iu-s-2)}

/* layout (§2 gutters 16 / 24 / 32, max widths, 8 pt rhythm) */
.iu-wrap{width:100%;max-width:var(--iu-w-desk);margin:0 auto;padding:0 var(--iu-s-4)}
.iu-wrap--read{max-width:calc(var(--iu-w-read) + 2 * var(--iu-s-4))}
.iu-wrap--cards{max-width:calc(var(--iu-w-cards) + 2 * var(--iu-s-4))}
@media (min-width:431px){.iu-wrap{padding:0 var(--iu-s-5)}}
@media (min-width:1047px){.iu-wrap{padding:0 var(--iu-s-6)}}
.iu-stack{display:flex;flex-direction:column;gap:var(--iu-s-4)}
.iu-stack--lg{gap:var(--iu-s-6)}
.iu-row{display:flex;align-items:center;gap:var(--iu-s-2);flex-wrap:wrap}
.iu-grid{display:grid;gap:var(--iu-s-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}
.iu-grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
@media (max-width:420px){.iu-grid,.iu-grid--2{grid-template-columns:1fr}}
.iu-section{margin:var(--iu-s-6) 0}

/* type (§5: floors 16 / 14 / 12 / 11; caps 12 px at .12em; headings wrap on a word) */
.iu-h1,.iu-h2,.iu-h3{margin:0;font-family:var(--iu-font-sans);font-weight:var(--iu-weight-head);letter-spacing:var(--iu-track-head);
  text-transform:uppercase;line-height:var(--iu-lh-head);color:var(--iu-bone);overflow-wrap:normal}
.iu-h1{font-size:clamp(var(--iu-fs-h3),5vw,var(--iu-fs-h1))}
.iu-h2{font-size:clamp(var(--iu-fs-xl),3.4vw,var(--iu-fs-h2))}
.iu-h3{font-size:var(--iu-fs-lg)}
.iu-h1 b,.iu-h2 b,.iu-h3 b{color:var(--iu-brass);font-weight:var(--iu-weight-bold)}
.iu-headline{margin:0;font-size:var(--iu-fs-xl);font-weight:var(--iu-weight-strong);line-height:var(--iu-lh-head);color:var(--iu-bone)}
.iu-headline em{font-style:normal;color:var(--iu-cyan)}
.iu-kicker{display:inline-block;white-space:nowrap;font:var(--iu-weight-bold) var(--iu-fs-cap)/1.2 var(--iu-font-sans);letter-spacing:var(--iu-track-caps);
  text-transform:uppercase;color:var(--iu-cyan-2)}
.iu-text{margin:0;max-width:var(--iu-w-read);color:var(--iu-bone)}
.iu-muted{color:var(--iu-dim)}
.iu-small{font-size:var(--iu-fs-sm)}
.iu-source{margin:0;font-size:var(--iu-fs-cap);line-height:1.4;color:var(--iu-faint)}
.iu-mono,.iu-num{font-family:var(--iu-font-mono);font-variant-numeric:tabular-nums}
@media (max-width:480px){.iu-eb-more{display:none}}
@media (max-width:899px){.iu-eb-long{display:none}}

/* money (§5b: costs and negatives in parentheses, money in brass) — IslaUI.money() writes the text and the class */
.iu-money{font-family:var(--iu-font-mono);font-variant-numeric:tabular-nums;color:var(--iu-brass);white-space:nowrap}
.iu-money.is-out,.iu-neg{color:var(--iu-watch)}
.iu-money.is-loss{color:var(--iu-alert)}

/* page bar (§2: brand on the left edge, the main action on the right edge, ≤ 64 px, safe area, reserves its own space) */
.iu-bar{position:sticky;top:0;z-index:20;background:var(--iu-scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:var(--iu-hair) solid var(--iu-line-2);padding:env(safe-area-inset-top,0px) 0 0}
.iu-bar__in{max-width:var(--iu-w-desk);margin:0 auto;min-height:var(--iu-bar-h);display:flex;align-items:center;gap:var(--iu-s-2);
  padding:var(--iu-s-1) var(--iu-s-4)}
@media (min-width:431px){.iu-bar__in{padding:var(--iu-s-1) var(--iu-s-5)}}
@media (min-width:1047px){.iu-bar__in{padding:var(--iu-s-1) var(--iu-s-6)}}
.iu-brand{display:inline-flex;align-items:center;gap:var(--iu-s-2);min-width:0;min-height:var(--iu-tap);color:var(--iu-bone);text-decoration:none;
  font:var(--iu-weight-bold) var(--iu-fs-sm)/1.2 var(--iu-font-sans);letter-spacing:var(--iu-track-caps);text-transform:uppercase;white-space:nowrap}
.iu-brand b{color:var(--iu-brass)}
.iu-brand img,.iu-face{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:50% 60%;flex:none;display:block}
.iu-brand__sub{color:var(--iu-dim);font-weight:var(--iu-weight-strong);overflow:hidden;text-overflow:ellipsis}
.iu-bar__end{margin-left:auto;display:flex;align-items:center;gap:var(--iu-s-2);flex:none}
@media (max-width:480px){.iu-brand__sub{display:none}}

/* the call pill's slot (owned by public/voice-call.js; isla-ui only places the slot: empty = takes no room) */
.iu-call-anchor{display:inline-flex;align-items:center;min-height:var(--iu-tap)}
.iu-call-anchor:empty{display:none}

/* buttons (§3: 44 px touch / 32 pointer; one primary per screen, brass = money and the main action) */
.iu-btn{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--iu-s-2);
  min-height:var(--iu-tap);padding:var(--iu-s-2) var(--iu-s-4);border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-2);
  background:var(--iu-cyan-soft);color:var(--iu-bone);font:var(--iu-weight-bold) var(--iu-fs-sm)/1.2 var(--iu-font-sans);letter-spacing:var(--iu-track-btn);
  text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer}
.iu-btn:hover{border-color:var(--iu-cyan);color:var(--iu-cyan)}
.iu-btn:disabled,.iu-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.iu-btn--money{background:linear-gradient(180deg,var(--iu-brass),var(--iu-brass-2));border-color:var(--iu-brass);color:var(--iu-on-brass);min-height:var(--iu-tap-lg)}
.iu-btn--money:hover{color:var(--iu-on-brass);box-shadow:0 0 0 3px var(--iu-glow-brass)}
.iu-btn--quiet{background:transparent;border-color:transparent;color:var(--iu-dim)}
.iu-btn--quiet:hover{border-color:var(--iu-line);color:var(--iu-bone)}
.iu-btn--alert{background:transparent;border-color:var(--iu-alert);color:var(--iu-alert)}
.iu-btn--icon{width:var(--iu-tap);padding:0}
.iu-btn--block{display:flex;width:100%;max-width:var(--iu-w-form)}

/* status chip (§5 one line at every width; §13 colour follows severity: alert red, watch amber, ok green, info cyan) */
.iu-chip{display:inline-flex;align-items:center;gap:var(--iu-s-1);white-space:nowrap;min-height:24px;padding:var(--iu-s-1) var(--iu-s-2);
  border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-1);background:var(--iu-cyan-soft);color:var(--iu-cyan);
  font:var(--iu-weight-strong) var(--iu-fs-cap)/1.2 var(--iu-font-mono);letter-spacing:.04em;vertical-align:middle}
.iu-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.iu-chip--plain::before{display:none}
.iu-chip--ok{color:var(--iu-ok);border-color:currentColor;background:transparent}
.iu-chip--watch{color:var(--iu-watch);border-color:currentColor;background:transparent}
.iu-chip--alert{color:var(--iu-alert);border-color:currentColor;background:transparent}
.iu-chip--money{color:var(--iu-brass);border-color:var(--iu-brass-2);background:var(--iu-brass-soft)}
.iu-chip--off{color:var(--iu-faint);border-color:var(--iu-line-2);background:transparent}
button.iu-chip,a.iu-chip{min-height:var(--iu-tap);padding:var(--iu-s-2) var(--iu-s-3);cursor:pointer;text-decoration:none}
button.iu-chip[aria-pressed="true"],a.iu-chip[aria-current]{background:var(--iu-cyan);color:var(--iu-ink);border-color:var(--iu-cyan)}

/* panel / card (§2 cards in a row line up: a column whose body grows and whose actions sit on the bottom edge; §7 height
   set by content; the cyan L-brackets top-left + bottom-right are the Isla Tech mark of a live card) */
.iu-panel{position:relative;display:flex;flex-direction:column;gap:var(--iu-s-3);min-width:0;padding:var(--iu-s-4);
  background:var(--iu-ink-2);border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-2);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (min-width:640px){.iu-panel{padding:var(--iu-s-5)}}
.iu-panel::before,.iu-panel::after{content:"";position:absolute;width:16px;height:16px;pointer-events:none;border:0 solid var(--iu-cyan);
  filter:drop-shadow(0 0 4px var(--iu-glow-cyan))}
.iu-panel::before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.iu-panel::after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.iu-panel--flat::before,.iu-panel--flat::after{display:none}
.iu-panel--money{border-color:var(--iu-brass-2)}
.iu-panel--money::before,.iu-panel--money::after{border-color:var(--iu-brass)}
.iu-panel--alert{border-color:var(--iu-alert)}
.iu-panel__head{display:flex;align-items:flex-start;gap:var(--iu-s-3);flex-wrap:wrap}
.iu-panel__head > :first-child{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--iu-s-1)}
.iu-panel__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--iu-s-3)}
.iu-panel__foot{margin-top:auto;display:flex;align-items:center;gap:var(--iu-s-2);flex-wrap:wrap;padding-top:var(--iu-s-3);border-top:var(--iu-hair) solid var(--iu-line-2)}
.iu-panel__foot .iu-source{margin-right:auto}

/* room tile (the command-centre door: the whole tile is the 44 px+ target; number / icon beside the title, §7) */
.iu-tile{position:relative;display:flex;flex-direction:column;gap:var(--iu-s-2);min-height:var(--iu-tap);padding:var(--iu-s-4);
  background:var(--iu-ink-2);border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-2);color:var(--iu-bone);text-decoration:none;
  text-align:left;cursor:pointer;font:inherit;overflow:hidden}
.iu-tile:hover{border-color:var(--iu-cyan);box-shadow:0 0 0 1px var(--iu-cyan),0 0 24px var(--iu-glow-cyan)}
.iu-tile__top{display:flex;align-items:center;gap:var(--iu-s-3)}
.iu-tile__icon{width:24px;height:24px;flex:none;color:var(--iu-cyan)}
.iu-tile__title{font:var(--iu-weight-bold) var(--iu-fs-body)/1.25 var(--iu-font-sans);letter-spacing:var(--iu-track-head);text-transform:uppercase}
.iu-tile__line{margin:0;font-size:var(--iu-fs-sm);line-height:1.4;color:var(--iu-dim)}
.iu-tile__meta{margin-top:auto;display:flex;gap:var(--iu-s-2);flex-wrap:wrap}

/* stat tile (§7 stat strips: the number BESIDE its label, equal columns split by a hairline, two short label lines) */
.iu-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));border:var(--iu-hair) solid var(--iu-line-2);border-radius:var(--iu-r-2);background:var(--iu-ink-2)}
.iu-stat{display:flex;align-items:center;gap:var(--iu-s-3);min-width:0;padding:var(--iu-s-3) var(--iu-s-4);border-left:var(--iu-hair) solid var(--iu-line-2)}
.iu-stat:first-child{border-left:0}
@media (max-width:420px){.iu-stats{grid-template-columns:1fr 1fr}.iu-stat:nth-child(odd){border-left:0}.iu-stat:nth-child(n+3){border-top:var(--iu-hair) solid var(--iu-line-2)}}
.iu-stat__num{font:var(--iu-weight-bold) var(--iu-fs-h3)/1 var(--iu-font-mono);font-variant-numeric:tabular-nums;color:var(--iu-bone);white-space:nowrap}
.iu-stat__num.iu-money{color:var(--iu-brass);text-shadow:0 0 12px var(--iu-glow-brass)}
.iu-stat__label{font-size:var(--iu-fs-cap);line-height:1.3;color:var(--iu-dim);letter-spacing:.02em}
.iu-stat__num[data-state="loading"],.iu-stat__num[data-state="failed"]{color:var(--iu-faint)}

/* table (§13 a table scrolls sideways inside its own box, never the page; numbers mono, right-aligned; rows ≥ 44 px) */
.iu-table-wrap{width:100%;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--iu-line) transparent;border:var(--iu-hair) solid var(--iu-line-2);border-radius:var(--iu-r-2)}
.iu-table{width:100%;border-collapse:collapse;font-size:var(--iu-fs-sm);line-height:1.4}
.iu-table th{position:sticky;top:0;background:var(--iu-ink-3);text-align:left;font:var(--iu-weight-bold) var(--iu-fs-cap)/1.3 var(--iu-font-sans);letter-spacing:var(--iu-track-caps);
  text-transform:uppercase;color:var(--iu-dim);padding:var(--iu-s-3);border-bottom:var(--iu-hair) solid var(--iu-line);white-space:nowrap}
.iu-table td{padding:var(--iu-s-3);border-bottom:var(--iu-hair) solid var(--iu-line-2);vertical-align:top;color:var(--iu-bone)}
.iu-table tr:last-child td{border-bottom:0}
.iu-table tbody tr:hover td{background:var(--iu-cyan-soft)}
.iu-table .is-num,.iu-table th.is-num{text-align:right;font-family:var(--iu-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.iu-table tr[data-open] td{background:var(--iu-cyan-soft)}

/* tab row (§3 a chip row never slices without a cue: snap + edge fade; 44 px; the selected tab underlined in cyan) */
.iu-tabs{display:flex;gap:var(--iu-s-1);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;border-bottom:var(--iu-hair) solid var(--iu-line-2);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--iu-s-4),#000 calc(100% - var(--iu-s-5)),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 var(--iu-s-4),#000 calc(100% - var(--iu-s-5)),transparent);
  padding:0 var(--iu-s-4)}
.iu-tabs::-webkit-scrollbar{display:none}
.iu-tab{appearance:none;-webkit-appearance:none;flex:none;scroll-snap-align:start;min-height:var(--iu-tap);padding:var(--iu-s-2) var(--iu-s-3);background:none;border:0;
  border-bottom:2px solid transparent;color:var(--iu-dim);font:var(--iu-weight-bold) var(--iu-fs-sm)/1.2 var(--iu-font-sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.iu-tab:hover{color:var(--iu-bone)}
.iu-tab[aria-selected="true"]{color:var(--iu-cyan);border-bottom-color:var(--iu-cyan)}

/* desk = rail + main (rail is a sticky column at ≥ 1024; on a phone a snap strip with an edge fade, never an inner scroll box) */
.iu-desk{display:grid;gap:var(--iu-s-5);grid-template-columns:1fr;align-items:start}
@media (min-width:1024px){.iu-desk{grid-template-columns:var(--iu-rail-w) minmax(0,1fr)}}
.iu-rail{display:flex;flex-direction:column;gap:var(--iu-s-1);min-width:0}
@media (min-width:1024px){.iu-rail{position:sticky;top:calc(var(--iu-bar-h) + var(--iu-s-4))}}
@media (max-width:1023px){.iu-rail{flex-direction:row;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--iu-s-6)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--iu-s-6)),transparent);padding-right:var(--iu-s-6)}
  .iu-rail::-webkit-scrollbar{display:none}.iu-rail .iu-rail__head{display:none}}
.iu-rail__head{padding:0 var(--iu-s-1) var(--iu-s-2)}
.iu-rail__item{appearance:none;-webkit-appearance:none;display:flex;align-items:center;gap:var(--iu-s-3);min-height:var(--iu-tap);padding:var(--iu-s-2) var(--iu-s-3);
  background:transparent;border:var(--iu-hair) solid transparent;border-radius:var(--iu-r-2);color:var(--iu-bone);text-align:left;text-decoration:none;font:inherit;font-size:var(--iu-fs-sm);cursor:pointer;scroll-snap-align:start}
@media (max-width:1023px){.iu-rail__item{flex:none;border-color:var(--iu-line-2);white-space:nowrap}}
.iu-rail__item:hover{border-color:var(--iu-line)}
.iu-rail__item[aria-current="true"]{background:var(--iu-cyan-soft);border-color:var(--iu-cyan);color:var(--iu-cyan)}
.iu-rail__rank{font:var(--iu-weight-bold) var(--iu-fs-cap)/1 var(--iu-font-sans);font-variant-numeric:tabular-nums;color:var(--iu-brass);min-width:2ch}
.iu-rail__name{flex:1;min-width:0}
.iu-rail__meta{font:var(--iu-fs-cap)/1.2 var(--iu-font-sans);font-variant-numeric:tabular-nums;color:var(--iu-dim);white-space:nowrap}

/* chart box (the view engine's canvas; IslaUI.chart draws in it with IslaUI.chart.theme; the tip never leaves the box) */
.iu-chart{position:relative;width:100%;height:260px}
.iu-chart--tall{height:340px}
@media (max-width:480px){.iu-chart{height:220px}}
.iu-chart canvas{display:block;width:100%;height:100%}
.iu-chart__tip{position:absolute;display:none;pointer-events:none;z-index:2;max-width:260px;padding:var(--iu-s-2) var(--iu-s-3);background:var(--iu-ink-3);
  border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-2);font-size:var(--iu-fs-cap);line-height:1.4;color:var(--iu-bone)}
.iu-legend{display:flex;flex-wrap:wrap;gap:var(--iu-s-2) var(--iu-s-4);margin:0;padding:0;list-style:none;font-size:var(--iu-fs-cap);color:var(--iu-dim)}
.iu-legend li{display:inline-flex;align-items:center;gap:var(--iu-s-2);white-space:nowrap}
.iu-legend i{width:12px;height:2px;background:currentColor;display:inline-block}

/* states (§7: never a number we did not get; one red line at the top with the fix; an empty day is a sentence) */
.iu-alert{display:flex;align-items:center;gap:var(--iu-s-3);flex-wrap:wrap;padding:var(--iu-s-3) var(--iu-s-4);border:var(--iu-hair) solid var(--iu-alert);
  border-radius:var(--iu-r-2);background:var(--iu-ink-3);color:var(--iu-alert);font-size:var(--iu-fs-sm)}
.iu-alert .iu-btn{margin-left:auto}
.iu-empty{margin:0;color:var(--iu-dim);font-size:var(--iu-fs-sm)}
.iu-skel{display:inline-block;min-width:4ch;color:var(--iu-faint)}

/* toast (§4 never covers content it was not asked to: bottom centre, above the safe area, gone in 4 s; aria-live) */
.iu-toasts{position:fixed;left:50%;bottom:calc(var(--iu-s-4) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;
  display:flex;flex-direction:column;gap:var(--iu-s-2);width:min(440px,calc(100vw - 2 * var(--iu-s-4)));pointer-events:none}
.iu-toast{pointer-events:auto;display:flex;align-items:center;gap:var(--iu-s-3);min-height:var(--iu-tap);padding:var(--iu-s-2) var(--iu-s-4);background:var(--iu-ink-3);
  border:var(--iu-hair) solid var(--iu-line);border-left:3px solid var(--iu-cyan);border-radius:var(--iu-r-2);color:var(--iu-bone);font-size:var(--iu-fs-sm)}
.iu-toast--ok{border-left-color:var(--iu-ok)}.iu-toast--watch{border-left-color:var(--iu-watch)}.iu-toast--alert{border-left-color:var(--iu-alert)}

/* install card (add the desk to the home screen; one card, the face, one sentence, one button; hidden when installed) */
.iu-install{display:flex;align-items:center;gap:var(--iu-s-3);flex-wrap:wrap;padding:var(--iu-s-3) var(--iu-s-4);background:var(--iu-ink-2);
  border:var(--iu-hair) solid var(--iu-brass-2);border-radius:var(--iu-r-2)}
.iu-install .iu-face{width:40px;height:40px}
.iu-install__text{flex:1;min-width:180px;margin:0;font-size:var(--iu-fs-sm);color:var(--iu-bone)}
.iu-install__text b{display:block;color:var(--iu-brass);letter-spacing:var(--iu-track-head);text-transform:uppercase;font-size:var(--iu-fs-cap)}

/* sign-off (the foot of every Isla Tech page: the face · Isla Tech · product) */
.iu-foot{margin-top:var(--iu-s-7);padding:var(--iu-s-4) 0 calc(var(--iu-s-4) + env(safe-area-inset-bottom,0px));border-top:var(--iu-hair) solid var(--iu-brass-soft);
  text-align:center;font-size:var(--iu-fs-cap);color:var(--iu-dim)}
.iu-foot b{color:var(--iu-bone)}
@media print{.iu-bar,.iu-toasts,.iu-call-anchor{display:none}}

/* code block (copy-this blocks, logs: mono, its own sideways scroll, never the page's) */
.iu-code{margin:0;max-width:100%;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--iu-line) transparent;padding:var(--iu-s-3) var(--iu-s-4);
  background:var(--iu-ink-3);border:var(--iu-hair) solid var(--iu-line-2);border-radius:var(--iu-r-2);color:var(--iu-bone);
  font:var(--iu-fs-cap)/1.5 var(--iu-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}

/* ── THE REGISTER (v1.1, owner 10/19: "from a hedge fund, investment banking, M&A, private strategy consulting, McKinsey, that
   kind of stuff"), inside the house style. The answer first; one exhibit, one conclusion; every number with its unit, source and
   as-of; rows and sections numbered so any one can be called by number; a serif for the claim, tabular figures for the numbers;
   sharp corners, no decoration. ISLA_UI.md §10. ── */
.iu-action{margin:0;font:var(--iu-weight-strong) var(--iu-fs-xl)/1.25 var(--iu-font-serif);color:var(--iu-bone);letter-spacing:0;text-transform:none;max-width:56ch}
@media (min-width:640px){.iu-action{font-size:var(--iu-fs-h3)}}
.iu-action em{font-style:normal;color:var(--iu-brass)}
.iu-tracker{display:inline-flex;align-items:center;gap:var(--iu-s-2);white-space:nowrap;font:var(--iu-weight-bold) var(--iu-fs-cap)/1.2 var(--iu-font-sans);
  letter-spacing:var(--iu-track-caps);text-transform:uppercase;color:var(--iu-dim)}
.iu-tracker b{color:var(--iu-cyan);font-weight:var(--iu-weight-bold)}
.iu-exhibit{display:flex;flex-direction:column;gap:var(--iu-s-3);min-width:0;padding:var(--iu-s-4) var(--iu-s-5);background:var(--iu-ink-2);
  border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-1)}
.iu-exhibit__top{display:flex;align-items:flex-start;gap:var(--iu-s-4);justify-content:space-between}
.iu-exhibit__top .iu-tracker{order:2;flex:none}
.iu-exhibit__units{margin:0;font-size:var(--iu-fs-cap);color:var(--iu-dim)}
.iu-exhibit__foot{display:flex;flex-wrap:wrap;gap:var(--iu-s-1) var(--iu-s-4);padding-top:var(--iu-s-2);border-top:var(--iu-hair) solid var(--iu-line-2);font-size:var(--iu-fs-cap);color:var(--iu-faint)}
.iu-exhibit__foot b{color:var(--iu-dim);font-weight:var(--iu-weight-strong)}
.iu-answer{display:flex;flex-direction:column;gap:var(--iu-s-1);padding:var(--iu-s-3) var(--iu-s-4);border-left:2px solid var(--iu-brass);background:var(--iu-brass-soft)}
.iu-answer .iu-kicker{color:var(--iu-brass)}
.iu-answer p{margin:0;font:var(--iu-weight-strong) var(--iu-fs-lg)/1.4 var(--iu-font-serif);color:var(--iu-bone)}
.iu-unit{font:var(--iu-fs-cap)/1 var(--iu-font-sans);color:var(--iu-dim);margin-left:var(--iu-s-1)}
/* numbered rows: any row can be called by number ("row 4") */
.iu-table--numbered{counter-reset:iu-row}
.iu-table--numbered tbody tr{counter-increment:iu-row}
.iu-table--numbered tbody tr > :first-child::before{content:counter(iu-row) ".";display:inline-block;min-width:3ch;margin-right:var(--iu-s-2);
  font-family:var(--iu-font-sans);font-variant-numeric:tabular-nums;color:var(--iu-faint)}
.iu-table--numbered thead tr > :first-child::before{content:"#";display:inline-block;min-width:3ch;margin-right:var(--iu-s-2)}
.iu-table .is-total td{border-top:2px solid var(--iu-brass);font-weight:var(--iu-weight-bold)}
.iu-table--dense th,.iu-table--dense td{padding:var(--iu-s-1) var(--iu-s-2)}
/* numbered brief: sections 1, 2, 3 and their points 1.1, 1.2 */
.iu-brief{counter-reset:iu-sec;display:flex;flex-direction:column;gap:var(--iu-s-5);max-width:var(--iu-w-read)}
.iu-brief > section{counter-increment:iu-sec;counter-reset:iu-pt;display:flex;flex-direction:column;gap:var(--iu-s-2)}
.iu-brief > section > h3::before{content:counter(iu-sec) ".";margin-right:var(--iu-s-2);color:var(--iu-brass)}
.iu-brief > section > h3{margin:0;font:var(--iu-weight-strong) var(--iu-fs-lg)/1.3 var(--iu-font-serif);color:var(--iu-bone)}
.iu-brief > section > p{counter-increment:iu-pt;margin:0;padding-left:calc(4ch + var(--iu-s-2));text-indent:calc(-4ch - var(--iu-s-2))}
.iu-brief > section > p::before{content:counter(iu-sec) "." counter(iu-pt);display:inline-block;width:4ch;margin-right:var(--iu-s-2);text-indent:0;font-variant-numeric:tabular-nums;color:var(--iu-faint)}
/* the dense desk (the Bloomberg register): one screen, small type, tight rows, keys on show */
.iu-desk--dense{gap:var(--iu-s-3);font-size:var(--iu-fs-sm)}
.iu-desk--dense .iu-panel,.iu-desk--dense .iu-exhibit{padding:var(--iu-s-3);gap:var(--iu-s-2)}
.iu-desk--dense .iu-stat{padding:var(--iu-s-2) var(--iu-s-3)}
.iu-desk--dense .iu-stat__num{font-size:var(--iu-fs-xl)}
.iu-desk--dense .iu-chart{height:200px}
.iu-kbd{display:inline-block;min-width:2.2ch;padding:0 var(--iu-s-1);border:var(--iu-hair) solid var(--iu-line);border-radius:var(--iu-r-1);
  font:var(--iu-weight-strong) var(--iu-fs-cap)/1.6 var(--iu-font-mono);color:var(--iu-dim);text-align:center}
.iu-num,.iu-money,.iu-stat__num,.iu-table .is-num{font-family:var(--iu-font-sans);font-variant-numeric:tabular-nums lining-nums}
