/* Self-hosted variable Geist; the browser loads only the Unicode subset it needs. */
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/assets/fonts/geist-cyrillic-ext.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/assets/fonts/geist-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/assets/fonts/geist-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Geist"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/assets/fonts/geist-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  color-scheme: light;
  font-family: "Geist", "Segoe UI", system-ui, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;

  /* Typography scale: 12 px is the explicit lower boundary for manager UI. */
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 14px;
  --text-md: 15px;
  --text-lg: 16px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 30px;
  --text-error-code: 64px;

  /* Shared geometry keeps both themes structurally identical. */
  --control-height-sm: 32px;
  --control-height: 38px;
  --control-height-lg: 42px;
  --radius-xs: 5px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 10px;
  --radius-xl: 14px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --sidebar-width: 228px;
  --topbar-height: 70px;
  --motion-fast: 160ms ease;

  /* Forge is the safe default before the saved preference is loaded. */
  --shell: #101416;
  --workspace: #eef4f3;
  --workspace-glow: #f8fbfa;
  --card: rgba(251, 253, 252, 0.96);
  --card-solid: #fbfdfc;
  --ink: #162126;
  --ink-soft: #66767b;
  --ink-faint: #8c999d;
  --line: #d8e4e1;
  --line-strong: #c7d7d3;
  --accent: #68f0c2;
  --accent-rgb: 104, 240, 194;
  --accent-deep: #10a778;
  --accent-contrast: #092b22;
  --secondary: #42d8e8;
  --secondary-rgb: 66, 216, 232;
  --danger: #e05f6f;
  --success: #21ad7f;
  --warning: #f38b35;
  --focus-ring: rgba(16, 167, 120, .2);
  --shadow-lg: 0 22px 70px rgba(5, 17, 21, 0.2);
  --surface-background: rgba(251, 253, 252, .96);
  --surface-radius: var(--radius-xl);
  --surface-shadow: 0 1px 2px rgba(16, 33, 38, .04), 0 8px 24px rgba(16, 33, 38, .05);
  --shadow-sm: var(--surface-shadow);
  --shadow-xs: 0 1px 2px rgba(16, 33, 38, .06);
  --surface: var(--card-solid);
  --surface-muted: rgba(var(--accent-rgb), .055);
  --surface-raised: var(--card-solid);
  --accent-soft: rgba(var(--accent-rgb), .12);
  --accent-strong: var(--accent-deep);
  --surface-backdrop: blur(14px);
  --app-background: radial-gradient(circle at 86% -10%, rgba(var(--secondary-rgb), .12), transparent 34%), linear-gradient(135deg, var(--workspace-glow), var(--workspace));
  --sidebar-background: radial-gradient(circle at 0 0, rgba(var(--accent-rgb), .09), transparent 30%), linear-gradient(180deg, var(--shell), #0b1012);
  --sidebar-text: #d7e1df;
  --sidebar-muted: #acb9b7;
  --sidebar-border: rgba(255, 255, 255, .07);
  --sidebar-hover: rgba(255, 255, 255, .055);
  --sidebar-active-background: linear-gradient(90deg, rgba(var(--accent-rgb), .17), rgba(var(--accent-rgb), .075));
  --topbar-background: rgba(16, 20, 22, .96);
  --topbar-text: #e6eeec;
  --topbar-muted: #81908e;
  --topbar-control-background: rgba(255, 255, 255, .035);
  --topbar-control-border: rgba(255, 255, 255, .1);
  --topbar-hover: rgba(255, 255, 255, .055);
  --button-primary-background: linear-gradient(135deg, var(--accent), #50dfc5);
  --button-primary-border: #39bd94;
  --button-primary-shadow: 0 8px 22px rgba(var(--accent-rgb), .18);
  --button-secondary-background: rgba(var(--accent-rgb), .11);
  --button-secondary-hover: rgba(var(--accent-rgb), .18);
  --button-secondary-border: rgba(16, 167, 120, .28);
  --button-secondary-color: var(--accent-deep);
  --table-head-color: var(--ink-faint);
  --table-head-background: #f5fbf9;
  --table-row-hover: rgba(var(--accent-rgb), .045);
  --drawer-overlay: rgba(5, 13, 15, .68);
  --drawer-background: var(--workspace-glow);
  --drawer-shadow: -24px 0 70px rgba(0, 0, 0, .22);
}

/* Clean uses shadcn-like neutral surfaces without changing page markup. */
html[data-ui-theme="clean"] {
  --shell: #ffffff;
  --workspace: #f8fafc;
  --workspace-glow: #f8fafc;
  --card: #ffffff;
  --card-solid: #ffffff;
  --ink: #09090b;
  --ink-soft: #71717a;
  --ink-faint: #a1a1aa;
  --line: #e4e4e7;
  --line-strong: #d4d4d8;
  --accent: #18181b;
  --accent-rgb: 24, 24, 27;
  --accent-deep: #18181b;
  --accent-contrast: #fafafa;
  --secondary: #71717a;
  --secondary-rgb: 113, 113, 122;
  --danger: #dc2626;
  --success: #15803d;
  --warning: #d97706;
  --focus-ring: rgba(24, 24, 27, .16);
  --shadow-lg: 0 18px 50px rgba(9, 9, 11, .14);
  --surface-background: #ffffff;
  --surface-radius: var(--radius-lg);
  --surface-shadow: 0 1px 2px rgba(9, 9, 11, .035);
  --shadow-xs: 0 1px 2px rgba(9, 9, 11, .05);
  --surface-muted: #f4f4f5;
  --surface-raised: #ffffff;
  --accent-soft: #f4f4f5;
  --accent-strong: #18181b;
  --surface-backdrop: none;
  --app-background: #f8fafc;
  --sidebar-background: #ffffff;
  --sidebar-text: #18181b;
  --sidebar-muted: #71717a;
  --sidebar-border: #e4e4e7;
  --sidebar-hover: #f4f4f5;
  --sidebar-active-background: #f4f4f5;
  --topbar-background: rgba(255, 255, 255, .96);
  --topbar-text: #18181b;
  --topbar-muted: #71717a;
  --topbar-control-background: #ffffff;
  --topbar-control-border: #e4e4e7;
  --topbar-hover: #f4f4f5;
  --button-primary-background: #18181b;
  --button-primary-border: #18181b;
  --button-primary-shadow: none;
  --button-secondary-background: #f4f4f5;
  --button-secondary-hover: #e4e4e7;
  --button-secondary-border: #e4e4e7;
  --button-secondary-color: #18181b;
  --table-head-color: #000000;
  --table-head-background: #fafafa;
  --table-row-hover: #fafafa;
  --drawer-overlay: rgba(9, 9, 11, .46);
  --drawer-background: #ffffff;
  --drawer-shadow: -12px 0 36px rgba(9, 9, 11, .12);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
html { color: var(--ink); background: var(--workspace); }
body { min-width: 320px; color: var(--ink); font-size: var(--text-base); line-height: 1.45; background: var(--workspace); }
/* Browsers otherwise shrink <small> below the 12 px product boundary. */
small { font-size: var(--text-xs); }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
code, kbd { font-family: "Geist", "Segoe UI", system-ui, sans-serif; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.choice-checkbox { appearance: none; -webkit-appearance: none; display: inline-grid; width: 16px; height: 16px; flex: 0 0 16px; place-content: center; margin: 0; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line-strong); border-radius: 4px; }
.choice-checkbox:checked { background-color: var(--accent-deep); 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-linecap='round' stroke-linejoin='round' stroke-width='2' d='m3.5 8 3 3 6-6'/%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 14px; border-color: var(--accent-deep); }
.choice-checkbox:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.14); }
.icon { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-small { width: 16px; height: 16px; }
.icon-large { width: 25px; height: 25px; }

/* Shared brand and authentication */
.brand-mark { display: flex; min-width: 0; min-height: 38px; align-items: center; gap: 10px; white-space: nowrap; }
.brand-logo-image { display: block; width: 96px; max-width: 100%; height: 38px; background: url("/api/v1/branding/logo/dark") left center / contain no-repeat; }
.brand-product-name { flex: none; padding-left: 10px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 650; line-height: 18px; letter-spacing: .055em; text-transform: lowercase; border-left: 1px solid var(--line-strong); }
.sidebar .brand-product-name { color: var(--sidebar-muted); border-left-color: color-mix(in srgb, var(--sidebar-text) 20%, transparent); }
.auth-story .brand-product-name { color: #9cadab; border-left-color: rgba(255,255,255,.16); }
.brand-icon-image { display: none; }
.auth-mobile-brand .brand-logo-image { background-image: url("/api/v1/branding/logo/light"); }
html[data-ui-theme="clean"] .sidebar .brand-logo-image { background-image: url("/api/v1/branding/logo/light"); }
.sidebar-collapsed .sidebar .brand-logo-image { display: none; }
.sidebar-collapsed .sidebar .brand-product-name { display: none; }
.sidebar-collapsed .sidebar .brand-icon-image { display: block; width: 50px; height: 50px; background: url("/api/v1/branding/favicon") center / contain no-repeat; border-radius: 7px; }

.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(420px, 1.15fr) minmax(430px, .85fr); color: var(--ink); background: var(--workspace); }
.auth-story { position: relative; display: flex; min-height: 100vh; justify-content: space-between; flex-direction: column; overflow: hidden; padding: clamp(38px, 5vw, 74px); color: #eef7f4; background: radial-gradient(circle at 72% 24%, rgba(66,216,232,.13), transparent 28%), radial-gradient(circle at 16% 85%, rgba(var(--accent-rgb),.12), transparent 35%), linear-gradient(145deg, #11191a, #080d0f); }
.auth-story::before, .auth-story::after { position: absolute; content: ""; pointer-events: none; border: 1px solid rgba(104,240,194,.12); border-radius: 50%; }
.auth-story::before { top: -180px; right: -180px; width: 520px; height: 520px; }
.auth-story::after { right: 14%; bottom: -260px; width: 480px; height: 480px; }
.auth-story > * { position: relative; z-index: 1; }
.auth-story-copy { max-width: 760px; margin-block: auto; padding-block: 70px; }
.auth-story-copy h1 { max-width: 720px; margin: 18px 0; font-size: clamp(42px, 5vw, 74px); line-height: 1.02; font-weight: 590; letter-spacing: -.055em; }
.auth-story-copy p { max-width: 610px; margin: 0; color: #9cadab; font-size: clamp(15px, 1.4vw, 19px); line-height: 1.65; }
.auth-trust-row { display: grid; max-width: 650px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.auth-trust-row > span { display: grid; min-height: 70px; grid-template-columns: 30px 1fr; grid-template-rows: 1fr 1fr; align-items: center; padding: 12px; color: var(--accent); background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.075); border-radius: 12px; }
.auth-trust-row svg { grid-row: 1 / 3; }
.auth-trust-row b { align-self: end; color: #dce7e4; font-size: var(--text-base); }
.auth-trust-row small { align-self: start; color: #798a87; font-size: var(--text-xs); }
.auth-panel { display: grid; min-height: 100vh; place-items: center; padding: 34px; background: var(--app-background); }
.auth-card { width: min(430px, 100%); padding: 36px; background: var(--surface-background); border: 1px solid var(--line); border-radius: var(--surface-radius); box-shadow: var(--shadow-lg); }
.auth-card > header { margin-bottom: 26px; }
.auth-card h2 { margin: 7px 0 6px; font-size: var(--text-3xl); letter-spacing: -.035em; }
.auth-card header p { margin: 0; color: var(--ink-soft); font-size: var(--text-sm); }
.auth-mobile-brand { display: none; }
.auth-field { display: flex; flex-direction: column; gap: 7px; margin-top: 16px; }
.auth-field > span:first-child { color: var(--ink-soft); font-size: var(--text-sm); font-weight: 680; }
.auth-field > input, .auth-password-input { width: 100%; min-height: 48px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); }
.auth-field > input { padding: 0 13px; }
.auth-field > input:focus, .auth-password-input:focus-within { border-color: var(--accent-deep); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.13); outline: 0; }
.auth-remember { position: relative; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 1px 10px; align-items: center; margin-top: 17px; cursor: pointer; }
.auth-remember > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.auth-remember > span { position: relative; display: block; width: 34px; height: 20px; grid-row: 1 / span 2; background: var(--line-strong); border-radius: 999px; transition: background var(--motion-fast),box-shadow var(--motion-fast); }
.auth-remember > span i { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: var(--card-solid); border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform var(--motion-fast); }
.auth-remember > input:checked + span { background: var(--accent-deep); }
.auth-remember > input:checked + span i { transform: translateX(14px); }
.auth-remember > input:focus-visible + span { box-shadow: 0 0 0 3px var(--focus-ring); }
.auth-remember > b { color: var(--ink); font-size: var(--text-sm); font-weight: 600; }
.auth-remember > small { color: var(--ink-soft); font-size: var(--text-xs); }
.auth-password-input { display: grid; grid-template-columns: minmax(0,1fr) 44px; overflow: hidden; }
.auth-password-input input { min-width: 0; padding: 0 13px; color: var(--ink); background: transparent; border: 0; outline: 0; }
.auth-password-input button { display: grid; place-items: center; color: var(--ink-soft); cursor: pointer; background: transparent; border: 0; }
.auth-message { margin-top: 15px; padding: 10px 12px; color: #a33446; font-size: var(--text-sm); line-height: 1.45; background: #fff0f2; border: 1px solid #f4cbd2; border-radius: var(--radius-md); }
.auth-submit { display: flex; width: 100%; min-height: 49px; align-items: center; justify-content: center; gap: 9px; margin-top: 20px; color: var(--accent-contrast); font-weight: 750; cursor: pointer; background: var(--button-primary-background); border: 1px solid var(--button-primary-border); border-radius: var(--radius-lg); box-shadow: var(--button-primary-shadow); }
.auth-submit:disabled { cursor: wait; opacity: .7; }
.auth-security-note { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 14px; color: var(--ink-faint); font-size: var(--text-xs); }

/* Manager workspace */
.app-shell { min-height: 100vh; color: var(--ink); background: var(--app-background); }
.sidebar-collapsed { --sidebar-width: 78px; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 40; display: flex; width: var(--sidebar-width); flex-direction: column; overflow: hidden; color: var(--sidebar-text); background: var(--sidebar-background); border-right: 1px solid var(--sidebar-border); transition: width 220ms ease, transform 220ms ease; }
.sidebar-top { display: flex; min-height: var(--topbar-height); align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid var(--sidebar-border); }
.mobile-close { display: none; }
.main-nav { display: flex; flex-direction: column; gap: 5px; padding: 20px 11px; }
.main-nav a, .sidebar-tools a, .sidebar-placeholder, .collapse-button { position: relative; display: flex; width: 100%; min-height: 44px; align-items: center; gap: 13px; padding: 0 13px; color: var(--sidebar-muted); font-size: var(--text-base); font-weight: 500; text-align: left; text-decoration: none; white-space: nowrap; cursor: pointer; background: transparent; border: 0; border-radius: var(--radius-lg); transition: color var(--motion-fast), background var(--motion-fast); }
.main-nav a:hover, .sidebar-tools a:hover, .collapse-button:hover { color: var(--sidebar-text); background: var(--sidebar-hover); }
.main-nav a.active { color: var(--accent); background: var(--sidebar-active-background); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.08); }
.main-nav a.active::before { position: absolute; inset: 8px auto 8px -11px; width: 4px; content: ""; background: var(--accent); border-radius: 0 5px 5px 0; }
.nav-badge { min-width: 25px; margin-left: auto; padding: 2px 7px; color: var(--sidebar-text); font-size: var(--text-xs); font-style: normal; text-align: center; background: var(--sidebar-hover); border-radius: 20px; }
.sidebar-spacer { flex: 1; }
.sidebar-tools { padding: 8px 11px 14px; border-bottom: 1px solid var(--sidebar-border); }
.sidebar-placeholder { cursor: default; opacity: .72; }
.collapse-button { width: calc(100% - 22px); margin: 10px 11px 14px; }
.sidebar-collapsed .sidebar-top, .sidebar-collapsed .main-nav a, .sidebar-collapsed .sidebar-tools a, .sidebar-collapsed .sidebar-placeholder, .sidebar-collapsed .collapse-button { justify-content: center; padding-inline: 0; }
.sidebar-collapsed .main-nav span, .sidebar-collapsed .sidebar-tools span, .sidebar-collapsed .collapse-button span, .sidebar-collapsed .nav-badge { display: none; }
.app-main { min-height: 100vh; margin-left: var(--sidebar-width); transition: margin 220ms ease; }
.shared-demo-notice { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; margin-bottom: 20px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--card-solid); color: var(--ink-soft); font-size: 13px; }
.shared-demo-notice a { color: var(--ink); font-weight: 600; }
.topbar { position: sticky; top: 0; z-index: 30; display: flex; height: var(--topbar-height); align-items: center; gap: 22px; padding: 0 26px; color: var(--topbar-text); background: var(--topbar-background); border-bottom: 1px solid var(--sidebar-border); backdrop-filter: blur(18px); }
.organization-context { display: flex; min-width: 226px; height: var(--control-height-lg); align-items: center; gap: 10px; padding: 0 12px; background: var(--topbar-control-background); border: 1px solid var(--topbar-control-border); border-radius: var(--radius-lg); }
.organization-context > span:last-child, .profile-button > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.organization-context strong, .profile-button strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.organization-context small, .profile-button small { margin-top: 2px; color: var(--topbar-muted); font-size: var(--text-xs); }
.org-icon { display: grid; width: 27px; height: 27px; place-items: center; color: var(--accent); background: rgba(var(--accent-rgb),.1); border-radius: 7px; }
.global-search { display: flex; width: min(520px, 38vw); height: var(--control-height-lg); align-items: center; gap: 10px; margin: 0 auto; padding: 0 12px; color: var(--topbar-muted); background: var(--topbar-control-background); border: 1px solid var(--topbar-control-border); border-radius: var(--radius-lg); }
.global-search input { min-width: 0; flex: 1; color: var(--topbar-text); background: transparent; border: 0; outline: 0; }
.global-search kbd { padding: 2px 7px; color: var(--topbar-muted); font-size: var(--text-xs); background: var(--topbar-hover); border: 1px solid var(--topbar-control-border); border-radius: var(--radius-sm); }
.topbar-actions { position: relative; display: flex; align-items: center; gap: 7px; }
.icon-button { display: inline-grid; width: 36px; height: 36px; place-items: center; padding: 0; color: var(--ink-soft); cursor: pointer; background: transparent; border: 1px solid transparent; border-radius: 9px; }
.icon-only-control { padding: 0; line-height: 0; }
.icon-only-control > .icon { display: block; margin: 0; }
.topbar .icon-button { color: var(--topbar-muted); }
.topbar .icon-button:hover { color: var(--topbar-text); background: var(--topbar-hover); }
.notification-button { position: relative; }
.notification-button i { position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; background: var(--accent); border: 2px solid var(--shell); border-radius: 50%; }
.profile-button { display: flex; height: 48px; align-items: center; gap: 9px; padding: 4px; color: var(--topbar-text); text-align: left; cursor: pointer; background: transparent; border: 0; border-radius: var(--radius-lg); }
.profile-avatar { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-contrast); font-size: var(--text-sm); font-weight: 750; background: var(--button-primary-background); border-radius: 50%; }
.profile-menu { position: absolute; z-index: 80; top: 56px; right: 0; width: 250px; padding: 8px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line); border-radius: 13px; box-shadow: var(--shadow-lg); }
.profile-menu > div { display: flex; flex-direction: column; padding: 10px 10px 12px; border-bottom: 1px solid var(--line); }
.profile-menu small { margin-top: 3px; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; }
.profile-menu button { display: flex; width: 100%; min-height: 40px; align-items: center; gap: 9px; margin-top: 5px; padding: 0 10px; color: var(--danger); cursor: pointer; background: transparent; border: 0; border-radius: 8px; }
.api-status { display: inline-flex; height: 31px; align-items: center; gap: 6px; padding: 0 9px; color: var(--topbar-muted); font-size: var(--text-xs); background: var(--topbar-control-background); border: 1px solid var(--topbar-control-border); border-radius: var(--radius-md); }
.api-status.online { color: var(--accent); }
.api-status.offline { color: #f29aaa; }
.mobile-menu-button, .mobile-page-title { display: none; }

/* Dashboard content */
.content-area { width: 100%; max-width: 1650px; margin: 0 auto; padding: 24px 30px 42px; }
.page-intro { display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 14px; }
.page-intro.compact { min-height: 72px; }
.page-intro h1 { margin: 5px 0 2px; font-size: clamp(28px, 2.25vw, 38px); line-height: 1.12; font-weight: 650; letter-spacing: -.035em; }
.page-intro p { margin: 0; color: var(--ink-soft); font-size: var(--text-sm); }
.intro-actions { display: flex; gap: 9px; }
.button { display: inline-flex; min-height: var(--control-height-lg); align-items: center; justify-content: center; gap: 8px; padding: 0 16px; color: inherit; font-size: var(--text-sm); font-weight: 650; text-decoration: none; white-space: nowrap; cursor: pointer; border-radius: var(--radius-lg); transition: background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast); }
.button-sm { min-height: var(--control-height-sm); gap: 6px; padding: 0 10px; font-size: var(--text-xs); border-radius: var(--radius-md); }
.button-primary { color: var(--accent-contrast); background: var(--button-primary-background); border: 1px solid var(--button-primary-border); box-shadow: var(--button-primary-shadow); }
.button-secondary { color: var(--button-secondary-color); background: var(--button-secondary-background); border: 1px solid var(--button-secondary-border); box-shadow: none; }
.button-secondary:hover { background: var(--button-secondary-hover); border-color: var(--line-strong); }
.button-ghost { background: var(--card); border: 1px solid var(--line); }
.button-ghost:hover { background: var(--surface-muted); border-color: var(--line-strong); }
.button-danger-ghost { color: var(--danger); background: color-mix(in srgb, var(--danger) 5%, transparent); border: 1px solid color-mix(in srgb, var(--danger) 32%, var(--line)); box-shadow: none; }
.button-danger-ghost:hover { background: color-mix(in srgb, var(--danger) 10%, transparent); border-color: color-mix(in srgb, var(--danger) 48%, var(--line)); }
.surface-card { overflow: hidden; background: var(--surface-background); border: 1px solid var(--line); border-radius: var(--surface-radius); box-shadow: var(--surface-shadow); backdrop-filter: var(--surface-backdrop); }
.metrics-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 13px; }
.metric-card { position: relative; display: grid; min-height: 116px; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 14px; padding: 17px; }
.metric-icon { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid currentColor; border-radius: 14px; }
.metric-card div { display: flex; flex-direction: column; }
.metric-card div strong { font-size: clamp(27px,2vw,36px); line-height: 1; letter-spacing: -.035em; }
.metric-card div span { margin-top: 6px; color: var(--ink-soft); font-size: var(--text-sm); }
.metric-card > small { position: absolute; right: 14px; bottom: 11px; color: var(--ink-soft); font-size: var(--text-xs); }
.tone-mint { color: var(--accent-deep); background: rgba(var(--accent-rgb),.13); border-color: rgba(var(--accent-rgb),.27); }
.tone-cyan { color: #119bb0; background: rgba(66,216,232,.12); border-color: rgba(66,216,232,.3); }
.tone-orange { color: #cf6d1c; background: rgba(243,139,53,.11); border-color: rgba(243,139,53,.25); }
.tone-violet { color: #6f65da; background: rgba(105,103,244,.11); border-color: rgba(105,103,244,.25); }
.dashboard-grid { display: grid; grid-template-columns: minmax(480px,1.35fr) minmax(300px,.8fr); gap: 13px; }
.activity-card { grid-column: 1 / -1; }
.surface-header { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 17px; border-bottom: 1px solid var(--line); }
.surface-header > div:not(.user-list-toolbar) { display: flex; flex-direction: column; gap: 2px; }
.surface-header h2 { margin: 0; font-size: var(--text-md); line-height: 1.25; }
.surface-header p { margin: 0; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.35; }
.text-action { color: var(--accent-deep); font-size: var(--text-sm); font-weight: 650; text-decoration: none; }
.focus-list { display: flex; flex-direction: column; }
.focus-list > a { display: grid; min-height: 76px; grid-template-columns: 52px 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 0 17px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.focus-list > a:last-child { border-bottom: 0; }
.focus-list > a:hover { background: rgba(var(--accent-rgb),.045); }
.focus-time { color: var(--ink-faint); font-size: var(--text-sm); font-weight: 650; }
.focus-marker { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; }
.focus-list a > span:nth-child(3), .activity-list > span > span { display: flex; min-width: 0; flex-direction: column; }
.focus-list strong, .activity-list strong { font-size: var(--text-sm); }
.focus-list small, .activity-list small { margin-top: 4px; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.status-chip { display: inline-flex; align-items: center; padding: 3px 7px; font-size: var(--text-xs); font-style: normal; font-weight: 650; border-radius: var(--radius-sm); }
.status-chip.success { color: #087958; background: #dbf4eb; }
.status-chip.planned { color: #647479; background: #edf2f1; }
.status-chip.active { color: #087f91; background: #dff6f8; }
.status-chip.cancelled { color: #a13a4b; background: #fbe9ec; }
.progress-visual { display: grid; grid-template-columns: 130px 1fr; align-items: center; gap: 20px; padding: 22px 20px 18px; }
.progress-ring { display: flex; width: 118px; height: 118px; flex-direction: column; align-items: center; justify-content: center; background: radial-gradient(circle at center,var(--card-solid) 55%,transparent 56%), conic-gradient(var(--accent-deep) 0 var(--progress, 0%),var(--line) var(--progress, 0%)); border-radius: 50%; }
.progress-ring strong { font-size: var(--text-2xl); }
.progress-ring span, .progress-note small { color: var(--ink-soft); font-size: var(--text-xs); }
.progress-legend { display: flex; flex-direction: column; gap: 13px; }
.progress-legend span { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 8px; }
.progress-legend b { color: var(--ink-soft); font-size: var(--text-sm); font-weight: 550; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; }
.legend-dot.complete { background: var(--accent-deep); }.legend-dot.active { background: var(--secondary); }.legend-dot.pending { background: var(--line-strong); }
.progress-note { display: flex; flex-direction: column; margin: 0 16px 16px; padding: 11px; background: rgba(var(--accent-rgb),.09); border-radius: 10px; }
.progress-note strong { font-size: var(--text-sm); }
.activity-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.activity-list > span { display: grid; min-height: 72px; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 0 17px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.activity-list > span:nth-child(2n) { border-right: 0; }.activity-list > span:nth-last-child(-n+2) { border-bottom: 0; }
.person-avatar { display: grid; width: 38px; height: 38px; place-items: center; font-size: var(--text-xs); font-style: normal; font-weight: 750; border-radius: 11px; }
.activity-list time { color: var(--ink-faint); font-size: var(--text-xs); }
.empty-state { display: flex; min-height: 250px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; padding: 36px; color: var(--ink-soft); text-align: center; }
.empty-state strong { color: var(--ink); font-size: var(--text-lg); }.empty-state p, .empty-state span { max-width: 470px; margin: 0; font-size: var(--text-sm); line-height: 1.55; }
.compact-empty { min-height: 220px; }
.overview-catalog-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.overview-catalog-list > a { display: grid; min-height: 82px; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 17px; color: var(--ink); text-decoration: none; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.overview-catalog-list > a:nth-child(2n) { border-right: 0; }.overview-catalog-list > a:nth-last-child(-n+2) { border-bottom: 0; }
.overview-catalog-list > a:hover { background: rgba(var(--accent-rgb),.045); }
.overview-catalog-list > a > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.overview-catalog-list strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }.overview-catalog-list small { margin-top: 4px; color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-symbol { display: grid; width: 40px; height: 40px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.13); border-radius: 11px; }
.data-card { min-height: 280px; }
.table-scroll { width: 100%; overflow-x: auto; }
.manager-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.manager-table th { height: 40px; padding: 0 14px; color: var(--table-head-color); font-size: var(--text-sm); font-weight: 500; text-align: left; letter-spacing: normal; text-transform: none; background: var(--table-head-background); border-bottom: 1px solid var(--line); }
.manager-table td { min-width: 110px; padding: 11px 14px; vertical-align: middle; border-bottom: 1px solid var(--line); }.manager-table tbody tr:hover { background: var(--table-row-hover); }.manager-table tr:last-child td { border-bottom: 0; }
.manager-table td > strong, .manager-table td > small { display: block; }.manager-table td > small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }.manager-table time { color: var(--ink-soft); font-size: var(--text-xs); white-space: nowrap; }
.catalog-page-intro { min-height: 78px; }
.catalog-master-layout { display: grid; min-width: 0; grid-template-columns: 238px minmax(0,1fr); align-items: start; gap: 10px; }
.catalog-library-rail { position: sticky; top: calc(var(--topbar-height) + 14px); display: flex; min-width: 0; max-height: calc(100vh - var(--topbar-height) - 30px); flex-direction: column; }
.catalog-library-rail > header { display: flex; min-height: 50px; align-items: center; justify-content: space-between; padding: 9px 11px; border-bottom: 1px solid var(--line); }
.catalog-library-rail > header > span { color: var(--ink-soft); font-size: var(--text-xs); font-weight: 650; letter-spacing: normal; }
.catalog-library-rail > header > strong { display: grid; min-width: 25px; height: 25px; place-items: center; color: var(--accent-deep); font-size: var(--text-xs); background: rgba(var(--accent-rgb),.1); border-radius: 7px; }
.catalog-library-list { display: flex; min-height: 0; flex-direction: column; gap: 4px; overflow-y: auto; padding: 7px; }
.catalog-library-list > a { display: grid; min-height: 61px; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 7px; color: var(--ink); text-decoration: none; border: 1px solid transparent; border-radius: 9px; transition: background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast); }
.catalog-library-list > a:hover { background: var(--table-row-hover); border-color: var(--line); transform: translateX(1px); }
.catalog-library-list > a.active { background: linear-gradient(90deg,rgba(var(--accent-rgb),.12),rgba(var(--accent-rgb),.035)); border-color: rgba(var(--accent-rgb),.24); box-shadow: inset 3px 0 0 var(--accent); }
.catalog-library-list > a > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.catalog-library-list strong,.catalog-library-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-library-list strong { font-size: var(--text-xs); }
.catalog-library-list small { margin-top: 2px; color: var(--ink-faint); font-size: var(--text-xs); }
.catalog-library-list i { color: var(--ink-soft); font-size: var(--text-xs); font-style: normal; }
.compact-library-list > a { min-height: 48px; grid-template-columns: 30px minmax(0,1fr); gap: 8px; padding: 6px 7px; }
.compact-library-symbol { width: 30px; height: 30px; border-radius: var(--radius-md); }
.catalog-workspace { min-width: 0; min-height: 540px; }
.catalog-workspace-head { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.catalog-workspace-title { display: flex; min-width: 0; align-items: center; gap: 12px; }
.catalog-workspace-title > div { min-width: 0; }
.catalog-workspace-title > div > span { display: flex; align-items: center; gap: 9px; }
.catalog-workspace-title h2 { margin: 0; font-size: var(--text-lg); letter-spacing: -.02em; }
.catalog-workspace-title p { margin: 3px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-workspace-title code { color: var(--accent-deep); }
.catalog-updated-at { color: var(--ink-faint); font-size: var(--text-xs); text-align: right; }
.catalog-workspace-meta { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.catalog-workspace-navigation { display: flex; min-height: 54px; align-items: center; gap: 12px; padding: 7px 12px; border-bottom: 1px solid var(--line); }
.catalog-workspace-tabs { display: flex; flex: 0 0 auto; gap: 4px; }
.catalog-workspace-tabs > a, .catalog-workspace-tabs > span { display: inline-flex; min-height: 36px; align-items: center; gap: 6px; padding: 0 10px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 580; text-decoration: none; border-radius: var(--radius-md); }
.catalog-workspace-tabs > a.active { color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); }
.catalog-workspace-tabs > span { cursor: not-allowed; opacity: .65; }
.catalog-workspace-tabs span > span, .catalog-workspace-tabs a > span { display: grid; min-width: 18px; height: 18px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); border-radius: var(--radius-xs); }
.catalog-workspace-actions { display: flex; min-width: 0; flex: 1 1 auto; align-items: center; justify-content: flex-end; gap: 8px; }
.catalog-data-toolbar { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: 8px; }
.catalog-export-actions { display: flex; align-items: center; gap: 4px; padding-left: 8px; border-left: 1px solid var(--line); }
.catalog-search { display: flex; min-width: 0; align-items: center; gap: 7px; }
.catalog-search label { display: flex; width: min(300px,28vw); height: var(--control-height-sm); align-items: center; gap: 8px; padding: 0 10px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.catalog-search label:focus-within { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.catalog-search input { width: 100%; color: var(--ink); background: transparent; border: 0; outline: 0; }
.catalog-bulk-toolbar { display: flex; min-width: max-content; align-items: center; justify-content: flex-end; gap: 8px; padding-left: 8px; border-left: 1px solid var(--line); }
.catalog-bulk-toolbar > span { color: var(--ink-soft); font-size: var(--text-xs); }.catalog-bulk-toolbar > span strong { color: var(--ink); }
.catalog-table-scroll { max-height: calc(100vh - 300px); overflow: auto; }
.catalog-record-table { min-width: 900px; }
.catalog-record-table th { position: sticky; z-index: 2; top: 0; white-space: nowrap; }
.catalog-record-table td { max-width: 270px; }
.catalog-record-table td:not(:first-child) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-record-table code { color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-record-table .catalog-record-select-cell { width: 44px; min-width: 44px; max-width: 44px; padding-right: 8px; padding-left: 12px; text-align: center; }
.catalog-record-select-cell input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent-deep); cursor: pointer; }
.catalog-record-name-cell { min-width: 220px; white-space: nowrap; }
.catalog-record-name-button { display: block; max-width: 100%; overflow: hidden; padding: 0; color: var(--accent-deep); font: inherit; font-weight: 600; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; background: transparent; border: 0; }
.catalog-record-name-button:hover, .catalog-record-name-button:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.catalog-record-updated { min-width: 150px; }
.catalog-record-editor-panel { width: min(560px,96vw); }
.catalog-record-editor-footer .button-danger-ghost { margin-right: auto; }
.catalog-record-photo-control { display: flex; flex-direction: column; gap: 9px; padding: 11px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 10px; }
.catalog-record-photo-control > input[type="file"] { width: 100%; min-height: 38px; padding: 7px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.catalog-record-photo-control > input[type="file"]::file-selector-button { min-height: 30px; margin: -3px 10px -3px -3px; padding: 0 11px; color: var(--ink); font: inherit; font-size: var(--text-xs); font-weight: 500; cursor: pointer; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 6px; transition: border-color .15s ease, background-color .15s ease; }
.catalog-record-photo-control > input[type="file"]::file-selector-button:hover { background: var(--surface); border-color: var(--line-strong); }
.catalog-record-photo-preview { display: grid; grid-template-columns: 64px minmax(0,1fr); align-items: center; gap: 10px; }
.catalog-record-photo-preview img { width: 64px; height: 64px; object-fit: cover; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.catalog-record-photo-preview > span { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.catalog-record-photo-preview strong { overflow: hidden; color: var(--ink); font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.catalog-record-photo-preview small, .catalog-record-photo-control > small { color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-record-photo-remove { display: flex; align-items: center; gap: 7px; color: var(--danger); font-size: var(--text-sm); cursor: pointer; }
.catalog-record-photo-remove input { width: 16px; height: 16px; margin: 0; accent-color: var(--danger); }
.catalog-record-photo-cell { display: block; width: 38px; height: 38px; object-fit: cover; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 8px; }
.catalog-schema-editor-footer .button-danger-ghost { margin-right: auto; }
.catalog-field-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; color: var(--ink-soft); }
.catalog-field-table { min-width: 760px; }
.catalog-field-type-cell > span { display: block; color: var(--ink); }
.catalog-field-target { display: flex; max-width: 240px; align-items: center; gap: 5px; margin-top: 4px; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.catalog-field-target .icon { width: 13px; height: 13px; flex: 0 0 auto; }
.catalog-field-target-missing { color: var(--danger); }
.catalog-field-table .catalog-field-drag-column,
.catalog-field-table .catalog-field-drag-cell { width: 44px; min-width: 44px; max-width: 44px; padding-right: 4px; padding-left: 10px; text-align: center; }
.catalog-field-table .catalog-field-icon-column,
.catalog-field-table .catalog-field-icon-cell { width: 46px; min-width: 46px; max-width: 46px; padding-right: 4px; padding-left: 8px; text-align: center; }
.catalog-field-type-icon { display: grid; width: 30px; height: 30px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--accent-deep) 12%,var(--line)); border-radius: var(--radius-md); }
.catalog-field-type-icon .icon { width: 16px; height: 16px; }
.catalog-field-name-cell { min-width: 210px; }
.catalog-field-name-cell > small { display: block; margin-top: 2px; }
.catalog-field-name-button { padding: 0; color: var(--accent-deep); font: inherit; font-weight: 600; text-align: left; cursor: pointer; background: transparent; border: 0; }
.catalog-field-name-button:hover, .catalog-field-name-button:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.catalog-field-drag-handle { display: grid; width: 30px; height: 30px; place-items: center; padding: 0; color: var(--ink-faint); cursor: grab; background: transparent; border: 0; border-radius: 8px; }
.catalog-field-drag-handle:hover, .catalog-field-drag-handle:focus-visible { color: var(--accent-deep); background: var(--surface-muted); outline: none; }
.catalog-field-drag-handle:active { cursor: grabbing; }
.catalog-field-table tr.dragging { opacity: .45; }
.catalog-field-table tr.drag-before > td { box-shadow: inset 0 2px 0 var(--accent-deep); }
.catalog-field-table tr.drag-after > td { box-shadow: inset 0 -2px 0 var(--accent-deep); }
.catalog-field-order-status { color: var(--ink-soft); font-size: var(--text-xs); white-space: nowrap; }
.catalog-field-order-status.danger { color: var(--danger); }
.catalog-field-fixed-settings { margin: 0; padding: 10px 12px; color: var(--ink-soft); font-size: var(--text-xs); background: var(--table-head-background); border: 1px solid var(--line); border-radius: var(--radius-md); }
.catalog-usage-workspace { min-width: 0; }
.catalog-usage-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 12px; background: var(--surface-muted); border-bottom: 1px solid var(--line); }
.catalog-usage-relation { flex: 1 1 360px; }
.catalog-usage-relation label { display: flex; max-width: 440px; flex-direction: column; gap: 5px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 500; }
.catalog-usage-relation select { width: 100%; min-height: var(--control-height-sm); padding: 0 38px 0 10px; color: var(--ink); font: inherit; font-size: var(--text-sm); background-color: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); outline: 0; }
.catalog-usage-relation select:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.catalog-usage-search { flex: 0 1 auto; }
.catalog-usage-context { margin: 0; padding: 10px 14px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.5; border-bottom: 1px solid var(--line); }
.catalog-usage-list { display: flex; flex-direction: column; }
.catalog-usage-row { border-bottom: 1px solid var(--line); }
.catalog-usage-toggle { display: grid; width: 100%; min-height: 58px; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 8px 14px; color: var(--ink); font: inherit; text-align: left; cursor: pointer; background: transparent; border: 0; }
.catalog-usage-toggle:hover:not(:disabled),.catalog-usage-toggle[aria-expanded="true"] { background: var(--surface-muted); }
.catalog-usage-toggle:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--accent-deep); outline-offset: -2px; }
.catalog-usage-toggle:disabled { cursor: default; }
.catalog-usage-toggle:disabled .catalog-usage-chevron { visibility: hidden; }
.catalog-usage-chevron { color: var(--ink-faint); transition: transform .16s ease; }
.catalog-usage-toggle[aria-expanded="true"] .catalog-usage-chevron { transform: rotate(180deg); }
.catalog-usage-record { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.catalog-usage-record strong,.catalog-usage-record small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-usage-record strong { font-size: var(--text-sm); font-weight: 600; }
.catalog-usage-record small { color: var(--ink-faint); font-size: var(--text-xs); }
.catalog-usage-children { padding: 0 14px 12px 47px; background: var(--surface-muted); }
.catalog-usage-state { margin: 0; padding: 9px 0; color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-usage-state.danger { color: var(--danger); }
.catalog-usage-source-list { display: grid; gap: 5px; }
.catalog-usage-source { display: grid; min-height: 42px; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 9px; padding: 5px 9px; color: var(--ink); text-decoration: none; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.catalog-usage-source:hover { border-color: var(--line-strong); }
.catalog-usage-source-symbol { display: grid; width: 28px; height: 28px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: var(--radius-sm); }
.catalog-usage-source-symbol .icon { width: 14px; height: 14px; }
.catalog-usage-source > span:last-child { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
.catalog-usage-source strong,.catalog-usage-source small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-usage-source strong { font-size: var(--text-xs); font-weight: 600; }
.catalog-usage-source small { color: var(--ink-faint); font-size: var(--text-xs); }
.catalog-usage-more { margin-top: 8px; }
.catalog-usage-pagination { display: flex; min-height: 52px; align-items: center; justify-content: center; gap: 12px; padding: 8px 12px; }
.catalog-usage-pagination > span { color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-import-preview { display: grid; min-height: 380px; grid-template-columns: 58px minmax(0,660px); align-items: start; justify-content: center; gap: 18px; padding: 70px 32px 40px; }
.catalog-import-preview h3 { margin: 4px 0 8px; font-size: var(--text-xl); }
.catalog-import-preview p, .catalog-import-preview li { color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.6; }
.catalog-import-preview ul { margin: 16px 0 0; padding-left: 20px; }
.catalog-import-empty { display: grid; min-height: 330px; grid-template-columns: 58px minmax(0,560px); align-items: start; justify-content: center; gap: 18px; padding: 70px 30px; }
.catalog-import-empty h3 { margin: 5px 0 7px; font-size: var(--text-xl); }.catalog-import-empty p { margin: 0; color: var(--ink-soft); line-height: 1.55; }
.catalog-import-history-table-wrap { min-height: 330px; }
.catalog-import-history-table { min-width: 980px; }
.catalog-import-history-table td { white-space: nowrap; }
.catalog-import-history-table td:first-child { max-width: 320px; }
.catalog-import-file-link { display: block; overflow: hidden; color: var(--accent-deep); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-format { display: inline-flex; padding: 3px 7px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 600; background: var(--table-head-background); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.catalog-import-modal { animation: backdrop-in 180ms ease-out; }
.catalog-import-dialog { display: flex; width: min(1240px,calc(100vw - 40px)); max-height: calc(100vh - 40px); flex-direction: column; overflow: hidden; animation: catalog-import-dialog-in 150ms ease-out; }
@keyframes catalog-import-dialog-in { from { opacity: 0; } to { opacity: 1; } }
.catalog-import-create-dialog { width: min(680px,calc(100vw - 40px)); }
.catalog-import-create-form { display: flex; min-height: 0; flex-direction: column; }
.catalog-import-create-body { display: grid; min-height: 230px; grid-template-columns: 58px minmax(0,1fr); align-items: start; gap: 18px; padding: 34px; }
.catalog-import-create-body strong { display: block; margin-top: 3px; font-size: var(--text-lg); }.catalog-import-create-body p { margin: 7px 0 18px; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.55; }
.catalog-import-file-picker { display: inline-flex; cursor: pointer; }.catalog-import-file-picker input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; }
.catalog-import-create-footer { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--drawer-background); border-top: 1px solid var(--line); }.catalog-import-create-footer > div { display: flex; gap: 8px; }
.catalog-import-modal-head { display: flex; min-height: 76px; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 15px 18px; background: var(--drawer-background); border-bottom: 1px solid var(--line); }
.catalog-import-modal-head > div { min-width: 0; }.catalog-import-modal-head h2 { margin: 2px 0 3px; font-size: var(--text-xl); }.catalog-import-modal-head p { margin: 0; color: var(--ink-soft); font-size: var(--text-sm); }
.catalog-import-modal-body { min-height: 0; overflow-y: auto; }
.catalog-import-workspace { min-width: 0; }
.catalog-import-job-head { display: flex; min-height: 62px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.catalog-import-job-head > div { display: flex; min-width: 0; flex-direction: column; }.catalog-import-job-head > div > span { display: flex; align-items: center; gap: 8px; }.catalog-import-job-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.catalog-import-job-head small { margin-top: 4px; color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-import-processing { display: flex; min-height: 150px; align-items: center; justify-content: center; gap: 15px; padding: 28px; border-bottom: 1px solid var(--line); }.catalog-import-processing p { margin: 4px 0 0; color: var(--ink-soft); font-size: var(--text-sm); }
.catalog-import-spinner { width: 30px; height: 30px; border: 3px solid rgba(var(--accent-rgb),.18); border-top-color: var(--accent-deep); border-radius: 50%; animation: catalog-import-spin .8s linear infinite; }
@keyframes catalog-import-spin { to { transform: rotate(360deg); } }
.catalog-import-counters { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-bottom: 1px solid var(--line); }
.catalog-import-counters > span { display: flex; min-height: 72px; align-items: flex-start; justify-content: center; flex-direction: column; padding: 10px 13px; border-right: 1px solid var(--line); }.catalog-import-counters > span:last-child { border-right: 0; }.catalog-import-counters strong { font-size: var(--text-lg); }.catalog-import-counters small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }.catalog-import-counters .success strong { color: var(--accent-deep); }.catalog-import-counters .danger strong { color: var(--danger); }
.catalog-import-result-details { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0; border-bottom: 1px solid var(--line); }
.catalog-import-result-details > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--line); }.catalog-import-result-details > div:last-child { border-right: 0; }.catalog-import-result-details dt { color: var(--ink-soft); font-size: var(--text-xs); }.catalog-import-result-details dd { overflow: hidden; margin: 4px 0 0; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-alert { margin: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-md); }.catalog-import-alert p { margin: 4px 0 0; color: var(--ink-soft); }.catalog-import-alert.danger { background: rgba(185,48,48,.05); border-color: rgba(185,48,48,.25); }.catalog-import-alert.mapping-required { color: var(--ink); background: color-mix(in srgb,var(--warning) 10%,var(--card-solid)); border-color: color-mix(in srgb,var(--warning) 42%,var(--line)); box-shadow: inset 3px 0 0 var(--warning); }.catalog-import-alert.mapping-required strong { color: color-mix(in srgb,var(--warning) 78%,var(--ink)); font-weight: 750; }
.catalog-import-sheet-form { display: flex; align-items: end; gap: 8px; padding: 13px 14px; border-bottom: 1px solid var(--line); }.catalog-import-sheet-form .form-field { width: min(360px,100%); }
.catalog-import-mapping { min-width: 0; }
.catalog-import-key-card { display: grid; grid-template-columns: minmax(190px,1fr) minmax(180px,260px) minmax(180px,260px); align-items: end; gap: 12px; padding: 15px 14px; background: rgba(var(--accent-rgb),.045); border-bottom: 1px solid var(--line); }.catalog-import-key-card > div { align-self: center; }.catalog-import-key-card > div > strong,.catalog-import-key-card > div > small { display: block; }.catalog-import-key-card > div > small { margin-top: 4px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.45; }
.catalog-import-preview-table { max-height: 470px; }.catalog-import-preview-table table { min-width: 940px; }.catalog-import-preview-table th:first-child,.catalog-import-preview-table td:first-child { width: 32%; min-width: 260px; }.catalog-import-preview-table th:nth-child(2),.catalog-import-preview-table td:nth-child(2) { width: 48%; min-width: 360px; }.catalog-import-preview-table select { width: 100%; min-height: var(--control-height-sm); padding: 0 28px 0 8px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-sm); }.catalog-import-sample { display: block; overflow: hidden; margin-top: 6px; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-field-row { vertical-align: top; }.catalog-import-field-cell strong { display: block; line-height: 1.35; }.catalog-import-field-cell > span { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 5px; }.catalog-import-field-cell i,.catalog-import-field-cell small { color: var(--ink-soft); font-size: var(--text-xs); font-style: normal; }.catalog-import-field-cell i { padding: 2px 6px; background: var(--table-head-background); border: 1px solid var(--line); border-radius: 999px; }.catalog-import-field-cell b { padding: 2px 6px; color: color-mix(in srgb,var(--danger) 82%,var(--ink)); font-size: var(--text-xs); font-weight: 650; background: color-mix(in srgb,var(--danger) 8%,var(--card-solid)); border-radius: 999px; }.catalog-import-source-cell { min-width: 360px; }.catalog-import-policy-empty,.catalog-import-policy-skipped { display: block; padding-top: 7px; color: var(--ink-soft); text-align: center; }.catalog-import-policy-skipped { font-size: var(--text-xs); }
.catalog-import-relation-settings,.catalog-import-date-settings { display: grid; gap: 7px; margin-top: 8px; padding: 9px; background: rgba(var(--accent-rgb),.045); border: 1px solid var(--line); border-radius: var(--radius-sm); }.catalog-import-relation-settings > small,.catalog-import-date-settings > small { color: var(--ink-soft); font-size: var(--text-xs); }.catalog-import-relation-settings > small strong { color: var(--ink); font-weight: 600; }.catalog-import-relation-settings > label,.catalog-import-date-settings > label { display: grid; grid-template-columns: 105px minmax(0,1fr); align-items: center; gap: 7px; }.catalog-import-relation-settings > label > span,.catalog-import-date-settings > label > span { color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-import-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 14px; border-top: 1px solid var(--line); }
.catalog-import-mapping > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-top: 1px solid var(--line); }.catalog-import-mapping > footer p { margin: 0; color: var(--ink-soft); font-size: var(--text-xs); }.catalog-import-mapping > footer code { color: var(--accent-deep); }
.catalog-import-apply { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; background: rgba(var(--accent-rgb),.06); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.catalog-import-apply > div { display: flex; flex-direction: column; }.catalog-import-apply small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }
.catalog-import-errors > header { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); }.catalog-import-errors > header > div { display: flex; flex-direction: column; }.catalog-import-errors > header small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }.catalog-import-errors .table-scroll { max-height: 340px; }.catalog-import-errors table { min-width: 720px; }
.catalog-empty-state { min-height: 330px; }
.next-step-note { display: flex; align-items: center; gap: 12px; margin-top: 13px; padding: 14px 16px; color: var(--ink-soft); font-size: var(--text-sm); background: rgba(var(--accent-rgb),.08); border: 1px solid rgba(var(--accent-rgb),.22); border-radius: var(--radius-lg); }.next-step-note strong { color: var(--accent-deep); white-space: nowrap; }
.module-ready-card { display: grid; min-height: 150px; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 24px; }
.module-ready-icon { display: grid; width: 58px; height: 58px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.13); border-radius: 15px; }
.module-ready-card h2 { margin: 4px 0 3px; }.module-ready-card p { margin: 0; color: var(--ink-soft); }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(5,13,15,.68); backdrop-filter: blur(8px); }
.drawer-backdrop { position: fixed; inset: 0; z-index: 100; display: flex; justify-content: flex-end; background: var(--drawer-overlay); backdrop-filter: blur(8px); animation: backdrop-in 180ms ease-out; }
body.drawer-open { overflow: hidden; }
@keyframes backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes drawer-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes modal-in { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.quick-create-modal { width: min(520px,100%); padding: 22px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--surface-radius); box-shadow: var(--shadow-lg); }
.quick-create-modal > header { display: flex; align-items: flex-start; justify-content: space-between; }.quick-create-modal h2 { margin: 4px 0 0; }.quick-create-modal > p { color: var(--ink-soft); }
.create-options { display: flex; flex-direction: column; gap: 8px; }.create-options > button { display: grid; min-height: 72px; grid-template-columns: 42px minmax(0,1fr) 18px; align-items: center; gap: 12px; padding: 10px 12px; color: var(--ink); text-align: left; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }.create-options > button > span:first-child { display: grid; width: 42px; height: 42px; place-items: center; border-radius: var(--radius-lg); }.create-options > button > span:nth-child(2) { display: flex; flex-direction: column; }.create-options small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }
.mobile-sidebar-backdrop { display: none; }
.workspace-auth-message { position: fixed; z-index: 70; top: calc(var(--topbar-height) + 12px); right: 18px; max-width: 380px; padding: 10px 13px; color: #a33446; font-size: var(--text-sm); background: #fff0f2; border: 1px solid #f4cbd2; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.workspace-auth-message.success { color: #087958; background: #e5f7f0; border-color: #bdebdc; }

/* Visit exports */
.visit-page-intro { min-height: 72px; }
.visit-workspace-tabs { display: flex; width: fit-content; align-items: center; gap: 4px; margin-bottom: 10px; padding: 4px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.visit-workspace-tabs > a { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; padding: 0 11px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 580; text-decoration: none; border-radius: var(--radius-md); }
.visit-workspace-tabs > a.active { color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); }
.visit-workspace-tabs > a > span { display: grid; min-width: 18px; height: 18px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); border-radius: var(--radius-xs); }
.visit-export-history-head { justify-content: space-between; }
.visit-export-history-head p { margin: 3px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-history-table { min-width: 980px; }
.visit-export-history-table td > strong,.visit-export-history-table td > small { display: block; }
.visit-export-history-table td > small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-history-table td:nth-child(3) { max-width: 290px; color: var(--ink-soft); }
.visit-export-no-filter { color: var(--ink-soft); }
.visit-export-download-cell { text-align: right; }
.visit-export-empty { min-height: 280px; }
.visit-export-dialog { width: min(860px,100%); max-height: min(780px,calc(100vh - 40px)); overflow: hidden; color: var(--ink); background: var(--card-solid); animation: modal-in 180ms ease-out; }
.visit-export-modal-head { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.visit-export-modal-head h2 { margin: 0; font-size: var(--text-xl); }
.visit-export-modal-head p { margin: 3px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-dialog > form { position: relative; display: flex; min-height: 0; max-height: calc(min(780px,100vh - 40px) - 70px); flex-direction: column; }
.visit-export-modal-body { min-height: 0; overflow-y: auto; padding: 16px; }
.visit-export-choice-group,.visit-export-format-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.visit-export-choice-group > legend,.visit-export-format-field > legend { margin-bottom: 8px; color: var(--ink); font-size: var(--text-sm); font-weight: 600; }
.visit-export-layout-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.visit-export-layout-options > label { position: relative; display: grid; min-height: 82px; grid-template-columns: 40px minmax(0,1fr) 18px; align-items: center; gap: 11px; padding: 10px 12px; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: border-color 150ms ease,background 150ms ease,box-shadow 150ms ease; }
.visit-export-layout-options input { position: absolute; opacity: 0; pointer-events: none; }
.visit-export-layout-options > label:has(input:checked) { background: rgba(var(--accent-rgb),.055); border-color: rgba(var(--accent-rgb),.48); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.08); }
.visit-export-option-icon { display: grid; width: 40px; height: 40px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.11); border-radius: var(--radius-md); }
.visit-export-layout-options label > span:nth-of-type(2) { display: flex; min-width: 0; flex-direction: column; }
.visit-export-layout-options small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.35; }
.visit-export-option-check { color: var(--accent-deep); opacity: 0; }
.visit-export-layout-options input:checked ~ .visit-export-option-check { opacity: 1; }
.visit-export-filter-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.visit-export-form-filter > span { display: flex; justify-content: space-between; gap: 10px; }
.visit-export-form-filter > span i { color: var(--ink-soft); font-size: var(--text-xs); font-style: normal; font-weight: 450; }
.visit-export-form-filter > small { margin-top: 5px; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-form-picker-toggle { display: flex; width: 100%; min-height: var(--control-height-lg); align-items: center; justify-content: space-between; gap: 10px; padding: 0 11px; color: var(--ink); font: inherit; font-size: var(--text-sm); text-align: left; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line-strong); border-radius: var(--radius-md); }
.visit-export-form-picker-toggle[aria-expanded="true"] { border-color: rgba(var(--accent-rgb),.5); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.07); }
.visit-export-form-picker-toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.visit-export-form-picker-panel { position: absolute; z-index: 12; max-height: 280px; overflow-y: auto; padding: 6px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.visit-export-form-picker-panel header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 6px 8px; border-bottom: 1px solid var(--line); }
.visit-export-form-picker-panel header strong { font-size: var(--text-xs); }
.visit-export-form-picker-panel header button { padding: 0; color: var(--accent-deep); font: inherit; font-size: var(--text-xs); cursor: pointer; background: transparent; border: 0; }
.visit-export-form-picker-panel label { display: grid; min-height: 38px; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 8px; padding: 5px 6px; cursor: pointer; border-radius: var(--radius-sm); }
.visit-export-form-picker-panel label:hover { background: rgba(var(--accent-rgb),.06); }
.visit-export-form-picker-panel label > span { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
.visit-export-form-picker-panel label strong { overflow: hidden; font-size: var(--text-xs); font-weight: 520; text-overflow: ellipsis; white-space: nowrap; }
.visit-export-form-picker-panel label small { color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-format-field .property-segments { display: flex; gap: 3px; padding: 3px; background: color-mix(in srgb,var(--line) 45%,transparent); border: 1px solid var(--line); border-radius: var(--radius-md); }
.visit-export-format-field .property-segments label { position: relative; display: flex; min-height: 34px; flex: 1; align-items: center; justify-content: center; padding: 5px 9px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; text-align: center; cursor: pointer; border-radius: var(--radius-sm); }
.visit-export-format-field .property-segments input { position: absolute; opacity: 0; pointer-events: none; }
.visit-export-format-field .property-segments label:has(input:checked) { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.visit-export-modal-footer { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 16px; border-top: 1px solid var(--line); }
.visit-export-modal-footer > p { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-export-modal-footer > div { display: flex; gap: 8px; }

/* Visit photo gallery */
.visit-gallery-workspace { display: grid; gap: 10px; }
.visit-gallery-filters { overflow: visible; padding: 12px; }
.visit-gallery-filter-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.visit-gallery-filter-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.visit-gallery-subject-search .input-with-icon { position: relative; display: block; }
.visit-gallery-subject-search .input-with-icon > svg { position: absolute; z-index: 1; top: 50%; left: 11px; color: var(--ink-faint); pointer-events: none; transform: translateY(-50%); }
.visit-gallery-subject-search .input-with-icon > input { padding-left: 35px; }
.visit-gallery-card { min-height: 430px; }
.visit-gallery-head { justify-content: space-between; }
.visit-gallery-head p { margin: 3px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.surface-header > div.visit-gallery-view-switcher { display: flex; flex-direction: row; gap: 2px; padding: 3px; background: color-mix(in srgb,var(--line) 45%,transparent); border: 1px solid var(--line); border-radius: var(--radius-md); }
.visit-gallery-view-switcher button { display: grid; width: 31px; height: 29px; place-items: center; padding: 0; color: var(--ink-soft); font: inherit; font-size: var(--text-xs); font-weight: 600; cursor: pointer; background: transparent; border: 0; border-radius: var(--radius-sm); }
.visit-gallery-view-switcher button:hover { color: var(--ink); }
.visit-gallery-view-switcher button.active { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.visit-gallery-status { min-height: 0; padding: 0 14px; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-gallery-status:not(:empty) { padding-top: 10px; }
.visit-gallery-status.error { color: var(--danger); }
.visit-gallery-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; min-height: 300px; padding: 12px; }
.visit-gallery-grid[data-gallery-columns="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.visit-gallery-grid[data-gallery-columns="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.visit-gallery-grid[data-gallery-columns="4"] { grid-template-columns: repeat(4,minmax(0,1fr)); }
.visit-gallery-grid[data-gallery-columns="5"] { grid-template-columns: repeat(5,minmax(0,1fr)); }
.visit-gallery-grid[data-gallery-columns="6"] { grid-template-columns: repeat(6,minmax(0,1fr)); }
.visit-gallery-grid[data-gallery-columns="list"] { grid-template-columns: 1fr; }
.visit-gallery-grid[aria-busy="true"] { opacity: .55; }
.visit-gallery-item { min-width: 0; overflow: hidden; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: border-color 150ms ease,box-shadow 150ms ease,transform 150ms ease; }
.visit-gallery-item:hover { border-color: color-mix(in srgb,var(--accent-deep) 34%,var(--line)); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.visit-gallery-photo-button { position: relative; display: block; width: 100%; padding: 0; cursor: zoom-in; background: var(--surface-muted); border: 0; border-bottom: 1px solid var(--line); }
.visit-gallery-photo-button img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.visit-gallery-photo-size { position: absolute; right: 7px; bottom: 7px; padding: 3px 6px; color: #fff; font-size: 11px; font-style: normal; background: rgba(5,13,15,.66); border-radius: var(--radius-xs); backdrop-filter: blur(5px); }
.visit-gallery-caption { display: grid; gap: 3px; padding: 9px 10px 10px; }
.visit-gallery-caption > strong,.visit-gallery-caption > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visit-gallery-caption > strong { font-size: var(--text-sm); font-weight: 620; }
.visit-gallery-caption > small { color: var(--ink-soft); font-size: var(--text-xs); }
.visit-gallery-item-meta { display: flex; min-width: 0; justify-content: space-between; gap: 8px; margin-top: 3px; color: var(--ink-faint); font-size: var(--text-xs); }
.visit-gallery-item-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visit-gallery-grid[data-gallery-columns="5"] .visit-gallery-item-meta,.visit-gallery-grid[data-gallery-columns="6"] .visit-gallery-item-meta { display: grid; gap: 2px; }
.visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-item { display: grid; grid-template-columns: 190px minmax(0,1fr); }
.visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-photo-button { border-right: 1px solid var(--line); border-bottom: 0; }
.visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-photo-button img { height: 128px; aspect-ratio: auto; }
.visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-caption { align-content: center; padding: 14px 16px; }
.visit-gallery-grid > .empty-state { grid-column: 1/-1; min-height: 290px; }
.visit-gallery-pagination { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 11px 12px 13px; border-top: 1px solid var(--line); }
.visit-gallery-pagination button,.visit-gallery-pagination span { display: grid; min-width: 32px; height: 32px; place-items: center; padding: 0 8px; color: var(--ink-soft); font: inherit; font-size: var(--text-xs); background: transparent; border: 1px solid transparent; border-radius: var(--radius-sm); }
.visit-gallery-pagination button { cursor: pointer; }
.visit-gallery-pagination button:hover:not(:disabled) { color: var(--ink); background: var(--surface-muted); border-color: var(--line); }
.visit-gallery-pagination button.active { color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); border-color: rgba(var(--accent-rgb),.2); }
.visit-gallery-pagination button:disabled { opacity: .4; cursor: default; }
.visit-gallery-lightbox { animation: backdrop-in 180ms ease-out; }
.visit-gallery-lightbox-dialog { display: flex; width: min(1120px,calc(100vw - 40px)); max-height: calc(100vh - 40px); flex-direction: column; overflow: hidden; background: var(--card-solid); animation: modal-in 180ms ease-out; }
.visit-gallery-lightbox-dialog > header { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.visit-gallery-lightbox-dialog > header > div { min-width: 0; }
.visit-gallery-lightbox-dialog h2,.visit-gallery-lightbox-dialog p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visit-gallery-lightbox-dialog h2 { margin: 0; font-size: var(--text-lg); }
.visit-gallery-lightbox-dialog p { margin: 3px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.visit-gallery-lightbox-media { display: grid; min-height: 0; flex: 1; place-items: center; overflow: auto; padding: 14px; background: #101416; }
.visit-gallery-lightbox-media img { display: block; max-width: 100%; max-height: calc(100vh - 190px); object-fit: contain; }
.visit-gallery-lightbox-dialog > footer { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--line); }
.visit-gallery-lightbox-dialog > footer > div { display: flex; min-width: 0; flex-wrap: wrap; gap: 5px 14px; color: var(--ink-soft); font-size: var(--text-xs); }
html[data-ui-theme="clean"] .visit-workspace-tabs > a.active { color: var(--ink); background: #f4f4f5; }
html[data-ui-theme="clean"] .visit-export-layout-options > label:has(input:checked) { background: #fafafa; border-color: #a1a1aa; }
html[data-ui-theme="clean"] .visit-export-format-field .property-segments label:has(input:checked) { color: var(--ink); }
html[data-ui-theme="clean"] .visit-gallery-view-switcher button.active { color: var(--ink); }

/* Visit planning */
.plan-page-intro { min-height: 72px; }
.plan-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.plan-summary-grid > article { display: flex; min-height: 84px; flex-direction: column; padding: 12px 14px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.plan-summary-grid span,.plan-summary-grid small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-summary-grid strong { margin: 3px 0 1px; font-size: var(--text-xl); line-height: 1; }
.plan-summary-grid .warning-value { color: var(--warning); }
.plan-navigation-toolbar { display: grid; min-height: 54px; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; margin-bottom: 12px; padding: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); }
.plan-page-tabs { display: flex; min-height: 44px; align-items: center; gap: 4px; margin: 0; padding: 4px; background: color-mix(in srgb,var(--line) 43%,transparent); border-radius: var(--radius-md); }
.plan-page-tabs > a { display: flex; min-height: 36px; flex: 1; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; color: var(--ink-soft); font-size: var(--text-sm); font-weight: 550; text-decoration: none; border-radius: var(--radius-md); }
.plan-page-tabs > a:hover { color: var(--ink); }
.plan-page-tabs > a.active { color: var(--ink); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.plan-page-tabs > a > i { display: grid; min-width: 20px; height: 20px; place-items: center; color: var(--card-solid); font-size: var(--text-xs); font-style: normal; background: var(--warning); border-radius: 999px; }
.plan-calendar-card { padding: 0; overflow: hidden; }
.plan-calendar-toolbar { display: flex; min-height: 60px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; background: var(--card-solid); border-bottom: 1px solid var(--line); }
.plan-calendar-toolbar > div { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.plan-calendar-toolbar strong { font-size: var(--text-sm); }
.plan-calendar-toolbar small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-calendar-status-filter { display: flex; flex: none; align-items: center; gap: 3px; padding: 3px; background: color-mix(in srgb,var(--line) 48%,transparent); border-radius: var(--radius-md); }
.plan-calendar-status-filter > a { display: inline-flex; min-height: 32px; align-items: center; gap: 6px; padding: 0 10px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; text-decoration: none; border-radius: calc(var(--radius-md) - 2px); }
.plan-calendar-status-filter > a:hover { color: var(--ink); }
.plan-calendar-status-filter > a.active { color: var(--ink); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.plan-calendar-status-filter i { display: grid; min-width: 18px; height: 18px; place-items: center; color: #725317; font-size: var(--text-xs); font-style: normal; background: #f8d990; border-radius: 999px; }
.plan-calendar-period { display: flex; align-items: center; gap: 5px; padding: 0 3px; }
.plan-calendar-period > span { display: flex; min-width: 158px; flex-direction: column; text-align: center; }
.plan-calendar-period strong { font-size: var(--text-sm); }
.plan-calendar-period small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-calendar-scroll { overflow-x: auto; }
.plan-week-calendar { display: grid; min-width: 954px; grid-template-columns: 58px repeat(7,minmax(128px,1fr)); }
.plan-calendar-time-column { display: grid; grid-template-rows: 70px repeat(var(--plan-calendar-hours,12),54px); color: var(--ink-faint); border-right: 1px solid var(--line); }
.plan-calendar-time-column > span { border-bottom: 1px solid var(--line); }
.plan-calendar-time-column > i { padding: 5px 7px 0 0; font-size: var(--text-xs); font-style: normal; text-align: right; border-bottom: 1px solid var(--line); }
.plan-calendar-day { min-width: 0; border-right: 1px solid var(--line); }
.plan-calendar-day:last-child { border-right: 0; }
.plan-calendar-day-head { display: flex; width: 100%; height: 70px; align-items: center; justify-content: center; flex-direction: column; color: var(--ink); cursor: pointer; background: var(--card-solid); border: 0; border-bottom: 1px solid var(--line); }
.plan-calendar-day-head:hover,.plan-calendar-day.today .plan-calendar-day-head { background: rgba(var(--accent-rgb),.06); }
.plan-calendar-day.weekend .plan-calendar-day-head { background: color-mix(in srgb,var(--surface-soft) 72%,var(--card-solid)); }
.plan-calendar-day-head span,.plan-calendar-day-head small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-calendar-day-head strong { margin: 1px 0; font-size: var(--text-base); }
.plan-calendar-day-body { position: relative; height: calc(var(--plan-calendar-hours,12) * 54px); background: repeating-linear-gradient(to bottom,transparent 0,transparent 53px,var(--line) 53px,var(--line) 54px); }
.plan-calendar-day.weekend .plan-calendar-day-body { background-color: color-mix(in srgb,var(--surface-soft) 38%,transparent); }
.plan-calendar-slot { display: block; width: 100%; height: 54px; color: var(--accent-deep); cursor: pointer; opacity: 0; background: rgba(var(--accent-rgb),.04); border: 0; }
.plan-calendar-slot:hover { opacity: 1; }
.plan-calendar-slot span { display: grid; width: 24px; height: 24px; margin: auto; place-items: center; background: var(--card-solid); border: 1px solid var(--line); border-radius: 8px; }
.plan-calendar-event { position: absolute; z-index: 2; top: calc(var(--plan-start) * 54px); right: 5px; left: 5px; display: flex; min-height: max(39px,calc(var(--plan-duration) * 54px - 4px)); flex-direction: column; padding: 6px 7px; overflow: hidden; color: #18312a; text-decoration: none; background: #dff4ed; border: 1px solid #a9dacb; border-left: 3px solid #2aa379; border-radius: 8px; box-shadow: 0 2px 6px rgba(16,33,38,.08); }
.plan-calendar-event.tone-1 { color: #3d3465; background: #efedfb; border-color: #cec7ef; border-left-color: #7a67d6; }
.plan-calendar-event.tone-2 { color: #274f5b; background: #e5f5f6; border-color: #b7dfe2; border-left-color: #2b9aab; }
.plan-calendar-event.status-pending { color: #5d4618; background: #fff6dc; border-color: #e5c76f; border-left-color: #d69a2d; border-style: dashed; }
.plan-calendar-event time { font-size: var(--text-xs); font-weight: 600; }
.plan-calendar-event-status { align-self: flex-start; margin: 2px 0; padding: 2px 5px; color: #725317; font-size: var(--text-xs); font-style: normal; font-weight: 650; line-height: 1.25; background: #f8d990; border-radius: 5px; }
.plan-calendar-event strong { overflow: hidden; font-size: var(--text-xs); line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.plan-calendar-event span,.plan-calendar-event small { overflow: hidden; font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.plan-list-card { padding: 0; }
.plan-list-table { min-width: 900px; }
.plan-list-table tbody tr { cursor: pointer; }
.plan-list-table td > strong,.plan-list-table td > small { display: block; }
.plan-list-table td > small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.plan-approval-layout { display: grid; min-height: 520px; grid-template-columns: minmax(300px,.82fr) minmax(0,1.55fr); gap: 12px; }
.plan-request-list,.plan-request-detail { padding: 0; overflow: hidden; }
.plan-request-detail { display: flex; min-width: 0; flex-direction: column; }
.plan-request-list > header { display: flex; min-height: 61px; align-items: center; justify-content: space-between; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.plan-request-list > header > span { display: flex; flex-direction: column; }
.plan-request-list > header strong { font-size: var(--text-sm); }
.plan-request-list > header small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-request-list > header > i { display: grid; min-width: 25px; height: 25px; place-items: center; color: var(--warning); font-size: var(--text-xs); font-style: normal; background: color-mix(in srgb,var(--warning) 10%,transparent); border-radius: 999px; }
.plan-request-list > div { display: flex; flex-direction: column; gap: 5px; padding: 8px; }
.plan-request-list a { display: grid; min-height: 78px; grid-template-columns: 38px minmax(0,1fr) 18px; align-items: center; gap: 9px; padding: 8px; color: var(--ink); text-decoration: none; background: transparent; border: 1px solid transparent; border-radius: var(--radius-md); }
.plan-request-list a:hover { background: rgba(var(--accent-rgb),.05); border-color: var(--line); }
.plan-request-list a.active { background: rgba(var(--accent-rgb),.09); border-color: rgba(var(--accent-rgb),.28); }
.plan-request-list a > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.plan-request-list a strong,.plan-request-list a small,.plan-request-list a i { overflow: hidden; font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.plan-request-list a small,.plan-request-list a i { color: var(--ink-soft); font-style: normal; }
.plan-request-empty { display: flex; min-height: 250px; align-items: center; justify-content: center; flex-direction: column; padding: 24px; color: var(--ink-faint); text-align: center; }
.plan-request-empty strong { margin-top: 8px; color: var(--ink); font-size: var(--text-sm); }
.plan-request-empty small { margin-top: 3px; font-size: var(--text-xs); }
.plan-request-empty.detail-empty { min-height: 100%; }
.plan-request-detail > header { display: grid; min-height: 84px; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px 16px; background: linear-gradient(135deg,rgba(var(--accent-rgb),.1),transparent 62%); border-bottom: 1px solid var(--line); }
.plan-request-detail > header .person-avatar { width: 46px; height: 46px; }
.plan-request-detail > header > div { display: flex; min-width: 0; flex-direction: column; }
.plan-request-detail > header h3 { margin: 2px 0; overflow: hidden; font-size: var(--text-lg); text-overflow: ellipsis; white-space: nowrap; }
.plan-request-detail > header small,.plan-request-detail > header > div > span { overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.plan-request-detail > header > i { padding: 5px 8px; color: #815b13; font-size: var(--text-xs); font-style: normal; font-weight: 650; background: #fae6b5; border-radius: 7px; }
.plan-request-route { display: grid; grid-template-columns: 42px minmax(0,1fr) minmax(150px,.7fr); gap: 12px; margin: 14px; padding: 14px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.plan-request-route > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: var(--radius-md); }
.plan-request-route > div,.plan-request-comment > span { display: flex; min-width: 0; flex-direction: column; }
.plan-request-route small,.plan-request-comment small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-request-route strong,.plan-request-comment strong { font-size: var(--text-sm); }
.plan-request-route p { margin: 2px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.plan-request-comment { display: flex; align-items: flex-start; gap: 9px; margin: 0 14px; padding: 11px; color: var(--ink-soft); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.plan-decision-form { margin: auto 14px 14px; padding-top: 14px; }
.plan-decision-form textarea { width: 100%; min-height: 76px; resize: vertical; }
.plan-decision-form footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.plan-decision-form [data-plan-reject]:disabled,.drawer-footer [data-plan-reject]:disabled { cursor: not-allowed; opacity: .42; }
.plan-editor-body { display: flex; flex-direction: column; gap: 13px; }
.plan-editor-scope { display: grid; min-height: 58px; grid-template-columns: 36px minmax(0,1fr) 18px; align-items: center; gap: 9px; padding: 9px; color: var(--accent-deep); background: var(--accent-soft); border: 1px solid rgba(var(--accent-rgb),.18); border-radius: var(--radius-md); }
.plan-editor-scope > span { display: flex; min-width: 0; flex-direction: column; }
.plan-editor-scope strong { color: var(--ink); font-size: var(--text-sm); }
.plan-editor-scope small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-editor-datetime { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 9px; }
.plan-editor-result { display: grid; min-height: 61px; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 9px; padding: 10px; color: var(--accent-deep); background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.plan-editor-result > span { display: flex; min-width: 0; flex-direction: column; }
.plan-editor-result strong { overflow: hidden; color: var(--ink); font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.plan-editor-result small { overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.plan-detail-hero { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 11px; padding: 14px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.plan-detail-hero > span { display: grid; width: 52px; height: 52px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: var(--radius-lg); }
.plan-detail-hero h3 { margin: 7px 0 0; font-size: var(--text-base); }
.plan-detail-hero p { margin: 2px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.plan-detail-facts { display: flex; flex-direction: column; margin: 14px 0; }
.plan-detail-facts > div { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.plan-detail-facts dt { display: flex; align-items: center; gap: 6px; color: var(--ink-soft); font-size: var(--text-xs); }
.plan-detail-facts dd { display: flex; flex-direction: column; margin: 0; }
.plan-detail-facts dd strong { font-size: var(--text-sm); }
.plan-detail-facts dd small { color: var(--ink-soft); font-size: var(--text-xs); }
.plan-detail-comment { display: flex; align-items: flex-start; gap: 9px; padding: 10px; color: var(--ink-soft); background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.plan-detail-comment + .plan-detail-comment { margin-top: 8px; }
.plan-detail-comment > span { display: flex; min-width: 0; flex-direction: column; }
.plan-detail-comment small { font-size: var(--text-xs); }
.plan-detail-comment strong { color: var(--ink); font-size: var(--text-sm); }
.plan-drawer-decision-form { margin-top: 14px; }
.plan-drawer-decision-form textarea { width: 100%; min-height: 86px; resize: vertical; }
html[data-ui-theme="clean"] .plan-calendar-event { box-shadow: none; }

/* User management */
.user-page-intro { min-height: 78px; }
.user-search { display: flex; align-items: center; gap: 8px; }
.user-search label { display: flex; width: min(340px,40vw); height: var(--control-height-lg); align-items: center; gap: 8px; padding: 0 12px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.user-search input { width: 100%; color: var(--ink); background: transparent; border: 0; outline: 0; }
.user-list-header { min-height: 62px; }
.user-list-heading { flex: 0 0 auto; }
.user-list-toolbar { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; gap: 8px; }
.user-summary-badges { display: flex; align-items: center; gap: 6px; }
.user-summary-badge { display: inline-flex; min-height: 34px; align-items: center; gap: 6px; padding: 5px 9px; font-size: var(--text-xs); border: 1px solid currentColor; border-radius: var(--radius-md); }
.user-summary-badge strong { color: var(--ink); }
.user-summary-badge > span { color: var(--ink-soft); }
.user-form { padding: 19px; }
.form-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.form-field { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: var(--ink-soft); font-size: var(--text-sm); font-weight: 650; }
.drawer-backdrop .form-field, .user-editor-panel .form-field { color: var(--ink); }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: var(--control-height-lg); padding: 0 11px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); outline: 0; }
.form-field input[readonly], .form-field textarea[readonly] { color: var(--ink-soft); background: var(--surface-muted); border-color: var(--line-strong); cursor: default; }
.form-field textarea { min-height: 96px; padding-top: 10px; padding-bottom: 10px; resize: vertical; }
.form-field select[multiple] { min-height: 130px; padding: 7px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .user-search label:focus-within { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-field small { color: var(--ink-faint); font-size: var(--text-xs); font-weight: 450; line-height: 1.4; }
.required-mark { color: var(--danger); font-style: normal; }
.switch-field { position: relative; display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; cursor: pointer; background: color-mix(in srgb, var(--workspace) 48%, transparent); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: border-color var(--motion-fast),background var(--motion-fast); }
.switch-field:hover { border-color: var(--line-strong); }
.switch-input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.switch-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.switch-control { position: relative; display: block; width: 34px; height: 20px; flex: 0 0 34px; background: var(--line-strong); border-radius: 999px; transition: background var(--motion-fast),box-shadow var(--motion-fast); }
.switch-control i { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: var(--card-solid); border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.22); transition: transform var(--motion-fast); }
.switch-input:checked ~ .switch-control { background: var(--accent-deep); }
.switch-input:checked ~ .switch-control i { transform: translateX(14px); }
.switch-input:focus-visible ~ .switch-control { box-shadow: 0 0 0 3px var(--focus-ring); }
.switch-input:disabled ~ .switch-copy, .switch-input:disabled ~ .switch-control { opacity: .5; }
.switch-field strong { font-size: var(--text-sm); }
.switch-field small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }
.role-fieldset { margin: 17px 0 0; padding: 0; border: 0; }
.role-fieldset legend { margin-bottom: 8px; color: var(--ink-soft); font-size: var(--text-sm); font-weight: 700; }
.drawer-backdrop .role-fieldset legend, .user-editor-panel .role-fieldset legend { color: var(--ink); }
.role-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.role-options > label { position: relative; display: flex; min-height: 58px; align-items: center; gap: 9px; padding: 8px 10px; cursor: pointer; background: color-mix(in srgb, var(--workspace) 42%, transparent); border: 1px solid var(--line); border-radius: var(--radius-md); }
.role-options .switch-control { margin-left: auto; }
.role-options .switch-copy, .employee-link-option .switch-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.role-options strong, .employee-link-option strong { font-size: var(--text-sm); }
.role-options small, .employee-link-option small { margin-top: 3px; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; }
.employee-link-option { position: relative; display: flex; min-height: 62px; align-items: center; gap: 12px; margin-top: 13px; padding: 10px 12px; cursor: pointer; background: color-mix(in srgb, var(--workspace) 52%, transparent); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.employee-link-option .switch-control { margin-left: auto; }
.form-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
.user-list-card { min-height: 260px; overflow: visible; backdrop-filter: none; }
.user-table td { min-width: 125px; }
.user-table td:first-child { min-width: 250px; }
.user-table td:nth-child(2) { min-width: 190px; }
.user-table td:nth-child(4) { min-width: 180px; }
.user-identity-cell { display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 10px; }
.user-identity-cell > span { display: flex; min-width: 0; flex-direction: column; }
.user-identity-cell strong, .user-identity-cell small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.role-chip-list { display: flex; flex-wrap: wrap; gap: 5px; }
.role-chip { padding: 3px 7px; color: var(--accent-deep); font-size: var(--text-xs); font-style: normal; font-weight: 650; background: rgba(var(--accent-rgb),.08); border-radius: var(--radius-sm); }
.status-chip[title] { cursor: help; }
.user-identity-trigger { display: block; width: 100%; min-width: 0; padding: 0; color: var(--ink); text-align: left; cursor: pointer; appearance: none; background: transparent; border: 0; border-radius: var(--radius-md); outline: 0; }
.user-identity-trigger:focus-visible { box-shadow: 0 0 0 3px var(--focus-ring); }
.user-identity-trigger .user-identity-cell { width: 100%; }
.user-editor-body { min-height: 0; flex: 1; overflow-y: auto; }
.compact-user-form { display: flex; flex-direction: column; gap: 14px; padding: 14px; border-bottom: 1px solid var(--line); }
.compact-user-form .role-options { grid-template-columns: 1fr; }
.compact-role-fieldset { margin-top: 0; }
.compact-user-form > .button { width: 100%; margin-top: 0; }
.user-security-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.inline-action-form .button { width: 100%; min-height: var(--control-height); padding: 0 9px; font-size: var(--text-xs); }
.password-reset-form { padding: 14px; }
.password-reset-form > strong { display: block; margin-bottom: 10px; font-size: var(--text-sm); }
.password-reset-form .form-field-grid { gap: 8px; }
.password-reset-form > .button { width: 100%; min-height: var(--control-height); margin-top: 10px; font-size: var(--text-xs); }
.side-drawer { display: flex; width: min(500px,96vw); height: 100%; flex-direction: column; color: var(--ink); background: var(--drawer-background); border-left: 1px solid var(--line); box-shadow: var(--drawer-shadow); animation: drawer-in 240ms cubic-bezier(.2,.8,.2,1); outline: 0; }
.drawer-head { display: flex; min-height: 82px; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.drawer-head > div { min-width: 0; }
.drawer-head h2 { margin: 4px 0 3px; font-size: var(--text-xl); line-height: 1.2; font-weight: 660; letter-spacing: -.025em; }
.drawer-head p { margin: 0; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.45; }
.drawer-close { flex: 0 0 auto; background: var(--card-solid); border-color: var(--line); }
.side-drawer-form { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.side-drawer-body { min-height: 0; flex: 1; overflow-y: auto; padding: 20px; }
.side-drawer-body .form-field-grid { grid-template-columns: 1fr; }
.side-drawer-body .role-options { grid-template-columns: 1fr; }
.side-drawer-fields { display: flex; flex-direction: column; gap: 14px; }
.drawer-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; background: var(--drawer-background); border-top: 1px solid var(--line); }
.drawer-footer-split { justify-content: space-between; }
.drawer-footer-actions { display: flex; align-items: center; gap: 8px; }
.drawer-footer-danger { margin-right: auto; }

/* Theme switcher */
.theme-control { position: relative; }
.theme-menu { position: absolute; z-index: 90; top: 44px; right: 0; width: 330px; padding: 8px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--surface-radius); box-shadow: var(--shadow-lg); }
.theme-menu > header { display: flex; flex-direction: column; padding: 9px 10px 11px; border-bottom: 1px solid var(--line); }
.theme-menu > header strong { font-size: var(--text-sm); }
.theme-menu > header small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.theme-options { display: grid; gap: 6px; padding-top: 7px; }
.theme-option { position: relative; display: grid; min-height: 68px; grid-template-columns: 42px minmax(0,1fr) 18px; align-items: center; gap: 10px; padding: 8px 9px; color: var(--ink); text-align: left; cursor: pointer; background: transparent; border: 1px solid transparent; border-radius: var(--radius-lg); }
.theme-option:hover { background: var(--table-row-hover); border-color: var(--line); }
.theme-option[aria-checked="true"] { background: rgba(var(--accent-rgb),.055); border-color: rgba(var(--accent-rgb),.24); }
.theme-option > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.theme-option strong { font-size: var(--text-sm); }
.theme-option small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.theme-option > .icon { color: var(--accent-deep); }
.theme-swatches { position: relative; display: block; width: 40px; height: 40px; }
.theme-swatches i { position: absolute; width: 27px; height: 27px; border: 2px solid var(--card-solid); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.theme-swatches i:nth-child(1) { top: 0; left: 0; z-index: 3; }
.theme-swatches i:nth-child(2) { right: 0; bottom: 0; z-index: 2; }
.theme-swatches i:nth-child(3) { top: 4px; right: 1px; z-index: 1; width: 23px; height: 23px; }
.theme-swatch-forge i:nth-child(1) { background: #68f0c2; }.theme-swatch-forge i:nth-child(2) { background: #42d8e8; }.theme-swatch-forge i:nth-child(3) { background: #101416; }
.theme-swatch-clean i:nth-child(1) { background: #18181b; }.theme-swatch-clean i:nth-child(2) { background: #ffffff; }.theme-swatch-clean i:nth-child(3) { background: #e4e4e7; }

/* Theme-specific finishing uses tokens first and only changes visual character. */
.catalog-library-list .catalog-symbol { width: 34px; height: 34px; border-radius: 9px; }
html[data-ui-theme="clean"] .main-nav a.active { box-shadow: inset 3px 0 0 var(--accent); }
html[data-ui-theme="clean"] .topbar { backdrop-filter: blur(12px); }
html[data-ui-theme="clean"] .profile-avatar { color: #fafafa; }
html[data-ui-theme="clean"] .api-status.online { color: var(--success); }
html[data-ui-theme="clean"] .surface-card { backdrop-filter: none; }
html[data-ui-theme="clean"] .button { font-weight: 500; }
html[data-ui-theme="clean"] .button-primary:hover { background: #27272a; }
html[data-ui-theme="clean"] .catalog-library-list > a.active { background: #f4f4f5; border-color: var(--line); box-shadow: inset 3px 0 0 var(--accent); }
html[data-ui-theme="clean"] .catalog-workspace-tabs > a.active { color: var(--ink); background: #f4f4f5; }
html[data-ui-theme="clean"] .user-summary-badge { color: var(--ink-soft); background: var(--card-solid); border-color: var(--line); }
html[data-ui-theme="clean"] .user-summary-badge strong { color: var(--ink); }
html[data-ui-theme="clean"] .tone-mint, html[data-ui-theme="clean"] .tone-cyan, html[data-ui-theme="clean"] .tone-orange, html[data-ui-theme="clean"] .tone-violet { color: var(--ink-soft); background: var(--card-solid); border-color: var(--line); }
html[data-ui-theme="clean"] .catalog-symbol, html[data-ui-theme="clean"] .module-ready-icon { color: var(--ink); background: #f4f4f5; }
html[data-ui-theme="clean"] .drawer-backdrop { backdrop-filter: blur(3px); }

/* Form Studio follows the questionnaire builder patterns fixed in the product prototype. */
.form-studio-layout { min-height: 620px; }
.form-workspace { overflow: hidden; }
.form-workspace .catalog-workspace-meta form { margin: 0; }
.form-order-status { color: var(--ink-soft); font-size: var(--text-xs); white-space: nowrap; }
.form-order-status.danger { color: var(--danger); }
.form-structure-stage { background: var(--surface-muted); }
.form-section-tabs { display: flex; gap: 7px; overflow-x: auto; overflow-y: hidden; padding: 10px 12px; background: color-mix(in srgb,var(--surface-muted) 66%,var(--card-solid)); border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.form-section-tabs > [data-form-section-tab] { display: grid; min-height: 53px; flex: 0 0 174px; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 8px; padding: 6px 8px; color: var(--ink); text-align: left; cursor: pointer; background: var(--card); border: 1px solid var(--line); border-radius: 10px; transition: background var(--motion-fast),border-color var(--motion-fast),opacity var(--motion-fast),box-shadow var(--motion-fast); }
.form-section-tabs > [data-form-section-tab]:hover { border-color: rgba(var(--accent-rgb),.5); }
.form-section-tabs > [data-form-section-tab][aria-selected="true"] { background: rgba(var(--accent-rgb),.075); border-color: rgba(var(--accent-rgb),.5); box-shadow: inset 0 -2px 0 var(--accent); }
.form-section-tabs > [data-form-section-tab][draggable="true"] { cursor: grab; }
.form-section-tabs > [data-form-section-tab].dragging, .form-question-card.dragging { opacity: .42; transform: scale(.985); }
.form-section-tabs > [data-form-section-tab].drag-before { box-shadow: inset 3px 0 0 var(--accent-deep); }
.form-section-tabs > [data-form-section-tab].drag-after { box-shadow: inset -3px 0 0 var(--accent-deep); }
.form-section-tabs > [data-form-section-tab] > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.form-section-tabs strong, .form-section-tabs small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-section-tabs strong { font-size: var(--text-xs); font-weight: 650; }
.form-section-tabs small { margin-top: 2px; color: var(--ink-faint); font-size: var(--text-xs); }
.form-section-tab-number { display: grid; width: 26px; height: 26px; place-items: center; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 700; font-variant-numeric: tabular-nums; background: var(--surface-muted); border-radius: 7px; }
.form-section-tabs > [data-form-section-tab][aria-selected="true"] .form-section-tab-number { color: var(--accent-contrast); background: var(--accent); }
.form-add-section-tab { display: flex; min-height: 53px; flex: 0 0 92px; align-items: center; justify-content: center; gap: 5px; padding: 6px 8px; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 620; cursor: pointer; background: transparent; border: 1px dashed color-mix(in srgb,var(--accent-deep) 42%,var(--line)); border-radius: 10px; }
.form-add-section-tab:hover { background: rgba(var(--accent-rgb),.055); border-color: var(--accent-deep); }
.form-section-panels { padding: 14px; }
.form-section-card { width: min(720px,100%); margin: 0 auto 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--card-solid); box-shadow: var(--shadow-xs); }
.form-section-card > .form-section-cover { display: flex; min-height: 86px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: 15px 17px; background: linear-gradient(135deg,rgba(var(--accent-rgb),.12),rgba(var(--secondary-rgb),.055)); border-bottom: 1px solid var(--line); }
.form-section-heading { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.form-section-heading > div { min-width: 0; display: grid; gap: 2px; }
.form-section-heading strong { font-size: var(--text-lg); }
.form-section-heading small { color: var(--ink-soft); }
.form-section-heading small:first-child { color: var(--accent-deep); font-weight: 650; }
.form-section-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.form-question-list { display: flex; flex-direction: column; gap: 7px; padding: 13px; }
.form-question-card { display: grid; width: 100%; min-height: 61px; grid-template-columns: 17px 27px 36px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 7px 9px; color: var(--ink); text-align: left; cursor: pointer; background: var(--card); border: 1px solid var(--line); border-radius: 10px; transition: border-color var(--motion-fast),box-shadow var(--motion-fast),opacity var(--motion-fast),transform var(--motion-fast); }
.form-question-card:hover, .form-question-card:focus-visible { border-color: rgba(var(--accent-rgb),.55); box-shadow: 0 6px 18px rgba(var(--accent-rgb),.08); }
.form-question-card[draggable="true"] { cursor: grab; }
.form-question-card:disabled { cursor: default; opacity: 1; }
.form-question-card:disabled:hover { border-color: var(--line); box-shadow: none; }
.form-question-card.drag-before { box-shadow: inset 0 3px 0 var(--accent-deep),0 8px 24px rgba(var(--accent-rgb),.1); }
.form-question-card.drag-after { box-shadow: inset 0 -3px 0 var(--accent-deep),0 8px 24px rgba(var(--accent-rgb),.1); }
.form-object-loop { overflow: hidden; background: color-mix(in srgb,var(--surface-muted) 58%,var(--card)); border: 1px solid color-mix(in srgb,var(--accent-deep) 24%,var(--line)); border-radius: 12px; }
.form-object-loop.drag-before { box-shadow: inset 0 3px 0 var(--accent-deep); }
.form-object-loop.drag-after { box-shadow: inset 0 -3px 0 var(--accent-deep); }
.form-object-loop-head { border: 0; border-radius: 0; box-shadow: none; }
.form-object-loop-head:hover,.form-object-loop-head:focus-visible { border-color: transparent; box-shadow: inset 0 -1px 0 var(--line); }
.form-object-loop-body { display: flex; flex-direction: column; gap: 8px; padding: 9px; border-top: 1px solid var(--line); }
.form-object-loop-fields { display: flex; flex-direction: column; gap: 6px; }
.form-object-loop-child { min-height: 54px; background: var(--card-solid); }
.form-object-loop-add { align-self: flex-start; }
.form-question-grip { width: 17px; height: 17px; color: var(--ink-faint); cursor: grab; }
.form-question-drag-handle { display: grid; width: 22px; height: 30px; place-items: center; cursor: grab; border-radius: 6px; }
.form-question-drag-handle[draggable="true"]:hover { color: var(--ink); background: var(--surface-muted); }
.form-question-drag-handle[draggable="true"]:active { cursor: grabbing; }
.form-question-index { display: grid; width: 25px; height: 25px; place-items: center; color: var(--ink-soft); font-size: var(--text-xs); background: var(--surface-muted); border-radius: 7px; }
.form-question-type { display: grid; width: 35px; height: 35px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); border-radius: 9px; }
.form-question-type .icon { width: 19px; height: 19px; }
.form-question-copy { display: flex; min-width: 0; flex-direction: column; }
.form-question-copy strong, .form-question-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-question-copy strong { font-size: var(--text-sm); }
.form-question-copy small { margin-top: 2px; color: var(--ink-faint); font-size: var(--text-xs); }
.form-question-copy code { color: inherit; }
.form-question-meta { display: flex; min-width: 27px; align-items: center; justify-content: flex-end; gap: 4px; color: var(--danger); }
.form-question-meta .has-logic { color: var(--accent-deep); }
.form-section-empty { display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; padding: var(--space-5); color: var(--ink-faint); text-align: center; }
.form-section-empty .icon { margin-bottom: 8px; color: var(--accent-deep); }
.form-section-empty strong { color: var(--ink); font-size: var(--text-sm); }
.form-section-empty small { margin-top: 3px; }
.form-inline-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.form-field-identity { display: flex; align-items: center; gap: 10px; padding: 12px 20px; background: linear-gradient(135deg,rgba(var(--accent-rgb),.08),transparent); border-bottom: 1px solid var(--line); }
.form-field-identity > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.form-field-identity strong, .form-field-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-field-identity strong { font-size: var(--text-sm); }
.form-field-identity small { margin-top: 2px; color: var(--ink-faint); font-size: var(--text-xs); }
.form-properties-body { padding: 0; }
.form-property-section { border-bottom: 1px solid var(--line); }
.form-property-section:last-child { border-bottom: 0; }
.form-property-section > summary { display: grid; min-height: 50px; grid-template-columns: minmax(0,1fr) auto 16px; align-items: center; gap: 8px; padding: 8px 20px; color: var(--ink); cursor: pointer; list-style: none; background: color-mix(in srgb,var(--card-solid) 72%,transparent); transition: background var(--motion-fast); }
.form-property-section > summary::-webkit-details-marker { display: none; }
.form-property-section > summary:hover, .form-property-section[open] > summary { background: rgba(var(--accent-rgb),.05); }
.form-property-section > summary > span { display: flex; min-width: 0; align-items: center; gap: 8px; }
.form-property-section > summary > span > .icon { color: var(--accent-deep); }
.form-property-section > summary strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.form-property-section > summary > small { overflow: hidden; max-width: 130px; padding: 3px 6px; color: var(--ink-faint); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; background: var(--surface-muted); border-radius: 6px; }
.form-property-section > summary > small.active-count { color: var(--accent-deep); background: rgba(var(--accent-rgb),.11); }
.form-property-chevron { color: var(--ink-faint); transition: transform 160ms ease; }
.form-property-section[open] > summary .form-property-chevron { transform: rotate(180deg); }
.form-property-section-body { display: flex; flex-direction: column; gap: 12px; padding: 14px 20px 18px; background: color-mix(in srgb,var(--card-solid) 68%,transparent); animation: property-accordion-in 150ms ease both; }
@keyframes property-accordion-in { from { opacity: 0; transform: translateY(-3px); } }
.form-property-note { display: flex; align-items: flex-start; gap: 8px; padding: 10px; color: var(--ink-soft); font-size: var(--text-xs); background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-property-note .icon { margin-top: 1px; flex: 0 0 auto; color: var(--accent-deep); }
.form-property-note strong { color: var(--ink); font-weight: 650; }
.form-field > small.form-catalog-limit-note { display: block; padding: 9px 10px; color: var(--ink); background: color-mix(in srgb,var(--warning) 9%,var(--card-solid)); border: 1px solid color-mix(in srgb,var(--warning) 34%,var(--line)); border-radius: var(--radius-md); box-shadow: inset 3px 0 0 var(--warning); }
.form-mono-input { font-family: "Geist Mono","Cascadia Mono",monospace; }
.form-field-type-settings { display: flex; flex-direction: column; gap: 14px; }
.form-settings-switches { display: flex; flex-direction: column; gap: 8px; }
.form-field-type-note { display: flex; flex-direction: column; gap: 3px; padding: 12px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-field-type-note strong { font-size: var(--text-sm); }
.form-field-type-note small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-settings-hint { color: var(--ink-soft); font-size: var(--text-xs); }
.form-field-type-settings { min-width: 0; padding: 0; margin: 0; border: 0; }
.form-field-type-note { min-width: 0; margin: 0; }
.form-lookup-restriction { display: flex; flex-direction: column; gap: 12px; padding: 12px; background: color-mix(in srgb,var(--surface-muted) 74%,transparent); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-barcode-settings,
.form-object-loop-filter-settings { display: flex; flex-direction: column; gap: 9px; padding: 11px; background: color-mix(in srgb,var(--surface-muted) 68%,transparent); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-object-loop-filter-settings .form-choice-title { margin: 0; }
.form-object-loop-filter-settings .form-choice-title > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.form-object-loop-filter-settings .form-choice-title small { color: var(--ink-soft); font-size: var(--text-xs); font-weight: 450; }
.form-object-loop-filter-settings .form-choice-title > i { padding: 3px 6px; color: var(--ink-soft); font-size: var(--text-xs); font-style: normal; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-xs); }
.form-object-loop-filter-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.form-object-loop-filter-option { display: grid; min-width: 0; grid-template-columns: 18px minmax(0,1fr) 18px; align-items: center; gap: 8px; padding: 8px 9px; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.form-object-loop-filter-option:hover { border-color: var(--line-strong); }
.form-object-loop-filter-option > input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent-deep); }
.form-object-loop-filter-option > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.form-object-loop-filter-option strong,.form-object-loop-filter-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-object-loop-filter-option strong { font-size: var(--text-sm); font-weight: 550; }
.form-object-loop-filter-option small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-object-loop-filter-option > svg { color: transparent; }
.form-object-loop-filter-option:has(input:checked) { background: color-mix(in srgb,var(--accent-soft) 54%,var(--card-solid)); border-color: color-mix(in srgb,var(--accent-deep) 42%,var(--line)); }
.form-object-loop-filter-option:has(input:checked) > svg { color: var(--accent-deep); }
.form-object-loop-filter-option:has(input:disabled) { cursor: default; opacity: .56; }
.form-choice-title { display: flex; min-height: 26px; align-items: center; justify-content: space-between; gap: 10px; }
.form-choice-title > strong { font-size: var(--text-sm); }
.form-choice-title > span { display: flex; align-items: center; gap: 7px; color: var(--ink-faint); }
.form-choice-title i { display: grid; min-width: 24px; height: 24px; place-items: center; color: var(--accent-deep); font-size: var(--text-xs); font-style: normal; font-weight: 650; background: var(--accent-soft); border-radius: 7px; }
.form-choice-segments { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; padding: 3px; background: color-mix(in srgb,var(--line) 45%,transparent); border: 1px solid color-mix(in srgb,var(--line) 72%,transparent); border-radius: 9px; }
.form-choice-segments.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.form-choice-segments > button { display: flex; min-height: 32px; align-items: center; justify-content: center; padding: 5px 7px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; text-align: center; cursor: pointer; background: transparent; border: 0; border-radius: 7px; }
.form-choice-segments > button:hover:not(:disabled) { color: var(--ink); }
.form-choice-segments > button.active { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.form-choice-segments > button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.form-choice-segments > button:disabled { cursor: default; opacity: .72; }
.form-choice-control { display: flex; flex-direction: column; gap: 7px; }
.form-choice-control > span { color: var(--ink); font-size: var(--text-sm); font-weight: 550; }
.form-choice-hint { color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; }
.form-option-editor { display: flex; flex-direction: column; gap: 6px; }
.form-option-editor-head,
.form-option-row { display: grid; grid-template-columns: 18px minmax(0,1fr) minmax(110px,.72fr) 29px; align-items: center; gap: 6px; }
[data-form-choice-data-mode="label"] .form-option-editor-head,
[data-form-choice-data-mode="label"] .form-option-row { grid-template-columns: 18px minmax(0,1fr) 29px; }
.form-option-editor-head { min-height: 18px; align-items: end; }
.form-option-editor-head > span { color: var(--ink-faint); font-size: var(--text-xs); font-weight: 550; line-height: 1.2; }
.form-option-list { display: flex; flex-direction: column; gap: 6px; }
.form-option-row { position: relative; min-width: 0; transition: opacity var(--motion-fast),transform var(--motion-fast); }
.form-option-row.dragging { opacity: .42; }
.form-option-row.drag-before::before,
.form-option-row.drag-after::after { position: absolute; right: 0; left: 24px; height: 2px; content: ""; background: var(--accent-deep); border-radius: 2px; }
.form-option-row.drag-before::before { top: -4px; }
.form-option-row.drag-after::after { bottom: -4px; }
.form-option-row > input:not([type="hidden"]),
.form-option-value-control > input { width: 100%; min-width: 0; height: 35px; padding: 0 8px; color: var(--ink); font-size: var(--text-xs); background: var(--card-solid); border: 1px solid var(--line); border-radius: 8px; outline: 0; }
.form-option-row > input:not([type="hidden"]):focus,
.form-option-value-control > input:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 2px rgba(var(--accent-rgb),.11); }
.form-option-value-control { display: block; min-width: 0; }
.form-option-value-control[hidden] { display: none; }
.form-option-row .option-value-input { color: var(--indigo); }
.form-option-drag-handle,
.form-option-remove-button { display: grid; width: 29px; height: 29px; place-items: center; padding: 0; color: var(--ink-faint); cursor: pointer; background: transparent; border: 0; border-radius: 7px; }
.form-option-drag-handle { width: 18px; cursor: grab; }
.form-option-drag-handle:active { cursor: grabbing; }
.form-option-drag-handle:hover { color: var(--ink); }
.form-option-remove-button:hover { color: var(--danger); background: rgba(231,83,83,.08); }
.form-option-remove-button:disabled { visibility: hidden; }
.form-option-add-button { display: flex; min-height: 34px; align-items: center; justify-content: center; gap: 6px; margin-top: 2px; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 550; cursor: pointer; background: rgba(var(--accent-rgb),.04); border: 1px dashed rgba(var(--accent-rgb),.32); border-radius: 8px; }
.form-option-add-button:hover { background: rgba(var(--accent-rgb),.08); border-color: rgba(var(--accent-rgb),.55); }
.form-field-picker-dialog { display: flex; width: min(920px,100%); max-height: calc(100vh - 40px); flex-direction: column; overflow: hidden; animation: modal-in 180ms ease-out; }
.form-field-picker-kicker { display: block; margin-bottom: 5px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.form-field-picker-library { min-height: 0; overflow-y: auto; padding: 16px 20px 22px; }
.form-field-picker-search { display: grid; min-height: 42px; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 9px; padding: 0 12px; color: var(--ink-faint); background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-field-picker-search:focus-within { color: var(--accent-deep); border-color: var(--accent-deep); box-shadow: 0 0 0 2px rgba(var(--accent-rgb),.1); }
.form-field-picker-search input { min-width: 0; height: 40px; padding: 0; color: var(--ink); font-size: var(--text-sm); background: transparent; border: 0; outline: 0; }
.form-field-picker-search input::placeholder { color: var(--ink-faint); }
.form-field-picker-sections { display: flex; flex-direction: column; gap: 17px; margin-top: 18px; }
.form-field-picker-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.form-field-picker-section > header strong { font-size: var(--text-sm); font-weight: 650; }
.form-field-picker-section > header small { color: var(--ink-faint); font-size: var(--text-xs); }
.form-field-type-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.form-field-type-grid > button { display: grid; min-height: 82px; grid-template-columns: 36px minmax(0,1fr) 18px; align-items: center; gap: 9px; padding: 10px; color: var(--ink); text-align: left; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast); }
.form-field-type-grid > button:hover { background: var(--table-row-hover); border-color: var(--accent-deep); transform: translateY(-1px); }
.form-field-type-grid > button > span:first-child { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: var(--radius-md); }
.form-field-type-grid > button > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.form-field-type-grid strong { font-size: var(--text-sm); }
.form-field-type-grid small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.35; }
.form-field-type-grid > button > svg { color: var(--ink-faint); }
.form-option-technical-ids { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.form-option-technical-ids summary { color: var(--ink-soft); font-size: var(--text-xs); font-weight: 600; cursor: pointer; }
.form-option-technical-ids > div { display: flex; flex-direction: column; gap: 6px; margin-top: 9px; }
.form-option-technical-ids > div span { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: var(--text-xs); }
.form-option-technical-ids > div strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form-option-technical-ids > small { display: block; margin-top: 8px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; }
.form-logic-workspace { display: flex; min-height: 420px; flex-direction: column; gap: 12px; padding: 14px; background: color-mix(in srgb,var(--surface-muted) 58%,transparent); }
.form-logic-overview { display: grid; min-height: 72px; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 12px 14px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-logic-overview-icon { display: grid; width: 42px; height: 42px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 11px; }
.form-logic-overview-icon .icon { width: 21px; height: 21px; }
.form-logic-overview > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.form-logic-overview strong { font-size: var(--text-sm); }
.form-logic-overview small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.form-logic-empty { min-height: 270px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-logic-list { display: flex; flex-direction: column; gap: 8px; }
.form-logic-card { overflow: hidden; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-logic-card > header { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--line); }
.form-logic-card > header > span { display: flex; min-width: 0; align-items: center; gap: 9px; }
.form-logic-card > header > span > .icon { color: var(--accent-deep); }
.form-logic-card > header > span > span { display: flex; min-width: 0; flex-direction: column; }
.form-logic-card > header strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.form-logic-card > header small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.form-logic-expression-list { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; }
.form-logic-expression-list > div { display: grid; min-height: 42px; grid-template-columns: 42px minmax(0,1fr) minmax(180px,.8fr); align-items: center; gap: 8px; padding: 6px 8px; background: var(--surface-muted); border-radius: var(--radius-md); }
.form-logic-expression-list i { color: var(--accent-deep); font-size: var(--text-xs); font-style: normal; font-weight: 650; text-align: center; }
.form-logic-expression-list span { display: flex; min-width: 0; flex-direction: column; }
.form-logic-expression-list strong { overflow: hidden; font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.form-logic-expression-list small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-logic-action-list { display: flex !important; flex-flow: row wrap !important; justify-content: flex-end; gap: 4px; }
.form-logic-action-list i { padding: 3px 6px; color: var(--ink-soft); background: var(--card-solid); border: 1px solid var(--line); border-radius: 999px; white-space: nowrap; }
.form-logic-builder { display: flex; min-width: 0; flex-direction: column; gap: 12px; }
.form-logic-source-note { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; padding: 9px 10px; color: var(--accent-deep); background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--accent-deep) 18%,transparent); border-radius: var(--radius-md); }
.form-logic-source-note > svg { justify-self: center; }
.form-logic-source-note > span { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; }
.form-logic-source-note small { grid-column: 1 / -1; color: var(--ink-soft); font-size: var(--text-xs); }
.form-logic-source-note strong { overflow: hidden; color: var(--ink); font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.form-logic-source-note code { align-self: center; color: var(--ink-soft); font-size: var(--text-xs); }
.form-property-control { display: flex; flex-direction: column; gap: 6px; }
.form-property-control > span { color: var(--ink); font-size: var(--text-sm); font-weight: 550; }
.form-logic-segments { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; padding: 3px; background: color-mix(in srgb,var(--line) 45%,transparent); border: 1px solid var(--line); border-radius: 9px; }
.form-logic-segments label { min-width: 0; cursor: pointer; }
.form-logic-segments input { position: absolute; opacity: 0; pointer-events: none; }
.form-logic-segments span { display: flex; min-height: 31px; align-items: center; justify-content: center; padding: 5px 7px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; border-radius: 7px; }
.form-logic-segments input:checked + span { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.form-logic-segments input:focus-visible + span { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.form-logic-rules { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.form-logic-rule { display: flex; min-width: 0; flex-direction: column; gap: 9px; padding: 10px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-logic-rule > header { display: grid; grid-template-columns: minmax(0,1fr) auto 29px; align-items: center; gap: 8px; }
.form-logic-rule > header > span:first-child { display: flex; min-width: 0; flex-direction: column; }
.form-logic-rule > header strong { font-size: var(--text-xs); }
.form-logic-rule > header small { color: var(--ink-soft); font-size: var(--text-xs); }
.compact-switch { min-height: 29px; padding: 0; background: transparent; border: 0; }
.compact-switch .switch-copy { min-width: 60px; }
.compact-switch .switch-copy strong { font-size: var(--text-xs); font-weight: 550; }
.form-logic-rule-grid { display: grid; min-width: 0; grid-template-columns: minmax(0,.9fr) minmax(0,1fr) minmax(0,1.25fr); gap: 7px; }
.form-logic-rule-grid .form-field { min-width: 0; gap: 4px; }
.form-logic-rule-grid .form-field > span:first-child { font-size: var(--text-xs); }
.form-logic-rule-grid select,
.form-logic-rule-grid input { min-width: 0; height: 35px; font-size: var(--text-xs); }
.form-logic-value-field > [data-form-logic-value-control] { display: block; min-width: 0; }
.form-logic-value-editor { width: 100%; }
.form-logic-actions-block { display: flex; flex-direction: column; gap: 5px; padding-top: 8px; border-top: 1px solid var(--line); }
.form-logic-actions-block > span { color: var(--ink); font-size: var(--text-xs); font-weight: 550; }
.form-logic-action-toggles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
.form-logic-action-toggles label { min-width: 0; cursor: pointer; }
.form-logic-action-toggles input { position: absolute; opacity: 0; pointer-events: none; }
.form-logic-action-toggles span { display: flex; min-height: 31px; align-items: center; padding: 5px 8px; color: var(--ink-soft); font-size: var(--text-xs); background: var(--card-solid); border: 1px solid var(--line); border-radius: 8px; }
.form-logic-action-toggles input:checked + span { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 25%,var(--line)); }
.form-logic-action-toggles input:disabled + span { color: var(--ink-faint); cursor: not-allowed; background: color-mix(in srgb,var(--surface-muted) 70%,var(--card-solid)); }
.form-logic-action-toggles input:focus-visible + span { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.form-logic-remove { width: 29px; height: 29px; color: var(--ink-faint); }
.form-logic-remove:hover { color: var(--danger); background: rgba(231,83,83,.08); }
.form-logic-add { align-self: flex-start; }

/* Submission review keeps historical answers readable without turning the table into an editor. */
.form-submission-workspace { min-height: 420px; background: var(--card-solid); }
.form-submission-toolbar { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.form-submission-toolbar > span { display: flex; flex: 0 0 auto; align-items: baseline; gap: 6px; }
.form-submission-toolbar strong { font-size: var(--text-lg); font-weight: 650; }
.form-submission-toolbar small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-toolbar > p { max-width: 520px; margin: 0; color: var(--ink-soft); font-size: var(--text-sm); text-align: right; }
.form-submission-table { min-width: 860px; }
.form-submission-table td { vertical-align: middle; }
.form-submission-table td > strong,
.form-submission-table td > small { display: block; }
.form-submission-table td > small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-open { display: flex; min-width: 150px; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 7px; color: var(--ink); text-decoration: none; border-radius: var(--radius-sm); }
.form-submission-open:hover { color: var(--accent-deep); background: var(--accent-soft); }
.form-submission-open:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.form-submission-open > span { display: flex; min-width: 0; flex-direction: column; }
.form-submission-open strong { font-size: var(--text-sm); font-weight: 600; }
.form-submission-open small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-limit-note { margin: 0; padding: 10px 14px; color: var(--ink-soft); font-size: var(--text-xs); border-top: 1px solid var(--line); }
.form-submission-drawer { width: min(680px,96vw); }
.form-submission-detail { display: flex; flex-direction: column; gap: 14px; }
.form-submission-detail > * { flex: 0 0 auto; }
.form-submission-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0; }
.form-submission-meta > div { min-width: 0; padding: 9px 10px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-submission-meta dt { color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-meta dd { display: flex; min-width: 0; flex-direction: column; margin: 2px 0 0; font-size: var(--text-sm); }
.form-submission-meta dd strong { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.form-submission-meta dd small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-history-note { margin: 0; }
.form-submission-section { overflow: hidden; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-submission-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; background: color-mix(in srgb,var(--surface-muted) 72%,var(--card-solid)); border-bottom: 1px solid var(--line); }
.form-submission-section > header > span { display: flex; min-width: 0; flex-direction: column; }
.form-submission-section > header strong { display: block; font-size: var(--text-sm); font-weight: 650; }
.form-submission-section > header small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.form-submission-section > header > i { display: grid; min-width: 24px; height: 24px; place-items: center; color: var(--ink-soft); background: var(--card-solid); border: 1px solid var(--line); border-radius: 999px; font-size: var(--text-xs); font-style: normal; }
.form-submission-answers { margin: 0; }
.form-submission-answers > div { display: grid; grid-template-columns: minmax(170px,.8fr) minmax(0,1.2fr); gap: 14px; padding: 10px 12px; }
.form-submission-answers > div + div { border-top: 1px solid var(--line); }
.form-submission-answers dt { display: flex; min-width: 0; flex-direction: column; font-size: var(--text-sm); font-weight: 550; }
.form-submission-answers dt small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 400; }
.form-submission-answer-value { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; margin: 0; font-size: var(--text-sm); overflow-wrap: anywhere; white-space: pre-wrap; }
.form-submission-answer-value.is-empty { color: var(--ink-faint); font-style: italic; }
.form-submission-answer-value > small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }

/* Assignments reuse the same surfaces, tables, tokens and controls as catalogs/forms. */
.assignment-table-card { overflow: hidden; }
.assignment-table-toolbar { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.assignment-search { display: grid; width: min(360px,100%); grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 8px; color: var(--ink-faint); }
.assignment-search input { width: 100%; height: 36px; padding: 0; color: var(--ink); font-size: var(--text-sm); background: transparent; border: 0; outline: 0; }
.assignment-search:focus-within { color: var(--accent-deep); }
.assignment-rules-table { min-width: 960px; }
.assignment-rules-table td { vertical-align: middle; }
.assignment-rules-table td > strong,.assignment-rules-table td > small,.assignment-rules-table td > .status-chip { display: block; }
.assignment-rules-table td > small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); white-space: nowrap; }
.assignment-name-link { display: grid; min-width: 220px; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; padding: 4px 5px; color: var(--ink); text-decoration: none; border-radius: var(--radius-md); }
.assignment-name-link:hover { color: var(--accent-deep); background: var(--table-row-hover); }
.assignment-name-link:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
.assignment-name-link > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.assignment-name-link strong,.assignment-name-link small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assignment-name-link strong { font-size: var(--text-sm); font-weight: 600; }
.assignment-name-link small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-empty { min-height: 360px; }
.assignment-detail-drawer { width: min(620px,96vw); }
.assignment-detail-body { display: flex; flex-direction: column; gap: 0; padding: 16px 18px 22px; background: color-mix(in srgb,var(--surface-muted) 36%,var(--drawer-background)); }
.assignment-detail-meta { display: flex; min-height: 28px; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.assignment-detail-meta > span { padding: 4px 7px; color: var(--ink-soft); background: var(--card-solid); border: 1px solid var(--line); border-radius: 7px; font-size: var(--text-xs); }
.assignment-detail-meta > span strong { color: var(--ink); font-weight: 650; }
.assignment-draft-notice { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; margin-bottom: 12px; padding: 10px 11px; color: var(--warning); background: color-mix(in srgb,var(--warning) 9%,var(--card-solid)); border: 1px solid color-mix(in srgb,var(--warning) 30%,var(--line)); border-radius: var(--radius-md); }
.assignment-draft-notice > span { display: flex; min-width: 0; flex-direction: column; }
.assignment-draft-notice strong { color: var(--ink); font-size: var(--text-sm); }
.assignment-draft-notice small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; }
.assignment-rule-summary-flow { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.assignment-rule-summary-flow > section { display: flex; min-width: 0; min-height: 118px; flex-direction: column; padding: 10px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.assignment-rule-summary-flow > section > span { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 9px; }
.assignment-rule-summary-flow small { margin-top: 8px; color: var(--ink-faint); font-size: var(--text-xs); }
.assignment-rule-summary-flow strong { margin-top: 2px; overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.assignment-rule-summary-flow p { margin: 3px 0 0; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.assignment-drawer-section { margin-top: 16px; }
.assignment-drawer-section > header { display: flex; flex-direction: column; margin-bottom: 7px; }
.assignment-drawer-section > header strong { font-size: var(--text-sm); }
.assignment-drawer-section > header small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-detail-chips { display: flex; flex-flow: row wrap; gap: 6px; }
.assignment-detail-chips > span { display: flex; min-width: 145px; flex: 1 1 170px; flex-direction: column; padding: 8px 9px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-detail-chips strong { overflow: hidden; font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.assignment-detail-chips small { margin-top: 2px; overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.assignment-detail-questionnaires { display: flex; flex-direction: column; gap: 6px; }
.assignment-detail-questionnaires > article { display: grid; min-height: 58px; grid-template-columns: 36px minmax(0,1fr) auto auto; align-items: center; gap: 9px; padding: 8px 10px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-detail-questionnaires > article > span:first-child { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 9px; }
.assignment-detail-questionnaires > article > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.assignment-detail-questionnaires strong,.assignment-detail-questionnaires small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assignment-detail-questionnaires strong { font-size: var(--text-sm); }
.assignment-detail-questionnaires small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-detail-questionnaires i { padding: 3px 6px; color: var(--accent-deep); background: var(--accent-soft); border-radius: 6px; font-size: var(--text-xs); font-style: normal; font-weight: 650; }
.assignment-detail-questionnaires i.outdated { color: var(--warning); background: color-mix(in srgb,var(--warning) 11%,var(--card-solid)); }
.assignment-detail-questionnaires b { display: inline-flex; align-items: center; gap: 3px; color: var(--success); font-size: var(--text-xs); font-weight: 650; }
.assignment-context-summary,.assignment-drawer-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.assignment-context-summary > span,.assignment-drawer-facts > span { display: grid; min-height: 62px; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 8px; padding: 8px 9px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-context-summary .icon,.assignment-drawer-facts .icon { color: var(--accent-deep); }
.assignment-context-summary p,.assignment-drawer-facts p { display: flex; min-width: 0; flex-direction: column; margin: 0; }
.assignment-context-summary small,.assignment-drawer-facts small { color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-context-summary strong,.assignment-drawer-facts strong { margin-top: 2px; overflow: hidden; font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }

.assignment-builder-modal { z-index: 120; padding: 18px; }
.assignment-builder-dialog { display: flex; width: min(1180px,100%); height: min(780px,calc(100vh - 36px)); flex-direction: column; overflow: hidden; color: var(--ink); background: var(--drawer-background); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); animation: modal-in 190ms ease-out; outline: 0; }
.assignment-builder-head { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.assignment-builder-head > div { min-width: 0; }
.assignment-builder-head small { color: var(--ink-soft); font-size: var(--text-xs); font-weight: 600; }
.assignment-builder-head h2 { margin: 3px 0 0; font-size: var(--text-xl); letter-spacing: -.025em; }
.assignment-builder-steps { display: flex; min-height: 68px; overflow-x: auto; padding: 8px 12px; background: color-mix(in srgb,var(--surface-muted) 68%,var(--card-solid)); border-bottom: 1px solid var(--line); }
.assignment-builder-steps > button { display: grid; min-width: 170px; flex: 1 0 170px; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 8px; padding: 7px 10px; color: var(--ink-soft); text-align: left; cursor: pointer; background: transparent; border: 0; border-radius: var(--radius-md); }
.assignment-builder-steps > button:hover:not(.active) { color: var(--ink); background: var(--table-row-hover); }
.assignment-builder-steps > button i { display: grid; width: 28px; height: 28px; place-items: center; font-size: var(--text-xs); font-style: normal; font-weight: 650; background: var(--card-solid); border: 1px solid var(--line); border-radius: 999px; }
.assignment-builder-steps > button span { display: flex; min-width: 0; flex-direction: column; }
.assignment-builder-steps > button strong { font-size: var(--text-xs); font-weight: 650; }
.assignment-builder-steps > button small { margin-top: 2px; color: var(--ink-faint); font-size: var(--text-xs); }
.assignment-builder-steps > button.active { color: var(--accent-deep); background: var(--accent-soft); }
.assignment-builder-steps > button.active i { color: var(--accent-contrast); background: var(--accent); border-color: var(--accent); }
.assignment-builder-steps > button.complete i { color: var(--success); border-color: color-mix(in srgb,var(--success) 45%,var(--line)); }
.assignment-builder-form { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.assignment-builder-body { min-height: 0; flex: 1; overflow-y: auto; background: color-mix(in srgb,var(--surface-muted) 40%,var(--card-solid)); }
.assignment-builder-panel { width: min(1000px,100%); min-height: 100%; margin: 0 auto; padding: 20px 22px 26px; }
.assignment-builder-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.assignment-builder-panel > header > span { display: flex; min-width: 0; flex-direction: column; }
.assignment-builder-panel > header strong { font-size: var(--text-lg); }
.assignment-builder-panel > header small { margin-top: 4px; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.45; }
.assignment-choice-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.assignment-choice-list { min-width: 0; max-height: 430px; margin: 0; overflow-y: auto; padding: 8px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.assignment-choice-list legend { padding: 0 6px; color: var(--ink); font-size: var(--text-sm); font-weight: 650; }
.assignment-choice-list > label { display: grid; min-height: 51px; grid-template-columns: minmax(0,1fr) 22px; align-items: center; gap: 9px; padding: 7px 9px; cursor: pointer; border: 1px solid transparent; border-radius: var(--radius-md); }
.assignment-choice-list > label:hover { background: var(--table-row-hover); }
.assignment-choice-list > label:has(input:checked) { background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 28%,var(--line)); }
.assignment-choice-list input,.assignment-questionnaire-toggle input,.assignment-builder .property-segments input,.assignment-weekdays input,.recipient-mode-tabs input,.builder-subject-type input,.scope-mode-tabs input,.recipient-select-list input,.builder-location-list input,.builder-subordinate-depth input { position: absolute; opacity: 0; pointer-events: none; }
.assignment-choice-list > label > span { display: flex; min-width: 0; flex-direction: column; }
.assignment-choice-list strong { overflow: hidden; font-size: var(--text-sm); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.assignment-choice-list small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-choice-list > label > .icon { visibility: hidden; color: var(--accent-deep); }
.assignment-choice-list > label:has(input:checked) > .icon { visibility: visible; }
.assignment-list-note { margin: 0; padding: 20px; color: var(--ink-soft); font-size: var(--text-sm); text-align: center; }
.assignment-builder .property-segments { display: flex; gap: 3px; padding: 3px; background: color-mix(in srgb,var(--line) 45%,transparent); border: 1px solid var(--line); border-radius: 9px; }
.assignment-builder .property-segments label { display: flex; min-height: 32px; flex: 1; align-items: center; justify-content: center; gap: 6px; padding: 5px 9px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; text-align: center; cursor: pointer; border-radius: 7px; }
.assignment-builder .property-segments label.active { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.assignment-builder-panel > .builder-kicker { display: block; margin-bottom: 3px; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 650; }
.assignment-builder-panel > h3 { margin: 0; font-size: clamp(20px,2.3vw,27px); letter-spacing: -.025em; }
.assignment-builder-panel > h3 + p { max-width: 760px; margin: 7px 0 17px; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.5; }
.recipient-mode-tabs,.scope-mode-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; margin-bottom: 14px; padding: 3px; background: color-mix(in srgb,var(--line) 42%,transparent); border: 1px solid var(--line); border-radius: 10px; }
.scope-mode-tabs { grid-template-columns: repeat(5,minmax(0,1fr)); }
.scope-mode-tabs.employee-target-tabs { grid-template-columns: repeat(4,minmax(0,1fr)); }
.recipient-mode-tabs > label,.scope-mode-tabs > label { display: flex; min-height: 36px; align-items: center; justify-content: center; gap: 6px; padding: 6px 9px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; text-align: center; cursor: pointer; border-radius: 7px; }
.recipient-mode-tabs > label:hover,.scope-mode-tabs > label:hover { color: var(--ink); }
.recipient-mode-tabs > label.active,.scope-mode-tabs > label.active { color: var(--accent-deep); background: var(--card-solid); box-shadow: var(--shadow-sm); }
.recipient-mode-tabs > label.disabled,.scope-mode-tabs > label.disabled { opacity: .48; cursor: not-allowed; }
.builder-recipient-search { display: flex; min-height: 39px; align-items: center; gap: 8px; margin-bottom: 8px; padding: 0 11px; color: var(--ink-soft); background: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); }
.builder-recipient-search:focus-within { color: var(--accent-deep); border-color: var(--focus-ring); box-shadow: 0 0 0 3px color-mix(in srgb,var(--focus-ring) 18%,transparent); }
.builder-recipient-search input { width: 100%; min-width: 0; padding: 0; background: transparent; border: 0; outline: 0; box-shadow: none; }
.recipient-select-list,.builder-location-list { display: grid; max-height: 320px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; overflow-y: auto; padding: 2px; }
.recipient-select-list > label,.builder-location-list > label { display: grid; min-width: 0; min-height: 57px; grid-template-columns: 36px minmax(0,1fr) 20px; align-items: center; gap: 9px; padding: 8px 10px; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.recipient-select-list > label:hover,.builder-location-list > label:hover { background: var(--table-row-hover); border-color: var(--line-strong); }
.recipient-select-list > label:has(input:checked),.builder-location-list > label:has(input:checked) { background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 35%,var(--line)); }
.recipient-select-list > label.unavailable { opacity: .58; cursor: not-allowed; }
.recipient-select-list > label > span:nth-of-type(2),.builder-location-list > label > span:nth-of-type(2) { display: flex; min-width: 0; flex-direction: column; }
.recipient-select-list strong,.builder-location-list strong { overflow: hidden; font-size: var(--text-sm); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.recipient-select-list small,.builder-location-list small { overflow: hidden; margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.recipient-select-list > label > .icon,.builder-location-list > label > .icon { visibility: hidden; color: var(--accent-deep); }
.recipient-select-list > label:has(input:checked) > .icon,.builder-location-list > label:has(input:checked) > .icon { visibility: visible; }
.recipient-avatar,.subject-icon { display: grid; width: 34px; height: 34px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 10px; font-size: var(--text-xs); font-weight: 700; }
.recipient-avatar.org { border-radius: 9px; }
.builder-selection-summary { display: grid; grid-template-columns: 26px minmax(0,1fr); align-items: center; gap: 9px; margin-top: 11px; padding: 9px 11px; background: color-mix(in srgb,var(--accent-soft) 55%,var(--card-solid)); border: 1px solid color-mix(in srgb,var(--accent-deep) 18%,var(--line)); border-radius: var(--radius-md); }
.builder-selection-summary > .icon { color: var(--accent-deep); }
.builder-selection-summary > span { display: flex; min-width: 0; flex-direction: column; }
.builder-selection-summary strong { font-size: var(--text-sm); }
.builder-selection-summary small { margin-top: 1px; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-subject-type { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 15px; }
.builder-subject-type > label { display: grid; min-height: 74px; grid-template-columns: 42px minmax(0,1fr) 22px; align-items: center; gap: 10px; padding: 11px 12px; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.builder-subject-type > label:hover { border-color: var(--line-strong); }
.builder-subject-type > label.active { background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 38%,var(--line)); }
.builder-subject-type > label > span:first-of-type { display: grid; width: 40px; height: 40px; place-items: center; color: var(--accent-deep); background: var(--surface-muted); border-radius: 11px; }
.builder-subject-type > label > span:nth-of-type(2) { display: flex; min-width: 0; flex-direction: column; }
.builder-subject-type strong { font-size: var(--text-sm); }
.builder-subject-type small { margin-top: 3px; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-subject-type > label > .icon { visibility: hidden; color: var(--accent-deep); }
.builder-subject-type > label.active > .icon { visibility: visible; }
.builder-territory-panel,.dynamic-scope-card { padding: 13px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.builder-territory-panel > label { display: flex; flex-direction: column; gap: 6px; color: var(--ink); font-size: var(--text-sm); font-weight: 600; }
.builder-territory-panel > label select { width: 100%; min-height: 38px; padding: 7px 9px; color: var(--ink); background: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); }
.builder-linked-location-rule,.builder-match-preview,.dynamic-scope-card { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.builder-linked-location-rule { margin-bottom: 12px; padding: 10px; background: var(--surface-muted); border-radius: var(--radius-md); }
.builder-linked-location-rule > .icon { color: var(--accent-deep); }
.builder-linked-location-rule > span,.builder-match-preview > div,.dynamic-scope-card > div { display: flex; min-width: 0; flex-direction: column; }
.builder-linked-location-rule small,.builder-match-preview small,.dynamic-scope-card p { margin: 2px 0 0; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-linked-location-rule > i { display: flex; align-items: center; gap: 4px; color: var(--success); font-size: var(--text-xs); font-style: normal; }
.builder-linked-location-rule.unavailable { color: var(--danger); }
.builder-match-preview { margin-top: 10px; padding: 10px; background: var(--surface-muted); border-radius: var(--radius-md); }
.builder-match-preview > span,.dynamic-scope-card > span { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 10px; }
.dynamic-scope-card { grid-template-columns: 42px minmax(0,1fr); }
.dynamic-scope-card > div > small { color: var(--accent-deep); font-size: var(--text-xs); font-weight: 650; }
.builder-subordinate-depth { margin-top: 12px; }
.builder-subordinate-depth > span { display: flex; flex-direction: column; margin-bottom: 8px; }
.builder-subordinate-depth > span small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-subordinate-depth > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.builder-subordinate-depth label { display: grid; grid-template-columns: 24px minmax(0,1fr) 20px; align-items: center; gap: 8px; padding: 9px; cursor: pointer; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); }
.builder-subordinate-depth label.active { background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 32%,var(--line)); }
.builder-subordinate-depth label > span { display: flex; min-width: 0; flex-direction: column; }
.builder-subordinate-depth label small { color: var(--ink-soft); font-size: var(--text-xs); }
.builder-subordinate-depth label > .icon:last-child { visibility: hidden; color: var(--accent-deep); }
.builder-subordinate-depth label.active > .icon:last-child { visibility: visible; }
.builder-condition-panel { padding: 12px; background: color-mix(in srgb,var(--surface-muted) 76%,var(--card-solid)); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.builder-condition-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.builder-condition-heading > span { display: flex; min-width: 0; flex-direction: column; }
.builder-condition-heading small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-condition-heading > i { display: grid; min-width: 24px; height: 24px; place-items: center; background: var(--surface-muted); border-radius: 999px; font-size: var(--text-xs); font-style: normal; }
.builder-condition-list { display: flex; flex-direction: column; gap: 7px; }
.builder-condition-item { display: grid; grid-template-columns: 34px minmax(160px,.8fr) minmax(190px,1.2fr) 32px; align-items: end; gap: 7px; padding: 9px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.builder-condition-logic { align-self: center; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 700; text-align: center; }
.builder-condition-item > label { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.builder-condition-item > label > small { color: var(--ink-soft); font-size: var(--text-xs); }
.builder-condition-item > label > select { width: 100%; min-width: 0; min-height: 38px; padding: 7px 9px; color: var(--ink); background-color: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); font-size: var(--text-sm); outline: 0; }
.builder-condition-item > label > select:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.builder-condition-values { position: relative; min-width: 0; }
.builder-condition-values > summary { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 7px; padding: 7px 9px; cursor: pointer; background: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); font-size: var(--text-sm); list-style: none; }
.builder-condition-values > summary.disabled { color: var(--ink-faint); cursor: not-allowed; }
.builder-condition-values > div { position: absolute; z-index: 12; top: calc(100% + 5px); left: 0; display: flex; width: min(360px,70vw); max-height: 230px; flex-direction: column; gap: 2px; overflow-y: auto; padding: 5px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); }
.builder-condition-values > div > button { display: grid; min-height: 34px; grid-template-columns: 16px minmax(0,1fr); align-items: center; gap: 8px; padding: 6px 8px; color: var(--ink); text-align: left; cursor: pointer; background: transparent; border: 0; border-radius: 7px; font-size: var(--text-sm); }
.builder-condition-values > div > button:hover { background: var(--table-row-hover); }
.builder-condition-values > div > button > span { width: 15px; height: 15px; border: 1px solid var(--line-strong); border-radius: 4px; }
.builder-condition-values > div > button.active > span { background: var(--accent); border-color: var(--accent); box-shadow: inset 0 0 0 3px var(--card-solid); }
.builder-condition-values .assignment-list-note { padding: 10px; }
.builder-condition-limit { padding: 6px 8px; color: var(--ink-soft); font-size: var(--text-xs); }
.builder-condition-remove { display: grid; width: 32px; height: 32px; place-items: center; color: var(--ink-soft); cursor: pointer; background: transparent; border: 0; border-radius: 8px; }
.builder-condition-remove:hover { color: var(--danger); background: color-mix(in srgb,var(--danger) 9%,transparent); }
.builder-condition-empty { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 90px; color: var(--ink-soft); text-align: left; border: 1px dashed var(--line); border-radius: var(--radius-md); }
.builder-condition-empty > span { display: flex; flex-direction: column; }
.builder-condition-empty small { margin-top: 2px; font-size: var(--text-xs); }
.builder-add-condition { display: inline-flex; min-height: 34px; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 9px; color: var(--accent-deep); cursor: pointer; background: transparent; border: 1px solid var(--line); border-radius: var(--radius-md); font-size: var(--text-xs); font-weight: 600; }
.builder-add-condition:hover { background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 30%,var(--line)); }
.assignment-subject-segments { width: min(520px,100%); margin-bottom: 14px; }
.assignment-subject-list { max-height: 390px; }
.assignment-questionnaire-list { display: flex; flex-direction: column; gap: 8px; }
.assignment-form-header-actions { display: flex; align-items: center; gap: 7px; }
.assignment-questionnaire-list > article { overflow: hidden; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.assignment-questionnaire-list > article:has([data-assignment-form-select]:checked) { border-color: color-mix(in srgb,var(--accent-deep) 35%,var(--line)); }
.assignment-questionnaire-toggle { display: grid; min-height: 64px; grid-template-columns: 36px minmax(0,1fr) 22px; align-items: center; gap: 10px; padding: 9px 12px; cursor: pointer; }
.assignment-questionnaire-toggle:hover { background: var(--table-row-hover); }
.assignment-questionnaire-toggle > span:nth-child(3) { display: flex; min-width: 0; flex-direction: column; }
.assignment-questionnaire-toggle strong { font-size: var(--text-sm); }
.assignment-questionnaire-toggle small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-questionnaire-toggle > .icon { visibility: hidden; color: var(--accent-deep); }
.assignment-questionnaire-toggle:has(input:checked) > .icon { visibility: visible; }
.assignment-form-traversal { display: grid; grid-template-columns: minmax(155px,.42fr) minmax(300px,1fr); align-items: end; gap: 12px; padding: 9px 12px; background: var(--surface-muted); border-top: 1px solid var(--line); }
.assignment-form-version,.assignment-form-run-mode { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 550; }
.assignment-form-version select { width: 100%; min-height: 34px; padding: 5px 28px 5px 8px; color: var(--ink); background-color: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); font-size: var(--text-xs); }
.assignment-form-run-mode .property-segments { width: 100%; }
.builder-subject-type.locked label { cursor: default; }
.builder-subject-type.locked label:not(.active) { opacity: .48; }
.assignment-subject-lock-note { margin: 10px 0 14px; }
.assignment-context-grid { display: flex; flex-direction: column; gap: 14px; }
.assignment-context-option { min-width: 0; margin: 0; padding: 12px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.assignment-context-option legend,.assignment-weekdays legend { padding: 0 5px; font-size: var(--text-sm); font-weight: 650; }
.assignment-context-records .assignment-choice-list { max-height: 270px; }
.assignment-context-search { display: flex; min-height: 38px; align-items: center; gap: 7px; margin-bottom: 8px; padding: 0 10px; background: var(--input-bg); border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-context-search .icon { flex: none; color: var(--ink-soft); }
.assignment-context-search input { width: 100%; min-width: 0; padding: 0; background: transparent; border: 0; outline: 0; box-shadow: none; }
.assignment-context-limit { display: block; margin-top: 6px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-completion-segments { max-width: 680px; }
.assignment-required-count { width: min(240px,100%); margin-top: 10px; }
.assignment-publication-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 16px; }
.assignment-publication-fields { display: flex; flex-direction: column; gap: 14px; padding: 16px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.assignment-weekdays { min-width: 0; margin: 0; padding: 11px; border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-weekdays > div { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.assignment-weekdays label { display: grid; min-height: 34px; place-items: center; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 600; cursor: pointer; background: var(--surface-muted); border: 1px solid transparent; border-radius: 8px; }
.assignment-weekdays label.active { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 25%,var(--line)); }
.assignment-unplanned-switch { align-self: end; min-height: 66px; }
.assignment-preview-card { display: flex; min-height: 300px; flex-direction: column; align-items: center; justify-content: center; padding: 22px; text-align: center; background: linear-gradient(145deg,rgba(var(--accent-rgb),.1),var(--card-solid)); border: 1px solid color-mix(in srgb,var(--accent-deep) 25%,var(--line)); border-radius: var(--radius-lg); }
.assignment-preview-icon { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 12px; color: var(--accent-deep); background: var(--card-solid); border-radius: 14px; box-shadow: var(--shadow-sm); }
.assignment-preview-card > strong { font-size: var(--text-lg); }
.assignment-preview-card > p { max-width: 360px; margin: 7px 0 12px; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.45; }
.assignment-preview-card > small { min-height: 18px; margin-top: 11px; color: var(--ink-soft); font-size: var(--text-xs); }
.assignment-preview-metrics { display: grid; width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.assignment-preview-metrics > span { display: flex; flex-direction: column; padding: 9px; color: var(--ink-soft); font-size: var(--text-xs); background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.assignment-preview-metrics strong { color: var(--ink); font-size: var(--text-lg); }
.assignment-builder-footer { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 16px; background: var(--drawer-background); border-top: 1px solid var(--line); }
.assignment-builder-footer > div { display: flex; align-items: center; gap: 8px; }
.assignment-builder-validation { color: var(--danger); font-size: var(--text-xs); }
html[data-ui-theme="clean"] .assignment-builder-dialog { box-shadow: 0 20px 60px rgba(9,9,11,.18); }
html[data-ui-theme="clean"] .assignment-builder-steps > button.active { color: var(--ink); background: #f4f4f5; }
html[data-ui-theme="clean"] .assignment-builder-steps > button.active i { color: #fff; background: #18181b; border-color: #18181b; }
html[data-ui-theme="clean"] .assignment-choice-list > label:has(input:checked),html[data-ui-theme="clean"] .assignment-questionnaire-list > article:has([data-assignment-form-select]:checked) { background: #fafafa; border-color: #a1a1aa; }
.form-submission-answer-items { display: flex; flex-wrap: wrap; gap: 5px; }
.form-submission-answer-items i { padding: 3px 7px; color: var(--ink); background: var(--surface-muted); border: 1px solid var(--line); border-radius: 999px; font-size: var(--text-xs); font-style: normal; }
.form-submission-media-list { display: flex; width: 100%; flex-direction: column; gap: 6px; }
.form-submission-media-list > i { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 8px; padding: 7px 8px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: var(--radius-md); font-style: normal; }
.form-submission-media-list > i > svg { color: var(--accent-deep); }
.form-submission-media-list > i > span { display: flex; min-width: 0; flex-direction: column; }
.form-submission-media-list strong { overflow: hidden; font-size: var(--text-xs); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.form-submission-media-list small { color: var(--ink-soft); font-size: var(--text-xs); }

/* Draft test uses the published runtime contract but never writes answers or files. */
.form-test-workspace { display: grid; min-height: 650px; grid-template-columns: minmax(330px,430px) minmax(220px,280px); align-items: start; justify-content: center; gap: 18px; overflow: auto; padding: 18px; background: var(--surface-muted); }
.form-test-device { display: flex; width: 100%; height: 680px; min-height: 0; flex-direction: column; overflow: hidden; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line-strong); border-radius: 24px; box-shadow: 0 20px 54px rgba(14,25,28,.14); }
.form-test-device-head { display: grid; min-height: 69px; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 11px 15px; background: color-mix(in srgb,var(--card-solid) 86%,var(--accent-soft)); border-bottom: 1px solid var(--line); }
.form-test-device-icon,.form-test-trace-icon { display: grid; width: 36px; height: 36px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 11px; }
.form-test-device-head > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.form-test-device-head small { overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.form-test-device-head strong { overflow: hidden; font-size: var(--text-base); font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.form-test-device-head > i { color: var(--ink-soft); font-size: var(--text-xs); font-style: normal; font-weight: 600; }
.form-test-progress { height: 3px; background: var(--line); }
.form-test-progress > span { display: block; width: 0; height: 100%; background: var(--accent-deep); transition: width var(--motion-normal); }
.form-test-sandbox-note { display: grid; grid-template-columns: 22px minmax(0,1fr) 20px; align-items: center; gap: 8px; margin: 10px 13px 0; padding: 8px 10px; color: var(--accent-deep); background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--accent-deep) 18%,var(--line)); border-radius: 10px; }
.form-test-sandbox-note > span { display: flex; min-width: 0; flex-direction: column; }
.form-test-sandbox-note strong { font-size: var(--text-xs); font-weight: 650; }
.form-test-sandbox-note small { overflow: hidden; color: var(--ink-soft); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.form-test-runner { min-height: 0; flex: 1; overflow-y: auto; padding: 14px; transition: opacity var(--motion-fast); }
.form-test-runner.is-logic-pending { opacity: 0; }
.form-test-section { display: flex; flex-direction: column; gap: 11px; }
.form-test-section-intro { display: flex; flex-direction: column; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.form-test-section-intro small { color: var(--ink-faint); font-size: var(--text-xs); }
.form-test-section-intro strong { margin-top: 2px; font-size: var(--text-lg); font-weight: 670; }
.form-test-section-intro span { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-sm); }
.form-test-field { display: flex; min-width: 0; flex-direction: column; gap: 6px; padding: 11px; background: color-mix(in srgb,var(--card-solid) 88%,var(--surface-muted)); border: 1px solid var(--line); border-radius: 11px; }
.form-test-field.has-error { border-color: color-mix(in srgb,var(--danger) 55%,var(--line)); }
.form-test-field-label { display: flex; min-width: 0; align-items: flex-start; justify-content: space-between; gap: 8px; color: var(--ink); }
.form-test-field-label > span { min-width: 0; font-size: var(--text-sm); font-weight: 600; }
.form-test-field-label sup { margin-left: 2px; color: var(--danger); font-size: var(--text-xs); }
.form-test-field-label > small { flex: 0 0 auto; color: var(--ink-faint); font-size: var(--text-xs); }
.form-test-field > input:not([type=file]),.form-test-field > select,.form-test-field > textarea {
  width: 100%;
  min-width: 0;
  min-height: var(--control-height-lg);
  padding: 0 11px;
  color: var(--ink);
  font: inherit;
  font-size: var(--text-sm);
  background: var(--card-solid);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  outline: 0;
  transition: border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast);
}
.form-test-field > input:not([type=file])::placeholder,.form-test-field > textarea::placeholder { color: var(--ink-faint); }
.form-test-field > textarea { min-height: 80px; padding: 9px 11px; resize: vertical; }
.form-test-field > input:not([type=file]):hover,.form-test-field > select:hover,.form-test-field > textarea:hover { border-color: var(--line-strong); }
.form-test-field > input:not([type=file]):focus,.form-test-field > select:focus,.form-test-field > textarea:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-field.has-error > input:not([type=file]),.form-test-field.has-error > select,.form-test-field.has-error > textarea { border-color: var(--danger); }
.form-test-integer-stepper { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0,1fr) 40px 40px; align-items: stretch; gap: 7px; }
.form-test-integer-stepper > input { width: 100%; min-width: 0; min-height: var(--control-height-lg); padding: 0 10px; color: var(--ink); font: inherit; font-size: var(--text-sm); appearance: textfield; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); outline: 0; }
.form-test-integer-stepper > input::-webkit-inner-spin-button,.form-test-integer-stepper > input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.form-test-integer-stepper > input:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-integer-stepper > button { display: grid; min-width: 40px; min-height: var(--control-height-lg); place-items: center; padding: 0; color: var(--ink); cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-test-integer-stepper > button:hover { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 38%,var(--line)); }
.form-test-field.has-error .form-test-integer-stepper > input { border-color: var(--danger); }
.form-test-field-note,.form-test-photo-count { color: var(--ink-faint); font-size: var(--text-xs); }
.form-test-field-error { color: var(--danger); font-size: var(--text-xs); font-weight: 550; }
.form-test-object-loop { gap: 9px; background: color-mix(in srgb,var(--accent-soft) 32%,var(--card-solid)); border-color: color-mix(in srgb,var(--accent) 25%,var(--line)); }
.form-test-object-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.form-test-object-actions > [data-form-test-object-toggle-all] { margin-right: auto; }
.form-test-object-actions svg,.form-test-object-record-toggle > svg { transition: transform .18s ease; }
.form-test-object-actions svg.expanded,.form-test-object-record.expanded .form-test-object-record-toggle > svg { transform: rotate(180deg); }
.form-test-object-tools { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.form-test-object-tools .form-test-object-search { width: 100%; min-width: 0; }
.form-test-object-scan-button,.form-test-lookup-scan-button { display: grid; width: 38px; min-width: 38px; padding: 0; place-items: center; }
.form-test-object-scan-button[aria-expanded="true"],.form-test-lookup-scan-button[aria-expanded="true"] { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 42%,var(--line)); }
.form-test-object-search { display: grid; min-height: 38px; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 7px; padding: 0 9px; color: var(--ink-soft); background: var(--card-solid); border: 1px solid var(--line); border-radius: 9px; }
.form-test-object-search:focus-within { color: var(--accent-deep); border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-object-search input { width: 100%; min-width: 0; min-height: 36px; padding: 0; color: var(--ink); background: transparent; border: 0; outline: 0; }
.form-test-object-filter-button { flex: none; }
.form-test-object-filter-button.active,.form-test-object-filter-button[aria-expanded="true"] { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 42%,var(--line)); }
.form-test-object-filter-button i { display: grid; min-width: 18px; height: 18px; place-items: center; color: var(--card-solid); font-size: 10px; font-style: normal; background: var(--accent-deep); border-radius: 999px; }
.form-test-object-filter-panel { overflow: hidden; background: var(--card-solid); border: 1px solid color-mix(in srgb,var(--accent-deep) 30%,var(--line)); border-radius: 10px; }
.form-test-object-filter-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 10px; background: var(--surface-muted); border-bottom: 1px solid var(--line); }
.form-test-object-filter-panel > header > span,.form-test-object-filter-field > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.form-test-object-filter-panel > header strong,.form-test-object-filter-field > span strong { font-size: var(--text-xs); }
.form-test-object-filter-panel > header small,.form-test-object-filter-field > span small { color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.35; }
.form-test-object-filter-panel > header > button { flex: none; padding: 5px 7px; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 650; cursor: pointer; background: transparent; border: 0; border-radius: 7px; }
.form-test-object-filter-field { display: flex; flex-direction: column; gap: 7px; padding: 9px 10px; border-bottom: 1px solid var(--line); }
.form-test-object-filter-field:last-child { border-bottom: 0; }
.form-test-object-filter-field > select,.form-test-object-filter-range input { width: 100%; min-width: 0; min-height: 38px; padding: 0 10px; color: var(--ink); background: var(--card-solid); border: 1px solid var(--line-strong); border-radius: 8px; outline: 0; }
.form-test-object-filter-field > select:focus,.form-test-object-filter-range input:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-object-filter-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.form-test-object-filter-chips button { display: inline-flex; max-width: 100%; min-height: 28px; align-items: center; gap: 5px; padding: 4px 7px; overflow: hidden; color: var(--accent-deep); font-size: var(--text-xs); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; background: var(--accent-soft); border: 1px solid color-mix(in srgb,var(--accent-deep) 24%,var(--line)); border-radius: 8px; }
.form-test-object-filter-chips button span { font-size: var(--text-sm); line-height: 1; }
.form-test-object-filter-boolean { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.form-test-object-filter-boolean button { min-height: 36px; color: var(--ink-soft); font-weight: 600; cursor: pointer; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 8px; }
.form-test-object-filter-boolean button.selected { color: var(--accent-deep); background: var(--accent-soft); border-color: var(--accent-deep); }
.form-test-object-filter-range { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.form-test-object-filter-range label { display: flex; min-width: 0; flex-direction: column; gap: 4px; color: var(--ink-soft); font-size: var(--text-xs); }
.form-test-object-filter-unavailable { display: flex; align-items: flex-start; gap: 7px; padding: 8px 9px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 9px; }
.form-test-object-filter-unavailable svg { flex: none; color: var(--accent-deep); }
.form-test-scan-panel { display: flex; min-width: 0; flex-direction: column; gap: 8px; padding: 10px; background: var(--card-solid); border: 1px solid color-mix(in srgb,var(--accent-deep) 28%,var(--line)); border-radius: 10px; }
.form-test-scan-panel[hidden] { display: none; }
.form-test-scan-panel > label { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.form-test-scan-panel > label span { color: var(--ink); font-size: var(--text-sm); font-weight: 650; }
.form-test-scan-panel > label small,.form-test-scan-panel > small { color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.4; }
.form-test-scan-panel > div { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }
.form-test-scan-panel input { width: 100%; min-width: 0; min-height: 38px; padding: 0 10px; color: var(--ink); font: inherit; font-size: var(--text-sm); background: var(--surface-muted); border: 1px solid var(--line-strong); border-radius: 8px; outline: 0; }
.form-test-scan-panel input:focus { background: var(--card-solid); border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-lookup-control { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) 38px; gap: 7px; align-items: stretch; }
.form-test-lookup-control > select { width: 100%; min-width: 0; min-height: var(--control-height-lg); padding: 0 34px 0 11px; color: var(--ink); font: inherit; font-size: var(--text-sm); background-color: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-md); outline: 0; transition: border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast); }
.form-test-lookup-control > select:hover { border-color: var(--line-strong); }
.form-test-lookup-control > select:focus { border-color: var(--accent-deep); box-shadow: 0 0 0 3px var(--focus-ring); }
.form-test-field.has-error .form-test-lookup-control > select { border-color: var(--danger); }
.form-test-object-no-results { padding: 10px; color: var(--ink-soft); text-align: center; background: var(--card-solid); border: 1px dashed var(--line-strong); border-radius: 9px; }
.form-test-object-records { display: flex; min-width: 0; flex-direction: column; gap: 8px; }
.form-test-object-record { min-width: 0; overflow: hidden; background: color-mix(in srgb,var(--card-solid) 95%,var(--surface-muted)); border: 1px solid color-mix(in srgb,var(--accent-deep) 18%,var(--line)); border-radius: 9px; }
.form-test-object-record-toggle { display: grid; width: 100%; grid-template-columns: 21px minmax(0,1fr) 18px; align-items: center; gap: 7px; padding: 8px; color: var(--ink); text-align: left; cursor: pointer; background: color-mix(in srgb,var(--accent-soft) 24%,var(--card-solid)); border: 0; }
.form-test-object-record.expanded .form-test-object-record-toggle { border-bottom: 1px solid var(--line); }
.form-test-object-record-toggle > span { display: grid; width: 21px; height: 21px; place-items: center; color: var(--accent-deep); background: var(--accent-soft); border-radius: 6px; font-size: var(--text-xs); font-weight: 650; }
.form-test-object-record-toggle > strong { display: flex; min-width: 0; flex-direction: column; gap: 1px; overflow-wrap: anywhere; font-size: var(--text-sm); line-height: 1.3; white-space: normal; }
.form-test-object-record-toggle > strong > small { color: var(--ink-soft); font-size: var(--text-xs); font-weight: 500; overflow-wrap: anywhere; white-space: normal; }
.form-test-object-record-toggle > svg { color: var(--ink-soft); }
.form-test-object-record-body { display: flex; min-width: 0; flex-direction: column; gap: 7px; padding: 8px; }
.form-test-object-record-body > .form-test-field { padding: 9px; background: var(--card-solid); border-radius: 8px; }
.form-test-calculation { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 9px 10px; color: var(--accent-deep); background: color-mix(in srgb,var(--accent) 7%,var(--card-solid)); border: 1px solid color-mix(in srgb,var(--accent) 24%,var(--line)); border-radius: 9px; }
.form-test-calculation.invalid { color: var(--danger); border-color: color-mix(in srgb,var(--danger) 45%,var(--line)); }
.form-test-calculation > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.form-test-calculation strong { color: var(--ink); font-size: var(--text-sm); }
.form-test-calculation small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-formula-input { min-height: 112px; font-family: "Geist Mono",Consolas,monospace; font-size: var(--text-sm); line-height: 1.55; resize: vertical; }
.formula-reference-picker select { font-family: "Geist Mono",Consolas,monospace; font-size: var(--text-xs); }
.form-formula-guide > span { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.form-formula-guide code { overflow-wrap: anywhere; color: var(--ink); font-size: var(--text-xs); }
.form-test-segments { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.form-test-segments button { min-height: 36px; color: var(--ink-soft); font-size: var(--text-sm); font-weight: 550; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: 9px; }
.form-test-segments button:hover { color: var(--ink); border-color: var(--line-strong); }
.form-test-segments button.selected { color: var(--accent-deep); background: var(--accent-soft); border-color: color-mix(in srgb,var(--accent-deep) 35%,var(--line)); }
.form-test-choice-list { display: flex; flex-direction: column; gap: 5px; }
.form-test-choice-list label { display: flex; min-height: 34px; align-items: center; gap: 8px; padding: 6px 8px; cursor: pointer; background: var(--card-solid); border: 1px solid var(--line); border-radius: 8px; }
.form-test-choice-list input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent-deep); }
.form-test-choice-list span { font-size: var(--text-sm); }
.form-test-choice-dropdown { overflow: hidden; background: var(--card-solid); border: 1px solid var(--line); border-radius: 9px; }
.form-test-choice-dropdown[open] { border-color: color-mix(in srgb,var(--accent-deep) 38%,var(--line)); }
.form-test-choice-dropdown > summary { display: grid; min-height: 40px; grid-template-columns: minmax(0,1fr) 18px; align-items: center; gap: 8px; padding: 0 10px; color: var(--ink); cursor: pointer; list-style: none; }
.form-test-choice-dropdown > summary::-webkit-details-marker { display: none; }
.form-test-choice-dropdown > summary span { overflow: hidden; font-size: var(--text-sm); font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.form-test-choice-dropdown > summary svg { color: var(--ink-soft); transition: transform .16s ease; }
.form-test-choice-dropdown[open] > summary svg { transform: rotate(180deg); }
.form-test-choice-dropdown > .form-test-choice-list { max-height: 260px; overflow-y: auto; padding: 6px; border-top: 1px solid var(--line); }
.form-test-readonly { display: grid; min-height: 43px; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 8px; padding: 7px 9px; color: var(--ink-soft); background: var(--surface-muted); border: 1px dashed var(--line-strong); border-radius: 9px; }
.form-test-readonly > span { display: flex; min-width: 0; flex-direction: column; }
.form-test-readonly strong { overflow: hidden; color: var(--ink); font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.form-test-readonly small { color: var(--ink-faint); font-size: var(--text-xs); }
.form-test-photo { display: grid; min-height: 56px; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 8px; padding: 9px 10px; color: var(--accent-deep); cursor: pointer; background: var(--accent-soft); border: 1px dashed color-mix(in srgb,var(--accent-deep) 38%,var(--line)); border-radius: 10px; }
.form-test-photo > span { display: flex; min-width: 0; flex-direction: column; }
.form-test-photo strong { font-size: var(--text-sm); }
.form-test-photo small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-test-photo input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.form-test-device-footer { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; background: var(--card-solid); border-top: 1px solid var(--line); }
.form-test-summary { display: flex; min-height: 100%; align-items: center; justify-content: center; flex-direction: column; padding: 25px 8px; text-align: center; }
.form-test-summary > span { display: grid; width: 58px; height: 58px; place-items: center; color: var(--success); background: color-mix(in srgb,var(--success) 11%,transparent); border-radius: 18px; }
.form-test-summary > strong { margin-top: 14px; font-size: var(--text-lg); }
.form-test-summary > p { max-width: 310px; margin: 5px 0 15px; color: var(--ink-soft); font-size: var(--text-sm); }
.form-test-summary > div { display: grid; width: 100%; grid-template-columns: 1fr 1fr; gap: 7px; }
.form-test-summary > div > span { display: flex; flex-direction: column; padding: 10px; color: var(--ink-soft); font-size: var(--text-xs); background: var(--surface-muted); border: 1px solid var(--line); border-radius: 9px; }
.form-test-summary > div strong { color: var(--ink); font-size: var(--text-xl); }
.form-test-trace { display: flex; width: 100%; flex-direction: column; gap: 13px; padding: 15px; background: var(--card-solid); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.form-test-trace > header { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 9px; }
.form-test-trace > header > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.form-test-trace > header strong { font-size: var(--text-sm); }
.form-test-trace > header small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-test-trace dl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 0; }
.form-test-trace dl > div { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 8px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: 8px; }
.form-test-trace dt { color: var(--ink-soft); font-size: var(--text-xs); }
.form-test-trace dd { margin: 0; color: var(--ink); font-size: var(--text-sm); font-weight: 650; }
.form-test-trace-list { display: flex; flex-direction: column; gap: 5px; }
.form-test-trace-list > span { display: grid; grid-template-columns: 21px minmax(0,1fr); align-items: start; gap: 7px; padding: 8px 0; color: var(--success); border-bottom: 1px solid var(--line); }
.form-test-trace-list > span:last-child { border-bottom: 0; }
.form-test-trace-list > span > span { display: flex; min-width: 0; flex-direction: column; }
.form-test-trace-list strong { color: var(--ink); font-size: var(--text-xs); }
.form-test-trace-list small { color: var(--ink-soft); font-size: var(--text-xs); }
.form-test-trace > .button { align-self: flex-start; }
.form-test-unavailable { min-height: 540px; }

html[data-ui-theme="clean"] .form-structure-stage { background: var(--surface); }
html[data-ui-theme="clean"] .form-section-tabs > [data-form-section-tab][aria-selected="true"] { background: #f4f4f5; }
html[data-ui-theme="clean"] .form-section-card { border-radius: var(--radius-md); box-shadow: none; }
html[data-ui-theme="clean"] .form-question-card { background: #fff; }
html[data-ui-theme="clean"] .form-field-type-grid > button > span:first-child { background: var(--surface-muted); color: var(--ink); }
html[data-ui-theme="clean"] .form-choice-segments > button.active { color: #09090b; }
html[data-ui-theme="clean"] .form-logic-workspace { background: #fafafa; }
html[data-ui-theme="clean"] .form-logic-card,
html[data-ui-theme="clean"] .form-logic-overview { border-radius: var(--radius-md); }
html[data-ui-theme="clean"] .form-logic-segments input:checked + span { color: #09090b; }
html[data-ui-theme="clean"] .form-test-workspace { background: #fafafa; }
html[data-ui-theme="clean"] .form-test-device { border-radius: 18px; box-shadow: 0 16px 40px rgba(0,0,0,.08); }
html[data-ui-theme="clean"] .form-test-field { background: #fff; border-radius: 9px; }

/* XtraBI Analytics: compact page navigation around a full-width embedded dashboard. */
.analytics-page { min-width: 0; }
.analytics-page-intro { min-height: 78px; }
.analytics-configuration-alert { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 11px 13px; color: #7a5510; font-size: var(--text-sm); background: #fff7df; border: 1px solid #eed79d; border-radius: var(--radius-lg); }
.analytics-configuration-alert .icon { flex: 0 0 auto; }
.analytics-workspace { display: grid; min-width: 0; grid-template-columns: minmax(220px,270px) minmax(0,1fr); align-items: start; gap: 12px; }
.analytics-library { position: sticky; top: calc(var(--topbar-height) + 18px); overflow: hidden; }
.analytics-dashboard-list { display: flex; max-height: calc(100vh - 190px); overflow-y: auto; flex-direction: column; padding: 6px; }
.analytics-dashboard-list > div { display: grid; min-width: 0; grid-template-columns: minmax(0,1fr) 34px; align-items: center; gap: 3px; border-radius: var(--radius-md); }
.analytics-dashboard-list > div:hover { background: rgba(var(--accent-rgb),.055); }
.analytics-dashboard-list > div.active { background: rgba(var(--accent-rgb),.1); }
.analytics-dashboard-list a { display: grid; min-width: 0; min-height: 58px; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; padding: 7px 6px 7px 8px; color: var(--ink); text-decoration: none; }
.analytics-dashboard-list a > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.analytics-dashboard-list strong,.analytics-dashboard-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analytics-dashboard-list strong { font-size: var(--text-sm); font-weight: 620; }
.analytics-dashboard-list small { margin-top: 2px; color: var(--ink-soft); font-size: var(--text-xs); }
.analytics-dashboard-icon { display: grid; width: 34px; height: 34px; place-items: center; color: var(--accent-deep); background: rgba(var(--accent-rgb),.1); border-radius: var(--radius-md); }
.analytics-dashboard-list > div > .icon-button { width: 30px; height: 30px; opacity: 0; }
.analytics-dashboard-list > div:hover > .icon-button,.analytics-dashboard-list > div:focus-within > .icon-button { opacity: 1; }
.analytics-viewer-card { min-width: 0; overflow: hidden; }
.analytics-viewer-head { position: relative; z-index: 2; background: var(--card-solid); }
.analytics-viewer-head > div { min-width: 0; }
.analytics-viewer-head h2,.analytics-viewer-head p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.analytics-embed-host { position: relative; min-height: 650px; background: var(--surface-muted); }
.analytics-embed-loading,.analytics-embed-error { position: absolute; inset: 0; z-index: 1; display: flex; min-height: 650px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; padding: 28px; color: var(--ink-soft); text-align: center; }
.analytics-embed-loading[hidden],.analytics-embed-error[hidden] { display: none; }
.analytics-embed-loading strong,.analytics-embed-error strong { color: var(--ink); font-size: var(--text-md); }
.analytics-embed-loading p,.analytics-embed-error p { max-width: 480px; margin: 0 0 7px; font-size: var(--text-sm); line-height: 1.5; }
.analytics-embed-spinner { width: 34px; height: 34px; margin-bottom: 5px; border: 3px solid rgba(var(--accent-rgb),.18); border-top-color: var(--accent-deep); border-radius: 50%; animation: analytics-spin 850ms linear infinite; }
@keyframes analytics-spin { to { transform: rotate(360deg); } }
.analytics-embed-frame { position: relative; z-index: 2; display: block; width: 100%; height: 720px; min-height: 650px; background: #fff; border: 0; }
.analytics-embed-frame[hidden] { display: none; }
.analytics-empty-state { min-height: 380px; }
.analytics-editor-drawer { width: min(580px,96vw); }
.analytics-editor-body { padding-bottom: 30px; }
.analytics-json-editor { min-height: 130px !important; font-family: ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; font-size: var(--text-xs); line-height: 1.5; tab-size: 2; }
.analytics-runtime-claims { overflow: hidden; background: rgba(var(--accent-rgb),.045); border: 1px solid rgba(var(--accent-rgb),.18); border-radius: var(--radius-lg); }
.analytics-runtime-claims > header { display: flex; justify-content: space-between; gap: 10px; padding: 10px 11px; border-bottom: 1px solid rgba(var(--accent-rgb),.15); }
.analytics-runtime-claims > header strong { font-size: var(--text-sm); }
.analytics-runtime-claims > header small { color: var(--ink-soft); font-size: var(--text-xs); }
.analytics-runtime-claims > div { display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: center; gap: 8px; min-height: 38px; padding: 6px 11px; border-bottom: 1px solid var(--line); }
.analytics-runtime-claims > div:last-child { border-bottom: 0; }
.analytics-runtime-claims code { color: var(--accent-deep); font-size: var(--text-xs); font-weight: 650; }
.analytics-runtime-claims span { color: var(--ink-soft); font-size: var(--text-xs); }
.analytics-visibility-fieldset { margin-top: 0; }
.analytics-visibility-fieldset > small { display: block; margin-top: 7px; color: var(--ink-soft); font-size: var(--text-xs); font-weight: 450; line-height: 1.4; }
.analytics-sort-order-field { max-width: 180px; }
html[data-ui-theme="clean"] .analytics-dashboard-list > div.active { background: #f4f4f5; }
html[data-ui-theme="clean"] .analytics-dashboard-icon { color: var(--ink); background: #f4f4f5; }

@media (max-width: 980px) {
  .analytics-workspace { grid-template-columns: 1fr; }
  .analytics-library { position: static; }
  .analytics-dashboard-list { max-height: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .analytics-dashboard-list { grid-template-columns: 1fr; }
  .analytics-dashboard-list > div > .icon-button { opacity: 1; }
  .analytics-viewer-head { align-items: flex-start; }
  .analytics-viewer-head .status-chip { display: none; }
  .analytics-embed-host,.analytics-embed-loading,.analytics-embed-error { min-height: 560px; }
  .analytics-embed-frame { min-height: 560px; }
  .analytics-runtime-claims > header { flex-direction: column; }
}

@media (max-width: 980px) {
  .form-field-picker-dialog { width: min(720px,100%); }
  .form-field-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .form-logic-rule-grid { grid-template-columns: 1fr; }
  .form-logic-expression-list > div { grid-template-columns: 42px minmax(0,1fr); }
  .form-logic-action-list { grid-column: 2; justify-content: flex-start; }
  .form-test-workspace { grid-template-columns: minmax(320px,430px); }
  .form-test-trace { max-width: 430px; }
}

@media (max-width: 640px) {
  .form-field-picker-dialog { max-height: calc(100vh - 16px); }
  .form-field-picker-library { padding: 14px; }
  .form-field-type-grid { grid-template-columns: 1fr; }
  .form-section-tabs > [data-form-section-tab] { flex-basis: 165px; }
  .form-section-panels { padding: 10px; }
  .form-section-card > .form-section-cover { align-items: flex-start; flex-direction: column; }
  .form-section-actions { width: 100%; flex-wrap: wrap; }
  .form-section-actions .button { flex: 1 1 auto; }
  .form-question-card { grid-template-columns: 17px 27px 34px minmax(0,1fr); }
  .form-question-meta { display: none; }
  .form-inline-fields { grid-template-columns: 1fr; }
  .form-option-row,
  [data-form-choice-data-mode="code"] .form-option-row,
  [data-form-choice-data-mode="number"] .form-option-row { grid-template-columns: 18px minmax(0,1fr) 29px; }
  .form-option-editor-head { display: none; }
  .form-option-drag-handle { grid-column: 1; grid-row: 1; }
  .form-option-label-input { grid-column: 2; grid-row: 1; }
  .form-option-remove-button { grid-column: 3; grid-row: 1; }
  .form-option-value-control { grid-column: 2 / 4; grid-row: 2; }
  .form-submission-toolbar { align-items: flex-start; flex-direction: column; }
  .form-submission-toolbar > p { text-align: left; }
  .form-submission-meta { grid-template-columns: 1fr; }
  .form-submission-answers > div { grid-template-columns: 1fr; gap: 5px; }
  .form-test-workspace { display: block; min-height: 0; padding: 8px; }
  .form-test-device { height: calc(100vh - 190px); min-height: 570px; border-radius: 15px; }
  .form-test-trace { margin-top: 10px; }
}

/* Access and error pages */
.access-denied-screen, .error-screen { display: flex; min-height: 100vh; align-items: center; justify-content: center; flex-direction: column; padding: 28px; color: #e9f3f0; text-align: center; background: radial-gradient(circle at 50% 30%,rgba(var(--accent-rgb),.12),transparent 28%), #0d1315; }
.access-denied-screen > span { display: grid; width: 74px; height: 74px; place-items: center; margin-top: 52px; color: var(--accent); background: rgba(var(--accent-rgb),.09); border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 20px; }
.access-denied-screen h1, .error-screen h1 { margin: 19px 0 7px; font-size: var(--text-3xl); }.access-denied-screen p, .error-screen p { max-width: 520px; margin: 0 0 24px; color: #93a19f; }.access-denied-screen > div { display: flex; gap: 9px; }.access-denied-screen form { margin: 0; }.access-denied-screen .button-ghost { color: #d9e5e2; background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.09); }
.error-screen > strong { margin-top: 55px; color: var(--accent); font-size: var(--text-error-code); line-height: 1; }

@media (max-width: 1380px) {
  .catalog-workspace-navigation { flex-wrap: wrap; }.catalog-workspace-actions { width: 100%; flex: 1 0 100%; justify-content: flex-start; flex-wrap: wrap; }.catalog-data-toolbar { flex: 1 1 auto; justify-content: flex-start; }.catalog-search label { width: min(320px,42vw); }
}
@media (max-width: 1180px) {
  .profile-button > span:nth-child(2), .profile-button > svg, .api-status span { display: none; }
  .organization-context { min-width: 190px; }
  .metrics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .catalog-master-layout { grid-template-columns: 230px minmax(0,1fr); }
  .catalog-import-key-card { grid-template-columns: 1fr 1fr; }
  .catalog-import-key-card > div { grid-column: 1 / -1; }
  .role-options { grid-template-columns: 1fr; }
  .plan-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1080px) {
  .auth-shell { grid-template-columns: 1fr; }.auth-story { display: none; }.auth-panel { padding: 20px; }.auth-mobile-brand { display: block; margin-bottom: 30px; }
  .app-shell { --sidebar-width: 0px; }.sidebar { width: 244px; transform: translateX(-100%); }.sidebar.mobile-open { transform: translateX(0); }.sidebar-collapsed .sidebar { width: 244px; }.sidebar-collapsed .sidebar-top { justify-content: space-between; padding: 0 20px; }.sidebar-collapsed .sidebar .brand-logo-image { display: block; }.sidebar-collapsed .sidebar .brand-product-name { display: inline; }.sidebar-collapsed .sidebar .brand-icon-image { display: none; }.sidebar-collapsed .main-nav span, .sidebar-collapsed .sidebar-tools span, .sidebar-collapsed .nav-badge { display: flex; }.sidebar-collapsed .main-nav a, .sidebar-collapsed .sidebar-tools a, .sidebar-collapsed .sidebar-placeholder { justify-content: flex-start; padding: 0 13px; }.collapse-button { display: none; }.mobile-close, .mobile-menu-button { display: inline-grid; width: 38px; height: 38px; place-items: center; color: var(--topbar-text); background: var(--topbar-control-background); border: 1px solid var(--topbar-control-border); border-radius: var(--radius-md); }
  .organization-context, .global-search { display: none; }.mobile-page-title { display: block; flex: 1; font-size: var(--text-base); font-weight: 650; }.topbar { padding: 0 16px; }.content-area { padding: 18px 18px 36px; }.mobile-sidebar-backdrop { position: fixed; inset: 0; z-index: 35; display: block; background: rgba(3,10,12,.55); border: 0; }.dashboard-grid { grid-template-columns: 1fr; }.activity-card { grid-column: auto; }
  .catalog-master-layout { grid-template-columns: 1fr; }.catalog-library-rail { position: static; max-height: none; }.catalog-library-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }.catalog-workspace-head { align-items: flex-start; flex-direction: column; }.catalog-updated-at { text-align: left; }
  .user-page-intro { align-items: flex-start; flex-direction: column; }.user-search { width: 100%; }.user-search label { width: 100%; }.user-list-header { align-items: flex-start; flex-direction: column; padding-block: 14px; }.user-list-toolbar { width: 100%; justify-content: space-between; flex-wrap: wrap; }
  .visit-gallery-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .auth-card { padding: 27px 22px; border-radius: 17px; }.auth-card h2 { font-size: var(--text-2xl); }.page-intro { align-items: flex-start; flex-direction: column; }.intro-actions { width: 100%; }.intro-actions .button { flex: 1; }.metrics-grid { grid-template-columns: 1fr; }.metric-card { min-height: 104px; }.focus-list > a { grid-template-columns: 42px minmax(0,1fr); padding: 10px 12px; }.focus-list .focus-marker, .focus-list .status-chip { display: none; }.progress-visual { grid-template-columns: 110px 1fr; gap: 10px; }.progress-ring { width: 104px; height: 104px; }.activity-list, .overview-catalog-list { grid-template-columns: 1fr; }.activity-list > span, .overview-catalog-list > a { border-right: 0; border-bottom: 1px solid var(--line) !important; }.activity-list > span:last-child, .overview-catalog-list > a:last-child { border-bottom: 0 !important; }.activity-list time { display: none; }.module-ready-card { grid-template-columns: 50px 1fr; }.module-ready-card > .status-chip, .api-status { display: none; }.next-step-note { align-items: flex-start; flex-direction: column; }.access-denied-screen > div { width: 100%; flex-direction: column; }.access-denied-screen .button { width: 100%; }
  .catalog-library-list { grid-template-columns: 1fr; }.catalog-workspace-title > div > span { align-items: flex-start; flex-direction: column; }.catalog-workspace-body { min-height: 300px; grid-template-columns: 1fr; align-content: center; justify-items: start; padding: 24px; }.catalog-workspace-navigation { align-items: stretch; flex-direction: column; }.catalog-workspace-tabs { overflow-x: auto; }.catalog-workspace-actions,.catalog-data-toolbar { width: 100%; align-items: stretch; flex-direction: column; }.catalog-search { width: 100%; flex-wrap: wrap; }.catalog-search label { width: 100%; }.catalog-export-actions { width: 100%; padding: 7px 0 0; border-top: 1px solid var(--line); border-left: 0; }.catalog-export-actions .button { flex: 1; }.catalog-bulk-toolbar { width: 100%; justify-content: space-between; padding: 7px 0 0; border-top: 1px solid var(--line); border-left: 0; }.catalog-usage-toolbar { align-items: stretch; flex-direction: column; }.catalog-usage-relation { flex-basis: auto; }.catalog-usage-relation label { max-width: none; }.catalog-usage-search .button { width: auto; }.catalog-usage-children { padding-left: 14px; }.catalog-usage-pagination { justify-content: space-between; }
  .catalog-import-modal { padding: 8px; }.catalog-import-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }.catalog-import-create-body { min-height: 0; grid-template-columns: 1fr; padding: 24px; }.catalog-import-create-footer { align-items: stretch; flex-direction: column; }.catalog-import-create-footer > div { flex-direction: column-reverse; }.catalog-import-create-footer .button { width: 100%; }.catalog-import-key-card,.catalog-import-options { grid-template-columns: 1fr; }.catalog-import-counters { grid-template-columns: repeat(2,minmax(0,1fr)); }.catalog-import-counters > span { border-bottom: 1px solid var(--line); }.catalog-import-result-details { grid-template-columns: 1fr; }.catalog-import-result-details > div { border-right: 0; border-bottom: 1px solid var(--line); }.catalog-import-result-details > div:last-child { border-bottom: 0; }.catalog-import-mapping > footer,.catalog-import-apply,.catalog-import-sheet-form { align-items: stretch; flex-direction: column; }.catalog-import-mapping > footer .button,.catalog-import-apply .button,.catalog-import-sheet-form .button { width: 100%; }
  .user-search { align-items: stretch; flex-direction: column; }.user-summary-badges { width: 100%; flex-wrap: wrap; }.user-summary-badge { flex: 1 1 auto; }.form-field-grid { grid-template-columns: 1fr; }.user-editor-panel { width: 100vw; max-width: none; }.user-security-actions { grid-template-columns: 1fr; }.side-drawer { width: 100vw; max-width: none; }.drawer-footer { flex-direction: column-reverse; }.drawer-footer-split { flex-direction: column; }.drawer-footer-actions { width: 100%; flex-direction: column-reverse; }.drawer-footer .button { width: 100%; }.theme-menu { position: fixed; top: calc(var(--topbar-height) - 1px); right: 10px; left: 10px; width: auto; }
}
@media (max-width: 900px) {
  .assignment-table-toolbar { align-items: stretch; flex-direction: column; }.assignment-search { width: 100%; }.assignment-choice-columns,.assignment-publication-layout { grid-template-columns: 1fr; }.assignment-builder-dialog { height: calc(100vh - 20px); }.assignment-builder-modal { padding: 10px; }.assignment-builder-panel { padding: 16px; }.assignment-builder-steps > button { min-width: 145px; flex-basis: 145px; }.recipient-select-list,.builder-location-list { grid-template-columns: 1fr; }.scope-mode-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }.builder-condition-item { grid-template-columns: 30px minmax(140px,.8fr) minmax(170px,1.2fr) 32px; }
  .plan-navigation-toolbar { grid-template-columns: 1fr; }.plan-calendar-period { justify-self: end; }.plan-approval-layout { grid-template-columns: 1fr; }.plan-request-list > div { max-height: 300px; overflow-y: auto; }.plan-request-detail { min-height: 380px; }
}
@media (max-width: 640px) {
  .assignment-builder-modal { padding: 0; }.assignment-builder-dialog { width: 100vw; height: 100vh; border: 0; border-radius: 0; }.assignment-builder-head { min-height: 64px; padding: 10px 13px; }.assignment-builder-steps { min-height: 56px; padding: 6px 8px; }.assignment-builder-steps > button { min-width: 52px; flex: 1 0 52px; grid-template-columns: 1fr; justify-items: center; padding: 5px; }.assignment-builder-steps > button span { display: none; }.assignment-builder-panel { padding: 14px 12px 20px; }.assignment-builder-panel > header { align-items: stretch; flex-direction: column; }.assignment-form-traversal { grid-template-columns: 1fr; align-items: stretch; }.assignment-form-traversal .property-segments { width: 100%; }.assignment-completion-segments { flex-direction: column; }.assignment-builder-footer { align-items: stretch; flex-direction: column; }.assignment-builder-footer > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }.assignment-builder-footer .button { width: 100%; }.assignment-rule-summary-flow { grid-template-columns: 1fr; }.assignment-rule-summary-flow > section { min-height: 82px; }.assignment-context-summary,.assignment-drawer-facts { grid-template-columns: 1fr; }.recipient-mode-tabs,.scope-mode-tabs,.scope-mode-tabs.employee-target-tabs { display: flex; overflow-x: auto; }.recipient-mode-tabs > label,.scope-mode-tabs > label { min-width: 118px; flex: 1 0 118px; }.builder-subject-type,.builder-subordinate-depth > div { grid-template-columns: 1fr; }.builder-condition-item { grid-template-columns: 28px minmax(0,1fr) 32px; align-items: center; }.builder-condition-item > label { grid-column: 2; }.builder-condition-remove { grid-column: 3; grid-row: 1 / 3; }.builder-condition-logic { grid-row: 1 / 3; }.builder-condition-values > div { position: fixed; right: 10px; bottom: 80px; left: 10px; width: auto; max-height: 45vh; }
  .plan-summary-grid { grid-template-columns: 1fr 1fr; }.plan-summary-grid > article { min-height: 74px; padding: 10px; }.plan-page-tabs { overflow-x: auto; }.plan-page-tabs > a { min-width: 130px; flex: 1 0 130px; }.plan-calendar-period { width: 100%; justify-content: space-between; }.plan-editor-datetime { grid-template-columns: 1fr 1fr; }.plan-editor-datetime > label:first-child { grid-column: 1 / -1; }.plan-request-route { grid-template-columns: 38px minmax(0,1fr); }.plan-request-route > div:last-child { grid-column: 2; }.plan-decision-form footer { flex-direction: column-reverse; }.plan-decision-form footer .button { width: 100%; }.plan-detail-facts > div { grid-template-columns: 1fr; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Replace the browser arrow with one consistently inset Lucide chevron. */
select:not([multiple]) {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 38px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 16px 16px !important;
}

@media (max-width: 720px) {
  .visit-workspace-tabs { width: 100%; }
  .visit-workspace-tabs > a { flex: 1; justify-content: center; }
  .visit-export-modal { padding: 0; }
  .visit-export-dialog { width: 100vw; max-height: 100vh; border: 0; border-radius: 0; }
  .visit-export-dialog > form { max-height: calc(100vh - 70px); }
  .visit-export-layout-options,.visit-export-filter-grid { grid-template-columns: 1fr; }
  .visit-export-modal-footer { align-items: stretch; flex-direction: column; }
  .visit-export-modal-footer > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .visit-export-modal-footer .button { width: 100%; }
  .visit-workspace-tabs { overflow-x: auto; }
  .visit-workspace-tabs > a { min-width: 112px; flex: 1 0 112px; }
  .visit-gallery-filter-grid { grid-template-columns: 1fr; }
  .visit-gallery-filter-actions .button { flex: 1; }
  .visit-gallery-head { align-items: flex-start; flex-direction: column; }
  .visit-gallery-view-switcher { width: 100%; overflow-x: auto; }
  .visit-gallery-view-switcher button { flex: 1; }
  .visit-gallery-grid[data-gallery-columns] { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .visit-gallery-grid[data-gallery-columns="list"] { grid-template-columns: 1fr; }
  .visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-item { grid-template-columns: 120px minmax(0,1fr); }
  .visit-gallery-grid[data-gallery-columns="list"] .visit-gallery-photo-button img { height: 108px; }
  .visit-gallery-lightbox { padding: 0; }
  .visit-gallery-lightbox-dialog { width: 100vw; max-height: 100vh; border: 0; border-radius: 0; }
  .visit-gallery-lightbox-dialog > footer { align-items: stretch; flex-direction: column; }
  .visit-gallery-lightbox-dialog > footer .button { width: 100%; }
}
