/* Self-hosted faces for Mainframe (latin subset, only the weights Dispatch uses).
 * Files from Fontsource 5.3.0 (@fontsource/ibm-plex-sans, @fontsource/ibm-plex-mono,
 * @fontsource/rajdhani), SIL Open Font License 1.1; the licence texts sit beside the
 * files in src/web/fonts/. The family names here must match the stacks in
 * mainframe.generated.css (--citadl-font-sans, -mono, -display); if a file fails to
 * load, those stacks fall back to the system faces. */
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Rajdhani'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/rajdhani-latin-700-normal.woff2) format('woff2'); }

/* VENDORED — do not edit by hand.
 * Copied byte-for-byte (below this header) from citadltech/citadl-design-tokens,
 * build/web/tokens.css at commit 09d9d6b389d931c39bc5fdc405f8e8fc7a84c24b (main, 2026-10-30).
 * To update: copy that file again from the new commit and change the commit above.
 * Dispatch styles may read only the --citadl-* variables declared here.
 */

/* GENERATED — do not edit by hand.
 * Source of truth: tokens/tokens.json in citadltech/citadl-design-tokens.
 * Regenerate: npm run build:tokens
 *
 * Mainframe, the CITADL parent tier's design language, as values. Loaded by
 * citadl-admin and by any parent-level surface built later. Not consumed by
 * ATLS or Everyporch, which each have their own system.
 *
 * Each colour variable holds a bare HSL triplet rather than a colour, because
 * Tailwind reads them as hsl(var(--citadl-background)). Wrapping the value here
 * would produce hsl(hsl(...)) and every colour would fail to parse. Every
 * other variable holds a complete value: a font stack, 11px, 0.12em, 120ms.
 */

:root {
  /* Colour: bare HSL triplets, light values. */
  --citadl-background: 0 0% 100%;
  --citadl-foreground: 240 10% 4%;
  --citadl-muted: 240 5% 96%;
  --citadl-muted-foreground: 240 4% 44%;
  --citadl-border: 240 6% 90%;
  --citadl-accent: 26.4 81.3% 51.8%;
  --citadl-destructive: 0 72% 45%;
  --citadl-ok: 142 70% 28%;
  --citadl-warn: 42 100% 28%;

  /* Type, space, radius and motion: complete values, the same in both modes. */
  --citadl-font-sans: 'IBM Plex Sans', system-ui, sans-serif;
  --citadl-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --citadl-font-display: Rajdhani, 'IBM Plex Sans', sans-serif;
  --citadl-font-size-label: 11px;
  --citadl-font-size-body: 13px;
  --citadl-font-size-body-large: 15px;
  --citadl-font-size-title: 20px;
  --citadl-font-size-display: 28px;
  --citadl-letter-spacing-label: 0.12em;
  --citadl-letter-spacing-display: 0.18em;
  --citadl-letter-spacing-body: 0em;
  --citadl-radius-control: 2px;
  --citadl-space-tight: 4px;
  --citadl-space-cell: 8px;
  --citadl-space-stack: 12px;
  --citadl-space-panel: 16px;
  --citadl-space-section: 24px;
  --citadl-space-page: 32px;
  --citadl-duration-fast: 120ms;
  --citadl-duration-slow: 240ms;
  --citadl-hairline: 1px;
}

/* Dark is not an inversion. Only the tokens whose value actually changes are
 * re-declared, so nothing restyles — the accent is identical in both modes and
 * is deliberately absent below.
 *
 * A class, not prefers-color-scheme: citadl-admin sets Tailwind darkMode:
 * 'class', so an explicit choice beats the operating system. A consumer that
 * wants the media query pairs these values itself rather than editing this file.
 */
.dark {
  --citadl-background: 0 0% 10%;
  --citadl-foreground: 0 0% 91%;
  --citadl-muted: 0 0% 13%;
  --citadl-muted-foreground: 0 0% 71%;
  --citadl-border: 0 0% 19%;
  --citadl-destructive: 0 84% 72%;
  --citadl-ok: 142 50% 55%;
  --citadl-warn: 45 90% 58%;
}

