/* StageDraws foundation: all application components consume semantic tokens. */
:root {
  --header-h: 64px;
  --sidebar-w: 248px;
  --sidebar-collapsed-w: 76px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --shadow-soft: 0 18px 42px rgba(0,0,0,.16);
  --transition: 170ms ease;
}

html[data-theme="midnight"] {
  --bg: #0b1020; --surface: #11182a; --surface-2: #161f34; --surface-3: #1b2740;
  --text: #eef3ff; --muted: #8e9bb5; --border: #27344d; --border-strong: #334461;
  --accent: #7f9cff; --accent-strong: #9cb2ff; --accent-soft: rgba(127,156,255,.14);
  --success: #51c79b; --warning: #f0bc62; --danger: #ef7181; --info: #66b9ef;
  --header-bg: rgba(11,16,32,.90); --sidebar-bg: #0e1525; --input-bg: #0f1729;
}
html[data-theme="slate"] {
  --bg: #111719; --surface: #182124; --surface-2: #1e2a2d; --surface-3: #253236;
  --text: #edf5f3; --muted: #96aaa5; --border: #32413f; --border-strong: #41534f;
  --accent: #74c9b5; --accent-strong: #9ad9ca; --accent-soft: rgba(116,201,181,.14);
  --success: #6fd4a7; --warning: #e7bc70; --danger: #ee7d87; --info: #79b8dc;
  --header-bg: rgba(17,23,25,.90); --sidebar-bg: #131b1d; --input-bg: #141d20;
}
html[data-theme="light"] {
  --bg: #f3f5f9; --surface: #ffffff; --surface-2: #f8f9fc; --surface-3: #eef2f8;
  --text: #1c2535; --muted: #667085; --border: #dce2ea; --border-strong: #c9d2df;
  --accent: #526ed3; --accent-strong: #405aba; --accent-soft: rgba(82,110,211,.11);
  --success: #238966; --warning: #a56d12; --danger: #c44d5a; --info: #2f7eae;
  --header-bg: rgba(255,255,255,.92); --sidebar-bg: #fbfcfe; --input-bg: #ffffff;
  --shadow-soft: 0 18px 42px rgba(29,43,67,.10);
}
html[data-density="compact"] { --control-h: 32px; --cell-y: 7px; --page-gap: 14px; --panel-pad: 16px; }
html[data-density="standard"] { --control-h: 38px; --cell-y: 10px; --page-gap: 20px; --panel-pad: 20px; }
html[data-density="comfortable"] { --control-h: 44px; --cell-y: 14px; --page-gap: 26px; --panel-pad: 24px; }

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin:0; background:var(--bg); color:var(--text); font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; transition:background var(--transition), color var(--transition); }
a { color:inherit; }
button, input { font:inherit; }

.app-header { height:var(--header-h); position:fixed; inset:0 0 auto 0; z-index:1040; display:grid; grid-template-columns:1fr minmax(240px,560px) 1fr; align-items:center; gap:18px; padding:0 18px; background:var(--header-bg); border-bottom:1px solid var(--border); backdrop-filter:blur(18px); }
.header-left,.header-actions { display:flex; align-items:center; gap:10px; min-width:0; }
.header-actions { justify-content:flex-end; }
.header-center { justify-content:center; }
.brand-mark { width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-strong));color:#fff;font-weight:800;letter-spacing:-.04em;box-shadow:0 8px 22px var(--accent-soft); }
.brand-mark.large { width:56px;height:56px;border-radius:16px;font-size:1.15rem; }
.brand-copy { display:flex;flex-direction:column;line-height:1.05; }
.brand-copy strong { font-size:.92rem; } .brand-copy span { color:var(--muted);font-size:.68rem;margin-top:4px; }
.icon-button,.user-chip,.command-search { border:1px solid var(--border); background:var(--surface); color:var(--text); height:var(--control-h); border-radius:10px; transition:all var(--transition); }
.icon-button { width:var(--control-h); display:inline-grid; place-items:center; }
.icon-button:hover,.user-chip:hover,.command-search:hover { border-color:var(--border-strong); background:var(--surface-2); }
.user-chip { display:flex;align-items:center;gap:8px;padding:0 10px; }
.user-avatar { width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-size:.75rem;font-weight:800; }
.command-search { width:min(100%,520px); padding:0 12px; display:flex;align-items:center;gap:10px;color:var(--muted); }
.command-search span { flex:1;text-align:left; } kbd { border:1px solid var(--border);background:var(--surface-2);color:var(--muted);padding:2px 6px;border-radius:6px;font-size:.7rem; }

.app-sidebar { position:fixed; top:var(--header-h); bottom:0; left:0; width:var(--sidebar-w); z-index:1030; background:var(--sidebar-bg); border-right:1px solid var(--border); display:flex;flex-direction:column; transition:width var(--transition), transform var(--transition); overflow:hidden; }
.sidebar-scroll { flex:1; overflow:auto; padding:14px 10px; }
.sidebar-nav { display:flex;flex-direction:column;gap:5px; }
.nav-item,.nav-group-toggle { min-height:38px;width:100%;display:flex;align-items:center;gap:11px;border:0;border-radius:10px;background:transparent;color:var(--muted);text-decoration:none;padding:8px 11px;white-space:nowrap;transition:background var(--transition), color var(--transition); }
.nav-item i,.nav-group-toggle>span>i { width:20px;text-align:center;flex:0 0 20px; }
.nav-item:hover,.nav-group-toggle:hover { color:var(--text);background:var(--surface-2); }
.nav-item.active { background:var(--accent-soft);color:var(--accent-strong);font-weight:700; }
.nav-item.muted { opacity:.82; }
.nav-group { margin-top:4px; }.nav-group-toggle { justify-content:space-between; }.nav-group-toggle>span { display:flex;gap:11px;align-items:center; }.nav-group-toggle b { font-size:.78rem;text-transform:uppercase;letter-spacing:.07em; }
.nav-chevron { font-size:.65rem;transition:transform var(--transition); }.nav-group.collapsed .nav-chevron { transform:rotate(-90deg); }.nav-group.collapsed .nav-group-items { display:none; }.nav-group-items { padding-left:10px; }
.sidebar-footer { height:48px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 20px;color:var(--muted);font-size:.74rem;white-space:nowrap; }.status-dot { width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 15%,transparent); }
.sidebar-backdrop { display:none; }
body.sidebar-collapsed .app-sidebar { width:var(--sidebar-collapsed-w); }.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-group-toggle b,.sidebar-collapsed .nav-chevron,.sidebar-collapsed .sidebar-footer span:not(.status-dot) { opacity:0; pointer-events:none; }.sidebar-collapsed .nav-group-items { padding-left:0; }

.app-main { margin-left:var(--sidebar-w); padding-top:var(--header-h); min-height:100vh; transition:margin-left var(--transition); }.sidebar-collapsed .app-main { margin-left:var(--sidebar-collapsed-w); }
.page-shell { max-width:1600px;margin:0 auto;padding:var(--page-gap); }
.page-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:var(--page-gap); }.page-heading h1 { margin:3px 0 7px;font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.035em; }.page-heading p,.panel-header p { margin:0;color:var(--muted);max-width:820px; }.eyebrow { color:var(--accent-strong);font-size:.69rem;font-weight:800;letter-spacing:.10em;text-transform:uppercase; }.page-actions { display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end; }
.btn { min-height:var(--control-h);border-radius:9px; }.btn-primary { --bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:var(--accent-strong);--bs-btn-hover-border-color:var(--accent-strong); }.btn-ghost { background:var(--surface);border:1px solid var(--border);color:var(--text); }.btn-ghost:hover { background:var(--surface-2);border-color:var(--border-strong);color:var(--text); }
.metric-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--page-gap);margin-bottom:var(--page-gap); }.metric-card,.panel { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 2px 0 rgba(0,0,0,.02); }.metric-card { display:flex;align-items:center;gap:13px;padding:var(--panel-pad); }.metric-icon { width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;flex:0 0 40px; }.metric-card div { display:flex;flex-direction:column;min-width:0; }.metric-card small,.metric-card span:last-child { color:var(--muted); }.metric-card small { font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700; }.metric-card strong { font-size:1.03rem;margin:2px 0; }.metric-card span:last-child { font-size:.75rem; }
.content-grid { display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:var(--page-gap); }.panel { padding:var(--panel-pad);min-width:0; }.panel-header { display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px; }.panel-header h2 { font-size:1.06rem;margin:2px 0 4px; }
.architecture-flow { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px; }.architecture-flow li { position:relative;padding:10px 10px 10px 32px;border-radius:9px;display:flex;flex-direction:column; }.architecture-flow li::before { content:'';position:absolute;left:12px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--border-strong); }.architecture-flow li:not(:last-child)::after { content:'';position:absolute;left:15.5px;top:24px;width:1px;height:calc(100% - 6px);background:var(--border); }.architecture-flow li.done::before { background:var(--success); }.architecture-flow li.active { background:var(--accent-soft); }.architecture-flow li.active::before { background:var(--accent); }.architecture-flow span { color:var(--muted);font-size:.76rem;margin-top:2px; }

.app-menu { background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-soft); }.app-menu .dropdown-item { color:var(--text); }.app-menu .dropdown-item:hover { background:var(--surface-2); }.dropdown-divider { border-color:var(--border); }.menu-title { font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em; }.appearance-menu { min-width:310px; }.segmented-control { display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--surface-2);padding:4px;border-radius:10px; }.segmented-control button { border:0;background:transparent;color:var(--muted);border-radius:7px;padding:7px 8px;font-size:.75rem; }.segmented-control button.active { background:var(--surface);color:var(--text);box-shadow:0 1px 6px rgba(0,0,0,.12); }

.grid-toolbar { display:flex;align-items:center;gap:8px; }.grid-search { height:34px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--input-bg);border-radius:9px;padding:0 10px;color:var(--muted); }.grid-search input { width:150px;border:0;outline:0;background:transparent;color:var(--text); }.sd-grid-shell { border:1px solid var(--border);border-radius:10px;overflow:hidden; }.sd-grid-table { width:100%;border-collapse:collapse;background:var(--surface);font-size:.82rem; }.sd-grid-table th { background:var(--surface-2);color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;white-space:nowrap; }.sd-grid-table th,.sd-grid-table td { padding:var(--cell-y) 12px;border-bottom:1px solid var(--border);text-align:left; }.sd-grid-table tr:last-child td { border-bottom:0; }.sd-grid-table tbody tr:hover { background:var(--accent-soft); }.sd-grid-table th.sortable { cursor:pointer; }.sd-grid-table th span { margin-right:7px; }.sd-grid-table th i { opacity:.45; }.sd-grid-footer { min-height:34px;display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--surface-2);color:var(--muted);font-size:.72rem; }.sd-grid-empty { text-align:center!important;color:var(--muted);padding:30px!important; }.column-check { display:flex;align-items:center;gap:7px;padding:7px 9px;min-width:150px;border-radius:7px;font-size:.79rem; }.column-check:hover { background:var(--surface-2); }

.toast-region { position:fixed;right:18px;bottom:18px;z-index:1090;width:min(390px,calc(100vw - 36px));display:flex;flex-direction:column;gap:8px; }.app-toast { display:flex;gap:11px;align-items:flex-start;padding:12px 13px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--info);border-radius:11px;box-shadow:var(--shadow-soft);transform:translateY(8px);opacity:0;transition:all var(--transition); }.app-toast.show { transform:none;opacity:1; }.toast-success { border-left-color:var(--success); }.toast-warning { border-left-color:var(--warning); }.toast-error { border-left-color:var(--danger); }.toast-icon { color:var(--info);margin-top:3px; }.toast-success .toast-icon { color:var(--success); }.toast-warning .toast-icon { color:var(--warning); }.toast-error .toast-icon { color:var(--danger); }.toast-copy { flex:1;display:flex;flex-direction:column;gap:2px;font-size:.79rem; }.toast-copy span,.toast-copy small { color:var(--muted); }.toast-close { border:0;background:transparent;color:var(--muted);padding:2px 4px; }.app-modal { background:var(--surface);border:1px solid var(--border);color:var(--text); }.app-modal .modal-header,.app-modal .modal-footer { border-color:var(--border); }.btn-close { filter:var(--close-filter,none); } html:not([data-theme="light"]) { --close-filter:invert(1) grayscale(100%) brightness(200%); }
.validation-list { border:1px solid var(--border);border-radius:10px;overflow:hidden; }.validation-row { display:grid;grid-template-columns:90px 150px 1fr;gap:15px;align-items:center;padding:12px;border-bottom:1px solid var(--border);font-size:.82rem; }.validation-row:last-child { border-bottom:0; }.validation-row>span:last-child { color:var(--muted); }.status-badge { display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 7px;font-size:.68rem;font-weight:800; }.status-badge.neutral { background:var(--surface-3);color:var(--muted); }

.auth-body { min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 20% 20%,var(--accent-soft),transparent 30%),var(--bg); }.auth-shell { width:min(1050px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center; }.auth-brand h1 { font-size:clamp(2.6rem,7vw,5.4rem);letter-spacing:-.065em;margin:10px 0; }.auth-brand>p { color:var(--muted);font-size:1.04rem; }.auth-principles { display:flex;flex-wrap:wrap;gap:8px;margin-top:24px; }.auth-principles span { background:var(--surface);border:1px solid var(--border);padding:8px 10px;border-radius:9px;color:var(--muted);font-size:.77rem; }.auth-principles i { color:var(--accent-strong);margin-right:5px; }.auth-card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-soft); }.auth-card h2 { margin:4px 0 5px; }.auth-card>p { color:var(--muted); }.app-input { min-height:42px;background:var(--input-bg);border:1px solid var(--border);color:var(--text); }.app-input:focus { background:var(--input-bg);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 .2rem var(--accent-soft); }.error-panel { display:flex;gap:9px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));background:color-mix(in srgb,var(--danger) 10%,transparent);border-radius:9px;color:var(--danger);font-size:.82rem;margin:15px 0; }.auth-footnote { margin:18px 0 0!important;font-size:.73rem;text-align:center; }

@media (max-width:1100px) { .metric-grid { grid-template-columns:repeat(2,1fr); }.content-grid { grid-template-columns:1fr; } }
@media (max-width:991.98px) { .app-header { grid-template-columns:1fr auto; }.header-center { display:none!important; }.app-sidebar { transform:translateX(-100%);width:min(290px,88vw);box-shadow:var(--shadow-soft); }.app-main,.sidebar-collapsed .app-main { margin-left:0; }.sidebar-collapsed .app-sidebar { width:min(290px,88vw); }.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-group-toggle b,.sidebar-collapsed .nav-chevron,.sidebar-collapsed .sidebar-footer span:not(.status-dot) { opacity:1;pointer-events:auto; }.sidebar-collapsed .nav-group-items { padding-left:10px; }.sidebar-mobile-open .app-sidebar { transform:none; }.sidebar-mobile-open .sidebar-backdrop { display:block;position:fixed;inset:var(--header-h) 0 0 0;background:rgba(0,0,0,.45);z-index:1020; }.auth-shell { grid-template-columns:1fr;max-width:560px; }.auth-brand { display:none; } }
@media (max-width:650px) { .page-heading { flex-direction:column; }.page-actions { justify-content:flex-start;width:100%; }.metric-grid { grid-template-columns:1fr; }.validation-row { grid-template-columns:85px 1fr; }.validation-row>span:last-child { grid-column:1/-1; }.grid-toolbar { width:100%; }.panel-header { flex-direction:column; }.appearance-menu { min-width:min(310px,calc(100vw - 30px)); }.brand-copy { display:none; } }

/* v0.3 layout, appearance and account-management overrides */
:root{--sidebar-w:232px;--sidebar-docked-w:54px}
html[data-theme="blackout"]{--bg:#000;--surface:#090909;--surface-2:#111;--surface-3:#181818;--text:#f4f4f4;--muted:#9a9a9a;--border:#232323;--border-strong:#333;--accent:#8fb8a8;--accent-strong:#b5d2c7;--accent-soft:rgba(143,184,168,.13);--success:#71c69f;--warning:#d8ad66;--danger:#e27680;--info:#79acd0;--header-bg:rgba(0,0,0,.94);--sidebar-bg:#050505;--input-bg:#0b0b0b}
html[data-theme="pebble"]{--bg:#c9d0ca;--surface:#dfe3df;--surface-2:#d4dad5;--surface-3:#bac8b1;--text:#263129;--muted:#59665d;--border:#aeb9b0;--border-strong:#87988b;--accent:#6c8b80;--accent-strong:#405e4b;--accent-soft:rgba(108,139,128,.18);--success:#4f7e61;--warning:#916f35;--danger:#9b5157;--info:#557987;--header-bg:rgba(223,227,223,.94);--sidebar-bg:#b8c4b9;--input-bg:#e7eae7;--shadow-soft:0 18px 42px rgba(47,61,51,.14)}
html[data-theme="sandstone"]{--bg:#d4c8bd;--surface:#e6ddd4;--surface-2:#d8ccc1;--surface-3:#c4ae99;--text:#3d3027;--muted:#746356;--border:#c2b2a4;--border-strong:#9b826d;--accent:#997e67;--accent-strong:#664930;--accent-soft:rgba(153,126,103,.17);--success:#61785f;--warning:#a27132;--danger:#9a554c;--info:#5d7581;--header-bg:rgba(230,221,212,.94);--sidebar-bg:#cbbbac;--input-bg:#eee7e0;--shadow-soft:0 18px 42px rgba(78,58,43,.13)}
html[data-density="ultra-compact"]{--control-h:28px;--cell-y:4px;--page-gap:10px;--panel-pad:12px}html[data-density="spacious"]{--control-h:50px;--cell-y:18px;--page-gap:32px;--panel-pad:30px}
.text-body-secondary,.dropdown-item-text{color:var(--muted)!important}.form-label{color:var(--text)}
body.sidebar-docked .app-sidebar{width:var(--sidebar-docked-w)}body.sidebar-docked .sidebar-scroll{padding-left:7px;padding-right:7px}body.sidebar-docked .nav-item,body.sidebar-docked .nav-group-toggle{justify-content:center;padding-left:8px;padding-right:8px;gap:0}body.sidebar-docked .nav-item span,body.sidebar-docked .nav-group-toggle b,body.sidebar-docked .nav-chevron,body.sidebar-docked .sidebar-footer span:not(.status-dot){display:none}body.sidebar-docked .nav-group-items{padding-left:0}body.sidebar-docked .sidebar-footer{justify-content:center;padding:0}body.sidebar-hidden .app-sidebar{transform:translateX(-105%)}body.sidebar-docked .app-main{margin-left:var(--sidebar-docked-w)}body.sidebar-hidden .app-main{margin-left:0}
.sidebar-dock-tooltip{position:fixed;z-index:1080;transform:translateY(-50%);pointer-events:none;background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-soft);border-radius:8px;padding:7px 9px;font-size:.75rem;font-weight:650;opacity:0;visibility:hidden;transition:opacity 100ms ease;white-space:nowrap}.sidebar-dock-tooltip.show{opacity:1;visibility:visible}
.appearance-menu{min-width:390px}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.theme-grid button,.density-grid button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:8px;padding:7px;font-size:.72rem;transition:all var(--transition)}.theme-grid button{display:flex;align-items:center;gap:6px;justify-content:flex-start}.theme-grid button:hover,.density-grid button:hover,.theme-grid button.active,.density-grid button.active{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.theme-swatch{width:13px;height:13px;border-radius:4px;border:1px solid rgba(127,127,127,.35);flex:0 0 13px}.theme-swatch.blackout{background:#050505}.theme-swatch.midnight{background:#11182a}.theme-swatch.slate{background:#253236}.theme-swatch.pebble{background:#bac8b1}.theme-swatch.sandstone{background:#c4ae99}.theme-swatch.light{background:#fff}.density-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.app-menu .dropdown-item,.user-menu-summary strong{color:var(--text)}.app-menu .dropdown-item:hover,.app-menu .dropdown-item:focus{background:var(--surface-2);color:var(--text)}.user-menu{min-width:220px}.user-menu-summary{display:flex;flex-direction:column;padding:8px 16px 5px}.user-menu-summary span{color:var(--muted);font-size:.72rem;margin-top:2px}
.app-input,.form-select.app-input{background:var(--input-bg);color:var(--text);border-color:var(--border)}.form-select.app-input option{background:var(--surface);color:var(--text)}.success-panel{display:flex;gap:9px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--success) 40%,var(--border));background:color-mix(in srgb,var(--success) 10%,var(--surface));border-radius:9px;color:var(--success);font-size:.82rem;margin:15px 0}.page-message{margin:0 0 var(--page-gap)}.narrow-shell{max-width:760px}.form-panel{max-width:620px}.form-actions{display:flex;gap:8px;justify-content:flex-end}.admin-grid{display:grid;grid-template-columns:minmax(280px,390px) minmax(0,1fr);gap:var(--page-gap);align-items:start}.user-admin-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden}.user-admin-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--border)}.user-admin-row:last-child{border-bottom:0}.user-admin-avatar{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-weight:800}.user-admin-copy{display:flex;flex-direction:column;min-width:0}.user-admin-copy strong{font-size:.84rem}.user-admin-copy span,.user-admin-copy small{color:var(--muted);font-size:.72rem}.user-admin-actions{display:flex;align-items:center;gap:8px}.status-badge.success{background:color-mix(in srgb,var(--success) 15%,var(--surface));color:var(--success)}.danger-button{color:var(--danger)}.field-optional{color:var(--muted);font-size:.72rem;font-weight:400}
html[data-theme="blackout"],html[data-theme="midnight"],html[data-theme="slate"]{--close-filter:invert(1) grayscale(100%) brightness(200%)}
@media(max-width:1100px){.admin-grid{grid-template-columns:1fr}}@media(max-width:991.98px){.app-sidebar,body.sidebar-docked .app-sidebar,body.sidebar-hidden .app-sidebar{transform:translateX(-100%);width:min(290px,88vw)}.app-main,body.sidebar-docked .app-main,body.sidebar-hidden .app-main{margin-left:0}body.sidebar-docked .nav-item,body.sidebar-docked .nav-group-toggle{justify-content:flex-start;padding:8px 11px;gap:11px}body.sidebar-docked .nav-item span,body.sidebar-docked .nav-group-toggle b,body.sidebar-docked .nav-chevron,body.sidebar-docked .sidebar-footer span:not(.status-dot){display:initial}body.sidebar-docked .nav-group-items{padding-left:10px}.sidebar-dock-tooltip{display:none}.sidebar-mobile-open .app-sidebar{transform:none!important}}@media(max-width:650px){.appearance-menu{min-width:min(390px,calc(100vw - 30px))}.theme-grid{grid-template-columns:repeat(2,1fr)}.density-grid{grid-template-columns:repeat(3,1fr)}.user-admin-row{grid-template-columns:38px 1fr}.user-admin-actions{grid-column:2}}

/* v0.4: Stage-inspired palette + reusable table workspace */
html[data-theme="stage"]{--bg:#060812;--surface:#0b0f1d;--surface-2:#111628;--surface-3:#171d31;--text:#eeecff;--muted:#9aa2b9;--border:rgba(255,255,255,.11);--border-strong:rgba(195,92,255,.30);--accent:#c35cff;--accent-strong:#d993ff;--accent-soft:rgba(195,92,255,.14);--success:#58f592;--warning:#ffe86c;--danger:#ff617f;--info:#4fbaff;--header-bg:rgba(6,8,18,.92);--sidebar-bg:#080b15;--input-bg:#0d1120;--shadow-soft:0 18px 42px rgba(0,0,0,.30)}
.theme-swatch.stage{background:linear-gradient(135deg,#060812 0 34%,#c35cff 34% 55%,#42e8ff 55% 74%,#111628 74%)}
html[data-theme="stage"]{--close-filter:invert(1) grayscale(100%) brightness(200%)}
/* professional semantic contrast, shared by every theme */
.dropdown-menu,.app-menu,.modal-content,.app-modal,.form-control,.form-select{color:var(--text);background-color:var(--surface);border-color:var(--border)}
.dropdown-item{color:var(--text)}.dropdown-item:hover,.dropdown-item:focus{color:var(--text);background:var(--accent-soft)}
.dropdown-item i,.nav-item i,.nav-group-toggle i,.btn-ghost i,.icon-button i{color:var(--muted)}
.dropdown-item:hover i,.nav-item:hover i,.nav-item.active i,.btn-ghost:hover i,.icon-button:hover i{color:var(--accent-strong)}
.form-control::placeholder{color:var(--muted);opacity:.78}.text-muted,.small-muted{color:var(--muted)!important}
.sd-table-component{position:relative;min-width:0}.sd-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sd-table-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sd-table-tools .btn{display:inline-flex;align-items:center;gap:7px}.sd-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.sd-data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:max-content}.sd-data-table th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text);border-bottom:1px solid var(--border-strong);font-size:.75rem}.sd-data-table td{background:var(--surface);color:var(--text);border-bottom:1px solid var(--border);font-size:.78rem}.sd-data-table th,.sd-data-table td{padding:var(--cell-y) 12px;white-space:nowrap}.sd-data-table tbody tr:hover td{background:var(--accent-soft)}.sd-th{display:flex;align-items:center;justify-content:space-between;gap:6px}.sd-sort-label,.sd-filter-btn{border:0;background:transparent;color:inherit;padding:0}.sd-sort-label{font-weight:700;text-align:left;flex:1}.sd-sort-label:disabled{cursor:default}.sd-filter-btn{width:24px;height:24px;border-radius:6px;color:var(--muted)}.sd-filter-btn:hover{background:var(--accent-soft);color:var(--accent-strong)}.sd-table-footer{display:flex;justify-content:space-between;gap:10px;padding:8px 2px;color:var(--muted);font-size:.7rem}.sd-table-popover{position:fixed;z-index:2100;width:310px;max-height:70vh;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.sd-popover-head,.sd-popover-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.sd-popover-head{margin-bottom:8px}.sd-popover-actions{margin-top:10px;justify-content:flex-end}.icon-button.mini{width:28px;height:28px}.sd-filter-list{max-height:230px;overflow:auto;border:1px solid var(--border);border-radius:8px;padding:5px;background:var(--surface-2)}.sd-filter-list label,.sd-pane-values label{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:6px;font-size:.74rem}.sd-filter-list label:hover,.sd-pane-values label:hover{background:var(--accent-soft)}.sd-search-panes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0 0 10px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.sd-search-panes section{min-width:0}.sd-pane-title{font-size:.7rem;font-weight:800;color:var(--text);margin-bottom:5px}.sd-pane-values{max-height:170px;overflow:auto;margin-top:5px}.sd-chart-controls{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-bottom:12px}.sd-chart-wrap{height:520px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
@media(max-width:760px){.sd-chart-controls{grid-template-columns:1fr 1fr}.sd-table-toolbar{align-items:stretch}.sd-table-tools{width:100%}.sd-table-tools .btn span{display:none}}

/* v0.5 table interaction: single-column search pane, pagination, chart controls */
.sd-search-pane-single{margin:0 0 10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text)}
.sd-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.sd-pane-head strong{font-size:.86rem}.sd-pane-head-actions{display:flex;align-items:center;gap:6px}.sd-pane-search{width:min(360px,100%);margin-bottom:8px}.sd-pane-search input{width:100%}.sd-search-pane-single .sd-pane-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:2px;max-height:220px;overflow:auto;padding:5px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.sd-pane-summary{display:flex;justify-content:space-between;gap:10px;margin-top:7px;color:var(--muted);font-size:.69rem}
.sd-table-footer{align-items:center;min-height:42px}.sd-page-summary{display:flex;align-items:center;gap:8px}.sd-total-rows{color:var(--muted);opacity:.78}.sd-pager{display:flex;align-items:center;gap:5px}.sd-pager label{display:flex;align-items:center;gap:6px;color:var(--muted)}.sd-pager .form-select{width:auto;min-width:68px;padding-top:3px;padding-bottom:3px;background-color:var(--surface);color:var(--text);border-color:var(--border)}.sd-page-number{min-width:88px;text-align:center;color:var(--text);font-weight:700}.sd-pager .icon-button:disabled{opacity:.35;cursor:not-allowed}
.sd-chart-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.7rem;font-weight:700}.sd-chart-controls .form-select{background-color:var(--surface);color:var(--text);border-color:var(--border)}.sd-chart-status{min-height:22px;margin:-2px 0 6px;color:var(--muted);font-size:.72rem}.sd-chart-wrap canvas{max-width:100%;max-height:100%}
@media(max-width:760px){.sd-table-footer{align-items:flex-start;flex-direction:column}.sd-pager{width:100%;flex-wrap:wrap}.sd-page-summary{width:100%;justify-content:space-between}.sd-search-pane-single .sd-pane-values{grid-template-columns:1fr 1fr}}

