/* Sengi application theme. Adapted with owner authorization from onCall's
 * src/app/globals.css, tailwind.config.ts, (dashboard)/layout.tsx and ui primitives
 * as of origin/main a2063c57f (2026-09-10) — the flat neutral canvas (Phase 0,
 * oncall-rspcr), the hue-220 neutral ramp / type scale / radius, shadow and motion
 * tokens (Phase 1, oncall-ow6yy), the quiet nav row and breadcrumb header band
 * (oncall-2f58z). See docs/implementation/app-design.md for provenance.
 * Deliberately loaded only by layouts/app. */
@font-face { font-family: Geist; src: url('/sengi/GeistVF.woff') format('woff'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Geist Mono'; src: url('/sengi/GeistMonoVF.woff') format('woff'); font-weight: 100 900; font-display: swap; }

/* ---------- Tokens ---------- */
.sengi {
  color-scheme: light;
  /* Neutral ramp: ONE hue (220) at low saturation for every neutral, so surface,
     border and ink sit on one axis. Warmth is semantic (warning ramp), never ambient. */
  --background: 220 14% 98%; --foreground: 222 28% 12%;
  --muted: 220 14% 94%; --muted-foreground: 220 10% 42%;
  --surface: 0 0% 100%; --surface-elevated: 220 20% 99%; --surface-muted: 220 14% 96%; --surface-strong: 220 28% 98%;
  --border: 220 13% 91%; --ring: 210 85% 48%;
  --primary: 222 47% 18%; --primary-hover: 222 47% 14%; --primary-foreground: 0 0% 100%;
  --secondary: 220 14% 93%; --secondary-hover: 220 14% 89%; --secondary-foreground: 222 28% 18%;
  --success: 152 54% 30%; --success-soft: 152 54% 30% / 0.12; --success-border: 152 54% 30% / 0.22;
  --warning: 36 88% 42%; --warning-soft: 36 88% 42% / 0.14; --warning-border: 36 88% 42% / 0.24; --warning-foreground: 34 100% 12%;
  --danger: 0 69% 44%; --danger-soft: 0 69% 44% / 0.12; --danger-border: 0 69% 44% / 0.22;
  --info: 205 82% 40%; --info-soft: 205 82% 40% / 0.12; --info-border: 205 82% 40% / 0.22;
  --shadow-color: 222 28% 14%;
  /* Radius ladder: chips 4 · badges 6 · controls 6 · cards 10 · panels 12 · sheets 14. */
  --radius-chip: 4px; --radius-badge: 6px; --radius-control: 6px; --radius-card: 10px; --radius-panel: 12px; --radius-sheet: 14px;
  --color-canvas: hsl(var(--background)); --color-surface: hsl(var(--surface));
  --color-panel: hsl(var(--surface-elevated)); --color-panel-elevated: hsl(var(--surface-strong));
  --color-border: hsl(var(--border)); --color-border-strong: hsl(220 13% 83%);
  --color-text: hsl(var(--foreground)); --color-text-muted: hsl(var(--muted-foreground));
  /* onCall reads 52% here; Sengi keeps 46% so 11-13px labels stay at AA contrast
     on white (the one retained deviation, recorded in app-design.md). */
  --color-text-subtle: hsl(220 10% 46%);
  --color-sidebar: hsl(220 16% 97%);
  --color-danger: hsl(var(--danger)); --color-surface-muted: hsl(var(--surface-muted));
  --color-accent: hsl(201 42% 30%); --color-accent-strong: hsl(222 47% 18%); --color-accent-foreground: hsl(0 0% 100%);
  /* Shadows belong to floating UI only; resting chrome is flat (hairline + tonal lift). */
  --shadow-overlay: 0 4px 16px -4px hsl(var(--shadow-color) / 0.18);
  --shadow-dialog: 0 16px 48px -16px hsl(var(--shadow-color) / 0.3);
  --shadow-selected: inset 0 0 0 1px hsl(var(--border));
  --motion-fast: 90ms; --motion-base: 140ms; --motion-slow: 220ms; --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  background: var(--color-canvas); color: var(--color-text);
  font-family: Geist, 'IBM Plex Sans', 'Segoe UI', sans-serif;
  font-feature-settings: 'ss01' 1, 'ss02' 1, 'cv02' 1;
  font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
}
@media (prefers-reduced-motion: reduce) { .sengi { --motion-fast: 0ms; --motion-base: 0ms; --motion-slow: 0ms; } }

/* ---------- Base ---------- */
.sengi body { min-height: 100dvh; overscroll-behavior-y: none; font-family: inherit; background: var(--color-canvas); }
.sengi :is(button,input,select,textarea) { font: inherit; }
.sengi :is(code,pre,kbd,samp,.font-mono) { font-family: 'Geist Mono', 'SFMono-Regular', Consolas, monospace; }
.sengi ::selection { background: hsl(var(--primary) / 0.16); color: var(--color-text); }
/* Type scale (tailwind.config.ts fontSize override): 11 / 12 / 13 body / 14 / 15 page title / 16 / 18 ceiling.
   Tracking -0.011em from text-sm up; the two smallest rungs stay at 0. Weight ceiling is 600. */
.sengi :is(.text-sm) { font-size: 13px; line-height: 18px; letter-spacing: -0.011em; }
.sengi :is(.text-base) { font-size: 14px; line-height: 20px; letter-spacing: -0.011em; }
.sengi :is(.text-lg) { font-size: 15px; line-height: 22px; letter-spacing: -0.011em; }
.sengi :is(.text-xl) { font-size: 16px; line-height: 24px; letter-spacing: -0.011em; }
.sengi :is(.text-2xl,.text-3xl,.text-4xl,.sm\:text-2xl,.sm\:text-3xl,.sm\:text-4xl) { font-size: 18px; line-height: 26px; letter-spacing: -0.011em; }
.sengi :is(.font-bold,.font-extrabold,.font-black) { font-weight: 600; }
/* Legacy Tailwind colour classes in the shared ERB map onto the ramp. */
.sengi :is(.text-gray-900,.text-slate-900,.text-slate-950,.text-gray-700) { color: var(--color-text); }
.sengi :is(.text-gray-500,.text-gray-600,.text-slate-500,.text-slate-600) { color: var(--color-text-muted); }
.sengi :is(.text-gray-400,.text-slate-400) { color: var(--color-text-subtle); }
.sengi :is(.text-orange-500,.text-orange-600,.text-orange-700,.text-blue-600,.text-blue-700) { color: var(--color-accent); }
.sengi .hover\:text-blue-700:hover { color: var(--color-accent); }
.sengi :is(.bg-gray-50,.bg-slate-50,.bg-blue-50,.bg-orange-50) { background-color: var(--color-surface-muted); }
.sengi .hover\:bg-gray-100:hover { background-color: var(--color-surface-muted); }
.sengi :is(.border-gray-200,.border-slate-200,.border-blue-100,.divide-gray-100,.divide-gray-200,.divide-gray-300) > :not([hidden]) ~ :not([hidden]),
.sengi :is(.border-gray-200,.border-slate-200,.border-blue-100) { border-color: var(--color-border); }
.sengi :is(.bg-blue-600,.bg-orange-600) { background-color: hsl(var(--primary)); }
.sengi :is(.hover\:bg-blue-700,.hover\:bg-orange-700):hover { background-color: hsl(var(--primary-hover)); }
.sengi :is(a,button,input,select,textarea,summary):focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 2px; }
.sengi .sengi-skip-link:focus { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 10px 16px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-control); }
/* iOS zooms the page when a focused control's font is under 16px. */
@media (pointer: coarse) { .sengi :is(input,select,textarea) { font-size: max(16px, 1em) !important; } }

