/* am-ds.css: AppManor design system (spec 05 §2.1). Tokens are verbatim from reference/DESIGN-SPEC.md §4.3; components
   follow spec 05 §2.1 and DESIGN-SPEC §7. Every app links this one file; design-system/gallery.html shows every component.
   Class names that are not here do nothing: hosted apps are refused at build when they use an unknown `ds-` class. */

/* @font-begin: generated by scripts/build-font-css.mjs from design-system/fonts (Inter; OFL-1.1) */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300 800; font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* @font-end */

/* Cascade layers: the design system, then the design a tenant or an app picked (am-design-*.css). An app's own CSS is
   outside both layers, so it always wins over them, whatever its selectors and whatever the design. */
@layer am-ds, am-design;
@layer am-ds {


:root {
  /* "Quiet ledger" (the Clinic Manager redesign, now the AppManor default): neutral surfaces, one ink blue for action
     and focus, colour reserved for data; hairlines over shadows; Inter with tabular figures wherever numbers line up. */
  /* ── Type ── */
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-heading: var(--font-sans);
  --font-num: var(--font-sans);
  --font-code: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;

  /* ── Spacing (4 · 8 · 12 · 16 · 24 · 32 · 48), shape, elevation ── */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px;
  --control-radius: 6px;
  --card-radius: 10px;
  --pill-radius: 999px;
  --control-h: 36px;
  --float-shadow: 0 12px 32px -8px rgba(24,25,27,.18), 0 2px 6px rgba(24,25,27,.06); /* the one elevation: menus, dialogs, toasts */

  /* ── Ink and surfaces ── */
  --canvas: #f6f6f4;
  --surface: #ffffff;
  --subtle: #fafaf8;
  --hairline: #e3e3df;
  --border-strong: #d2d2cc;
  --ink: #18191b;
  --ink-2: #4a4d52;
  --ink-3: #6a6e74;

  /* ── Action and status ── */
  --q-accent: #1f4e79;
  --q-accent-dark: #163a5c;
  --q-accent-soft: #eaf0f6;
  --q-brand-fg: #ffffff;
  --positive: #2e6b3f;
  --warning-ink: #9a5b0b;
  --critical: #a3301f;
  --alert-line: #b4492b;
  --neutral-data: #8e99a8;

  /* ── Roles the components use ── */
  --body-bg: var(--canvas);
  --bg: var(--body-bg);
  --surface2: var(--subtle);
  --body-color: var(--ink);
  --heading-color: var(--ink);
  --text: var(--ink);
  --muted-color: var(--ink-2);   /* secondary text */
  --muted: var(--ink-2);
  --faint-color: var(--ink-3);   /* labels, axes, captions */
  --link-color: var(--q-accent);
  --accent-text: var(--q-accent);
  --on-solid: #ffffff;
  --border: var(--hairline);
  --primary: var(--q-accent);
  --primary-hover: var(--q-accent-dark);
  --primary-rgb: 31,78,121;
  --primary-100: var(--q-accent-soft);
  --primary-200: #d3e0ec;
  --success: var(--positive);
  --success-100: #e8f1ea;
  --warning: var(--warning-ink);
  --warning-100: #f8efe2;
  --warning-bg: var(--warning-100);
  --danger: var(--critical);
  --danger-100: #f7e7e3;
  --info: var(--q-accent);
  --info-100: var(--q-accent-soft);
  --override-bg: #e6f2f0;
  --override-color: #1d6158;
  --override-border: rgba(29,97,88,.22);

  /* ── Sidebar (light, quiet; the shell of every page) ── */
  --sidebar-width: 240px;
  --sidebar-rail: 64px;
  --sidebar-bg: var(--subtle);
  --sidebar-border: var(--hairline);
  --sidebar-color: var(--ink-2);
  --sidebar-hover-bg: #efefec;
  --sidebar-active-bg: var(--q-accent-soft);
  --sidebar-active-color: var(--q-accent);
  --sidebar-label: var(--ink-3);

  /* ── Cards ── */
  --card-bg: var(--surface);
  --card-border: var(--hairline);
  --card-shadow: none;
  --card-shadow-hover: 0 0 0 1px var(--border-strong);

  /* ── Tables ── */
  --table-border: var(--hairline);
  --table-header-bg: var(--subtle);
  --table-stripe-bg: transparent;
  --table-hover-bg: #f7f8f9;
  --row-hover: var(--table-hover-bg);
  --table-header-color: var(--ink-2);

  /* ── Inputs ── */
  --input-bg: #ffffff;
  --input-disabled-bg: #f1f1ee;
  --input-border: var(--border-strong);
  --input-color: var(--ink);
  --input-radius: var(--control-radius);
  --input-focus-border: var(--q-accent);
  --input-focus-shadow: 0 0 0 3px rgba(31,78,121,.16);
  --select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234a4d52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");

  /* ── Buttons ── */
  --btn-radius: var(--control-radius);

  /* ── Status pills and badges: a tint with ink of the same hue ── */
  --badge-primary-bg: var(--q-accent-soft);
  --badge-primary-color: var(--q-accent);
  --badge-success-bg: #e8f1ea;
  --badge-success-color: #2e6b3f;
  --badge-warning-bg: #f8efe2;
  --badge-warning-color: #8a5009;
  --badge-danger-bg: #f7e7e3;
  --badge-danger-color: #a3301f;
  --badge-info-bg: var(--q-accent-soft);
  --badge-info-color: var(--q-accent);
  --badge-gray-bg: #efefec;
  --badge-gray-color: #4a4d52;
  --badge-orange-bg: #f9ebe5;
  --badge-orange-color: #9a3d20;

  /* ── Floating layers ── */
  --modal-bg: var(--surface);
  --modal-overlay: rgba(24,25,27,.36);
  --modal-shadow: var(--float-shadow);
  --modal-radius: 12px;

  /* ── Charts ──
     Slots 1–3 are the redesign's clinic colours, separated by lightness more than hue (ink blue, light blue, ochre); 4–8
     follow in a validated order. Adjacent pairs (dataviz validate_palette): normal vision ≥ 18.4 in both modes; colour-
     blind ΔE ≥ 7.2 light / 7.4 dark, the band where a second cue is required: every chart has a legend and a caption.
     The muted slots 1–2 sit outside the validator's lightness and chroma bands by design. good/warn/bad are status. */
  --chart-1: #1f4e79;
  --chart-2: #7fa7cf;
  --chart-3: #c47e2c;
  --chart-4: #1baf7a;
  --chart-5: #eda100;
  --chart-6: #e87ba4;
  --chart-7: #008300;
  --chart-8: #e34948;
  --chart-seq-1: #c9d8e7; /* magnitude, one hue (ink blue), low → high */
  --chart-seq-2: #9db9d5;
  --chart-seq-3: #6c93ba;
  --chart-seq-4: #3f6f9c;
  --chart-seq-5: #1f4e79;
  --chart-neg: #b4492b;
  --chart-pos: #1f4e79;
  --chart-grid: #ecece8;
  --chart-axis: var(--ink-3);
  --chart-good: #2e6b3f;
  --chart-warn: #c98a1b;
  --chart-warn-strong: #b4492b;
  --chart-bad: #b4492b;
  --chart-neutral: #8e99a8;
  --chart-bar-radius: 3;
  /* how charts are drawn (amds.chart reads these; each design sets its own) */
  --chart-bar-border: 0;          /* an outline on every bar and slice, in --chart-bar-edge when a design sets it (0: none) */
  --chart-legend-shape: rectRounded; /* circle | rect | rectRounded */
  --chart-tooltip-radius: 8;
  --chart-tooltip-border: 1;
  --chart-cutout: 62%;
  --chart-line-width: 2;
  --chart-points: 0;              /* point radius on lines (0: only on hover) */
  --chart-area-alpha: .16;
  --chart-grid-dash: none;        /* "2 3": dashed grid lines */

  /* ── Motion ── */
  --ds-ease: 120ms ease;
}

[data-theme="dark"] {
  --canvas: #141517;
  --surface: #1c1d20;
  --subtle: #212226;
  --hairline: #2e3035;
  --border-strong: #41444b;
  --ink: #eceef0;
  --ink-2: #b7bbc2;
  --ink-3: #959aa3;
  --q-accent: #3c72a8;        /* a fill with white text */
  --q-accent-dark: #4a82ba;
  --q-accent-soft: rgba(110,157,208,.16);
  --positive: #7fc493;
  --warning-ink: #e3b066;
  --critical: #f0907c;
  --alert-line: #e0734a;
  --neutral-data: #8995a6;

  --link-color: #93b8e0;
  --accent-text: #93b8e0;
  --on-solid: #141517;
  --primary-rgb: 110,157,208;
  --primary-200: rgba(110,157,208,.3);
  --success-100: rgba(127,196,147,.14);
  --warning-100: rgba(227,176,102,.14);
  --danger-100: rgba(240,144,124,.14);
  --override-bg: rgba(90,180,168,.14);
  --override-color: #9fdcd3;
  --override-border: rgba(90,180,168,.3);

  --sidebar-bg: #18191c;
  --sidebar-hover-bg: #232529;
  --sidebar-active-bg: rgba(110,157,208,.16);
  --sidebar-active-color: #b4cfec;

  --table-hover-bg: #212327;

  --input-bg: #18191c;
  --input-disabled-bg: #232529;
  --input-focus-shadow: 0 0 0 3px rgba(110,157,208,.28);
  --select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b7bbc2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");

  --badge-primary-bg: rgba(110,157,208,.16);
  --badge-primary-color: #b4cfec;
  --badge-success-bg: rgba(127,196,147,.14);
  --badge-success-color: #a8dcb6;
  --badge-warning-bg: rgba(227,176,102,.14);
  --badge-warning-color: #f0cd95;
  --badge-danger-bg: rgba(240,144,124,.14);
  --badge-danger-color: #f6b9ab;
  --badge-info-bg: rgba(110,157,208,.16);
  --badge-info-color: #b4cfec;
  --badge-gray-bg: rgba(255,255,255,.07);
  --badge-gray-color: #c9ccd2;
  --badge-orange-bg: rgba(224,115,74,.15);
  --badge-orange-color: #f3b49b;

  --modal-overlay: rgba(6,7,8,.6);
  --float-shadow: 0 16px 40px -8px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.35);

  --chart-1: #5c8fc9;
  --chart-2: #a9c6e4;
  --chart-3: #d9963f;
  --chart-4: #199e70;
  --chart-5: #c98500;
  --chart-6: #d55181;
  --chart-7: #008300;
  --chart-8: #e66767;
  --chart-seq-1: #24384d;
  --chart-seq-2: #2f5277;
  --chart-seq-3: #456f9e;
  --chart-seq-4: #6e9dd0;
  --chart-seq-5: #a9c6e4;
  --chart-neg: #e0734a;
  --chart-pos: #6e9dd0;
  --chart-grid: #2a2c31;
  --chart-good: #7fc493;
  --chart-warn: #e3b066;
  --chart-warn-strong: #e0734a;
  --chart-bad: #e0734a;
  --chart-neutral: #7d8796;
}

/* ── Base ── */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; -webkit-text-size-adjust: 100%; }
html[data-theme="dark"] { color-scheme: dark; }
body { margin: 0; background: var(--body-bg); color: var(--body-color); font: 14px/1.5 var(--font-sans);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
h1, h2, h3, h4 { color: var(--heading-color); font-family: var(--font-heading); line-height: 1.25; margin: 0 0 8px; }
h1 { font-size: 26px; font-weight: 600; letter-spacing: -0.015em; }
h2 { font-size: 15px; font-weight: 600; }
h3 { font-size: 14px; font-weight: 600; }
h4 { font-size: 13px; font-weight: 600; }
p { margin: 0 0 10px; }
a { color: var(--link-color); text-underline-offset: 2px; }
code, .mono { font-family: var(--font-code); font-size: 12.5px; }
hr { border: 0; border-top: 1px solid var(--border); margin: 20px 0; }
/* tabular figures where numbers line up (columns, times); not on whole tables: Inter widens hyphens with them */
.num, time { font-variant-numeric: tabular-nums; }
.muted { color: var(--muted-color); }
.faint { color: var(--faint-color); }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--q-accent); outline-offset: 2px; }
input[type=checkbox], input[type=radio], input[type=range], progress { accent-color: var(--q-accent); }
::selection { background: rgba(var(--primary-rgb), .2); }
.ds-theme-toggle .ds-sun { display: none; }
[data-theme="dark"] .ds-theme-toggle .ds-sun { display: block; }
[data-theme="dark"] .ds-theme-toggle .ds-moon { display: none; }