/* v0.6 — mature reusable table controls, adapted from Draws semantics */
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn > span{display:none}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn{gap:0;min-width:34px;justify-content:center}
.sd-toolbar-text-toggle b{font-size:.8rem;line-height:1}.sd-table-component.toolbar-text-visible .sd-toolbar-text-toggle{border-color:var(--accent);color:var(--accent-strong)}
.sd-pane-picker{min-width:250px;padding:6px}.sd-pane-picker .sd-picker-head{padding:7px 10px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.sd-pane-picker .dropdown-item{display:flex;align-items:center;gap:9px;border-radius:7px;padding:7px 9px;cursor:pointer}.sd-pane-picker .dropdown-item input{accent-color:var(--accent)}
.sd-search-panes-workspace{margin:0 0 12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text)}
.sd-panes-shell-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.sd-panes-shell-head strong{font-size:.84rem}.sd-panes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px}
.sd-search-pane{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.sd-search-pane .sd-pane-head{padding:8px 9px;margin:0;border-bottom:1px solid var(--border);background:var(--surface-2)}.sd-pane-heading{display:flex;flex-direction:column;min-width:0}.sd-pane-heading strong{font-size:.78rem}.sd-pane-heading small{color:var(--muted);font-size:.63rem;margin-top:1px}.sd-pane-head-actions{display:flex;align-items:center;gap:4px}.sd-pane-head-actions .btn,.sd-pane-head-actions .icon-button{min-height:26px;height:26px}.sd-pane-head-actions .is-active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}
.sd-search-pane .sd-pane-search{margin:7px 8px;width:calc(100% - 16px)}.sd-pane-mini-table{margin:0 8px 7px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.sd-pane-mini-head,.sd-pane-row{display:grid;grid-template-columns:minmax(0,1fr) 62px;align-items:center}.sd-pane-mini-head{padding:5px 8px;background:var(--surface-3);color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.sd-pane-mini-head span:last-child{text-align:right}.sd-pane-mini-body{max-height:205px;overflow:auto}.sd-pane-row{width:100%;padding:5px 8px;border:0;border-top:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;font-size:.7rem}.sd-pane-row:first-child{border-top:0}.sd-pane-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-pane-row b{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.sd-pane-row:hover{background:var(--accent-soft)}.sd-pane-row.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.sd-pane-row.selected b{color:var(--accent-strong)}.sd-search-pane .sd-pane-summary{padding:0 8px 8px;font-size:.62rem}
.sd-filter-panel{position:fixed;z-index:2200;width:min(410px,calc(100vw - 16px));max-height:78vh;overflow:auto;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.sd-filter-panel[hidden]{display:none!important}.sd-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.sd-filter-head>div{display:flex;flex-direction:column}.sd-filter-head strong{font-size:.88rem}.sd-filter-head small{color:var(--muted);font-size:.65rem;margin-top:1px}.sd-filter-sort{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px}.sd-filter-sort .btn{justify-content:flex-start;gap:7px}.sd-filter-condition{display:flex;flex-direction:column;gap:7px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.sd-filter-condition>label{display:flex;flex-direction:column;gap:4px}.sd-filter-condition label>span,.sd-filter-values-head strong{font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.sd-filter-condition-values{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sd-date-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.sd-date-quick button{border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);padding:5px;font-size:.63rem}.sd-date-quick button:hover{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--border-strong)}.sd-filter-divider{height:1px;background:var(--border);margin:10px 0}.sd-filter-values-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.sd-filter-values-head>div{display:flex;gap:4px}.sd-filter-find{width:100%;margin-bottom:6px}.sd-filter-value-list{max-height:205px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.sd-filter-value-list label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;border-top:1px solid var(--border);font-size:.7rem;cursor:pointer}.sd-filter-value-list label:first-child{border-top:0}.sd-filter-value-list label:hover{background:var(--accent-soft)}.sd-filter-value-list label>span{display:flex;align-items:center;gap:6px;min-width:0}.sd-filter-value-list b{color:var(--muted);font-size:.65rem;font-variant-numeric:tabular-nums}.sd-filter-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}.sd-filter-footer>div{display:flex;gap:5px}.sd-filter-btn.is-active{color:var(--accent-strong);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}
.sd-table-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 2px 0;color:var(--muted);font-size:.69rem}.sd-footer-size{display:flex;align-items:center;gap:7px}.sd-footer-size label{margin:0}.sd-footer-size .form-select{width:auto;min-width:70px;background:var(--surface);color:var(--text);border-color:var(--border)}.sd-showing-info{text-align:center}.sd-showing-info span{opacity:.72}.sd-pagination .page-link{background:var(--surface);border-color:var(--border);color:var(--text);min-width:30px;text-align:center}.sd-pagination .page-link:hover{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}.sd-pagination .page-item.disabled .page-link{background:var(--surface-2);color:var(--muted);opacity:.45}.sd-page-info{min-width:96px!important;color:var(--muted)!important}
.sd-chart-wrap{position:relative}.sd-chart-wrap canvas{display:block;width:100%!important;height:100%!important}.sd-chart-status.text-danger{color:var(--danger)!important}
@media(max-width:800px){.sd-table-footer{grid-template-columns:1fr auto}.sd-showing-info{grid-column:1/-1;grid-row:2;text-align:left}.sd-panes-grid{grid-template-columns:1fr}.sd-date-quick{grid-template-columns:1fr 1fr}}

/* v0.7 Phase 3 — canonical data/import/health */
.import-step-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:14px}.import-drop{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface-2)}.import-drop>i{font-size:1.35rem;color:var(--accent-strong)}.import-drop>span{color:var(--muted);font-size:.76rem}.import-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.import-summary>div{display:flex;flex-direction:column;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.import-summary small{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.import-summary strong{font-size:1.15rem;margin-top:3px}.import-issues{display:grid;gap:5px;margin-top:12px;max-height:180px;overflow:auto}.import-issue{display:flex;align-items:flex-start;gap:8px;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:.72rem}.import-issue.warning i{color:var(--warning)}.import-issue.error i{color:var(--danger)}.import-issue b{margin-right:6px}.status-badge.success{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}
@media(max-width:850px){.import-step-grid{grid-template-columns:1fr}}

/* v0.8 Data Health refinement */
.health-metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.health-summary-panel{margin-bottom:1rem}
.health-summary-copy{padding:0 1rem 1rem;color:var(--text-secondary)}
.health-summary-copy p{margin:.25rem 0;line-height:1.55}
.health-summary-copy p:first-child{color:var(--text-primary);font-weight:650}
@media (max-width:1280px){.health-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.health-metric-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.health-metric-grid{grid-template-columns:1fr}}

/* v0.9 table workspace refinements */
.sd-table-wrap{scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain}
.sd-table-wrap::-webkit-scrollbar{width:0;height:0;display:none}
.sd-actions-th,.sd-actions-cell{position:sticky!important;right:0;z-index:4;width:38px;min-width:38px;max-width:38px;padding-left:5px!important;padding-right:5px!important;text-align:center;box-shadow:-8px 0 12px -12px rgba(0,0,0,.35)}
.sd-actions-th{background:var(--surface-2)!important;z-index:5}.sd-actions-cell{background:var(--surface)!important}.sd-data-table tbody tr:hover .sd-actions-cell{background:var(--accent-soft)!important}
.sd-row-actions-button{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted)}
.sd-row-actions-button:hover{background:var(--accent-soft);border-color:var(--border);color:var(--accent-strong)}
.sd-row-inspectable{cursor:pointer}
.sd-row-actions-menu{position:fixed;z-index:3200;min-width:190px;padding:5px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.sd-row-actions-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:7px;padding:8px 10px;background:transparent;color:var(--text);font-size:.78rem;text-align:left}
.sd-row-actions-menu button:hover{background:var(--accent-soft);color:var(--accent-strong)}.sd-row-actions-menu button.is-danger{color:var(--danger)}
.sd-row-actions-menu i{width:17px;text-align:center;color:currentColor}
.sd-row-inspector .modal-body{padding-top:14px}.sd-inspector-summary{margin-bottom:14px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:.86rem;line-height:1.45}
.sd-inspector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sd-inspector-field{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);min-width:0}.sd-inspector-field.is-wide{grid-column:1/-1}.sd-inspector-field span{display:block;margin-bottom:3px;color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.sd-inspector-field strong{display:block;color:var(--text);font-size:.84rem;font-weight:600;white-space:normal;overflow-wrap:anywhere}.sd-inspector-note{margin-top:12px;color:var(--muted);font-size:.76rem}
@media(max-width:650px){.sd-inspector-grid{grid-template-columns:1fr}}
.import-issue.info i{color:var(--accent-strong)}

/* ===== Phase 4 · Number State ===== */
.state-layout-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px}
.state-model-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.state-model-grid>div,.state-run-meta>span,.state-snapshot-meta>span{border:1px solid var(--border);background:var(--bg-panel-alt);border-radius:12px;padding:10px 12px;min-width:0}
.state-model-grid small,.state-run-meta b,.state-snapshot-meta b{display:block;color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.state-model-grid strong{font-size:.9rem;color:var(--text-primary);font-weight:650}
.state-run-meta,.state-snapshot-meta{display:flex;flex-wrap:wrap;gap:8px}.state-run-meta>span,.state-snapshot-meta>span{font-size:.84rem}.state-fingerprint{flex:1 1 100%}.state-fingerprint code,.state-snapshot-meta code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}
.state-snapshot-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.state-snapshot-controls label{font-size:.72rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.state-snapshot-controls select{margin-top:4px;min-width:180px}
.state-hit{color:var(--success)}
.form-help{font-size:.82rem;color:var(--text-secondary);line-height:1.45}
.app-callout{background:var(--accent-soft);border-color:var(--border);color:var(--text-primary)}
@media(max-width:980px){.state-layout-grid{grid-template-columns:1fr}.state-model-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.state-model-grid{grid-template-columns:1fr}.state-snapshot-controls{width:100%}.state-snapshot-controls label{flex:1}.state-snapshot-controls select{min-width:0;width:100%}}

/* ===== v1.0.2 inspection + appearance refinements ===== */
:root{
  --text-primary:var(--ui-text,var(--text));
  --text-secondary:var(--ui-muted,var(--muted));
  --bg-panel-alt:var(--surface-2);
}
/* Components use the optional text-tone layer while themes remain the palette foundation. */
body,.icon-button,.user-chip,.btn-ghost,.app-menu,.app-menu .dropdown-item,.sd-data-table th,.sd-data-table td,.form-select,.form-control{color:var(--ui-text,var(--text))}
.page-heading p,.panel-header p,.metric-card small,.metric-card span:last-child,.brand-copy span,.command-search,.nav-item,.nav-group-toggle,.sd-table-footer,.sd-filter-btn{color:var(--ui-muted,var(--muted))}

/* Consistent vertical rhythm between top-level page blocks. */
.page-shell{display:flex;flex-direction:column;gap:var(--page-gap)}
.page-shell>.page-heading,.page-shell>.metric-grid,.page-shell>.health-summary-panel{margin-bottom:0}
.page-shell>.state-layout-grid,.page-shell>.content-grid,.page-shell>.panel{margin-top:0}

/* Keep scrolling fully functional while hiding only the native scrollbar chrome. */
.sd-table-wrap{overflow:auto!important;overscroll-behavior:auto!important;touch-action:pan-x pan-y;scrollbar-width:none;-ms-overflow-style:none}
.sd-table-wrap::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}

/* Row click means selection. Details remain an explicit row-action operation. */
.sd-data-table tbody tr{cursor:default}
.sd-data-table tbody tr.is-selected td{background:var(--accent-soft)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 24%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--accent) 24%,transparent)}
.sd-data-table tbody tr.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--accent),inset 0 1px 0 color-mix(in srgb,var(--accent) 24%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--accent) 24%,transparent)}
.sd-row-inspectable{cursor:default}

.state-hit-legend{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--text-secondary);font-size:.74rem}
.state-hit-legend .state-hit{font-size:.9rem}

/* Appearance: theme + independent accent + text contrast. */
.appearance-menu{min-width:430px;max-height:min(78vh,720px);overflow:auto}
.accent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.accent-grid button,.text-tone-grid button{border:1px solid var(--border);background:var(--surface-2);color:var(--ui-muted,var(--muted));border-radius:8px;padding:7px;font-size:.7rem;transition:all var(--transition)}
.accent-grid button{display:flex;align-items:center;gap:6px;justify-content:flex-start}
.accent-grid button:hover,.accent-grid button.active,.text-tone-grid button:hover,.text-tone-grid button.active{color:var(--ui-text,var(--text));border-color:var(--accent);background:var(--accent-soft)}
.accent-swatch{width:12px;height:12px;border-radius:50%;border:1px solid color-mix(in srgb,var(--border-strong) 80%,transparent);flex:0 0 12px}
.accent-swatch.theme{background:linear-gradient(135deg,var(--accent),var(--accent-strong))}.accent-swatch.sage{background:#789669}.accent-swatch.teal{background:#58b8ad}.accent-swatch.blue{background:#6e91da}.accent-swatch.amber{background:#d5a552}.accent-swatch.rose{background:#c87886}.accent-swatch.violet{background:#9c7bd8}
.text-tone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
@media(max-width:650px){.appearance-menu{min-width:min(350px,calc(100vw - 24px))}.accent-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== v1.0.3 appearance + control rhythm ===== */
:root{--ui-brightness:1;--base-font-size:16px}
html[data-font-size="xs"]{font-size:13px}html[data-font-size="small"]{font-size:14px}html[data-font-size="standard"]{font-size:16px}html[data-font-size="large"]{font-size:17px}html[data-font-size="xl"]{font-size:18px}
html[data-density="micro"]{--control-h:24px;--cell-y:2px;--page-gap:8px;--panel-pad:10px}
html[data-density="relaxed"]{--control-h:56px;--cell-y:22px;--page-gap:38px;--panel-pad:34px}

html[data-theme="graphite"]{--bg:#151618;--surface:#1c1e21;--surface-2:#24272b;--surface-3:#2d3136;--text:#eceff1;--muted:#a0a6ad;--border:#353a40;--border-strong:#4a5159;--accent:#8aa4b5;--accent-strong:#b1c2cc;--accent-soft:rgba(138,164,181,.14);--success:#75b99b;--warning:#d2a866;--danger:#d7757e;--info:#78a9c4;--header-bg:rgba(21,22,24,.93);--sidebar-bg:#181a1d;--input-bg:#1a1c1f}
html[data-theme="dusk"]{--bg:#171821;--surface:#20212c;--surface-2:#292b38;--surface-3:#333646;--text:#eeeef5;--muted:#aaa9bd;--border:#3c3d4e;--border-strong:#51536a;--accent:#8f86bc;--accent-strong:#b7b0d5;--accent-soft:rgba(143,134,188,.15);--success:#77b99c;--warning:#d0aa6d;--danger:#d97d89;--info:#7fa7ca;--header-bg:rgba(23,24,33,.93);--sidebar-bg:#1a1b25;--input-bg:#1d1e28}
html[data-theme="jade"]{--bg:#18201d;--surface:#202a26;--surface-2:#293630;--surface-3:#34443c;--text:#edf2ef;--muted:#a4b2aa;--border:#3b4b43;--border-strong:#52665c;--accent:#7ea690;--accent-strong:#abc3b5;--accent-soft:rgba(126,166,144,.15);--success:#79bb96;--warning:#cfaa6c;--danger:#d77b82;--info:#7daab5;--header-bg:rgba(24,32,29,.93);--sidebar-bg:#1b2420;--input-bg:#1e2723}
html[data-theme="cloud"]{--bg:#e3e5e8;--surface:#f0f1f3;--surface-2:#e8eaed;--surface-3:#d7dbe0;--text:#2f343a;--muted:#6c747d;--border:#c8cdd3;--border-strong:#aab2bb;--accent:#718495;--accent-strong:#526575;--accent-soft:rgba(113,132,149,.14);--success:#4f7f68;--warning:#97703c;--danger:#9c5b64;--info:#5d7f94;--header-bg:rgba(240,241,243,.95);--sidebar-bg:#dadee2;--input-bg:#f5f6f7;--shadow-soft:0 18px 42px rgba(48,57,66,.11)}
html[data-theme="graphite"],html[data-theme="dusk"],html[data-theme="jade"]{--close-filter:invert(1) grayscale(100%) brightness(200%)}

.app-header,.app-sidebar,.app-main,.modal-content,.toast{filter:brightness(var(--ui-brightness));transition:filter 120ms ease,background var(--transition),color var(--transition)}

.theme-swatch.graphite{background:linear-gradient(135deg,#151618 0 50%,#8aa4b5 50%)}.theme-swatch.dusk{background:linear-gradient(135deg,#171821 0 50%,#8f86bc 50%)}.theme-swatch.jade{background:linear-gradient(135deg,#18201d 0 50%,#7ea690 50%)}.theme-swatch.cloud{background:linear-gradient(135deg,#e3e5e8 0 50%,#718495 50%)}
.accent-swatch.cyan{background:#4fbfc8}.accent-swatch.indigo{background:#6875d8}.accent-swatch.coral{background:#d77a6e}.accent-swatch.gold{background:#c9a43c}.accent-swatch.copper{background:#b77a58}.accent-swatch.mint{background:#70b99a}
.text-tone-grid,.font-size-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.font-size-grid button{border:1px solid var(--border);background:var(--surface-2);color:var(--ui-muted,var(--muted));border-radius:8px;padding:7px;font-size:.7rem;transition:all var(--transition)}
.font-size-grid button:hover,.font-size-grid button.active{color:var(--ui-text,var(--text));border-color:var(--accent);background:var(--accent-soft)}
.appearance-range{width:100%;accent-color:var(--accent)}.appearance-range-labels{display:flex;justify-content:space-between;color:var(--ui-muted,var(--muted));font-size:.62rem;margin-top:2px}.appearance-note{display:flex;gap:8px;align-items:flex-start;border-top:1px solid var(--border);padding-top:10px;color:var(--ui-muted,var(--muted));font-size:.65rem}.appearance-note i{color:var(--accent-strong);margin-top:2px}
.density-grid{grid-template-columns:repeat(4,1fr)}

/* Control heights remain aligned when density or text size changes. */
.btn,.icon-button,.user-chip,.command-search,.form-control,.form-select,.sd-toolbar-button,.sd-toolbar-dropdown>button,.state-snapshot-controls .btn,.state-snapshot-controls .form-select{height:var(--control-h)!important;min-height:var(--control-h)!important;line-height:1!important;display:inline-flex;align-items:center}
.btn{justify-content:center;padding-top:0!important;padding-bottom:0!important}.form-control,.form-select{padding-top:0!important;padding-bottom:0!important}.page-actions,.state-snapshot-controls,.grid-toolbar,.sd-toolbar{align-items:center}
.page-actions .btn,.state-snapshot-controls>*{margin:0}
@media(max-width:650px){.text-tone-grid,.font-size-grid{grid-template-columns:repeat(3,1fr)}.density-grid{grid-template-columns:repeat(2,1fr)}}
.state-definition-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text-secondary);font-size:.72rem}.state-definition-note i{color:var(--accent-strong);margin-top:2px}


/* ===== v1.0.4 UI stability + brightness overlay ===== */
:root{--brightness-overlay-color:0,0,0;--brightness-overlay-opacity:0}
/* Brightness is a visual overlay, not CSS filter. Avoiding filter preserves fixed/modal stacking and file-picker interaction. */
.app-header,.app-sidebar,.app-main,.modal-content,.toast{filter:none!important}
body::after{content:"";position:fixed;inset:0;z-index:3000;pointer-events:none;background:rgba(var(--brightness-overlay-color),var(--brightness-overlay-opacity));transition:background-color 120ms ease,opacity 120ms ease}

/* Keep all icon-only controls mathematically centred at every density/text size. */
.icon-button,.sd-row-actions-button,.sd-filter-btn,.icon-button.mini{padding:0!important;display:inline-grid!important;place-items:center!important;line-height:1!important}
.icon-button>i,.sd-row-actions-button>i,.sd-filter-btn>i,.sd-table-tools .btn>i{margin:0!important;line-height:1!important;display:block;text-align:center}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn>i{margin-inline:0!important}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn{padding-left:0!important;padding-right:0!important;width:var(--control-h);min-width:var(--control-h)!important;max-width:var(--control-h);justify-content:center!important}
.sd-table-component.toolbar-text-visible .sd-table-tools .btn{width:auto;max-width:none;padding-left:.7rem!important;padding-right:.7rem!important}
.btn>i:first-child:last-child{margin:0!important}

/* Light-family themes keep Bootstrap's dark close glyph; dark-family themes invert it. */
html[data-theme="light"],html[data-theme="cloud"],html[data-theme="pebble"],html[data-theme="sandstone"]{--close-filter:none!important}
html[data-theme="stage"],html[data-theme="blackout"],html[data-theme="midnight"],html[data-theme="slate"],html[data-theme="graphite"],html[data-theme="dusk"],html[data-theme="jade"]{--close-filter:invert(1) grayscale(100%) brightness(200%)!important}
.btn-close{opacity:.72}.btn-close:hover{opacity:1}

.appearance-reset{width:100%;height:var(--control-h);display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--ui-text,var(--text));font-size:.72rem;font-weight:700}
.appearance-reset:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}
.appearance-reset i{margin:0!important}

/* Bootstrap modals must stay above the app shell and remain clickable. */
.modal{z-index:2050!important}.modal-backdrop{z-index:2040!important}
.modal-content{isolation:isolate}

/* ===== v1.0.5 control polish ===== */
button > i:not(:last-child), .btn > i:not(:last-child) { margin-inline-end:.42rem!important; }
.icon-button > i, .sd-row-actions-button > i, .sd-filter-btn > i { margin-inline-end:0!important; }


/* v1.0.6 control spacing + invisible sidebar scrollbar */
.btn{gap:clamp(6px,.45em,10px)}
.btn>i,.btn>svg{flex:0 0 auto}
.icon-button,.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn{gap:0!important}
.sidebar-scroll{scrollbar-width:none;-ms-overflow-style:none}
.sidebar-scroll::-webkit-scrollbar{width:0;height:0;display:none}

/* Phase 5 ranking model cards */
.ranking-model-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--page-gap,1rem)}
.ranking-model-card{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:14px;padding:calc(var(--control-gap, .75rem) * 1.35);min-width:0}
.ranking-model-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.ranking-model-card h3{margin:.15rem 0 .35rem;font-size:1rem}.ranking-model-card p{margin:0 0 .8rem;color:var(--text-secondary)}
.ranking-sort-rule{display:grid;gap:.25rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel)}.ranking-sort-rule small{color:var(--text-secondary)}.ranking-sort-rule strong{font-size:.84rem;line-height:1.45;overflow-wrap:anywhere}.ranking-model-meta{display:flex;flex-wrap:wrap;gap:.45rem .8rem;margin-top:.7rem;color:var(--text-secondary);font-size:.78rem}
@media(max-width:900px){.ranking-model-cards{grid-template-columns:1fr}}

/* v1.1.1 docked navigation + validation pipeline */
body.sidebar-docked .nav-group.collapsed .nav-group-items{display:block!important}
body.sidebar-docked .nav-group-toggle{min-height:12px;height:12px;padding:0 6px;margin:5px 0;pointer-events:none;border-radius:0;position:relative;background:transparent!important}
body.sidebar-docked .nav-group-toggle>span,body.sidebar-docked .nav-group-toggle>.nav-chevron{display:none!important}
body.sidebar-docked .nav-group-toggle::after{content:"";display:block;width:28px;height:1px;background:color-mix(in srgb,var(--border) 78%,transparent);margin:auto}
.pipeline-contract{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pipeline-contract>span{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--ui-text,var(--text))}.pipeline-contract>span b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.pipeline-contract>i{color:var(--ui-muted,var(--muted))}

/* v1.1.2 Stage legacy-style icon */
.stage-letter-icon{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;min-width:1.05rem;font-size:.86rem;font-weight:900;line-height:1;color:var(--muted);letter-spacing:-.04em}
.nav-item:hover .stage-letter-icon,.nav-item.active .stage-letter-icon{color:var(--accent-strong)}
body.sidebar-docked .stage-letter-icon{width:1.15rem;min-width:1.15rem}

/* v1.2.0 branded Stage mark + Draw Analysis workspace */
.stage-letter-icon{display:inline-flex!important;align-items:center;justify-content:center;width:1.25rem;min-width:1.25rem;height:1.25rem;font-size:.9rem;line-height:1;font-weight:900;font-style:italic;letter-spacing:-.08em;color:#c45cff!important;text-shadow:0 0 4px rgba(196,92,255,.95),0 0 10px rgba(196,92,255,.72),0 0 18px rgba(196,92,255,.42);filter:none!important;opacity:1!important;visibility:visible!important;flex:0 0 1.25rem}
body.sidebar-docked .nav-item .stage-letter-icon{display:inline-flex!important;opacity:1!important;visibility:visible!important;width:1.3rem;min-width:1.3rem;font-size:.94rem;transform:translateX(-.02rem)}
body.sidebar-docked .nav-item[data-nav-label="Stage"]{overflow:visible}
.analysis-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:end;justify-content:flex-end}.analysis-controls label{display:grid;gap:4px;font-size:.72rem;color:var(--ui-muted,var(--muted));font-weight:700;min-width:145px}.analysis-controls .btn{height:var(--control-h)}
.analysis-context,.state-snapshot-meta{display:flex;flex-wrap:wrap;gap:8px 18px}.analysis-context{padding:12px 14px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface-2) 65%,transparent)}.analysis-context span{display:grid;gap:2px;font-size:.76rem;color:var(--ui-muted,var(--muted))}.analysis-context b{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em}.analysis-context code{color:var(--ui-text,var(--text))}
.analysis-tabbar{display:flex;gap:8px;flex-wrap:wrap;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.analysis-tab{border:0;background:transparent;color:var(--ui-muted,var(--muted));height:var(--control-h);padding:0 14px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;font-weight:750}.analysis-tab:hover{background:var(--surface-2);color:var(--ui-text,var(--text))}.analysis-tab.active{background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.analysis-panel{display:none}.analysis-panel.active{display:block}.analysis-target-hit{display:inline-flex;align-items:center;justify-content:center;color:#f0b84f;text-shadow:0 0 8px rgba(240,184,79,.45)}.analysis-target-text{color:var(--accent-strong)}.movement-up{color:var(--success);font-weight:800}.movement-down{color:var(--danger);font-weight:800}
@media(max-width:900px){.analysis-controls{justify-content:flex-start}.analysis-controls label{min-width:min(100%,210px)}}

/* ===== v1.2.1 Draw Analysis, search, Sandstone default, Stage mark ===== */
.stage-letter-icon{
  display:inline-flex!important;align-items:center;justify-content:center!important;
  width:1.38rem!important;min-width:1.38rem!important;height:1.38rem!important;flex:0 0 1.38rem!important;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:1.08rem!important;font-weight:950!important;font-style:normal!important;line-height:1!important;letter-spacing:-.075em!important;
  color:#dc67ff!important;-webkit-text-fill-color:#dc67ff!important;
  text-shadow:0 0 2px #f3b4ff,0 0 7px rgba(213,73,255,.95),0 0 15px rgba(175,45,255,.72),0 0 24px rgba(145,30,255,.42)!important;
  opacity:1!important;visibility:visible!important;filter:none!important;
}
body.sidebar-docked .nav-item[data-nav-label="Stage"]{overflow:visible!important;display:flex!important}
body.sidebar-docked .nav-item[data-nav-label="Stage"] .stage-letter-icon{display:inline-flex!important;opacity:1!important;visibility:visible!important;transform:none!important}

.analysis-control-panel{overflow:visible}.analysis-control-heading{padding-bottom:4px}
.analysis-control-grid{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(145px,.72fr) minmax(190px,1fr) minmax(190px,1fr) auto;gap:10px;align-items:end;padding:0 var(--panel-pad) var(--panel-pad)}
.analysis-control-grid label{display:grid;gap:5px;min-width:0}.analysis-control-grid label>span{font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em;color:var(--ui-muted,var(--muted))}
.analysis-control-grid .form-select{width:100%;min-width:0}.analysis-control-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.analysis-control-actions .btn{height:var(--control-h)}
.analysis-metrics .metric-card span:last-child{white-space:normal;overflow-wrap:anywhere}
@media(max-width:1180px){.analysis-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-control-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:680px){.analysis-control-grid{grid-template-columns:1fr}.analysis-control-actions{grid-column:auto;justify-content:stretch;flex-wrap:wrap}.analysis-control-actions .btn{flex:1}}

.sidebar-search-wrap{position:relative;margin:0 0 9px}.sidebar-search-wrap>i{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--ui-muted,var(--muted));pointer-events:none}.sidebar-search{width:100%;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--ui-text,var(--text));padding:0 10px 0 32px;outline:0;font-size:.76rem}.sidebar-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sidebar-search::placeholder{color:var(--ui-muted,var(--muted))}
body.sidebar-docked .sidebar-search-wrap{display:none}

.global-search-shell[hidden]{display:none!important}.global-search-shell{position:fixed;inset:0;z-index:2600}.global-search-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.42);backdrop-filter:blur(2px)}.global-search-dialog{position:relative;width:min(680px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 100px));margin:82px auto 0;border:1px solid var(--border-strong);border-radius:16px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}.global-search-input-wrap{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.global-search-input-wrap>i{color:var(--ui-muted,var(--muted))}.global-search-input-wrap input{flex:1;border:0;outline:0;background:transparent;color:var(--ui-text,var(--text));font-size:.95rem}.global-search-input-wrap kbd{flex:0 0 auto}.global-search-results{max-height:470px;overflow:auto;padding:8px}.global-search-result{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:10px;background:transparent;color:var(--ui-text,var(--text));text-align:left}.global-search-result:hover,.global-search-result.is-selected{background:var(--accent-soft)}.global-search-result-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--accent-strong)}.global-search-result>span:nth-child(2){display:grid;gap:2px}.global-search-result strong{font-size:.82rem}.global-search-result small{font-size:.68rem;color:var(--ui-muted,var(--muted))}.global-search-arrow{font-size:.7rem;color:var(--ui-muted,var(--muted))}.global-search-result.is-disabled{opacity:.45;cursor:default}.global-search-empty{padding:30px;text-align:center;color:var(--ui-muted,var(--muted));font-size:.82rem}.search-open{overflow:hidden}