/* ---------- Sidebar ---------- */
.sengi #desktop-menu, .sengi #mobile-menu .max-w-xs { width: 288px; max-width: 288px; }
.sengi .sengi-workspace { padding-left: 0; }
.sengi .sengi-sidebar { background: var(--color-sidebar); color: var(--color-text); border-right: 1px solid var(--color-border); padding: 0 12px 12px; gap: 0; }
.sengi .sengi-brand { margin: 0 -12px 16px; padding: 16px; flex-direction: column; align-items: flex-start; gap: 4px; border-bottom: 1px solid var(--color-border); }
.sengi .sengi-brand-link { display: block; }
.sengi .sengi-brand img { width: 96px; height: 64px; object-fit: contain; mix-blend-mode: multiply; }
.sengi .sengi-eyebrow { font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--color-text-subtle); }
.sengi .sengi-nav-heading { margin: 0 0 8px; padding: 0 12px; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--color-text-subtle); }
.sengi .sengi-sidebar nav > ul { gap: 24px; }
.sengi .sengi-sidebar nav > ul > li:last-child { margin: auto -12px 0; padding-top: 16px; }
/* A nav row is WHERE YOU ARE, not a call to action: neutral fills that darken
   monotonically against the sidebar (rest 97% → hover 96% → active 93%), 32px rows. */