/* ── Shell: every page is <body class="ds-shell"> > aside.ds-sidebar + main.ds-content (+ footer.ds-footer) ──
   The sidebar: a.ds-brand (monogram + name; it goes to the app catalog), .ds-context (who/what this is), nav.ds-nav
   (.ds-nav-label, a|button.ds-nav-item > svg + span + .ds-nav-count), and .ds-sidebar-foot (account, theme, version).
   am-ds.js puts the brand in .ds-brand-row with the collapse button, and adds the avatar and, on phones, the bar with
   the menu button. Rail: data-sidebar="rail" on <html> (the person's choice); a drawer on phones. */
.ds-shell { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); grid-template-rows: 1fr auto; }
.ds-shell > .ds-sidebar { grid-row: 1 / span 2; }
.ds-shell > .ds-content, .ds-shell > main { grid-column: 2; min-width: 0; }
.ds-shell > .ds-footer { grid-column: 2; }
.ds-sidebar { position: sticky; top: 0; z-index: 40; display: flex; flex-direction: column; gap: 4px; height: 100vh; height: 100dvh; overflow-y: auto;
  padding: 14px 12px 12px; background: var(--sidebar-bg); border-right: 1px solid var(--sidebar-border); color: var(--sidebar-color); }
.ds-brand { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 4px 6px; border-radius: var(--control-radius); color: var(--ink); text-decoration: none; }
.ds-brand:hover { background: var(--sidebar-hover-bg); }
.ds-mark { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 7px; overflow: hidden;
  background: var(--q-accent); color: var(--q-brand-fg); font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.ds-mark img { width: 100%; height: 100%; object-fit: cover; }
/* the AppManor mark: at the end of this file, outside the layers (every design shows it the same) */
/* the brand's row: a.ds-brand, then the collapse button (am-ds.js makes it) */
.ds-brand-row { display: flex; align-items: center; gap: 4px; }
.ds-brand-row > .ds-brand { flex: 1 1 auto; min-width: 0; }
.ds-brand-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; font-weight: 600; letter-spacing: -0.01em; }
.ds-context { display: grid; gap: 1px; margin: 8px 0 12px; padding: 9px 12px; border: 1px solid var(--hairline); border-radius: 8px; background: var(--card-bg); }
.ds-context strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--ink); }
.ds-context span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--ink-3); }
.ds-nav { display: grid; gap: 2px; }
.ds-nav-label { margin: 12px 10px 4px; font-size: 12px; font-weight: 600; color: var(--sidebar-label); }
.ds-nav-item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 36px; padding: 0 10px; border: 0; border-radius: var(--control-radius);
  background: transparent; color: var(--sidebar-color); font: inherit; font-size: 14px; font-weight: 500; text-align: left; text-decoration: none; cursor: pointer;
  transition: background var(--ds-ease), color var(--ds-ease); }
.ds-nav-item:hover { background: var(--sidebar-hover-bg); color: var(--ink); }
.ds-nav-item.active, .ds-nav-item[aria-current="page"] { background: var(--sidebar-active-bg); color: var(--sidebar-active-color); font-weight: 600; }
.ds-nav-item > svg { flex: 0 0 auto; width: 18px; height: 18px; stroke-width: 1.75; }
.ds-nav-item > span:not(.ds-nav-count) { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-nav-count { min-width: 22px; padding: 1px 7px; border-radius: var(--pill-radius); background: var(--badge-gray-bg); color: var(--ink-2); font-size: 12px; font-weight: 600;
  text-align: center; font-variant-numeric: tabular-nums; }
.ds-nav-item.active .ds-nav-count { background: var(--card-bg); color: var(--q-accent); }
.ds-sidebar-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding: 12px 4px 0; border-top: 1px solid var(--hairline); }
.ds-sidebar-foot .ds-user-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--ink); }
/* so is the theme: the foot's own toggle shows only where there is no person (data-avatar="off", or /__me did not answer) */
.ds-sidebar-foot:not([data-avatar="off"]):not(.ds-no-user) .ds-theme-toggle { display: none; }
.ds-icon-btn, .ds-theme-toggle, .ds-collapse { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px; padding: 0;
  border: 0; border-radius: var(--control-radius); background: transparent; color: var(--ink-3); cursor: pointer; font: inherit; transition: background var(--ds-ease), color var(--ds-ease); }
.ds-icon-btn:hover, .ds-theme-toggle:hover, .ds-collapse:hover { background: var(--sidebar-hover-bg); color: var(--ink); }
.ds-icon-btn svg, .ds-theme-toggle svg, .ds-collapse svg { width: 17px; height: 17px; }
.ds-sidebar .ds-avatar { width: 28px; height: 28px; font-size: 11px; }
/* the person (am-ds.js makes it from /__me): button.ds-user opens .ds-user-menu, fixed above it (beside the rail) */
.ds-user { display: flex; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0; height: 40px; padding: 0 6px; margin-left: -4px; border: 0;
  border-radius: var(--control-radius); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: background var(--ds-ease); }
.ds-user:hover, .ds-user[aria-expanded="true"] { background: var(--sidebar-hover-bg); }
.ds-user .ds-user-name { flex: 1 1 auto; }
.ds-menu.ds-user-menu { position: fixed; top: auto; z-index: 70; max-width: min(320px, calc(100vw - 16px)); }
.ds-user-head { display: grid; gap: 1px; padding: 8px 10px 10px; margin-bottom: 4px; border-bottom: 1px solid var(--hairline); }
.ds-user-head strong { font-size: 14px; font-weight: 600; color: var(--heading-color); overflow-wrap: anywhere; }
.ds-user-head span { font-size: 12px; color: var(--muted-color); overflow-wrap: anywhere; }
.ds-user-head .ds-user-role { margin-top: 4px; color: var(--faint-color); }
.ds-user-item svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--ink-3); }
.ds-user-version { padding: 6px 10px 2px; font-size: 12px; color: var(--faint-color); }
.ds-user-version:empty { display: none; }
/* the collapse button: quiet until wanted, its icon on the right edge of the context card below (the 32px box centres a
   17px icon, so the box reaches past the row by the difference) */
.ds-brand-row > .ds-collapse { margin-right: -7px; opacity: 0.55; transition: background var(--ds-ease), color var(--ds-ease), opacity var(--ds-ease); }
.ds-brand-row > .ds-collapse:hover, .ds-brand-row > .ds-collapse:focus-visible { opacity: 1; }
html[data-sidebar="rail"] .ds-brand-row > .ds-collapse { margin-right: 0; } /* centred in the rail */
html[data-sidebar="rail"] .ds-collapse .ds-collapse-chev { transform: scaleX(-1); transform-box: fill-box; transform-origin: center; }
/* rail: the person's choice (data-sidebar="rail" on <html>): icons only; the brand's row shows only the expand button.
   A desktop choice: phones and tablets have the drawer instead */
@media (min-width: 1101px) {
html[data-sidebar="rail"] .ds-shell { grid-template-columns: var(--sidebar-rail) minmax(0, 1fr); }
html[data-sidebar="rail"] .ds-sidebar { padding-left: 10px; padding-right: 10px; align-items: center; }
html[data-sidebar="rail"] .ds-brand, html[data-sidebar="rail"] .ds-context, html[data-sidebar="rail"] .ds-nav-label,
html[data-sidebar="rail"] .ds-nav-item > span, html[data-sidebar="rail"] .ds-sidebar-foot .ds-user-name { display: none; }
html[data-sidebar="rail"] .ds-brand-row { justify-content: center; min-height: 40px; margin-bottom: 12px; }
html[data-sidebar="rail"] .ds-nav-item { justify-content: center; width: 40px; padding: 0; position: relative; }
html[data-sidebar="rail"] .ds-nav-item .ds-nav-count { display: block; position: absolute; top: 6px; right: 6px; min-width: 0; width: 7px; height: 7px; padding: 0;
  font-size: 0; background: var(--q-accent); }
html[data-sidebar="rail"] .ds-sidebar-foot { flex-direction: column; padding-left: 0; padding-right: 0; }
html[data-sidebar="rail"] .ds-user { flex: 0 0 auto; margin: 0; padding: 0 6px; }
}
/* phones and tablets: a slim bar with the menu button; the sidebar slides in over the page (the page does not move) */
.ds-mobilebar { display: none; }
.ds-scrim { display: none; }
@media (max-width: 1100px) {
  .ds-shell { display: block; }
  .ds-mobilebar { position: sticky; top: 0; z-index: 45; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 12px;
    background: var(--sidebar-bg); border-bottom: 1px solid var(--sidebar-border); }
  .ds-mobilebar .ds-mobile-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--ink); }
  .ds-sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: min(300px, 86vw); transform: translateX(-102%); transition: transform 180ms ease; box-shadow: none; }
  html.ds-drawer-open .ds-sidebar { transform: none; box-shadow: var(--float-shadow); }
  html.ds-drawer-open .ds-scrim { display: block; position: fixed; inset: 0; z-index: 39; background: var(--modal-overlay); }
  .ds-collapse { display: none; }
}

/* ── Page layout ── */
.ds-content, .ds-page { padding: 28px 32px 40px; }
.ds-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 16px; margin-bottom: 20px; flex-wrap: wrap; }
.ds-page-head > :first-child { min-width: 0; flex: 1 1 320px; } /* the title shrinks first: the actions stay on the right */
.ds-page-eyebrow { display: block; margin: 0 0 4px; font-size: 13px; color: var(--faint-color); }
.ds-page-head h1, .ds-page-title { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; color: var(--heading-color); }
.ds-page-head p, .ds-page-sub { margin: 4px 0 0; color: var(--muted-color); font-size: 13px; }
.ds-page-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ds-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 4px; padding: 0; list-style: none; font-size: 13px; color: var(--faint-color); }
.ds-crumbs a { color: var(--faint-color); text-decoration: none; }
.ds-crumbs a:hover { color: var(--accent-text); text-decoration: underline; }
.ds-crumbs li + li::before { content: "·"; margin-right: 6px; }
.ds-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 13px; font-weight: 500; color: var(--faint-color); text-decoration: none; }
.ds-back::before { content: "←"; }
.ds-back:hover { color: var(--accent-text); }
.ds-section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 32px 0 12px; font-size: 15px; font-weight: 600; color: var(--heading-color); }
.ds-section-title:first-child { margin-top: 0; }
.ds-footer, footer.ds-version { padding: 16px 32px 24px; color: var(--faint-color); font-size: 12px; }
footer.ds-version { text-align: right; }
.ds-stack { display: grid; gap: 16px; }
.ds-stack > * { margin: 0 !important; } /* the gap spaces them; a notice's or card's own margin would double it */
.ds-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ds-grow { flex: 1 1 auto; min-width: 0; }

