@charset "UTF-8";:root{--bg-primary: #0a0c12;--bg-secondary: #12141d;--bg-elevated: #181b27;--border: rgba(148, 163, 200, .14);--border-strong: rgba(148, 163, 200, .28);--text-primary: #e8eaf2;--text-secondary: #9aa0b5;--text-muted: #6b7186;--accent: #7c86ff;--accent-strong: #6366f1;--accent-2: #a78bfa;--accent-soft: rgba(124, 134, 255, .12);--accent-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--success: #4ade80;--warning: #fbbf24;--danger: #f87171;--neutral: #94a3b8;--radius: 10px;--radius-lg: 16px;--shadow: 0 8px 24px rgba(0, 0, 0, .35);--ring: 0 0 0 3px rgba(124, 134, 255, .35);--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Fira Code", "JetBrains Mono", Menlo, monospace;--sidebar-w: 248px;--topbar-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{font-family:var(--font-sans);background:radial-gradient(1200px 600px at 85% -10%,rgba(99,102,241,.14),transparent 60%),radial-gradient(900px 500px at -10% 100%,rgba(139,92,246,.1),transparent 55%),var(--bg-primary);background-attachment:fixed;color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}::selection{background:#7c86ff59}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:clamp(1.35rem,2.5vw,1.75rem);font-weight:700;letter-spacing:-.02em}h2{font-size:1.05rem;font-weight:650;letter-spacing:-.01em}.mono{font-family:var(--font-mono);font-size:.85em}.muted{color:var(--text-secondary)}#sentinel-app{display:flex;min-height:100vh}main{flex:1;width:100%;max-width:1200px;padding:2rem;margin-inline:auto}main.with-sidebar{margin-left:var(--sidebar-w);margin-inline:var(--sidebar-w) auto}.topbar{display:none;position:fixed;inset:0 0 auto 0;height:var(--topbar-h);z-index:120;align-items:center;gap:.75rem;padding:0 1rem;background:#12141dd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.topbar .logo{width:24px;height:24px}.topbar .brand{font-weight:700}.burger{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-primary);cursor:pointer}.burger:hover{border-color:var(--border-strong)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);background:#12141db8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:140;transition:transform .25s ease}.sidebar-header{display:flex;align-items:center;gap:.7rem;padding:1.15rem 1.1rem;border-bottom:1px solid var(--border)}.sidebar-header .logo{width:28px;height:28px}.sidebar-header .brand{font-weight:750;font-size:1.05rem;letter-spacing:-.01em;background:linear-gradient(90deg,#e8eaf2,#aab0ff);-webkit-background-clip:text;background-clip:text;color:transparent}.nav-links{list-style:none;padding:.8rem .6rem;flex:1;display:flex;flex-direction:column;gap:2px}.nav-links li a{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:8px;color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.nav-links li a svg{width:18px;height:18px;flex-shrink:0;opacity:.85}.nav-links li a:hover{background:#94a3c814;color:var(--text-primary);text-decoration:none}.nav-links li a.router-link-active{color:#fff;background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.sidebar-footer{padding:.9rem;border-top:1px solid var(--border)}.sidebar-footer .user-chip{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.sidebar-footer .avatar{width:30px;height:30px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:700;color:#fff;background:var(--accent-grad)}.sidebar-footer .user-email{font-size:.78rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backdrop{display:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.2rem;background:var(--accent-grad);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:0 4px 14px #6366f159;transition:transform .15s,box-shadow .15s,filter .15s}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 6px 18px #6366f173;text-decoration:none}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-ghost,.btn-logout,.btn-page{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .8rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;font-size:.83rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.btn-ghost:hover:not(:disabled),.btn-logout:hover:not(:disabled),.btn-page:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:#94a3c80f}.btn-ghost:disabled,.btn-logout:disabled,.btn-page:disabled{opacity:.4;cursor:not-allowed}.btn-logout{width:100%}.btn-logout:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:#f871710f}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;min-width:560px}.data-table th,.data-table td{padding:.7rem 1rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.data-table th{font-size:.72rem;font-weight:650;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.data-table tbody tr:last-child td{border-bottom:none}.data-table .clickable{cursor:pointer;transition:background .15s}.data-table .clickable:hover{background:#7c86ff12}input,select,textarea{font-family:inherit;accent-color:var(--accent-strong)}input[type=text],input[type=email],input[type=url],input[type=search],select,textarea{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px}input[type=text]::placeholder,input[type=email]::placeholder,input[type=url]::placeholder,input[type=search]::placeholder,select::placeholder,textarea::placeholder{color:var(--text-muted)}input[type=text]:focus,input[type=email]:focus,input[type=url]:focus,input[type=search]:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.status-badge{display:inline-flex;align-items:center;gap:.4em;padding:.22em .65em;border-radius:999px;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge.large{font-size:.85rem;padding:.3em .85em}.status-badge.success{color:var(--success);background:#4ade801a;border-color:#4ade8040}.status-badge.warning{color:var(--warning);background:#fbbf241a;border-color:#fbbf2440}.status-badge.danger{color:var(--danger);background:#f871711a;border-color:#f8717140}.status-badge.muted{color:var(--neutral);background:#94a3b81a;border-color:#94a3b840}.page-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.spinner{width:28px;height:28px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 920px){.topbar{display:flex}.sidebar{transform:translate(-100%);box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:var(--shadow)}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#05060a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}main,main.with-sidebar{margin-left:0;margin-inline:0;padding:calc(var(--topbar-h) + 1rem) 1rem 1.5rem}}@media (max-width: 560px){.card{padding:1rem}.data-table th,.data-table td{padding:.6rem .75rem}}
