@font-face{font-family:Conthrax;src:url(/fonts/Conthrax.ttf)format("truetype");font-weight:400;font-style:normal}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-app:#f8fafc;--color-bg-elevated:#f1f5f9;--color-surface-1:#fff;--color-surface-2:#f8fafc;--color-surface-3:#f1f5f9;--color-text-primary:#1a1a1a;--color-text-strong:#1a1a1a;--color-text-secondary:#334155;--color-text-muted:#475569;--color-text-inverse:#fff;--color-border-default:#94a3b8;--color-border-soft:#64748b;--color-border-strong:#475569;--color-border-muted:#e2e8f0;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-weak:#dbeafe;--color-success:#22c55e;--color-success-hover:#16a34a;--color-success-weak:#dcfce7;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-weak:#fee2e2;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-weak:#fef3c7;--color-info:#2563eb;--color-info-weak:#dbeafe;--color-download:#0891b2;--color-download-hover:#0e7490;--color-state-success-bg:#f0fdf4;--color-state-success-border:#bbf7d0;--color-state-success-text:#15803d;--color-state-danger-bg:#fef2f2;--color-state-danger-border:#fecaca;--color-state-danger-text:#b91c1c;--color-state-warning-bg:#fefce8;--color-state-warning-border:#fef08a;--color-state-warning-text:#a16207;--color-nav-bg:#101828;--color-nav-text:#d1d9e6;--color-nav-muted:#aab6c8;--color-nav-hover-bg:#ffffff1a;--color-nav-active-bg:#3b82f661;--color-nav-active-bg-hover:#3b82f680;--color-nav-active-text:#f8fafc;--color-nav-divider:#ffffff24;--detail-panel-bg:var(--surface);--detail-panel-header-bg:var(--surface-soft);--detail-panel-border:var(--border);--detail-panel-meta-bg:var(--surface-soft);--detail-panel-meta-border:var(--border-soft);--detail-panel-meta-shadow:inset 0 0 0 1px #ffffff40;--detail-panel-title:var(--text-primary);--detail-panel-label:var(--text-secondary);--detail-panel-value:var(--text-strong);--dashboard-card-bg:var(--surface);--dashboard-card-border:var(--border);--dashboard-card-title:var(--text-secondary);--dashboard-card-value:var(--text-primary);--color-overlay:#0d11176b;--color-focus-ring:#2563eb73;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:999px;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:28px;--space-4xl:36px;--shadow-card:0 10px 28px #0f172a14, 0 0 0 1px #0f172a0a;--shadow-card-hover:0 14px 32px #0f172a1f, 0 0 0 1px #0f172a0f;--shadow-modal:0 25px 50px #0f172a24, 0 0 0 1px #0f172a0f;--shadow-toast:0 14px 32px #02061733;--shadow-panel:0 16px 36px #0f172a29;--shadow-icon-btn:0 1px 2px #0f172a14, 0 1px 3px #0f172a0f;--duration-fast:.12s;--duration-normal:.18s;--duration-slow:.26s;--easing-standard:cubic-bezier(.2, .8, .2, 1);--selected-row-bg:#2563eb24;--selected-row-bg-hover:#2563eb33;--selected-row-accent:#2563ebd1;--primary:var(--color-primary);--primary-hover:var(--color-primary-hover);--success:var(--color-success);--success-hover:var(--color-success-hover);--danger:var(--color-danger);--danger-hover:var(--color-danger-hover);--warning:var(--color-warning);--warning-hover:var(--color-warning-hover);--text-primary:var(--color-text-primary);--text-strong:var(--color-text-strong);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--text-inverse:var(--color-text-inverse);--bg-app:var(--color-bg-app);--surface:var(--color-surface-1);--surface-soft:var(--color-surface-2);--surface-hover:var(--color-surface-3);--border:var(--color-border-default);--border-soft:var(--color-border-soft);--bg-primary:var(--color-bg-app);--bg-surface:var(--color-surface-1);--bg-elevated:var(--color-bg-elevated);--text-main:var(--color-text-primary);--text-subdued:var(--color-text-secondary);--scrollbar-track:transparent;--scrollbar-thumb:#94a3b873;--scrollbar-thumb-hover:#64748bd9;--table-divider:color-mix(in srgb, var(--color-border-default) 55%, var(--color-surface-1));--table-header-bg:#e2e8f0;--table-search-bg:#fff;--panel-border-color:color-mix(in srgb, var(--color-border-default) 92%, var(--color-surface-1));--panel-border-color-hover:var(--color-border-strong);--panel-bg-hover:color-mix(in srgb, var(--color-surface-1) 92%, var(--color-bg-app));--panel-shadow:0 1px 3px #0f172a1a;--panel-shadow-hover:0 4px 14px #0f172a24;--stat-card-bg:color-mix(in srgb, var(--dashboard-card-bg) 94%, var(--color-bg-app));--stat-card-bg-hover:color-mix(in srgb, var(--dashboard-card-bg) 98%, var(--color-bg-app));--stat-card-border-color:color-mix(in srgb, var(--color-border-default) 88%, transparent);--stat-card-border-color-hover:var(--color-border-strong);--stat-card-shadow:var(--panel-shadow);--stat-card-shadow-hover:var(--panel-shadow-hover)}@media (prefers-color-scheme:dark){:root:not(.theme-light):not(.theme-dark){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-app:#0f172a;--color-bg-elevated:#111827;--color-surface-1:#111827;--color-surface-2:#202d3f;--color-surface-3:#28364a;--color-text-primary:#f8fafc;--color-text-strong:#dbe7f4;--color-text-secondary:#b4c5d8;--color-text-muted:#8fa4bd;--color-text-inverse:#0f172a;--color-border-default:#30445c;--color-border-soft:#3a506c;--color-border-strong:#496584;--color-border-muted:#94a3b838;--color-primary:#60a5fa;--color-primary-hover:#3b82f6;--color-primary-weak:#3b82f633;--color-success:#34d399;--color-success-hover:#10b981;--color-success-weak:#10b98133;--color-danger:#f87171;--color-danger-hover:#ef4444;--color-danger-weak:#ef444433;--color-warning:#fbbf24;--color-warning-hover:#f59e0b;--color-warning-weak:#f59e0b33;--color-info:#60a5fa;--color-info-weak:#60a5fa33;--color-download:#22d3ee;--color-download-hover:#06b6d4;--color-state-success-bg:#10b98129;--color-state-success-border:#34d3995c;--color-state-success-text:#86efac;--color-state-danger-bg:#ef444429;--color-state-danger-border:#f871715c;--color-state-danger-text:#fca5a5;--color-state-warning-bg:#f59e0b2e;--color-state-warning-border:#fbbf2466;--color-state-warning-text:#fcd34d;--color-nav-bg:#0b1220;--color-nav-text:#dbe7f4;--color-nav-muted:#97abc2;--color-nav-hover-bg:#94a3b829;--color-nav-active-bg:#60a5fa52;--color-nav-active-bg-hover:#60a5fa6b;--color-nav-active-text:#f8fafc;--color-nav-divider:#94a3b838;--detail-panel-bg:#162235;--detail-panel-header-bg:#1b2a40;--detail-panel-border:#324966;--detail-panel-meta-bg:#1d2d45;--detail-panel-meta-border:#436081;--detail-panel-meta-shadow:inset 0 0 0 1px #bfdbfe14;--detail-panel-title:#f8fafc;--detail-panel-label:#9fb3ca;--detail-panel-value:#dbe7f4;--dashboard-card-bg:#162235;--dashboard-card-border:#2f425f;--dashboard-card-title:#b7c7db;--dashboard-card-value:#f8fafc;--color-overlay:#0206179e;--color-focus-ring:#60a5fa6b;--shadow-card:0 14px 28px #0206174d;--shadow-card-hover:0 18px 36px #0206175c;--shadow-modal:0 26px 74px #02061780;--shadow-toast:0 16px 36px #02061766;--shadow-panel:0 20px 40px #02061766;--shadow-icon-btn:0 2px 10px #02061780;--selected-row-bg:#60a5fa38;--selected-row-bg-hover:#60a5fa4d;--selected-row-accent:#60a5faf2;--scrollbar-track:#0f172a;--scrollbar-thumb:#33415559;--scrollbar-thumb-hover:#475569;--table-divider:var(--color-surface-3);--table-header-bg:var(--color-surface-2);--table-search-bg:var(--color-surface-2);--panel-border-color:var(--dashboard-card-border);--panel-border-color-hover:var(--color-border-strong);--panel-bg-hover:color-mix(in srgb, var(--dashboard-card-bg) 90%, var(--color-bg-app));--panel-shadow:var(--shadow-card);--panel-shadow-hover:var(--shadow-card-hover);--stat-card-bg:var(--dashboard-card-bg);--stat-card-bg-hover:color-mix(in srgb, var(--dashboard-card-bg) 86%, var(--color-bg-app));--stat-card-border-color:var(--dashboard-card-border);--stat-card-border-color-hover:var(--color-border-strong);--stat-card-shadow:var(--shadow-card);--stat-card-shadow-hover:var(--shadow-card-hover)}}:root.theme-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-app:#0f172a;--color-bg-elevated:#111827;--color-surface-1:#111827;--color-surface-2:#202d3f;--color-surface-3:#28364a;--color-text-primary:#f8fafc;--color-text-strong:#dbe7f4;--color-text-secondary:#b4c5d8;--color-text-muted:#8fa4bd;--color-text-inverse:#0f172a;--color-border-default:#30445c;--color-border-soft:#3a506c;--color-border-strong:#496584;--color-border-muted:#94a3b838;--color-primary:#60a5fa;--color-primary-hover:#3b82f6;--color-primary-weak:#3b82f633;--color-success:#34d399;--color-success-hover:#10b981;--color-success-weak:#10b98133;--color-danger:#f87171;--color-danger-hover:#ef4444;--color-danger-weak:#ef444433;--color-warning:#fbbf24;--color-warning-hover:#f59e0b;--color-warning-weak:#f59e0b33;--color-info:#60a5fa;--color-info-weak:#60a5fa33;--color-download:#22d3ee;--color-download-hover:#06b6d4;--color-state-success-bg:#10b98129;--color-state-success-border:#34d3995c;--color-state-success-text:#86efac;--color-state-danger-bg:#ef444429;--color-state-danger-border:#f871715c;--color-state-danger-text:#fca5a5;--color-state-warning-bg:#f59e0b2e;--color-state-warning-border:#fbbf2466;--color-state-warning-text:#fcd34d;--color-nav-bg:#0b1220;--color-nav-text:#dbe7f4;--color-nav-muted:#97abc2;--color-nav-hover-bg:#94a3b829;--color-nav-active-bg:#60a5fa52;--color-nav-active-bg-hover:#60a5fa6b;--color-nav-active-text:#f8fafc;--color-nav-divider:#94a3b838;--detail-panel-bg:#162235;--detail-panel-header-bg:#1b2a40;--detail-panel-border:#324966;--detail-panel-meta-bg:#1d2d45;--detail-panel-meta-border:#436081;--detail-panel-meta-shadow:inset 0 0 0 1px #bfdbfe14;--detail-panel-title:#f8fafc;--detail-panel-label:#9fb3ca;--detail-panel-value:#dbe7f4;--dashboard-card-bg:#162235;--dashboard-card-border:#2f425f;--dashboard-card-title:#b7c7db;--dashboard-card-value:#f8fafc;--color-overlay:#0206179e;--color-focus-ring:#60a5fa6b;--shadow-card:0 14px 28px #0206174d;--shadow-card-hover:0 18px 36px #0206175c;--shadow-modal:0 26px 74px #02061780;--shadow-toast:0 16px 36px #02061766;--shadow-panel:0 20px 40px #02061766;--shadow-icon-btn:0 2px 10px #02061780;--selected-row-bg:#60a5fa38;--selected-row-bg-hover:#60a5fa4d;--selected-row-accent:#60a5faf2;--scrollbar-track:#0f172a;--scrollbar-thumb:#33415559;--scrollbar-thumb-hover:#475569;--table-divider:var(--color-surface-3);--table-header-bg:var(--color-surface-2);--table-search-bg:var(--color-surface-2);--panel-border-color:var(--dashboard-card-border);--panel-border-color-hover:var(--color-border-strong);--panel-bg-hover:color-mix(in srgb, var(--dashboard-card-bg) 90%, var(--color-bg-app));--panel-shadow:var(--shadow-card);--panel-shadow-hover:var(--shadow-card-hover);--stat-card-bg:var(--dashboard-card-bg);--stat-card-bg-hover:color-mix(in srgb, var(--dashboard-card-bg) 86%, var(--color-bg-app));--stat-card-border-color:var(--dashboard-card-border);--stat-card-border-color-hover:var(--color-border-strong);--stat-card-shadow:var(--shadow-card);--stat-card-shadow-hover:var(--shadow-card-hover)}:root.theme-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-app:#f8fafc;--color-bg-elevated:#f1f5f9;--color-surface-1:#fff;--color-surface-2:#f8fafc;--color-surface-3:#f1f5f9;--color-text-primary:#1a1a1a;--color-text-strong:#1a1a1a;--color-text-secondary:#334155;--color-text-muted:#475569;--color-border-default:#94a3b8;--color-border-soft:#64748b;--color-border-strong:#475569;--color-border-muted:#e2e8f0;--color-focus-ring:#2563eb73}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{background:var(--bg-primary,var(--bg-app));color:var(--text-main,var(--text-primary));text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--duration-normal) var(--easing-standard), color var(--duration-normal) var(--easing-standard);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--radius-pill);transition:background-color var(--duration-fast) var(--easing-standard);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}:focus-visible{outline:2px solid var(--primary-hover);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.layout{min-height:100vh;display:flex}.sidebar{background:var(--color-nav-bg);width:240px;color:var(--color-nav-text);z-index:100;height:100vh;transition:width var(--duration-slow) var(--easing-standard), transform var(--duration-slow) var(--easing-standard);border-right:none;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:visible;box-shadow:0 20px 48px #0206176b}.sidebar-rail-handle{z-index:102;pointer-events:none;line-height:0;display:none;position:absolute;top:22px;right:0;transform:translate(50%)}.sidebar-rail-handle .sidebar-rail-toggle{pointer-events:auto}.sidebar-rail-toggle{border:1px solid color-mix(in srgb, var(--primary) 42%, var(--color-nav-text) 28%);background:color-mix(in srgb, var(--color-nav-bg) 88%, var(--primary) 12%);width:28px;height:28px;color:var(--color-nav-active-text);cursor:pointer;box-shadow:0 2px 16px #0206177a, inset 0 1px 0 color-mix(in srgb, var(--color-nav-text) 14%, transparent);transition:background var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.sidebar-rail-toggle:hover{border-color:color-mix(in srgb, var(--primary) 58%, transparent);box-shadow:0 3px 20px #0206178c, 0 0 0 1px color-mix(in srgb, var(--primary) 22%, transparent), inset 0 1px 0 color-mix(in srgb, var(--color-nav-text) 18%, transparent);transform:scale(1.05)}.sidebar-rail-toggle:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring), 0 2px 16px #0206177a;outline:none}.sidebar-header{border-bottom:1px solid var(--color-nav-divider);padding:22px 20px 18px}.sidebar-header h2{color:var(--color-nav-text);text-align:center;font-size:1.5rem;font-weight:600}.app-logo{letter-spacing:1px;justify-content:center;align-items:center;gap:var(--space-sm);font-family:Conthrax,sans-serif;display:flex}.brand-face{color:color-mix(in srgb, var(--text-secondary) 88%, var(--surface))}.brand-ex{color:var(--primary)}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.sidebar-nav a{box-shadow:none;color:var(--color-nav-text);transition:background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard);border:none;border-radius:8px;outline:none;align-items:center;gap:12px;margin:2px 8px;padding:10px 12px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-nav-icon{opacity:.9;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-nav a.active .sidebar-nav-icon{opacity:1;color:var(--color-nav-active-text)}.sidebar-nav-label{min-width:0}.sidebar-nav a:hover{background:var(--color-nav-hover-bg);color:var(--color-nav-text)}.sidebar-nav a.active{background:var(--color-nav-active-bg);color:var(--color-nav-active-text);font-weight:600}.sidebar-nav a.active:before{content:"";background:var(--primary);width:3px;height:22px;box-shadow:0 0 10px color-mix(in srgb, var(--primary) 75%, transparent), 0 0 22px color-mix(in srgb, var(--primary) 40%, transparent);pointer-events:none;border-radius:0 3px 3px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-nav a.active:hover{background:var(--color-nav-active-bg-hover);color:var(--color-nav-active-text)}.sidebar-footer{border-top:1px solid var(--color-nav-divider);padding:16px 20px}.layout-main-column{min-width:0;transition:margin-left var(--duration-slow) var(--easing-standard);flex-direction:column;flex:1;margin-left:240px;display:flex}.app-top-header{padding:8px var(--space-3xl);background:var(--bg-app);-webkit-backdrop-filter:blur(12px)saturate(1.1);z-index:20;border-bottom:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;min-height:44px;display:flex;position:sticky;top:0}.app-top-header-actions{align-items:center;gap:10px;margin-left:auto;display:inline-flex}.user-menu{position:relative}.user-menu-trigger{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-icon-btn);transition:background var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);align-items:center;gap:6px;padding:4px 6px 4px 4px;display:inline-flex}.user-menu-trigger:hover{background:var(--surface-soft);border-color:var(--color-border-strong);transform:translateY(-1px)}.user-menu-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--primary) 45%, var(--border));box-shadow:0 0 0 3px var(--color-focus-ring)}.user-menu-avatar{letter-spacing:.02em;background:color-mix(in srgb, var(--primary) 22%, var(--surface-soft));width:30px;height:30px;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.user-menu-chevron{opacity:.65;flex-shrink:0}.user-menu-dropdown{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);min-width:200px;box-shadow:var(--shadow-panel);z-index:200;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.user-menu-meta{border-bottom:1px solid var(--border);margin-bottom:6px;padding:8px 10px 10px}.user-menu-name{color:var(--text-strong);word-break:break-word;font-size:.9rem;font-weight:600;display:block}.user-menu-role{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-top:4px;font-size:.68rem;display:block}.user-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--easing-standard);background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:.875rem;font-weight:500;display:inline-flex}.user-menu-item:hover{background:var(--surface-soft)}.main-content{padding:var(--space-sm) var(--space-3xl) var(--space-3xl);flex:1;min-height:0;margin-left:0}@media (width>=769px){.sidebar-rail-handle{display:block}.layout-sidebar-collapsed .sidebar{width:72px}.layout-sidebar-collapsed .layout-main-column{margin-left:72px}.layout-sidebar-collapsed .sidebar-header{padding:22px 10px 16px}.layout-sidebar-collapsed .sidebar-rail-handle{top:20px}.layout-sidebar-collapsed .app-logo-text{display:none}.layout-sidebar-collapsed .sidebar-nav a{justify-content:center;margin:2px 6px;padding:10px 8px}.layout-sidebar-collapsed .sidebar-nav a.active:before{height:24px;left:2px}.layout-sidebar-collapsed .sidebar-nav-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.layout-sidebar-collapsed .powered-footer{display:none}.layout-sidebar-collapsed .sidebar-footer{padding:12px 10px 16px}}.login-page{background:var(--bg-app);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-card);text-align:center;width:100%;max-width:400px;padding:40px}.login-card .form-group{text-align:left}.login-shell{flex-direction:column;align-items:center;width:100%;max-width:400px;display:flex}.login-logo-row{letter-spacing:1px;justify-content:center;align-items:center;gap:10px;margin-bottom:18px;font-family:Conthrax,sans-serif;font-size:2.4rem;font-weight:700;display:flex}.login-card h1{margin-bottom:4px;font-size:1.5rem}.login-brand{letter-spacing:.05em;font-family:Conthrax,sans-serif;font-size:2.15rem}.login-card p{color:var(--text-secondary);margin-bottom:24px;font-size:.9rem}.login-keep-logged-in{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin:4px 0 12px;font-size:.85rem;display:flex}.login-powered-footer{margin-top:24px}.login-step-hint{text-align:left;color:var(--text-secondary);margin-bottom:12px;font-size:.9rem}.login-setup-btn{width:100%;margin-top:8px}.login-verify-btn-spaced{margin-top:10px}.login-setup-modal-content p{color:var(--text-secondary);margin:0 0 12px}.login-setup-qr-wrap{justify-content:center;margin-bottom:12px;display:flex}.login-setup-key-wrap{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.login-setup-key-wrap code{overflow-wrap:anywhere;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-soft);width:100%;padding:8px 10px;display:block}.users-2fa-panel{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.users-2fa-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.users-2fa-header h4{margin:0;font-size:.95rem}.users-2fa-status{border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:700}.users-2fa-status.enabled{color:#166534;background:#dcfce7}.users-2fa-status.disabled{color:var(--text-secondary);background:var(--surface-soft)}.users-2fa-actions{margin-top:8px}.users-2fa-toggle{color:var(--text-strong);align-items:center;gap:10px;font-size:.9rem;display:inline-flex}.users-2fa-toggle input{opacity:0;width:0;height:0;position:absolute}.users-2fa-slider{background:color-mix(in srgb, var(--text-secondary) 24%, transparent);border:1px solid color-mix(in srgb, var(--text-strong) 30%, transparent);width:42px;height:24px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--surface) 65%, transparent);transition:background var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);border-radius:999px;position:relative}.users-2fa-slider:before{content:"";background:var(--surface);border:1px solid color-mix(in srgb, var(--text-strong) 22%, transparent);width:18px;height:18px;transition:transform var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.users-2fa-toggle input:checked+.users-2fa-slider{box-shadow:none;background:#22c55e;border-color:#22c55e}.users-2fa-toggle input:checked+.users-2fa-slider:before{transform:translate(18px)}.users-2fa-toggle input:disabled+.users-2fa-slider{opacity:.6}.users-2fa-toggle input:focus-visible+.users-2fa-slider{box-shadow:0 0 0 3px var(--color-focus-ring), inset 0 0 0 1px color-mix(in srgb, var(--surface) 65%, transparent)}.users-sessions-panel{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.users-sessions-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.users-sessions-header h4{margin:0;font-size:.95rem}.users-sessions-count{color:var(--text-secondary);font-size:.78rem;font-weight:600}.users-sessions-hint{color:var(--text-secondary);margin:0 0 10px;font-size:.8rem;line-height:1.45}.users-sessions-empty{margin:0;font-size:.88rem}.users-session-count-cell{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.users-sessions-table-wrap{margin-top:4px}.users-sessions-table{font-size:.82rem}.users-sessions-table th,.users-sessions-table td{vertical-align:top;padding:6px 8px}.users-sessions-status{border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:700}.users-sessions-status.active{color:#166534;background:#dcfce7}.users-sessions-status.expired{color:#991b1b;background:#fee2e2}.login-password-field{position:relative}.form-group .login-password-input{padding-right:40px}.login-password-field .clearable-input-wrapper.has-clear>.login-password-input{padding-right:68px}.login-password-field .clear-input-btn{top:50%;right:8px;transform:translateY(-50%)}.login-password-toggle{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-password-field .clearable-input-wrapper.has-clear+.login-password-toggle{right:36px}.login-password-toggle:hover{color:var(--text-strong)}.login-password-toggle:focus-visible{border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.app-theme-toggle{border:1px solid var(--border-strong);background:var(--surface);width:36px;height:36px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-icon-btn);transition:transform var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.app-theme-toggle:hover{background:var(--surface-soft);border-color:var(--color-border-strong);color:var(--text-primary);box-shadow:var(--shadow-card);transform:translateY(-1px)}.app-theme-toggle:active{transform:translateY(0)}.login-theme-switch{z-index:180;position:fixed;top:14px;right:18px}.page{max-width:1280px}.page-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.page-header h1{letter-spacing:-.01em;color:var(--text-primary);font-size:1.55rem;font-weight:650}.epp-page-header{align-items:flex-start}.epp-tab-toggle{margin-top:10px}.epp-page .page-header.epp-page-header{margin-bottom:var(--space-md)}.epp-page .epp-section-head{align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;max-width:640px;display:flex}.epp-page .epp-section-subtitle{margin-top:0;margin-bottom:0}.epp-page .epp-section-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.epp-page .epp-table-search.table-search{padding:0 0 var(--space-md);border-bottom:none}.epp-page .epp-table-search .clearable-input-wrapper{max-width:min(560px,100%)}.epp-page table{width:100%}.page-header-actions{align-items:center;gap:10px;display:flex}.page-subtitle{color:var(--text-subdued,var(--text-secondary));margin-top:-10px;margin-bottom:var(--space-xl);font-size:.95rem}.page-primary-action{margin-bottom:var(--space-lg)}.page-meta-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-soft);color:var(--text-secondary);align-items:center;padding:6px 10px;font-size:.8rem;font-weight:500;display:inline-flex}.btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard);border:none;align-items:center;gap:6px;font-size:.875rem;font-weight:500;line-height:1.4;display:inline-flex;box-shadow:0 1px #ffffff0d}.btn .icon{flex-shrink:0}.btn:focus-visible,.modal-close:focus-visible,.checkbox-toggle-links button:focus-visible,.table-search input:focus-visible,.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible,.filter-group input:focus-visible,.filter-group select:focus-visible,.toggle-btn:focus-visible,.app-theme-toggle:focus-visible,.user-menu-trigger:focus-visible,.user-menu-item:focus-visible,.toast-close:focus-visible,.sidebar-nav a:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.sidebar-nav a.active:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring)}.btn:disabled{opacity:.62;cursor:not-allowed;filter:saturate(.8)}.btn.btn-busy:disabled,.btn[aria-busy=true]:disabled{opacity:1;filter:none;cursor:wait;pointer-events:none}.btn-primary.btn-busy:disabled,.btn-primary[aria-busy=true]:disabled{box-shadow:0 0 0 2px color-mix(in srgb, var(--text-inverse) 42%, transparent), 0 1px 0 #ffffff0f}.btn .icon.spin{animation:.75s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb59}.btn-secondary{background:var(--surface-soft);color:var(--text-primary);border:1px solid var(--border-strong);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--color-text-secondary);color:var(--text-strong);transform:translateY(-1px);box-shadow:0 1px 3px #0f172a1f}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-hover);transform:translateY(-1px);box-shadow:0 4px 14px #16a34a59}.btn-danger{background:var(--danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:var(--danger-hover);transform:translateY(-1px);box-shadow:0 4px 14px #dc262659}.btn-download{background:var(--color-download);color:#fff;border:none;box-shadow:inset 0 1px #ffffff1f}.btn-download:hover:not(:disabled){background:var(--color-download-hover);box-shadow:0 4px 14px color-mix(in srgb, var(--color-download) 42%, transparent), 0 1px 0 #ffffff1a inset;transform:translateY(-1px)}.btn-full{justify-content:center;width:100%;padding:10px 16px}.btn-sm{padding:4px 10px;font-size:.8rem}.btn-edit{background:var(--warning);color:var(--text-inverse);margin-right:6px}.btn-edit:hover{background:var(--warning-hover);transform:translateY(-1px)}.btn-delete{background:var(--danger);color:var(--text-inverse)}.btn-delete:hover{background:var(--danger-hover);transform:translateY(-1px)}.table-wrapper{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--panel-border-color);box-shadow:var(--panel-shadow);transition:background var(--duration-normal) var(--easing-standard), border-color var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard);overflow-x:auto}.table-wrapper:hover{background:var(--panel-bg-hover);border-color:var(--panel-border-color-hover);box-shadow:var(--panel-shadow-hover)}.table-search{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--table-divider)}.table-search input,.table-search .clearable-input-wrapper>input{border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--table-search-bg);width:100%;max-width:320px;color:var(--text-primary);padding:9px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:0 1px 3px #0f172a14}.table-search input::placeholder,.table-search .clearable-input-wrapper>input::placeholder{color:var(--text-secondary);opacity:1}.table-search input:hover:not(:focus),.table-search .clearable-input-wrapper>input:hover:not(:focus){border-color:var(--color-text-secondary);background:var(--surface);box-shadow:0 2px 6px #0f172a1a}.table-search input:focus,.table-search .clearable-input-wrapper>input:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--color-focus-ring), 0 1px 3px #0f172a14;background:var(--surface);outline:none}.clearable-input-wrapper{width:100%;max-width:100%;position:relative}.table-search .clearable-input-wrapper{max-width:320px}.checkbox-controls .clearable-input-wrapper{flex:0 0 130px;width:130px}.clearable-input-wrapper>input{width:100%}.clearable-input-wrapper.has-clear>input{padding-right:38px}.clear-input-btn{border-radius:var(--radius-pill);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;z-index:1;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:500;line-height:1;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.clear-input-btn:hover{color:var(--text-strong);background:0 0}.clear-input-btn:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}table{border-collapse:collapse;width:100%}tbody tr{transition:background var(--duration-fast) var(--easing-standard)}th{text-align:left;background:var(--table-header-bg);border-bottom:2px solid var(--border);text-transform:uppercase;letter-spacing:.03em;color:var(--text-primary);white-space:nowrap;padding:11px 16px;font-size:.8rem;font-weight:600}th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}th.sortable-th:hover{color:var(--text-strong)}.sort-indicator{color:var(--primary);font-size:.65rem}td{border-bottom:1px solid var(--table-divider);padding:10px 16px;font-size:.875rem}tr:hover{background:var(--surface-soft)}td.actions{white-space:nowrap}td.empty{text-align:center;color:var(--text-muted);padding:40px}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:.85rem;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text-primary);padding:8px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s,background .15s}.form-group input:hover:not(:disabled):not(:focus),.form-group select:hover:not(:disabled):not(:focus),.form-group textarea:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.form-group input[type=file]{padding:6px}.form-group input[type=checkbox]{width:auto;padding:0}.password-visibility-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);width:36px;height:36px;color:var(--text-primary);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard);justify-content:center;align-items:center;display:inline-flex}.password-visibility-toggle:hover{background:var(--surface-hover);border-color:var(--color-border-strong)}.password-visibility-toggle:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.form-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.alert{border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 14px;font-size:.875rem}.alert-error{background:var(--color-state-danger-bg);color:var(--color-state-danger-text);border:1px solid var(--color-state-danger-border)}.alert-success{background:var(--color-state-success-bg);color:var(--color-state-success-text);border:1px solid var(--color-state-success-border)}.modal-overlay{background:var(--color-overlay);z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-modal);border:1px solid var(--border);animation:modal-pop var(--duration-slow) var(--easing-standard);overflow-y:auto}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-sm{max-width:380px}.modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-header h3{color:var(--text-primary);font-size:1.05rem;font-weight:600}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:1.4rem;line-height:1}.modal-close:hover{color:var(--text-strong)}.modal-body{padding:20px}.confirm-message{color:var(--text-strong);margin-bottom:var(--space-lg)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.loading{text-align:center;color:var(--text-muted);padding:40px;font-size:.9rem}.checkbox-label-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.checkbox-label-row label{margin-bottom:0!important}.checkbox-controls{align-items:center;gap:6px;display:flex}.checkbox-search{height:28px;width:130px!important;padding:5px 8px!important;font-size:.78rem!important}.checkbox-toggle-links{gap:4px;display:flex}.checkbox-toggle-links button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.78rem;font-weight:500}.checkbox-toggle-links button:hover{text-decoration:underline}.checkbox-list{border:1px solid var(--border-soft);border-radius:var(--radius-sm);max-height:180px;padding:8px 10px;overflow-y:auto}.form-group label.checkbox-item{cursor:pointer;border-radius:4px;align-items:center;margin-bottom:0;padding:5px 4px;font-size:.84rem;line-height:16px;transition:background .1s;display:flex}.form-group label.checkbox-item:hover{background:var(--surface-hover)}.checkbox-item input[type=checkbox]{cursor:pointer;min-width:16px;accent-color:var(--primary);flex-shrink:0;width:16px!important;height:16px!important;margin:0 12px 0 0!important;padding:0!important}.checkbox-item span{align-items:center;display:inline-flex}.device-group-bulk-intro{margin-bottom:10px}.device-group-bulk-intro .text-muted{margin-bottom:0}.device-group-bulk-panel{border-radius:var(--radius-md);border:1px solid var(--border-soft);background:var(--surface-soft);margin-bottom:14px;padding:12px 14px 14px;box-shadow:inset 0 1px #ffffff0a}.device-group-bulk-row{border-bottom:1px solid var(--border-soft);margin-bottom:12px;padding-bottom:12px}.device-group-bulk-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.device-group-bulk-master{margin-bottom:2px}.device-group-bulk-nested{flex-direction:column;gap:6px;margin-top:6px;margin-left:0;padding:0;transition:opacity .15s;display:flex}.device-group-bulk-nested--disabled{opacity:.48;pointer-events:none}.device-group-bulk-field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 2px;font-size:.72rem;font-weight:600;display:block}p.device-group-bulk-field-label--static{margin:0 0 4px}.device-group-bulk-control{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;max-width:100%;color:var(--text-primary);padding:8px 12px;font-size:.875rem}.device-group-bulk-control:hover:not(:disabled){border-color:var(--color-border-strong)}.device-group-bulk-control:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.device-group-bulk-control:disabled{opacity:.65;cursor:not-allowed}.dashboard-stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.stat-card{background:var(--stat-card-bg);border-radius:var(--radius-md);border:1px solid var(--stat-card-border-color);box-shadow:var(--stat-card-shadow);transition:transform var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);padding:18px}a.stat-card{color:inherit;cursor:pointer;text-decoration:none}a.stat-card:visited{color:inherit}a.stat-card:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring), var(--stat-card-shadow-hover);outline:none}.stat-card:hover{background:var(--stat-card-bg-hover);border-color:var(--stat-card-border-color-hover);box-shadow:var(--stat-card-shadow-hover);transform:translateY(-1px)}.stat-card h3{text-transform:uppercase;letter-spacing:.04em;color:var(--dashboard-card-title);margin-bottom:6px;font-size:.75rem;font-weight:600}.stat-card .value{color:var(--dashboard-card-value);font-size:1.8rem;font-weight:700}.version-stat-card{box-shadow:var(--stat-card-shadow);background:#ffdcb4;border:1px solid #f2a65a8c}.version-stat-card:hover{box-shadow:var(--stat-card-shadow-hover);background:#ffdbb0;border-color:#f2a65ab3}.version-stat-card h3{color:#7a3c00}.version-stat-card .value{color:#6a3400}.card{background:var(--dashboard-card-bg);border-radius:var(--radius-md);border:1px solid var(--panel-border-color);box-shadow:var(--panel-shadow);max-width:600px;transition:background var(--duration-normal) var(--easing-standard), border-color var(--duration-normal) var(--easing-standard), box-shadow var(--duration-normal) var(--easing-standard);padding:24px}.card:hover{background:var(--panel-bg-hover);border-color:var(--panel-border-color-hover);box-shadow:var(--panel-shadow-hover)}.external-operations-page .card+.card{margin-top:var(--space-xl)}.updates-page .card{max-width:none}.updates-page .card+.card{margin-top:var(--space-xl)}.updates-source-row{align-items:center;gap:10px;display:flex}.updates-source-row .clearable-input-wrapper{flex:1}.updates-publish-card{transition:border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard)}.updates-publish-card.updates-publish-card-dragover{border-color:var(--primary);background:color-mix(in srgb, var(--dashboard-card-bg) 88%, var(--primary) 12%);box-shadow:0 0 0 3px var(--color-focus-ring), var(--panel-shadow-hover)}.updates-folder-hint{color:var(--text-secondary);margin-top:6px;display:block}.updates-upload-selected{border-radius:var(--radius-sm);border:1px solid var(--color-state-success-border);background:var(--color-state-success-bg);color:var(--color-state-success-text);margin-top:10px;padding:10px 12px;font-size:.9rem;font-weight:500}.updates-upload-selected-content{justify-content:space-between;align-items:center;gap:8px;display:flex}.updates-clear-icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--danger);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.updates-clear-icon-btn:hover{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger-hover)}.updates-clear-icon-btn:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.updates-upload-progress{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--primary) 26%, transparent);background:color-mix(in srgb, var(--primary) 10%, transparent);margin-top:12px;padding:12px 14px}.updates-upload-progress-top{color:var(--text-strong);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.86rem;font-weight:500;display:flex}.updates-upload-progress-track{background:color-mix(in srgb, var(--primary) 24%, transparent);border-radius:999px;width:100%;height:8px;overflow:hidden}.updates-upload-progress-bar{background:var(--primary);height:100%;transition:width .18s var(--easing-standard);border-radius:999px}.updates-upload-progress-bar.processing{animation:1.1s linear infinite updates-progress-processing}.updates-release-actions{align-items:center;gap:8px;display:flex}.updates-release-state{border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;line-height:1;display:inline-flex}.updates-release-state-dot{opacity:.9;background:currentColor;border-radius:999px;width:7px;height:7px}.updates-release-state-active{background:var(--color-state-success-bg);color:var(--color-state-success-text);border-color:var(--color-state-success-border)}.updates-release-state-inactive{background:var(--surface-soft);color:var(--text-secondary);border-color:var(--border-soft)}.updates-releases-table td code{overflow-wrap:anywhere}.updates-release-meta{grid-template-columns:1fr}.updates-release-meta .detail-info span code{overflow-wrap:anywhere;font-size:.8rem;display:block}.updates-release-files h4{margin:0 0 10px;font-size:.95rem}.updates-release-files-list{border:1px solid var(--detail-panel-meta-border);border-radius:var(--radius-sm);background:var(--detail-panel-meta-bg);max-height:46vh;overflow:auto}.updates-release-file-item{border-bottom:1px solid var(--detail-panel-meta-border);padding:10px 12px}.updates-release-file-item:last-child{border-bottom:none}.updates-release-file-path{color:var(--detail-panel-value);overflow-wrap:anywhere;font-size:.86rem}.updates-release-file-meta{color:var(--detail-panel-label);flex-wrap:wrap;gap:8px 12px;margin-top:4px;font-size:.78rem;display:flex}.updates-release-file-meta code{overflow-wrap:anywhere;font-size:.75rem}@keyframes updates-progress-processing{0%{filter:brightness()}50%{filter:brightness(1.2)}to{filter:brightness()}}.status-badge{border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:500}.status-ok{background:var(--color-state-success-bg);color:var(--color-state-success-text)}.status-err{background:var(--color-state-danger-bg);color:var(--color-state-danger-text)}.status-inactive{background:var(--surface-soft);color:var(--text-secondary);border:1px solid var(--border-soft)}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;margin-top:16px;padding:14px 12px;display:flex}.pagination span{color:var(--text-primary);font-size:.875rem;font-weight:500}.pagination .btn.btn-secondary{background:var(--surface);color:var(--text-primary);border:2px solid var(--color-border-default);min-height:40px;padding-left:14px;padding-right:14px;box-shadow:0 1px 3px #0f172a14}.pagination .btn.btn-secondary:hover:not(:disabled){background:var(--surface-soft);border-color:var(--color-border-strong);color:var(--text-strong);box-shadow:0 2px 8px #0f172a1f}.pagination .btn.btn-secondary:disabled{opacity:1;color:var(--text-muted);background:color-mix(in srgb, var(--surface-soft) 88%, var(--color-border-muted));border-color:var(--color-border-muted);box-shadow:none;cursor:not-allowed;border-style:dashed}.pagination .btn.btn-secondary.btn-sm{min-height:36px;padding:6px 14px;font-size:.8125rem}.pagination-jump{align-items:center;gap:8px;display:inline-flex}.pagination-jump input{border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--surface);width:72px;color:var(--text-primary);padding:8px 10px;font-size:.85rem;font-weight:500;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 3px #0f172a14}.pagination-jump input::placeholder{color:var(--text-secondary);opacity:1}.pagination-jump input:hover:not(:focus){border-color:var(--color-text-secondary)}.pagination-jump input:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--color-focus-ring);background:var(--surface);outline:none}.toast-stack{z-index:9999;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;max-height:calc(100vh - 32px);display:flex;position:fixed;top:16px;right:16px;overflow:hidden auto}.toast-stack .toast{pointer-events:auto}.toast{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);min-width:300px;max-width:460px;box-shadow:var(--shadow-toast);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-shrink:0;align-items:center;gap:10px;padding:12px 14px;font-size:.875rem;font-weight:500;line-height:1.4;animation:.22s toast-in;display:flex;position:relative;overflow:hidden}@keyframes toast-in{0%{opacity:0;transform:translate(18px)translateY(-4px)}to{opacity:1;transform:translate(0)}}.toast-icon{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.72rem;font-weight:700;display:inline-flex}.toast-message{color:var(--text-strong);word-break:break-word;flex:1}.toast-error .toast-icon{background:var(--color-danger-weak);color:color-mix(in srgb, var(--danger) 80%, black)}.toast-success{border-left:3px solid var(--success)}.toast-success .toast-icon{background:var(--color-success-weak);color:color-mix(in srgb, var(--success) 75%, black)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning .toast-icon{background:var(--color-warning-weak);color:color-mix(in srgb, var(--warning) 72%, black)}.toast-info .toast-icon{background:var(--color-info-weak);color:var(--color-info)}.toast-close{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);opacity:1;background:0 0;border:1px solid #0000;flex-shrink:0;padding:0;font-size:1rem;line-height:1;transition:background .15s,color .15s,border-color .15s}.toast-close:hover{background:var(--surface-hover);color:var(--text-strong);border-color:var(--border)}.toast-progress{transform-origin:0;height:3px;animation:linear forwards toast-progress-shrink;position:absolute;bottom:0;left:0;right:0}@keyframes toast-progress-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-success .toast-progress{background:var(--success)}.toast-error .toast-progress{background:var(--danger)}.toast-warning .toast-progress{background:var(--warning)}.toast-info .toast-progress{background:var(--primary)}@media (prefers-reduced-motion:reduce){.toast-progress{display:none}}@media (width<=768px){.toast-stack{top:12px;left:12px;right:12px}.toast{width:100%;min-width:0;max-width:none}}.master-detail{align-items:flex-start;gap:var(--space-xl);display:flex;position:relative}.master-list{width:100%;max-width:640px}.updates-page .master-list{max-width:none}.detail-panel{background:var(--detail-panel-bg);border-radius:var(--radius-md);width:min(420px,100vw - 56px);box-shadow:var(--shadow-panel);border:1px solid var(--detail-panel-border);z-index:50;flex-direction:column;display:flex;position:fixed;top:28px;bottom:28px;right:28px;overflow:hidden auto}.detail-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--detail-panel-border);background:var(--detail-panel-header-bg);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.detail-header h3{color:var(--detail-panel-title);text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:600;overflow:hidden}.detail-body{padding:20px}.detail-body .form-actions{border-top:1px solid var(--detail-panel-border);margin-top:var(--space-xl);padding-top:var(--space-md)}.detail-meta{border-top:1px solid var(--detail-panel-border);background:var(--detail-panel-meta-bg);border:1px solid var(--detail-panel-meta-border);box-shadow:var(--detail-panel-meta-shadow);border-radius:var(--radius-sm);grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;padding:12px;display:grid}.detail-info{margin-bottom:0}.detail-info label{color:var(--detail-panel-label);margin-bottom:2px;font-size:.85rem;font-weight:500;display:block}.detail-info span{color:var(--detail-panel-value);font-size:.875rem}.row-clickable{cursor:pointer}.cell-nowrap{white-space:nowrap;width:1%}.media-preview-image{border-radius:var(--radius-sm);object-fit:contain;background:var(--surface-soft);max-width:100%;max-height:250px}.media-preview-audio{width:100%}.section-title{margin-top:0;margin-bottom:var(--space-md)}.updates-section-header{justify-content:flex-start;align-items:center;gap:8px;display:flex}.updates-section-header .section-title{margin-bottom:0}.updates-refresh-icon-btn{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface-soft);width:30px;height:30px;color:var(--text-strong);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-standard), background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard);justify-content:center;align-items:center;display:inline-flex}.updates-refresh-icon-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border);transform:translateY(-1px)}.updates-refresh-icon-btn:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.updates-refresh-icon-btn:disabled{opacity:.62;cursor:not-allowed}.updates-refresh-icon-btn .icon.spin{animation:.9s linear infinite updates-refresh-spin}@keyframes updates-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.section-description{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.875rem}tr.row-selected{box-shadow:inset 3px 0 0 var(--selected-row-accent);background:var(--selected-row-bg)!important}tr.row-selected:hover{background:var(--selected-row-bg-hover)!important}.role-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.role-administrator{background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary)}.role-basic{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success)}.role-pending{background:color-mix(in srgb, var(--warning) 14%, transparent);color:var(--warning)}.master-list th:last-child,.master-list td:last-child{white-space:nowrap;width:1%}@media (width<=768px){.detail-panel{z-index:200;border-radius:0;width:100%;top:0;bottom:0;right:0}.updates-devices-table thead{display:none}.updates-devices-table,.updates-devices-table tbody,.updates-devices-table tr,.updates-devices-table td{width:100%;display:block}.updates-devices-table tbody{gap:12px;padding:12px;display:grid}.updates-devices-table tr{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.updates-devices-table td{border-bottom:1px solid var(--surface-hover);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.updates-devices-table td:last-child{border-bottom:none}.updates-devices-table td:before{content:attr(data-label);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex:0 0 120px;font-size:.75rem;font-weight:600}.updates-devices-table td.empty{text-align:center;justify-content:center}.updates-devices-table td.empty:before{content:none}.updates-releases-table thead{display:none}.updates-releases-table,.updates-releases-table tbody,.updates-releases-table tr,.updates-releases-table td{width:100%;display:block}.updates-page .master-list .updates-releases-table td:last-child,.updates-page .master-list .updates-devices-table td:last-child{white-space:normal!important;width:100%!important;max-width:none!important}.updates-releases-table tbody{gap:12px;padding:12px;display:grid}.updates-releases-table tr{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.updates-releases-table td{border-bottom:1px solid var(--surface-hover);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.updates-releases-table td:last-child{border-bottom:none}.updates-releases-table td:before{content:attr(data-label);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex:0 0 110px;font-size:.75rem;font-weight:600}.updates-releases-table td code{text-align:right}.updates-releases-action-cell{gap:10px;flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important}.updates-releases-action-cell:before{align-self:flex-start;width:auto;flex:none!important}.updates-release-actions{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.updates-release-actions .btn{box-sizing:border-box;justify-content:center;width:100%}}.sidebar-toggle{z-index:150;background:var(--text-primary);color:var(--text-inverse);border-radius:var(--radius-sm);border:none;border:1px solid color-mix(in srgb, var(--text-inverse) 18%, transparent);cursor:pointer;padding:8px;line-height:0;display:none;position:fixed;top:12px;left:12px}.sidebar-backdrop{display:none}@media (width<=768px){.sidebar{transition:transform .25s;transform:translate(-100%);width:min(280px,90vw)!important}.sidebar.sidebar-open{transform:translate(0)}.sidebar-toggle{display:block}.login-theme-switch{top:12px;right:12px}.app-top-header{min-height:42px;padding:8px 12px 8px 52px}.sidebar-backdrop{background:var(--color-overlay);z-index:99;display:block;position:fixed;inset:0}.layout-main-column{margin-left:0}.main-content{padding:10px 16px 16px}}.logs-filters{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--panel-border-color);box-shadow:var(--panel-shadow);margin-bottom:16px;padding:16px}.logs-filters .btn{justify-content:center;min-width:96px}.logs-filters-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.filter-group{flex-direction:column;gap:4px;display:flex}.filter-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.filter-group input,.filter-group select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--table-search-bg,var(--surface-soft));color:var(--text-primary);padding:7px 10px;font-size:.85rem;transition:border-color .15s,box-shadow .15s,background .15s}.filter-group input:hover:not(:focus),.filter-group select:hover:not(:focus){border-color:var(--color-border-strong);background:var(--surface)}.filter-group input:focus,.filter-group select:focus{border-color:var(--primary-hover);box-shadow:0 0 0 3px var(--color-focus-ring);background:var(--surface);outline:none}.filter-actions{gap:6px;display:flex}@media (width<=768px){.logs-filters-row{flex-direction:column;align-items:stretch}.filter-group,.filter-group input,.filter-group select{width:100%}.filter-actions{justify-content:stretch}.filter-actions .btn{flex:1;justify-content:center}}.label-with-toggle{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.label-with-toggle label{margin-bottom:0}.input-mode-toggle{border-radius:var(--radius-md);background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--color-border-muted);gap:2px;padding:3px;display:inline-flex}.toggle-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 14px;font-size:12px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.toggle-btn.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 3px #0000001f}.toggle-btn:hover:not(.active){color:var(--text-primary);background:color-mix(in srgb, var(--surface) 55%, transparent)}.powered-footer{text-align:center;color:var(--text-muted);letter-spacing:.03em;margin-top:12px;font-size:.65rem}.sidebar .powered-footer{color:var(--color-nav-muted);font-size:.68rem}.export-progress{background:color-mix(in srgb, var(--primary) 12%, transparent);border:1px solid color-mix(in srgb, var(--primary) 28%, transparent);border-radius:var(--radius-md);color:var(--primary);align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:.875rem;font-weight:500;display:flex}.export-progress-bar{background:color-mix(in srgb, var(--primary) 28%, transparent);border-radius:2px;flex:1;height:4px;overflow:hidden}.export-progress-bar-pulse{background:var(--primary);border-radius:2px;width:40%;height:100%;animation:1.2s ease-in-out infinite pulse-slide}@keyframes pulse-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.text-muted{color:var(--text-muted);font-size:.85rem}