/* Motion is small, and none when a person has asked for none. A surface that
 * reads the duration tokens honours prefers-reduced-motion without a second
 * rule of its own. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --citadl-duration-fast: 0ms;
    --citadl-duration-slow: 0ms;
  }
}

/* Dispatch in Mainframe, CITADL's design language.
 * Every colour, face, size, space, radius and duration is a --citadl-* variable from
 * mainframe.generated.css (vendored from citadltech/citadl-design-tokens). Nothing here
 * declares a literal of its own; test/web-style.test.ts fails the build if it does.
 * Pages render dark: <html class="dark">. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:hsl(var(--citadl-background));color-scheme:dark}
body{margin:0;font-family:var(--citadl-font-sans);font-size:var(--citadl-font-size-body-large);line-height:1.55;color:hsl(var(--citadl-foreground));background:hsl(var(--citadl-background))}
.wrap{max-width:calc(var(--citadl-space-page) * 24);margin:0 auto;padding:0 var(--citadl-space-panel)}
.wrap.wide{max-width:calc(var(--citadl-space-page) * 34)}
a{color:hsl(var(--citadl-foreground));text-decoration:underline;text-decoration-color:hsl(var(--citadl-muted-foreground));text-underline-offset:0.2em;transition:text-decoration-color var(--citadl-duration-fast)}
a:hover{text-decoration-color:hsl(var(--citadl-accent))}
:focus-visible{outline:calc(var(--citadl-hairline) * 2) solid hsl(var(--citadl-accent));outline-offset:calc(var(--citadl-hairline) * 2)}
code,.num{font-family:var(--citadl-font-mono);font-variant-numeric:tabular-nums}
code{font-size:var(--citadl-font-size-body);overflow-wrap:anywhere}
strong{font-weight:600}

/* ---------------------------------------------------------------- header */
header.top{border-bottom:var(--citadl-hairline) solid hsl(var(--citadl-border));background:hsl(var(--citadl-background))}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--citadl-space-stack);min-height:calc(var(--citadl-space-page) * 2)}
.brand{display:inline-flex;align-items:center;gap:var(--citadl-space-cell);text-decoration:none;color:hsl(var(--citadl-foreground))}
.brand .icon{width:var(--citadl-space-page);height:var(--citadl-space-page);flex:none}
.wordmark{font-family:var(--citadl-font-display);font-weight:700;font-size:var(--citadl-font-size-title);letter-spacing:var(--citadl-letter-spacing-display);text-transform:uppercase;line-height:1}
.icon .accent{stroke:hsl(var(--citadl-accent))}
.icon .line{stroke:hsl(var(--citadl-foreground))}
nav.top-links{display:flex;align-items:center;gap:var(--citadl-space-panel)}
button.link{background:none;border:0;color:hsl(var(--citadl-foreground));font:inherit;font-size:var(--citadl-font-size-body);padding:var(--citadl-space-stack) var(--citadl-space-tight);cursor:pointer;text-decoration:underline;text-decoration-color:hsl(var(--citadl-muted-foreground));text-underline-offset:0.2em}
button.link:hover{text-decoration-color:hsl(var(--citadl-accent))}

/* ---------------------------------------------------------------- type */
main{padding-top:var(--citadl-space-stack);padding-bottom:calc(var(--citadl-space-page) * 2)}
h1,h2,h3{font-family:var(--citadl-font-display);font-weight:700;letter-spacing:var(--citadl-letter-spacing-display);text-transform:uppercase;line-height:1.15}
h1{font-size:var(--citadl-font-size-display);margin:var(--citadl-space-section) 0 var(--citadl-space-stack)}
h2{font-size:var(--citadl-font-size-title);margin:var(--citadl-space-page) 0 var(--citadl-space-stack)}
h3{font-size:var(--citadl-font-size-body-large);margin:var(--citadl-space-section) 0 var(--citadl-space-cell)}
p{margin:0 0 var(--citadl-space-stack)}
.eyebrow,.label{font-family:var(--citadl-font-sans);font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase}
.eyebrow{color:hsl(var(--citadl-accent));margin:var(--citadl-space-section) 0 var(--citadl-space-tight)}
.eyebrow + h1,.eyebrow + h2{margin-top:0}
.label{color:hsl(var(--citadl-muted-foreground))}
.muted{color:hsl(var(--citadl-muted-foreground));font-size:var(--citadl-font-size-body)}
.crumbs{font-size:var(--citadl-font-size-body);color:hsl(var(--citadl-muted-foreground));margin-top:var(--citadl-space-panel)}
.crumbs a{color:hsl(var(--citadl-muted-foreground))}