/* ── Grids ── */
.grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.ds-grid-2, .ds-grid-3, .ds-grid-4 { display: grid; gap: 16px; align-items: stretch; }
.ds-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ds-grid-2 > .card + .card, .ds-grid-3 > .card + .card, .ds-grid-4 > .card + .card, .grid > .card + .card { margin-top: 0; }
.ds-grid-2 + .ds-grid-2, .ds-grid-2 + .card, .card + .ds-grid-2, .ds-kpis + .card, .ds-stats + .card { margin-top: 16px; }
/* description list: <dl class="ds-dl"><dt>Owner</dt><dd>…</dd>…</dl>; .ds-dl.cols-2 puts two pairs side by side */
.ds-dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px; margin: 0; }
.ds-dl dt { color: var(--faint-color); font-size: 13px; }
.ds-dl dd { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.ds-dl.cols-2 { grid-template-columns: max-content 1fr max-content 1fr; }
.ds-dl + .btn-row, .ds-dl + p { margin-top: 12px; }

/* ── Tabs (inside a page; the app's own areas live in the sidebar) ── */
/* the line under the tabs is an inset shadow the active tab's underline covers: nothing overflows the bar downwards, so
   one that scrolls sideways never shows a vertical scrollbar as well */
.ds-tabs { display: flex; flex-wrap: nowrap; gap: 4px; box-shadow: inset 0 -1px 0 var(--border); margin-bottom: 20px; overflow-x: auto; overflow-y: hidden;
  scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.ds-tabs::-webkit-scrollbar { display: none; } /* one line that scrolls sideways on a phone, no bar (the cut-off tab says there is more) */
.ds-tabs > * { flex: 0 0 auto; }
.ds-tabs a, .ds-tab { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; border: 0; border-bottom: 2px solid transparent;
  background: transparent; color: var(--muted-color); font: inherit; font-size: 14px; font-weight: 500; white-space: nowrap; text-decoration: none; cursor: pointer;
  transition: color var(--ds-ease), border-color var(--ds-ease); }
.ds-tabs a:hover, .ds-tab:hover { color: var(--ink); }
.ds-tabs a[aria-current="page"], .ds-tab.active, .ds-tab[aria-selected="true"], .ds-tab[aria-current="page"] { color: var(--ink); font-weight: 600; border-bottom-color: var(--q-accent); }
.ds-tab .badge, .ds-tab .pill { font-size: 11px; }

/* ── Cards: flat on a hairline ── */
.card { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--card-radius); padding: 20px; box-shadow: var(--card-shadow); min-width: 0; }
.card + .card { margin-top: 16px; }
.card > :last-child { margin-bottom: 0; }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; margin-bottom: 16px; }
.card-head > :first-child { min-width: 0; }
.card-title { margin: 0; font-size: 15px; font-weight: 600; color: var(--heading-color); letter-spacing: -0.005em; }
.card-sub { margin: 2px 0 0; font-size: 13px; color: var(--muted-color); }
.card-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* legend chips in a card head: <div class="card-legend"><span><i data-slot="1"></i>Lisbon</span>…</div> (i.dash for a dashed series) */
.card-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 12px; color: var(--muted-color); }
.card-legend span { display: inline-flex; align-items: center; gap: 6px; }
.card-legend i { width: 10px; height: 10px; border-radius: 2px; background: var(--chart-1); }
.card-legend i[data-slot="2"] { background: var(--chart-2); } .card-legend i[data-slot="3"] { background: var(--chart-3); }
.card-legend i[data-slot="4"] { background: var(--chart-4); } .card-legend i[data-slot="5"] { background: var(--chart-5); }
.card-legend i[data-slot="6"] { background: var(--chart-6); } .card-legend i[data-slot="7"] { background: var(--chart-7); }
.card-legend i[data-slot="8"] { background: var(--chart-8); }
.card-legend i.good { background: var(--chart-good); } .card-legend i.bad { background: var(--chart-bad); } .card-legend i.neutral { background: var(--chart-neutral); }
.card-legend i.line { width: 14px; height: 2px; border-radius: 1px; }
.card-legend i.dash { width: 14px; height: 0; border-radius: 0; background: none !important; border-top: 2px dashed var(--chart-neutral); }
.card-foot, .card figcaption { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--hairline); font-size: 12px; color: var(--faint-color); }
.card.flush { padding: 0; overflow: hidden; }
.card.flush > .card-head { padding: 16px 16px 0; }
/* a head, then a toolbar: one block, the same 16px inset, no double gap */
.card.flush > .card-head:has(+ .ds-toolbar) { margin: 0; padding-bottom: 12px; }
.card.flush > .card-head + .ds-toolbar { padding-top: 0; }
.card.flush > .card-head h2 { margin: 0; }
.card.flush > .card-head p { margin: 4px 0 0; }
.card.flush > .card-head details.ds-more { margin: 6px 0 0; }
.card.flush > .table-scroll, .card.flush > .table-wrap { border: 0; border-radius: 0; }
.card.alert-success { border-left: 3px solid var(--success); }
.card.alert-warning { border-left: 3px solid var(--warning); }
.card.alert-danger { border-left: 3px solid var(--danger); }
a.card { display: block; color: inherit; text-decoration: none; transition: box-shadow var(--ds-ease), border-color var(--ds-ease); }
a.card:hover { box-shadow: var(--card-shadow-hover); border-color: var(--border-strong); }

/* ── KPIs ── */
/* As many tiles as there are KPIs, at least 150px each. A tile: label, value (+ .ds-delta), a comparison line, then one small
   visual: .ds-kpi-spark (amds.sparkline), .ds-kpi-bar > i (progress) or .ds-kpi-segments > i(.on) (a segmented meter). */
.ds-kpis { display: grid; gap: 16px; margin-bottom: 16px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.ds-kpis[style*="--kpi-n"] { grid-template-columns: repeat(var(--kpi-n), minmax(0, 1fr)); }
.ds-kpi, .stat { position: relative; display: flex; flex-direction: column; background: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--card-radius);
  padding: 16px 18px; min-width: 0; }
.ds-kpi-label, .stat .stat-label { display: flex; align-items: center; gap: 6px; color: var(--muted-color); font-size: 13px; font-weight: 400; }
.ds-kpi-value, .stat .stat-value { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin-top: 8px; font-size: 28px; font-weight: 600; line-height: 1.1;
  letter-spacing: -0.02em; color: var(--heading-color); overflow-wrap: anywhere; }
.ds-kpi-value small { font-size: .5em; font-weight: 500; letter-spacing: 0; color: var(--muted-color); }
.ds-kpi-value.accent { color: var(--accent-text); }
.ds-kpi-value.success { color: var(--success); }
.ds-kpi-value.warning { color: var(--warning); }
.ds-kpi-value.danger { color: var(--danger); }
.ds-kpi-sub { margin-top: 6px; font-size: 13px; color: var(--muted-color); }
.ds-kpi-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--kpi-c, var(--q-accent)); }
.ds-kpi.accent { border-top: 3px solid var(--kpi-c, var(--q-accent)); }
.ds-kpi.k-success { --kpi-c: var(--chart-good); } .ds-kpi.k-warning { --kpi-c: var(--chart-warn); } .ds-kpi.k-danger { --kpi-c: var(--chart-bad); }
.ds-kpi.k-orange { --kpi-c: var(--chart-warn-strong); } .ds-kpi.k-violet { --kpi-c: var(--chart-1); } .ds-kpi.k-neutral { --kpi-c: var(--chart-neutral); }
.ds-kpis.compact .ds-kpi { padding: 12px 14px; }
.ds-kpis.compact .ds-kpi-value { font-size: 20px; }
/* a change next to a value: <span class="ds-delta down">−13.6%</span> (.up, .down, .flat; .good/.bad say which way is good) */
.ds-delta { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 5px; font-size: 12px; font-weight: 600; letter-spacing: 0; line-height: 1.6;
  background: var(--badge-gray-bg); color: var(--badge-gray-color); font-variant-numeric: tabular-nums; }
.ds-delta.up, .ds-delta.good { background: var(--badge-success-bg); color: var(--badge-success-color); }
.ds-delta.down, .ds-delta.bad { background: var(--badge-danger-bg); color: var(--badge-danger-color); }
.ds-delta.flat { background: var(--badge-gray-bg); color: var(--badge-gray-color); }
.ds-kpi-bar { position: relative; display: block; height: 6px; margin-top: auto; padding-top: 0; border-radius: 3px; background: var(--hairline); overflow: visible; }
.ds-kpi .ds-kpi-bar, .ds-kpi .ds-kpi-segments, .ds-kpi .ds-kpi-spark { margin-top: 14px; }
.ds-kpi-bar > i { display: block; height: 100%; border-radius: 3px; background: var(--q-accent); }
.ds-kpi-bar > b { position: absolute; top: -3px; width: 2px; height: 12px; border-radius: 1px; background: var(--ink); } /* a target mark: style="left:…%" */
.ds-kpi-segments { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 3px; height: 8px; }
.ds-kpi-segments > i { border-radius: 2px; background: var(--hairline); }
.ds-kpi-segments > i.on { background: var(--q-accent); }
/* a stat strip: one card, cells divided by hairlines: <div class="ds-stats"><div class="ds-stat"><span class="ds-stat-label">…</span><strong class="ds-stat-value">…</strong></div>…</div> */
.ds-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin-bottom: 16px; background: var(--card-bg); border: 1px solid var(--card-border);
  border-radius: var(--card-radius); overflow: hidden; }
.ds-stat { display: grid; gap: 4px; padding: 14px 18px; border-left: 1px solid var(--hairline); margin-left: -1px; }
.ds-stat-label { font-size: 13px; color: var(--muted-color); }
.ds-stat-value { font-size: 22px; font-weight: 600; letter-spacing: -0.015em; color: var(--heading-color); }
.ds-stat-value.warning { color: var(--warning); } .ds-stat-value.danger { color: var(--danger); } .ds-stat-value.success { color: var(--success); }
.stat-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
/* amds.kpi(): the tile's graphic says whether things are fine before the text is read (one tile for every KPI row).
   A meter: <div class="ds-kpi-bar m-warn" role="meter"><i class="reserved"></i><i></i><b class="pace"></b></div>; its empty
   track is a light step of the fill's own hue; .m-warn from 75 %, .m-bad from 90 %. Segments: one per item, <li class="on">
   healthy, <li class="bad"> not. A split: one whole in parts (<i class="t-accent|t-neutral|t-bad">) with a legend. */
.ds-kpi-bar { --m: var(--q-accent); height: 8px; border-radius: 4px; background: color-mix(in srgb, var(--m) 16%, var(--card-bg)); overflow: visible; }
.ds-kpi-bar.m-warn { --m: var(--chart-warn); } .ds-kpi-bar.m-bad { --m: var(--chart-bad); }
.ds-kpi-bar > i { position: absolute; left: 0; top: 0; height: 100%; border-radius: 4px; background: var(--m); }
.ds-kpi-bar > i.reserved { background: color-mix(in srgb, var(--m) 40%, var(--card-bg)); }
.ds-kpi-bar > b.pace { top: -4px; height: 16px; background: var(--heading-color); }
.ds-kpi-segments { padding: 0; margin-bottom: 0; list-style: none; }
.ds-kpi-segments > li { border-radius: 2px; background: var(--hairline); }
.ds-kpi-segments > li.on { background: var(--chart-good); }
.ds-kpi-segments > li.bad, .ds-kpi-segments > i.bad { background: var(--chart-bad); }
.ds-kpi-split { display: flex; gap: 2px; height: 8px; margin-top: 0; }
.ds-kpi-split > i { min-width: 2px; border-radius: 4px; background: var(--q-accent); }
.ds-kpi-split > i.t-neutral, .ds-kpi-legend i.t-neutral { background: var(--chart-neutral); }
.ds-kpi-split > i.t-bad, .ds-kpi-legend i.t-bad { background: var(--chart-bad); }
.ds-kpi-split > i.t-good, .ds-kpi-legend i.t-good { background: var(--chart-good); }
.ds-kpi-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; line-height: 1.4; color: var(--muted-color); }
.ds-kpi-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.ds-kpi-legend i { width: 8px; height: 8px; border-radius: 2px; background: var(--q-accent); }
.ds-kpi .ds-kpi-sub + .ds-kpi-bar, .ds-kpi .ds-kpi-sub + .ds-kpi-segments, .ds-kpi .ds-kpi-sub + .ds-kpi-legend { margin-top: auto; padding-top: 0; }
.ds-kpi > .ds-kpi-sub { margin-bottom: 14px; }
/* the foot: the bottom text line and the bar or segments, pinned to the tile's bottom so a row of tiles lines up */
.ds-kpi-foot { margin-top: auto; display: grid; gap: 10px; }
.ds-kpi .ds-kpi-foot > * { margin: 0; }
.ds-kpi-foot > .ds-kpi-sub { line-height: 1.4; }
.ds-kpi > .ds-kpi-sub:last-child { margin-bottom: 0; }
.ds-kpi-of { margin-top: 4px; font-size: 14px; font-weight: 500; color: var(--muted-color); }
.ds-kpi-of + .ds-kpi-sub { margin-top: 2px; }
.ds-kpi-warn { color: var(--danger); font-weight: 700; }
a.ds-kpi-link { display: block; color: inherit; text-decoration: none; border-radius: var(--card-radius); }
a.ds-kpi-link > .ds-kpi { height: 100%; }
a.ds-kpi-link:hover > .ds-kpi, a.ds-kpi-link:focus-visible > .ds-kpi { border-color: var(--q-accent); }