/* v1.2.2 — branded Stage mark + legacy SK list research view */
.stage-letter-icon{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:1.55rem!important;
  min-width:1.55rem!important;
  height:1.55rem!important;
  flex:0 0 1.55rem!important;
  border-radius:.46rem!important;
  font-size:1.02rem!important;
  line-height:1!important;
  font-weight:950!important;
  font-style:normal!important;
  letter-spacing:-.055em!important;
  color:#fbeaff!important;
  background:
    radial-gradient(circle at 50% 46%,#250638 0 26%,#45105f 43%,#7713a1 61%,#c000ed 80%,#ef35ff 100%)!important;
  border:1px solid rgba(244,86,255,.92)!important;
  box-shadow:
    inset 0 0 9px rgba(255,90,255,.28),
    0 0 4px rgba(221,0,255,.9),
    0 0 10px rgba(192,0,237,.66),
    0 0 18px rgba(135,20,180,.38)!important;
  text-shadow:0 0 3px rgba(255,255,255,.62),0 0 7px rgba(246,112,255,.82)!important;
  opacity:1!important;visibility:visible!important;filter:none!important;
}
.stage-letter-icon::after{
  content:"";position:absolute;inset:2px;border-radius:.34rem;
  border:1px solid rgba(255,174,255,.22);pointer-events:none;
}
.nav-item[data-nav-label="Stage"]:hover .stage-letter-icon{
  box-shadow:inset 0 0 11px rgba(255,118,255,.38),0 0 5px rgba(232,25,255,.95),0 0 13px rgba(196,0,237,.78),0 0 22px rgba(139,25,185,.46)!important;
}
body.sidebar-docked .nav-item[data-nav-label="Stage"] .stage-letter-icon{
  display:inline-flex!important;width:1.58rem!important;min-width:1.58rem!important;height:1.58rem!important;flex-basis:1.58rem!important;opacity:1!important;visibility:visible!important;transform:none!important;
}
.analysis-sk-header{align-items:flex-end;gap:16px;flex-wrap:wrap}.analysis-view-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.analysis-segmented{display:inline-flex;gap:3px;padding:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px}.analysis-view-btn{border:0;background:transparent;color:var(--ui-muted,var(--muted));height:calc(var(--control-h) - 6px);padding:0 11px;border-radius:6px;display:inline-flex;align-items:center;gap:7px;font-weight:750}.analysis-view-btn.active{background:var(--surface);color:var(--ui-text,var(--text));box-shadow:0 1px 4px rgba(0,0,0,.12)}.analysis-sk-view{display:none}.analysis-sk-view.active{display:block}.analysis-switch{display:inline-flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;cursor:pointer;white-space:nowrap;color:var(--ui-text,var(--text));font-size:.78rem;font-weight:750}.analysis-switch input{position:absolute;opacity:0;pointer-events:none}.analysis-switch-track{width:34px;height:19px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border-strong);position:relative;transition:.18s}.analysis-switch-track::after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;left:2px;top:2px;background:var(--ui-muted,var(--muted));transition:.18s}.analysis-switch input:checked+.analysis-switch-track{background:var(--accent-soft);border-color:var(--accent)}.analysis-switch input:checked+.analysis-switch-track::after{transform:translateX(15px);background:var(--accent-strong)}.analysis-list-note{display:flex;gap:8px;align-items:flex-start;margin:0 var(--panel-pad) 10px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--surface-2) 72%,transparent);font-size:.75rem;color:var(--ui-muted,var(--muted))}.analysis-list-note i{margin-top:2px;color:var(--accent-strong)}.analysis-next-result-badge{display:inline-flex;align-items:center;gap:5px;font-weight:850;color:#f0b84f;text-shadow:0 0 7px rgba(240,184,79,.38)}.sd-grid tbody tr.analysis-next-result-row>td{background:color-mix(in srgb,#f0b84f 14%,var(--surface))!important}.sd-grid tbody tr.analysis-next-result-row>td:first-child{box-shadow:inset 3px 0 0 #f0b84f}.sd-grid tbody tr.analysis-next-result-row:hover>td{background:color-mix(in srgb,#f0b84f 19%,var(--surface-2))!important}
@media(max-width:760px){.analysis-view-controls{justify-content:flex-start;width:100%}.analysis-sk-header{align-items:flex-start}.analysis-segmented{width:100%}.analysis-view-btn{flex:1;justify-content:center}}

/* ===== v1.2.3 analysis integrity / outcome highlighting / search close / Stage badge legibility ===== */
.global-search-close{width:30px;height:30px;flex:0 0 30px;border:0;border-radius:8px;background:transparent;color:var(--ui-muted,var(--muted));display:grid;place-items:center;cursor:pointer}.global-search-close:hover{background:var(--surface-2);color:var(--ui-text,var(--text))}.global-search-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.stage-letter-icon{position:relative;isolation:isolate;font-size:1.02rem!important;font-weight:700!important;letter-spacing:-.02em!important;color:#fff5ff!important;text-shadow:0 0 2px rgba(255,255,255,.95),0 0 6px rgba(247,118,255,.86)!important}.stage-letter-icon::before{content:"";position:absolute;inset:3px;border-radius:.29rem;background:radial-gradient(circle at 50% 50%,rgba(30,4,48,.82) 0 40%,rgba(91,13,124,.28) 70%,transparent 100%);z-index:-1;pointer-events:none}
.sd-grid tbody tr.analysis-next-result-row>td{background:color-mix(in srgb,#f0b84f 17%,var(--surface))!important}.sd-grid tbody tr.analysis-next-result-row>td:first-child{box-shadow:inset 4px 0 0 #f0b84f}.sd-grid tbody tr.analysis-next-result-row:hover>td{background:color-mix(in srgb,#f0b84f 23%,var(--surface-2))!important}

/* ===== v1.3.0 Draw Profiles ===== */
.analysis-profile-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:10px 0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--ui-muted,var(--muted));font-size:.84rem}.analysis-profile-meta b{color:var(--ui-text,var(--text))}.analysis-valid-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}

/* ===== v1.3.1 descriptive Draw Profiles ===== */
.analysis-profile-groups{display:flex;flex-wrap:wrap;gap:.55rem;margin:.8rem 0 .35rem}.analysis-profile-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .62rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-panel-alt);color:var(--ui-muted);font-size:.82em}.analysis-profile-chip b{color:var(--ui-text)}
.analysis-diagnostic-panel{margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius-lg,14px);background:var(--bg-panel-alt);overflow:hidden}.analysis-diagnostic-panel>summary{cursor:pointer;display:flex;align-items:center;gap:.55rem;padding:.8rem 1rem;color:var(--ui-text);font-weight:650;list-style:none}.analysis-diagnostic-panel>summary::-webkit-details-marker{display:none}.analysis-diagnostic-panel>summary small{margin-left:auto;color:var(--ui-muted);font-weight:400}.analysis-diagnostic-body{padding:0 1rem 1rem}.analysis-diagnostic-body>p{color:var(--ui-muted);margin:.15rem 0 .8rem}.analysis-diagnostic-controls{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:.65rem;align-items:center;margin-bottom:.75rem}@media(max-width:720px){.analysis-diagnostic-controls{grid-template-columns:1fr}.analysis-diagnostic-panel>summary small{display:none}}

/* v1.4.0 Position outcome summary */
.position-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--page-gap,14px);margin:14px 0 16px}.position-summary-grid article{min-width:0;border:1px solid var(--border);background:var(--bg-panel-alt,var(--surface-2));border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.position-summary-grid small{color:var(--ui-muted,var(--muted));font-size:.78em}.position-summary-grid strong{color:var(--ui-text,var(--text));font-size:.98em;overflow-wrap:anywhere}@media(max-width:1000px){.position-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.position-summary-grid{grid-template-columns:1fr}}

/* ===== v1.5.0 Position research workspace ===== */
.position-research-controls{display:flex;align-items:end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.position-research-controls label{display:flex;flex-direction:column;gap:5px;min-width:150px;color:var(--ui-muted,var(--muted));font-size:.76rem;font-weight:700}.position-research-controls .btn{height:var(--control-h)}
.position-chart-shell{height:360px;min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--bg-panel-alt,var(--surface-2));padding:14px;margin-top:12px}.position-chart-shell canvas{width:100%!important;height:100%!important}
.position-dist-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--page-gap,16px)}.position-dist-grid>div{min-width:0}.position-dist-grid h3{font-size:.9rem;margin:0 0 8px;color:var(--ui-text,var(--text))}
.position-heatmap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:8px;scrollbar-width:none;-ms-overflow-style:none}.position-heatmap::-webkit-scrollbar{display:none}.position-heatmap-head,.position-heatmap-row{display:grid;grid-template-columns:72px repeat(45,18px);gap:2px;align-items:center;min-width:max-content}.position-heatmap-head{position:sticky;top:0;z-index:2;background:var(--surface);padding-bottom:5px}.position-heatmap-head span,.position-heatmap-head b{font-size:.58rem;color:var(--ui-muted,var(--muted));text-align:center;font-weight:750}.position-heatmap-row{padding:2px 0;border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.position-heatmap-row>span{font-size:.62rem;color:var(--ui-muted,var(--muted));font-variant-numeric:tabular-nums}.position-heatmap-row>i{display:block;width:16px;height:16px;border-radius:4px;background:color-mix(in srgb,var(--surface-3) 72%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent)}.position-heatmap-row>i.hit{background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 42%,transparent),inset 0 0 0 1px color-mix(in srgb,#fff 35%,transparent)}
@media(max-width:900px){.position-research-controls{justify-content:flex-start}.position-dist-grid{grid-template-columns:1fr}.position-chart-shell{height:300px}}

/* ===== v1.5.1 Position structure research ===== */
.position-view-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0 2px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-panel-alt,var(--surface-2));font-size:.78rem;color:var(--ui-muted,var(--muted))}.position-view-controls>span{font-weight:800;color:var(--ui-text,var(--text))}.position-view-controls label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.position-view-controls input{margin:0}
.position-chart-shell.compact{height:300px;margin-top:0}.position-chart-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:14px;align-items:start}.position-window-panel{min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--bg-panel-alt,var(--surface-2));padding:14px}.panel-subhead h3,.position-chart-grid h3{font-size:.95rem;margin:0 0 4px;color:var(--ui-text,var(--text))}.panel-subhead p{font-size:.76rem;color:var(--ui-muted,var(--muted));margin:0 0 10px}
.position-ordered-heatmap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px;scrollbar-width:none}.position-ordered-heatmap::-webkit-scrollbar{display:none}.position-ordered-head,.position-ordered-row{display:grid;grid-template-columns:42px repeat(45,22px);gap:2px;align-items:center;min-width:max-content}.position-ordered-head{position:sticky;top:0;z-index:2;background:var(--surface);padding-bottom:5px}.position-ordered-head b{font-size:.56rem;color:var(--ui-muted,var(--muted));text-align:center}.position-ordered-row{padding:3px 0;border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.position-ordered-row strong{font-size:.68rem;color:var(--ui-text,var(--text));text-align:center}.position-ordered-row i{width:20px;height:20px;border-radius:4px;background:var(--accent);opacity:max(.12,var(--heat));display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 50%,transparent);font-style:normal}.position-ordered-row i span{font-size:.47rem;color:var(--surface);font-weight:800}
.family-boundary-controls{display:flex;align-items:end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.family-boundary-controls label{display:flex;flex-direction:column;gap:4px;min-width:72px;font-size:.7rem;font-weight:750;color:var(--ui-muted,var(--muted))}.family-boundary-controls input{width:76px}.family-boundary-controls .btn{height:var(--control-h)}
@media(max-width:1100px){.position-chart-grid{grid-template-columns:1fr}.family-boundary-controls{justify-content:flex-start}.position-chart-shell.compact{height:280px}}

/* ===== The Cave V2 shell additions ===== */
html[data-theme="stage"]{--bg:#060812;--surface:#0b0f1d;--surface-2:#111628;--surface-3:#171d31;--text:#eeecff;--muted:#9aa2b9;--border:rgba(255,255,255,.11);--border-strong:rgba(195,92,255,.30);--accent:#c35cff;--accent-strong:#d993ff;--accent-soft:rgba(195,92,255,.14);--success:#58f592;--warning:#ffe86c;--danger:#ff617f;--info:#4fbaff;--header-bg:rgba(6,8,18,.92);--sidebar-bg:#080b15;--input-bg:#0d1120;--shadow-soft:0 18px 42px rgba(0,0,0,.30)}
html[data-theme="blackout"]{--bg:#000;--surface:#090909;--surface-2:#111;--surface-3:#181818;--text:#f4f4f4;--muted:#9a9a9a;--border:#232323;--border-strong:#333;--accent:#8fb8a8;--accent-strong:#b5d2c7;--accent-soft:rgba(143,184,168,.13);--success:#71c69f;--warning:#d8ad66;--danger:#e27680;--info:#79acd0;--header-bg:rgba(0,0,0,.94);--sidebar-bg:#050505;--input-bg:#0b0b0b}
html[data-theme="graphite"]{--bg:#151618;--surface:#1c1e21;--surface-2:#24272b;--surface-3:#2d3136;--text:#eceff1;--muted:#a0a6ad;--border:#353a40;--border-strong:#4a5159;--accent:#8aa4b5;--accent-strong:#b1c2cc;--accent-soft:rgba(138,164,181,.14);--success:#75b99b;--warning:#d2a866;--danger:#d7757e;--info:#78a9c4;--header-bg:rgba(21,22,24,.93);--sidebar-bg:#181a1d;--input-bg:#1a1c1f}
html[data-theme="dusk"]{--bg:#171821;--surface:#20212c;--surface-2:#292b38;--surface-3:#333646;--text:#eeeef5;--muted:#aaa9bd;--border:#3c3d4e;--border-strong:#51536a;--accent:#8f86bc;--accent-strong:#b7b0d5;--accent-soft:rgba(143,134,188,.15);--success:#77b99c;--warning:#d0aa6d;--danger:#d97d89;--info:#7fa7ca;--header-bg:rgba(23,24,33,.93);--sidebar-bg:#1a1b25;--input-bg:#1d1e28}
html[data-theme="jade"]{--bg:#18201d;--surface:#202a26;--surface-2:#293630;--surface-3:#34443c;--text:#edf2ef;--muted:#a4b2aa;--border:#3b4b43;--border-strong:#52665c;--accent:#7ea690;--accent-strong:#abc3b5;--accent-soft:rgba(126,166,144,.15);--success:#79bb96;--warning:#cfaa6c;--danger:#d77b82;--info:#7daab5;--header-bg:rgba(24,32,29,.93);--sidebar-bg:#1b2420;--input-bg:#1e2723}
html[data-theme="pebble"]{--bg:#c9d0ca;--surface:#dfe3df;--surface-2:#d4dad5;--surface-3:#bac8b1;--text:#263129;--muted:#59665d;--border:#aeb9b0;--border-strong:#87988b;--accent:#6c8b80;--accent-strong:#405e4b;--accent-soft:rgba(108,139,128,.18);--success:#4f7e61;--warning:#916f35;--danger:#9b5157;--info:#557987;--header-bg:rgba(223,227,223,.94);--sidebar-bg:#b8c4b9;--input-bg:#e7eae7;--shadow-soft:0 18px 42px rgba(47,61,51,.14)}
html[data-theme="sandstone"]{--bg:#d4c8bd;--surface:#e6ddd4;--surface-2:#d8ccc1;--surface-3:#c4ae99;--text:#3d3027;--muted:#746356;--border:#c2b2a4;--border-strong:#9b826d;--accent:#997e67;--accent-strong:#664930;--accent-soft:rgba(153,126,103,.17);--success:#61785f;--warning:#a27132;--danger:#9a554c;--info:#5d7581;--header-bg:rgba(230,221,212,.94);--sidebar-bg:#cbbbac;--input-bg:#eee7e0;--shadow-soft:0 18px 42px rgba(78,58,43,.13)}
html[data-theme="cloud"]{--bg:#e3e5e8;--surface:#f0f1f3;--surface-2:#e8eaed;--surface-3:#d7dbe0;--text:#2f343a;--muted:#6c747d;--border:#c8cdd3;--border-strong:#aab2bb;--accent:#718495;--accent-strong:#526575;--accent-soft:rgba(113,132,149,.14);--success:#4f7f68;--warning:#97703c;--danger:#9c5b64;--info:#5d7f94;--header-bg:rgba(240,241,243,.95);--sidebar-bg:#dadee2;--input-bg:#f5f6f7;--shadow-soft:0 18px 42px rgba(48,57,66,.11)}
html[data-density="micro"] { --control-h:28px;--cell-y:4px;--page-gap:10px;--panel-pad:12px;}
html[data-density="ultra-compact"] { --control-h:30px;--cell-y:5px;--page-gap:12px;--panel-pad:14px;}
html[data-density="spacious"] { --control-h:48px;--cell-y:17px;--page-gap:30px;--panel-pad:28px;}
html[data-density="relaxed"] { --control-h:52px;--cell-y:20px;--page-gap:34px;--panel-pad:32px;}
html[data-font-size="xs"] body{font-size:12px} html[data-font-size="small"] body{font-size:14px} html[data-font-size="standard"] body{font-size:16px} html[data-font-size="large"] body{font-size:18px} html[data-font-size="xl"] body{font-size:20px}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:99999;background:rgba(var(--brightness-overlay-color,255,255,255),var(--brightness-overlay-opacity,0));}
.brand-mark.cave-mark{font-family:Georgia,serif;font-size:1rem;letter-spacing:-.06em}.branch-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);height:var(--control-h);border-radius:10px;padding:0 10px}.branch-chip select{border:0;background:transparent;color:inherit;outline:0;max-width:150px}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);background:var(--bg)}.login-visual{padding:clamp(34px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent 60%),var(--sidebar-bg);border-right:1px solid var(--border)}.login-visual-copy{max-width:620px}.login-visual h1{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:-.06em;margin:.2em 0}.login-visual p{font-size:1.08rem;color:var(--muted);max-width:600px}.login-panel{display:grid;place-items:center;padding:28px}.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:30px;box-shadow:var(--shadow-soft)}.login-card h2{margin:16px 0 4px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card label{display:block;font-size:.78rem;font-weight:750;margin-bottom:6px}.login-card input{width:100%;height:44px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text);padding:0 12px;margin-bottom:15px;outline:none}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-card .login-submit{width:100%;height:44px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-weight:800}.login-error{color:var(--danger);min-height:22px;font-size:.82rem}.login-demo{margin-top:16px;padding:12px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.8rem}.foundation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px}.foundation-pill{border:1px solid var(--border);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--surface) 65%,transparent)}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}}

/* ===== Phase 1 management pages ===== */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:.76rem;font-weight:750;color:var(--muted)}.form-grid .span-2{grid-column:1/-1}.form-control,.form-select{min-height:var(--control-h);border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--text);padding:7px 10px;box-shadow:none}.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--input-bg);color:var(--text)}.form-select option{background:var(--surface);color:var(--text)}
.panel-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.check-row{display:flex;gap:20px;align-items:center;margin-top:14px;color:var(--text)}.check-row label{display:flex;align-items:center;gap:7px}.content-grid-wide{grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr)}
.app-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}.app-table th{padding:9px 11px;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap}.app-table td{padding:10px 11px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);vertical-align:middle}.app-table td strong,.app-table td small{display:block}.app-table td small{color:var(--muted);margin-top:3px}.app-table tbody tr:hover{background:var(--accent-soft)}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.67rem;font-weight:800;border:1px solid var(--border)}.status-badge.success{color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent);border-color:color-mix(in srgb,var(--success) 30%,var(--border))}.status-badge.danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}.status-badge.muted{color:var(--muted);background:var(--surface-2)}
.hours-grid{display:grid;grid-template-columns:120px repeat(4,minmax(90px,1fr));gap:8px;align-items:center}.hours-head{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.hours-grid>strong{font-size:.78rem}.profile-list{display:flex;flex-direction:column;gap:7px;max-height:480px;overflow:auto}.profile-card{display:flex;flex-direction:column;gap:3px;text-decoration:none;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:10px 12px;transition:var(--transition)}.profile-card span{font-size:.68rem;color:var(--muted)}.profile-card:hover,.profile-card.active{border-color:var(--accent);background:var(--accent-soft)}
.permission-grid{display:grid;grid-template-columns:minmax(240px,1fr) 118px 150px;gap:7px;align-items:center}.permission-head{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800;padding-bottom:5px}.permission-grid>div:not(.permission-head){min-width:0;padding:5px 0}.permission-grid strong,.permission-grid small{display:block}.permission-grid strong{font-size:.76rem}.permission-grid small{font-size:.65rem;color:var(--muted);margin-top:2px}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.tag-list{display:flex;flex-wrap:wrap;gap:7px}.tag{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 7px 5px 10px;font-size:.68rem}.tag b{color:var(--text)}.tag form{display:inline}.tag button{border:0;background:transparent;color:var(--muted);padding:0 3px;font-size:1rem;line-height:1}.effective-list{display:flex;flex-direction:column;gap:5px;max-height:360px;overflow:auto}.effective-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto 150px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.effective-list small{color:var(--muted);text-align:right}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filter-bar .form-control,.filter-bar .form-select{width:auto;min-width:150px}.audit-json{min-width:360px;max-width:650px;padding:10px;margin-top:7px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.audit-json pre{max-height:180px;overflow:auto;font-size:.68rem;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:8px;padding:8px}.audit-json small{color:var(--muted)}.nav-item.disabled{opacity:.43;pointer-events:none}.btn-sm{min-height:28px!important;padding:3px 8px!important;font-size:.7rem!important}
@media(max-width:1050px){.content-grid-wide{grid-template-columns:1fr}.permission-grid{grid-template-columns:minmax(180px,1fr) 110px 135px}}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.hours-grid{grid-template-columns:90px repeat(4,100px);overflow:auto}.permission-grid{grid-template-columns:1fr 105px}.permission-grid .permission-head:nth-child(3),.permission-grid select:nth-of-type(even){display:none}.inline-form{grid-template-columns:1fr}.effective-list>div{grid-template-columns:1fr auto}.effective-list small{grid-column:1/-1;text-align:left}.audit-json{min-width:260px}.filter-bar>*{width:100%!important}}

/* ===== v1.3 management UX refinement ===== */
.page-shell,.panel,.modal-content{min-width:0}
.calendar-summary-grid{grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);align-items:start}
.schedule-list{display:grid;gap:2px}.schedule-row{display:grid;grid-template-columns:minmax(90px,120px) minmax(170px,1fr) minmax(150px,.8fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}.schedule-row:last-child{border-bottom:0}.schedule-row strong{font-size:.8rem}.schedule-row span{font-weight:700}.schedule-row small{color:var(--muted)}
.hours-grid-modal{grid-template-columns:minmax(105px,125px) repeat(4,minmax(130px,1fr));overflow-x:auto;padding-bottom:4px}.hours-grid-modal>*{min-width:0}
.branch-chip-button{max-width:230px;min-width:165px;justify-content:flex-start}.branch-chip-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}.branch-chevron{font-size:.65rem;color:var(--muted)}.branch-menu{min-width:270px;padding:6px}.branch-menu-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:8px;padding:9px 10px}.branch-menu-item>span{display:flex;flex-direction:column}.branch-menu-item strong{font-size:.79rem}.branch-menu-item small{font-size:.67rem;color:var(--muted)}.branch-menu-item.active,.branch-menu-item.active:hover{background:var(--accent-soft);color:var(--accent-strong)}
.themed-select{background-color:var(--input-bg)!important;color:var(--text)!important;border-color:var(--border)!important}.themed-select option{background:var(--surface);color:var(--text)}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:11px;overflow:hidden}.detail-grid>div{display:flex;flex-direction:column;gap:5px;background:var(--surface);padding:17px}.detail-grid span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.detail-grid strong{font-size:.9rem;overflow-wrap:anywhere}
.single-column{grid-template-columns:1fr!important}.empty-cell{text-align:center!important;color:var(--muted)!important;padding:26px!important}.text-muted-custom{display:block;color:var(--muted);margin-top:4px}
.security-profile-toolbar,.user-selector-row{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:22px;align-items:end}.security-profile-toolbar label,.user-selector-row label{display:grid;gap:6px}.security-profile-toolbar label>span,.user-selector-row label>span{font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.profile-summary,.selected-user-summary{display:flex;flex-direction:column;gap:3px}.profile-summary span,.selected-user-summary span{color:var(--muted);font-size:.77rem}
.permission-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}.permission-table-head,.permission-row{display:grid;grid-template-columns:minmax(250px,1fr) minmax(150px,190px) minmax(180px,220px);gap:10px;align-items:center;padding:9px 11px}.permission-table-head{background:var(--surface-2);color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.permission-row{border-top:1px solid var(--border)}.permission-row>div{min-width:0}.permission-row strong,.permission-row small{display:block}.permission-row strong{font-size:.79rem}.permission-row small{font-size:.67rem;color:var(--muted);margin-top:2px}
.stacked-panels{display:grid;gap:var(--page-gap)}.effective-access-grid{display:grid;gap:0}.effective-access-row{display:grid;grid-template-columns:minmax(240px,1fr) 100px minmax(150px,210px) 150px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}.effective-access-row:last-child{border-bottom:0}.effective-access-row>div strong,.effective-access-row>div small{display:block}.effective-access-row>div small,.effective-access-row>small{color:var(--muted);font-size:.66rem}
.audit-change-list{display:grid;gap:8px}.audit-change-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(180px,1fr) 24px minmax(180px,1fr);gap:12px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:11px;background:var(--surface-2)}.audit-change-row>div{display:flex;flex-direction:column;gap:3px}.audit-change-row span{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}.audit-change-row b{font-size:.78rem;overflow-wrap:anywhere}.audit-change-row>i{color:var(--accent-strong);text-align:center}.technical-details{border-top:1px solid var(--border);padding-top:14px}.technical-details summary{cursor:pointer;color:var(--muted);font-weight:700}.audit-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.audit-json-grid pre{max-height:310px;overflow:auto;font-size:.68rem;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:8px;padding:10px;white-space:pre-wrap;overflow-wrap:anywhere}
.btn-danger-app{background:color-mix(in srgb,var(--danger) 88%,black 12%);border-color:var(--danger);color:#fff}.btn-danger-app:hover{background:var(--danger);color:#fff}.modal-header .eyebrow{margin-bottom:4px}.modal-footer{border-color:var(--border)}
@media(max-width:1100px){.calendar-summary-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.effective-access-row{grid-template-columns:minmax(200px,1fr) 95px minmax(140px,1fr)}.effective-access-row>small{grid-column:1/-1}}
@media(max-width:780px){.detail-grid{grid-template-columns:1fr}.security-profile-toolbar,.user-selector-row{grid-template-columns:1fr}.permission-table{overflow-x:auto}.permission-table-head,.permission-row{min-width:720px}.audit-change-row{grid-template-columns:1fr}.audit-change-row>i{transform:rotate(90deg)}.audit-json-grid{grid-template-columns:1fr}.hours-grid-modal{min-width:760px}.effective-access-row{grid-template-columns:1fr auto}.effective-access-row>span:nth-of-type(2),.effective-access-row>small{grid-column:1/-1}}


/* Universal themed form controls */
select.form-select, select.app-input, select.themed-select {
  appearance:none; -webkit-appearance:none; color:var(--text)!important; background-color:var(--input-bg)!important;
  border:1px solid var(--border)!important; border-radius:9px; min-height:var(--control-h);
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%)!important;
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important;padding-right:34px!important;
}
select.form-select:focus, select.app-input:focus, select.themed-select:focus { border-color:var(--accent)!important;box-shadow:0 0 0 .2rem var(--accent-soft)!important;outline:0; }
select.form-select option, select.app-input option, select.themed-select option { background:var(--surface);color:var(--text); }
html[data-theme="stage"],html[data-theme="blackout"],html[data-theme="midnight"],html[data-theme="slate"],html[data-theme="graphite"],html[data-theme="dusk"],html[data-theme="jade"] { color-scheme:dark; }
html[data-theme="pebble"],html[data-theme="sandstone"],html[data-theme="cloud"],html[data-theme="light"] { color-scheme:light; }
.field-error{margin-top:5px;color:var(--danger);font-size:.72rem}.is-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 .15rem color-mix(in srgb,var(--danger) 15%,transparent)!important}
.phone-input-group{display:grid;grid-template-columns:minmax(105px,150px) minmax(0,1fr);gap:8px}.field-help{color:var(--muted);font-size:.69rem;margin-top:5px}

