:root{--font-body: "Avenir Next", "Segoe UI Variable", "SF Pro Text", "Helvetica Neue", sans-serif;--font-display: "Avenir Next Condensed", "Avenir Next", "SF Pro Display", "Segoe UI Variable", "Helvetica Neue", sans-serif;font-family:var(--font-body);color-scheme:light;--app-bg: radial-gradient(circle at 16% 16%, rgba(31, 91, 215, .14), transparent 50%), radial-gradient(circle at 86% 18%, rgba(192, 122, 45, .18), transparent 52%), linear-gradient(160deg, #f6f2ea 0%, #edf1f6 45%, #e6ecf3 100%);--bg-primary: #f1f3f6;--bg-secondary: rgba(255, 255, 255, .72);--bg-tertiary: rgba(255, 255, 255, .88);--bg-elevated: rgba(255, 255, 255, .96);--surface: rgba(255, 255, 255, .86);--surface-hover: rgba(255, 255, 255, .95);--surface-active: rgba(255, 255, 255, .98);--border: rgba(15, 23, 42, .12);--border-hover: rgba(15, 23, 42, .22);--text-primary: #0b1220;--text-secondary: #2f3a4f;--text-tertiary: #657189;--accent-blue: #1f5bd7;--accent-blue-hover: #194ebd;--accent-glow: rgba(31, 91, 215, .2);--accent-green: #1b9e83;--accent-green-glow: rgba(27, 158, 131, .25);--accent-red: #d64b4b;--accent-red-glow: rgba(214, 75, 75, .22);--accent-amber: #c07a2d;--accent: var(--accent-blue);--danger: var(--accent-red);--ok: var(--accent-green);--input-bg: rgba(255, 255, 255, .9);--input-border: rgba(15, 23, 42, .16);--input-border-focus: rgba(31, 91, 215, .45);--button-bg: linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(242, 246, 252, .94) 100%);--button-bg-hover: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(240, 245, 251, .98) 100%);--glass-border: rgba(15, 23, 42, .14);--glass-border-strong: rgba(15, 23, 42, .24);--glass-highlight: rgba(255, 255, 255, .75);--glass-blur: 16px;--shadow-sm: 0 8px 18px rgba(15, 23, 42, .09);--shadow: 0 12px 26px rgba(15, 23, 42, .14);--shadow-lg: 0 20px 44px rgba(15, 23, 42, .18);--shadow-glow: 0 0 18px rgba(31, 91, 215, .28);--panel-sheen: rgba(255, 255, 255, .75);--panel-sheen-muted: rgba(255, 255, 255, .28);--panel-stripe: rgba(15, 23, 42, .05);--blob-primary: rgba(31, 91, 215, .22);--blob-secondary: rgba(192, 122, 45, .2);--icon-size: 20px;--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6b82' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");--transition-fast: .18s cubic-bezier(.2, .6, .2, 1);--transition: .32s cubic-bezier(.2, .6, .2, 1);--transition-slow: .48s cubic-bezier(.2, .6, .2, 1)}html[data-theme=dark]{color-scheme:dark;--app-bg: radial-gradient(circle at 16% 16%, rgba(79, 125, 255, .24), transparent 50%), radial-gradient(circle at 86% 18%, rgba(211, 154, 75, .22), transparent 52%), linear-gradient(160deg, #04070d 0%, #0a1220 50%, #0b111a 100%);--bg-primary: #070c14;--bg-secondary: rgba(8, 14, 22, .78);--bg-tertiary: rgba(11, 17, 28, .88);--bg-elevated: rgba(13, 20, 32, .96);--surface: rgba(12, 18, 30, .78);--surface-hover: rgba(16, 24, 38, .9);--surface-active: rgba(20, 30, 46, .94);--border: rgba(148, 163, 184, .2);--border-hover: rgba(148, 163, 184, .34);--text-primary: #e8ecf3;--text-secondary: #c4cedc;--text-tertiary: #8f9bb1;--accent-blue: #4f7dff;--accent-blue-hover: #3b6df0;--accent-glow: rgba(79, 125, 255, .24);--accent-green: #2cc0a5;--accent-green-glow: rgba(44, 192, 165, .24);--accent-red: #f06a6a;--accent-red-glow: rgba(240, 106, 106, .24);--accent-amber: #d39a4b;--accent: var(--accent-blue);--danger: var(--accent-red);--ok: var(--accent-green);--input-bg: rgba(12, 18, 30, .78);--input-border: rgba(148, 163, 184, .26);--input-border-focus: rgba(79, 125, 255, .55);--button-bg: linear-gradient(180deg, rgba(16, 24, 36, .94) 0%, rgba(11, 17, 30, .94) 100%);--button-bg-hover: linear-gradient(180deg, rgba(18, 28, 42, .98) 0%, rgba(10, 16, 28, .98) 100%);--glass-border: rgba(148, 163, 184, .22);--glass-border-strong: rgba(148, 163, 184, .34);--glass-highlight: rgba(255, 255, 255, .08);--glass-blur: 14px;--shadow-sm: 0 8px 18px rgba(0, 0, 0, .5);--shadow: 0 14px 30px rgba(0, 0, 0, .55);--shadow-lg: 0 22px 44px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(79, 125, 255, .35);--panel-sheen: rgba(148, 163, 184, .18);--panel-sheen-muted: rgba(12, 18, 30, .7);--panel-stripe: rgba(148, 163, 184, .09);--blob-primary: rgba(79, 125, 255, .3);--blob-secondary: rgba(211, 154, 75, .26);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b7c4da' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--app-bg);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-slow),color var(--transition)}body:before,body:after{content:"";position:fixed;width:520px;height:520px;border-radius:50%;filter:blur(24px);opacity:.35;pointer-events:none;z-index:0}body:before{top:-160px;left:-120px;background:radial-gradient(circle,var(--blob-primary) 0%,transparent 70%)}body:after{top:-180px;right:-140px;background:radial-gradient(circle,var(--blob-secondary) 0%,transparent 70%)}:root[data-low-gpu=true] body:before,:root[data-low-gpu=true] body:after{animation:none!important;filter:none;opacity:.2}:root[data-low-gpu=true] body{transition:none}@media(prefers-reduced-motion:no-preference){body:before{animation:var(--blob-animation, blob-drift 18s ease-in-out infinite)}body:after{animation:var(--blob-animation-reverse, blob-drift 22s ease-in-out infinite reverse)}}body[style*="--blob-animation: none"]:before,body[style*="--blob-animation: none"]:after{animation:none!important}#root{position:relative;z-index:1}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-blue)}.container{max-width:1800px;margin:0 auto;padding:24px 20px 32px;display:grid;gap:16px}.card{position:relative;background:linear-gradient(160deg,var(--panel-sheen) 0%,var(--panel-sheen-muted) 100%),var(--surface);border:1px solid var(--glass-border);border-radius:22px 22px 30px;padding:20px;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(120%);backdrop-filter:blur(var(--glass-blur)) saturate(120%);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition),background var(--transition);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border)}.card:before{content:"";position:absolute;top:14px;left:16px;width:140px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--accent-blue) 0%,var(--accent-amber) 55%,transparent 100%);opacity:.65;pointer-events:none}.card:hover{border-color:var(--glass-border-strong);box-shadow:var(--shadow),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border);transform:translateY(-1px)}.card:focus-within{border-color:var(--glass-border-strong);box-shadow:var(--shadow),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border)}:root[data-low-gpu=true] .card,:root[data-low-gpu=true] .table-wrapper,:root[data-low-gpu=true] .topbar,:root[data-low-gpu=true] .notice,:root[data-low-gpu=true] .filter-chip,:root[data-low-gpu=true] .badge,:root[data-low-gpu=true] .enrollment-popover,:root[data-low-gpu=true] .time-picker-popover,:root[data-low-gpu=true] .kv>div{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;transition:none;border-color:var(--border);background:var(--surface)}:root[data-low-gpu=true] input,:root[data-low-gpu=true] select,:root[data-low-gpu=true] textarea,:root[data-low-gpu=true] button{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;transition:none;border-color:var(--border);background:var(--surface)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px dashed var(--border);position:relative}.card-header:after{content:"";position:absolute;left:0;bottom:-1px;width:160px;height:2px;background:linear-gradient(90deg,var(--accent-blue) 0%,var(--accent-amber) 55%,transparent 100%);opacity:.6}.card-title{font-size:19px;font-weight:800;margin:0;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-display)}.card-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.grid{display:grid;gap:16px}@media(max-width:768px){.container,.card{padding:14px}.card-title{font-size:16px}}h1,h2,h3,h4,h5,h6{margin:0 0 16px;font-weight:700;line-height:1.3;letter-spacing:-.02em;font-family:var(--font-display)}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}label{display:block;font-size:11px;font-weight:700;color:var(--text-secondary);margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em}input,select,textarea{width:100%;padding:9px 12px;border-radius:12px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);font-size:13px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 3px #4f8cff2e}input:disabled,select:disabled{opacity:.5;cursor:not-allowed}input:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-hover)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#ff5f5f99}input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{box-shadow:0 0 0 3px #ff5f5f1f}.field-error{margin-top:6px;font-size:12px;color:var(--accent-red)}input[type=checkbox]{width:auto;cursor:pointer;accent-color:var(--accent-blue)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 14px center;background-size:14px;padding-right:38px}select:hover:not(:disabled){border-color:var(--border-hover)}select[multiple]{background-image:none;padding-right:12px}select option,select optgroup{background-color:var(--bg-elevated);color:var(--text-primary)}.time-picker{position:relative}.time-picker-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.time-picker-toggle{padding:8px 10px}.time-picker-popover{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--glass-border);border-radius:14px;padding:8px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px;max-height:240px;overflow:auto}.time-picker-option{padding:6px 8px;border-radius:10px;border:1px solid transparent;background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-primary);cursor:pointer;text-align:center}.time-picker-option:hover{border-color:var(--border-hover);background:var(--bg-tertiary)}.time-picker-option.active{border-color:var(--accent-blue);color:var(--accent-blue);background:#1f5bd729}.time-picker-empty{grid-column:1 / -1;padding:8px;font-size:12px;color:var(--text-tertiary);text-align:center}button{padding:8px 14px;border-radius:12px;border:1px solid var(--glass-border);background:var(--button-bg);color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:600;transition:transform var(--transition-fast),box-shadow var(--transition),border-color var(--transition),background var(--transition),color var(--transition);display:inline-flex;align-items:center;gap:6px;font-family:inherit;white-space:nowrap;box-shadow:inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}button:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--glass-border-strong);transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--glass-highlight)}button:active:not(:disabled){transform:translateY(0) scale(.98)}button:disabled{opacity:.4;cursor:not-allowed}button[aria-current=page]{opacity:1;cursor:default;border-color:#4f8cff59;background:linear-gradient(135deg,#4f8cff2e,#4f8cff0f);color:var(--accent-blue);box-shadow:inset 0 1px 0 var(--glass-highlight),0 8px 18px #4f8cff2e}button.primary{background:linear-gradient(135deg,var(--accent-blue) 0%,rgba(79,140,255,.8) 100%);border-color:#4f8cffa6;color:#fff;box-shadow:0 6px 14px #4f8cff47}button.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-blue-hover) 0%,rgba(79,140,255,.92) 100%);border-color:#4f8cffcc;box-shadow:0 8px 18px #4f8cff52}button.primary[aria-current=page]{background:linear-gradient(135deg,var(--accent-blue) 0%,rgba(79,140,255,.9) 100%);border-color:#4f8cffcc;box-shadow:0 10px 22px #4f8cff52}button.danger{background:linear-gradient(135deg,#ff5f5fe6,#ff5f5fb3);border-color:#ff5f5f99;color:#fff;box-shadow:0 6px 14px #ff5f5f47}button.danger:hover:not(:disabled){background:linear-gradient(135deg,#ff5f5f,#ff5f5fcc);border-color:#ff5f5fcc;box-shadow:0 8px 18px #ff5f5f52}button.success{background:linear-gradient(135deg,var(--accent-green) 0%,rgba(32,201,151,.75) 100%);border-color:#20c99799;color:#fff;box-shadow:0 6px 14px #20c99747}button:focus-visible{outline:none;box-shadow:0 0 0 3px #4f8cff33}button.icon-button{padding:8px 12px;font-weight:600}.credentials-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;width:100%;max-width:100%}.credentials-actions button{flex:1 1 0;justify-content:center;padding:6px 10px;font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.credentials-actions{flex-wrap:wrap}.credentials-actions button{flex:1 1 140px}}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid var(--glass-border);font-size:11px;font-weight:600;background:var(--surface);white-space:nowrap;box-shadow:inset 0 1px 0 var(--glass-highlight)}.badge.success{background:#10b98126;border-color:var(--accent-green);color:var(--accent-green)}.badge.error{background:#ef444426;border-color:var(--accent-red);color:var(--accent-red)}.badge.warning{background:#f59e0b26;border-color:var(--accent-amber);color:var(--accent-amber)}.badge.info{background:#4f8cff26;border-color:var(--accent-blue);color:var(--accent-blue)}.badge.api-loading,.api-loading{position:relative;overflow:hidden;border-color:#4f8cff59;background:linear-gradient(135deg,#4f8cff29,#4f8cff0f);color:var(--accent-blue)}.error,.ok{padding:10px 12px;border-radius:14px;margin:10px 0;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.error{background:#ff5f5f1f;border:1px solid rgba(255,95,95,.35);color:var(--accent-red)}.ok{background:#20c9971f;border:1px solid rgba(32,201,151,.35);color:var(--accent-green)}.notice-stack{position:fixed;top:76px;right:24px;z-index:1000;display:grid;gap:8px;pointer-events:none}.notice{pointer-events:auto;min-width:220px;max-width:min(360px,calc(100vw - 48px));background:var(--surface);border:1px solid var(--glass-border);border-left:3px solid var(--accent-green);border-radius:12px;padding:10px 12px;display:flex;align-items:flex-start;gap:8px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(130%);backdrop-filter:blur(var(--glass-blur)) saturate(130%)}.notice.error{border-left-color:var(--accent-red)}.notice-dot{width:8px;height:8px;border-radius:999px;margin-top:6px;background:var(--accent-green);flex:0 0 auto}.notice.error .notice-dot{background:var(--accent-red)}.notice-message{flex:1;font-size:12px;color:var(--text-primary)}.notice.error .notice-message{color:var(--accent-red)}.notice-close{background:transparent;border:none;padding:2px;color:var(--text-tertiary);box-shadow:none}.notice-close:hover{color:var(--text-primary);background:transparent;transform:none;box-shadow:none}.notice-close:focus-visible{outline:none;box-shadow:0 0 0 2px #4f8cff40;border-radius:6px}@keyframes notice-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.notice-stack{top:72px;left:16px;right:16px}.notice{max-width:none}}.table-wrapper{margin-top:12px;overflow-x:auto;border-radius:20px 20px 28px;border:1px solid var(--glass-border);background:linear-gradient(160deg,var(--panel-sheen) 0%,var(--panel-sheen-muted) 100%),var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border);transition:background var(--transition),border-color var(--transition),box-shadow var(--transition);padding:6px;position:relative}.table-wrapper:hover{box-shadow:var(--shadow),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border)}.table{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:13px}.table th{text-align:left;padding:8px 10px 4px;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);background:transparent;border-bottom:none;white-space:nowrap}.table td{padding:10px 12px;border:1px solid var(--border);border-left:none;border-right:none;background:var(--surface);vertical-align:middle;transition:background var(--transition-fast),border-color var(--transition-fast)}.table tbody tr td:first-child{border-left:1px solid var(--border);border-radius:10px 0 0 10px}.table tbody tr td:last-child{border-right:1px solid var(--border);border-radius:0 10px 10px 0}.table tbody tr{transition:transform var(--transition-fast)}.table tbody tr:hover td{background:var(--surface-hover);border-color:var(--border-hover)}.table tbody tr:last-child td{border-bottom:1px solid var(--border)}.table tbody tr.highlight td{background:linear-gradient(90deg,var(--accent-glow) 0%,transparent 70%);border-color:var(--accent)}.table tbody tr.highlight td:first-child{box-shadow:inset 4px 0 0 var(--accent)}.table tbody tr.highlight:hover td{background:linear-gradient(90deg,var(--accent-glow) 0%,transparent 70%);border-color:var(--accent)}.table tbody tr.conflict td{background:linear-gradient(90deg,var(--accent-red-glow) 0%,transparent 70%);border-color:var(--accent-red)}.table tbody tr.conflict td:first-child{box-shadow:inset 4px 0 0 var(--accent-red)}.table tbody tr.conflict:hover td{background:linear-gradient(90deg,var(--accent-red-glow) 0%,transparent 70%);border-color:var(--accent-red)}.status-indicator{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:16px;font-weight:700;position:relative}.status-indicator.online{background:linear-gradient(135deg,var(--accent-green) 0%,#059669 100%);color:#fff;box-shadow:0 0 0 3px var(--accent-green-glow);animation:pulse-online 2s cubic-bezier(.4,0,.6,1) infinite}.status-indicator.offline{background:linear-gradient(135deg,var(--accent-red) 0%,#dc2626 100%);color:#fff;box-shadow:0 0 0 3px var(--accent-red-glow)}@keyframes pulse-online{0%,to{box-shadow:0 0 0 3px var(--accent-green-glow)}50%{box-shadow:0 0 0 6px var(--accent-green-glow)}}.topbar{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:10px 16px;border:1px solid var(--glass-border);border-radius:22px 22px 30px;background:linear-gradient(160deg,var(--panel-sheen) 0%,var(--panel-sheen-muted) 100%),var(--surface);position:sticky;top:10px;z-index:100;-webkit-backdrop-filter:blur(24px) saturate(130%);backdrop-filter:blur(24px) saturate(130%);flex-wrap:wrap;max-width:1800px;width:calc(100% - 32px);margin:12px auto 0;box-shadow:var(--shadow),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border);transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}.topbar:hover{box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--border)}.topbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:8px}.brand-logo{width:32px;height:32px;flex:0 0 32px;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-title{font-size:15px;font-weight:800;letter-spacing:.04em;font-family:var(--font-display)}.brand-subtitle{font-size:10px;text-transform:uppercase;letter-spacing:.22em;color:var(--text-tertiary)}.enrollment-popover{position:absolute;top:calc(100% + 10px);left:0;min-width:220px;background:var(--surface);border:1px solid var(--glass-border);border-radius:12px;padding:8px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:grid;gap:6px;z-index:10}.enrollment-label,.enrollment-title{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-tertiary)}.enrollment-row{display:flex;align-items:center;gap:4px}.enrollment-row-label{font-size:11px;font-weight:700;color:var(--text-secondary)}.enrollment-row-sep{color:var(--text-tertiary)}.enrollment-value{display:flex;align-items:center;gap:6px}.enrollment-value code{font-size:11px;color:var(--text-primary);word-break:break-all}.topbar-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar-actions .user-badge{font-weight:700}.api-loading{gap:6px}.action-group{display:inline-flex;align-items:center;gap:6px;position:relative}.action-group .icon-button{padding:4px 8px;border-radius:999px}.nav{display:flex;gap:2px;flex-wrap:wrap;padding:4px;border-radius:14px 14px 18px;border:1px solid var(--glass-border);background:linear-gradient(160deg,var(--panel-sheen) 0%,var(--panel-sheen-muted) 100%);box-shadow:inset 0 1px 0 var(--glass-highlight)}.nav.admin-tabs{display:flex;flex-wrap:nowrap;gap:6px;width:100%;overflow-x:auto}.nav.admin-tabs button{flex:1 0 160px;min-width:160px;justify-content:center}.admin-tab-content{width:100%;display:grid;gap:16px}.nav button{background:transparent;border:1px solid transparent;padding:5px 10px;border-radius:10px 10px 14px;font-size:10px;transition:all var(--transition-fast);color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.nav button:hover{background:var(--surface-hover);border-color:var(--glass-border);color:var(--text-primary);transform:translateY(-1px)}.nav button:active:not(:disabled){transform:translateY(0) scale(.98)}.nav button.primary{background:linear-gradient(135deg,#4f8cffe6,#4f8cffa6);border-color:#4f8cff80;color:#fff;box-shadow:var(--shadow-glow);font-weight:700}@media(max-width:1024px){.topbar{justify-content:flex-start}.topbar-left,.nav,.topbar-actions{width:100%}}@media(max-width:720px){.topbar{padding:10px 12px;width:calc(100% - 20px);margin:10px auto 0}.brand-logo{width:26px;height:26px;flex:0 0 26px}.brand-title{font-size:13px}.brand-subtitle{font-size:9px;letter-spacing:.16em}.nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav::-webkit-scrollbar{display:none}.nav button{flex:0 0 auto}.nav.admin-tabs{overflow-x:auto}.nav.admin-tabs button{min-width:180px}.topbar-actions{gap:8px}.action-group{flex-wrap:wrap;max-width:100%}.theme-toggle{padding:4px 8px}.theme-toggle-label{font-size:9px}}.theme-toggle{padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--glass-border);background:var(--surface);gap:10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;box-shadow:inset 0 1px 0 var(--glass-highlight)}.theme-toggle-track{width:30px;height:18px;border-radius:999px;background:linear-gradient(135deg,#fff6,#ffffff26);border:1px solid var(--glass-border);position:relative;flex:0 0 auto}.theme-toggle-track:after{content:"";width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,#fff,#ffffffb3);position:absolute;top:1px;left:1px;transition:transform var(--transition-fast),background var(--transition-fast);box-shadow:0 4px 10px #0000002e}.theme-toggle[aria-checked=true] .theme-toggle-track{background:linear-gradient(135deg,#4f8cffcc,#4f8cff66);border-color:#4f8cff99}.theme-toggle[aria-checked=true] .theme-toggle-track:after{transform:translate(12px);background:linear-gradient(135deg,#fff,#ffffffbf)}.theme-toggle-label{color:var(--text-secondary)}hr{border:0;border-top:1px solid var(--border);margin:18px 0}.muted{color:var(--text-tertiary)}small.muted{color:var(--text-tertiary);font-size:11px}.kv{display:flex;gap:10px;flex-wrap:wrap}.kv>div{background:var(--surface);border:1px solid var(--glass-border);padding:10px 12px;border-radius:14px;font-size:12px;flex:1;min-width:180px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.kv strong{display:block;color:var(--text-secondary);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--glass-border);background:var(--surface);font-size:11px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.filter-chip:hover{background:var(--surface-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.filter-chip:active{transform:translateY(0) scale(.98)}.filter-chip.active{background:linear-gradient(135deg,#4f8cffe6,#4f8cffa6);border-color:#4f8cff80;color:#fff;box-shadow:var(--shadow-glow)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blob-drift{0%,to{transform:translate(0)}50%{transform:translate(18px,-12px)}}@keyframes api-sheen{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-overlay{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:no-preference){.card{animation:fadeIn var(--transition-slow) ease-out both;animation-delay:var(--stagger-delay, 0ms)}.container>.card:nth-child(1),.grid>.card:nth-child(1),.row>.card:nth-child(1){--stagger-delay: 40ms}.container>.card:nth-child(2),.grid>.card:nth-child(2),.row>.card:nth-child(2){--stagger-delay: 80ms}.container>.card:nth-child(3),.grid>.card:nth-child(3),.row>.card:nth-child(3){--stagger-delay: .12s}.container>.card:nth-child(4),.grid>.card:nth-child(4),.row>.card:nth-child(4){--stagger-delay: .16s}.container>.card:nth-child(5),.grid>.card:nth-child(5),.row>.card:nth-child(5){--stagger-delay: .2s}.container>.card:nth-child(6),.grid>.card:nth-child(6),.row>.card:nth-child(6){--stagger-delay: .24s}.notice{animation:notice-in var(--transition-fast)}.api-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(79,140,255,.4) 45%,transparent 70%);transform:translate(-120%);animation:api-sheen 1.8s ease-in-out infinite;pointer-events:none}[role=dialog][aria-modal=true]{animation:modal-overlay var(--transition-fast)}[role=dialog][aria-modal=true]>div{animation:modal-in var(--transition) ease-out}}:root[data-low-gpu=true] .card,:root[data-low-gpu=true] .notice,:root[data-low-gpu=true] .notice-stack,:root[data-low-gpu=true] .status-indicator.online,:root[data-low-gpu=true] .app-loading-bar:before,:root[data-low-gpu=true] .api-loading:after,:root[data-low-gpu=true] .loading{animation:none!important}:root[data-low-gpu=true] .status-indicator.online{box-shadow:none}:root[data-low-gpu=true] .api-loading:after{transform:none;background:var(--accent-blue)}.app-loading-bar{position:fixed;top:0;left:0;width:100%;height:2px;z-index:2000;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.app-loading-bar:before{content:"";display:block;width:30%;height:100%;background:linear-gradient(90deg,transparent 0%,var(--accent-blue) 50%,transparent 100%);transform:translate(-120%);animation:loading-bar 1.1s ease-in-out infinite}.app-loading-bar.active{opacity:1}@keyframes loading-bar{to{transform:translate(320%)}}@media(prefers-reduced-motion:reduce){.app-loading-bar:before{animation:none;width:100%;transform:none;background:var(--accent-blue)}}.loading{display:inline-block;width:16px;height:16px;border:2px solid var(--glass-border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:32px 20px;color:var(--text-tertiary)}.empty-state-icon{width:44px;height:44px;margin:0 auto 12px;border-radius:14px;border:1px solid var(--glass-border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);box-shadow:inset 0 1px 0 var(--glass-highlight)}[data-icon]{display:inline-flex;align-items:center;gap:8px}[data-icon]:before{content:"";width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background:currentColor;mask:var(--icon) no-repeat center / contain;-webkit-mask:var(--icon) no-repeat center / contain;opacity:.85;transition:transform var(--transition-fast),opacity var(--transition-fast)}button[data-icon]:hover:not(:disabled):before{transform:translateY(-1px) scale(1.02)}button[data-icon]:active:not(:disabled):before{transform:translateY(0) scale(.98)}button[data-icon=refresh]:before{transform:translateY(0);--icon-size: 22px;margin-top:2px}.icon-only,[data-icon][data-icon-only=true]{padding-left:10px;padding-right:10px}.icon-only:before,[data-icon][data-icon-only=true]:before{margin-right:0}.empty-state-icon[data-icon]:before{width:32px;height:32px;opacity:.7}.status-indicator[data-icon]:before{width:16px;height:16px;opacity:1}[data-icon=refresh]{--icon: url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20489.935%20489.935%27%3E%3Cpath%20d%3D%27M278.235%2C33.267c-116.7%2C0-211.6%2C95-211.6%2C211.7v0.7l-41.9-63.1c-4.1-6.2-12.5-7.9-18.7-3.8c-6.2%2C4.1-7.9%2C12.5-3.8%2C18.7%0Al60.8%2C91.5c2.2%2C3.3%2C5.7%2C5.4%2C9.6%2C5.9c0.6%2C0.1%2C1.1%2C0.1%2C1.7%2C0.1c3.3%2C0%2C6.5-1.2%2C9-3.5l84.5-76.1c5.5-5%2C6-13.5%2C1-19.1%0Ac-5-5.5-13.5-6-19.1-1l-56.1%2C50.7v-1c0-101.9%2C82.8-184.7%2C184.6-184.7s184.7%2C82.8%2C184.7%2C184.7s-82.8%2C184.7-184.6%2C184.7%0Ac-49.3%2C0-95.7-19.2-130.5-54.1c-5.3-5.3-13.8-5.3-19.1%2C0c-5.3%2C5.3-5.3%2C13.8%2C0%2C19.1c40%2C40%2C93.1%2C62%2C149.6%2C62%0Ac116.6%2C0%2C211.6-94.9%2C211.6-211.7S394.935%2C33.267%2C278.235%2C33.267z%27%20fill%3D%27currentColor%27%2F%3E%3C%2Fsvg%3E);--icon-size: 20px}[data-icon=refresh]:before{transform:translateY(0)}[data-icon=save]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E")}[data-icon=plus]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")}[data-icon=trash]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E")}[data-icon=edit]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3a2.828 2.828 0 1 1 4 4L7 21l-4 1 1-4L17 3z'/%3E%3C/svg%3E")}[data-icon=clock]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E")}[data-icon=upload]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 5 17 10'/%3E%3Cline x1='12' y1='5' x2='12' y2='16'/%3E%3C/svg%3E")}[data-icon=download]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='5' x2='12' y2='15'/%3E%3C/svg%3E")}[data-icon=logout]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E")}[data-icon=lock]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}[data-icon=eye]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}[data-icon=eye-off]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.94 10.94 0 0 1 12 19c-6 0-10-7-10-7a20.12 20.12 0 0 1 5.06-5.94'/%3E%3Cpath d='M9.9 4.24A10.8 10.8 0 0 1 12 4c6 0 10 7 10 7a20.05 20.05 0 0 1-3.26 4.52'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E")}[data-icon=check]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}[data-icon=x]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E")}[data-icon=play]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='6 4 20 12 6 20 6 4'/%3E%3C/svg%3E")}[data-icon=pause]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='4' width='4' height='16' rx='1'/%3E%3Crect x='14' y='4' width='4' height='16' rx='1'/%3E%3C/svg%3E")}[data-icon=ban]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='5' y1='5' x2='19' y2='19'/%3E%3C/svg%3E")}[data-icon=copy]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E")}[data-icon=device]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2' width='10' height='20' rx='2'/%3E%3Ccircle cx='12' cy='18' r='1'/%3E%3C/svg%3E")}[data-icon=desktop]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cline x1='8' y1='20' x2='16' y2='20'/%3E%3Cline x1='12' y1='16' x2='12' y2='20'/%3E%3C/svg%3E")}[data-icon=key]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='15' r='4'/%3E%3Cline x1='11' y1='15' x2='21' y2='15'/%3E%3Cline x1='17' y1='15' x2='17' y2='11'/%3E%3Cline x1='19' y1='15' x2='19' y2='13'/%3E%3C/svg%3E")}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--surface);border-radius:10px;border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--surface-hover)}@supports not (backdrop-filter: blur(1px)){.card,.topbar,.table-wrapper,input,select,textarea,button:not(.primary):not(.danger):not(.success){background:var(--bg-elevated)}}