/* ── Buttons: primary (solid ink blue), default/secondary (white, bordered), tertiary (text), destructive (outlined red) ── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: var(--control-h); padding: 0 14px; border-radius: var(--btn-radius);
  border: 1px solid var(--input-border); background: var(--card-bg); color: var(--ink); font: inherit; font-size: 14px; font-weight: 500; line-height: 1.2;
  cursor: pointer; text-decoration: none; white-space: nowrap; user-select: none;
  transition: background var(--ds-ease), border-color var(--ds-ease), color var(--ds-ease), box-shadow var(--ds-ease); }
.btn:hover { background: var(--subtle); border-color: var(--ink-3); color: var(--ink); }
.btn:active { transform: translateY(1px); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.btn svg { width: 16px; height: 16px; flex: 0 0 auto; }
.btn-primary { background: var(--q-accent); border-color: var(--q-accent); color: var(--q-brand-fg); }
.btn-primary:hover { background: var(--q-accent-dark); border-color: var(--q-accent-dark); color: var(--q-brand-fg); }
.btn-secondary { background: var(--card-bg); }
.btn-tertiary { background: transparent; border-color: transparent; color: var(--accent-text); padding: 0 8px; }
.btn-tertiary:hover { background: var(--q-accent-soft); border-color: transparent; color: var(--accent-text); }
.btn-soft { background: var(--q-accent-soft); border-color: transparent; color: var(--accent-text); }
.btn-soft:hover { background: var(--primary-200); border-color: transparent; color: var(--accent-text); }
.btn-success { background: var(--success); border-color: var(--success); color: var(--on-solid); }
.btn-success:hover { filter: brightness(.94); background: var(--success); border-color: var(--success); color: var(--on-solid); }
.btn-danger { background: var(--danger); border-color: var(--danger); color: var(--on-solid); }
.btn-danger:hover { filter: brightness(.94); background: var(--danger); border-color: var(--danger); color: var(--on-solid); }
.btn-destructive { background: var(--card-bg); border-color: color-mix(in srgb, var(--danger) 45%, transparent); color: var(--danger); }
.btn-destructive:hover { background: var(--danger-100); border-color: var(--danger); color: var(--danger); }
.btn-ghost { background: transparent; border-color: transparent; color: var(--muted-color); }
.btn-ghost:hover { background: var(--sidebar-hover-bg); border-color: transparent; color: var(--ink); }
.btn-sm { min-height: 30px; padding: 0 10px; font-size: 13px; }
.btn-icon { width: var(--control-h); padding: 0; }
.btn-sm.btn-icon { width: 30px; }
.btn.on, .btn[aria-pressed="true"] { background: var(--q-accent-soft); border-color: var(--q-accent); color: var(--accent-text); }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
/* segmented control: <span class="ds-seg"><button class="btn on">Day</button><button class="btn">Week</button></span> */
.ds-seg { display: inline-flex; align-items: stretch; border: 1px solid var(--input-border); border-radius: var(--btn-radius); background: var(--card-bg); overflow: hidden; }
.ds-seg > .btn { min-height: calc(var(--control-h) - 2px); border: 0; border-radius: 0; border-left: 1px solid var(--hairline); background: transparent; font-weight: 500; }
.ds-seg > .btn:first-child { border-left: 0; }
.ds-seg > .btn:hover { background: var(--subtle); }
.ds-seg > .btn.on, .ds-seg > .btn[aria-pressed="true"] { background: var(--q-accent-soft); color: var(--accent-text); font-weight: 600; }
.ds-seg > .btn-sm { min-height: 28px; }

/* ── Forms ── */
label.field, .ds-field { display: grid; gap: 6px; margin-bottom: 14px; min-width: 0; align-content: start; } /* stretched beside a taller field, its rows stay packed at the top: label, input and hint line up across the row */
label.field > span, .ds-label { display: block; font-weight: 500; font-size: 13px; color: var(--ink); }
label.field > small, .ds-hint { display: block; color: var(--faint-color); font-size: 12px; }
.ds-field .ds-error, .ds-field-error { color: var(--danger); font-size: 12px; }
.ds-form-grid { display: grid; gap: 0 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.ds-form-grid > .ds-wide { grid-column: 1 / -1; }
.ds-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 400; }
.ds-check input { width: 16px; height: 16px; margin: 0; }
.input, .select, .textarea,
input[type=text], input[type=password], input[type=number], input[type=email], input[type=search], input[type=tel], input[type=url],
input[type=date], input[type=time], input[type=datetime-local], input[type=month], input[type=week], input:not([type]), select, textarea {
  width: 100%; min-height: var(--control-h); padding: 7px 11px; border: 1px solid var(--input-border); border-radius: var(--input-radius);
  background-color: var(--input-bg); color: var(--input-color); font: inherit; font-size: 14px; line-height: 1.4;
  transition: border-color var(--ds-ease), box-shadow var(--ds-ease); }
.input:hover, .select:hover, .textarea:hover, input:hover:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not(:disabled), select:hover, textarea:hover {
  border-color: var(--ink-3); }
input:focus, select:focus, textarea:focus, .input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--input-focus-border); box-shadow: var(--input-focus-shadow); }
input:disabled, select:disabled, textarea:disabled { background-color: var(--input-disabled-bg); color: var(--muted-color); cursor: not-allowed; }
input::placeholder, textarea::placeholder { color: var(--faint-color); opacity: 1; }
select, .select { appearance: none; -webkit-appearance: none; padding-right: 32px; cursor: pointer;
  background-image: var(--select-chevron); background-repeat: no-repeat; background-position: right 10px center; background-size: 12px; }
select[multiple] { background-image: none; padding-right: 11px; }
textarea, .textarea { min-height: 84px; resize: vertical; }
/* one height for every one-line field: date and time pickers are otherwise taller than text inputs */
.input, .select, select:not([multiple]):not([size]),
input[type=text], input[type=password], input[type=number], input[type=email], input[type=search], input[type=tel], input[type=url],
input[type=date], input[type=time], input[type=datetime-local], input[type=month], input[type=week], input:not([type]) { height: var(--control-h); padding-top: 0; padding-bottom: 0; }
input[type=date], input[type=time], input[type=datetime-local], input[type=month], input[type=week] { width: auto; min-width: 150px; }
input[type=date]::-webkit-calendar-picker-indicator, input[type=time]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .6; }
[data-theme="dark"] input::-webkit-calendar-picker-indicator { filter: invert(.85); }
input[type=file] { font: inherit; font-size: 13px; color: var(--muted-color); max-width: 100%; }
input[type=file]::file-selector-button { margin-right: 10px; min-height: 32px; padding: 0 12px; border: 1px solid var(--input-border); border-radius: var(--btn-radius);
  background: var(--card-bg); color: var(--ink); font: inherit; font-weight: 500; cursor: pointer; }
input[type=file]::file-selector-button:hover { border-color: var(--ink-3); }
fieldset { border: 1px solid var(--border); border-radius: var(--card-radius); padding: 12px 16px; margin: 0 0 14px; }
legend { padding: 0 6px; font-weight: 600; font-size: 13px; }
/* search box: <label class="ds-search"><svg…/><input type="search"></label>; the icon is optional */
.ds-search { position: relative; display: inline-flex; align-items: center; width: 260px; max-width: 100%; }
.ds-search input { padding-left: 34px; }
.ds-search svg { position: absolute; left: 11px; width: 16px; height: 16px; color: var(--faint-color); pointer-events: none; }
.ds-search:not(:has(svg)) input { padding-left: 11px; }
/* switch: <label class="ds-switch"><input type="checkbox"> Label</label> */
.ds-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 400; }
.ds-switch input { appearance: none; -webkit-appearance: none; position: relative; width: 34px; height: 20px; margin: 0; flex: 0 0 auto; border-radius: 999px;
  background: var(--border-strong); cursor: pointer; transition: background var(--ds-ease); }
.ds-switch input::before { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: transform var(--ds-ease); }
.ds-switch input:checked { background: var(--q-accent); }
.ds-switch input:checked::before { transform: translateX(14px); }
.ds-switch input:disabled { opacity: .5; cursor: not-allowed; }

/* ── Toolbar (filters above a list; in a flush card it sits on the card's own padding) ── */
.ds-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.card.flush > .ds-toolbar { margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--hairline); }
.ds-toolbar .select, .ds-toolbar select { width: auto; min-width: 140px; }
.ds-toolbar .input, .ds-toolbar input[type=search], .ds-toolbar input[type=text] { width: auto; min-width: 200px; }
.ds-toolbar .ds-search, .ds-toolbar .ds-search input { min-width: 0; }
.ds-toolbar .ds-search input { width: 100%; }
.ds-toolbar > .ds-search:last-child, .ds-toolbar > .ds-push { margin-left: auto; }
.ds-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.ds-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--input-border);
  background: var(--card-bg); color: var(--muted-color); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; transition: all var(--ds-ease); }
.ds-chip:hover { color: var(--ink); border-color: var(--ink-3); }
.ds-chip.on, .ds-chip[aria-pressed="true"] { background: var(--q-accent-soft); color: var(--accent-text); border-color: transparent; font-weight: 600; }
/* selected rows: <div class="ds-bulk"><strong>3 selected</strong><button class="btn btn-sm">Confirm</button>…</div> */
.ds-bulk { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 16px; background: var(--q-accent-soft); color: var(--accent-text); font-size: 13px; }
.ds-bulk strong { margin-right: 8px; }

/* ── Tables ── */
.table-wrap, .table-scroll { overflow: auto; background: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--card-radius); }
.table-scroll { max-height: 64vh; }
.table-scroll.no-max { max-height: none; }
.card > .table-scroll, .card > .table-wrap { border-color: var(--table-border); }
table.ds-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.ds-table th { position: sticky; top: 0; z-index: 1; background: var(--table-header-bg); color: var(--table-header-color); text-align: left; font-weight: 500; font-size: 13px;
  padding: 10px 16px; white-space: nowrap; border-bottom: 1px solid var(--table-border); }
.ds-table td { padding: 12px 16px; border-bottom: 1px solid var(--table-border); vertical-align: middle; color: var(--ink); }
.ds-table tbody tr:last-child td { border-bottom: 0; }
.ds-table tbody tr { transition: background var(--ds-ease); }
.ds-table tbody tr:hover { background: var(--row-hover); }
.ds-table tbody tr.selected { background: var(--q-accent-soft); }
.ds-table td.num, .ds-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.ds-table td.num { font-weight: 600; }
.ds-table td.actions, .ds-table th.actions { width: 1px; white-space: nowrap; text-align: right; }
.ds-table td.actions .btn + .btn { margin-left: 4px; }
.ds-table td.actions .btn-icon { color: var(--ink-3); }
.ds-table th.check, .ds-table td.check { width: 44px; padding-right: 0; }
.ds-table th.check input, .ds-table td.check input { width: 16px; height: 16px; margin: 0; vertical-align: middle; }
/* a group row: <tr class="ds-group"><td colspan="…"><strong>Today</strong> · Thursday 29 October · 8 shown</td></tr> */
.ds-table tr.ds-group td { padding: 8px 16px; background: var(--subtle); color: var(--muted-color); font-size: 12px; }
.ds-table tr.ds-group td strong { color: var(--ink); font-weight: 600; }
.ds-table tr.ds-group:hover { background: transparent; }
.ds-table th.sortable { cursor: pointer; user-select: none; }
.ds-table th.sortable::after { content: "⇅"; margin-left: 6px; opacity: .45; font-size: 11px; }
.ds-table th.sortable[aria-sort="ascending"]::after { content: "▲"; opacity: .9; }
.ds-table th.sortable[aria-sort="descending"]::after { content: "▼"; opacity: .9; }
.ds-table tfoot td, .ds-table tr.total td { font-weight: 600; background: var(--subtle); border-top: 1px solid var(--table-border); border-bottom: 0; }
.ds-table .table-link, .ds-table a.table-link { font-weight: 500; color: var(--accent-text); text-decoration: none; }
.ds-table .table-link:hover { text-decoration: underline; }
/* any other link in a table: no underline until hovered (a column of underlined names is noise) */
.ds-table td a:not(.btn):not(.table-link) { color: var(--accent-text); text-decoration: none; }
.ds-table td a:not(.btn):hover { text-decoration: underline; }
.ds-table td a.ds-cell-sub:not(.btn) { color: var(--faint-color); font-weight: 400; }
.ds-table strong { font-weight: 600; }
.ds-cell-sub { display: block; font-size: 13px; font-weight: 400; color: var(--faint-color); margin-top: 2px; }
.ds-table td.ds-empty, .ds-table .ds-empty { padding: 36px 16px; }
.ds-pager { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; padding: 12px 0 0; font-size: 13px; color: var(--muted-color); }
.card.flush > .ds-pager { padding: 12px 16px; border-top: 1px solid var(--hairline); }
/* a long list (data-limit, am-ds.js): the filter above it, "N of M · Show more" below */
.ds-limit-bar { display: flex; justify-content: flex-end; margin: 0 0 10px; }
.ds-limit-bar .ds-search { width: 240px; }
@media (max-width: 640px) { .ds-limit-bar .ds-search { width: 100%; } }
.ds-limit-foot { padding-top: 10px; }
.ds-pager .select { width: auto; min-width: 72px; height: 32px; min-height: 32px; }
.ds-pager-nav { display: inline-flex; align-items: center; gap: 8px; }
/* a dot before a category name: <span class="ds-dot" data-hue="teal"></span>Cleaning */
.ds-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--hue, var(--q-accent)); vertical-align: 1px; }

