:root{--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-full:999px;--shadow-none:none;--shadow-sm:0 1px 2px color-mix(in srgb, var(--color-text) 9%, transparent);--shadow-md:0 12px 28px color-mix(in srgb, var(--color-text) 12%, transparent);--transition-fast:.14s ease;--transition-normal:.2s ease;--z-drawer:30;--z-dialog:50;--z-toast:60;--size-sidebar:248px;--size-sidebar-collapsed:72px;--size-topbar:64px;--size-control:38px;color:var(--color-text);background:var(--color-background);font-family:var(--font-sans);font-size:15px}:root,:root[data-theme-mode=light][data-theme-palette=gray]{--color-background:#f6f7f9;--color-background-secondary:#eef1f4;--color-surface:#fff;--color-surface-hover:#f8fafc;--color-surface-active:#eef2f6;--color-text:#18202d;--color-text-secondary:#465365;--color-text-muted:#6b7584;--color-text-disabled:#9aa3af;--color-border:#d9dee7;--color-border-subtle:#e8ebf0;--color-border-strong:#b8c0cc;--color-primary:#303846;--color-primary-hover:#202733;--color-primary-active:#111827;--color-primary-contrast:#fff;--color-success:#157347;--color-warning:#9a6a00;--color-danger:#b42318;--color-info:#1d4ed8;--color-focus:#4f8cff;--color-overlay:#00000070;--color-selection:#dbeafe}:root[data-theme-mode=light][data-theme-palette=blue]{--color-background:#f4f7fb;--color-background-secondary:#eaf1fb;--color-surface:#fff;--color-surface-hover:#f6f9fd;--color-surface-active:#e8f1ff;--color-text:#152033;--color-text-secondary:#40516b;--color-text-muted:#637089;--color-text-disabled:#9aa8ba;--color-border:#d5deea;--color-border-subtle:#e6ecf4;--color-border-strong:#b4c3d6;--color-primary:#2457d6;--color-primary-hover:#1e46ad;--color-primary-active:#173987;--color-primary-contrast:#fff;--color-success:#0f7a4b;--color-warning:#966800;--color-danger:#b42318;--color-info:#1d4ed8;--color-focus:#3b82f6;--color-overlay:#00000070;--color-selection:#dbeafe}:root[data-theme-mode=dark]{--color-background:#101318;--color-background-secondary:#151a21;--color-surface:#191f28;--color-surface-hover:#202735;--color-surface-active:#263041;--color-text:#eef2f7;--color-text-secondary:#c3cbd7;--color-text-muted:#929daf;--color-text-disabled:#6f7988;--color-border:#2b3442;--color-border-subtle:#242c38;--color-border-strong:#3f4b5c;--color-primary:#dbe4f0;--color-primary-hover:#fff;--color-primary-active:#b9c7d8;--color-primary-contrast:#111827;--color-success:#3fbf7f;--color-warning:#e0aa32;--color-danger:#ff6b61;--color-info:#7aa7ff;--color-focus:#8bb7ff;--color-overlay:#00000085;--color-selection:#1e3a5f}:root[data-theme-mode=dark][data-theme-palette=blue]{--color-background:#0d1320;--color-background-secondary:#111a2b;--color-surface:#172033;--color-surface-hover:#1d2a43;--color-surface-active:#223455;--color-border:#273a5b;--color-border-subtle:#20304b;--color-border-strong:#38537d;--color-primary:#8bb7ff;--color-primary-hover:#b7d1ff;--color-primary-active:#6b9df0;--color-primary-contrast:#07111f;--color-info:#8bb7ff}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;overflow-x:hidden}::selection{background:var(--color-selection)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}input,select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);min-height:var(--size-control);padding:var(--space-sm) var(--space-md);width:100%}input::placeholder{color:var(--color-text-muted)}h1,h2,p{margin:0}h1{color:var(--color-text);font-size:1.35rem;font-weight:720;line-height:1.2}h2{color:var(--color-text);font-size:1rem;font-weight:720;line-height:1.3}table{border-collapse:collapse;width:100%;min-width:680px}th,td{border-bottom:1px solid var(--color-border-subtle);padding:var(--space-md);text-align:left;vertical-align:middle}th{color:var(--color-text-muted);text-transform:uppercase;font-size:.76rem;font-weight:760}td{color:var(--color-text-secondary)}tbody tr:hover{background:var(--color-surface-hover)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--color-text-muted);line-height:1.5}.eyebrow{color:var(--color-text-muted);text-transform:uppercase;font-size:.72rem;font-weight:780}.button,.icon-button{border-radius:var(--radius-md);align-items:center;gap:var(--space-sm);min-height:var(--size-control);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;justify-content:center;font-weight:700;display:inline-flex}.button{padding:var(--space-sm) var(--space-lg)}.button.primary{background:var(--color-primary);color:var(--color-primary-contrast)}.button.primary:hover{background:var(--color-primary-hover)}.button.secondary,.button.ghost,.icon-button{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.button.secondary:hover,.button.ghost:hover,.icon-button:hover{background:var(--color-surface-hover);color:var(--color-text)}.button.destructive{background:var(--color-danger);color:var(--color-primary-contrast)}.icon-button{height:var(--size-control);width:var(--size-control);padding:0;position:relative}.login-shell{background:var(--color-background);min-height:100vh;padding:var(--space-xl);place-items:center;display:grid}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:var(--space-lg);max-width:440px;padding:var(--space-2xl);width:100%;display:grid}.auth-header{align-items:flex-start;gap:var(--space-md);display:flex}.brand-mark{background:var(--color-primary);border-radius:var(--radius-lg);color:var(--color-primary-contrast);flex:0 0 40px;place-items:center;width:40px;height:40px;font-weight:820;display:inline-grid}.field{color:var(--color-text-secondary);gap:var(--space-sm);font-size:.9rem;font-weight:700;display:grid}.app-shell{background:var(--color-background);color:var(--color-text);grid-template-columns:var(--size-sidebar) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns var(--transition-normal);display:grid}.app-shell:has(.sidebar.collapsed){grid-template-columns:var(--size-sidebar-collapsed) minmax(0, 1fr)}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border-subtle);min-height:100vh;padding:var(--space-lg);transition:width var(--transition-normal), transform var(--transition-normal);z-index:var(--z-drawer);grid-template-rows:auto 1fr auto auto;display:grid;position:sticky;top:0}.sidebar-header,.sidebar-footer,.nav-item{align-items:center;gap:var(--space-md);min-width:0;display:flex}.sidebar-header{min-height:44px}.sidebar-title,.sidebar-user,.nav-label,.nav-badge{transition:opacity var(--transition-fast), width var(--transition-normal);white-space:nowrap;overflow:hidden}.sidebar-title h1,.sidebar-user strong{color:var(--color-text);font-size:.9rem;line-height:1.2;display:block}.sidebar-user span{color:var(--color-text-muted);margin-top:var(--space-2xs);font-size:.82rem;display:block}.sidebar-nav{gap:var(--space-xs);margin-top:var(--space-xl);place-content:start stretch;display:grid}.nav-item{border-radius:var(--radius-md);color:var(--color-text-secondary);min-height:40px;padding:var(--space-sm) var(--space-md);text-align:left;background:0 0;border:0;width:100%}.nav-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-item.active{background:var(--color-surface-active);color:var(--color-text);font-weight:760}.nav-icon{background:var(--color-background-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);flex:0 0 26px;place-items:center;width:26px;height:26px;font-size:.78rem;display:inline-grid}.avatar{background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text);flex:0 0 34px;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.sidebar-collapse{margin-top:var(--space-lg)}.sidebar.collapsed{padding-inline:var(--space-md)}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .sidebar-user,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-badge{opacity:0;width:0}.sidebar.collapsed .nav-item,.sidebar.collapsed .sidebar-footer,.sidebar.collapsed .sidebar-header{justify-content:center}.app-main{min-width:0}.topbar{background:color-mix(in srgb, var(--color-surface) 94%, transparent);border-bottom:1px solid var(--color-border-subtle);align-items:center;gap:var(--space-lg);min-height:var(--size-topbar);padding:var(--space-md) var(--space-xl);z-index:10;display:flex;position:sticky;top:0}.mobile-menu-button{display:none}.global-search{flex:1;max-width:520px}.topbar-actions{align-items:center;gap:var(--space-sm);min-width:0;margin-left:auto;display:flex}.topbar-menu{min-width:0;display:inline-flex;position:relative}.topbar-tool-button,.user-menu-button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);align-items:center;gap:var(--space-sm);min-height:var(--size-control);min-width:0;padding:var(--space-xs) var(--space-sm);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);display:inline-flex;overflow:hidden}.topbar-tool-button:hover,.user-menu-button:hover{background:var(--color-surface-hover);color:var(--color-text)}.topbar-button-copy,.user-menu-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar-button-copy{color:var(--color-text-muted);text-transform:capitalize;font-size:.82rem}.user-menu-button{max-width:min(240px,30vw)}.user-menu-summary{gap:var(--space-2xs);text-align:left;line-height:1.1;display:grid}.user-menu-summary span,.user-menu-summary strong{text-overflow:ellipsis;overflow:hidden}.user-menu-summary span{color:var(--color-text);font-size:.88rem;font-weight:760}.user-menu-summary strong{color:var(--color-text-muted);font-size:.74rem;font-weight:720}.avatar.compact{flex-basis:28px;width:28px;height:28px}.topbar-dropdown{right:0;top:calc(100% + var(--space-sm));z-index:18}.theme-panel{gap:var(--space-md);min-width:260px}.theme-panel fieldset{gap:var(--space-sm);border:0;min-width:0;margin:0;padding:0;display:grid}.theme-panel legend{color:var(--color-text-muted);text-transform:uppercase;padding:0;font-size:.72rem;font-weight:780}.segmented-control{background:var(--color-background-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);gap:var(--space-2xs);padding:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.segmented-control button{text-align:center;min-height:32px}.segmented-control button.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.user-panel{color:var(--color-text-secondary);gap:var(--space-sm);min-width:220px}.user-panel strong,.user-panel span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-panel strong{color:var(--color-text)}.page-container{gap:var(--space-lg);padding:var(--space-xl);display:grid}.crud-page{gap:var(--space-lg);display:grid}.page-header{align-items:center;gap:var(--space-lg);justify-content:space-between;display:flex}.page-header .muted{margin-top:var(--space-xs)}.page-actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.crud-surface{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-none);gap:var(--space-lg);padding:var(--space-lg);display:grid}.crud-toolbar{align-items:center;gap:var(--space-md);grid-template-columns:minmax(220px,1fr) auto auto;display:grid}.toolbar-filters{min-width:160px}.entity-form{gap:var(--space-md);grid-template-columns:minmax(160px,220px) minmax(220px,1fr);display:grid}.entity-form-wide{grid-template-columns:repeat(4,minmax(140px,1fr))}.table-wrap{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);overflow-x:auto}.badge{border:1px solid var(--color-border-subtle);border-radius:var(--radius-full);min-height:24px;padding:var(--space-2xs) var(--space-sm);align-items:center;font-size:.78rem;font-weight:760;display:inline-flex}.badge.success{background:color-mix(in srgb, var(--color-success) 12%, transparent);color:var(--color-success)}.badge.info{background:color-mix(in srgb, var(--color-info) 12%, transparent);color:var(--color-info)}.badge.muted{background:var(--color-background-secondary);color:var(--color-text-muted)}.row-actions{display:inline-flex;position:relative}.dropdown-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:140px;padding:var(--space-xs);right:0;top:calc(100% + var(--space-xs));z-index:12;display:grid;position:absolute}.dropdown-menu button{border-radius:var(--radius-sm);color:var(--color-text-secondary);min-height:34px;padding:var(--space-sm) var(--space-md);text-align:left;background:0 0;border:0}.dropdown-menu button:hover{background:var(--color-surface-hover);color:var(--color-text)}.dropdown-menu .destructive-menu-item{color:var(--color-danger)}.alert,.toast{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.alert{padding:var(--space-md)}.alert.danger{background:color-mix(in srgb, var(--color-danger) 10%, var(--color-surface));border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border));color:var(--color-danger)}.toast{background:var(--color-surface);box-shadow:var(--shadow-md);align-items:center;gap:var(--space-md);max-width:min(460px,100vw - 32px);padding:var(--space-md);right:var(--space-lg);top:calc(var(--size-topbar) + var(--space-lg));z-index:var(--z-toast);justify-content:space-between;display:flex;position:fixed}.toast.success{border-color:color-mix(in srgb, var(--color-success) 35%, var(--color-border))}.toast.danger{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border))}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius-lg);align-items:center;gap:var(--space-sm);padding:var(--space-2xl);text-align:center;justify-items:center;display:grid}.skeleton-table{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);gap:var(--space-sm);padding:var(--space-lg);display:grid}.skeleton-table span{background:linear-gradient(90deg, var(--color-background-secondary), var(--color-surface-hover), var(--color-background-secondary));border-radius:var(--radius-md);height:38px}.dialog-backdrop,.drawer-backdrop{background:var(--color-overlay);position:fixed;inset:0}.dialog-backdrop{padding:var(--space-lg);z-index:var(--z-dialog);place-items:center;display:grid}.dialog-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);gap:var(--space-xl);max-width:460px;padding:var(--space-xl);width:100%;display:grid}.entity-dialog-panel{max-width:760px}.dialog-panel .muted{margin-top:var(--space-sm)}.dialog-actions{gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.drawer-backdrop{z-index:20}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important}}@media (width<=980px){:is(.app-shell,.app-shell:has(.sidebar.collapsed)){grid-template-columns:1fr}.sidebar{width:82vw;max-width:300px;position:fixed;top:0;bottom:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .sidebar-user,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-badge{opacity:1;width:auto}.sidebar.collapsed .nav-item,.sidebar.collapsed .sidebar-footer,.sidebar.collapsed .sidebar-header{justify-content:flex-start}.sidebar-collapse{display:none}.mobile-menu-button{display:inline-flex}.topbar{padding-inline:var(--space-lg)}}@media (width<=760px){:root{--size-topbar:58px}.topbar{gap:var(--space-sm);padding-inline:var(--space-md)}.global-search{display:none}.topbar-actions{flex:1;justify-content:flex-end;margin-left:0;overflow:visible}.topbar-button-copy,.user-menu-summary{display:none}.topbar-tool-button,.user-menu-button{padding-inline:var(--space-sm)}.theme-panel{min-width:min(260px,100vw - 32px);right:calc(-1 * (var(--size-control) + var(--space-sm)))}.user-panel{min-width:min(220px,100vw - 32px)}.page-container{padding:var(--space-lg)}.page-header{align-items:stretch;display:grid}.page-actions,.page-actions .button{width:100%}.crud-toolbar,.entity-form,.entity-form-wide{grid-template-columns:1fr}.toast{bottom:var(--space-lg);right:var(--space-lg);top:auto}}