.sengi .sengi-nav-link { align-items: center; min-height: 32px; padding: 0 12px; border-radius: var(--radius-control); color: var(--color-text-muted); font-size: 13px; font-weight: 500; line-height: 18px; letter-spacing: -0.011em; transition: background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.sengi .sengi-nav-link svg { width: 16px; height: 16px; color: var(--color-text-subtle); transition: color var(--motion-fast) var(--ease-standard); }
.sengi .sengi-nav-link:hover { background: var(--color-surface-muted); color: var(--color-text); }
.sengi .sengi-nav-link:hover svg { color: var(--color-text); }
.sengi .sengi-nav-active, .sengi .sengi-nav-active:hover { background: hsl(var(--secondary)); color: var(--color-text); font-weight: 600; }
.sengi .sengi-nav-active svg { color: var(--color-text); }
.sengi .sengi-project-switcher { position: relative; padding: 0 12px; }
.sengi .sengi-project-switcher #menu-button { gap: 10px; padding: 8px 10px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: var(--color-panel); color: var(--color-text); font-size: 12px; line-height: 16px; font-weight: 500; transition: border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard); }
.sengi .sengi-project-switcher #menu-button:hover { background: var(--color-surface); border-color: var(--color-border-strong); }
.sengi .sengi-project-switcher #menu-button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sengi .sengi-project-switcher #menu-button svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--color-text-subtle); }
.sengi .sengi-project-switcher [role=menu] { bottom: calc(100% + 6px); left: 12px; width: calc(100% - 24px); }
.sengi .sengi-project-context { text-align: left; }
.sengi .sengi-project-context .sengi-eyebrow { margin-bottom: 1px; }
.sengi #mobile-menu > div:first-child { background: rgba(22,32,39,.42); backdrop-filter: blur(4px); }

/* ---------- Header band: a breadcrumb, not a hero ---------- */
.sengi .sengi-topbar { height: auto; min-height: 48px; box-shadow: none; background: var(--color-surface); border-color: var(--color-border); backdrop-filter: none; gap: 12px; }
.sengi .sengi-workspace-context { display: flex; min-width: 0; align-items: baseline; gap: 6px; flex-shrink: 1; }
.sengi .sengi-workspace-context .sengi-eyebrow { flex-shrink: 0; font-size: 13px; line-height: 20px; letter-spacing: -0.011em; }
.sengi .sengi-crumb-sep { flex-shrink: 0; font-size: 13px; line-height: 20px; color: var(--color-text-subtle); }
.sengi .sengi-workspace-context > p:last-child { font-size: 13px; line-height: 20px; font-weight: 600; letter-spacing: -0.011em; color: var(--color-text); }
.sengi .sengi-topbar a:not(.sengi-profile-trigger) { color: var(--color-text-muted); }
.sengi .sengi-topbar a:not(.sengi-profile-trigger):hover { color: var(--color-text); }
.sengi .sengi-profile-trigger { border-radius: var(--radius-control); padding: 4px 8px; font-weight: 500; transition: background-color var(--motion-fast) var(--ease-standard); }
.sengi .sengi-profile-trigger:hover { background: var(--color-surface-muted); }
.sengi .sengi-profile-trigger svg { width: 20px; height: 20px; color: var(--color-text-subtle); background: transparent; }
.sengi .sengi-profile-trigger .font-semibold { font-weight: 500; }
.sengi .toggle-mobile-menu { border-radius: var(--radius-control); color: var(--color-text-muted); }
/* Menus are floating UI: hairline + overlay shadow, card radius, 32px rows. */
.sengi [role=menu] { border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-overlay); --tw-ring-color: transparent; --tw-shadow: none; --tw-shadow-colored: none; }
.sengi .sengi-topbar [role=menu] { width: 240px; }
.sengi [role=menuitem] { min-height: 32px; padding: 6px 12px; font-size: 13px; line-height: 20px; }