/* ---------------------------------------------------------------- panels */
.card{display:block;position:relative;background:hsl(var(--citadl-muted));border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);padding:var(--citadl-space-panel);margin:var(--citadl-space-cell) 0;color:inherit;text-decoration:none;transition:border-color var(--citadl-duration-fast)}
a.card::before{content:"";position:absolute;left:calc(var(--citadl-hairline) * -1);top:calc(var(--citadl-hairline) * -1);bottom:calc(var(--citadl-hairline) * -1);width:calc(var(--citadl-hairline) * 2);background:transparent;border-radius:var(--citadl-radius-control) 0 0 var(--citadl-radius-control);transition:background-color var(--citadl-duration-fast)}
a.card:hover::before,a.card:focus-visible::before{background:hsl(var(--citadl-accent))}
a.card:focus-visible{outline-offset:0}
.row{display:flex;flex-wrap:wrap;gap:var(--citadl-space-tight) var(--citadl-space-stack);align-items:center}
.row + .row{margin-top:var(--citadl-space-tight)}
.snippet{margin-top:var(--citadl-space-cell)}
.actions-row{display:flex;flex-wrap:wrap;gap:var(--citadl-space-stack);align-items:center;margin-top:var(--citadl-space-stack)}

/* Badges: words, so the sans in spaced capitals; status from the status family only. */
.badge{display:inline-block;border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);padding:0 var(--citadl-space-cell);font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase;line-height:1.9;color:hsl(var(--citadl-foreground));vertical-align:middle}
.badge.em{border-color:hsl(var(--citadl-destructive));color:hsl(var(--citadl-destructive))}
.badge.ok{border-color:hsl(var(--citadl-ok));color:hsl(var(--citadl-ok))}

.flash,.error,.errors{border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-left-width:calc(var(--citadl-hairline) * 2);border-radius:var(--citadl-radius-control);background:hsl(var(--citadl-muted));padding:var(--citadl-space-stack) var(--citadl-space-panel);margin:var(--citadl-space-stack) 0}
.flash{border-left-color:hsl(var(--citadl-ok));color:hsl(var(--citadl-ok))}
.error,.errors{border-left-color:hsl(var(--citadl-destructive))}
.errors strong,.error{color:hsl(var(--citadl-destructive))}
.field-error{color:hsl(var(--citadl-destructive));font-size:var(--citadl-font-size-body);margin:var(--citadl-space-tight) 0 0}

dl.kv{display:grid;grid-template-columns:minmax(calc(var(--citadl-space-page) * 4),32%) 1fr;gap:var(--citadl-space-cell) var(--citadl-space-stack);margin:0;align-items:baseline}
dl.kv dt{font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase;color:hsl(var(--citadl-muted-foreground))}
dl.kv dd{margin:0;overflow-wrap:anywhere}

/* ---------------------------------------------------------------- transcript */
.turn{padding:var(--citadl-space-cell) var(--citadl-space-stack);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);margin:var(--citadl-space-cell) 0;max-width:92%;overflow-wrap:anywhere}
.turn.caller{background:hsl(var(--citadl-muted));margin-right:auto}
.turn.agent,.turn.staff{margin-left:auto}
.turn.system{font-size:var(--citadl-font-size-body);color:hsl(var(--citadl-muted-foreground));max-width:none}
.turn .who{display:block;font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase;color:hsl(var(--citadl-muted-foreground))}
.turn .who .num{letter-spacing:var(--citadl-letter-spacing-body);text-transform:none;font-weight:400}
audio{width:100%;margin:var(--citadl-space-cell) 0;color-scheme:dark}
details{margin:var(--citadl-space-stack) 0}
summary{cursor:pointer;padding:var(--citadl-space-cell) 0;color:hsl(var(--citadl-muted-foreground))}