/* Reusable optional table toolbar */
.app-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.app-table-search{display:flex;align-items:center;gap:8px;min-height:34px;border:1px solid var(--border);background:var(--input-bg);border-radius:9px;padding:0 10px;min-width:min(280px,100%);color:var(--muted)}.app-table-search input{border:0;outline:0;background:transparent;color:var(--text);width:100%}.app-table-tools{display:flex;align-items:center;gap:6px}.app-table-tools .btn span{margin-left:6px}.app-table-filter-row{flex:0 0 100%;display:flex;align-items:end;gap:8px;padding:9px;border:1px solid var(--border);background:var(--surface-2);border-radius:9px}.app-table-filter-row[hidden]{display:none}.app-table-filter-row label{display:flex;flex-direction:column;gap:4px;font-size:.68rem;color:var(--muted);font-weight:700}.app-table-filter-row .form-select,.app-table-filter-row .form-control{min-height:34px}.app-sortable{cursor:pointer;user-select:none}.app-sortable:hover{color:var(--accent-strong)}.app-sortable[data-sort-dir="asc"]::after{content:' ↑';color:var(--accent)}.app-sortable[data-sort-dir="desc"]::after{content:' ↓';color:var(--accent)}

/* Employee management */
.employee-name{display:flex;align-items:center;gap:10px}.employee-avatar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.employee-name div{display:flex;flex-direction:column}.employee-name small{color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:5px}.mini-tag{padding:3px 7px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:.68rem;color:var(--muted)}
@media(max-width:720px){.app-table-filter-row{align-items:stretch;flex-direction:column}.app-table-filter-row label{width:100%}.phone-input-group{grid-template-columns:110px minmax(0,1fr)}}

/* v0.5 reusable custom controls, modal safety and compact table tools */
.app-select{position:relative;min-width:0;width:100%}.app-select-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.app-select-button{width:100%;min-height:var(--control-h);display:flex;align-items:center;justify-content:space-between;gap:9px;padding:0 11px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--text);text-align:left;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.app-select-button:hover,.app-select.open .app-select-button{border-color:var(--border-strong);background:var(--surface-2)}.app-select.open .app-select-button{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.app-select-button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select-button>i{font-size:.72rem;color:var(--muted);transition:transform var(--transition)}.app-select.open .app-select-button>i{transform:rotate(180deg)}.app-select-menu{display:none;overflow:auto;padding:6px;z-index:2200;border-radius:11px}.app-select.open .app-select-menu{display:block}.app-select-option{width:100%;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:7px 9px;text-align:left}.app-select-option:hover,.app-select-option:focus{background:var(--surface-2);outline:none}.app-select-option.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.app-select-option:disabled{opacity:.45}.app-select-option i{font-size:.75rem}
.app-time-field{position:relative}.app-time-input{padding-right:34px}.app-time-icon{position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.modal{padding:8px!important}.modal-dialog{max-height:calc(100dvh - 16px);margin:0 auto!important;display:flex;align-items:center;min-height:calc(100dvh - 16px)}.modal-content{max-height:calc(100dvh - 16px);overflow:hidden}.modal-body{overflow-y:auto;overscroll-behavior:contain}.modal-header,.modal-footer{flex:0 0 auto}.modal-xl{--bs-modal-width:min(1180px,calc(100vw - 24px))}.modal-lg{--bs-modal-width:min(850px,calc(100vw - 24px))}
.sd-table-tools .btn{min-height:30px!important;height:30px;padding:0 9px!important;border-radius:8px!important;font-size:.72rem!important;gap:4px!important}.sd-table-tools .btn i{font-size:.72rem}.sd-table-toolbar{margin-bottom:8px}.sd-table-tools{gap:5px}.sd-search-panes{margin-top:4px}
.employee-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--page-gap);align-items:start}.employee-profile-grid .panel{height:100%}.employee-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.employee-meta div{display:flex;flex-direction:column;gap:2px}.employee-meta small{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.employee-meta strong{font-size:.84rem}.section-actions{display:flex;gap:6px;flex-wrap:wrap}.linked-account{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.linked-account-copy{display:flex;flex-direction:column;gap:2px}.linked-account-copy small{color:var(--muted)}.profile-list{display:flex;flex-direction:column;gap:7px}.profile-list-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:9px}.profile-list-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.profile-list-row strong{line-height:1.25}.profile-list-row small{display:block;color:var(--muted);line-height:1.35}.form-section{padding:12px 0;border-top:1px solid var(--border)}.form-section:first-child{border-top:0;padding-top:0}.form-section h3{font-size:.86rem;margin:0 0 8px}.switch-row{display:flex;align-items:center;gap:9px}.switch-row input{width:17px;height:17px}
@media(max-width:850px){.employee-profile-grid{grid-template-columns:1fr}.employee-meta{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.employee-meta{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr!important}.span-2{grid-column:auto!important}.modal{padding:4px!important}.modal-dialog,.modal-content{max-height:calc(100dvh - 8px);min-height:0}}
.app-table-tools{gap:5px}.app-table-tools .btn{min-height:30px!important;height:30px;padding:0 9px!important;border-radius:8px!important;font-size:.72rem!important;display:inline-flex;align-items:center;gap:4px}.app-table-tools .btn span{margin-left:0!important}.app-table-tools .btn i{font-size:.72rem}.app-table-toolbar{margin-bottom:8px}.app-table-filter-row .app-select{min-width:190px}

/* v0.5.1 control polish: reliable select portal, scrollable modal forms, compact table toolbar */
.app-select-menu-portal{
  display:block!important;
  overflow-y:auto;
  overscroll-behavior:contain;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--shadow-soft);
}

/* Long modal forms must participate in the modal flex height calculation. */
.modal-dialog{min-height:0!important;}
.modal-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  max-height:calc(100dvh - 16px)!important;
}
.modal-content>form{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 16px)!important;
  overflow:hidden!important;
}
.modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.modal-header,.modal-footer{flex:0 0 auto!important;}
.modal-footer{background:var(--surface);position:relative;z-index:2;}

/* The table actions are toolbar controls, intentionally smaller than form actions. */
.app-table-tools{
  gap:4px!important;
}
.app-table-tools>.btn,
.app-table-tools>.dropdown>.btn,
.sd-table-tools>.btn,
.sd-table-tools>.dropdown>.btn{
  height:27px!important;
  min-height:27px!important;
  padding:0 8px!important;
  border-radius:7px!important;
  font-size:.665rem!important;
  line-height:1!important;
  font-weight:650!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  white-space:nowrap;
}
.app-table-tools .btn i,.sd-table-tools .btn i{
  font-size:.64rem!important;
  width:auto!important;
  margin:0!important;
}
.app-table-tools .btn span,.sd-table-tools .btn span{
  margin:0!important;
  line-height:1!important;
}
.app-table-toolbar,.sd-table-toolbar{margin-bottom:7px!important;}

@media(max-width:560px){
  .modal{overflow:hidden!important;}
  .modal-dialog,.modal-content,.modal-content>form{max-height:calc(100dvh - 8px)!important;}
  .modal-footer{padding-top:8px;padding-bottom:8px;}
}

/* Phase 2.1 - system catalogue settings and generic row actions */
.settings-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.settings-tabs button{border:0;background:transparent;color:var(--muted);border-radius:9px;padding:7px 11px;font-size:.76rem;font-weight:750;line-height:1.1}
.settings-tabs button:hover{background:var(--accent-soft);color:var(--text)}
.settings-tabs button.active{background:var(--surface);color:var(--accent-strong);box-shadow:0 1px 3px color-mix(in srgb,var(--text) 10%,transparent)}
.settings-pane{display:none}.settings-pane.active{display:block}
.app-row-actions{display:inline-block}.app-row-actions .dropdown-menu{min-width:205px;padding:5px}
.app-row-actions .dropdown-item{display:flex;align-items:center;gap:8px;border-radius:7px;padding:8px 10px;font-size:.77rem}
.app-row-actions .dropdown-divider{border-color:var(--border);margin:5px 3px}
.callout.compact{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.callout.compact>i{margin-top:2px;color:var(--accent-strong)}.callout.compact div{display:grid;gap:2px}.callout.compact span{font-size:.72rem;color:var(--muted)}
.app-table code{font-size:.72rem;color:var(--accent-strong);background:var(--accent-soft);border-radius:5px;padding:2px 5px}

/* Profile & scalable directory refinements */
.directory-row-selected{background:var(--accent-soft)!important}.profile-security-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:var(--page-gap);align-items:start}.profile-summary-card{display:grid;grid-template-columns:84px 1fr;gap:18px;align-items:center}.profile-avatar-large{width:76px;height:76px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-size:1.6rem;font-weight:850;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border))}.password-requirements{display:grid;gap:5px;padding:11px 12px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;color:var(--muted);font-size:.72rem}.audit-back{display:inline-flex;align-items:center;gap:7px}.app-table .row-action-cell{width:44px;text-align:right}.settings-tabs button{white-space:nowrap}
@media(max-width:900px){.profile-security-grid{grid-template-columns:1fr}.profile-summary-card{grid-template-columns:64px 1fr}.profile-avatar-large{width:58px;height:58px;border-radius:14px}}


/* ===== Phase 2.5 infrastructure: overlays, table chrome, i18n/RTL ===== */
.app-floating-menu{display:block!important;box-shadow:var(--shadow-soft);border:1px solid var(--border);border-radius:11px;background:var(--surface);padding:6px;isolation:isolate;}
.row-action-menu{min-width:190px}.row-action-menu .dropdown-item{border-radius:7px;padding:8px 10px;display:flex;align-items:center;white-space:nowrap}.row-action-menu .dropdown-item:hover{background:var(--surface-2);color:var(--text)}
.app-table-shell{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:visible}.app-table-shell>.table-responsive{border-inline:0}.app-table-controlbar{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface-2);border-color:var(--border)}.app-table-controlbar-top{border-bottom:1px solid var(--border);border-radius:13px 13px 0 0;flex-wrap:wrap}.app-table-controlbar-bottom{border-top:1px solid var(--border);border-radius:0 0 13px 13px;justify-content:space-between;min-height:48px}.app-table-search{display:flex;align-items:center;gap:8px;min-width:min(320px,100%);height:34px;padding:0 10px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg)}.app-table-search input{border:0;outline:0;background:transparent;color:var(--text);width:100%;min-width:0}.app-table-tools{margin-inline-start:auto;display:flex;gap:6px}.table-tool-btn{height:32px;min-height:32px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:0 10px;display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:700}.table-tool-btn:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent-strong)}.table-tool-btn i{font-size:.76rem;margin:0!important}.app-table-filter-row{width:100%;display:flex;gap:8px;align-items:end;padding-top:4px}.app-table-filter-row[hidden]{display:none!important}.app-table-filter-row label,.app-table-bottom-actions label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.72rem;font-weight:700}.app-table-filter-row label{flex:1;min-width:180px}.app-table-filter-row .app-select,.app-table-filter-row .form-control{min-width:0}.app-table-count{font-size:.75rem;color:var(--muted)}.app-table-bottom-actions{display:flex;align-items:center;gap:14px}.app-table-bottom-actions .app-select{width:78px}.app-pagination{display:flex;align-items:center;gap:3px;direction:ltr}.page-pill{min-width:30px;height:30px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.75rem;font-weight:750}.page-pill:hover:not(:disabled){background:var(--surface);color:var(--text)}.page-pill.active{background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}.page-pill:disabled{opacity:.35}.page-ellipsis{color:var(--muted);padding:0 3px}.app-table-shell table{margin-bottom:0}.app-table-shell .table-responsive{overflow:auto;border-radius:0}
/* Header is fully opaque on handheld screens so content never shows through it. */
@media(max-width:991.98px){.app-header{position:fixed!important;top:0!important;left:0!important;right:0!important;background:var(--surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;z-index:1800!important;padding-top:env(safe-area-inset-top);height:calc(var(--header-h) + env(safe-area-inset-top))}.app-sidebar{top:calc(var(--header-h) + env(safe-area-inset-top))}.app-main{padding-top:calc(var(--header-h) + env(safe-area-inset-top))}.language-switcher{display:block!important}}
/* Sidebar placement supports language default and explicit per-user override. */
html[data-sidebar-side="right"] .app-sidebar{left:auto;right:0;border-right:0;border-left:1px solid var(--border)}html[data-sidebar-side="right"] .app-main{margin-left:0;margin-right:var(--sidebar-w)}html[data-sidebar-side="right"] body.sidebar-docked .app-main{margin-right:var(--sidebar-collapsed-w)}html[data-sidebar-side="right"] .sidebar-dock-tooltip{transform-origin:right center}
html[data-sidebar-side="left"] .app-sidebar{left:0;right:auto}html[data-sidebar-side="left"] .app-main{margin-right:0;margin-left:var(--sidebar-w)}html[data-sidebar-side="left"] body.sidebar-docked .app-main{margin-left:var(--sidebar-collapsed-w)}
[dir="rtl"] .command-search span{text-align:right}[dir="rtl"] .nav-chevron{transform-origin:center}[dir="rtl"] .nav-group.collapsed .nav-chevron{transform:rotate(90deg)}[dir="rtl"] .nav-group-items{padding-left:0;padding-right:10px}[dir="rtl"] .app-table-search input{text-align:right}[dir="rtl"] .dropdown-item{text-align:right}
@media(max-width:991.98px){html[data-sidebar-side="right"] .app-sidebar{transform:translateX(105%)}html[data-sidebar-side="right"] body.sidebar-mobile-open .app-sidebar{transform:translateX(0)}html[data-sidebar-side="left"] .app-sidebar{transform:translateX(-105%)}html[data-sidebar-side="left"] body.sidebar-mobile-open .app-sidebar{transform:translateX(0)}html[data-sidebar-side] .app-main{margin-inline:0!important}}
@media(max-width:700px){.app-table-controlbar-bottom{align-items:flex-start;flex-direction:column}.app-table-bottom-actions{width:100%;justify-content:space-between}.app-table-search{min-width:100%}.app-table-tools{margin-inline-start:0}.app-table-filter-row{flex-direction:column;align-items:stretch}.app-table-filter-row label{width:100%}}

/* =====================================================================
   Infrastructure refinement 2026-08-14: language menu + Stage pagination
   ===================================================================== */
.language-switcher{position:relative}.language-button{width:auto;min-width:68px;padding-inline:14px;gap:8px}.language-button>span{font-weight:750;letter-spacing:.02em}.language-chevron{font-size:.68rem;color:var(--muted);transition:transform .16s ease}.language-menu{width:230px;min-width:230px;padding:7px;border-radius:12px}.language-menu form+form{margin-top:3px!important}.language-menu-item{width:100%;min-height:46px;border:0;border-radius:9px;background:transparent;color:var(--text);padding:8px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;text-align:start;font:inherit}.language-menu-item:hover,.language-menu-item:focus-visible{background:var(--surface-2);outline:0}.language-menu-item.active{background:var(--accent-soft);color:var(--accent-strong)}.language-name{font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.language-code{font-size:.68rem;font-weight:800;color:var(--muted);letter-spacing:.07em}.language-check{font-size:.82rem;color:var(--accent-strong)}[dir="rtl"] .language-menu-item{text-align:right}

.app-table-controlbar-bottom{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(240px,1fr);align-items:center;gap:14px;padding:8px 10px;min-height:54px}.app-table-page-size{justify-self:start}.app-table-page-size label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:.72rem;font-weight:700}.app-table-page-size .app-select,.app-table-page-size .form-select{width:78px}.app-table-count{justify-self:center;text-align:center;white-space:nowrap}.stage-pagination{justify-self:end;display:inline-flex;align-items:stretch;gap:0;direction:ltr;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.stage-page-btn,.stage-page-status{height:34px;min-width:38px;border:0;border-inline-end:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;line-height:1}.stage-page-btn{cursor:pointer;padding:0 10px}.stage-page-status{min-width:104px;padding:0 13px;color:var(--text);white-space:nowrap}.stage-page-btn:last-child{border-inline-end:0}.stage-page-btn:hover:not(:disabled){background:var(--surface-2);color:var(--accent-strong)}.stage-page-btn:disabled{color:var(--muted);opacity:.42;cursor:default}.stage-page-status{background:color-mix(in srgb,var(--surface-2) 62%,var(--surface))}
[dir="rtl"] .app-table-page-size{justify-self:end}[dir="rtl"] .stage-pagination{justify-self:start}
@media(max-width:760px){.app-table-controlbar-bottom{grid-template-columns:1fr auto;grid-template-areas:"rows pager" "count count";gap:7px 10px}.app-table-page-size{grid-area:rows}.app-table-count{grid-area:count;justify-self:center}.stage-pagination{grid-area:pager}.stage-page-status{min-width:92px;padding-inline:9px}}

/* ===== 2026-08-14 mobile shell + table containment refinement ===== */
html,body{max-width:100%;overflow-x:hidden}
.page-shell,.page-heading,.panel,.app-table-shell,.table-responsive,.settings-tabs{min-width:0;max-width:100%}
.table-responsive{width:100%;overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.settings-tabs{overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.settings-tabs::-webkit-scrollbar{display:none}
.language-button{width:52px!important;min-width:52px;padding:0 9px!important;font-weight:800;letter-spacing:.02em}
.language-menu{min-width:190px;padding:6px!important;border-radius:11px}
.language-menu form{margin:0!important}
.language-menu-item{width:100%;min-height:38px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:8px 10px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;text-align:start}
.language-menu-item:hover,.language-menu-item.active{background:var(--accent-soft);color:var(--accent-strong)}
.language-name{font-weight:700}.language-code{font-size:.68rem;color:var(--muted);font-weight:800;letter-spacing:.08em}.language-check{font-size:.76rem}

@media(min-width:992px){
  body.sidebar-docked .nav-group.collapsed .nav-group-items{display:block!important}
}

@media(max-width:991.98px){
  /* Sticky in document flow avoids content sliding underneath the app header on Safari. */
  .app-header{position:sticky!important;inset:auto!important;top:0!important;width:100%;height:var(--header-h)!important;min-height:var(--header-h);padding:0 10px!important;background:var(--surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;z-index:1800!important;box-shadow:0 1px 0 var(--border),0 8px 18px color-mix(in srgb,var(--bg) 84%,transparent)}
  .app-main{padding-top:0!important;margin-inline:0!important;width:100%;min-width:0}
  .page-shell{width:100%;padding:12px!important;overflow-x:hidden}
  .page-heading{gap:10px;flex-direction:column;margin-bottom:14px}
  .page-heading h1{font-size:1.55rem}
  .brand-copy{display:none!important}
  .header-center{display:none!important}
  .header-left{gap:8px}.header-actions{gap:7px}
  .app-header{grid-template-columns:auto 1fr;gap:8px}
  .header-actions{min-width:0}
  .language-button{width:46px!important;min-width:46px!important;height:42px!important;padding:0 6px!important;border-radius:10px!important}
  .user-chip{height:42px!important;padding:0 8px!important}.user-avatar{width:28px;height:28px}
  .icon-button{height:42px!important;width:42px!important}
  .brand-mark{width:42px;height:42px;border-radius:10px}

  /* The sidebar is a closed mobile drawer unless explicitly opened. */
  .app-sidebar,body.sidebar-docked .app-sidebar,body.sidebar-open .app-sidebar,body.sidebar-hidden .app-sidebar{top:var(--header-h)!important;width:min(300px,88vw)!important;visibility:hidden;pointer-events:none;opacity:0;transition:transform var(--transition),opacity var(--transition),visibility 0s linear var(--transition)}
  body.sidebar-mobile-open .app-sidebar{visibility:visible;pointer-events:auto;opacity:1;transition:transform var(--transition),opacity var(--transition)}
  .sidebar-backdrop{z-index:1750!important}
  body.sidebar-mobile-open .sidebar-backdrop{display:block!important;position:fixed;inset:var(--header-h) 0 0;background:rgba(0,0,0,.34)}
  body.sidebar-docked .nav-group.collapsed .nav-group-items{display:none!important}
  body.sidebar-docked .nav-group-toggle{min-height:38px!important;height:auto!important;padding:8px 11px!important;margin:0!important;pointer-events:auto!important;border-radius:10px!important}
  body.sidebar-docked .nav-group-toggle>span,body.sidebar-docked .nav-group-toggle>.nav-chevron{display:flex!important}
  body.sidebar-docked .nav-group-toggle::after{display:none!important}

  .panel{width:100%;padding:14px!important;overflow:visible}
  .panel-header{gap:10px;flex-wrap:wrap}
  .panel-header>div{min-width:0}
  .settings-tabs{margin-inline:0;width:100%;padding:4px;gap:3px}
  .settings-tabs button{flex:0 0 auto;padding:7px 10px}

  /* Keep wide tabular data inside its own horizontal scroller, never the page. */
  .app-table-shell{width:100%;max-width:100%;overflow:visible}
  .app-table-shell>.table-responsive,.panel>.table-responsive{display:block;width:100%;max-width:100%;overflow-x:auto!important}
  .app-table{width:max-content!important;min-width:100%;max-width:none}
  .app-table th,.app-table td{white-space:normal;min-width:96px}
  .app-table th:first-child,.app-table td:first-child{min-width:132px}
  .app-table th:last-child,.app-table td:last-child{min-width:48px;width:48px}
  .app-table-controlbar{max-width:100%}
  .app-table-controlbar-top{display:grid;grid-template-columns:1fr auto;gap:7px}
  .app-table-search{grid-column:1/-1;min-width:0!important;width:100%}
  .app-table-tools{margin-inline-start:0;justify-self:end}
  .app-table-filter-row{grid-column:1/-1}
}

@media(max-width:560px){
  .page-shell{padding:10px!important}
  .panel{padding:12px!important;border-radius:10px}
  .app-table-controlbar-bottom{grid-template-columns:1fr!important;grid-template-areas:"rows" "count" "pager"!important;justify-items:stretch;gap:7px;padding:8px!important}
  .app-table-page-size{grid-area:rows!important;justify-self:start!important}
  .app-table-count{grid-area:count!important;justify-self:start!important;text-align:start!important;white-space:normal!important}
  .stage-pagination{grid-area:pager!important;justify-self:start!important;max-width:100%;overflow:hidden}
  .stage-page-status{min-width:88px}
  .stage-page-btn{min-width:34px;padding:0 8px}
}


/* v0.13 RTL/mobile drawer correctness + bidi-safe untranslated fallback */
@media(max-width:991.98px){
  /* Header remains highest; drawer must be ABOVE its backdrop or it cannot receive taps. */
  .app-sidebar,body.sidebar-mobile-open .app-sidebar{z-index:1775!important}
  .sidebar-backdrop,body.sidebar-mobile-open .sidebar-backdrop{z-index:1760!important}
  .app-header{z-index:1800!important}
  body.sidebar-mobile-open .app-sidebar a,
  body.sidebar-mobile-open .app-sidebar button,
  body.sidebar-mobile-open .app-sidebar input{pointer-events:auto!important}
}
/* Desktop hiding must exit toward the physical side chosen by the user. */
html[data-sidebar-side="right"] body.sidebar-hidden .app-sidebar{transform:translateX(105%)!important}
html[data-sidebar-side="left"] body.sidebar-hidden .app-sidebar{transform:translateX(-105%)!important}
/* A docked group is genuinely collapsed; do not leak child icons/items into docked navigation. */
@media(min-width:992px){body.sidebar-docked .nav-group.collapsed .nav-group-items{display:none!important}}
/* RTL controls component placement, while English fallback text keeps natural glyph order. */
html[dir="rtl"] .app-main p,html[dir="rtl"] .app-main h1,html[dir="rtl"] .app-main h2,html[dir="rtl"] .app-main h3,
html[dir="rtl"] .app-main td,html[dir="rtl"] .app-main th,html[dir="rtl"] .app-main label,
html[dir="rtl"] .app-main .panel-header,html[dir="rtl"] .app-main .page-heading{unicode-bidi:plaintext}
html[dir="rtl"] code,html[dir="rtl"] .internal-code,html[dir="rtl"] [data-ltr]{direction:ltr;unicode-bidi:isolate;text-align:left}
/* Logical alignment: translated Arabic aligns to the inline start; LTR codes remain isolated. */
html[dir="rtl"] .app-table th,html[dir="rtl"] .app-table td{text-align:start}

/* ===== v0.14 directional shell contract =====
   Sidebar position and language direction are related but independent.
   These rules own desktop geometry for Left/Right x Open/Docked/Hidden. */
@media(min-width:992px){
  .app-sidebar{top:var(--header-h);bottom:0;transform:none;opacity:1;visibility:visible;pointer-events:auto;}

  html[data-sidebar-side="left"] .app-sidebar{left:0!important;right:auto!important;border-right:1px solid var(--border)!important;border-left:0!important;}
  html[data-sidebar-side="right"] .app-sidebar{right:0!important;left:auto!important;border-left:1px solid var(--border)!important;border-right:0!important;}

  body.sidebar-open .app-sidebar{width:var(--sidebar-w)!important;}
  body.sidebar-docked .app-sidebar{width:var(--sidebar-collapsed-w)!important;}
  body.sidebar-hidden .app-sidebar{width:var(--sidebar-w)!important;pointer-events:none;}

  html[data-sidebar-side="left"] body.sidebar-open .app-main{margin-left:var(--sidebar-w)!important;margin-right:0!important;}
  html[data-sidebar-side="left"] body.sidebar-docked .app-main{margin-left:var(--sidebar-collapsed-w)!important;margin-right:0!important;}
  html[data-sidebar-side="left"] body.sidebar-hidden .app-main{margin-left:0!important;margin-right:0!important;}

  html[data-sidebar-side="right"] body.sidebar-open .app-main{margin-right:var(--sidebar-w)!important;margin-left:0!important;}
  html[data-sidebar-side="right"] body.sidebar-docked .app-main{margin-right:var(--sidebar-collapsed-w)!important;margin-left:0!important;}
  html[data-sidebar-side="right"] body.sidebar-hidden .app-main{margin-right:0!important;margin-left:0!important;}

  html[data-sidebar-side="left"] body.sidebar-hidden .app-sidebar{transform:translateX(-105%)!important;}
  html[data-sidebar-side="right"] body.sidebar-hidden .app-sidebar{transform:translateX(105%)!important;}

  /* Docked mode shows the top-level icon for every group, not empty separators. */
  body.sidebar-docked .sidebar-scroll{padding-inline:8px!important;}
  body.sidebar-docked .nav-item,
  body.sidebar-docked .nav-group-toggle{width:100%!important;min-height:40px!important;height:40px!important;padding:8px!important;margin:0!important;justify-content:center!important;border-radius:10px!important;pointer-events:auto!important;}
  body.sidebar-docked .nav-item>i,
  body.sidebar-docked .nav-group-toggle>span>i{display:inline-block!important;opacity:1!important;visibility:visible!important;width:20px!important;min-width:20px!important;font-size:.95rem!important;text-align:center!important;}
  body.sidebar-docked .nav-item span,
  body.sidebar-docked .nav-group-toggle b,
  body.sidebar-docked .nav-group-toggle>.nav-chevron,
  body.sidebar-docked .sidebar-footer span:not(.status-dot){display:none!important;}
  body.sidebar-docked .nav-group-toggle>span{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;}
  body.sidebar-docked .nav-group-toggle::after{display:none!important;content:none!important;}
  body.sidebar-docked .nav-group-items{display:none!important;}
  body.sidebar-docked .sidebar-search-wrap{display:none!important;}
  body.sidebar-docked .sidebar-footer{justify-content:center!important;padding:0!important;}

  /* Header mirrors around the physical sidebar side, independent of RTL text direction. */
  .app-header{grid-template-columns:1fr minmax(240px,560px) 1fr!important;direction:ltr;}
  .app-header .header-left,.app-header .header-center,.app-header .header-actions{direction:var(--header-content-direction,ltr);}
  html[dir="rtl"] .app-header{--header-content-direction:rtl;}
  html[dir="ltr"] .app-header{--header-content-direction:ltr;}
  html[data-sidebar-side="left"] .header-left{grid-column:1;grid-row:1;justify-content:flex-start!important;}
  html[data-sidebar-side="left"] .header-center{grid-column:2;grid-row:1;}
  html[data-sidebar-side="left"] .header-actions{grid-column:3;grid-row:1;justify-content:flex-end!important;}
  html[data-sidebar-side="right"] .header-actions{grid-column:1;grid-row:1;justify-content:flex-start!important;}
  html[data-sidebar-side="right"] .header-center{grid-column:2;grid-row:1;}
  html[data-sidebar-side="right"] .header-left{grid-column:3;grid-row:1;justify-content:flex-end!important;}
}

/* Language menu also owns directional layout preference. */
.language-layout-divider{height:1px;background:var(--border);margin:6px 4px;}
.language-layout-title{padding:5px 9px 4px;color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;}
.language-layout-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:2px 5px 5px;}
.language-layout-options button{min-height:31px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:.68rem;font-weight:750;padding:0 7px;}
.language-layout-options button:hover{background:var(--surface-2);color:var(--text);}
.language-layout-options button.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));color:var(--accent-strong);}

/* Keep icon/text spacing logical in both directions. */
.nav-item,.nav-group-toggle>span,.header-left,.header-actions,.user-chip,.branch-chip,.dropdown-item{column-gap:10px;}
html[dir="rtl"] .dropdown-item i.me-2{margin-right:0!important;margin-left:.5rem!important;}
html[dir="rtl"] .command-search span{text-align:right;}
html[dir="ltr"] .command-search span{text-align:left;}

@media(max-width:991.98px){
  /* On mobile the header's menu button follows the chosen drawer side too. */
  .app-header{display:grid!important;grid-template-columns:1fr 1fr!important;direction:ltr;}
  html[data-sidebar-side="left"] .header-left{grid-column:1;grid-row:1;justify-content:flex-start!important;}
  html[data-sidebar-side="left"] .header-actions{grid-column:2;grid-row:1;justify-content:flex-end!important;}
  html[data-sidebar-side="right"] .header-actions{grid-column:1;grid-row:1;justify-content:flex-start!important;}
  html[data-sidebar-side="right"] .header-left{grid-column:2;grid-row:1;justify-content:flex-end!important;}

  html[data-sidebar-side="left"] .app-sidebar{left:0!important;right:auto!important;transform:translateX(-105%)!important;border-right:1px solid var(--border)!important;border-left:0!important;}
  html[data-sidebar-side="right"] .app-sidebar{right:0!important;left:auto!important;transform:translateX(105%)!important;border-left:1px solid var(--border)!important;border-right:0!important;}
  body.sidebar-mobile-open .app-sidebar{transform:translateX(0)!important;}
}

/* ===== v0.15 shell contract reset =====
   One physical-side model drives sidebar, header and content. Language only drives text direction. */
:root{--sidebar-docked-w:54px}

/* Language flag controls */
.language-chip{height:var(--control-h);min-width:58px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;transition:all var(--transition)}
.language-chip:hover{background:var(--surface-2);border-color:var(--border-strong)}
.language-flag,.app-option-flag{width:1.18rem!important;height:.82rem!important;border-radius:2px;box-shadow:0 0 0 1px color-mix(in srgb,var(--border-strong) 60%,transparent);flex:0 0 auto}
.language-short{font-size:.76rem;letter-spacing:.02em}.language-menu{min-width:230px;padding:6px}.language-menu-item{width:100%;min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--text);display:grid;grid-template-columns:24px minmax(0,1fr) auto 16px;align-items:center;gap:9px;padding:7px 9px;text-align:start}.language-menu-item:hover{background:var(--surface-2)}.language-menu-item.active{background:var(--accent-soft);color:var(--accent-strong)}.language-name{font-weight:700}.language-code{font-size:.67rem;color:var(--muted);font-weight:800}.language-check{font-size:.72rem}
.app-select-label,.app-select-option-content{display:flex!important;align-items:center;gap:8px;min-width:0}.app-option-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-option-meta{margin-inline-start:auto;color:var(--muted);font-size:.68rem;font-weight:700}