/* ---------- Content: a flat white surface on the canvas, no floating card ---------- */
.sengi .sengi-main { padding: 32px; }
.sengi .sengi-content-wrap { padding: 0; }
.sengi .sengi-surface { min-height: calc(100dvh - 48px - 64px); padding: 32px; background: var(--color-surface); border: 0; border-radius: 0; box-shadow: none; }
.sengi .sengi-surface > :is(.max-w-3xl,.max-w-5xl,.max-w-6xl) { max-width: none; }
.sengi .sengi-surface :is(h1,.sengi-page-header h2) { font-size: 15px; line-height: 22px; font-weight: 600; letter-spacing: -0.011em; }
.sengi .sengi-surface :is(h2.text-xl,h3.text-2xl) { font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: -0.011em; }
/* Page eyebrows: quiet contextual label, 11px medium subtle — no uppercase, no tracking. */
.sengi .sengi-surface p.font-semibold.text-blue-700 { color: var(--color-text-subtle); font-size: 11px; line-height: 16px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.sengi .sengi-surface > .-mt-6, .sengi .sengi-account-return + .-mt-6 { margin-top: 0; }
.sengi .sengi-surface :is(section.rounded-2xl,div.rounded-2xl,.rounded-lg) { border-radius: var(--radius-card); }
.sengi .sengi-surface :is(.shadow,.shadow-sm):not(input,button,a) { box-shadow: none; border: 1px solid var(--color-border); border-radius: var(--radius-card); }
.sengi .sengi-surface .ring-black { --tw-ring-color: transparent; }
.sengi .sengi-page-header { position: static; margin: 0 0 12px; padding: 0; background: transparent; }
.sengi .sengi-page-header nav { margin-bottom: 8px; }
.sengi .sengi-page-header nav svg { width: 14px; height: 14px; }
.sengi .sengi-page-header nav a { font-size: 12px; line-height: 16px; }
.sengi .sengi-page-header .pb-4 { padding-bottom: 8px; }
.sengi .sengi-account-return { margin-bottom: 16px; }
.sengi .sengi-account-return a { display: inline-flex; align-items: center; gap: 8px; color: var(--color-accent); font-size: 13px; font-weight: 500; }
.sengi .sengi-account-return a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* Flash: the ONE tinted alert region a view may spend — soft fill + hairline on the semantic ramp. */
.sengi .bg-green-50 { background: hsl(var(--success-soft)); border: 1px solid hsl(var(--success-border)); border-radius: var(--radius-control); }
.sengi .bg-green-50 :is(.text-green-800,.text-green-400) { color: hsl(var(--success)); }
.sengi .bg-red-50 { background: hsl(var(--danger-soft)); border: 1px solid hsl(var(--danger-border)); border-radius: var(--radius-control); }
.sengi .bg-red-50 :is(.text-red-800,.text-red-400) { color: hsl(var(--danger)); }

/* ---------- Controls ---------- */
.sengi :is(.sengi-button,button[type=submit],a.bg-blue-600) { min-height: 36px; padding: 0 16px; border: 1px solid transparent; border-radius: var(--radius-control); font-size: 13px; line-height: 18px; font-weight: 500; letter-spacing: -0.01em; box-shadow: none; transition: background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard); }
.sengi :is(.sengi-button,button[type=submit],a.bg-blue-600):active { transform: scale(.98); }
.sengi :is(.sengi-button,button[type=submit]) { flex-shrink: 0; white-space: nowrap; gap: 6px; }
.sengi :is(.sengi-button,button[type=submit]):disabled { opacity: .5; }
.sengi .sengi-button svg { width: 16px; height: 16px; }
.sengi .sengi-button:is(.bg-orange-600,.bg-blue-600) { border-color: hsl(var(--primary)); }
.sengi .sengi-button.bg-white { border-color: var(--color-border); background: var(--color-surface); color: var(--color-text); }
.sengi .sengi-button.bg-white:hover { background: var(--color-surface-muted); }
.sengi .sengi-button.bg-rose-600 { background-color: hsl(var(--danger)); border-color: hsl(var(--danger)); }
.sengi .sengi-button.bg-green-600 { background-color: hsl(var(--success)); border-color: hsl(var(--success)); }
.sengi .sengi-button.bg-amber-600 { background-color: hsl(var(--warning)); border-color: hsl(var(--warning)); }
.sengi .sengi-button:is(.bg-rose-600,.bg-green-600,.bg-amber-600):hover { filter: brightness(.95); }
.sengi :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea) { min-height: 36px; padding-left: 12px; padding-right: 12px; border-radius: var(--radius-control); border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: none; color: var(--color-text); font-size: 13px; line-height: 18px; transition: border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard); }
.sengi :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea):focus { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 2px hsl(var(--ring) / .25); --tw-ring-color: transparent; }
.sengi :is(input,select,textarea)::placeholder { color: var(--color-text-subtle); }
.sengi :is(input,select,textarea):disabled { background: var(--color-surface-muted); opacity: .6; cursor: not-allowed; }
.sengi :is(input,select,textarea).ring-red-300 { border-color: hsl(var(--danger)); }
.sengi :is(input[type=checkbox],input[type=radio]) { border-color: var(--color-border-strong); color: hsl(var(--primary)); }
.sengi label { font-size: 13px; line-height: 18px; font-weight: 500; }
.sengi input + button[type=submit] { margin-left: 8px; }