/* ---------------------------------------------------------------- forms */
label{display:block;font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase;color:hsl(var(--citadl-muted-foreground));margin:var(--citadl-space-panel) 0 var(--citadl-space-tight)}
label.check{display:flex;align-items:center;gap:var(--citadl-space-stack);font-size:var(--citadl-font-size-body-large);font-weight:400;letter-spacing:var(--citadl-letter-spacing-body);text-transform:none;color:hsl(var(--citadl-foreground));margin:var(--citadl-space-cell) 0;min-height:calc(var(--citadl-space-section) * 2)}
input[type=text],input[type=password],input[type=tel],input[type=email],input[type=number],input[type=time],select,textarea{width:100%;font:inherit;color:hsl(var(--citadl-foreground));background:hsl(var(--citadl-background));padding:var(--citadl-space-cell) var(--citadl-space-stack);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);min-height:calc(var(--citadl-space-section) * 2);transition:border-color var(--citadl-duration-fast)}
input[type=tel],input[type=number],input[type=time]{font-family:var(--citadl-font-mono)}
input:hover,select:hover,textarea:hover{border-color:hsl(var(--citadl-muted-foreground))}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:hsl(var(--citadl-accent));outline-offset:0}
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:hsl(var(--citadl-destructive))}
input[type=checkbox]{width:var(--citadl-space-section);height:var(--citadl-space-section);accent-color:hsl(var(--citadl-accent));flex:none;margin:0}
textarea{min-height:calc(var(--citadl-space-page) * 3);resize:vertical}
.hint{font-size:var(--citadl-font-size-body);font-weight:400;letter-spacing:var(--citadl-letter-spacing-body);text-transform:none;color:hsl(var(--citadl-muted-foreground));margin:var(--citadl-space-tight) 0 var(--citadl-space-cell)}
fieldset{min-width:0;border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);padding:var(--citadl-space-cell) var(--citadl-space-panel) var(--citadl-space-panel);margin:var(--citadl-space-section) 0;background:hsl(var(--citadl-muted))}
fieldset input[type=text],fieldset input[type=tel],fieldset input[type=email],fieldset input[type=number],fieldset input[type=time],fieldset select,fieldset textarea{background:hsl(var(--citadl-background))}
legend{font-family:var(--citadl-font-display);font-weight:700;font-size:var(--citadl-font-size-body-large);letter-spacing:var(--citadl-letter-spacing-display);text-transform:uppercase;padding:0 var(--citadl-space-cell)}
.day{display:grid;grid-template-columns:calc(var(--citadl-space-page) * 1.75) 1fr;gap:var(--citadl-space-tight) var(--citadl-space-stack);align-items:start;padding:var(--citadl-space-stack) 0;border-top:var(--citadl-hairline) solid hsl(var(--citadl-border))}
.day > strong{padding-top:var(--citadl-space-stack);font-size:var(--citadl-font-size-label);letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase}
.day:first-of-type{border-top:0}
.day .slots{display:flex;flex-direction:column;gap:var(--citadl-space-cell)}
.slot{display:flex;gap:var(--citadl-space-cell);align-items:center}
.slot input{flex:1;min-width:0}
.slot span{color:hsl(var(--citadl-muted-foreground));font-size:var(--citadl-font-size-body)}
.day label.check{margin:0;min-height:calc(var(--citadl-space-page) * 1.25)}
.btn,button.primary{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:600;background:hsl(var(--citadl-accent));color:hsl(var(--citadl-background));border:var(--citadl-hairline) solid hsl(var(--citadl-accent));border-radius:var(--citadl-radius-control);padding:var(--citadl-space-cell) var(--citadl-space-section);min-height:calc(var(--citadl-space-section) * 2);cursor:pointer;text-decoration:none;transition:background-color var(--citadl-duration-fast),color var(--citadl-duration-fast)}
.btn:hover,button.primary:hover{background:hsl(var(--citadl-background));color:hsl(var(--citadl-foreground))}
.btn.secondary{background:transparent;color:hsl(var(--citadl-foreground));border-color:hsl(var(--citadl-border))}
.btn.secondary:hover{border-color:hsl(var(--citadl-muted-foreground))}
.actions{position:sticky;bottom:0;background:hsl(var(--citadl-background));padding:var(--citadl-space-stack) 0;border-top:var(--citadl-hairline) solid hsl(var(--citadl-border));margin-top:var(--citadl-space-section)}
form.inline{display:inline;margin:0}
ol.fields{padding-left:var(--citadl-space-section);margin:var(--citadl-space-cell) 0 0}
ol.fields li{margin:var(--citadl-space-tight) 0}