@media(min-width:992px){
  /* Geometry */
  .app-sidebar{top:var(--header-h)!important;bottom:0!important;transform:none;transition:width var(--transition),transform var(--transition);}
  html[data-sidebar-side="left"] .app-sidebar{left:0!important;right:auto!important;border-right:1px solid var(--border)!important;border-left:0!important}
  html[data-sidebar-side="right"] .app-sidebar{right:0!important;left:auto!important;border-left:1px solid var(--border)!important;border-right:0!important}
  body.sidebar-open .app-sidebar{width:var(--sidebar-w)!important}
  body.sidebar-docked .app-sidebar{width:var(--sidebar-docked-w)!important}
  body.sidebar-hidden .app-sidebar{width:var(--sidebar-w)!important;pointer-events:none}
  html[data-sidebar-side="left"] body.sidebar-open .app-main{margin-left:var(--sidebar-w)!important;margin-right:0!important}
  html[data-sidebar-side="left"] body.sidebar-docked .app-main{margin-left:var(--sidebar-docked-w)!important;margin-right:0!important}
  html[data-sidebar-side="left"] body.sidebar-hidden .app-main{margin-left:0!important;margin-right:0!important}
  html[data-sidebar-side="right"] body.sidebar-open .app-main{margin-right:var(--sidebar-w)!important;margin-left:0!important}
  html[data-sidebar-side="right"] body.sidebar-docked .app-main{margin-right:var(--sidebar-docked-w)!important;margin-left:0!important}
  html[data-sidebar-side="right"] body.sidebar-hidden .app-main{margin-right:0!important;margin-left:0!important}
  html[data-sidebar-side="left"] body.sidebar-hidden .app-sidebar{transform:translateX(-105%)!important}
  html[data-sidebar-side="right"] body.sidebar-hidden .app-sidebar{transform:translateX(105%)!important}

  /* Restore StageDraws docked navigation: real page-link icons, group labels become separators. */
  body.sidebar-docked .sidebar-scroll{padding:9px 7px!important}
  body.sidebar-docked .sidebar-search-wrap{display:none!important}
  body.sidebar-docked .nav-group{margin-top:3px!important}
  body.sidebar-docked .nav-group.collapsed .nav-group-items,
  body.sidebar-docked .nav-group .nav-group-items{display:block!important;padding:0!important}
  body.sidebar-docked .nav-group-toggle{min-height:12px!important;height:12px!important;padding:0 6px!important;margin:5px 0!important;pointer-events:none!important;border-radius:0!important;background:transparent!important;display:block!important}
  body.sidebar-docked .nav-group-toggle>span,body.sidebar-docked .nav-group-toggle>.nav-chevron{display:none!important}
  body.sidebar-docked .nav-group-toggle::after{content:""!important;display:block!important;width:28px!important;height:1px!important;background:color-mix(in srgb,var(--border) 78%,transparent)!important;margin:auto!important}
  body.sidebar-docked .nav-item{width:40px!important;min-height:38px!important;height:38px!important;padding:8px!important;margin:0 auto 2px!important;justify-content:center!important;gap:0!important;border-radius:9px!important;overflow:visible!important}
  body.sidebar-docked .nav-item>i{display:inline-block!important;opacity:1!important;visibility:visible!important;width:20px!important;min-width:20px!important;text-align:center!important;font-size:.94rem!important}
  body.sidebar-docked .nav-item>span{display:none!important}
  body.sidebar-docked .sidebar-footer{justify-content:center!important;padding:0!important}
  body.sidebar-docked .sidebar-footer span:not(.status-dot){display:none!important}

  /* Header: outer sidebar control is always physically above the sidebar. */
  .app-header{direction:ltr!important;grid-template-columns:minmax(310px,1fr) minmax(260px,560px) minmax(310px,1fr)!important;gap:16px!important;padding-inline:12px!important}
  .header-left,.header-actions{direction:ltr!important;min-width:0!important}
  html[data-sidebar-side="left"] .header-left{grid-column:1!important;grid-row:1!important;justify-content:flex-start!important;flex-direction:row!important}
  html[data-sidebar-side="left"] .header-center{grid-column:2!important;grid-row:1!important}
  html[data-sidebar-side="left"] .header-actions{grid-column:3!important;grid-row:1!important;justify-content:flex-end!important;flex-direction:row!important}
  html[data-sidebar-side="right"] .header-actions{grid-column:1!important;grid-row:1!important;justify-content:flex-start!important;flex-direction:row-reverse!important}
  html[data-sidebar-side="right"] .header-center{grid-column:2!important;grid-row:1!important}
  html[data-sidebar-side="right"] .header-left{grid-column:3!important;grid-row:1!important;justify-content:flex-end!important;flex-direction:row-reverse!important}
  .header-left #sidebarToggle{flex:0 0 var(--control-h)}
  .header-left .brand-mark{flex:0 0 36px}.header-left .brand-copy{min-width:0}
  .header-actions .branch-chip,.header-actions .user-chip{white-space:nowrap}
  html[dir="rtl"] .header-actions span,html[dir="rtl"] .command-search span{unicode-bidi:plaintext}
}

@media(max-width:1250px) and (min-width:992px){
  .app-header{grid-template-columns:minmax(240px,1fr) minmax(220px,430px) minmax(240px,1fr)!important}
  .brand-copy{display:none!important}.branch-chip{max-width:180px}.branch-chip>span{overflow:hidden;text-overflow:ellipsis}
}

@media(max-width:991.98px){
  /* Mobile drawer is independent of desktop dock state. */
  .app-main,body.sidebar-open .app-main,body.sidebar-docked .app-main,body.sidebar-hidden .app-main{margin-left:0!important;margin-right:0!important}
  .app-sidebar,body.sidebar-open .app-sidebar,body.sidebar-docked .app-sidebar,body.sidebar-hidden .app-sidebar{width:min(310px,88vw)!important}
  html[data-sidebar-side="left"] .app-sidebar{left:0!important;right:auto!important;transform:translateX(-105%)!important}
  html[data-sidebar-side="right"] .app-sidebar{right:0!important;left:auto!important;transform:translateX(105%)!important}
  body.sidebar-mobile-open .app-sidebar{transform:translateX(0)!important;z-index:1080!important}
  body.sidebar-mobile-open .sidebar-backdrop{z-index:1070!important}
  body.sidebar-docked .sidebar-search-wrap{display:block!important}
  body.sidebar-docked .nav-group-toggle{display:flex!important;min-height:38px!important;height:auto!important;margin:0!important;padding:8px 11px!important;pointer-events:auto!important}
  body.sidebar-docked .nav-group-toggle>span{display:flex!important}.nav-group-toggle>.nav-chevron{display:block!important}
  body.sidebar-docked .nav-group-toggle::after{display:none!important}
  body.sidebar-docked .nav-group.collapsed .nav-group-items{display:none!important}
  body.sidebar-docked .nav-group:not(.collapsed) .nav-group-items{display:block!important}
  body.sidebar-docked .nav-item{width:100%!important;height:auto!important;min-height:38px!important;justify-content:flex-start!important;padding:8px 11px!important;gap:11px!important;margin:0!important}
  body.sidebar-docked .nav-item>span{display:inline!important}

  .app-header{direction:ltr!important;grid-template-columns:1fr 1fr!important;padding-inline:10px!important;gap:8px!important}
  html[data-sidebar-side="left"] .header-left{grid-column:1!important;justify-content:flex-start!important;flex-direction:row!important}
  html[data-sidebar-side="left"] .header-actions{grid-column:2!important;justify-content:flex-end!important;flex-direction:row!important}
  html[data-sidebar-side="right"] .header-actions{grid-column:1!important;justify-content:flex-start!important;flex-direction:row-reverse!important}
  html[data-sidebar-side="right"] .header-left{grid-column:2!important;justify-content:flex-end!important;flex-direction:row-reverse!important}
  .brand-copy{display:none!important}.header-actions{gap:6px!important}.language-chip{min-width:52px;padding:0 8px}.language-short{display:none}.language-flag{width:1.35rem!important;height:.92rem!important}
}

/* ===== v0.16 shell geometry, searches and personal-settings infrastructure ===== */
:root{--sidebar-docked-w:54px;--header-side-control-w:54px}

/* Header direction follows the interface language. Sidebar side ONLY moves its control. */
.app-header{position:fixed!important;inset:0 0 auto 0!important;display:grid!important;grid-template-columns:minmax(230px,1fr) minmax(260px,560px) minmax(230px,1fr)!important;align-items:center!important;gap:16px!important;padding:0 14px!important;direction:ltr!important;overflow:visible!important}
.header-left{min-width:0!important;display:flex!important;align-items:center!important;gap:10px!important}
.header-actions{min-width:0!important;display:flex!important;align-items:center!important;gap:8px!important}
.header-center{min-width:0!important;position:relative!important}
html[dir="ltr"] .header-left{grid-column:1!important;grid-row:1!important;justify-content:flex-start!important;flex-direction:row!important}
html[dir="ltr"] .header-center{grid-column:2!important;grid-row:1!important}
html[dir="ltr"] .header-actions{grid-column:3!important;grid-row:1!important;justify-content:flex-end!important;flex-direction:row!important}
html[dir="rtl"] .header-actions{grid-column:1!important;grid-row:1!important;justify-content:flex-start!important;flex-direction:row-reverse!important}
html[dir="rtl"] .header-center{grid-column:2!important;grid-row:1!important}
html[dir="rtl"] .header-left{grid-column:3!important;grid-row:1!important;justify-content:flex-end!important;flex-direction:row-reverse!important}

/* Sidebar toggle is the one header element that follows the physical sidebar. */
#sidebarToggle{position:fixed!important;top:calc((var(--header-h) - var(--control-h))/2)!important;z-index:1850!important}
html[data-sidebar-side="left"] #sidebarToggle{left:12px!important;right:auto!important}
html[data-sidebar-side="right"] #sidebarToggle{right:12px!important;left:auto!important}
/* Make room for the fixed toggle only when it shares the language-side brand edge. */
html[dir="ltr"][data-sidebar-side="left"] .header-left{padding-left:calc(var(--header-side-control-w) + 6px)!important}
html[dir="rtl"][data-sidebar-side="right"] .header-left{padding-right:calc(var(--header-side-control-w) + 6px)!important}
html[dir="ltr"][data-sidebar-side="right"] .header-left,html[dir="rtl"][data-sidebar-side="left"] .header-left{padding-inline:0!important}

/* Docked rail is intentionally narrow and exposes real destination icons. */
@media(min-width:992px){
 body.sidebar-docked .app-sidebar{width:var(--sidebar-docked-w)!important}
 html[data-sidebar-side="left"] body.sidebar-docked .app-main{margin-left:var(--sidebar-docked-w)!important;margin-right:0!important}
 html[data-sidebar-side="right"] body.sidebar-docked .app-main{margin-right:var(--sidebar-docked-w)!important;margin-left:0!important}
 body.sidebar-docked .nav-group-toggle{height:10px!important;min-height:10px!important;margin:6px 0!important;padding:0!important;pointer-events:none!important;background:transparent!important}
 body.sidebar-docked .nav-group-toggle>span,body.sidebar-docked .nav-group-toggle>.nav-chevron{display:none!important}
 body.sidebar-docked .nav-group-toggle::after{display:block!important;content:""!important;width:26px!important;height:1px!important;margin:auto!important;background:var(--border)!important}
 body.sidebar-docked .nav-group-items{display:block!important;padding:0!important}
 body.sidebar-docked .nav-item{display:flex!important;width:40px!important;height:38px!important;min-height:38px!important;margin:0 auto 2px!important;padding:8px!important;justify-content:center!important;align-items:center!important;gap:0!important;border-radius:9px!important}
 body.sidebar-docked .nav-item>i{display:inline-block!important;width:20px!important;min-width:20px!important;text-align:center!important;opacity:1!important;visibility:visible!important}
 body.sidebar-docked .nav-item>span{display:none!important}
 body.sidebar-docked .sidebar-search-wrap{display:none!important}
}

/* Command/global search */
.command-search-shell{position:relative;width:100%;height:var(--control-h);display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);transition:all var(--transition)}
.command-search-shell:focus-within,.command-search-shell.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--input-bg)}
.command-search-icon{flex:0 0 auto}.command-search-input{flex:1;min-width:0;border:0!important;outline:0!important;background:transparent!important;color:var(--text);font:inherit;padding:0!important;height:auto!important;direction:inherit}.command-search-input::-webkit-search-cancel-button{display:none}.command-search-input::placeholder{color:var(--muted)}
.command-search-clear{width:26px;height:26px;border:0;border-radius:7px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.command-search-clear:hover{background:var(--surface-2);color:var(--text)}
.command-search-shell kbd{flex:0 0 auto}.global-search-results{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:2300;padding:6px;border-radius:11px;max-height:360px;overflow:auto}.global-search-result{min-height:40px;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px}.global-search-result:hover,.global-search-result.active{background:var(--accent-soft);color:var(--accent-strong)}.global-search-result i{width:20px;text-align:center}.global-search-empty{padding:14px;color:var(--muted);text-align:center;font-size:.82rem}

/* Sidebar search gets the same clear affordance and filter rhythm. */
.sidebar-search-wrap{position:relative}.sidebar-search-wrap .sidebar-search{padding-inline-end:34px!important}.sidebar-search-clear{position:absolute;inset-inline-end:7px;top:50%;transform:translateY(-50%);width:25px;height:25px;border:0;border-radius:7px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.sidebar-search-clear:hover{background:var(--surface-2);color:var(--text)}
#appSidebar [hidden]{display:none!important}

/* Phone/country flag rendering must be explicit across all themes. */
.app-select-button .fi,.app-select-option .fi,.language-chip .fi,.language-menu .fi,.preference-choice .fi{display:inline-block!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.app-option-flag{width:1.28rem!important;height:.9rem!important;min-width:1.28rem!important}
.phone-input-group .app-select{min-width:190px}.phone-input-group .app-select-button{gap:8px!important}.phone-input-group .app-select-label{overflow:visible!important}

/* Language layout control uses Default terminology and centered labels. */
.language-layout-options button{text-align:center!important;display:flex!important;align-items:center!important;justify-content:center!important}

/* Dedicated personal settings page */
.preferences-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.preferences-span{grid-column:1/-1}.settings-section+.settings-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.preference-language-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.preference-language-grid form{margin:0}.preference-choice{width:100%;min-height:58px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text);display:grid;grid-template-columns:30px 1fr 20px;align-items:center;gap:10px;padding:9px 11px;text-align:start}.preference-choice:hover,.preference-choice.active{border-color:var(--accent);background:var(--accent-soft)}.preference-choice>span:nth-child(2){display:flex;flex-direction:column;gap:1px}.preference-choice small{color:var(--muted);font-size:.7rem}.preference-flag{width:1.55rem!important;height:1.05rem!important;border-radius:2px}.preference-segment{margin-top:8px}.preferences-three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}

/* Keep quick menu, but make full account settings discoverable. */
.user-menu .dropdown-item{display:flex;align-items:center}

@media(max-width:1250px) and (min-width:992px){.app-header{grid-template-columns:minmax(185px,1fr) minmax(220px,430px) minmax(185px,1fr)!important}.brand-copy{display:none!important}}
@media(max-width:991.98px){
 .app-header{grid-template-columns:1fr 1fr!important;gap:8px!important;padding-inline:10px!important}
 .header-center{display:none!important}
 html[dir="ltr"] .header-left{grid-column:1!important;justify-content:flex-start!important}html[dir="ltr"] .header-actions{grid-column:2!important;justify-content:flex-end!important}
 html[dir="rtl"] .header-actions{grid-column:1!important;justify-content:flex-start!important}html[dir="rtl"] .header-left{grid-column:2!important;justify-content:flex-end!important}
 #sidebarToggle{top:calc((var(--header-h) - var(--control-h))/2)!important}
 html[dir="ltr"][data-sidebar-side="left"] .header-left{padding-left:calc(var(--header-side-control-w) + 2px)!important}
 html[dir="rtl"][data-sidebar-side="right"] .header-left{padding-right:calc(var(--header-side-control-w) + 2px)!important}
 .preferences-grid{grid-template-columns:1fr}.preferences-span{grid-column:auto}.preferences-three-col{grid-template-columns:1fr}.preference-language-grid{grid-template-columns:1fr}
 .phone-input-group .app-select{min-width:145px}
}
.appearance-all-settings{min-height:36px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.78rem;font-weight:700}.appearance-all-settings:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}
.profile-preferences-link{display:flex;align-items:center;justify-content:space-between;gap:14px}.profile-preferences-link>div{display:flex;flex-direction:column;gap:3px}.profile-preferences-link span{color:var(--muted);font-size:.82rem}@media(max-width:650px){.profile-preferences-link{align-items:flex-start;flex-direction:column}.profile-preferences-link .btn{width:100%;justify-content:center}}

/* =========================================================
   FINAL HEADER / SIDEBAR EDGE CONTRACT
   Keep the sidebar toggle inside the header flow.  The toggle,
   TC mark and brand are one physical group at the sidebar edge.
   ========================================================= */
@media (min-width: 992px) {
  #sidebarToggle {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    inset: auto !important;
    flex: 0 0 var(--control-h) !important;
  }

  /* Remove legacy compensation that was only required while the
     toggle was fixed outside the header grid. */
  .header-left {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
  }

  /* Physical LEFT sidebar: [toggle][TC][brand] at the left edge. */
  html[data-sidebar-side="left"] .header-left {
    grid-column: 1 !important;
    justify-content: flex-start !important;
    flex-direction: row !important;
  }

  /* Physical RIGHT sidebar: [brand][TC][toggle] at the right edge. */
  html[data-sidebar-side="right"] .header-left {
    grid-column: 3 !important;
    justify-content: flex-end !important;
    flex-direction: row-reverse !important;
  }

  /* Keep the centre search genuinely centred regardless of language
     or the physical sidebar side. */
  .header-center {
    grid-column: 2 !important;
    justify-self: stretch !important;
  }

  /* Language controls the semantic action order only. */
  html[dir="ltr"] .header-actions {
    grid-column: 3 !important;
    justify-content: flex-end !important;
    flex-direction: row !important;
  }
  html[dir="rtl"] .header-actions {
    grid-column: 1 !important;
    justify-content: flex-start !important;
    flex-direction: row-reverse !important;
  }

  /* If header-left and header-actions share an outer grid column
     (e.g. English + right sidebar or Arabic + left sidebar), reserve
     enough room so they never overlap. */
  html[dir="ltr"][data-sidebar-side="right"] .header-actions {
    padding-right: 0 !important;
    margin-right: 0 !important;
  }
  html[dir="rtl"][data-sidebar-side="left"] .header-actions {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  .header-left .brand-mark,
  .header-left .brand-copy,
  .header-left #sidebarToggle {
    position: relative !important;
    z-index: 1;
  }
}


/* =========================================================
   SHELL CONTRACT v4 — single physical-edge model
   The sidebar edge group and header utilities never share a grid cell.
   Language affects text direction; sidebar side affects physical placement.
   ========================================================= */
@media (min-width: 992px) {
  .app-header{
    direction:ltr!important;
    grid-template-columns:minmax(250px,1fr) minmax(300px,620px) minmax(250px,1fr)!important;
    grid-template-areas:"edge center utilities"!important;
    gap:18px!important;
    padding:0 14px!important;
  }
  .header-left{grid-area:edge!important;display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important;padding:0!important;margin:0!important}
  .header-center{grid-area:center!important;display:flex!important;justify-self:stretch!important;min-width:0!important}
  .header-actions{grid-area:utilities!important;display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;padding:0!important;margin:0!important}

  html[data-sidebar-side="left"] .app-header{grid-template-areas:"edge center utilities"!important}
  html[data-sidebar-side="right"] .app-header{grid-template-areas:"utilities center edge"!important}

  html[data-sidebar-side="left"] .header-left{justify-content:flex-start!important;flex-direction:row!important}
  html[data-sidebar-side="right"] .header-left{justify-content:flex-end!important;flex-direction:row-reverse!important}

  html[dir="ltr"] .header-actions{justify-content:flex-end!important;flex-direction:row!important;direction:ltr!important}
  html[dir="rtl"] .header-actions{justify-content:flex-start!important;flex-direction:row-reverse!important;direction:rtl!important}
  html[data-sidebar-side="right"][dir="ltr"] .header-actions{justify-content:flex-start!important}
  html[data-sidebar-side="left"][dir="rtl"] .header-actions{justify-content:flex-end!important}

  #sidebarToggle{position:static!important;inset:auto!important;flex:0 0 var(--control-h)!important}
  .header-left .brand-mark{flex:0 0 36px!important}.header-left .brand-copy{min-width:0!important}
}
@media (max-width:1250px) and (min-width:992px){
  .app-header{grid-template-columns:minmax(190px,1fr) minmax(260px,480px) minmax(190px,1fr)!important}
  .brand-copy{display:none!important}
}
@media (max-width:991.98px){
  .app-header{direction:ltr!important;grid-template-columns:1fr 1fr!important;grid-template-areas:"edge utilities"!important;gap:8px!important;padding:0 10px!important}
  html[data-sidebar-side="right"] .app-header{grid-template-areas:"utilities edge"!important}
  .header-left{grid-area:edge!important;padding:0!important;margin:0!important}
  .header-actions{grid-area:utilities!important;padding:0!important;margin:0!important}
  html[data-sidebar-side="left"] .header-left{justify-content:flex-start!important;flex-direction:row!important}
  html[data-sidebar-side="right"] .header-left{justify-content:flex-end!important;flex-direction:row-reverse!important}
  html[dir="ltr"] .header-actions{justify-content:flex-end!important;flex-direction:row!important}
  html[dir="rtl"] .header-actions{justify-content:flex-start!important;flex-direction:row-reverse!important}
}

/* StageDraws-style command palette. Later inline-search rules must not override it. */
.command-search{width:100%;height:var(--control-h);display:flex;align-items:center;gap:11px;padding:0 14px;border:1px solid var(--border);border-radius:11px;background:var(--input-bg);color:var(--muted);text-align:start;cursor:text}
.command-search:hover{border-color:var(--border-strong);background:var(--surface-2)}
.command-search>i{font-size:.86rem}.command-search>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-search kbd{flex:0 0 auto}
#globalSearchPanel .global-search-results{position:static!important;inset:auto!important;z-index:auto!important;display:block!important;max-height:470px!important;overflow:auto!important;padding:8px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
#globalSearchPanel .global-search-result{width:100%!important;display:grid!important;grid-template-columns:38px 1fr auto!important;align-items:center!important;gap:12px!important;min-height:58px!important;padding:10px 12px!important;border:0!important;border-radius:11px!important;background:transparent!important;color:var(--text)!important;text-decoration:none!important;text-align:start!important}
#globalSearchPanel .global-search-result:hover,#globalSearchPanel .global-search-result.is-selected{background:var(--accent-soft)!important;color:var(--text)!important}
#globalSearchPanel .global-search-result-icon{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border:1px solid var(--border)!important;border-radius:9px!important;background:var(--surface-2)!important;color:var(--accent-strong)!important}
#globalSearchPanel .global-search-result>span:nth-child(2){display:grid!important;gap:2px!important}
#globalSearchPanel .global-search-result strong{font-size:.88rem!important}#globalSearchPanel .global-search-result small{font-size:.72rem!important;color:var(--muted)!important}
#globalSearchPanel .global-search-arrow{color:var(--muted)!important}
.global-search-close{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center}.global-search-close:hover{background:var(--surface-2);color:var(--text)}

/* Sidebar search temporarily expands matches without changing saved group state. */
.sidebar-nav.is-searching .nav-group.collapsed .nav-group-items{display:block!important}
.sidebar-nav.is-searching .nav-group-toggle{pointer-events:none}
.sidebar-search-clear{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);width:25px;height:25px;border:0;border-radius:7px;background:transparent;color:var(--muted);display:grid;place-items:center}.sidebar-search-clear:hover{background:var(--surface-2);color:var(--text)}
.sidebar-search-clear[hidden]{display:none!important}
html[dir="rtl"] .sidebar-search-wrap>i{left:auto!important;right:11px!important}html[dir="rtl"] .sidebar-search{padding:0 32px 0 34px!important}

/* =========================================================
   SHELL CONTRACT v5 — flex header, no competing grid columns
   Header groups can never overlap: edge + flexible search + utilities.
   ========================================================= */