/* ---------- Tables, cards, lists ---------- */
.sengi .sengi-surface table thead { background: var(--color-panel); }
.sengi .sengi-surface table th { color: var(--color-text-subtle); font-size: 11px; line-height: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; padding-top: 9px; padding-bottom: 9px; }
.sengi .sengi-surface table td { font-size: 13px; line-height: 18px; letter-spacing: -0.011em; padding-top: 10px; padding-bottom: 10px; }
.sengi .sengi-surface table tbody tr:hover { background-color: var(--color-surface-muted); }
.sengi .sengi-surface table a { text-decoration: underline; text-underline-offset: 3px; }
.sengi .sengi-table-card > .overflow-hidden, .sengi .sengi-kv-card { border: 1px solid var(--color-border); border-radius: var(--radius-card); box-shadow: none; --tw-ring-color: transparent; }
.sengi .sengi-table-card h3 { font-size: 14px; line-height: 20px; font-weight: 600; }
.sengi .sengi-kv-card dt { color: var(--color-text-muted); font-weight: 500; }
.sengi .sengi-kv-card dd { overflow-wrap: anywhere; }
.sengi .sengi-surface :is(.divide-gray-200,.divide-gray-300) > :not([hidden]) ~ :not([hidden]) { border-color: var(--color-border); }
/* Empty state: a quiet inline block, left-aligned, no icon, never a card in a card. */
.sengi .empty-state { text-align: left; padding: 32px 0; }
.sengi .empty-state > svg { display: none; }
.sengi .empty-state h3 { margin: 0; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--color-text); }
.sengi .empty-state p { margin-top: 4px; max-width: 46ch; font-size: 13px; line-height: 18px; color: var(--color-text-muted); }
.sengi .empty-state > div { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.sengi .empty-state > div > .flex { justify-content: flex-start; }
.sengi .sengi-table-card td:has(.empty-state) { text-align: left; padding: 0 20px; }
.sengi .sengi-account-nav { padding: 12px; background: var(--color-panel); }
.sengi .sengi-account-nav a { border: 0; border-radius: var(--radius-control); padding: 0 12px; min-height: 32px; display: flex; align-items: center; font-size: 13px; font-weight: 500; color: var(--color-text-muted); transition: background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.sengi .sengi-account-nav a:hover { background: var(--color-surface-muted); color: var(--color-text); }
.sengi .sengi-account-nav a[aria-current=page] { background: hsl(var(--secondary)); color: var(--color-text); font-weight: 600; }
.sengi .sengi-account-nav svg { width: 16px; height: 16px; }

/* ---------- Auth ---------- */
.sengi .sengi-auth { background: var(--color-canvas); background-image: none; }
.sengi .sengi-auth img { width: 140px; mix-blend-mode: multiply; }
.sengi .sengi-auth h2 { font-size: 18px; line-height: 26px; font-weight: 600; letter-spacing: -0.011em; }
.sengi .sengi-auth-card { border: 1px solid var(--color-border); border-radius: var(--radius-panel); box-shadow: var(--shadow-dialog); }
.sengi .sengi-button.sengi-auth-primary, .sengi .sengi-auth-primary { display: flex; width: 100%; justify-content: center; align-items: center; gap: 10px; min-height: 36px; padding: 8px 16px; background: hsl(var(--primary)); color: white; border: 1px solid hsl(var(--primary)); border-radius: var(--radius-control); font-weight: 500; box-shadow: none; }
.sengi .sengi-button.sengi-auth-primary:hover, .sengi .sengi-auth-primary:hover { background: hsl(var(--primary-hover)); }
.sengi .sengi-auth-secondary { border-top: 1px solid var(--color-border); padding-top: 16px; color: var(--color-text-muted); font-size: 13px; }
.sengi .sengi-auth-secondary summary { cursor: pointer; border-radius: var(--radius-control); }

/* ---------- Breakpoints ---------- */
@media (min-width:1024px) { .sengi .sengi-workspace { padding-left: 288px; } }
@media (max-width:1023px) {
  .sengi .sengi-topbar > a, .sengi .sengi-mobile-separator { display: none; }
  .sengi .sengi-main { padding: 24px; }
  .sengi .sengi-surface { min-height: calc(100dvh - 48px - 48px); padding: 24px; }
}
@media (max-width:639px) {
  .sengi .sengi-main { padding: 0; }
  .sengi .sengi-surface { min-height: calc(100dvh - 48px); padding: 16px 12px; }
  .sengi .sengi-workspace-context .sengi-eyebrow, .sengi .sengi-crumb-sep { display: none; }
  .sengi .sengi-workspace-context > p:last-child { font-size: 15px; line-height: 20px; }
  .sengi .sengi-surface section:is(.p-6,.p-8) { padding: 16px; }
  .sengi :is(.sengi-button,button[type=submit],a.bg-blue-600,.sengi-nav-link,[role=menuitem],.sengi-account-nav a,.sengi-auth-primary,input:not([type=checkbox],[type=radio],[type=hidden]),select) { min-height: 44px; }
  .sengi :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea) { font-size: 16px; min-width: 0; }
  .sengi .sengi-auth { padding-left: 16px; padding-right: 16px; }
  .sengi .sengi-account-return a { min-height: 44px; }
  .sengi .sengi-table-card td:has(.empty-state) { padding: 0 12px; }
  .sengi .sengi-table-card table, .sengi .sengi-table-card tbody { display: block; min-width: 0; }
  .sengi .sengi-table-card thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .sengi .sengi-table-card tbody tr { display: grid; gap: 10px; padding: 12px; }
  .sengi .sengi-table-card tbody td { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0; white-space: normal; overflow-wrap: anywhere; }
  .sengi .sengi-table-card td[data-label]:before { content: attr(data-label); color: var(--color-text-subtle); font-size: 11px; line-height: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; flex: 1; }
  .sengi .sengi-table-card td:has(.empty-state) { display: block; }
}

/* Print: flat white, and drop the one effect browsers rasterize as garbage. */
@media print {
  .sengi, .sengi body { background: #fff; }
  .sengi * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}
