*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f6f8;--card-bg: #ffffff;--surface-alt: #f8fafc;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--primary: #2563eb;--primary-hover: #1d4ed8;--sidebar-bg: #f0f5ff;--sidebar-text: #334155;--sidebar-active-bg: #dbeafe;--sidebar-active-text: #2563eb;--sidebar-hover: #e8f0fe;--sidebar-border: #dbeafe;--sidebar-width: 240px;--surface: #ffffff;--radius: 6px;--danger: #dc2626;--danger-hover: #b91c1c;--success-bg: #dcfce7;--success-border: #16a34a;--error-bg: #fee2e2;--error-border: #dc2626;--badge-ok: #16a34a;--badge-err: #dc2626;--badge-admin: #7c3aed;--row-hover: var(--surface-alt);--row-click: #eef2ff;--input-bg: #ffffff;--table-header-bg: var(--surface-alt);--tag-bg: #f1f5f9;--btn-secondary-bg: #e2e8f0;--btn-secondary-hover: #cbd5e1;--key-reveal-bg: #fefce8;--key-reveal-border: #ca8a04;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", "URW Palladio L", "Palatino", "Georgia", serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--font-ui: var(--font-sans);--mono-font: var(--font-mono);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .25);--radius-pill: 99px;--status-ok: #22c55e;--status-ok-bg: rgba(34, 197, 94, .1);--status-warn: #eab308;--status-warn-bg: rgba(234, 179, 8, .1);--status-err: #ef4444;--status-err-bg: rgba(239, 68, 68, .1);--status-muted: #64748b;--status-muted-bg: rgba(100, 116, 139, .1);--transition-fast: .15s ease;--transition-normal: .25s ease}[data-theme=dark]{--bg: #0f172a;--card-bg: #1e293b;--surface-alt: #263244;--border: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--primary: #3b82f6;--primary-hover: #60a5fa;--sidebar-bg: #020617;--sidebar-text: #cbd5e1;--sidebar-active-bg: rgba(96, 165, 250, .1);--sidebar-active-text: #60a5fa;--sidebar-hover: #0f172a;--sidebar-border: transparent;--surface: #1e293b;--row-hover: #263244;--row-click: #1e3a5f;--input-bg: #0f172a;--table-header-bg: #0f172a;--tag-bg: #263244;--btn-secondary-bg: #334155;--btn-secondary-hover: #475569;--success-bg: #052e16;--error-bg: #450a0a;--key-reveal-bg: #1e1b08;--key-reveal-border: #ca8a04}html,body,#root{height:100%}body{font-family:var(--font-ui);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;background:var(--bg)}.app-shell--collapsed{grid-template-columns:60px 1fr}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;transition:width var(--transition-normal);overflow:hidden;z-index:100}.sidebar--collapsed{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-3);flex-shrink:0;gap:var(--space-2);min-height:56px}.sidebar-logo{display:flex;align-items:center;flex-shrink:0}.sidebar-logo-img{max-height:32px;max-width:32px;object-fit:contain;border-radius:var(--radius)}.sidebar-logo-fallback{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--sidebar-text);opacity:.8}.sidebar--collapsed .sidebar-header{flex-direction:column;align-items:center;padding:var(--space-3) var(--space-1);gap:0}.sidebar-header-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:var(--space-1);border-radius:var(--radius);color:var(--sidebar-text);transition:opacity var(--transition-fast);opacity:.7}.sidebar-header-btn:hover{opacity:1}.sidebar-header-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sidebar-header-btn--collapsed{margin:0 auto;position:relative;width:32px;height:32px}.sidebar-collapsed-logo,.sidebar-collapsed-toggle{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.sidebar-collapsed-logo{opacity:1}.sidebar-collapsed-toggle,.sidebar-header-btn--collapsed:hover .sidebar-collapsed-logo{opacity:0}.sidebar-header-btn--collapsed:hover .sidebar-collapsed-toggle{opacity:1}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--sidebar-text);cursor:pointer;opacity:.5;border-radius:var(--radius);transition:opacity var(--transition-fast),background var(--transition-fast);flex-shrink:0}.sidebar-toggle:hover{opacity:1;background:var(--sidebar-hover)}.sidebar-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;opacity:1}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-2) var(--space-2);gap:2px;flex:1;overflow-y:auto}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:10px 14px;color:var(--sidebar-text);text-decoration:none;font-size:14px;font-weight:500;border-radius:var(--radius);border-left:3px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.nav-link svg{flex-shrink:0;opacity:.7}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.nav-link:hover svg{opacity:1}.nav-link:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-left-color:var(--sidebar-active-text)}.nav-link.active svg{opacity:1;color:var(--sidebar-active-text)}.nav-link--collapsed{justify-content:center;padding:10px 0;border-left-color:transparent}.nav-link--collapsed.active{border-left-color:var(--sidebar-active-text)}.nav-link--collapsed .nav-label,.sidebar--collapsed .user-menu-info{display:none}.sidebar--collapsed .user-menu-trigger{justify-content:center}.sidebar--collapsed .sidebar-theme-label{display:none}.sidebar--collapsed .sidebar-theme-toggle{justify-content:center}.sidebar--collapsed .sidebar-version{display:none}.sidebar-footer{padding:var(--space-2) var(--space-2);border-top:1px solid var(--sidebar-border);flex-shrink:0;display:flex;flex-direction:column;gap:2px}.sidebar-theme-toggle{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:8px 14px;background:transparent;border:none;color:var(--sidebar-text);cursor:pointer;border-radius:var(--radius);font-size:13px;font-family:inherit;transition:background var(--transition-fast)}.sidebar-theme-toggle:hover{background:var(--sidebar-hover)}.sidebar-theme-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sidebar-theme-label{white-space:nowrap}.sidebar-version{padding:4px 14px;font-size:11px;color:var(--sidebar-text);opacity:.4;font-family:var(--font-mono)}.content{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-8);min-width:0;min-height:100vh}.sidebar-backdrop{display:none}@media (max-width: 768px){.app-shell,.app-shell--collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:60px;z-index:200;transform:translate(-100%);transition:width var(--transition-normal),transform var(--transition-normal)}.sidebar--collapsed{transform:translate(0);width:60px}.sidebar--mobile-open{transform:translate(0);width:var(--sidebar-width);box-shadow:var(--shadow-xl)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}.content{padding:var(--space-4) var(--space-4)}.sidebar--collapsed .sidebar-toggle{display:flex}}.app-footer{display:none}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:var(--space-4)}.login-card{position:relative;background:#0f172acc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;max-width:420px;width:100%;padding:40px}.login-logo{display:flex;justify-content:center;margin-bottom:var(--space-4)}.login-logo img{max-height:64px;max-width:240px;object-fit:contain}.login-title{font-size:22px;font-weight:600;text-align:center;color:#f1f5f9;margin-bottom:var(--space-6);letter-spacing:-.01em}.login-error{background:#dc26261f;border:1px solid rgba(220,38,38,.5);border-radius:var(--radius, 6px);padding:var(--space-3) var(--space-4);color:#fca5a5;font-size:14px;margin-bottom:var(--space-4)}.btn-microsoft{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:#2f61b3;color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}.btn-microsoft:hover{background:#264f96;box-shadow:var(--shadow-md)}.login-divider{display:flex;align-items:center;margin:var(--space-5) 0;color:#94a3b8b3;font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid rgba(255,255,255,.08)}.login-divider span{padding:0 14px;white-space:nowrap}.login-form .form-group label{color:#cbd5e1cc;font-size:13px}.login-form .form-group input{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#f1f5f9;border-radius:var(--radius, 6px)}.login-form .form-group input::placeholder{color:#94a3b866}.login-form .form-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #2563eb40}.btn-secondary-login{background:#ffffff14;color:#e2e8f0;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-secondary-login:hover{background:#ffffff24}.login-form .btn-primary{background:var(--primary);color:#fff;border:none;font-weight:500;box-shadow:0 1px 3px #0003}.login-form .btn-primary:hover{background:var(--primary-hover);box-shadow:0 2px 8px #0000004d}@media (prefers-color-scheme: light){html:not([data-theme=dark]) .login-card{background:#ffffffd9;border-color:#00000014;box-shadow:0 8px 32px #00000014}html:not([data-theme=dark]) .login-title{color:var(--text)}html:not([data-theme=dark]) .login-error{background:var(--error-bg);border-color:var(--error-border);color:var(--danger)}html:not([data-theme=dark]) .login-form .form-group label{color:var(--text-muted)}html:not([data-theme=dark]) .login-form .form-group input{background:var(--input-bg);border-color:var(--border);color:var(--text)}html:not([data-theme=dark]) .login-form .form-group input::placeholder{color:var(--text-muted)}html:not([data-theme=dark]) .login-divider{color:var(--text-muted)}html:not([data-theme=dark]) .login-divider:before,html:not([data-theme=dark]) .login-divider:after{border-color:var(--border)}html:not([data-theme=dark]) .btn-secondary-login{background:var(--btn-secondary-bg);color:var(--text);border-color:var(--border)}html:not([data-theme=dark]) .btn-secondary-login:hover{background:var(--btn-secondary-hover)}html:not([data-theme=dark]) .login-version{color:var(--text-muted);background:#0000000a}}.register-subtitle{text-align:center;color:#94a3b8cc;font-size:14px;margin-top:-12px;margin-bottom:var(--space-6)}.register-loading{text-align:center;color:#94a3b8b3;font-size:14px}.register-card-wide{max-width:720px}.register-warning{background:var(--status-warn-bg);border:1px solid var(--status-warn);border-radius:var(--radius);padding:var(--space-3) var(--space-4);color:var(--status-warn);font-size:14px;margin-bottom:var(--space-4)}.register-warning--danger{background:#dc26261a;border-color:#dc262680;color:#fca5a5}.register-key-display{font-family:var(--font-mono);font-size:13px;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);padding-right:80px;word-break:break-all;position:relative;margin-bottom:var(--space-4);color:#e2e8f0}.register-meta{font-size:14px;color:#cbd5e1cc;margin-bottom:var(--space-4)}.register-meta p{margin:var(--space-1) 0}.register-meta-label{color:#94a3b899}.register-config-section{margin-top:var(--space-6)}.register-config-heading{font-size:15px;font-weight:600;color:#f1f5f9;margin-bottom:var(--space-3)}.register-config-section .segmented-control{margin-bottom:var(--space-3)}.register-config-block{position:relative;background:#0000004d;border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);padding-right:80px;overflow-x:auto}.register-config-block pre{margin:0;font-family:var(--font-mono);font-size:12px;color:#e2e8f0;white-space:pre-wrap;word-break:break-all}.copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);color:#e2e8f0;font-size:12px;padding:var(--space-1) var(--space-3);cursor:pointer;transition:background var(--transition-fast)}.copy-btn:hover{background:#ffffff2e}.register-error-box{display:flex;align-items:flex-start;gap:var(--space-3);background:#dc26261f;border:1px solid rgba(220,38,38,.5);border-radius:var(--radius);padding:var(--space-4);color:#fca5a5;font-size:14px;margin-bottom:var(--space-4)}.register-error-icon{flex-shrink:0;color:#fca5a5}.register-error-box p{margin:0;line-height:1.5}.register-exists-info{font-size:14px;color:#cbd5e1e6;margin-bottom:var(--space-4);line-height:1.5}.register-exists-info strong{color:#f1f5f9}.btn-renew{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--danger);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4)}.btn-renew:hover{background:var(--danger-hover);box-shadow:var(--shadow-md)}.register-back-link{display:block;text-align:center;color:var(--primary);font-size:14px;text-decoration:none;margin-top:var(--space-3)}.register-back-link:hover{text-decoration:underline}@media (prefers-color-scheme: light){html:not([data-theme=dark]) .register-subtitle{color:var(--text-muted)}html:not([data-theme=dark]) .register-loading{color:var(--text-muted)}html:not([data-theme=dark]) .register-key-display{background:#0000000a;color:var(--text)}html:not([data-theme=dark]) .register-meta{color:var(--text)}html:not([data-theme=dark]) .register-meta-label{color:var(--text-muted)}html:not([data-theme=dark]) .register-config-heading{color:var(--text)}html:not([data-theme=dark]) .register-config-block{background:#0000000a}html:not([data-theme=dark]) .register-config-block pre{color:var(--text)}html:not([data-theme=dark]) .copy-btn{background:#0000000f;border-color:var(--border);color:var(--text)}html:not([data-theme=dark]) .copy-btn:hover{background:#0000001a}html:not([data-theme=dark]) .register-error-box{background:var(--error-bg);border-color:var(--error-border);color:var(--danger)}html:not([data-theme=dark]) .register-error-icon{color:var(--danger)}html:not([data-theme=dark]) .register-exists-info{color:var(--text)}html:not([data-theme=dark]) .register-exists-info strong{color:var(--text)}html:not([data-theme=dark]) .register-warning--danger{background:var(--error-bg);border-color:var(--error-border);color:var(--danger)}}.page{max-width:1100px}.page h1{font-size:22px;font-weight:700;line-height:1.2;margin-bottom:var(--space-4)}.page h2{font-size:17px;line-height:1.25;margin:var(--space-5) 0 var(--space-3)}.page .settings-card h2{font-size:16px;margin:0 0 4px}.page-loading{padding:var(--space-8) 0;color:var(--text-muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-5);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-sm)}.card h3{font-size:15px;line-height:1.25;margin-bottom:var(--space-3)}.card h4{font-size:13px;margin:var(--space-3) 0 var(--space-2);color:var(--text-muted)}.card dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3)}.card dt{font-weight:500;color:var(--text-muted)}.plain-list{list-style:none;padding:0}.plain-list li{padding:2px 0;font-size:13px}.data-table{width:100%;border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--space-3)}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);text-align:left;font-size:13px;white-space:nowrap;vertical-align:middle}.data-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--border)}.data-table td.wrap-cell{white-space:normal}.data-table th{background:var(--table-header-bg);font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.data-table tbody tr:hover{background:var(--row-hover)}.data-table tbody tr.clickable-row{cursor:pointer}.data-table tbody tr.clickable-row:hover{background:var(--row-click)}.row-error{background:var(--error-bg)!important}.badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:12px;font-weight:500;color:#fff}.badge-ok{background:var(--badge-ok)}.badge-err{background:var(--badge-err)}.badge-admin{background:var(--badge-admin)}.badge-oauth{background:var(--primary)}.badge-manual{background:var(--text-muted)}.badge-active{background:var(--status-ok)}.badge-expired{background:var(--status-warn)}.badge-revoked{background:var(--status-err)}.keys-overview-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.keys-overview-pills{display:flex;gap:var(--space-2);flex-wrap:wrap}.keys-overview-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.keys-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:48px var(--space-4);color:var(--text-muted)}.keys-empty svg{opacity:.4}.keys-empty p{font-size:14px;margin:0}.key-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px}.key-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.key-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.key-card--revoked{border-left:4px solid var(--danger);opacity:.75}.key-card--expired{border-left:4px solid #ca8a04;opacity:.8}.key-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 16px 0}.key-card__name{font-size:15px;font-weight:600;color:var(--text);word-break:break-all;min-width:0}.key-card__badges{display:flex;gap:4px;flex-shrink:0;flex-wrap:wrap}.key-card__body{padding:10px 16px 6px;display:flex;flex-direction:column;gap:8px;flex:1}.key-card__meta-item{display:flex;flex-direction:column;gap:2px;min-width:0}.key-card__meta-row{display:flex;gap:16px}.key-card__meta-row>.key-card__meta-item{flex:1;min-width:0}.key-card__tags{display:flex;flex-wrap:wrap;gap:4px}.server-compact{display:flex;flex-direction:column;gap:var(--space-2, 6px)}.server-compact__pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px 3px 6px;font-size:12px;font-weight:500;color:var(--text);background:var(--tag-bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;line-height:1.4}.server-compact__pill:hover{background:var(--hover);border-color:var(--text-muted)}.server-compact__chevron{transition:transform .2s ease;flex-shrink:0}.server-compact__chevron--open{transform:rotate(90deg)}.server-compact__tags{display:flex;flex-wrap:wrap;gap:4px}.badge-row{display:flex;align-items:center;gap:var(--space-2, 6px)}.key-card__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.key-card__value{font-size:13px;color:var(--text);display:flex;flex-wrap:wrap;gap:4px;align-items:center}.key-card__sparkline-row{flex-direction:row;align-items:center;gap:10px}.key-card__footer{padding:8px 16px 12px;border-top:1px solid var(--border);margin-top:auto}.expiry-pill{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;font-weight:500;padding:2px var(--space-2);border-radius:var(--radius-pill);line-height:1.4}.expiry-pill--green{color:var(--status-ok);background:var(--status-ok-bg)}.expiry-pill--yellow{color:var(--status-warn);background:var(--status-warn-bg)}.expiry-pill--red{color:var(--status-err);background:var(--status-err-bg)}.key-actions{display:flex;gap:4px;align-items:center}.key-action-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.key-action-btn:hover{background:var(--surface-alt);border-color:var(--border);color:var(--text)}.key-action-btn--warn:hover{color:#ca8a04;border-color:#ca8a0466}.key-action-btn--danger:hover{color:var(--danger, #ef4444);border-color:#ef444466}.key-action-btn--ok:hover{color:#16a34a;border-color:#16a34a66}.view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.view-toggle__btn{display:flex;align-items:center;justify-content:center;width:34px;height:30px;background:var(--card-bg);border:none;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.view-toggle__btn:hover{background:var(--surface-alt);color:var(--text)}.view-toggle__btn--active{background:var(--primary);color:#fff}.view-toggle__btn--active:hover{background:var(--primary-hover);color:#fff}.view-toggle__btn+.view-toggle__btn{border-left:1px solid var(--border)}.key-list-table{table-layout:auto}.key-list-table th,.key-list-table td{white-space:nowrap}.key-list-table td:last-child{white-space:normal}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--primary)}.sort-indicator{font-size:10px;margin-left:2px}.key-list__name{font-weight:600}.key-list__entra{display:block;font-size:11px;font-weight:400;color:var(--text-muted)}.row-revoked td{background:#dc262614}.row-expired td{background:#ca8a0414}.confirm-inline{display:inline-flex;gap:4px;align-items:center}.key-reveal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.key-reveal .hint{color:var(--status-warn);margin:var(--space-1) 0 var(--space-2)}.keys-panel-form{display:flex;flex-direction:column;gap:var(--space-4)}.keys-panel-footer{display:flex;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);margin-top:var(--space-2)}.input-disabled{opacity:.6;cursor:not-allowed}.server-checklist{display:flex;flex-direction:column;gap:6px;margin-top:4px}.server-checklist-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-radius:var(--radius);background:var(--surface-alt)}.server-check-label{flex:1;min-width:0;font-size:13px}.tier-select-inline{width:60px;font-size:12px;padding:2px 4px}.btn-warning{background:#ca8a04;color:#fff}.btn-warning:hover{background:#a16207}.action-group,.expiry-edit{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.expiry-edit input[type=datetime-local]{font-size:12px;width:180px}td .key-card__actions{border-top:none;padding-top:0;margin-top:0}.key-card__edit{display:flex;flex-direction:column;gap:12px}.badge-warn{background:#ca8a04}.logs-page{display:flex;flex-direction:column;gap:var(--space-3)}.logs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.logs-toolbar-right{display:flex;align-items:center;gap:var(--space-2)}.logs-controls{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.logs-control-group{display:flex;align-items:center;gap:var(--space-2)}.logs-control-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.logs-advanced-toggle{margin-left:auto}.logs-advanced-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius)}.logs-empty{color:var(--text-muted);padding:var(--space-6) 0}.log-table{table-layout:fixed}.log-table--compact td{padding:6px 10px;font-size:13px;line-height:1.4}.log-table--compact th{padding:8px 10px;font-size:12px}.log-table [data-col=timestamp]{width:160px}.log-table [data-col=type]{width:110px}.log-table [data-col=actor]{width:160px}.log-table [data-col=target]{width:120px}.log-table [data-col=backend]{width:130px}.log-table [data-col=tool]{width:160px}.log-table [data-col=duration]{width:90px}.log-table [data-col=ip]{width:120px}.log-table [data-col=result]{width:90px}.log-table .cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-table .col-expand{width:20px;color:var(--text-muted);text-align:center;-webkit-user-select:none;user-select:none}.log-table .log-row.clickable{cursor:pointer}.log-table .log-row.clickable:hover{background:var(--row-hover)}.type-badge{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius);font-size:11px;font-weight:600;font-family:var(--mono-font);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.type-badge--mcp{background:#3b82f61f;color:#2563eb;border:1px solid rgba(59,130,246,.25)}.type-badge--auth{background:#22c55e1f;color:#16a34a;border:1px solid rgba(34,197,94,.25)}.type-badge--config{background:#eab3081f;color:#a16207;border:1px solid rgba(234,179,8,.25)}.type-badge--access{background:#ef44441f;color:#dc2626;border:1px solid rgba(239,68,68,.25)}.type-badge--key{background:#f973161f;color:#c2410c;border:1px solid rgba(249,115,22,.25)}.type-badge--unknown{background:var(--tag-bg);color:var(--text-muted);border:1px solid var(--border)}.log-table .detail-row{background:var(--surface-alt)}.log-table .detail-row td{padding:12px 16px}.detail-content{max-width:100%;overflow:hidden}.detail-grid{display:grid;grid-template-columns:max-content 1fr;column-gap:var(--space-4);row-gap:var(--space-2);margin:0}.detail-grid dt{font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.detail-grid dd{margin:0;word-break:break-word}.detail-error{display:flex;align-items:flex-start;gap:8px}.detail-copy-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);color:var(--text-muted);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.detail-copy-btn:hover{border-color:var(--text-muted);color:var(--text)}.detail-json{margin:0;font-family:var(--mono-font);font-size:12px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.logs-pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;gap:var(--space-4)}.logs-pagination-info{font-size:13px;color:var(--text-muted)}.logs-pager{display:flex;align-items:center;gap:2px}.logs-pager-btn{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text);font-size:13px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.logs-pager-btn:hover:not(:disabled){background:var(--surface-alt);border-color:var(--text-muted)}.logs-pager-btn:disabled{opacity:.4;cursor:default}.logs-pager-btn--active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.logs-pager-btn--active:hover{background:var(--primary-hover)}.logs-pager-dots{min-width:24px;text-align:center;color:var(--text-muted);font-size:13px}.text-muted{color:var(--text-muted)}.tag{display:inline-block;background:var(--tag-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1px var(--space-2);margin:2px var(--space-1) 2px 0;font-size:12px;font-family:var(--mono-font)}.form-group{margin-bottom:var(--space-3)}.form-group label{display:block;font-weight:500;margin-bottom:var(--space-1);font-size:13px}.form-group small{display:block;margin-top:var(--space-1);font-size:12px;color:var(--text-muted)}.form-group.inline{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:0}.form-group.inline label{margin-bottom:0;white-space:nowrap}input[type=text],input[type=password],input[type=email],input[type=date],input[type=datetime-local],input[type=number],input[type=color],textarea,select{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;background:var(--input-bg);color:var(--text);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type=color]{width:52px;padding:2px;height:32px;cursor:pointer}.form-group.inline input[type=text]{width:160px}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius);font-size:13px;font-weight:500;line-height:1.2;cursor:pointer;font-family:inherit;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.btn>svg{flex-shrink:0}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-small{padding:3px 8px;font-size:12px}.btn-full{width:100%}.toolbar{margin:var(--space-3) 0;display:flex;gap:var(--space-2);align-items:center}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius)}.filter-bar .form-group.inline{margin:0}.filter-bar .form-group.inline label{font-size:12px;color:var(--text-muted);letter-spacing:.02em}.log-filter-actions{display:flex;align-items:center;gap:8px}.log-auto-refresh{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.log-auto-refresh:hover{border-color:var(--text-muted)}.log-auto-refresh--active{background:#4ade801a;border-color:#4ade8066;color:#4ade80}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin-slow 2s linear infinite}.pagination{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) 0;font-size:13px}.error-box{background:var(--error-bg);border:1px solid var(--error-border);color:var(--danger);padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3);font-size:13px}.success-box{background:var(--success-bg);border:1px solid var(--success-border);color:#166534;padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3);font-size:13px}.error-text{color:var(--danger);font-size:12px}.confirm-text{font-weight:500;font-size:13px;margin:0 4px}.muted{color:var(--text-muted);font-size:13px}.mono{font-family:var(--mono-font);font-size:12px}.key-reveal{background:var(--key-reveal-bg);border:2px solid var(--key-reveal-border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.key-reveal strong{display:block;margin-bottom:var(--space-2)}.key-value{display:block;background:#0f172a;color:#38bdf8;padding:var(--space-3);border-radius:var(--radius);font-size:14px;font-family:var(--mono-font);word-break:break-all;margin-bottom:var(--space-3)}.create-form{margin-bottom:16px}.server-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.server-row input[type=text]{width:180px}.server-row select{width:80px}.server-row.compact input[type=text]{width:120px}.server-row.compact select{width:60px}.tiering-page{max-width:none!important}.tiering-layout{display:flex;gap:0;min-height:100%}.tiering-sidebar{width:200px;min-width:200px;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:12px 0;margin-right:20px;align-self:flex-start;position:sticky;top:24px}.tiering-sidebar h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 14px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.backend-list{list-style:none;padding:0}.backend-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);cursor:pointer;font-size:13px;transition:background var(--transition-fast);border-left:3px solid transparent}.backend-item:hover{background:var(--surface-alt)}.backend-item.active{background:#2563eb0f;border-left-color:var(--primary);font-weight:600}.backend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backend-tool-count{font-size:12px;color:var(--text-muted);background:var(--tag-bg);border-radius:var(--radius-pill);padding:1px var(--space-2);min-width:28px;text-align:center}.tiering-main{flex:1;min-width:0;max-width:900px}.tiering-main h1{font-size:20px;margin-bottom:12px}.tiering-filters{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;background:var(--card-bg);border:1px solid var(--border);border-radius:6px}.filter-input{flex:1;max-width:300px}.tier-filter-select{width:120px!important}.tier-category{margin-bottom:16px}.tier-category-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--surface-alt);border:1px solid var(--border);border-radius:6px 6px 0 0}.tier-category-header h3{font-size:14px;margin:0}.bulk-actions{display:flex;align-items:center;gap:4px}.btn-tiny{padding:2px 8px;font-size:11px;border-radius:3px;background:var(--btn-secondary-bg);color:var(--text);border:none;cursor:pointer;font-weight:600}.btn-tiny:hover{background:var(--btn-secondary-hover)}.tier-tool-list{background:var(--card-bg);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px}.tier-tool-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.tier-tool-row:last-child{border-bottom:none}.tier-tool-row:hover{background:var(--surface-alt)}.tier-tool-row.tier-2{border-left:3px solid #f59e0b}.tier-tool-row.tier-3{border-left:3px solid #dc2626}.tier-tool-row.tier-1{border-left:3px solid #16a34a}.tool-name{font-family:var(--mono-font);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:12px}.tier-select{width:90px!important;padding:3px 6px!important;font-size:12px!important}.tiering-toolbar{display:flex;align-items:center;gap:10px;margin-top:16px;padding:14px;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;position:sticky;bottom:0}.unsaved-badge{font-size:13px;color:#b45309;background:#fef3c7;padding:3px var(--space-3);border-radius:var(--radius-pill);font-weight:500}.settings-page{max-width:1100px}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.settings-header h1{font-size:22px;margin:0}.settings-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:1px solid var(--border);overflow-x:auto}.settings-tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast);margin-bottom:-1px}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.settings-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-5);overflow:hidden}.settings-card-header{padding:var(--space-4) var(--space-6) var(--space-3);border-bottom:1px solid var(--border)}.settings-card-header h2,.settings-card .settings-card-header h2{font-size:16px;font-weight:600;margin:0 0 4px}.settings-card-header p{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5}.settings-card-body{padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.settings-card-body>.form-group,.settings-card-body>.form-grid-2,.settings-card-body>[data-field]{margin-bottom:0}.settings-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--surface-alt);border-top:1px solid var(--border)}.settings-card-footer .footer-status{margin-right:auto;font-size:13px}.settings-card-body .form-group input[type=text],.settings-card-body .form-group input[type=password],.settings-card-body .form-group input[type=email],.settings-card-body .form-group input[type=number],.settings-card-body .form-group input[type=date],.settings-card-body .form-group input[type=datetime-local],.settings-card-body .form-group select,.settings-card-body .form-group textarea{max-width:520px}.settings-card-body .form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:var(--space-3) var(--space-4);max-width:520px}.settings-card-body .form-group,.settings-card-body .form-grid-2 .form-group{margin-bottom:0}.settings-card-body .form-grid-2 .form-group input{max-width:none}.settings-card-body .form-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:var(--space-5) 0 var(--space-3)}.settings-card-body .form-section-title:first-child{margin-top:0}.checkbox-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.checkbox-row input[type=checkbox]{width:auto;margin:0}.checkbox-row label{margin:0;font-size:13px;cursor:pointer}.field-hint{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.brand-appname-group{max-width:900px}.brand-appname-group input[type=text]{width:100%}.brand-asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-4);max-width:900px}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}@media (max-width: 820px){.backup-actions{grid-template-columns:1fr}}.backup-action-group h4{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--text)}.backup-action-group p.muted{font-size:12px;margin:0 0 12px}.backup-action-group input[type=file]{display:block;margin-top:4px}.advanced-section{border:1px solid var(--border);border-radius:var(--radius);padding:0;background:var(--surface-alt);margin-top:var(--space-4)}.advanced-section>summary{cursor:pointer;padding:12px 16px;font-weight:600;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;list-style:none;-webkit-user-select:none;user-select:none}.advanced-section>summary::-webkit-details-marker{display:none}.advanced-section>summary:before{content:"▸";display:inline-block;margin-right:var(--space-2);transition:transform var(--transition-fast)}.advanced-section[open]>summary:before{transform:rotate(90deg)}.advanced-section>summary:hover{color:var(--text)}.advanced-section[open]>summary{border-bottom:1px solid var(--border)}.advanced-section>.color-themes-wrap{padding:16px}.brand-asset-grid .form-group{margin-bottom:0;min-width:0}@media (max-width: 820px){.brand-asset-grid{grid-template-columns:1fr}}.asset-uploader{display:flex;align-items:center;gap:14px;padding:12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);min-width:0;max-width:520px}.asset-uploader-preview{width:72px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--card-bg);border:1px solid var(--border);border-radius:4px;overflow:hidden;flex-shrink:0}.asset-uploader-preview img{max-width:100%;max-height:100%;object-fit:contain}.asset-uploader-preview.favicon{width:56px;height:56px}.asset-uploader-preview .placeholder{font-size:11px;color:var(--text-muted)}.asset-uploader-actions{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.asset-uploader-actions input[type=file]{min-width:0;flex:1 1 0;max-width:100%;padding:4px;font-size:12px}.tls-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.tls-layout__form{display:flex;flex-direction:column;gap:16px}.tls-layout__form .form-group{margin-bottom:0}.tls-layout__form .form-grid-2{max-width:none;grid-template-columns:1fr 1fr}@media (max-width: 820px){.tls-layout{grid-template-columns:1fr}}.cert-card{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:var(--radius);border:1px solid}.cert-card--ok{background:#4ade800f;border-color:#4ade8040}.cert-card--warning{background:#fbbf2414;border-color:#fbbf244d}.cert-card--expired{background:#ef444414;border-color:#ef44444d}.cert-card__icon{flex-shrink:0;padding-top:2px}.cert-card--ok .cert-card__icon{color:#4ade80}.cert-card--warning .cert-card__icon{color:#fbbf24}.cert-card--expired .cert-card__icon{color:#ef4444}.cert-card__info{flex:1;min-width:0}.cert-card__title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;margin-bottom:8px}.cert-card__status{font-size:11px;font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill)}.cert-card__status--ok{background:#4ade8033;color:#4ade80}.cert-card__status--warning{background:#fbbf2433;color:#fbbf24}.cert-card__status--expired{background:#ef444433;color:#ef4444}.cert-card__details{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-muted)}.cert-card__details strong{color:var(--text);font-weight:500}.audit-config-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.audit-config-row .form-group{flex:1;min-width:120px}.audit-config-row select{width:100%}.audit-delete-group{display:flex;align-items:flex-end;padding-bottom:2px}.entra-config-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.entra-toggle{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-alt);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;line-height:1.4;color:var(--text-muted);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);white-space:nowrap;flex-shrink:0}.entra-toggle:hover{border-color:var(--text-muted)}.entra-toggle--active{background:#4ade801a;border-color:#4ade8066;color:#4ade80}.entra-toggle__dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);transition:background var(--transition-fast)}.entra-toggle--active .entra-toggle__dot{background:#4ade80;box-shadow:0 0 6px #4ade8080}.entra-config-card .form-group{margin-top:16px}.entra-expiry-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.entra-expiry-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-alt);color:var(--text-muted);font-size:13px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.entra-expiry-btn:hover{border-color:var(--text-muted);color:var(--text)}.entra-expiry-btn--active{background:var(--primary);border-color:var(--primary);color:#fff}.entra-expiry-input{width:100px;margin-left:4px}.entra-groups-card .entra-groups-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.entra-groups-body{padding-top:8px!important}.entra-groups-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-muted);text-align:center}.entra-groups-empty p{margin:0}.entra-groups-empty svg{opacity:.4}.entra-group-list{display:flex;flex-direction:column;gap:2px}.entra-group-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color var(--transition-fast)}.entra-group-item--expanded{border-color:var(--primary)}.entra-group-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.entra-group-row:hover{background:var(--surface-alt)}.entra-group-row__chevron{color:var(--text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.entra-group-row__chevron--open{transform:rotate(180deg)}.entra-group-row__name{font-size:14px;font-weight:600;flex-shrink:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entra-group-row__count{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);flex-shrink:0;margin-left:auto}.entra-badge{font-size:11px;font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.03em}.entra-badge--admin{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.entra-server-chip{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface-alt);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.entra-tier-dot{font-size:10px;font-weight:700;padding:1px 4px;border-radius:4px}.entra-tier-dot--1{background:#4ade8033;color:#4ade80}.entra-tier-dot--2{background:#60a5fa33;color:#60a5fa}.entra-tier-dot--3{background:#fbbf2433;color:#fbbf24}.entra-group-detail{border-top:1px solid var(--border);padding:16px}.entra-group-fields{margin-bottom:16px}.entra-group-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.entra-admin-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.entra-admin-toggle input[type=checkbox]{width:16px;height:16px;margin:0}.entra-confirm-delete{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--danger, #ef4444)}.btn.btn-ghost{background:transparent;border:1px solid transparent}.btn.btn-ghost:hover{background:var(--surface-alt);border-color:var(--border)}.btn.btn-danger-text{color:var(--danger, #ef4444)}.entra-group-servers{border-top:1px solid var(--border);padding-top:14px;display:flex;flex-direction:column;gap:8px}.entra-group-servers-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px}.entra-server-list{display:flex;flex-direction:column;gap:6px}.entra-server-row{display:flex;align-items:center;gap:10px}.entra-server-name{display:flex;align-items:center;gap:8px;flex:1;min-width:0;color:var(--text-muted)}.entra-server-name select,.entra-server-name input{flex:1;padding:6px 10px;font-size:13px;max-width:240px}.entra-tier-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0}.entra-tier-seg{padding:var(--space-1) var(--space-3);font-size:12px;font-weight:600;border:none;background:var(--surface-alt);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);border-right:1px solid var(--border)}.entra-tier-seg:last-child{border-right:none}.entra-tier-seg:hover{color:var(--text)}.entra-tier-seg--active{color:#fff;font-weight:700}.entra-tier-seg--t1{background:#4ade8040;color:#4ade80}.entra-tier-seg--t2{background:#60a5fa40;color:#60a5fa}.entra-tier-seg--t3{background:#fbbf2440;color:#fbbf24}.btn.btn-icon{padding:6px 8px}@media (max-width: 720px){.entra-config-title-row,.entra-groups-card .entra-groups-header-row{flex-direction:column}.entra-server-row{flex-wrap:wrap}}.color-theme-group{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:var(--surface-alt)}.color-theme-group h4{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 12px}.color-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 16px}.color-row{display:flex;align-items:center;gap:8px}.color-row input[type=color]{width:36px;height:28px;padding:2px;flex-shrink:0}.color-row input[type=text]{width:90px!important;max-width:90px!important;font-family:var(--mono-font);font-size:12px;padding:4px 6px}.color-row label{font-size:12px;color:var(--text-muted);margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.color-themes-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.color-themes-wrap{grid-template-columns:1fr}}.confirm-inline{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius)}.confirm-inline span{flex:1;font-size:13px;color:var(--danger);font-weight:500}.settings-card-body .data-table{margin-bottom:12px}.settings-tab-content{margin-top:20px}.settings-page>.segmented-control{margin-top:8px}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;border:2px dashed var(--border);border-radius:var(--radius, 6px);color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone--active{border-color:var(--primary);background:rgba(var(--primary-rgb, 59, 130, 246),.06)}.drop-zone p{margin:0;font-size:14px}.footer-status{display:inline-flex;align-items:center;gap:6px;font-size:13px}.footer-status--ok{color:var(--status-ok)}.footer-status--error{color:var(--status-err)}.branding-tab-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}@media (max-width: 960px){.branding-tab-layout{grid-template-columns:1fr}.branding-tab-preview{order:-1}}.branding-tab-form,.branding-tab-preview{min-width:0}.branding-preview-sticky{position:sticky;top:20px}.branding-preview-sticky h4{font-size:13px;color:var(--text-muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em}.branding-preview-card{border-radius:var(--radius, 6px);overflow:hidden;display:flex;height:200px;border:1px solid var(--border);font-size:12px}.branding-preview-sidebar{width:64px;background:var(--preview-sidebar-bg);color:var(--preview-sidebar-text);padding:12px 8px;display:flex;flex-direction:column;gap:12px;align-items:center;flex-shrink:0}.branding-preview-logo{max-width:40px;max-height:28px;object-fit:contain}.branding-preview-appname{font-size:9px;text-align:center;opacity:.8;line-height:1.2;word-break:break-word}.branding-preview-nav{display:flex;flex-direction:column;gap:6px;width:100%}.branding-preview-nav-item{height:6px;border-radius:3px;background:var(--preview-sidebar-text);opacity:.2}.branding-preview-nav-item--active{opacity:.5;background:var(--preview-primary)}.branding-preview-main{flex:1;background:var(--preview-bg);color:var(--preview-text);display:flex;flex-direction:column}.branding-preview-header{padding:10px 12px;border-bottom:1px solid var(--preview-border)}.branding-preview-title{height:10px;width:80px;background:var(--preview-text);opacity:.3;border-radius:3px}.branding-preview-content{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1}.branding-preview-block{height:28px;background:var(--preview-surface);border:1px solid var(--preview-border);border-radius:4px}.branding-preview-block--short{width:65%}.servers-overview-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6, 24px)}.servers-overview-pills{display:flex;align-items:center;gap:var(--space-2, 8px);flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:var(--space-1);font-size:13px;font-weight:600;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);white-space:nowrap}.pill--ok{background:#16a34a26;color:#16a34a}.pill--err{background:#dc262626;color:#dc2626}.pill--warn{background:#ca8a0426;color:#ca8a04}.pill--muted{background:var(--surface-alt);color:var(--text-muted)}.servers-overview-actions{display:flex;gap:var(--space-2, 8px)}.server-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4, 16px)}@media (max-width: 768px){.server-card-grid{grid-template-columns:1fr}}.server-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.server-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.server-card--active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.server-card-header{display:flex;align-items:center;gap:var(--space-2, 8px);margin-bottom:var(--space-3, 12px)}.server-card-name{font-size:14px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-card-body{display:flex;align-items:center;gap:var(--space-4, 16px);margin-bottom:var(--space-3, 12px);min-height:36px}.server-card-tool-count{display:flex;flex-direction:column;align-items:center;min-width:48px}.server-card-tool-num{font-size:22px;font-weight:700;line-height:1;color:var(--text)}.server-card-tool-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.server-card-error{font-size:12px;color:var(--status-err);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-card-footer{display:flex;align-items:center;gap:var(--space-2, 8px);border-top:1px solid var(--border);padding-top:var(--space-3, 12px)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:var(--btn-secondary-bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.btn-icon:hover{background:var(--btn-secondary-hover);color:var(--text);border-color:var(--text-muted)}.btn-danger-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-danger-ghost:hover{background:#dc26261a;color:#dc2626;border-color:#dc26264d}.server-panel-content{display:flex;flex-direction:column;height:100%;min-height:0}.server-panel-content .segmented-control{margin-bottom:var(--space-4, 16px);flex-shrink:0}.server-panel-tab-body{flex:1;overflow-y:auto;min-height:0;padding-bottom:var(--space-4, 16px)}.server-panel-footer{display:flex;align-items:center;gap:var(--space-2, 8px);border-top:1px solid var(--border);padding-top:var(--space-3, 12px);margin-top:auto;flex-shrink:0}.server-panel-footer-spacer{flex:1}.tier-tool-main{display:flex;align-items:center;gap:8px;width:100%}.tier-tool-expand-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--text);text-align:left;flex:1;min-width:0}.tier-tool-expand-btn:hover{color:var(--primary)}.tier-tool-expand-btn .tool-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tier-tool-schema{margin-top:8px;padding:10px 12px;background:var(--surface-alt);border-radius:var(--radius, 6px);border:1px solid var(--border)}.tier-tool-desc{font-size:12px;color:var(--text-muted);margin:0 0 8px;line-height:1.5}.tier-tool-json{font-size:11px;line-height:1.5;margin:0;overflow-x:auto;color:var(--text);white-space:pre-wrap;word-break:break-word}.tiering-filter-search{display:flex;align-items:center;gap:6px;flex:1;min-width:0;color:var(--text-muted)}.tiering-filter-search .filter-input{flex:1;min-width:0;border:none;background:transparent;padding:0;font-size:13px;color:var(--text);outline:none}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.running{background:var(--status-ok)}.status-dot.stopped{background:var(--status-muted)}.status-dot.error{background:var(--status-err)}.status-dot.starting{background:var(--status-warn)}.toggle-switch{position:relative;width:40px;height:22px;margin-left:auto}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--btn-secondary-hover);border-radius:22px;transition:background var(--transition-fast)}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform var(--transition-fast)}.toggle-switch input:checked+.toggle-slider{background:var(--status-ok)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.kv-row{display:grid;grid-template-columns:180px 1fr auto auto;align-items:center;gap:8px;margin-bottom:6px;max-width:680px}.kv-row input[type=text],.kv-row input[type=password]{max-width:none!important}.kv-row .btn{flex-shrink:0}.kv-row-add{margin-top:8px}.tiering-filters{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius)}.settings-card-body .tiering-filters{margin-top:0}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);width:480px;max-width:90vw;overflow:hidden;box-shadow:var(--shadow-xl)}.dialog-header{padding:var(--space-4) var(--space-6) var(--space-3);border-bottom:1px solid var(--border)}.dialog-header h2{font-size:16px;font-weight:600;line-height:1.25;margin:0}.dialog-body{padding:var(--space-5) var(--space-6)}.dialog-body .form-group input,.dialog-body .form-group select{max-width:none}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--surface-alt);border-top:1px solid var(--border)}.login-version{position:absolute;bottom:14px;right:16px;font-size:11px;color:#94a3b880;background:#ffffff0d;padding:2px 10px;border-radius:999px;letter-spacing:.03em}.dashboard-section{margin-bottom:28px}.dashboard-section-title{margin:0 0 10px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.dashboard-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dashboard-section-header .dashboard-section-title{margin:0}.section-title-icon{color:var(--text-muted);flex-shrink:0;opacity:.7}.stat-card-icon{flex-shrink:0;opacity:.7}.traffic-section{display:flex;gap:var(--space-6, 24px);align-items:flex-start}.traffic-section--compact{flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch}.traffic-section--compact .traffic-chart-wrapper{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.traffic-section--compact .traffic-chart{flex:1;min-height:0}.traffic-header-right{display:flex;align-items:center;gap:12px}.traffic-header-stat{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.traffic-header-stat .label{font-weight:700;color:var(--text)}.traffic-header-stat .value--error{color:var(--status-err)}.dashboard-server-row--clickable{cursor:pointer}.dashboard-server-row--clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.dashboard-usage-panel{display:flex;flex-direction:column;gap:var(--space-4, 16px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}@media (max-width: 768px){.traffic-section{flex-direction:column}.traffic-header-right{flex-wrap:wrap;gap:8px}}.status-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);min-height:152px;padding:var(--space-4);background:var(--card-bg);border:1px solid var(--border);border-left:4px solid var(--text-muted);border-radius:var(--radius);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.status-card:hover{box-shadow:var(--shadow-sm)}.status-card.status-active{border-left-color:var(--status-ok)}.status-card.status-warning{border-left-color:var(--status-warn)}.status-card.status-error{border-left-color:var(--status-err)}.status-card.status-inactive{border-left-color:var(--text-muted)}.status-card-head{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.status-card-head svg{flex-shrink:0}.status-card-value{font-size:22px;font-weight:600;color:var(--text);line-height:1.2;word-break:break-word}.status-card-value-suffix{font-size:13px;font-weight:400;color:var(--text-muted)}.status-card-details{margin-top:auto;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.status-card-detail{display:flex;justify-content:space-between;gap:8px}.status-card-detail-label{color:var(--text-muted)}.status-card-detail-value{color:var(--text);font-weight:500;text-align:right;word-break:break-word}.chip{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.chip-ok{background:#22c55e1f;color:#15803d;border:1px solid rgba(34,197,94,.35)}.chip-error{background:#ef44441f;color:#b91c1c;border:1px solid rgba(239,68,68,.35)}.chip-denied{background:#eab30824;color:#a16207;border:1px solid rgba(234,179,8,.4)}.chip-neutral{background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border)}.log-details-row td{background:var(--surface-alt);padding:10px 16px;font-size:12px}.log-details-row pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text)}.log-row.clickable{cursor:pointer}.log-row.clickable:hover{background:var(--surface-alt)}.filter-bar-actions{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.traffic-chart{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px 4px;display:flex;flex-direction:column;height:100%}.traffic-chart-summary{display:flex;gap:18px;font-size:11px;color:var(--text-muted);margin-bottom:2px;flex-shrink:0}.traffic-chart-summary strong{color:var(--text);font-weight:600}.traffic-chart-summary .traffic-chart-errors strong{color:var(--status-err)}.traffic-chart-svg{display:block;width:100%;flex:1;min-height:0}.traffic-chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 3;opacity:.7}.traffic-chart-axis{fill:var(--text-muted);font-size:10px;font-family:var(--mono-font, ui-monospace, monospace)}.traffic-chart-bar{fill:var(--primary);opacity:.85;transition:opacity .1s}.traffic-chart-bar.hover{opacity:1}.traffic-chart-bar-error{fill:var(--status-err);opacity:.9}.traffic-chart-empty{padding:28px;text-align:center;color:var(--text-muted);font-size:13px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.traffic-chart-tooltip{position:absolute;top:var(--space-2);right:var(--space-4);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:11px;color:var(--text);pointer-events:none;box-shadow:var(--shadow-lg)}.traffic-chart-tooltip .tooltip-time{font-weight:600;margin-bottom:2px;color:var(--text-muted)}.traffic-chart-tooltip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.traffic-chart-tooltip .dot-req{background:var(--primary)}.traffic-chart-tooltip .dot-err{background:#ef4444}.dashboard-page{position:relative}.dashboard-grid{margin:0 -8px}.dashboard-widget{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;position:relative}.dashboard-widget--editing{box-shadow:0 0 0 2px var(--primary);cursor:grab}.dashboard-widget--editing:active{cursor:grabbing}.widget-drag-handle{position:absolute;top:0;left:0;right:0;height:24px;display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-muted);font-size:12px;opacity:.6;z-index:5;background:linear-gradient(to bottom,var(--card-bg) 60%,transparent)}.widget-drag-handle:active{cursor:grabbing}.widget-remove-btn{position:absolute;top:4px;right:4px;z-index:10;width:22px;height:22px;border-radius:50%;border:none;background:var(--error, #ef4444);color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity var(--transition-fast)}.widget-remove-btn:hover{opacity:1}.widget-content{flex:1;overflow:hidden;height:100%;display:flex;flex-direction:column}.widget-content>.dashboard-section{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0}.widget-content>.dashboard-section>.dashboard-section-title,.widget-content>.dashboard-section>.dashboard-section-header{flex-shrink:0;padding:12px 16px 8px;margin:0;background:var(--card-bg);z-index:2}.widget-content>.dashboard-section>.dashboard-server-list,.widget-content>.dashboard-section>.dashboard-usage-panel,.widget-content>.dashboard-section>.dashboard-empty,.widget-content>.dashboard-section>table,.widget-content>.dashboard-section>.traffic-section,.widget-content>.dashboard-section>.logs-empty{flex:1;overflow:auto;padding:0 16px;min-height:0}.widget-content .dashboard-server-list,.widget-content .dashboard-usage-panel,.widget-content .traffic-chart,.widget-content table{background:transparent;border:none;border-radius:0}.widget-content .dashboard-server-list{gap:0;padding:0}.widget-content>.dashboard-section>.traffic-section{padding:0}.widget-content .traffic-chart{padding:6px 8px 2px}.widget-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:16px 12px;text-align:center;gap:4px}.widget-stat .stat-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;display:inline-flex;align-items:center;gap:4px}.widget-stat .stat-card-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.2}.widget-stat .stat-card-subtext{font-size:11px;color:var(--text-muted)}.widget-stat.stat-card--green .stat-card-value{color:var(--success, #22c55e)}.widget-stat.stat-card--yellow .stat-card-value{color:var(--warning, #eab308)}.widget-stat.stat-card--red .stat-card-value{color:var(--error, #ef4444)}.trend-arrow{font-size:12px;color:var(--text-muted)}.trend-arrow--red{color:var(--error, #ef4444)}.trend-arrow--green{color:var(--success, #22c55e)}.trend-prev{font-size:11px;color:var(--text-muted)}.widget-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:12px 16px 8px;margin:0}.widget-table-wrap{padding:0 12px 12px;overflow:auto;flex:1}.widget-table-wrap table{width:100%}.widget-traffic{display:flex;flex-direction:column;height:100%;padding:12px;gap:8px}.widget-traffic-header{display:flex;justify-content:space-between;align-items:center}.widget-traffic-chart{flex:1;min-height:0}.widget-traffic-summary{display:flex;gap:24px;font-size:13px}.widget-traffic-summary .label{color:var(--text-muted);margin-right:6px}.widget-traffic-summary .value--error{color:var(--error, #ef4444)}.widget-servers{display:flex;flex-direction:column;height:100%}.widget-servers .dashboard-server-row{padding:8px 12px}.widget-usage{padding:12px;display:flex;flex-direction:column;gap:16px;height:100%;overflow:auto}.widget-security-events{display:flex;flex-direction:column;height:100%}.widget-security-events .log-table{font-size:12px}.dashboard-edit-actions{display:flex;gap:8px;align-items:center}.dashboard-edit-btn{padding:6px 14px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid var(--border);background:var(--card-bg);color:var(--text);transition:background var(--transition-fast),border-color var(--transition-fast)}.dashboard-edit-btn:hover{background:var(--surface-alt)}.dashboard-edit-btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.dashboard-edit-btn--primary:hover{background:var(--primary-hover)}.widget-unknown{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:13px}.react-grid-item.react-grid-placeholder{background:var(--primary);opacity:.15;border-radius:var(--radius)}.react-grid-item>.react-resizable-handle{display:none}.dashboard-widget--editing .react-resizable-handle{display:block}.dashboard-server-list{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px}.dashboard-server-row{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:13px;transition:background var(--transition-fast)}.dashboard-server-row:hover{background:var(--surface-alt)}.dashboard-server-row .server-name{color:var(--text);font-weight:500}.dashboard-server-row .server-type{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.dashboard-server-row .server-tools{color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.dashboard-server-row .server-error{color:var(--status-err);font-size:11px;grid-column:1 / -1;margin-top:2px;padding-left:20px}.server-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.server-status-dot.running{background:var(--status-ok);box-shadow:0 0 6px #22c55e73}.server-status-dot.stopped{background:var(--text-muted);opacity:.5}.server-status-dot.errored{background:var(--status-err);box-shadow:0 0 6px #ef444473}.dashboard-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}.form-group.field-error input,.form-group.field-error select,.form-group.field-error textarea{border-color:var(--status-err)}.form-group.field-error input:focus,.form-group.field-error select:focus,.form-group.field-error textarea:focus{box-shadow:0 0 0 2px #ef444433}.field-error-message{color:var(--status-err);font-size:12px;margin-top:var(--space-1)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);max-width:440px;width:90%;box-shadow:var(--shadow-xl)}.modal h2{margin:0 0 var(--space-4) 0;font-size:16px;font-weight:600;line-height:1.25}.modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-4)}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;color:var(--sidebar-text);cursor:pointer;border-radius:var(--radius);text-align:left;transition:background var(--transition-fast)}.user-menu-trigger:hover{background:var(--sidebar-hover)}.user-menu-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.user-menu-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}.user-menu-info{display:flex;flex-direction:column;overflow:hidden;min-width:0}.user-menu-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-source{font-size:11px;color:var(--sidebar-text);opacity:.55}.user-menu-dropdown{position:absolute;bottom:calc(100% + 6px);left:var(--space-2);right:var(--space-2);background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-1);box-shadow:var(--shadow-lg);z-index:210}.user-menu-dropdown button{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius);font-size:13px;transition:background var(--transition-fast)}.user-menu-dropdown button:hover{background:var(--surface-alt)}.user-menu-dropdown hr{border:none;border-top:1px solid var(--border);margin:var(--space-1) 0}.segmented-control{position:relative;display:inline-flex;background:var(--surface-alt);border-radius:var(--radius);padding:3px;gap:2px}.segmented-highlight{position:absolute;top:3px;height:calc(100% - 6px);background:var(--primary);border-radius:calc(var(--radius) - 1px);transition:left var(--transition-normal),width var(--transition-normal);z-index:0}.segmented-btn{position:relative;z-index:1;background:none;border:none;padding:6px 16px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border-radius:calc(var(--radius) - 1px);transition:color var(--transition-fast);white-space:nowrap}.segmented-btn:hover{color:var(--text);background:#ffffff0a}.segmented-btn--active{color:#fff}.segmented-btn--active:hover{background:none;color:#fff}.segmented-control--sm .segmented-btn{padding:4px 10px;font-size:12px}.segmented-option-icon{display:inline-flex;align-items:center}.segmented-option-content{display:inline-flex;align-items:center;gap:6px}@media (max-width: 767px){.segmented-option-content .segmented-option-label{display:none}}.sparkline{display:block;flex-shrink:0}.slide-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:900;opacity:0;pointer-events:none;transition:opacity var(--transition-normal)}.slide-panel-backdrop--open{opacity:1;pointer-events:auto}.slide-panel{position:fixed;top:0;right:0;bottom:0;z-index:910;background:var(--card-bg);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--transition-normal);box-shadow:-4px 0 24px #0003;max-width:100vw}.slide-panel--open{transform:translate(0)}.slide-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);flex-shrink:0}.slide-panel-header h2{font-size:16px;font-weight:600;margin:0}.slide-panel-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);border:none;background:none;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.slide-panel-close:hover{background:var(--surface-alt);color:var(--text)}.slide-panel-body{flex:1;overflow-y:auto;padding:var(--space-6)}.health-bar{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.health-bar-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-4);flex-wrap:wrap}.health-bar-left{display:flex;align-items:center;gap:var(--space-4)}.health-bar-uptime{font-size:13px;font-weight:600;color:var(--text)}.health-bar-version{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}.health-bar-pills{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.health-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:500;white-space:nowrap}.health-pill--ok{background:var(--status-ok-bg);color:var(--status-ok)}.health-pill--warn{background:var(--status-warn-bg);color:var(--status-warn)}.health-pill--muted{background:var(--status-muted-bg);color:var(--status-muted)}.health-bar-restart{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);background:var(--status-warn-bg);border-top:1px solid rgba(234,179,8,.2);font-size:13px;font-weight:500;color:var(--status-warn)}.health-bar-restart .btn{gap:var(--space-1)}.usage-bar{display:flex;flex-direction:column;gap:var(--space-3)}.usage-bar-label{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.usage-bar-list{display:flex;flex-direction:column;gap:var(--space-2)}.usage-bar-item{display:flex;align-items:center;gap:var(--space-2)}.usage-bar-name{flex:0 1 100px;min-width:60px;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.usage-bar-track{flex:1;height:8px;background:var(--surface-alt);border-radius:4px;overflow:hidden}.usage-bar-fill{height:100%;background:var(--primary);border-radius:4px;transition:width var(--transition-normal);min-width:2px}.usage-bar-count{flex:0 0 32px;text-align:right;font-size:11px;font-weight:600;font-family:var(--font-mono);color:var(--text-muted)}.usage-bar-empty{font-size:13px;color:var(--text-muted);padding:var(--space-4) 0;text-align:center}.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 4px 2px 10px;background:var(--surface-alt);border:1px solid var(--border);border-radius:99px;font-size:12px;color:var(--text)}.filter-chip-label{color:var(--text-muted);font-weight:500}.filter-chip-value{font-weight:600}.filter-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:none;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.filter-chip-remove:hover{background:var(--border);color:var(--text)}.filter-chips-clear{background:none;border:none;font-size:12px;color:var(--primary);cursor:pointer;padding:2px 6px;transition:color var(--transition-fast)}.filter-chips-clear:hover{color:var(--primary-hover);text-decoration:underline}.security-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4, 16px);margin-bottom:var(--space-6, 24px)}@media (max-width: 1024px){.security-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.security-stats{grid-template-columns:1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius, 8px);padding:var(--space-4, 16px) var(--space-5, 20px);display:flex;flex-direction:column;gap:var(--space-1, 4px);transition:border-color var(--transition-fast)}.stat-card--green{border-left:3px solid var(--status-ok)}.stat-card--red{border-left:3px solid var(--status-err)}.stat-card--yellow{border-left:3px solid var(--status-warn)}.stat-card--neutral{border-left:3px solid var(--primary)}.stat-card-subtext{font-size:12px;color:var(--text-muted);line-height:1.3}.stat-card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.stat-card-value{font-size:32px;font-weight:700;line-height:1.1;color:var(--text)}.trend-arrow{font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.trend-arrow--red{color:var(--status-err)}.trend-arrow--green{color:var(--status-ok)}.trend-arrow--neutral{color:var(--text-muted)}.trend-prev{font-size:11px;color:var(--text-muted);font-weight:400}.security-timeline{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius, 8px);padding:var(--space-4, 16px) var(--space-5, 20px);margin-bottom:var(--space-6, 24px)}.security-timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4, 16px);flex-wrap:wrap;gap:var(--space-3, 12px)}.security-timeline-controls{display:flex;align-items:center;gap:var(--space-3, 12px)}.security-bottom{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4, 16px)}@media (max-width: 768px){.security-bottom{grid-template-columns:1fr}}.blocked-ips-table,.key-events-table{width:100%}.blocked-ips-table td,.blocked-ips-table th,.key-events-table td,.key-events-table th{padding:var(--space-2, 8px) var(--space-3, 12px)}.dashboard-header-actions{display:flex;justify-content:flex-start;margin-bottom:var(--space-3, 12px)}.widget-add-trigger{width:36px;height:36px;border-radius:var(--radius, 6px);border:1px dashed var(--border);background:var(--surface);color:var(--text-muted);font-size:20px;font-weight:400;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.widget-add-trigger:hover{border-color:var(--primary);color:var(--primary);background:var(--surface-alt, #f8fafc)}.widget-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.widget-picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius, 8px);width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003;animation:slideUp .2s ease-out;outline:none}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.widget-picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4, 16px) var(--space-5, 20px);border-bottom:1px solid var(--border)}.widget-picker-header h3{font-size:16px;font-weight:600;color:var(--text);margin:0}.widget-picker-close{background:none;border:none;font-size:22px;line-height:1;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius, 4px);transition:color var(--transition-fast),background var(--transition-fast)}.widget-picker-close:hover{color:var(--text);background:var(--surface-alt, #f8fafc)}.widget-picker-body{overflow-y:auto;padding:var(--space-4, 16px) var(--space-5, 20px)}.widget-picker-category{margin-bottom:var(--space-4, 16px)}.widget-picker-category:last-child{margin-bottom:0}.widget-picker-category-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-2, 8px)}.widget-picker-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2, 8px) var(--space-3, 12px);border-radius:var(--radius, 6px);transition:background var(--transition-fast)}.widget-picker-item:hover{background:var(--surface-alt, #f8fafc)}.widget-picker-item--disabled{opacity:.5}.widget-picker-item-info{display:flex;flex-direction:column;gap:2px}.widget-picker-item-label{font-size:14px;font-weight:500;color:var(--text);display:inline-flex;align-items:center;gap:6px}.widget-picker-item-icon{color:var(--text-muted);flex-shrink:0}.widget-picker-item-desc{font-size:12px;color:var(--text-muted)}.widget-picker-add-btn{font-size:12px;font-weight:500;padding:var(--space-1, 4px) var(--space-3, 12px);border:1px solid var(--border);border-radius:var(--radius, 4px);background:var(--surface);color:var(--primary);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast)}.widget-picker-add-btn:hover:not(:disabled){background:var(--surface-alt, #f8fafc);border-color:var(--primary)}.widget-picker-add-btn:disabled{color:var(--text-muted);cursor:default}.widget-row{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.stat-card--removable{position:relative}.stat-card--removable .remove-btn{position:absolute;top:var(--space-2, 8px);right:var(--space-2, 8px);width:22px;height:22px;border:none;border-radius:var(--radius, 4px);background:transparent;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.stat-card--removable:hover .remove-btn{opacity:1}.stat-card--removable .remove-btn:hover{color:var(--danger, #dc2626);background:var(--error-bg, #fee2e2)}.column-picker{position:relative;display:inline-block}.column-picker__trigger{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-1) var(--space-2);cursor:pointer;font-size:1rem;line-height:1;color:var(--text-muted);transition:color var(--transition-fast),border-color var(--transition-fast)}.column-picker__trigger:hover{color:var(--text);border-color:var(--text-muted)}.column-picker__dropdown{position:absolute;right:0;top:100%;margin-top:var(--space-1);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);box-shadow:var(--shadow-lg);z-index:100;min-width:200px}.column-picker__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;font-size:13px;color:var(--text);-webkit-user-select:none;user-select:none}.column-picker__item input[type=checkbox]{accent-color:var(--primary)}.column-picker__reset{display:block;margin-top:var(--space-2);padding-top:var(--space-2);border:none;border-top:1px solid var(--border);background:none;color:var(--primary);font-size:13px;cursor:pointer;width:100%;text-align:left}.column-picker__reset:hover{text-decoration:underline}.logs-table-toolbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.upload-area{display:flex;align-items:center;gap:.75rem;padding:1.5rem;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s;color:var(--text-secondary)}.upload-area:hover{border-color:var(--accent);background:var(--surface-hover)}.settings-card-actions{display:flex;gap:.5rem}.release-notes{white-space:pre-wrap;word-break:break-word;font-size:.875rem;line-height:1.5;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;max-height:300px;overflow-y:auto}.checksum-info{margin-top:.5rem;font-size:.875rem;display:flex;align-items:center;gap:.375rem}.checksum-ok{color:var(--success);display:flex;align-items:center;gap:.375rem}.checksum-warn{color:var(--warning);display:flex;align-items:center;gap:.375rem}.checksum-neutral{color:var(--text-secondary);font-family:monospace;font-size:.8125rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