/* ---------------------------------------------------------------- public page */
.hero{padding:var(--citadl-space-page) 0 var(--citadl-space-section);border-bottom:var(--citadl-hairline) solid hsl(var(--citadl-border))}
.hero h1{margin-top:0}
.lede{font-size:var(--citadl-font-size-title);line-height:1.45;max-width:calc(var(--citadl-space-page) * 22);margin-bottom:var(--citadl-space-section)}
.prose{max-width:calc(var(--citadl-space-page) * 22)}
.prose ul{padding-left:var(--citadl-space-section);margin:0 0 var(--citadl-space-stack)}
.prose li{margin:var(--citadl-space-tight) 0}
section.part{padding:var(--citadl-space-cell) 0 var(--citadl-space-section);border-bottom:var(--citadl-hairline) solid hsl(var(--citadl-border))}
section.part:last-of-type{border-bottom:0}
.grid2{display:grid;grid-template-columns:1fr;gap:var(--citadl-space-panel)}
.grid2 > .card{margin:0}
.card h3{margin-top:0}

/* The call, step by step: an ordered list drawn as a line of numbered stops. */
ol.flow{list-style:none;counter-reset:step;margin:var(--citadl-space-panel) 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:0}
ol.flow > li{counter-increment:step;position:relative;padding:0 0 var(--citadl-space-section) calc(var(--citadl-space-page) * 1.5)}
ol.flow > li::before{content:counter(step, decimal-leading-zero);position:absolute;left:0;top:0;width:var(--citadl-space-page);height:var(--citadl-space-page);display:flex;align-items:center;justify-content:center;font-family:var(--citadl-font-mono);font-size:var(--citadl-font-size-body);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);background:hsl(var(--citadl-muted))}
ol.flow > li::after{content:"";position:absolute;left:calc(var(--citadl-space-page) / 2);top:var(--citadl-space-page);bottom:0;border-left:var(--citadl-hairline) solid hsl(var(--citadl-border))}
ol.flow > li:last-child::after{display:none}
ol.flow > li.alert::before{border-color:hsl(var(--citadl-accent))}
ol.flow h3{margin:var(--citadl-space-tight) 0 var(--citadl-space-tight)}
ol.flow p{margin:0;color:hsl(var(--citadl-muted-foreground))}
ol.flow .say{display:block;margin-top:var(--citadl-space-cell);padding-left:var(--citadl-space-stack);border-left:var(--citadl-hairline) solid hsl(var(--citadl-border));color:hsl(var(--citadl-foreground));font-style:italic}

/* The sample report, as the business receives it. */
.sample{border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);background:hsl(var(--citadl-muted))}
.sample-head{padding:var(--citadl-space-stack) var(--citadl-space-panel);border-bottom:var(--citadl-hairline) solid hsl(var(--citadl-border))}
.sample-head .subject{font-weight:600;margin:var(--citadl-space-tight) 0 0}
.sample-body{padding:var(--citadl-space-panel)}
.sms{border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);padding:var(--citadl-space-stack) var(--citadl-space-panel);background:hsl(var(--citadl-background));margin-top:var(--citadl-space-cell)}
.player{display:flex;align-items:center;gap:var(--citadl-space-stack);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);padding:var(--citadl-space-cell) var(--citadl-space-stack);background:hsl(var(--citadl-background))}
.player .bar{flex:1;border-top:calc(var(--citadl-hairline) * 2) solid hsl(var(--citadl-border))}
.player .play{width:0;height:0;border-style:solid;border-width:var(--citadl-space-tight) 0 var(--citadl-space-tight) var(--citadl-space-cell);border-color:transparent transparent transparent hsl(var(--citadl-foreground))}

footer.site{border-top:var(--citadl-hairline) solid hsl(var(--citadl-border));padding:var(--citadl-space-section) 0 var(--citadl-space-page);color:hsl(var(--citadl-muted-foreground));font-size:var(--citadl-font-size-body)}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:var(--citadl-space-stack) var(--citadl-space-section);align-items:center;justify-content:space-between}
.made-by{display:inline-flex;align-items:center;gap:var(--citadl-space-cell)}
.made-by img{height:var(--citadl-space-panel);width:auto;display:block}