/* ── Pills, badges, tags: a tint with a dot and ink of the same hue ── */
.pill, .badge, .tag { --t-bg: var(--badge-gray-bg); --t-fg: var(--badge-gray-color); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 12px; font-weight: 500; line-height: 1.55; background: var(--t-bg); color: var(--t-fg); vertical-align: middle; }
.pill { padding: 1px 9px; border-radius: var(--pill-radius); }
.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pill.xs { padding: 0 8px; font-size: 11px; }
.pill.struck { text-decoration: line-through; text-decoration-thickness: 1px; }
.badge { padding: 1px 8px; border-radius: 5px; font-weight: 600; }
.tag { padding: 1px 10px; border-radius: var(--pill-radius); background: transparent; border: 1px solid var(--border); color: var(--muted-color); font-weight: 500; }
.tone-gray { --t-bg: var(--badge-gray-bg); --t-fg: var(--badge-gray-color); }
.tone-primary, .pill-primary { --t-bg: var(--badge-primary-bg); --t-fg: var(--badge-primary-color); }
.tone-info, .pill-info { --t-bg: var(--badge-info-bg); --t-fg: var(--badge-info-color); }
.tone-success, .pill-success { --t-bg: var(--badge-success-bg); --t-fg: var(--badge-success-color); }
.tone-warning, .pill-warning { --t-bg: var(--badge-warning-bg); --t-fg: var(--badge-warning-color); }
.tone-danger, .pill-danger { --t-bg: var(--badge-danger-bg); --t-fg: var(--badge-danger-color); }
.tone-orange, .pill-orange { --t-bg: var(--badge-orange-bg); --t-fg: var(--badge-orange-color); }
.tone-override { --t-bg: var(--override-bg); --t-fg: var(--override-color); }
.tag[class*="tone-"] { border-color: transparent; background: var(--t-bg); color: var(--t-fg); }
.pill.solid, .badge.solid { background: var(--t-fg); color: var(--card-bg); }
/* a category label: <span class="tag" data-hue="teal">Cleaning</span> is tinted with ink text */
.tag[data-hue] { border-color: transparent; background: var(--hue-tint); color: var(--ink); }
.tag[data-hue]::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--hue); }

/* ── Meter ── */
.meter { display: flex; align-items: center; gap: 10px; min-width: 140px; }
.meter .bar { flex: 1; height: 6px; border-radius: 3px; background: var(--hairline); overflow: hidden; }
.meter .bar > i { display: block; height: 100%; border-radius: 3px; background: var(--q-accent); }
.meter.warn .bar > i { background: var(--chart-warn); }
.meter.bad .bar > i { background: var(--chart-bad); }
.meter.good .bar > i { background: var(--chart-good); }
.meter .val { font-size: 12px; color: var(--muted-color); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── Notices, empty state ── */
.notice { border: 1px solid var(--border); border-left: 3px solid var(--q-accent); background: var(--card-bg); padding: 10px 14px; border-radius: var(--control-radius); margin-bottom: 16px; font-size: 13px; }
.notice.success { border-left-color: var(--success); }
.notice.warning { border-left-color: var(--warning); }
.notice.danger { border-left-color: var(--danger); }
.notice > :last-child { margin-bottom: 0; }
.empty, .ds-empty { display: grid; justify-items: center; gap: 6px; text-align: center; padding: 40px 16px; color: var(--muted-color); }
.ds-empty::before { content: ""; width: 40px; height: 40px; margin-bottom: 4px; border-radius: 50%; background: var(--subtle)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238e99a8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E") center no-repeat;
  box-shadow: inset 0 0 0 1px var(--hairline); }
.ds-empty.plain::before { display: none; }
.ds-empty strong, .ds-empty h3 { color: var(--heading-color); font-size: 14px; font-weight: 600; margin: 0; }
.ds-empty p { margin: 0; max-width: 420px; font-size: 13px; }
.ds-empty .btn { margin-top: 8px; }
.ds-loading { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 32px 16px; color: var(--muted-color); }
.ds-loading::before, .ds-spinner { content: ""; display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--border);
  border-top-color: var(--q-accent); animation: ds-spin .8s linear infinite; }
@keyframes ds-spin { to { transform: rotate(360deg); } }

/* ── Modal: <dialog> (preferred: showModal(), Esc closes) or .ds-modal-overlay > .ds-modal ── */
dialog::backdrop { background: var(--modal-overlay); }
dialog, .ds-modal, .modal { width: 560px; max-width: 93vw; max-height: 88vh; overflow: auto; padding: 24px;
  background: var(--modal-bg); color: var(--body-color); border: 1px solid var(--card-border); border-radius: var(--modal-radius); box-shadow: var(--modal-shadow); }
.ds-modal.wide { width: 880px; }
.ds-modal-overlay, .modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-start; justify-content: center; padding: 8vh 16px;
  background: var(--modal-overlay); overflow-y: auto; }
.ds-modal-title, dialog > h2:first-child, dialog form > h2:first-child { margin: 0 0 18px; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; color: var(--heading-color); }
.ds-modal-actions, .modal footer, dialog footer, dialog menu { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin: 20px -24px -24px; padding: 14px 24px;
  border-top: 1px solid var(--hairline); background: var(--subtle);
  /* a long dialog scrolls under its buttons: they stay in view */
  position: sticky; bottom: -24px; z-index: 1; }
dialog[open] { animation: ds-pop 140ms ease-out; }
@keyframes ds-pop { from { opacity: 0; transform: translateY(6px) scale(.985); } }

/* ── Toasts: amds.toast(title, text, type) ── */
.ds-toasts { position: fixed; right: 16px; bottom: 16px; z-index: 1100; display: grid; gap: 8px; width: min(380px, calc(100vw - 32px)); }
.ds-toast { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 14px; background: var(--modal-bg); color: var(--body-color);
  border: 1px solid var(--card-border); border-left: 3px solid var(--q-accent); border-radius: var(--card-radius); box-shadow: var(--float-shadow); animation: ds-pop 140ms ease-out; }
.ds-toast.success { border-left-color: var(--success); }
.ds-toast.warning { border-left-color: var(--warning); }
.ds-toast.danger { border-left-color: var(--danger); }
.ds-toast-title { font-weight: 600; color: var(--heading-color); }
.ds-toast-text { grid-column: 1; font-size: 13px; color: var(--muted-color); overflow-wrap: anywhere; }
.ds-toast-close { grid-column: 2; grid-row: 1 / span 2; align-self: start; border: 0; background: transparent; color: var(--faint-color); font-size: 18px; line-height: 1;
  width: 28px; height: 28px; border-radius: 6px; cursor: pointer; }
.ds-toast-close:hover { background: var(--subtle); color: var(--ink); }
.toast { position: fixed; right: 16px; bottom: 16px; z-index: 1100; background: var(--ink); color: var(--surface); padding: 10px 16px; border-radius: var(--control-radius); box-shadow: var(--float-shadow); max-width: 420px; }
.toast.error { background: var(--danger); color: var(--on-solid); }

/* ── Category hues: data-hue="sky|teal|amber|slate|plum|orange|navy|green|violet" on an element (never <html>).
   --hue is the solid colour (dots, chart series), --hue-tint the block colour (schedule events, tags; text on it is
   always ink), and the accent tokens inside the element are re-tinted to it. ── */