@media (min-width: 992px) {
  .app-header{
    display:flex!important;
    align-items:center!important;
    grid-template-columns:none!important;
    grid-template-areas:none!important;
    direction:ltr!important;
    gap:14px!important;
    padding:0 14px!important;
    overflow:visible!important;
  }
  .header-left,
  .header-center,
  .header-actions{
    grid-column:auto!important;
    grid-row:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .header-left{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
    white-space:nowrap!important;
  }
  .header-center{
    flex:1 1 360px!important;
    width:auto!important;
    max-width:720px!important;
    min-width:180px!important;
    display:flex!important;
    margin-inline:auto!important;
  }
  .header-actions{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    white-space:nowrap!important;
  }

  /* Physical side only controls group order. */
  html[data-sidebar-side="left"] .header-left{order:1!important;flex-direction:row!important;justify-content:flex-start!important}
  html[data-sidebar-side="left"] .header-center{order:2!important}
  html[data-sidebar-side="left"] .header-actions{order:3!important;justify-content:flex-end!important}
  html[data-sidebar-side="right"] .header-actions{order:1!important;justify-content:flex-start!important}
  html[data-sidebar-side="right"] .header-center{order:2!important}
  html[data-sidebar-side="right"] .header-left{order:3!important;flex-direction:row-reverse!important;justify-content:flex-end!important}

  /* Language changes content direction inside controls, never the physical group placement. */
  html[dir="ltr"] .header-actions{direction:ltr!important;flex-direction:row!important}
  html[dir="rtl"] .header-actions{direction:rtl!important;flex-direction:row-reverse!important}
  #sidebarToggle{position:static!important;inset:auto!important;margin:0!important;flex:0 0 var(--control-h)!important}

  /* Keep the search usable rather than allowing collisions at medium desktop widths. */
  @media (max-width: 1320px){
    .brand-copy{display:none!important}
    .header-center{max-width:none!important}
  }
  @media (max-width: 1120px){
    .header-actions .branch-chip-button{max-width:180px!important}
    .header-actions .branch-chip-button span{max-width:120px!important;overflow:hidden!important;text-overflow:ellipsis!important}
    .header-center{flex-basis:220px!important}
  }
}

/* Mobile keeps two natural edge groups, no desktop grid leakage. */
@media (max-width: 991.98px){
  .app-header{
    display:flex!important;
    align-items:center!important;
    grid-template-columns:none!important;
    grid-template-areas:none!important;
    gap:8px!important;
    padding-inline:10px!important;
    direction:ltr!important;
  }
  .header-center{display:none!important}
  .header-left,.header-actions{grid-column:auto!important;grid-row:auto!important;margin:0!important;padding:0!important;min-width:0!important}
  .header-left{flex:0 0 auto!important}
  .header-actions{flex:1 1 auto!important}
  html[data-sidebar-side="left"] .header-left{order:1!important;flex-direction:row!important}
  html[data-sidebar-side="left"] .header-actions{order:2!important;justify-content:flex-end!important}
  html[data-sidebar-side="right"] .header-actions{order:1!important;justify-content:flex-start!important}
  html[data-sidebar-side="right"] .header-left{order:2!important;flex-direction:row-reverse!important}
}

/* Sidebar search must win over saved collapsed state and generic nav display rules. */
.sidebar-nav .nav-search-hidden{display:none!important}
.sidebar-nav.is-searching .nav-group:not(.nav-search-hidden)>.nav-group-items{display:block!important}
.sidebar-nav.is-searching .nav-group:not(.nav-search-hidden)>.nav-group-toggle{pointer-events:none!important}
body.sidebar-open .sidebar-search-wrap{display:flex!important}

/* ===== StageDraws capability bridge: Cave V2 table workspace =====
   The visual toolbar remains Cave V2; these styles support the richer
   StageDraws-derived filters, panes and column controls. */
:root{
  --bg-panel:var(--surface);
  --bg-panel-alt:var(--surface-2);
  --surface-soft:var(--surface-2);
  --table-header:var(--surface-2);
}
.table-tool-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.66rem;font-weight:800}
.tc-table-workspace,.tc-search-panes-workspace{border-top:1px solid var(--border);background:var(--surface-2);padding:12px 14px;color:var(--ui-text,var(--text))}
.tc-table-workspace[hidden],.tc-search-panes-workspace[hidden]{display:none!important}
.tc-workspace-head,.tc-panes-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.tc-workspace-head>div,.tc-panes-head>div{display:flex;flex-direction:column;gap:2px}.tc-workspace-head small,.tc-panes-head small{color:var(--ui-muted,var(--muted));font-size:.74rem}
.tc-filter-builder{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr);gap:12px;align-items:start}.tc-filter-builder>label,.tc-filter-editor>label{display:flex;flex-direction:column;gap:5px;font-size:.75rem;font-weight:650}.tc-filter-editor{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;align-items:end}.tc-filter-values{grid-column:1/-1;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:9px}.tc-filter-values-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.tc-filter-values-head>div{display:flex;gap:8px}.link-button{border:0;background:transparent;color:var(--accent-strong);padding:2px 3px;font-size:.72rem}.tc-mini-search{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--input-bg);border-radius:8px;padding:0 9px;height:34px;margin-bottom:7px}.tc-mini-search input{border:0;outline:0;min-width:0;width:100%;background:transparent;color:var(--text)}.tc-filter-value-list{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:4px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px}.tc-filter-value-list label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 7px;border-radius:6px;font-size:.74rem;font-weight:400}.tc-filter-value-list label:hover{background:var(--accent-soft)}.tc-filter-value-list b{color:var(--muted);font-size:.7rem}.tc-workspace-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:7px}
.tc-pane-picker,.tc-column-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px}.tc-pane-picker label,.tc-column-picker label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:8px 10px;font-size:.76rem}.tc-pane-picker label:hover,.tc-column-picker label:hover{background:var(--accent-soft)}
.tc-panes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.tc-search-pane{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:9px;min-width:0}.tc-pane-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.tc-pane-title>div{display:flex;flex-direction:column}.tc-pane-title small{font-size:.68rem;color:var(--muted)}.tc-pane-list{max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:2px}.tc-pane-row{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;text-align:start;padding:6px 7px;border-radius:7px;font-size:.74rem}.tc-pane-row:hover{background:var(--surface-2)}.tc-pane-row.selected{background:var(--accent-soft);color:var(--accent-strong)}.tc-pane-row b{font-size:.7rem;color:var(--muted)}.tc-pane-empty{padding:16px;text-align:center;color:var(--muted);font-size:.74rem}
.app-sortable.is-sorted{color:var(--accent-strong)}
@media(max-width:760px){.tc-filter-builder{grid-template-columns:1fr}.tc-filter-editor{grid-template-columns:1fr}.tc-filter-values,.tc-workspace-actions{grid-column:auto}.tc-workspace-head,.tc-panes-head{align-items:flex-start;flex-direction:column}.tc-table-workspace,.tc-search-panes-workspace{padding:10px}.tc-filter-value-list{grid-template-columns:1fr}}

/* ===== v2 StageDraws table interaction contract ===== */
.app-table-controlbar{background:var(--surface-2);border-color:var(--border);color:var(--text)}
.table-tool-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);transition:background 160ms ease,border-color 160ms ease,color 160ms ease,box-shadow 160ms ease}
.table-tool-btn:hover,.table-tool-btn.active,.table-tool-btn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}
.app-table-search{background:var(--input-bg);border-color:var(--border)}
.app-table-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* Header filters: filter belongs to the column, not the global toolbar. */
.app-table-shell thead th{position:relative}
.tc-th-content{display:inline-flex;align-items:center;min-width:0}
.tc-column-filter-btn{width:26px;height:26px;margin-inline-start:7px;display:inline-grid;place-items:center;vertical-align:middle;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-size:.69rem;opacity:.72}
.tc-column-filter-btn:hover{background:var(--accent-soft);border-color:var(--border);color:var(--accent-strong);opacity:1}
.tc-column-filter-btn.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);opacity:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 15%,transparent) inset}

/* Every table dropdown/popover is portalled to body and therefore cannot be clipped by the toolbar/table. */
.tc-table-popover{position:fixed;z-index:4600;width:min(390px,calc(100vw - 16px));max-height:min(620px,calc(100vh - 16px));overflow:auto;padding:8px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.tc-table-menu-popover{width:190px;padding:5px}
.tc-popover-menu{display:grid;gap:2px}.tc-popover-menu button{border:0;background:transparent;color:var(--text);text-align:start;border-radius:7px;padding:8px 10px;font-size:.78rem}.tc-popover-menu button:hover{background:var(--accent-soft);color:var(--accent-strong)}
.tc-popover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:3px 3px 8px;border-bottom:1px solid var(--border);margin-bottom:8px}.tc-popover-head>div{display:grid;gap:2px}.tc-popover-head small{color:var(--muted);font-size:.68rem}.tc-popover-head>button,.tc-pane-actions button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:7px;min-width:28px;height:28px;display:inline-grid;place-items:center}.tc-popover-head>button:hover,.tc-pane-actions button:hover{background:var(--accent-soft);border-color:var(--border);color:var(--accent-strong)}
.tc-column-popover-list,.tc-pane-popover-list{display:grid;gap:3px;max-height:340px;overflow:auto}.tc-column-popover-list label,.tc-pane-popover-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;font-size:.76rem;cursor:pointer}.tc-column-popover-list label:hover,.tc-pane-popover-list label:hover{background:var(--accent-soft)}
.tc-popover-footer{display:flex;justify-content:flex-end;gap:6px;padding-top:8px;margin-top:8px;border-top:1px solid var(--border)}
.tc-filter-sort-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px}.tc-filter-sort-row button{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);padding:7px 8px;font-size:.72rem}.tc-filter-sort-row button:hover{background:var(--accent-soft);border-color:var(--border-strong);color:var(--accent-strong)}
.tc-popover-field{display:grid;gap:4px;margin-bottom:7px}.tc-popover-field>span,.tc-filter-values-head strong{color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.tc-popover-field select,.tc-popover-field input,.tc-mini-search{min-height:34px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text)}.tc-popover-field select,.tc-popover-field input{width:100%;padding:0 9px}.tc-popover-two{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tc-filter-values-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 5px}.tc-filter-values-head>div{display:flex;gap:4px}.tc-filter-values-head button{border:0;background:transparent;color:var(--accent-strong);font-size:.7rem}
.tc-filter-popover-values{max-height:210px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.tc-filter-popover-values label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;border-top:1px solid var(--border);font-size:.7rem}.tc-filter-popover-values label:first-child{border-top:0}.tc-filter-popover-values label:hover{background:var(--accent-soft)}.tc-filter-popover-values label>span{display:flex;align-items:center;gap:6px}.tc-filter-popover-values b{color:var(--muted);font-size:.65rem}

/* Search panes are a table workspace of their own, never nested in the toolbar. */
.tc-search-panes-workspace{border:1px solid var(--border);border-radius:10px;background:var(--surface-2);padding:10px;margin:8px 0;color:var(--text)}
.tc-search-panes-workspace[hidden]{display:none!important}.tc-panes-shell-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.tc-panes-shell-head>div{display:grid;gap:2px}.tc-panes-shell-head small{color:var(--muted);font-size:.7rem}
.tc-panes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:9px}.tc-search-pane{min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:8px}.tc-pane-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.tc-pane-title>div{display:grid;gap:1px}.tc-pane-title small{font-size:.66rem;color:var(--muted)}.tc-pane-actions{display:flex;align-items:center;gap:2px}.tc-pane-actions button{width:auto;padding:0 6px;font-size:.68rem}.tc-pane-mini-head{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:8px;padding:5px 7px;color:var(--muted);font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.tc-pane-mini-head span:last-child{text-align:end}.tc-pane-list{max-height:230px;overflow:auto;display:grid;gap:2px}.tc-pane-row{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:8px;text-align:start;padding:6px 7px;border-radius:7px;font-size:.73rem}.tc-pane-row:hover{background:var(--surface-2)}.tc-pane-row.selected{background:var(--accent-soft);color:var(--accent-strong)}.tc-pane-row b{text-align:end;color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}.tc-pane-empty{padding:14px;text-align:center;color:var(--muted);font-size:.72rem}

html[data-theme="sandstone"] .app-table-controlbar{background:color-mix(in srgb,var(--surface-2) 78%,var(--bg))}
html[data-theme="sandstone"] .tc-table-popover,html[data-theme="sandstone"] .tc-search-pane{box-shadow:0 12px 28px rgba(78,58,43,.12)}

@media(max-width:760px){.tc-table-popover{width:min(360px,calc(100vw - 12px));max-height:calc(100vh - 20px)}.tc-popover-two,.tc-filter-sort-row{grid-template-columns:1fr}.tc-panes-shell-head{align-items:flex-start;flex-direction:column}.tc-panes-grid{grid-template-columns:1fr}.tc-search-panes-workspace{padding:8px}}


/* ===== v2.1 Compact generic table controls ===== */
/* Filter buttons are opt-in from the toolbar and never appear on action columns. */
.app-table-shell thead th .tc-th-inner{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;width:100%}
[dir="rtl"] .app-table-shell thead th .tc-th-inner{justify-content:flex-start}
.tc-th-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}
.tc-column-filter-btn{display:none!important;flex:0 0 24px;width:24px!important;height:24px!important;margin:0!important;padding:0!important;border-radius:6px!important;font-size:.62rem!important}
.app-table-shell.is-filter-mode .tc-column-filter-btn{display:inline-grid!important}
.app-table-shell thead th[data-actions] .tc-column-filter-btn,.app-table-shell thead th[data-no-filter] .tc-column-filter-btn{display:none!important}

/* Compact Cave toolbar: functionality-rich without dominating the table. */
.app-table-tools{gap:5px!important}
.table-tool-btn{min-height:30px!important;height:30px!important;padding:0 9px!important;gap:5px!important;border-radius:8px!important;font-size:.7rem!important;line-height:1!important;white-space:nowrap}
.table-tool-btn>i{font-size:.72rem!important}.table-tool-count{min-width:16px!important;height:16px!important;padding:0 4px!important;font-size:.58rem!important}
.app-table-search{height:34px!important;min-height:34px!important}.app-table-search input{font-size:.78rem!important}

/* Search pane header controls stay in one horizontal action row. */
.tc-pane-title{align-items:center!important}.tc-pane-actions{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:3px!important;flex-wrap:nowrap!important}
.tc-pane-actions button{display:inline-grid!important;place-items:center!important;width:26px!important;height:26px!important;min-width:26px!important;padding:0!important;margin:0!important;border-radius:6px!important;line-height:1!important}
.tc-panes-shell-head>.table-tool-btn{flex:0 0 auto}
.tc-search-pane{overflow:hidden}

/* Floating menus are top-level UI. Keep them above tables/sticky headers while scrolling. */
.tc-table-popover{z-index:120000!important;isolation:isolate;overscroll-behavior:contain}

/* Exact StageDraws sandstone component feel. */
html[data-theme="sandstone"]{
  --bg-panel:var(--surface);
  --bg-panel-alt:var(--surface-2);
  --surface-soft:var(--surface-2);
  --table-header:var(--surface-2);
}
html[data-theme="sandstone"] .app-table-controlbar{background:var(--surface-2)!important}
html[data-theme="sandstone"] .table-tool-btn{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text)!important}
html[data-theme="sandstone"] .table-tool-btn:hover,html[data-theme="sandstone"] .table-tool-btn.active,html[data-theme="sandstone"] .table-tool-btn[aria-pressed="true"]{background:var(--accent-soft)!important;border-color:var(--border-strong)!important;color:var(--accent-strong)!important}
html[data-theme="sandstone"] .app-table-search,html[data-theme="sandstone"] .tc-table-popover,html[data-theme="sandstone"] .tc-search-pane{background:var(--surface)!important}

@media(max-width:760px){
  .app-table-tools{gap:4px!important}.table-tool-btn{height:29px!important;min-height:29px!important;padding-inline:7px!important;font-size:.66rem!important}
  .tc-pane-actions{flex-direction:row!important;align-self:auto!important}
}

/* ===== v2.2 Palette intensity brightness + compact mobile table chrome ===== */
/* Brightness is now implemented by runtime palette interpolation in appearance.js.
   Keep all legacy visual filter/overlay mechanisms neutral so they cannot haze the UI. */
.app-header,.app-sidebar,.app-main,.modal-content,.toast{filter:none!important}
body::after{opacity:0!important;background:transparent!important}

@media(max-width:560px){
  /* Toolbar: search owns the first row; tools become compact icon controls below it. */
  .app-table-controlbar-top{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:6px!important;
    padding:7px!important;
  }
  .app-table-search{grid-column:1!important;width:100%!important;min-width:0!important;height:32px!important;min-height:32px!important}
  .app-table-tools{
    grid-column:1!important;
    width:100%!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    overflow-x:auto!important;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .app-table-tools::-webkit-scrollbar{display:none}
  .app-table-tools .table-tool-btn{
    flex:0 0 30px!important;
    width:30px!important;
    min-width:30px!important;
    height:28px!important;
    min-height:28px!important;
    padding:0!important;
    justify-content:center!important;
    border-radius:7px!important;
    font-size:.64rem!important;
  }
  .app-table-tools .table-tool-btn>i{font-size:.72rem!important}
  .app-table-tools .table-tool-btn>span:not(.table-tool-count){display:none!important}
  .app-table-tools .table-tool-count{position:absolute;inset-block-start:-4px;inset-inline-end:-4px;box-shadow:0 0 0 2px var(--surface-2)}
  .app-table-tools .table-tool-btn{position:relative}

  /* Footer: one compact row that fits an iPhone width. */
  .app-table-controlbar-bottom{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-areas:"rows count pager"!important;
    align-items:center!important;
    justify-items:stretch!important;
    gap:5px!important;
    min-height:40px!important;
    padding:5px 7px!important;
  }
  .app-table-page-size{grid-area:rows!important;justify-self:start!important}
  .app-table-page-size label{gap:0!important}
  .app-table-page-size label>span{display:none!important}
  .app-table-page-size .app-select,.app-table-page-size .form-select{width:52px!important;min-width:52px!important;height:28px!important;min-height:28px!important;padding-inline:6px!important;font-size:.68rem!important}
  .app-table-count{grid-area:count!important;justify-self:center!important;text-align:center!important;font-size:.62rem!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
  .stage-pagination{grid-area:pager!important;justify-self:end!important;max-width:none!important;border-radius:7px!important}
  .stage-page-btn{height:28px!important;min-width:27px!important;padding:0 5px!important;font-size:.68rem!important}
  .stage-page-status{height:28px!important;min-width:42px!important;padding:0 6px!important;font-size:.67rem!important}

  /* Pane workspace also becomes denser on phones. */
  .tc-search-panes-workspace{padding:6px!important;margin:6px 0!important}
  .tc-panes-grid{gap:6px!important}
  .tc-search-pane{padding:6px!important}
  .tc-pane-actions button{width:24px!important;height:24px!important;min-width:24px!important}
}

/* ===== v2.2.1 Mobile table chrome alignment refinement ===== */
@media (max-width:560px){
  /* Equal compact square controls; icon is the visual centre, never inherited text spacing. */
  .app-table-tools .table-tool-btn{
    display:grid!important;
    place-items:center!important;
    align-content:center!important;
    justify-content:center!important;
    flex:0 0 32px!important;
    inline-size:32px!important;
    min-inline-size:32px!important;
    block-size:30px!important;
    min-block-size:30px!important;
    padding:0!important;
    margin:0!important;
    gap:0!important;
    line-height:1!important;
    text-align:center!important;
  }
  .app-table-tools .table-tool-btn>i{
    display:block!important;
    inline-size:auto!important;
    block-size:auto!important;
    margin:0!important;
    padding:0!important;
    line-height:1!important;
    font-size:.76rem!important;
    justify-self:center!important;
    align-self:center!important;
  }
  .app-table-tools .table-tool-btn>span:not(.table-tool-count){display:none!important}

  /* A true single-line footer on phones. */
  .app-table-controlbar-bottom{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:4px!important;
    inline-size:100%!important;
    min-block-size:36px!important;
    padding:4px 6px!important;
    overflow:visible!important;
  }
  .app-table-page-size{
    flex:0 0 auto!important;
    inline-size:auto!important;
    min-inline-size:0!important;
    justify-self:auto!important;
  }
  .app-table-page-size label{
    display:block!important;
    margin:0!important;
    inline-size:auto!important;
  }
  .app-table-page-size label>span{display:none!important}
  .app-table-page-size .app-select,
  .app-table-page-size .form-select{
    inline-size:42px!important;
    min-inline-size:42px!important;
    max-inline-size:42px!important;
    block-size:27px!important;
    min-block-size:27px!important;
    margin:0!important;
    font-size:.62rem!important;
  }
  .app-table-page-size .app-select-button{
    inline-size:42px!important;
    min-inline-size:42px!important;
    block-size:27px!important;
    min-block-size:27px!important;
    padding:0 6px!important;
    justify-content:center!important;
    gap:0!important;
    font-size:.62rem!important;
    line-height:1!important;
  }
  /* The selector remains tappable; the mobile chrome simply does not spend width on a chevron. */
  .app-table-page-size .app-select-button>i{display:none!important}
  .app-table-page-size .app-select-label{
    justify-content:center!important;
    text-align:center!important;
    inline-size:100%!important;
    gap:0!important;
  }

  .app-table-count{
    flex:1 1 auto!important;
    min-inline-size:0!important;
    max-inline-size:none!important;
    margin:0!important;
    padding:0 2px!important;
    justify-self:auto!important;
    text-align:center!important;
    font-size:.56rem!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .stage-pagination{
    flex:0 0 auto!important;
    justify-self:auto!important;
    margin:0!important;
    max-inline-size:none!important;
    min-inline-size:0!important;
    block-size:27px!important;
    border-radius:6px!important;
  }
  .stage-page-btn,
  .stage-page-status{
    block-size:27px!important;
    min-block-size:27px!important;
    font-size:.58rem!important;
    line-height:1!important;
  }
  .stage-page-btn{
    min-inline-size:24px!important;
    inline-size:24px!important;
    padding:0!important;
  }
  .stage-page-status{
    min-inline-size:38px!important;
    padding:0 5px!important;
  }
}

.core-brand-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-strong));color:#fff;font-weight:900;font-size:.78rem;box-shadow:0 7px 18px var(--accent-soft);margin-inline-end:9px}
.core-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--page-gap)}.core-card{padding:var(--panel-pad);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.core-card i{color:var(--accent-strong);font-size:1.1rem;margin-bottom:10px}.core-card p{font-size:.78rem;color:var(--muted)}
.context-help-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:2790}.context-help-drawer{position:fixed;top:0;bottom:0;width:min(460px,92vw);z-index:2800;background:var(--surface);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;right:0;transform:translateX(105%);transition:transform var(--transition)}html[dir=rtl] .context-help-drawer{right:auto;left:0;transform:translateX(-105%)}body.context-help-open .context-help-drawer{transform:none}.context-help-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border)}.context-help-body{padding:18px;overflow:auto;line-height:1.55}.context-help-body h1{font-size:1.15rem}.context-help-body h2{font-size:.95rem;margin-top:20px}.context-help-body p,.context-help-body li{font-size:.82rem}.context-help-body code{background:var(--surface-2);padding:1px 5px;border-radius:5px}
.placeholder-module{display:grid;place-items:center;min-height:360px;text-align:center;padding:34px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface)}.placeholder-module i{font-size:2rem;color:var(--accent-strong);margin-bottom:12px}.placeholder-module p{color:var(--muted);max-width:620px}
@media(max-width:991.98px){.core-grid{grid-template-columns:1fr}}

/* Phase 2B People reference module */
.cell-subtext{display:block;color:var(--muted);font-size:.68rem;margin-top:2px}.form-section{padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.form-section h3{font-size:.92rem;margin:0}.section-hint{font-size:.75rem;color:var(--muted);margin:3px 0 0}.repeater-list{display:grid;gap:10px;margin-top:12px}.repeater-row{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.entity-detail-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:2890}.entity-detail-drawer{position:fixed;top:0;bottom:0;right:0;width:min(520px,94vw);background:var(--surface);z-index:2900;box-shadow:var(--shadow-soft);transform:translateX(105%);transition:transform var(--transition);display:flex;flex-direction:column}.entity-detail-open .entity-detail-drawer{transform:none}html[dir=rtl] .entity-detail-drawer{right:auto;left:0;transform:translateX(-105%)}html[dir=rtl] .entity-detail-open .entity-detail-drawer{transform:none}.entity-detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--border)}.entity-detail-body{padding:18px;overflow:auto}.structured-detail{display:grid}.structured-detail>div{display:grid;grid-template-columns:minmax(130px,.65fr) minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--border)}.structured-detail span{color:var(--muted);font-size:.76rem}.structured-detail strong{font-size:.82rem}.structured-list{display:grid;gap:8px}.structured-list>div{display:grid;grid-template-columns:90px 1fr auto;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm)}.structured-list small{color:var(--accent-strong);font-weight:700}.app-modal{background:var(--surface);color:var(--text);border:1px solid var(--border)}

/* THE CORE reference table + dedicated form UX */
.app-table{--bs-table-color:var(--ui-text,var(--text));--bs-table-bg:var(--surface);--bs-table-border-color:var(--border);--bs-table-accent-bg:transparent;--bs-table-striped-bg:var(--surface-2);--bs-table-hover-bg:var(--accent-soft);color:var(--ui-text,var(--text))!important;background:var(--surface)!important}
.app-table>:not(caption)>*>*{color:inherit!important;background-color:var(--surface)!important;box-shadow:none!important}
.app-table thead>:not(caption)>*>*{background-color:var(--surface-2)!important}.app-table tbody tr:hover>*{background-color:var(--accent-soft)!important}
.app-table-shell[data-table-fit="content"]{width:fit-content;max-width:100%}.app-table-shell[data-table-fit="content"]>.table-responsive{width:auto;max-width:100%;overflow-x:auto!important}.app-table[data-table-fit="content"]{width:max-content!important;min-width:0!important;max-width:none!important;table-layout:auto!important}.app-table[data-table-fit="content"] th,.app-table[data-table-fit="content"] td{width:auto;min-width:0;max-width:320px;white-space:nowrap}.app-table[data-table-fit="content"] th:first-child,.app-table[data-table-fit="content"] td:first-child{min-width:220px;max-width:280px;white-space:normal}.app-table[data-table-fit="content"] th:last-child,.app-table[data-table-fit="content"] td:last-child{width:58px;min-width:58px;max-width:58px}
.panel-fit-content{width:fit-content;max-width:100%}.panel-fit-content>.panel-header{min-width:min(720px,100%)}
.form-page{max-width:1180px}.form-page form{display:grid;gap:var(--page-gap)}.form-page-section{width:100%}.panel-header-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.person-identity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-field{display:grid;gap:6px;min-width:0}.form-field>span{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.035em}.form-field>small{font-size:.68rem;color:var(--muted)}.form-field.span-2{grid-column:span 2}
.repeater-list{display:grid;gap:10px}.repeater-row{display:grid;gap:10px;align-items:end;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:12px}.contact-repeater-row{grid-template-columns:minmax(130px,.7fr) minmax(250px,1.4fr) minmax(150px,.8fr) auto 42px}.address-repeater-row{grid-template-columns:minmax(120px,.6fr) minmax(240px,1.2fr) minmax(130px,.8fr) minmax(140px,.9fr) minmax(110px,.6fr) 100px auto 42px}.repeater-primary{min-height:var(--control-h);display:flex;align-items:center;gap:8px;white-space:nowrap}.form-guidance{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--accent-soft)}.form-guidance>i{color:var(--accent-strong);margin-top:2px}.form-guidance>div{display:grid;gap:2px}.form-guidance strong{font-size:.76rem}.form-guidance span{font-size:.7rem;color:var(--muted)}.form-page-actions{position:sticky;bottom:10px;z-index:20;display:flex;justify-content:flex-end;gap:8px;width:fit-content;max-width:100%;margin-inline-start:auto;padding:8px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(10px)}.uppercase-input{text-transform:uppercase}.detail-section-title{font-size:.82rem;margin:20px 0 8px}.detail-actions{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:1050px){.person-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-repeater-row{grid-template-columns:minmax(130px,.7fr) minmax(220px,1.2fr) minmax(140px,.7fr) auto 42px}.address-repeater-row{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){.panel-fit-content,.app-table-shell[data-table-fit="content"]{width:100%}.person-identity-grid{grid-template-columns:1fr}.form-field.span-2{grid-column:auto}.panel-header-actions{flex-direction:column}.panel-header-actions>.btn{width:100%;justify-content:center}.contact-repeater-row,.address-repeater-row{grid-template-columns:1fr}.repeater-primary{min-height:auto;padding:4px 0}.repeater-remove{justify-self:end}.form-page-actions{position:static;width:100%}.form-page-actions .btn{flex:1;justify-content:center}}


/* =====================================================================
   THE CORE — Table width modes v2 + header inheritance
   auto = comfortable preferred width, fit = tight, fill = viewport width.
   ===================================================================== */

/* Header labels never paint independent rectangles: inherit the TH surface. */
.app-table-shell thead th .tc-th-inner,
.app-table-shell thead th .tc-th-content,
.app-table-shell thead th .tc-th-content *,
.app-table thead th > :where(strong,small,span,div,bdi){
  background:transparent!important;
  background-color:transparent!important;
  color:inherit!important;
  box-shadow:none!important;
}

/* Balanced default for normal administrative tables. */
.panel-auto-width{
  width:min(100%,var(--table-panel-preferred,1180px));
  max-width:100%;
}
.app-table-shell[data-table-fit="auto"]{
  width:100%;
  max-width:100%;
}
.app-table-shell[data-table-fit="auto"]>.table-responsive{
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
}
.app-table[data-table-fit="auto"]{
  width:100%!important;
  min-width:920px!important;
  table-layout:auto!important;
}
.app-table[data-table-fit="auto"] th,
.app-table[data-table-fit="auto"] td{
  white-space:nowrap;
}
.app-table[data-table-fit="auto"] th:first-child,
.app-table[data-table-fit="auto"] td:first-child{
  white-space:normal;
}

/* Explicit fill remains available for matrices/dashboards. */
.app-table-shell[data-table-fit="fill"],
.app-table[data-table-fit="fill"]{
  width:100%!important;
  max-width:100%!important;
}
.app-table[data-table-fit="fill"]{
  table-layout:fixed!important;
}

.system-health-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--page-gap);
}
.system-health-card{
  padding:16px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--surface);
}
.system-health-card .metric{
  font-size:1.45rem;
  font-weight:850;
  color:var(--text);
}
.system-health-card .label{
  color:var(--muted);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.system-health-card .sub{
  color:var(--muted);
  font-size:.72rem;
  margin-top:4px;
}
.health-indicator{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:999px;
  padding:5px 9px;
  font-size:.7rem;
  font-weight:800;
  border:1px solid var(--border);
}
.health-indicator.pass{color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}
.health-indicator.fail{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}
.health-indicator.warn{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent)}