@media (max-width: 30em){
  dl.kv{grid-template-columns:1fr;gap:0}
  dl.kv dt{margin-top:var(--citadl-space-stack)}
  dl.kv dt:first-child{margin-top:0}
  h1{font-size:var(--citadl-font-size-title)}
  .hero h1{font-size:var(--citadl-font-size-display)}
  .lede{font-size:var(--citadl-font-size-body-large)}
  .turn{max-width:100%}
  .day{grid-template-columns:1fr}
  .day > strong{padding-top:0}
  .sample-body{padding:var(--citadl-space-stack)}
  .sample-body > .card{padding:var(--citadl-space-stack)}
  fieldset{padding:var(--citadl-space-cell) var(--citadl-space-stack) var(--citadl-space-stack)}
}
@media (min-width: 48em){
  .grid2{grid-template-columns:1fr 1fr}
}
/* Reduced motion: every transition reads --citadl-duration-*, which the token file zeroes. */

/* Service area pages: the community map and plain lists. */
.map{height:calc(var(--citadl-space-page) * 14);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-radius:var(--citadl-radius-control);margin:var(--citadl-space-stack) 0;background:hsl(var(--citadl-muted))}
table.list{width:100%;border-collapse:collapse;font-size:var(--citadl-font-size-body)}
table.list th{text-align:left;font-size:var(--citadl-font-size-label);font-weight:600;letter-spacing:var(--citadl-letter-spacing-label);text-transform:uppercase;color:hsl(var(--citadl-muted-foreground))}
table.list th,table.list td{padding:var(--citadl-space-cell) var(--citadl-space-stack) var(--citadl-space-cell) 0;border-bottom:var(--citadl-hairline) solid hsl(var(--citadl-border));vertical-align:top}
.scroll{overflow-x:auto}
.cols{column-width:calc(var(--citadl-space-page) * 7);column-gap:var(--citadl-space-section)}

/* ---------------------------------------------------------------- phone demo (/call, /setup) */
.call-status{font-family:var(--citadl-font-display);font-weight:700;font-size:var(--citadl-font-size-title);letter-spacing:var(--citadl-letter-spacing-display);text-transform:uppercase;padding:var(--citadl-space-stack) var(--citadl-space-panel);border:var(--citadl-hairline) solid hsl(var(--citadl-border));border-left-width:calc(var(--citadl-hairline) * 2);border-radius:var(--citadl-radius-control);background:hsl(var(--citadl-muted));margin:var(--citadl-space-stack) 0}
.call-status[data-state=listening],.call-status[data-state=hearing]{border-left-color:hsl(var(--citadl-ok))}
.call-status[data-state=speaking],.call-status[data-state=connecting]{border-left-color:hsl(var(--citadl-accent))}
.call-status[data-state=error]{border-left-color:hsl(var(--citadl-destructive));color:hsl(var(--citadl-destructive));font-family:var(--citadl-font-sans);font-size:var(--citadl-font-size-body-large);text-transform:none;letter-spacing:var(--citadl-letter-spacing-body)}
.call-buttons{display:flex;gap:var(--citadl-space-stack);margin:var(--citadl-space-section) 0}
.call-btn{flex:1;min-height:calc(var(--citadl-space-page) * 3);font-family:var(--citadl-font-display);font-size:var(--citadl-font-size-title);letter-spacing:var(--citadl-letter-spacing-display);text-transform:uppercase;touch-action:manipulation}
.call-btn.hangup{background:hsl(var(--citadl-destructive));border-color:hsl(var(--citadl-destructive))}
.call-btn[hidden]{display:none}
.callpage .field{margin:var(--citadl-space-section) 0}
.callpage .field .muted{margin-top:var(--citadl-space-tight)}
.captions{border-top:var(--citadl-hairline) solid hsl(var(--citadl-border));margin-top:var(--citadl-space-section);padding-top:var(--citadl-space-stack)}
.captions .turn.agent{border-left:calc(var(--citadl-hairline) * 2) solid hsl(var(--citadl-accent))}
ol.steps{padding-left:var(--citadl-space-section)}
ol.steps li{margin:0 0 var(--citadl-space-section)}
ol.steps .btn{margin-bottom:var(--citadl-space-cell)}