[data-hue="sky"]    { --hue: #3a6ea5; --hue-tint: #eaf0f6; --q-accent: #2f5e8e; --q-accent-dark: #254b72; --q-accent-soft: #eaf0f6; --accent-text: #2b5784; --primary-rgb: 47,94,142; }
[data-hue="teal"]   { --hue: #2a8c82; --hue-tint: #e6f3f1; --q-accent: #1f6f67; --q-accent-dark: #185952; --q-accent-soft: #e6f3f1; --accent-text: #1d665f; --primary-rgb: 31,111,103; }
[data-hue="amber"]  { --hue: #b8742a; --hue-tint: #faf0e3; --q-accent: #8f5a1e; --q-accent-dark: #744818; --q-accent-soft: #faf0e3; --accent-text: #85521a; --primary-rgb: 143,90,30; }
[data-hue="slate"]  { --hue: #6a6e74; --hue-tint: #efefec; --q-accent: #4a4d52; --q-accent-dark: #3a3d41; --q-accent-soft: #efefec; --accent-text: #4a4d52; --primary-rgb: 74,77,82; }
[data-hue="plum"]   { --hue: #8a5bb0; --hue-tint: #f2ecf7; --q-accent: #6e4592; --q-accent-dark: #593776; --q-accent-soft: #f2ecf7; --accent-text: #66408a; --primary-rgb: 110,69,146; }
[data-hue="orange"] { --hue: #c4552e; --hue-tint: #fbeae3; --q-accent: #a2431f; --q-accent-dark: #853619; --q-accent-soft: #fbeae3; --accent-text: #983f1d; --primary-rgb: 162,67,31; }
[data-hue="navy"]   { --hue: #4b4fa6; --hue-tint: #ecedf8; --q-accent: #3e428e; --q-accent-dark: #323574; --q-accent-soft: #ecedf8; --accent-text: #3a3d85; --primary-rgb: 62,66,142; }
[data-hue="green"]  { --hue: #3f7f4a; --hue-tint: #e8f2ea; --q-accent: #2f6538; --q-accent-dark: #25502c; --q-accent-soft: #e8f2ea; --accent-text: #2c5f35; --primary-rgb: 47,101,56; }
[data-hue="violet"] { --hue: #6b4fb8; --hue-tint: #efebf8; --q-accent: #5a40a3; --q-accent-dark: #4a3486; --q-accent-soft: #efebf8; --accent-text: #54399a; --primary-rgb: 90,64,163; }
[data-theme="dark"] [data-hue="sky"]    { --hue: #6e9dd0; --hue-tint: rgba(110,157,208,.18); --q-accent: #3c72a8; --q-accent-dark: #4a82ba; --q-accent-soft: rgba(110,157,208,.18); --accent-text: #a9c6e4; --primary-rgb: 110,157,208; }
[data-theme="dark"] [data-hue="teal"]   { --hue: #4fb3a8; --hue-tint: rgba(79,179,168,.16); --q-accent: #22786f; --q-accent-dark: #2a8c82; --q-accent-soft: rgba(79,179,168,.16); --accent-text: #9fdcd3; --primary-rgb: 79,179,168; }
[data-theme="dark"] [data-hue="amber"]  { --hue: #d9963f; --hue-tint: rgba(217,150,63,.16); --q-accent: #96601f; --q-accent-dark: #a86a22; --q-accent-soft: rgba(217,150,63,.16); --accent-text: #f0cd95; --primary-rgb: 217,150,63; }
[data-theme="dark"] [data-hue="slate"]  { --hue: #a3a8b0; --hue-tint: rgba(163,168,176,.14); --q-accent: #5c6066; --q-accent-dark: #6a6e74; --q-accent-soft: rgba(163,168,176,.14); --accent-text: #c9ccd2; --primary-rgb: 163,168,176; }
[data-theme="dark"] [data-hue="plum"]   { --hue: #b48ad6; --hue-tint: rgba(180,138,214,.16); --q-accent: #7e52a3; --q-accent-dark: #8a5bb0; --q-accent-soft: rgba(180,138,214,.16); --accent-text: #d8c2ec; --primary-rgb: 180,138,214; }
[data-theme="dark"] [data-hue="orange"] { --hue: #e0734a; --hue-tint: rgba(224,115,74,.16); --q-accent: #b4492b; --q-accent-dark: #c4552e; --q-accent-soft: rgba(224,115,74,.16); --accent-text: #f3b49b; --primary-rgb: 224,115,74; }
[data-theme="dark"] [data-hue="navy"]   { --hue: #8a8ee0; --hue-tint: rgba(138,142,224,.16); --q-accent: #5559b8; --q-accent-dark: #6266c4; --q-accent-soft: rgba(138,142,224,.16); --accent-text: #c4c6f2; --primary-rgb: 138,142,224; }
[data-theme="dark"] [data-hue="green"]  { --hue: #6fb37c; --hue-tint: rgba(111,179,124,.16); --q-accent: #3a7744; --q-accent-dark: #3f7f4a; --q-accent-soft: rgba(111,179,124,.16); --accent-text: #a8dcb6; --primary-rgb: 111,179,124; }
[data-theme="dark"] [data-hue="violet"] { --hue: #9f8ae6; --hue-tint: rgba(159,138,230,.16); --q-accent: #6b4fb8; --q-accent-dark: #7a5ec6; --q-accent-soft: rgba(159,138,230,.16); --accent-text: #ccc0f4; --primary-rgb: 159,138,230; }
[data-hue] { --primary: var(--q-accent); --link-color: var(--accent-text); --badge-primary-bg: var(--q-accent-soft); --badge-primary-color: var(--accent-text);
  --input-focus-border: var(--q-accent); --input-focus-shadow: 0 0 0 3px rgba(var(--primary-rgb), .18); }
.ds-hero { margin: -28px -32px 24px; padding: 28px 32px 24px; background: var(--q-accent-soft); border-bottom: 1px solid var(--border); }
.ds-eyebrow { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 600; color: var(--accent-text); }
.ds-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 8px;
  background: var(--q-accent-soft); color: var(--accent-text); }
.ds-icon svg { width: 18px; height: 18px; }
.ds-icon.solid { background: var(--q-accent); color: var(--q-brand-fg); }
.ds-icon.lg { width: 44px; height: 44px; border-radius: 10px; }
.ds-icon.lg svg { width: 24px; height: 24px; }
.card-title.with-icon { display: flex; align-items: center; gap: 10px; }
.card.accent-top { border-top: 2px solid var(--q-accent); }

/* ── Charts: <figure class="ds-chart"><canvas></canvas><figcaption>…</figcaption></figure>, drawn by amds.chart ── */
/* amds.chart puts the canvas in a .ds-chart-box (Chart.js sizes a canvas from a parent of its own) */
.ds-chart { margin: 0; }
.ds-chart-box { position: relative; width: 100%; height: var(--chart-h, 260px); }
.ds-chart.sm { --chart-h: 190px; }
.ds-chart.lg { --chart-h: 340px; }
.ds-chart figcaption { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--hairline); font-size: 12px; color: var(--faint-color); }
/* a sparkline in a KPI tile: <div class="ds-kpi-spark"></div>, then amds.sparkline(thatDiv, values) */
.ds-kpi-spark { position: relative; display: block; width: 100%; height: 30px; margin-top: 12px; }
/* a bar list without a chart library: <ul class="ds-bars"><li><span><i class="ds-dot" data-hue="sky"></i>Label</span><span class="bar"><i style="width:62%"></i></span><b>62</b></li></ul> */
.ds-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ds-bars li { display: grid; grid-template-columns: minmax(90px, 26%) 1fr auto; align-items: center; gap: 16px; font-size: 14px; }
.ds-bars li > span:first-child { display: flex; align-items: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.ds-bars .bar { height: 8px; border-radius: 2px; background: var(--hairline); overflow: hidden; }
.ds-bars .bar > i { display: block; height: 100%; border-radius: 2px; background: var(--chart-1); }
.ds-bars li[data-slot="2"] .bar > i { background: var(--chart-2); } .ds-bars li[data-slot="3"] .bar > i { background: var(--chart-3); }
.ds-bars li[data-slot="4"] .bar > i { background: var(--chart-4); } .ds-bars li[data-slot="5"] .bar > i { background: var(--chart-5); }
.ds-bars li[data-slot="6"] .bar > i { background: var(--chart-6); } .ds-bars li[data-slot="7"] .bar > i { background: var(--chart-7); }
.ds-bars li[data-slot="8"] .bar > i { background: var(--chart-8); } .ds-bars li.other .bar > i { background: var(--chart-neutral); }
.ds-bars b { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--heading-color); min-width: 4ch; text-align: right; }

/* ── Time grid: amds.schedule(el, {columns, events, from, to, step}) renders this ── */
.ds-sched { --sched-gutter: 56px; --sched-min: 150px; position: relative; overflow: auto; max-height: var(--sched-max, 72vh);
  border: 1px solid var(--card-border); border-radius: var(--card-radius); background: var(--card-bg); }
.ds-sched-grid { display: grid; grid-template-columns: var(--sched-gutter) repeat(var(--sched-cols, 1), minmax(var(--sched-min), 1fr)); min-width: min-content; }
.ds-sched-corner, .ds-sched-colhead { position: sticky; top: 0; z-index: 3; background: var(--subtle); border-bottom: 1px solid var(--hairline); }
.ds-sched-corner { left: 0; z-index: 4; }
.ds-sched-colhead { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 4px 10px; min-width: 0; padding: 10px 12px; border-left: 1px solid var(--hairline); }
.ds-sched-colhead > span { display: grid; min-width: 0; }
.ds-sched-colhead strong { font-size: 14px; font-weight: 600; color: var(--heading-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-sched-colhead small { font-size: 12px; color: var(--faint-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-sched-colhead.today strong { color: var(--accent-text); }
.ds-sched-load { grid-column: 3; font-size: 12px; color: var(--faint-color); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ds-sched-loadbar { grid-column: 1 / -1; height: 3px; border-radius: 2px; background: var(--hairline); overflow: hidden; }
.ds-sched-loadbar > i { display: block; height: 100%; background: var(--q-accent); }
.ds-sched-times { position: sticky; left: 0; z-index: 2; background: var(--card-bg); }
/* each label sits on its hour line; the first one hangs below the top edge so it is never clipped */
.ds-sched-time { position: absolute; right: 10px; transform: translateY(-50%); font-size: 12px; color: var(--faint-color); font-variant-numeric: tabular-nums; line-height: 1; }
.ds-sched-time.top { transform: translateY(4px); }
.ds-sched-col { position: relative; border-left: 1px solid var(--hairline);
  background-image: linear-gradient(var(--hairline) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--hairline) 55%, transparent) 1px, transparent 1px);
  background-size: 100% var(--sched-hour, 64px), 100% var(--sched-minor, 32px); background-position: 0 0, 0 0; }
.ds-sched-col.today { background-color: color-mix(in srgb, var(--q-accent-soft) 30%, transparent); }
.ds-sched-slot { position: absolute; left: 0; right: 0; z-index: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.ds-sched-slot:hover, .ds-sched-slot:focus-visible { background: var(--row-hover); outline-offset: -2px; }
/* an event: the category's tint, ink text, a dot of the category's colour; no-shows hatched */
.ds-sched-event { --ev-bg: var(--hue-tint, var(--q-accent-soft)); --ev-fg: var(--ink); --ev-dot: var(--hue, var(--q-accent));
  position: absolute; z-index: 1; display: flex; flex-direction: column; gap: 1px; overflow: hidden; min-height: 22px; padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--ev-dot) 22%, transparent); border-radius: var(--control-radius); background: var(--ev-bg); color: var(--ev-fg);
  font: inherit; font-size: 12.5px; line-height: 1.35; text-align: left; transition: box-shadow var(--ds-ease); }
button.ds-sched-event { cursor: pointer; }
button.ds-sched-event:hover { box-shadow: 0 0 0 1px color-mix(in srgb, var(--ev-dot) 45%, transparent); }
.ds-sched-event.short { flex-direction: row; align-items: center; gap: 6px; padding-top: 3px; padding-bottom: 3px; }
.ds-sched-event strong { display: flex; align-items: center; gap: 7px; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-sched-event strong::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--ev-dot); }
.ds-sched-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.ds-sched-event:not(.short) span { padding-left: 14px; }
.ds-sched-event:has(.ds-sched-badge) { padding-right: 76px; } /* the badge never covers the name or time */
.ds-sched-badge { position: absolute; top: 5px; right: 6px; padding: 0 7px; border-radius: var(--pill-radius); background: var(--card-bg); color: var(--accent-text);
  font-size: 11px; font-weight: 600; line-height: 1.7; }
.ds-sched-event.noshow { background: repeating-linear-gradient(135deg, var(--subtle) 0 6px, var(--hairline) 6px 7px); --ev-dot: var(--chart-bad); }
.ds-sched-event[class*="tone-"], .ds-cal-event[class*="tone-"], .ds-agenda-item[class*="tone-"] { --ev-bg: var(--t-bg); --ev-fg: var(--ink); --ev-dot: var(--t-fg); --ev-bar: var(--t-fg); }
.ds-sched-now { position: absolute; left: 0; right: 0; z-index: 2; height: 0; border-top: 1.5px solid var(--alert-line); pointer-events: none; }
.ds-sched-nowlabel { position: absolute; right: 4px; z-index: 3; transform: translateY(-50%); padding: 1px 5px; border-radius: 4px; background: var(--alert-line); color: #fff;
  font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.5; pointer-events: none; }

/* ── Month calendar: amds.calendar(el, {month, events}) renders this ── */
.ds-cal { border: 1px solid var(--card-border); border-radius: var(--card-radius); background: var(--card-bg); overflow: hidden; }
.ds-cal-head, .ds-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.ds-cal-head span { padding: 8px 10px; font-size: 12px; font-weight: 500; color: var(--faint-color); background: var(--subtle); border-bottom: 1px solid var(--hairline); }
.ds-cal-day { display: flex; flex-direction: column; gap: 3px; min-width: 0; min-height: 108px; padding: 6px; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.ds-cal-day:nth-child(7n) { border-right: 0; }
.ds-cal-day.out { background: var(--subtle); }
.ds-cal-day.out .ds-cal-num { color: var(--faint-color); }
.ds-cal-num { align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 6px;
  border: 0; border-radius: 13px; background: transparent; color: var(--heading-color); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; font-variant-numeric: tabular-nums; }
.ds-cal-num:hover { background: var(--row-hover); }
.ds-cal-day.today .ds-cal-num { background: var(--q-accent); color: var(--q-brand-fg); }
.ds-cal-day.selected { box-shadow: inset 0 0 0 2px var(--q-accent); }
.ds-cal-event { --ev-bg: var(--hue-tint, var(--q-accent-soft)); --ev-fg: var(--ink); --ev-dot: var(--hue, var(--q-accent));
  display: flex; align-items: center; gap: 6px; width: 100%; overflow: hidden; padding: 2px 6px; border: 0; border-radius: 4px;
  background: var(--ev-bg); color: var(--ev-fg); font: inherit; font-size: 12px; line-height: 1.45; text-align: left; white-space: nowrap; cursor: pointer; }
.ds-cal-event::before { content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--ev-dot); }
.ds-cal-event b { font-weight: 600; font-variant-numeric: tabular-nums; }
.ds-cal-more { align-self: flex-start; padding: 0 6px; border: 0; background: none; color: var(--link-color); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; }
.ds-cal-dots { display: none; gap: 3px; justify-content: center; }
.ds-cal-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--hue, var(--q-accent)); }
.ds-cal-dots i[class*="tone-"] { background: var(--t-fg); }
.ds-cal-agenda.ds-agenda { display: none; margin-top: 16px; }

/* ── Agenda: a list of events grouped by day (amds.agenda, or by hand); .rows is the dense list of a card ("Today") ── */
.ds-agenda { display: grid; gap: 16px; }
.ds-agenda-day { display: grid; gap: 6px; }
.ds-agenda-date { margin: 0; font-size: 12px; font-weight: 600; color: var(--faint-color); }
.ds-agenda-item { --ev-dot: var(--hue, var(--q-accent));
  display: grid; grid-template-columns: 96px 1fr auto; gap: 2px 14px; align-items: center; width: 100%; padding: 10px 12px; border: 1px solid var(--card-border);
  border-radius: 8px; background: var(--card-bg); color: var(--text); font: inherit; text-align: left; }
button.ds-agenda-item { cursor: pointer; }
button.ds-agenda-item:hover { background: var(--row-hover); }
.ds-agenda-time { grid-row: span 2; white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.ds-agenda-title { grid-column: 2; font-weight: 600; color: var(--heading-color); }
.ds-agenda-sub { grid-column: 2; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--faint-color); }
.ds-agenda-sub::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--ev-dot); }
.ds-agenda-item > .pill { grid-column: 3; grid-row: 1 / span 2; }
.ds-agenda-empty { padding: 12px; color: var(--muted-color); font-size: 13px; }
.ds-agenda.rows { gap: 0; }
.ds-agenda.rows .ds-agenda-day { gap: 0; }
.ds-agenda.rows .ds-agenda-date { display: none; }
.ds-agenda.rows .ds-agenda-item { padding: 12px 0; border: 0; border-top: 1px solid var(--hairline); border-radius: 0; background: transparent; }
.ds-agenda.rows .ds-agenda-day:first-child .ds-agenda-item:first-child { border-top: 0; }
.ds-agenda.rows button.ds-agenda-item:hover { background: var(--row-hover); }

/* ── Activity timeline: <ol class="ds-timeline"><li class="tone-success"><strong>…</strong><p>…</p><time>…</time></li></ol> ── */
.ds-timeline { list-style: none; margin: 0; padding: 0; }
.ds-timeline > li { position: relative; padding: 0 0 18px 26px; }
.ds-timeline > li:not([class*="tone-"]) { --t-fg: var(--q-accent); }
.ds-timeline > li::before { content: ""; position: absolute; left: 4px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--t-fg); box-shadow: 0 0 0 3px var(--card-bg); z-index: 1; }
.ds-timeline > li::after { content: ""; position: absolute; left: 8px; top: 12px; bottom: -4px; width: 2px; background: var(--border); }
.ds-timeline > li:last-child { padding-bottom: 0; }
.ds-timeline > li:last-child::after { display: none; }
.ds-timeline strong { display: block; font-weight: 600; color: var(--heading-color); }
.ds-timeline p { margin: 2px 0 0; color: var(--text); }
.ds-timeline time { display: block; margin-top: 2px; font-size: 12px; color: var(--muted-color); }

/* ── Stepper (DESIGN-SPEC §7.10): <ol class="ds-steps"><li class="done">…</li><li class="current">…</li><li>…</li></ol>;
   .ds-steps.finished when the last step is reached ── */
.ds-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; counter-reset: step; }
.ds-steps > li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 0 4px; text-align: center; counter-increment: step;
  font-size: 12px; font-weight: 500; color: var(--muted-color); }
.ds-steps > li::before { content: counter(step); position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
  background: var(--card-bg); box-shadow: inset 0 0 0 2px var(--card-border); color: var(--muted-color); font-size: 12px; font-weight: 600; }
.ds-steps > li::after { content: ""; position: absolute; top: 13px; left: calc(-50% + 14px); right: calc(50% + 14px); height: 2px; background: var(--card-border); }
.ds-steps > li:first-child::after { display: none; }
.ds-steps > li.done, .ds-steps > li.current { color: var(--heading-color); font-weight: 600; }
.ds-steps > li.done::before { content: "✓"; background: var(--q-accent); box-shadow: none; color: var(--q-brand-fg); }
.ds-steps > li.current::before { background: var(--q-accent); box-shadow: 0 0 0 5px var(--q-accent-soft); color: var(--q-brand-fg); }
.ds-steps > li.done::after, .ds-steps > li.current::after { background: var(--q-accent); }
.ds-steps.finished > li::before { content: "✓"; background: var(--success); box-shadow: none; color: var(--on-solid); }
.ds-steps.finished > li::after { background: var(--success); }
.ds-steps small { font-weight: 400; color: var(--muted-color); }

/* ── Avatars anywhere: <span class="ds-avatar">AS</span> (or an <img>); .ds-avatars groups them ── */
.ds-avatar { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; overflow: hidden;
  background: var(--q-accent-soft); color: var(--accent-text); font-size: 12px; font-weight: 600; line-height: 1; vertical-align: middle; }
.ds-avatar img { width: 100%; height: 100%; object-fit: cover; }
.ds-avatar.sm { width: 24px; height: 24px; font-size: 11px; }
.ds-avatar.lg { width: 44px; height: 44px; font-size: 15px; }
.ds-avatars { display: inline-flex; align-items: center; }
.ds-avatars > .ds-avatar { box-shadow: 0 0 0 2px var(--card-bg); }
.ds-avatars > .ds-avatar + .ds-avatar { margin-left: -5px; }
.ds-avatars > .ds-avatar.more { background: var(--surface2); color: var(--muted-color); }

/* ── Menus: <details class="ds-dropdown"><summary class="btn">Actions</summary><div class="ds-menu">…</div></details> ── */
.ds-dropdown { position: relative; display: inline-block; }
.ds-dropdown > summary { list-style: none; }
.ds-dropdown > summary::-webkit-details-marker { display: none; }
.ds-dropdown > summary.btn::after { content: ""; width: 8px; height: 8px; margin-left: 2px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-2px) rotate(45deg); opacity: .7; }
.ds-dropdown > summary.btn-icon::after { display: none; }
.ds-menu { position: absolute; z-index: 60; top: calc(100% + 4px); left: 0; display: grid; min-width: 200px; max-width: min(320px, 90vw); padding: 6px;
  border: 1px solid var(--hairline); border-radius: var(--card-radius); background: var(--modal-bg); box-shadow: var(--float-shadow); }
.ds-dropdown.right > .ds-menu, .ds-menu.right { left: auto; right: 0; }
.ds-menu > button, .ds-menu > a, .ds-menu > label { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 0; border-radius: var(--control-radius);
  background: none; color: var(--text); font: inherit; font-size: 14px; text-align: left; text-decoration: none; cursor: pointer; }
.ds-menu > button:hover, .ds-menu > a:hover, .ds-menu > label:hover { background: var(--table-hover-bg); }
.ds-menu > .danger { color: var(--danger); }
.ds-menu > hr { margin: 6px -6px; border: 0; border-top: 1px solid var(--border); }
.ds-menu-title { padding: 6px 10px 4px; font-size: 12px; font-weight: 600; color: var(--muted-color); }
.ds-menu-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 6px 4px 2px; }

/* ── Disclosure / accordion: <details class="ds-disclosure"><summary>Question</summary><div>Answer</div></details> ── */
.ds-disclosure { border-bottom: 1px solid var(--border); }
.ds-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 2px; list-style: none; cursor: pointer;
  font-weight: 600; color: var(--heading-color); }
.ds-disclosure > summary::-webkit-details-marker { display: none; }
.ds-disclosure > summary::after { content: ""; flex: 0 0 auto; width: 8px; height: 8px; border: solid var(--muted-color); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform var(--ds-ease); }
.ds-disclosure[open] > summary::after { transform: rotate(-135deg); }
.ds-disclosure > :not(summary) { padding: 0 2px 14px; color: var(--text); }

/* ── Tooltip: data-tip="Delete" on any element (keep aria-label for the accessible name) ── */
[data-tip] { position: relative; }
[data-tip]:hover::after, [data-tip]:focus-visible::after { content: attr(data-tip); position: absolute; z-index: 45; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
  padding: 4px 8px; border-radius: var(--control-radius); background: var(--ink); color: var(--surface); font-size: 12px; font-weight: 500; line-height: 1.4; white-space: nowrap; pointer-events: none; }
/* the sidebar scrolls, which clips a ::after: its tooltips are one .ds-tip that am-ds.js places beside the item, over the page
   (the collapse button's always; the nav items' only in the rail, where their labels are hidden) */
.ds-sidebar [data-tip]:hover::after, .ds-sidebar [data-tip]:focus-visible::after { display: none; }
/* a longer explanation: .tip-wrap wraps the tip (at most 300px) and starts it at the element's left edge; it also shows
   on a tap (focus), for touch screens */
.tip-wrap[data-tip]:hover::after, .tip-wrap[data-tip]:focus::after { content: attr(data-tip); position: absolute; z-index: 45; bottom: calc(100% + 6px);
  left: 0; transform: none; width: max-content; max-width: min(300px, 80vw); padding: 6px 10px; border-radius: var(--control-radius);
  background: var(--ink); color: var(--surface); font-size: 12px; font-weight: 400; line-height: 1.45; text-align: left; white-space: normal; pointer-events: none; }
/* "?" beside a label: <button type="button" class="ds-help tip-wrap" data-tip="…" aria-label="About …">?</button> */
.ds-help { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-left: 6px; padding: 0;
  border: 1px solid var(--border); border-radius: 50%; background: var(--surface); color: var(--ink-3); font: 600 11px/1 inherit; cursor: help; vertical-align: middle; }
.ds-help:hover, .ds-help:focus-visible { color: var(--ink); border-color: var(--border-strong); }
.ds-tip { position: fixed; z-index: 80; transform: translateY(-50%); padding: 4px 8px; border-radius: var(--control-radius); background: var(--ink); color: var(--surface);
  font-size: 12px; font-weight: 500; line-height: 1.4; white-space: nowrap; pointer-events: none; }

/* ── Skeleton loading: <div class="ds-skeleton"></div> (lines), .ds-skeleton.block for a box ── */
.ds-skeleton { height: 12px; border-radius: 6px; background: linear-gradient(90deg, var(--surface2) 25%, var(--row-hover) 50%, var(--surface2) 75%);
  background-size: 200% 100%; animation: ds-shimmer 1.2s ease-in-out infinite; }
.ds-skeleton + .ds-skeleton { margin-top: 10px; }
.ds-skeleton.short { width: 60%; }
.ds-skeleton.block { height: 120px; border-radius: var(--card-radius); }
@keyframes ds-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* ── List rows (the phone-friendly alternative to a table):
   <ul class="ds-list"><li class="ds-list-item"><span class="ds-avatar">…</span><div><strong>…</strong><small>…</small></div><span class="ds-list-meta">…</span></li></ul> ── */
.ds-list { list-style: none; margin: 0; padding: 0; }
.ds-list-item { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 2px; border-bottom: 1px solid var(--border); }
.ds-list-item:last-child { border-bottom: 0; }
.ds-list-item > div { display: grid; flex: 1 1 auto; min-width: 0; }
.ds-list-item strong { font-weight: 600; color: var(--heading-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-list-item small { font-size: 12px; color: var(--muted-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-list-meta { flex: 0 0 auto; font-size: 12px; color: var(--muted-color); text-align: right; }
a.ds-list-item, button.ds-list-item { width: 100%; border-width: 0 0 1px; background: none; color: inherit; font: inherit; text-align: left; text-decoration: none; cursor: pointer; }
a.ds-list-item:hover, button.ds-list-item:hover { background: var(--table-hover-bg); }

/* ── File drop zone: <label class="ds-drop"><input type="file"><strong>Drop a file</strong><small>or choose one</small></label> ── */
.ds-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 128px; padding: 20px; text-align: center;
  border: 1.5px dashed var(--input-border); border-radius: var(--card-radius); background: var(--surface2); color: var(--muted-color); cursor: pointer;
  transition: border-color var(--ds-ease), background var(--ds-ease); }
.ds-drop strong { color: var(--heading-color); font-weight: 600; }
.ds-drop small { font-size: 12px; }
.ds-drop input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ds-drop:hover, .ds-drop.over, .ds-drop:focus-within { border-color: var(--q-accent); background: var(--q-accent-soft); }

/* ── Status board: <div class="ds-board"><section class="ds-board-col"><header>To do <span>3</span></header><article class="card">…</article></section></div> ── */
.ds-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); gap: 16px; overflow-x: auto; padding-bottom: 4px; align-items: start; }
.ds-board-col { display: grid; gap: 10px; align-content: start; min-height: 120px; padding: 10px; border-radius: var(--card-radius); background: var(--surface2); }
.ds-board-col > header { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px; font-size: 13px; font-weight: 600; color: var(--heading-color); }
.ds-board-col > header span { min-width: 22px; padding: 0 7px; border-radius: 999px; background: var(--card-bg); color: var(--muted-color); font-size: 12px; text-align: center; }
.ds-board-col > .card { margin: 0; padding: 12px 14px; }

/* ── Banners: the "new version" bar floats at the bottom centre of the page until the person refreshes ── */
.ds-live-banner { position: fixed; left: 50%; bottom: 16px; z-index: 1050; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 8px 16px; max-width: calc(100vw - 32px); padding: 10px 12px 10px 16px; border-radius: var(--card-radius); background: var(--ink); color: var(--surface);
  font-size: 13px; box-shadow: var(--float-shadow); }
.ds-live-banner .btn { min-height: 30px; padding: 4px 12px; }

/* ── Mobile tables: am-ds.js turns a table that does not fit a phone into cards (opt out: data-cards="off") ── */
table.m-cards, table.m-cards tbody, table.m-cards tfoot, table.m-cards tr, table.m-cards td { display: block; width: 100%; }
.table-scroll:has(> table.m-cards) { max-height: none; }
table.m-cards tfoot td:empty { display: none; }
table.m-cards thead { display: none; }
table.m-cards tr { padding: 10px 14px; border-bottom: 1px solid var(--table-border); }
table.m-cards tbody tr:last-child { border-bottom: 0; }
table.m-cards td { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; border: 0; text-align: right; }
table.m-cards td::before { content: attr(data-label); color: var(--muted-color); font-size: 12px; font-weight: 600; text-align: left; }
table.m-cards td > .m-val { min-width: 0; overflow-wrap: anywhere; }
table.m-cards td.m-stack { display: block; text-align: left; }
table.m-cards td.m-stack::before { display: block; margin-bottom: 2px; }
table.m-cards td.m-title { display: block; font-size: 15px; font-weight: 600; text-align: left; color: var(--heading-color); }
table.m-cards td.m-title::before, table.m-cards td.actions::before, table.m-cards td[data-label=""]::before { display: none; }
table.m-cards td.m-empty { display: none; }
table.m-cards td.actions { width: auto; justify-content: flex-start; padding-top: 8px; }
table.m-cards td.actions .btn { min-height: 44px; }

/* ── Breakpoints ── */
@media (min-width: 1600px) {
  .ds-content, .ds-page { padding: 32px 40px 48px; }
  .table-scroll { max-height: 72vh; }
  .ds-modal, dialog { width: 640px; }
  .ds-modal.wide { width: 960px; }
}
/* the page chat (spec 15): <div data-am-chat> that am.js fills: a card with the conversation, its steps, proposals with
   Confirm and Cancel, and a composer like Edit with AI's (one box, a round Send or Stop in its corner) */
.ds-chat { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 320px; height: var(--ds-chat-height, 480px); max-height: 80vh; padding: 0; overflow: hidden; }
/* inside another card (a page that wrapped it): flat, no card in a card */
.card .ds-chat.card { border: 0; box-shadow: none; border-radius: 0; background: transparent; margin-top: 8px; }
.card .ds-chat .ds-chat-head { padding-left: 0; padding-right: 0; }
.card .ds-chat .ds-chat-log { padding-left: 0; padding-right: 0; }
.card .ds-chat .ds-chat-form { padding-left: 0; padding-right: 0; padding-bottom: 0; }
.ds-chat-head { display: flex; align-items: center; gap: 8px; padding: 12px 12px 12px 16px; border-bottom: 1px solid var(--border); }
.ds-chat-head .card-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-chat-log { overflow-y: auto; padding: 14px 16px; display: grid; gap: 10px; align-content: start; overscroll-behavior: contain; }
.ds-chat-msg { max-width: 100%; padding: 8px 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.ds-chat-msg > :first-child { margin-top: 0; }
.ds-chat-msg > :last-child { margin-bottom: 0; }
.ds-chat-msg p, .ds-chat-msg ul, .ds-chat-msg ol { margin: 0 0 8px; }
.ds-chat-msg ul, .ds-chat-msg ol { padding-left: 20px; }
.ds-chat-msg code { font-size: 13px; padding: 1px 4px; border-radius: 4px; background: var(--card-bg); }
.ds-chat-msg .table-wrap { margin: 4px 0 8px; max-width: 100%; }
.ds-chat-msg table { border-collapse: collapse; font-size: 13px; }
.ds-chat-msg th, .ds-chat-msg td { padding: 4px 10px; border-bottom: 1px solid var(--border); text-align: left; white-space: nowrap; }
.ds-chat-msg.me { justify-self: end; max-width: 88%; white-space: pre-wrap; background: var(--q-accent-soft); color: var(--heading-color); }
.ds-chat-msg.ai { justify-self: start; background: var(--surface2); color: var(--body-color); }
.ds-chat-msg.ai:empty::after { content: "…"; color: var(--muted-color); }
.ds-chat-step { justify-self: start; display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted-color); }
.ds-chat-step::before { content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--q-accent); }
.ds-chat-err { justify-self: start; font-size: 13px; color: var(--danger); }
.ds-chat-proposal { justify-self: stretch; display: grid; gap: 10px; padding: 12px; border: 1px solid var(--border-strong); border-left: 3px solid var(--q-accent); border-radius: 10px; background: var(--card-bg); font-size: 14px; line-height: 1.5; }
.ds-chat-proposal-label { font-size: 12px; font-weight: 600; color: var(--muted-color); text-transform: uppercase; letter-spacing: .04em; }
.ds-chat-proposal-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ds-chat-proposal.answered .ds-chat-proposal-actions { display: none; }
.ds-chat-suggest { display: flex; flex-wrap: wrap; gap: 6px; }
.ds-chat-suggest button { padding: 5px 10px; border: 1px solid var(--border-strong); border-radius: 999px; background: var(--card-bg); color: var(--body-color); font: inherit; font-size: 13px; cursor: pointer; text-align: left; }
.ds-chat-suggest button:hover { border-color: var(--q-accent); color: var(--q-accent); }
.ds-chat-form { padding: 10px 12px 12px; border-top: 1px solid var(--border); }
.ds-chat-composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; padding: 6px 6px 6px 12px; border: 1px solid var(--input-border); border-radius: 14px; background: var(--input-bg, var(--card-bg)); transition: border-color .15s, box-shadow .15s; }
.ds-chat-composer:focus-within { border-color: var(--q-accent); box-shadow: 0 0 0 3px var(--q-accent-soft); }
.ds-chat-composer textarea { display: block; width: 100%; min-height: 24px; max-height: 30vh; margin: 0; padding: 5px 0; border: 0; outline: 0; resize: none; background: transparent; color: var(--body-color); font: inherit; font-size: 14px; line-height: 1.5; }
.ds-chat-composer textarea:focus, .ds-chat-composer textarea:focus-visible { border: 0; outline: 0; box-shadow: none; }
.ds-chat-composer textarea::placeholder { color: var(--faint-color, var(--muted-color)); }
.ds-chat-go { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; background: var(--q-accent); color: var(--q-brand-fg, #fff); cursor: pointer; transition: background .15s; }
.ds-chat-go svg { width: 16px; height: 16px; }
.ds-chat-go:disabled { background: var(--hairline); color: var(--muted-color); cursor: default; }
.ds-chat-go.stop { background: var(--heading-color); color: var(--card-bg); }
.ds-chat [hidden] { display: none; }
.ds-chat-off { padding: 24px 16px; color: var(--muted-color); font-size: 14px; text-align: center; }
@media (max-width: 1100px) {
  .ds-grid-3, .ds-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* a table's secondary column (<th class="wide-only">, its <td>s too): only where there is room, so a tablet does not
     scroll sideways; what it held must be one click away (the row's own page) */
  .ds-table .wide-only { display: none; }
}
@media (max-width: 768px) {
  .ds-content, .ds-page { padding: 20px 16px 32px; }
  .ds-hero { margin: -20px -16px 20px; padding: 20px 16px; }
  .ds-grid-2, .ds-grid-3, .ds-grid-4 { grid-template-columns: minmax(0, 1fr); }
  .ds-chat { height: var(--ds-chat-height, 70vh); }
  .ds-chat-msg.me { max-width: 94%; }
  .ds-kpis, .ds-kpis[style*="--kpi-n"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card { padding: 16px; }
  .ds-footer, footer.ds-version { padding: 16px; }
}

/* ── Phone layer (≤640px only; the desktop layout is unchanged) ── */
.phone-only-ds { display: none; }
@media (max-width: 640px) {
  .ds-page-head { align-items: stretch; }
  .ds-page-head > :first-child, .card-head > :first-child { flex: 1 1 100%; }
  .ds-page-head h1, .ds-page-title { font-size: 22px; }
  .ds-page-actions, .card-tools { flex: 1 1 100%; }
  .ds-toolbar > .ds-search, .ds-toolbar > input[type=search], .ds-toolbar > .input, .card-tools > .ds-search { flex: 1 1 100%; width: 100%; }
  .ds-toolbar > select, .ds-toolbar > .select { flex: 1 1 140px; }
  .ds-kpi-value { font-size: 22px; }
  .ds-kpis > .ds-kpi:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .btn, .ds-tab, .ds-tabs a, .ds-chip,
  .input, .select, input[type=text], input[type=password], input[type=number], input[type=email], input[type=search], input[type=tel], input[type=url],
  input[type=date], input[type=time], input:not([type]), select { min-height: 40px; }
  .input, .select, select:not([multiple]):not([size]), input[type=text], input[type=password], input[type=number], input[type=email], input[type=search],
  input[type=tel], input[type=url], input[type=date], input[type=time], input[type=datetime-local], input[type=month], input:not([type]) { height: 40px; }
  .input, .select, .textarea, input, select, textarea { font-size: 16px; } /* no zoom on iOS */
  .btn-icon { width: 40px; }
  .ds-icon-btn, .ds-theme-toggle { width: 40px; height: 40px; }
  .ds-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-stat:nth-child(odd) { border-left: 0; margin-left: 0; }
  .ds-stat:nth-child(n+3) { border-top: 1px solid var(--hairline); }
  .ds-modal-actions, .modal footer, dialog footer, dialog menu { margin: 20px -16px -16px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); bottom: calc(-1 * max(16px, env(safe-area-inset-bottom))); }
  dialog, .ds-modal, .modal { width: 100vw; max-width: 100vw; max-height: 100dvh; min-height: 100dvh; margin: 0; border-radius: 0; border: 0;
    padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); }
  .ds-modal-overlay, .modal-backdrop { padding: 0; }
  .ds-modal-actions .btn, .modal footer .btn, dialog footer .btn, dialog menu .btn { flex: 1 1 auto; }
  .ds-toasts { right: 8px; left: 8px; bottom: 8px; width: auto; }
  .stack-sm { grid-template-columns: minmax(0, 1fr) !important; }
  .tiles-sm { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .phone-only-ds { display: initial; }
  .desk-only { display: none !important; }
  .ds-sched { --sched-gutter: 48px; --sched-min: 132px; }
  .ds-cal-head span { padding: 6px 2px; text-align: center; font-size: 11px; }
  .ds-cal-day { min-height: 52px; padding: 4px 2px; align-items: center; cursor: pointer; }
  .ds-cal-day .ds-cal-event, .ds-cal-day .ds-cal-more { display: none; }
  .ds-cal-dots { display: flex; }
  .ds-cal-num { align-self: center; }
  .ds-cal-agenda.ds-agenda { display: grid; }
  .ds-dl, .ds-dl.cols-2 { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ds-dl dd + dt { margin-top: 10px; }
  .ds-board { grid-auto-columns: minmax(82vw, 1fr); }
  .ds-bars li { grid-template-columns: minmax(70px, 35%) 1fr auto; gap: 8px; }
  .ds-agenda-item { grid-template-columns: 82px 1fr auto; gap: 2px 10px; }
  .ds-agenda-time { font-size: 12px; }
  /* five steps or more do not fit their labels: only the current step keeps its label (the others their number or tick;
     screen readers still read every label) */
  .ds-steps:has(> li:nth-child(5)) > li:not(.current) { font-size: 0; }
  .ds-steps:has(> li:nth-child(5)) > li.current { white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
  .ds-sidebar, .ds-mobilebar, .ds-live-banner, .ds-toasts, .btn, .ds-tabs { display: none !important; }
  .ds-shell { display: block; }
  body { background: #fff; color: #000; }
  .card, .ds-kpi, .ds-chart, .ds-cal, .ds-board-col { break-inside: avoid; }
  .ds-sched { max-height: none; overflow: visible; }
  .ds-sched-slot, .ds-dropdown, .ds-cal-agenda { display: none !important; }
}

/* (these were after the layer by mistake: outside it they beat every layered rule, whatever its specificity) */
.ds-table tr[hidden], [data-limit] > [hidden] { display: none !important; }
/* a long page's sections (amds.jumpNav): chips that stay at the top while the page scrolls */
.ds-jump { position: sticky; top: 0; z-index: 30; margin: -4px -4px 16px; padding: 8px 4px; background: var(--bg); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.ds-jump::-webkit-scrollbar { display: none; }
.ds-jump .ds-chip { flex: 0 0 auto; }
@media (max-width: 1100px) { .ds-jump { top: 52px; } } /* below the mobile bar */
/* fine print one click away: <details class="ds-more"><summary>File rules</summary><p>…</p></details> under a one-line summary */
details.ds-more { margin: 4px 0 12px; font-size: 13px; }
details.ds-more > summary { cursor: pointer; width: fit-content; color: var(--accent-text); font-weight: 500; }
details.ds-more > summary:hover { text-decoration: underline; }
details.ds-more > :not(summary) { margin: 6px 0 0; color: var(--muted-color); }
/* a page of prose (help, guides): lines short enough to read, about 80 characters */
.ds-readable > * { max-width: 820px; }
/* a segmented control wider than its row (a phone): it scrolls sideways inside the row instead of being cut off */
.ds-seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.ds-seg::-webkit-scrollbar { display: none; }
.ds-seg > .btn { flex: 0 0 auto; }
} /* @layer am-ds */

/* the AppManor mark (ds-logo, or the platform's icon as an <img>): appmanor-icon.svg drawn opaque, so it looks the same
   on any background: a tile in the buttons' colour (each theme's own; it follows the design and an app's accent) with
   the house in white, two of its squares at 73% (what the icon's cut-outs show over a white page); outside
   the layers, so a design's own .ds-mark (another shape or colour) leaves it as it is */
.ds-mark.ds-logo, .ds-mark:has(> img[src$="appmanor-icon.svg"], > img[src$="favicon.svg"]) { border-radius: 22%; box-shadow: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23fff'%3E%3Cpath d='M12 30 L32 13 L52 30' fill='none' stroke='%23fff' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Crect x='20' y='32' width='10' height='10' rx='2.5'/%3E%3Crect x='34' y='45' width='10' height='10' rx='2.5'/%3E%3Crect x='34' y='32' width='10' height='10' rx='2.5' fill-opacity='.733'/%3E%3Crect x='20' y='45' width='10' height='10' rx='2.5' fill-opacity='.733'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat, var(--q-accent); }
.ds-mark:has(> img[src$="appmanor-icon.svg"], > img[src$="favicon.svg"]) > img { visibility: hidden; }

/* the tenant's own brand (Administration → Look; outside the layers, like the mark above, so every design shows it as
   uploaded). a.ds-brand.ds-brand-logo: the logo alone, one image per theme (.ds-brand-light, .ds-brand-dark), 32px high
   and as wide as it is up to the brand's width, left aligned; its .ds-mark and .ds-brand-name stay for the phone's bar
   (am-ds.js copies them). .ds-mark.ds-mark-fav: the favicon in the square, drawn as it is (no tile behind it). */
.ds-brand.ds-brand-logo > .ds-mark, .ds-brand.ds-brand-logo > .ds-brand-name { display: none; }
.ds-brand.ds-brand-logo { min-width: 0; }
.ds-logo-img { display: block; height: 32px; width: auto; max-width: min(100%, 180px); object-fit: contain; object-position: left center; }
.ds-logo-img.ds-brand-dark, [data-theme="dark"] .ds-logo-img.ds-brand-light { display: none; }
[data-theme="dark"] .ds-logo-img.ds-brand-dark { display: block; }
.ds-mark.ds-mark-fav { background: transparent; box-shadow: none; }
.ds-mark.ds-mark-fav > img { object-fit: contain; }