.validator-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.75fr);
  gap:var(--page-gap);
  align-items:start;
}
.validator-editor{
  width:100%;
  min-height:420px;
  resize:vertical;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:.76rem;
  line-height:1.5;
  tab-size:2;
}
.validator-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.validator-dropzone{
  border:1px dashed var(--border-strong);
  border-radius:var(--radius-md);
  padding:16px;
  background:var(--surface-2);
}
.validator-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:12px;
}
.validator-summary>div{
  padding:10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.validator-summary strong{display:block;font-size:1.15rem}
.validator-result-pass{color:var(--success)}
.validator-result-fail{color:var(--danger)}
.code-json{
  white-space:pre-wrap;
  word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:.72rem;
  background:var(--surface-2);
  border:1px solid var(--border);
  border-radius:9px;
  padding:10px;
}
.system-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.system-detail-grid>div{
  border:1px solid var(--border);
  border-radius:9px;
  padding:9px 10px;
  background:var(--surface-2);
}
.system-detail-grid span{
  display:block;
  color:var(--muted);
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.system-detail-grid strong{
  display:block;
  margin-top:3px;
  font-size:.78rem;
  font-weight:700;
  word-break:break-word;
}
@media(max-width:1100px){
  .system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .validator-layout{grid-template-columns:1fr}
}
@media(max-width:700px){
  .system-health-grid,.system-detail-grid{grid-template-columns:1fr}
  .app-table[data-table-fit="auto"]{min-width:780px!important}
}


/* =====================================================================
   THE CORE — Administrative table layout v3
   Desktop fits available panel; narrow screens scroll.
   ===================================================================== */
.panel-auto-width{
  width:min(100%,1280px)!important;
  max-width:100%!important;
}
.app-table-shell[data-table-fit="auto"],
.app-table-shell[data-table-fit="auto"]>.table-responsive{
  width:100%!important;
  max-width:100%!important;
}
.app-table-shell[data-table-fit="auto"]>.table-responsive{
  overflow-x:visible!important;
}
.app-table[data-table-fit="auto"]{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.app-table[data-table-fit="auto"] th,
.app-table[data-table-fit="auto"] td{
  min-width:0!important;
  max-width:none!important;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}
.app-table[data-table-fit="auto"] th,
.app-table[data-table-fit="auto"] td{
  white-space:nowrap;
}
.app-table[data-table-fit="auto"] th:first-child,
.app-table[data-table-fit="auto"] td:first-child{
  white-space:normal;
  overflow-wrap:anywhere;
}
.app-table[data-table-fit="auto"] .cell-subtext{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:900px){
  .app-table-shell[data-table-fit="auto"]>.table-responsive{
    overflow-x:auto!important;
  }
  .app-table[data-table-fit="auto"]{
    min-width:860px!important;
  }
}


/* =====================================================================
   THE CORE — Table layout contract v4 (authoritative overrides)
   ===================================================================== */

/* A normal admin table consumes its panel width, never more, on desktop. */
.people-directory-panel,
.system-log-table,
.system-audit-table{
  width:100%;
  max-width:100%;
}

.app-table-shell[data-table-fit="auto"]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.app-table-shell[data-table-fit="auto"]>.table-responsive{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
}
.app-table[data-table-fit="auto"]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
.app-table[data-table-fit="auto"] th,
.app-table[data-table-fit="auto"] td{
  min-width:0!important;
  max-width:none!important;
  padding-inline:12px!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-table[data-table-fit="auto"] th:first-child,
.app-table[data-table-fit="auto"] td:first-child{
  white-space:normal;
}
.app-table[data-table-fit="auto"] .cell-subtext{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* People proportions are intentional and sum to 100%. */
.people-table .col-person{width:24%}
.people-table .col-contact{width:22%}
.people-table .col-location{width:14%}
.people-table .col-language{width:8%}
.people-table .col-access{width:14%}
.people-table .col-status{width:11%}
.people-table .col-actions{width:7%}

/* Pills describe content; they never stretch to fill a table cell. */
.app-table .status-badge{
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  justify-content:flex-start!important;
  padding-inline:9px!important;
}

/* Action cells stay compact. */
.app-table .row-actions,
.app-table .table-actions-col{
  width:64px!important;
  min-width:64px!important;
  max-width:64px!important;
  text-align:center!important;
  overflow:visible!important;
}
.app-table .row-actions .icon-button{
  width:34px!important;
  height:34px!important;
}

/* Table header labels inherit the TH. No independent blocks. */
.app-table thead th,
.app-table thead th .tc-th-inner,
.app-table thead th .tc-th-content,
.app-table thead th .tc-th-content *{
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
}
.app-table thead th{
  background:var(--surface-2)!important;
}

/* Row/action menus are portaled to body, outside every table overflow box. */
.core-action-menu{
  position:fixed;
  z-index:6000;
  min-width:190px;
  max-width:min(280px,calc(100vw - 16px));
  padding:5px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  box-shadow:0 18px 46px rgba(0,0,0,.22);
}
.core-action-menu-item{
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  border:0;
  border-radius:7px;
  padding:9px 10px;
  background:transparent;
  color:var(--text);
  font-size:.78rem;
  text-align:start;
}
.core-action-menu-item:hover,.core-action-menu-item:focus{
  background:var(--accent-soft);
  color:var(--accent-strong);
}
.core-action-menu-item.is-danger{color:var(--danger)}
.core-action-menu-item i{width:17px;text-align:center;color:currentColor}
.core-action-menu-separator{height:1px;background:var(--border);margin:4px}

/* Horizontal scrolling is a small-screen fallback only. */
@media(max-width:820px){
  .app-table-shell[data-table-fit="auto"]>.table-responsive{
    overflow-x:auto!important;
    overscroll-behavior-inline:contain;
  }
  .app-table[data-table-fit="auto"]{
    min-width:800px!important;
  }
}

/* Validator is a real workspace, not a tiny textarea. */
.validator-editor{
  min-height:clamp(560px,64vh,860px)!important;
}
.validator-suite-expanded{
  position:fixed!important;
  inset:14px!important;
  z-index:5900!important;
  margin:0!important;
  overflow:auto!important;
  box-shadow:0 28px 70px rgba(0,0,0,.3)!important;
}
.validator-suite-expanded .validator-editor{
  min-height:calc(100vh - 220px)!important;
  resize:none!important;
}

/* Error/Audit header controls */
.system-table-header-controls{
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
}
.compact-field{min-width:180px}

.system-detail-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:6090}
.system-detail-drawer{position:fixed;top:0;bottom:0;right:0;width:min(620px,94vw);z-index:6100;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border-inline-start:1px solid var(--border);box-shadow:0 26px 70px rgba(0,0,0,.28);transform:translateX(105%);transition:transform var(--transition)}
html[dir="rtl"] .system-detail-drawer{right:auto;left:0;transform:translateX(-105%);border-inline-start:0;border-inline-end:1px solid var(--border)}
body.system-detail-open .system-detail-drawer{transform:none}
#suiteEditorWrap[hidden]{display:none!important}
.validator-editor{min-height:360px!important;height:48vh;max-height:720px;resize:vertical!important}
.validator-mode-note{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;color:var(--muted);font-size:.72rem}
.validator-mode-note strong{color:var(--text)}

.system-log-table .table-actions-col,.system-audit-table .table-actions-col,.system-log-table .row-actions,.system-audit-table .row-actions{width:64px!important;min-width:64px!important;max-width:64px!important;text-align:center!important;overflow:visible!important}
.system-log-table .row-actions .icon-button,.system-audit-table .row-actions .icon-button{width:34px!important;height:34px!important}
.system-record-page .structured-data-grid small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;word-break:break-all}
.validator-mode-field{min-width:210px}
#suiteEditorWrap[hidden]{display:none!important}

/* === StageDraws ReusableTable transplanted into Core === */
.core-table-host{min-width:0;width:100%}.sd-table-component{position:relative;min-width:0;width:100%}
.sd-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sd-table-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sd-table-tools .btn{display:inline-flex;align-items:center;gap:7px}
.grid-search{display:flex;align-items:center;gap:8px;min-width:min(340px,100%);height:var(--control-h);padding:0 11px;border:1px solid var(--border);border-radius:9px;background:var(--input-bg);color:var(--muted)}.grid-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text)}
.sd-table-wrap{position:relative;width:100%;max-width:100%;overflow:auto!important;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.sd-table-wrap::-webkit-scrollbar{height:9px}.sd-table-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}
.sd-data-table{width:100%;min-width:max-content;border-collapse:separate;border-spacing:0;table-layout:auto}.sd-data-table th,.sd-data-table td{padding:var(--cell-y) 12px;white-space:nowrap;vertical-align:middle;color:var(--ui-text,var(--text))}.sd-data-table th{position:sticky;top:0;z-index:2;background:var(--surface-2);border-bottom:1px solid var(--border-strong);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.sd-data-table td{background:var(--surface);border-bottom:1px solid var(--border);font-size:.78rem}.sd-data-table tbody tr:hover td,.sd-data-table tbody tr.is-selected td{background:var(--accent-soft)!important}.cell-subtext{display:block;margin-top:3px;color:var(--muted);font-size:.68rem;white-space:nowrap}
.sd-th{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:max-content}.sd-sort-label,.sd-filter-btn{border:0;background:transparent!important;color:inherit;padding:0}.sd-sort-label{font-weight:800;text-align:start;flex:1}.sd-filter-btn{width:24px;height:24px;border-radius:6px;color:var(--muted)}.sd-filter-btn:hover,.sd-filter-btn.is-active{background:var(--accent-soft)!important;color:var(--accent-strong)}
.sd-actions-th,.sd-actions-cell{position:sticky!important;inset-inline-end:0;z-index:4;width:40px;min-width:40px;max-width:40px;padding-inline:5px!important;text-align:center;box-shadow:-8px 0 12px -12px rgba(0,0,0,.35)}html[dir="rtl"] .sd-actions-th,html[dir="rtl"] .sd-actions-cell{box-shadow:8px 0 12px -12px rgba(0,0,0,.35)}.sd-actions-th{background:var(--surface-2)!important;z-index:5}.sd-actions-cell{background:var(--surface)!important}.sd-data-table tbody tr:hover .sd-actions-cell{background:var(--accent-soft)!important}
.sd-row-actions-button{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted)}.sd-row-actions-button:hover{background:var(--accent-soft);border-color:var(--border);color:var(--accent-strong)}
.sd-row-actions-menu{position:fixed;z-index:6200;min-width:190px;padding:5px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.sd-row-actions-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:7px;padding:8px 10px;background:transparent;color:var(--text);font-size:.78rem;text-align:start}.sd-row-actions-menu button:hover{background:var(--accent-soft);color:var(--accent-strong)}.sd-row-actions-menu button.is-danger{color:var(--danger)}
.sd-table-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 2px 0;color:var(--muted);font-size:.69rem}.sd-footer-size{display:flex;align-items:center;gap:7px}.sd-footer-size .form-select{width:auto;min-width:70px}.sd-showing-info{text-align:center}.sd-pagination .page-link{background:var(--surface);border-color:var(--border);color:var(--text);min-width:30px;text-align:center}.sd-page-info{min-width:96px!important;color:var(--muted)!important}
.column-check{display:flex;align-items:center;gap:7px;padding:5px 7px;color:var(--text);font-size:.75rem}.sd-picker-head{padding:5px 8px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.sd-pane-picker{min-width:260px}.sd-search-panes-workspace{margin-bottom:10px}.sd-search-panes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.sd-grid-empty{padding:18px;text-align:center;color:var(--muted)}
.sd-filter-panel{position:fixed;z-index:6250;width:min(410px,calc(100vw - 16px));max-height:78vh;overflow:auto;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.sd-filter-panel[hidden]{display:none!important}.sd-filter-head,.sd-filter-footer,.sd-filter-values-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.sd-filter-sort{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px}.sd-filter-condition{display:flex;flex-direction:column;gap:7px;padding:9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.sd-filter-condition-values{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sd-filter-value-list{max-height:205px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.sd-filter-value-list label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px;border-top:1px solid var(--border);font-size:.7rem}
@media(max-width:800px){.sd-table-footer{grid-template-columns:1fr auto}.sd-showing-info{grid-column:1/-1;grid-row:2;text-align:start}}@media(max-width:760px){.sd-table-toolbar{align-items:stretch}.sd-table-tools{width:100%}.sd-table-tools .btn span{display:none}.grid-search{width:100%;min-width:0}}

/* Core responsive record-form cards */
.core-record-form{width:min(100%,1260px)}.core-form-stack{display:grid;gap:var(--page-gap)}.core-form-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:start}.core-form-field{display:grid;gap:6px;min-width:0}.core-form-field>span{font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.core-form-field>small{color:var(--muted);font-size:.67rem;min-height:1em}.core-form-field.is-wide{grid-column:span 2}
.core-repeater-list{display:grid;gap:12px}.core-repeater-card{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.core-repeater-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:start}.core-repeater-fields .is-wide{grid-column:span 2}.core-repeater-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.core-primary-control{display:flex;align-items:center;gap:8px;white-space:nowrap}.core-form-actions{position:sticky;bottom:10px;z-index:40;display:flex;justify-content:flex-end;gap:8px;width:fit-content;margin-inline-start:auto;padding:8px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-soft)}
@media(max-width:760px){.core-form-field.is-wide,.core-repeater-fields .is-wide{grid-column:auto}.core-form-actions{position:static;width:100%}.core-form-actions .btn{flex:1}.core-repeater-actions{justify-content:space-between}}


/* =====================================================================
   THE CORE — Final generic detail-page contract
   Derived from the proven Cave V2 user_view/detail-kv-table pattern.
   ===================================================================== */
.entity-detail-page{display:grid;gap:var(--page-gap)}
.entity-detail-heading{margin-bottom:0!important}
.entity-summary-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:22px;
  align-items:center;
  padding:22px 24px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}
.entity-avatar-lg{
  inline-size:76px;
  block-size:76px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:var(--accent-soft);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));
  font-size:1.9rem;
  font-weight:700;
  color:var(--accent-strong);
}
.entity-summary-copy{min-width:0}
.entity-summary-copy h2{margin:0 0 4px;font-size:1.28rem}
.entity-summary-copy p{margin:0;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.entity-summary-copy .tag-list{margin-top:8px}

.detail-summary-card{min-height:112px;padding:18px 20px;gap:18px}
.detail-table-panel{padding:0!important;overflow:hidden!important;background:var(--surface)!important}
.detail-table-panel>.panel-header{
  padding:16px 18px!important;
  border-block-end:1px solid var(--border)!important;
  background:color-mix(in srgb,var(--surface) 95%,var(--surface-2))!important;
}
.detail-table-panel>.panel-header h2{margin:0!important;font-size:1rem!important;font-weight:700!important;line-height:1.25!important}
.detail-table-panel>.panel-header p{margin:4px 0 0!important;color:var(--muted)!important;font-size:.78rem!important;line-height:1.45!important}
.detail-table-panel>.table-responsive{margin:0!important;border:0!important;border-radius:0!important}
.detail-table-panel .app-table{margin:0!important;border:0!important;border-radius:0!important;table-layout:fixed!important;width:100%!important}
.detail-table-panel .app-table th,.detail-table-panel .app-table td{padding:12px 16px!important;vertical-align:middle!important;border-block-end:1px solid var(--border)!important;text-align:start!important}
.detail-table-panel .app-table tbody tr:last-child>th,.detail-table-panel .app-table tbody tr:last-child>td{border-block-end:0!important}
.detail-table-panel .app-table thead th{background:var(--surface-2)!important}

.detail-kv-table th{
  width:18%!important;
  color:var(--muted)!important;
  font-size:.7rem!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:.01em!important;
  background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))!important;
}
.detail-kv-table td{
  width:32%!important;
  font-size:.88rem!important;
  font-weight:500!important;
  background:var(--surface)!important;
}
.detail-kv-table td>bdi,.detail-kv-table td>span,.detail-kv-table td>strong{
  display:inline-block;
  max-width:100%;
  overflow-wrap:anywhere;
}
.detail-secondary{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
  font-weight:500;
  overflow-wrap:anywhere;
}
.detail-code-panel{
  margin:0;
  padding:14px 16px;
  white-space:pre-wrap;
  word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:.73rem;
  line-height:1.5;
  color:var(--text);
  background:var(--surface);
}

/* Stage table final toolbar defaults */
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn > span{display:none}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn{gap:0;min-width:34px;justify-content:center}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn>i{margin-inline:0!important}
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn:not(.sd-toolbar-text-toggle){
  padding-left:0!important;
  padding-right:0!important;
  width:var(--control-h);
  min-width:var(--control-h)!important;
  max-width:var(--control-h);
}
.sd-table-component.toolbar-text-visible .sd-table-tools .btn{width:auto;max-width:none;padding-inline:.7rem!important}
.sd-toolbar-text-toggle{width:auto!important;max-width:none!important;padding-inline:9px!important;gap:5px!important}
.sd-toolbar-text-toggle>span{display:inline!important}
.sd-toolbar-text-toggle b{font-size:.8rem;line-height:1}
.sd-table-component.toolbar-text-visible .sd-toolbar-text-toggle{border-color:var(--accent);color:var(--accent-strong)}

/* Theme-native checkboxes used everywhere inside ReusableTable */
.sd-check-input,
.sd-table-component input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  inline-size:17px;
  block-size:17px;
  min-inline-size:17px;
  margin:0 7px 0 0;
  border:1px solid var(--border-strong);
  border-radius:5px;
  background-color:var(--input-bg);
  background-position:center;
  background-repeat:no-repeat;
  background-size:12px 12px;
  vertical-align:middle;
  cursor:pointer;
}
[dir="rtl"] .sd-check-input,[dir="rtl"] .sd-table-component input[type="checkbox"]{margin:0 0 0 7px}
.sd-check-input:hover,.sd-table-component input[type="checkbox"]:hover{border-color:var(--accent)}
.sd-check-input:focus-visible,.sd-table-component input[type="checkbox"]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}
.sd-check-input:checked,.sd-table-component input[type="checkbox"]:checked{
  border-color:var(--accent);
  background-color:var(--accent);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5 6.3 12 13 4.5'/%3E%3C/svg%3E");
}
.column-check,.sd-pane-picker .dropdown-item{
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  color:var(--text)!important;
  border-radius:7px;
}
.column-check:hover,.sd-pane-picker .dropdown-item:hover{background:var(--accent-soft)!important}

/* The generated page-size select becomes our portalled app-select. */
.sd-footer-size .app-select{min-width:86px}
.sd-footer-size .app-select-button{height:34px}
.sd-footer-size .app-select-native{display:none!important}

/* Show deleted button active state */
.sd-table-tools [data-show-deleted].active{
  background:var(--accent-soft)!important;
  color:var(--accent-strong)!important;
  border-color:color-mix(in srgb,var(--accent) 38%,var(--border))!important;
}

@media(max-width:720px){
  .entity-summary-card{grid-template-columns:56px minmax(0,1fr);gap:14px;padding:16px}
  .entity-avatar-lg{inline-size:56px;block-size:56px;border-radius:14px;font-size:1.3rem}
  .detail-kv-table{table-layout:auto!important;min-width:0!important}
  .detail-kv-table tbody,.detail-kv-table tr,.detail-kv-table th,.detail-kv-table td{display:block!important;width:100%!important;max-width:100%!important}
  .detail-kv-table tr{display:grid!important;grid-template-columns:minmax(108px,34%) minmax(0,1fr)!important;border-block-end:1px solid var(--border)!important}
  .detail-kv-table tr>th,.detail-kv-table tr>td{display:block!important;border:0!important;padding:10px 12px!important}
  .detail-kv-table tr>th:nth-of-type(1){grid-column:1;grid-row:1}
  .detail-kv-table tr>td:nth-of-type(1){grid-column:2;grid-row:1}
  .detail-kv-table tr>th:nth-of-type(2){grid-column:1;grid-row:2}
  .detail-kv-table tr>td:nth-of-type(2){grid-column:2;grid-row:2}
}


/* =====================================================================
   THE CORE — Generic table toolbar final polish
   ===================================================================== */
.sd-table-component:not(.toolbar-text-visible) .sd-toolbar-text-toggle>span{
  display:none!important;
}
.sd-table-component.toolbar-text-visible .sd-toolbar-text-toggle>span{
  display:inline!important;
}
.sd-toolbar-text-toggle{
  width:var(--control-h)!important;
  min-width:var(--control-h)!important;
  max-width:var(--control-h)!important;
  padding-inline:0!important;
  justify-content:center!important;
  gap:0!important;
}
.sd-table-component.toolbar-text-visible .sd-toolbar-text-toggle{
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  padding-inline:9px!important;
  gap:5px!important;
}
.sd-export-menu .dropdown-item{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
}
.sd-export-menu .dropdown-item i{
  width:17px;
  text-align:center;
  color:var(--muted);
}
.sd-export-menu .dropdown-item:hover i{
  color:var(--accent-strong);
}

/* Error-console page control row */
.error-console-controls{
  display:flex;
  align-items:end;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.error-console-controls .core-form-field{
  min-width:190px;
}
@media(max-width:720px){
  .error-console-controls{
    width:100%;
    justify-content:stretch;
  }
  .error-console-controls .core-form-field{
    min-width:min(100%,220px);
    flex:1;
  }
}


/* =====================================================================
   THE CORE — Audit readable-change contract
   ===================================================================== */
.audit-change-table{
  width:100%;
  table-layout:fixed;
}
.audit-change-table thead th{
  background:var(--surface-2)!important;
  font-size:.7rem!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}
.audit-change-table thead th:first-child{width:25%}
.audit-change-table thead th:nth-child(2),
.audit-change-table thead th:nth-child(3){width:37.5%}
.audit-change-table tbody th{
  background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))!important;
  color:var(--text)!important;
  font-size:.78rem!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:0!important;
  text-align:start!important;
  vertical-align:top!important;
}
.audit-change-table td{
  background:var(--surface)!important;
  font-size:.8rem!important;
  font-weight:500!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  vertical-align:top!important;
}
.audit-change-table .detail-secondary{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:.63rem;
}

.audit-technical-panel{
  padding:0!important;
  overflow:hidden;
}
.audit-technical-panel>.panel-header{
  padding:16px 18px!important;
  border-block-end:1px solid var(--border)!important;
}
.audit-technical-list{
  display:grid;
}
.audit-json-details{
  border-block-end:1px solid var(--border);
}
.audit-json-details:last-child{
  border-block-end:0;
}
.audit-json-details>summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 16px;
  cursor:pointer;
  color:var(--text);
  background:var(--surface);
  font-size:.78rem;
  font-weight:700;
  user-select:none;
}
.audit-json-details>summary::-webkit-details-marker{display:none}
.audit-json-details>summary>span{
  display:flex;
  align-items:center;
  gap:9px;
}
.audit-json-details>summary>span>i{
  width:18px;
  text-align:center;
  color:var(--muted);
}
.audit-json-details>summary:hover{
  background:var(--accent-soft);
  color:var(--accent-strong);
}
.audit-details-chevron{
  color:var(--muted);
  transition:transform var(--transition);
}
.audit-json-details[open] .audit-details-chevron{
  transform:rotate(180deg);
}
.audit-json-details .detail-code-panel{
  border-block-start:1px solid var(--border);
  background:var(--surface-2);
  max-height:460px;
  overflow:auto;
}

@media(max-width:760px){
  .audit-change-table{
    min-width:680px;
  }
}

/* Full error traces are forensic data: never ellipsize them. */
.error-full-trace,.detail-code-panel.error-full-trace{
  width:100%;max-width:100%;max-height:none!important;overflow:auto!important;
  white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important;
  text-overflow:clip!important;
}

.status-badge.warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 38%,var(--border));background:color-mix(in srgb,var(--warning) 11%,transparent)}
.status-badge.critical{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 60%,var(--border));background:color-mix(in srgb,var(--danger) 18%,transparent);font-weight:850}
.status-badge.security{color:color-mix(in srgb,var(--accent-strong) 72%,#6d3f83);border-color:color-mix(in srgb,var(--accent) 44%,var(--border));background:color-mix(in srgb,var(--accent) 13%,transparent)}


/* =====================================================================
   THE CORE — Validator Workbench
   ===================================================================== */
.validator-workbench{
  display:grid;
  gap:var(--page-gap);
}
.validator-control-panel{
  width:min(100%,1280px);
}
.validator-runner-grid{
  display:grid;
  grid-template-columns:minmax(280px,1.6fr) minmax(220px,.8fr) auto;
  gap:12px;
  align-items:end;
}
.validator-suite-select,
.validator-mode-select{
  min-width:0;
}
.validator-primary-actions{
  display:flex;
  align-items:center;
  gap:8px;
  padding-bottom:1px;
  white-space:nowrap;
}
.validator-run-all-btn{
  border-color:color-mix(in srgb,var(--accent) 35%,var(--border))!important;
}
.validator-import-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--border);
}
.validator-current-suite{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 9px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:.7rem;
  font-weight:700;
}
.validator-current-suite[data-kind="validation"]{
  color:var(--success);
  border-color:color-mix(in srgb,var(--success) 35%,var(--border));
}
.validator-current-suite[data-kind="fixture"]{
  color:var(--warning);
  border-color:color-mix(in srgb,var(--warning) 35%,var(--border));
}

.validator-advanced{
  margin-top:14px;
  border-top:1px solid var(--border);
}
.validator-advanced>summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 2px 4px;
  cursor:pointer;
  color:var(--muted);
  font-size:.74rem;
  font-weight:800;
}
.validator-advanced>summary::-webkit-details-marker{display:none}
.validator-advanced>summary>span{
  display:flex;
  align-items:center;
  gap:8px;
}
.validator-details-chevron{
  transition:transform var(--transition);
}
.validator-advanced[open] .validator-details-chevron{
  transform:rotate(180deg);
}
.validator-advanced-body{
  display:grid;
  gap:10px;
  padding-top:10px;
}
.validator-advanced-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.validator-editor{
  width:100%;
  min-height:340px!important;
  max-height:680px!important;
  resize:vertical!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:.74rem;
  line-height:1.45;
}

.validator-results-panel{
  min-height:250px;
}
.validator-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  padding:16px 18px 0;
}
.validator-summary>div{
  padding:12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.validator-summary span{
  display:block;
  color:var(--muted);
  font-size:.67rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.validator-summary strong{
  display:block;
  margin-top:2px;
  font-size:1.2rem;
}
.validator-summary-empty{
  opacity:.6;
}
.validator-result-pass{color:var(--success)}
.validator-result-fail{color:var(--danger)}

.validator-results-list{
  display:grid;
  gap:10px;
  padding:14px 18px 18px;
}
.validator-empty-state{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:90px;
  color:var(--muted);
  font-size:.76rem;
}
.validator-suite-result{
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface);
  overflow:hidden;
}
details.validator-suite-result>summary{
  list-style:none;
  cursor:pointer;
}
details.validator-suite-result>summary::-webkit-details-marker{display:none}
.validator-suite-result-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  background:var(--surface-2);
}
.validator-suite-result-head>div{
  display:grid;
  gap:2px;
  min-width:0;
}
.validator-suite-result-head strong{
  font-size:.78rem;
}
.validator-suite-result-head small{
  color:var(--muted);
  font-size:.67rem;
}
.validator-suite-cases{
  padding:8px;
}
.validator-case-list{
  display:grid;
  gap:5px;
}
.validator-case{
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
}
.validator-case>summary{
  list-style:none;
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  cursor:pointer;
  background:var(--surface);
}
.validator-case>summary::-webkit-details-marker{display:none}
.validator-case.is-pass .validator-case-icon{
  color:var(--success);
}
.validator-case.is-fail .validator-case-icon{
  color:var(--danger);
}
.validator-case-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.74rem;
  font-weight:650;
}
.validator-case>summary small{
  color:var(--muted);
  font-size:.64rem;
}
.validator-case-detail{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:9px;
  border-top:1px solid var(--border);
  background:var(--surface-2);
}
.validator-case-detail strong{
  display:block;
  margin-bottom:4px;
  font-size:.68rem;
}
.validator-case-detail .code-json{
  max-height:300px;
  overflow:auto;
}

@media(max-width:1050px){
  .validator-runner-grid{
    grid-template-columns:1fr 1fr;
  }
  .validator-primary-actions{
    grid-column:1/-1;
  }
}
@media(max-width:720px){
  .validator-runner-grid{
    grid-template-columns:1fr;
  }
  .validator-primary-actions{
    grid-column:auto;
    display:grid;
    grid-template-columns:1fr;
  }
  .validator-primary-actions .btn{
    width:100%;
    justify-content:center;
  }
  .validator-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .validator-case-detail{
    grid-template-columns:1fr;
  }
}


/* Validator runner final alignment */
.validator-runner-grid{
  align-items:end!important;
}
.validator-suite-select,
.validator-mode-select{
  align-self:end;
}
.validator-suite-select>small{
  min-height:1em;
}
.validator-mode-select>small{
  display:none!important;
}
.validator-primary-actions{
  align-self:end;
  padding-bottom:0!important;
}
.validator-import-row{
  justify-content:flex-start;
}
.validator-current-suite{
  display:none!important;
}


/* Security Monitor */
.security-monitor{
  display:grid;
  gap:var(--page-gap);
}
.security-summary-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.security-filter-row{
  display:flex;
  align-items:end;
  gap:10px;
  flex-wrap:wrap;
}
.security-filter-row .core-form-field{
  min-width:180px;
}

/* Core generic dialog */
.core-dialog-shell{
  position:fixed;
  inset:0;
  z-index:7000;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(0,0,0,.34);
}
.core-dialog-shell[hidden]{display:none!important}
.core-dialog-card{
  width:min(720px,100%);
  max-height:min(820px,calc(100vh - 40px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  overflow:hidden;
}
.core-dialog-header{
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  border-bottom:1px solid var(--border);
}
.core-dialog-header h2{margin:2px 0 0}
.core-dialog-body{
  overflow:auto;
  padding:18px;
}
.core-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:12px 18px;
  border-top:1px solid var(--border);
  background:var(--surface-2);
}
body.core-dialog-open{overflow:hidden}

@media(max-width:1200px){
  .security-summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .security-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .security-filter-row{
    width:100%;
  }
  .security-filter-row .core-form-field{
    flex:1;
    min-width:min(100%,180px);
  }
  .core-dialog-shell{padding:8px}
}

/* === System Health / Diagnostics locked presentation === */
.system-health-main-grid{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(300px,1fr);
  gap:var(--page-gap);
  margin-top:var(--page-gap);
}
.health-component-table{table-layout:fixed;width:100%}
.health-component-table thead th:first-child{width:24%}
.health-component-table thead th:nth-child(2){width:56%}
.health-component-table thead th:last-child{width:20%}
.health-component-table tbody th{
  background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))!important;
  font-size:.76rem!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:0!important;
  text-align:start!important;
}
.health-component-table td{
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.health-tool-list{
  display:grid;
  gap:8px;
  padding:14px 16px 16px;
}
.health-tool-list a{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:9px;
  color:var(--text);
  background:var(--surface);
  text-decoration:none;
}
.health-tool-list a:hover{
  background:var(--accent-soft);
  color:var(--accent-strong);
  border-color:color-mix(in srgb,var(--accent) 30%,var(--border));
}
.health-tool-list a i{text-align:center;color:var(--muted)}
.health-tool-list a small{color:var(--muted);font-size:.66rem}
.health-log-files{
  display:grid;
  gap:0;
  border-top:1px solid var(--border);
}
.health-log-files>div{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto 90px;
  align-items:center;
  gap:12px;
  padding:10px 16px;
  border-bottom:1px solid var(--border);
}
.health-log-files>div:last-child{border-bottom:0}
.health-log-files strong{text-align:end}

.diagnostics-panel>.panel-header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
}
.diagnostics-table{
  width:100%;
  table-layout:fixed;
}
.diagnostics-table thead th:nth-child(1){width:30%}
.diagnostics-table thead th:nth-child(2){width:20%}
.diagnostics-table thead th:nth-child(3){width:14%}
.diagnostics-table thead th:nth-child(4){width:36%}
.diagnostics-table tbody th{
  background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))!important;
  text-align:start!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.diagnostics-table td{
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.diagnostics-table code{
  color:var(--muted);
  font-size:.7rem;
}
.diagnostic-failed-row th,.diagnostic-failed-row td{
  background:color-mix(in srgb,var(--danger) 6%,var(--surface))!important;
}

@media(max-width:1050px){
  .system-health-main-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .health-log-files>div{grid-template-columns:1fr auto}
  .health-log-files strong{grid-column:2;text-align:end}
  .diagnostics-table{min-width:760px}
}


/* =====================================================================
   THE CORE — Infrastructure Lock: mobile table toolbar authority
   This block is intentionally last. Older project CSS must not override it.
   ===================================================================== */
@media(max-width:760px){
  .sd-table-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
    align-items:stretch!important;
  }

  .sd-table-toolbar .grid-search{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }

  .sd-table-tools{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
    min-width:0!important;
  }

  /* Collapsed mode: icons only. This wins over every older mobile rule. */
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn > span{
    display:none!important;
    visibility:hidden!important;
    width:0!important;
    max-width:0!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
  }

  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn{
    width:var(--control-h)!important;
    min-width:var(--control-h)!important;
    max-width:var(--control-h)!important;
    height:var(--control-h)!important;
    padding:0!important;
    gap:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 var(--control-h)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }

  .sd-table-component:not(.toolbar-text-visible) .sd-toolbar-text-toggle > span{
    display:none!important;
  }

  .sd-table-component:not(.toolbar-text-visible) .sd-toolbar-text-toggle{
    width:var(--control-h)!important;
    min-width:var(--control-h)!important;
    max-width:var(--control-h)!important;
    flex-basis:var(--control-h)!important;
  }

  /* Explicit user-expanded mode may show labels, but wraps safely. */
  .sd-table-component.toolbar-text-visible .sd-table-tools .btn{
    width:auto!important;
    max-width:100%!important;
    min-width:var(--control-h)!important;
    flex:0 1 auto!important;
    overflow:visible!important;
  }

  .sd-table-component.toolbar-text-visible .sd-table-tools .btn > span{
    display:inline!important;
    visibility:visible!important;
    width:auto!important;
    max-width:none!important;
    overflow:visible!important;
  }
}


/* Keep the deleted count useful when mobile toolbar labels are collapsed. */
@media(max-width:760px){
  .sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter{
    width:auto!important;
    min-width:calc(var(--control-h) + 18px)!important;
    max-width:none!important;
    flex-basis:auto!important;
    padding-inline:6px!important;
    gap:3px!important;
  }
}


/* =====================================================================
   THE CORE — Soft-delete filter: compact segmented control
   ===================================================================== */
.sd-deleted-filter{
  display:inline-flex!important;
  align-items:stretch!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
}
.sd-deleted-filter-main{
  min-height:var(--control-h);
  padding-inline:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.sd-deleted-filter-count{
  min-width:30px;
  min-height:var(--control-h);
  padding-inline:7px;
  border-inline-start:1px solid var(--border);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  background:var(--surface-2);
  color:var(--muted);
}
.sd-deleted-filter.active{
  border-color:color-mix(in srgb,var(--danger) 55%,var(--border))!important;
  color:var(--danger)!important;
}
.sd-deleted-filter.active .sd-deleted-filter-count{
  border-inline-start-color:color-mix(in srgb,var(--danger) 35%,var(--border));
  background:color-mix(in srgb,var(--danger) 8%,var(--surface-2));
  color:var(--danger);
}

/* Collapsed toolbar keeps icon + count as one readable segmented control. */
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter{
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  flex:0 0 auto!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-main{
  width:var(--control-h);
  min-width:var(--control-h);
  padding-inline:0;
  gap:0;
}
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-label{
  display:none!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-count{
  display:inline-flex!important;
  visibility:visible!important;
  width:auto!important;
  max-width:none!important;
  overflow:visible!important;
  margin:0!important;
  padding-inline:6px!important;
}

/* Must override the generic mobile icon-only button width. */
@media(max-width:760px){
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .sd-deleted-filter{
    width:auto!important;
    min-width:auto!important;
    max-width:none!important;
    height:var(--control-h)!important;
    padding:0!important;
    gap:0!important;
    flex:0 0 auto!important;
    overflow:hidden!important;
  }
}


/* Deleted filter count lifecycle/state refinement */
.sd-deleted-filter:not(.has-deleted) .sd-deleted-filter-count{
  opacity:.58;
}
.sd-deleted-filter.has-deleted .sd-deleted-filter-count{
  opacity:1;
  font-weight:850;
}


/* =====================================================================
   THE CORE — Deleted control final fill + generic bulk actions
   ===================================================================== */
.sd-deleted-filter-main{
  background:var(--surface)!important;
}
.sd-deleted-filter-count{
  background:color-mix(in srgb,var(--border) 22%,var(--surface-2))!important;
  color:var(--text)!important;
}
.sd-deleted-filter.has-deleted .sd-deleted-filter-count{
  background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))!important;
}
.sd-deleted-filter.active .sd-deleted-filter-main{
  background:color-mix(in srgb,var(--danger) 5%,var(--surface))!important;
}
.sd-deleted-filter.active .sd-deleted-filter-count{
  background:color-mix(in srgb,var(--danger) 12%,var(--surface-2))!important;
}

/* The generic collapsed-toolbar rule hides direct spans. These two direct
   children are structural segments and must always remain rendered. */
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .sd-deleted-filter > .sd-deleted-filter-main,
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .sd-deleted-filter > .sd-deleted-filter-count{
  display:inline-flex!important;
  visibility:visible!important;
  max-width:none!important;
  overflow:visible!important;
}

.sd-toolbar-separator{
  width:1px;
  height:24px;
  margin-inline:2px;
  background:var(--border);
  flex:0 0 1px;
  align-self:center;
}
.sd-bulk-tools{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.sd-bulk-selected-count{
  min-width:18px;
  height:18px;
  padding-inline:5px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-style:normal;
  font-size:.61rem;
  font-weight:850;
  line-height:1;
  background:var(--accent-soft);
  color:var(--accent-strong);
}
.sd-bulk-tools .btn.is-danger:not(:disabled){
  color:var(--danger);
}
.sd-bulk-tools .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.sd-bulk-select-th,
.sd-bulk-select-cell{
  width:42px;
  min-width:42px;
  max-width:42px;
  text-align:center!important;
  position:sticky;
  inset-inline-start:0;
  z-index:3;
  background:var(--surface)!important;
}
thead .sd-bulk-select-th{
  z-index:5;
  background:var(--surface-2)!important;
}
.sd-data-table tr.is-bulk-selected td,
.sd-data-table tr.is-bulk-selected th{
  background:color-mix(in srgb,var(--accent) 7%,var(--surface))!important;
}

/* In collapsed mode keep Select icon and its selected-count badge readable.
   Delete/Restore stay icon-only like the rest of the toolbar. */
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools [data-bulk-select-toggle]{
  width:auto!important;
  min-width:var(--control-h)!important;
  max-width:none!important;
  padding-inline:6px!important;
  gap:3px!important;
  flex:0 0 auto!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools [data-bulk-select-toggle] > .sd-bulk-selected-count{
  display:inline-flex!important;
  visibility:visible!important;
  width:auto!important;
  max-width:none!important;
  overflow:visible!important;
  margin:0!important;
  padding-inline:5px!important;
}

@media(max-width:760px){
  .sd-toolbar-separator{
    height:22px;
  }
  .sd-bulk-tools{
    gap:4px;
  }
}


/* =====================================================================
   THE CORE — Final toolbar button-group contract
   T / Deleted | [Select Delete Restore] | [Search panes Columns] | Export
   ===================================================================== */
.sd-table-btn-group{
  display:inline-flex!important;
  align-items:center!important;
  gap:0!important;
}
.sd-table-btn-group > .btn,
.sd-table-btn-group > .dropdown > .btn{
  height:var(--control-h)!important;
  min-height:var(--control-h)!important;
  border-radius:0!important;
  margin-inline-start:-1px!important;
}
.sd-table-btn-group > .btn:first-child,
.sd-table-btn-group > .dropdown:first-child > .btn{
  margin-inline-start:0!important;
  border-start-start-radius:8px!important;
  border-end-start-radius:8px!important;
}
.sd-table-btn-group > .btn:last-child,
.sd-table-btn-group > .dropdown:last-child > .btn{
  border-start-end-radius:8px!important;
  border-end-end-radius:8px!important;
}
.sd-table-btn-group > .btn:only-child,
.sd-table-btn-group > .dropdown:only-child > .btn{
  border-radius:8px!important;
}
.sd-table-btn-group > .dropdown{
  display:inline-flex;
}

/* Bulk controls use exactly the same normal toolbar dimensions. */
.sd-bulk-tools > .btn{
  min-width:var(--control-h)!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn{
  width:var(--control-h)!important;
  min-width:var(--control-h)!important;
  max-width:var(--control-h)!important;
  padding:0!important;
  gap:0!important;
  flex:0 0 var(--control-h)!important;
}

/* Selection count is a small overlay badge rather than changing button width. */
.sd-bulk-tools [data-bulk-select-toggle]{
  position:relative;
}
.sd-bulk-selected-count{
  position:absolute;
  inset-block-start:-5px;
  inset-inline-end:-5px;
  min-width:16px;
  height:16px;
  padding-inline:4px;
  border-radius:999px;
  border:1px solid var(--surface);
  font-size:.55rem;
  box-shadow:0 1px 3px rgb(0 0 0 / .08);
}

/* Override earlier expanded-width Select rule. */
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools [data-bulk-select-toggle]{
  width:var(--control-h)!important;
  min-width:var(--control-h)!important;
  max-width:var(--control-h)!important;
  padding:0!important;
  gap:0!important;
  flex:0 0 var(--control-h)!important;
}

/* View tools are a connected pair. */
.sd-view-tools .dropdown > .btn{
  min-width:var(--control-h)!important;
}

@media(max-width:760px){
  .sd-table-btn-group{
    flex:0 0 auto;
  }
  .sd-toolbar-separator{
    margin-inline:3px;
  }
}


/* =====================================================================
   THE CORE — Toolbar visual consistency correction
   Logical groups stay grouped, but buttons retain normal Core appearance.
   ===================================================================== */
.sd-table-btn-group{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
}

/* Undo connected-button treatment. Every control keeps Core's normal shape. */
.sd-table-btn-group > .btn,
.sd-table-btn-group > .dropdown > .btn{
  margin-inline-start:0!important;
  border-radius:8px!important;
  height:var(--control-h)!important;
  min-height:var(--control-h)!important;
}
.sd-table-btn-group > .dropdown{
  display:inline-flex!important;
}

/* Select uses the exact same segmented-counter language as Deleted. */
.sd-select-filter{
  display:inline-flex!important;
  align-items:stretch!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  position:relative!important;
}
.sd-select-filter-main{
  min-height:var(--control-h);
  padding-inline:9px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:5px;
  background:var(--surface)!important;
}
.sd-select-filter-count{
  min-width:30px;
  min-height:var(--control-h);
  padding-inline:7px;
  border-inline-start:1px solid var(--border);
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  background:color-mix(in srgb,var(--border) 22%,var(--surface-2))!important;
  color:var(--text)!important;
}
.sd-select-filter.active{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border))!important;
  color:var(--accent-strong)!important;
}
.sd-select-filter.active .sd-select-filter-main{
  background:color-mix(in srgb,var(--accent) 5%,var(--surface))!important;
}
.sd-select-filter.active .sd-select-filter-count{
  background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))!important;
  color:var(--accent-strong)!important;
}

/* Remove old floating selection badge behavior entirely. */
.sd-bulk-selected-count{
  position:static!important;
  inset:auto!important;
  border-radius:0!important;
  border:0!important;
  box-shadow:none!important;
}

/* Collapsed mode: icon | count, identical to Deleted. */
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  flex:0 0 auto!important;
  padding:0!important;
  gap:0!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-main{
  width:var(--control-h)!important;
  min-width:var(--control-h)!important;
  padding-inline:0!important;
  gap:0!important;
  display:inline-flex!important;
  visibility:visible!important;
  max-width:none!important;
  overflow:visible!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-label{
  display:none!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-count{
  display:inline-flex!important;
  visibility:visible!important;
  width:auto!important;
  max-width:none!important;
  overflow:visible!important;
  margin:0!important;
  padding-inline:6px!important;
}

/* Earlier collapsed bulk rule forced every bulk button width.
   Select is intentionally wider because it owns the counter segment. */
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .sd-select-filter{
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  flex:0 0 auto!important;
}

/* Search panes and Columns remain ordinary Core buttons. */
.sd-view-tools{
  gap:5px!important;
}
.sd-view-tools > .dropdown > .btn{
  border-radius:8px!important;
  margin:0!important;
}

/* Keep separators subtle and consistent. */
.sd-toolbar-separator{
  width:1px!important;
  height:22px!important;
  margin-inline:3px!important;
  background:var(--border)!important;
  opacity:.9;
}


/* =====================================================================
   THE CORE — FINAL TABLE TOOLBAR SIZE + STATE COLOR LOCK
   Original Core table toolbar contract: 30px controls.
   This block intentionally overrides later density/group experiments.
   ===================================================================== */
.sd-table-tools{
  gap:6px!important;
}

/* Every ordinary toolbar button returns to the original 30x30 icon size. */
.sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter),
.sd-table-btn-group > .btn:not(.sd-select-filter),
.sd-table-btn-group > .dropdown > .btn{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding:0!important;
  border-radius:8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  flex:0 0 30px!important;
  margin:0!important;
}

/* T is also the original compact 30px square when labels are collapsed. */
.sd-table-component:not(.toolbar-text-visible) .sd-toolbar-text-toggle{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  flex:0 0 30px!important;
}

/* When labels are explicitly enabled, ordinary controls may widen to text,
   but they remain exactly 30px tall. */
.sd-table-component.toolbar-text-visible .sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter){
  width:auto!important;
  min-width:30px!important;
  max-width:none!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding-inline:9px!important;
  gap:4px!important;
  flex:0 0 auto!important;
}

/* Counter controls are built from compact 30px-high segments. */
.sd-deleted-filter,
.sd-select-filter{
  width:auto!important;
  min-width:auto!important;
  max-width:none!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding:0!important;
  border-radius:8px!important;
  display:inline-flex!important;
  align-items:stretch!important;
  gap:0!important;
  flex:0 0 auto!important;
  overflow:hidden!important;
}

.sd-deleted-filter-main,
.sd-select-filter-main{
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  background:var(--surface)!important;
}

.sd-deleted-filter-count,
.sd-select-filter-count{
  width:26px!important;
  min-width:26px!important;
  max-width:26px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
  border-inline-start:1px solid var(--border)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:.66rem!important;
  font-weight:800!important;
  line-height:1!important;
  background:var(--surface-2)!important;
  color:var(--muted)!important;
}

/* Expanded labels widen only the left segment; the counter stays compact. */
.sd-table-component.toolbar-text-visible .sd-deleted-filter-main,
.sd-table-component.toolbar-text-visible .sd-select-filter-main{
  width:auto!important;
  min-width:30px!important;
  padding-inline:9px!important;
  gap:4px!important;
}

/* Deleted active state — Core danger treatment. */
.sd-deleted-filter.active{
  border-color:color-mix(in srgb,var(--danger) 60%,var(--border))!important;
}
.sd-deleted-filter.active .sd-deleted-filter-main{
  color:var(--danger)!important;
  background:color-mix(in srgb,var(--danger) 7%,var(--surface))!important;
}
.sd-deleted-filter.active .sd-deleted-filter-main i{
  color:var(--danger)!important;
}
.sd-deleted-filter.active .sd-deleted-filter-count{
  color:var(--danger)!important;
  border-inline-start-color:color-mix(in srgb,var(--danger) 42%,var(--border))!important;
  background:color-mix(in srgb,var(--danger) 18%,var(--surface-2))!important;
}

/* Select active/selected state — Core success treatment once rows exist. */
.sd-select-filter.has-selected{
  border-color:color-mix(in srgb,var(--success) 60%,var(--border))!important;
}
.sd-select-filter.has-selected .sd-select-filter-main{
  color:var(--success)!important;
  background:color-mix(in srgb,var(--success) 7%,var(--surface))!important;
}
.sd-select-filter.has-selected .sd-select-filter-main i{
  color:var(--success)!important;
}
.sd-select-filter.has-selected .sd-select-filter-count{
  color:var(--success)!important;
  border-inline-start-color:color-mix(in srgb,var(--success) 42%,var(--border))!important;
  background:color-mix(in srgb,var(--success) 18%,var(--surface-2))!important;
}

/* Zero counts remain quiet/neutral. */
.sd-deleted-filter:not(.active) .sd-deleted-filter-count,
.sd-select-filter:not(.has-selected) .sd-select-filter-count{
  color:var(--muted)!important;
  background:var(--surface-2)!important;
}

/* Logical separators align to compact toolbar height. */
.sd-toolbar-separator{
  width:1px!important;
  height:20px!important;
  margin-inline:3px!important;
  align-self:center!important;
}

/* Mobile must not re-expand controls via --control-h. */
@media(max-width:760px){
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter),
  .sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn:not(.sd-select-filter){
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    flex:0 0 30px!important;
  }

  .sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter,
  .sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
    width:56px!important;
    min-width:56px!important;
    max-width:56px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    flex:0 0 56px!important;
  }
}


/* =====================================================================
   THE CORE — FINAL UNIFIED TABLE TOOLBAR SIZE
   Deleted/Select define the master collapsed control footprint.
   Every toolbar control uses the same 56 x 30 outer size.
   ===================================================================== */
:root{
  --table-tool-w:56px;
  --table-tool-h:30px;
}

/* Collapsed/default toolbar: every control has exactly the same footprint. */
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn,
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .dropdown > .btn,
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .sd-toolbar-text-toggle,
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn{
  width:var(--table-tool-w)!important;
  min-width:var(--table-tool-w)!important;
  max-width:var(--table-tool-w)!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  flex:0 0 var(--table-tool-w)!important;
  padding:0!important;
  border-radius:8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  margin:0!important;
}

/* Counter controls use the same 56px outer footprint, split internally. */
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter,
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
  width:var(--table-tool-w)!important;
  min-width:var(--table-tool-w)!important;
  max-width:var(--table-tool-w)!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  flex:0 0 var(--table-tool-w)!important;
  padding:0!important;
  overflow:hidden!important;
}

/* 30px icon side + 26px counter side = the same 56px master width. */
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-main,
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-main{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  padding:0!important;
}

.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-count,
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-count{
  width:26px!important;
  min-width:26px!important;
  max-width:26px!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  padding:0!important;
}

/* T is no longer a smaller special control. */
.sd-table-component:not(.toolbar-text-visible) .sd-toolbar-text-toggle{
  width:var(--table-tool-w)!important;
  min-width:var(--table-tool-w)!important;
  max-width:var(--table-tool-w)!important;
}

/* Search panes / Columns dropdown wrappers must not change the button width. */
.sd-table-component:not(.toolbar-text-visible) .sd-view-tools > .dropdown,
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools > .dropdown{
  width:var(--table-tool-w)!important;
  min-width:var(--table-tool-w)!important;
  max-width:var(--table-tool-w)!important;
  flex:0 0 var(--table-tool-w)!important;
}

/* Labels-on mode may grow horizontally, but all controls remain 30px tall. */
.sd-table-component.toolbar-text-visible .sd-table-tools .btn,
.sd-table-component.toolbar-text-visible .sd-table-tools .dropdown > .btn{
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
}

/* Mobile follows the exact same master footprint; no density override. */
@media(max-width:760px){
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn,
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .dropdown > .btn,
  .sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn,
  .sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter,
  .sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
    width:var(--table-tool-w)!important;
    min-width:var(--table-tool-w)!important;
    max-width:var(--table-tool-w)!important;
    height:var(--table-tool-h)!important;
    min-height:var(--table-tool-h)!important;
    max-height:var(--table-tool-h)!important;
    flex:0 0 var(--table-tool-w)!important;
  }
}


/* =====================================================================
   THE CORE — FINAL COMPACT TABLE TOOLBAR GEOMETRY
   Compact icon buttons; counter segments fill flush to the outer edge.
   ===================================================================== */
:root{
  --table-tool-h:28px;
  --table-tool-icon-w:32px;
  --table-tool-count-w:24px;
}

/* Default/collapsed ordinary tools */
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter),
.sd-table-component:not(.toolbar-text-visible) .sd-table-tools .dropdown > .btn,
.sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn:not(.sd-select-filter){
  width:var(--table-tool-icon-w)!important;
  min-width:var(--table-tool-icon-w)!important;
  max-width:var(--table-tool-icon-w)!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  flex:0 0 var(--table-tool-icon-w)!important;
  padding:0!important;
  border-radius:7px!important;
  gap:0!important;
}

/* Stronger toolbar icon presence */
.sd-table-tools .btn > i,
.sd-table-tools .dropdown > .btn > i{
  font-size:.72rem!important;
  font-weight:900!important;
  line-height:1!important;
}
.sd-table-tools .sd-toolbar-text-toggle > b{
  font-size:.78rem!important;
  font-weight:900!important;
}

/* Deleted / Select outer control */
.sd-deleted-filter,
.sd-select-filter{
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  padding:0!important;
  gap:0!important;
  overflow:hidden!important;
  border-radius:7px!important;
  display:inline-flex!important;
  align-items:stretch!important;
}

/* Icon/label side */
.sd-deleted-filter-main,
.sd-select-filter-main{
  height:100%!important;
  min-height:100%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:var(--surface)!important;
}

/* Counter side: fill the entire right segment, edge-to-edge */
.sd-deleted-filter-count,
.sd-select-filter-count{
  width:var(--table-tool-count-w)!important;
  min-width:var(--table-tool-count-w)!important;
  max-width:var(--table-tool-count-w)!important;
  height:100%!important;
  min-height:100%!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-inline-start:1px solid var(--border)!important;
  border-radius:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  box-shadow:none!important;
  align-self:stretch!important;
}

/* Collapsed: compact 32px icon + 24px counter */
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter,
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
  width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
  min-width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
  max-width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
  flex:0 0 calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
}
.sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter-main,
.sd-table-component:not(.toolbar-text-visible) .sd-select-filter-main{
  width:var(--table-tool-icon-w)!important;
  min-width:var(--table-tool-icon-w)!important;
  max-width:var(--table-tool-icon-w)!important;
  padding:0!important;
  gap:0!important;
}

/* Labels enabled: still compact */
.sd-table-component.toolbar-text-visible .sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter){
  width:auto!important;
  min-width:var(--table-tool-icon-w)!important;
  max-width:none!important;
  height:var(--table-tool-h)!important;
  min-height:var(--table-tool-h)!important;
  max-height:var(--table-tool-h)!important;
  padding-inline:8px!important;
  gap:4px!important;
  border-radius:7px!important;
}
.sd-table-component.toolbar-text-visible .sd-deleted-filter-main,
.sd-table-component.toolbar-text-visible .sd-select-filter-main{
  width:auto!important;
  min-width:var(--table-tool-icon-w)!important;
  padding-inline:8px!important;
  gap:4px!important;
}

/* Flush color states */
.sd-deleted-filter.active .sd-deleted-filter-count{
  background:color-mix(in srgb,var(--danger) 22%,var(--surface-2))!important;
  color:var(--danger)!important;
  border-inline-start-color:color-mix(in srgb,var(--danger) 45%,var(--border))!important;
}
.sd-select-filter.has-selected .sd-select-filter-count{
  background:color-mix(in srgb,var(--success) 22%,var(--surface-2))!important;
  color:var(--success)!important;
  border-inline-start-color:color-mix(in srgb,var(--success) 45%,var(--border))!important;
}

/* Neutral counters */
.sd-deleted-filter:not(.active) .sd-deleted-filter-count,
.sd-select-filter:not(.has-selected) .sd-select-filter-count{
  background:var(--surface-2)!important;
  color:var(--muted)!important;
}

/* Slightly tighter separators/group spacing */
.sd-table-tools{
  gap:5px!important;
}
.sd-table-btn-group{
  gap:4px!important;
}
.sd-toolbar-separator{
  height:18px!important;
  margin-inline:2px!important;
}

/* Mobile follows the same compact geometry */
@media(max-width:760px){
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .btn:not(.sd-deleted-filter):not(.sd-select-filter),
  .sd-table-component:not(.toolbar-text-visible) .sd-table-tools .dropdown > .btn,
  .sd-table-component:not(.toolbar-text-visible) .sd-bulk-tools > .btn:not(.sd-select-filter){
    width:var(--table-tool-icon-w)!important;
    min-width:var(--table-tool-icon-w)!important;
    max-width:var(--table-tool-icon-w)!important;
    height:var(--table-tool-h)!important;
    min-height:var(--table-tool-h)!important;
    max-height:var(--table-tool-h)!important;
    flex:0 0 var(--table-tool-icon-w)!important;
  }

  .sd-table-component:not(.toolbar-text-visible) .sd-deleted-filter,
  .sd-table-component:not(.toolbar-text-visible) .sd-select-filter{
    width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
    min-width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
    max-width:calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
    height:var(--table-tool-h)!important;
    min-height:var(--table-tool-h)!important;
    max-height:var(--table-tool-h)!important;
    flex:0 0 calc(var(--table-tool-icon-w) + var(--table-tool-count-w))!important;
  }
}

/* v0.14.5: The Core® default palette — aligned with the public landing page */
html[data-theme="core"]{
  --bg:#080b10;
  --surface:#101722;
  --surface-2:#151e2b;
  --surface-3:#1c2735;
  --text:#f5f7fb;
  --muted:#aab4c3;
  --border:rgba(255,255,255,.11);
  --border-strong:rgba(216,185,121,.34);
  --accent:#d8b979;
  --accent-strong:#f0d9a8;
  --accent-soft:rgba(216,185,121,.13);
  --success:#73c78b;
  --warning:#d7ae67;
  --danger:#df7580;
  --info:#7faecc;
  --header-bg:rgba(8,11,16,.94);
  --sidebar-bg:#0b1018;
  --input-bg:#0d141e;
  --shadow-soft:0 20px 52px rgba(0,0,0,.34)
}
.theme-swatch.core{
  background:linear-gradient(135deg,#080b10 0 43%,#d8b979 43% 62%,#101722 62% 100%)
}
html[data-theme="core"]{--close-filter:invert(1) grayscale(100%) brightness(200%)}


/* Validator acceptance traceability — 0.25.2 */
.validator-acceptance-meta{margin-top:1rem;border:1px solid var(--border-color,rgba(127,127,127,.22));border-radius:var(--radius-lg,12px);overflow:hidden}
.validator-acceptance-meta-empty{padding:1rem;color:var(--text-muted,#687386)}
.validator-acceptance-meta-head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border-color,rgba(127,127,127,.18));background:var(--surface-subtle,rgba(127,127,127,.04))}
.validator-acceptance-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.validator-acceptance-meta-grid>div{padding:.9rem 1rem;border-bottom:1px solid var(--border-color,rgba(127,127,127,.14))}
.validator-acceptance-meta-grid>div:nth-child(odd){border-right:1px solid var(--border-color,rgba(127,127,127,.14))}
.validator-acceptance-meta-grid>div>span{display:block;font-size:.78rem;font-weight:700;color:var(--text-muted,#687386);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.035em}
.validator-acceptance-meta-grid p{margin:0;line-height:1.55}
.validator-acceptance-meta-grid ul{margin:.2rem 0 0;padding-left:1.1rem}
.validator-acceptance-meta-grid li+li{margin-top:.25rem}
.validator-acceptance-meta-grid .validator-acceptance-meta-wide{grid-column:1/-1;border-right:0}
.validator-acceptance-tags{display:flex;gap:.4rem;flex-wrap:wrap}
@media (max-width:760px){.validator-acceptance-meta-grid{grid-template-columns:1fr}.validator-acceptance-meta-grid>div:nth-child(odd){border-right:0}.validator-acceptance-meta-grid .validator-acceptance-meta-wide{grid-column:auto}}
