@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", "Fira Code", ui-monospace, monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--fs-3xl:32px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.2;--lh-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--sidebar-width:216px;--sidebar-width-collapsed:72px;--header-height:60px;--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--hue-critical:#ef4444;--hue-high:#f97316;--hue-medium:#f59e0b;--hue-low:#3b82f6;--hue-success:#22c55e;--hue-info:#8b5cf6}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:#0a0e17;--bg-surface:#111725;--bg-surface-2:#161d2e;--bg-elevated:#1b2438;--bg-hover:#ffffff0a;--bg-active:#ffffff12;--bg-input:#0e1420;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#ffffff12;--border-strong:#ffffff21;--accent:#4f8cff;--accent-hover:#6ba1ff;--accent-soft:#4f8cff24;--accent-contrast:#fff;--sev-critical-fg:#f87171;--sev-high-fg:#fb923c;--sev-medium-fg:#fbbf24;--sev-low-fg:#60a5fa;--sev-success-fg:#4ade80;--sev-soft-critical:#ef44441f;--sev-soft-high:#f973161f;--sev-soft-medium:#f59e0b1f;--sev-soft-low:#3b82f61f;--sev-soft-success:#22c55e1f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000080;--overlay-scrim:#03060fb3}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-app:#f4f6fb;--bg-surface:#fff;--bg-surface-2:#f8fafc;--bg-elevated:#fff;--bg-hover:#0f172a0a;--bg-active:#0f172a12;--bg-input:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border:#0f172a1a;--border-strong:#0f172a2e;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#2563eb1a;--accent-contrast:#fff;--sev-critical-fg:#dc2626;--sev-high-fg:#ea580c;--sev-medium-fg:#d97706;--sev-low-fg:#2563eb;--sev-success-fg:#16a34a;--sev-soft-critical:#ef44441a;--sev-soft-high:#f973161a;--sev-soft-medium:#f59e0b1a;--sev-soft-low:#3b82f61a;--sev-soft-success:#22c55e1a;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a24;--overlay-scrim:#0f172a66}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--dur-base) var(--ease)}a{color:inherit;text-decoration:none}button{font-family:inherit}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-4);font-weight:var(--fw-semibold);color:var(--accent);display:flex}.brand span{color:var(--text-primary);font-size:var(--fs-md)}.sidebar nav{padding:0 var(--space-2) var(--space-4);flex-direction:column;gap:2px;display:flex}.app-version{padding:var(--space-3) var(--space-4);font-size:var(--fs-xs);color:var(--text-muted);margin-top:auto}.nav-item{align-items:center;gap:var(--space-3);padding:8px var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--fs-md);display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:var(--fw-medium)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--header-height);align-items:center;gap:var(--space-3);padding:0 var(--space-6);border-bottom:1px solid var(--border);background:var(--bg-surface);z-index:5;display:flex;position:sticky;top:0}.topbar-title{font-weight:var(--fw-medium);color:var(--text-secondary);flex:1}.topbar-user{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.user-name{font-size:var(--fs-md);font-weight:var(--fw-medium)}.user-role{font-size:var(--fs-xs);color:var(--text-muted)}.icon-btn.menu-btn{display:none}.content{padding:var(--space-6);width:100%;max-width:1280px}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}.page-subtitle{color:var(--text-secondary);font-size:var(--fs-md);margin-top:2px}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.back-link{color:var(--text-secondary);font-size:var(--fs-md);margin-bottom:var(--space-3);align-items:center;gap:4px;display:inline-flex}.back-link:hover{color:var(--text-primary)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card+.card,.grid+.card,.card+.grid{margin-top:var(--space-4)}.grid>.card{margin-top:0}.card-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.card-head h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.card-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.card-body{padding:var(--space-4) var(--space-5)}.card-body:has(>.table-wrap){padding:0}.card-note{padding:var(--space-3) var(--space-5) 0}.grid{gap:var(--space-4);display:grid}.grid-stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.stat{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-label{font-size:var(--fs-sm);color:var(--text-secondary)}.stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;margin-top:4px}.stat-hint{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.stat-danger .stat-value{color:var(--sev-critical-fg)}.stat-warning .stat-value{color:var(--sev-medium-fg)}.stat-success .stat-value{color:var(--sev-success-fg)}.section-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-secondary);margin:var(--space-6) 0 var(--space-3);text-transform:uppercase;letter-spacing:.4px}.dl{gap:6px var(--space-5);font-size:var(--fs-md);grid-template-columns:max-content 1fr;display:grid}.dl dt{color:var(--text-secondary)}.dl dd{overflow-wrap:anywhere;min-width:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);white-space:nowrap;border:1px solid #0000;padding:8px 14px;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-surface-2);border-color:var(--border-strong);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-active)}.btn-ghost{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--sev-soft-critical);color:var(--sev-critical-fg);border-color:#0000}.btn-danger:hover:not(:disabled){background:#ef444433}.btn-sm{font-size:var(--fs-sm);padding:5px 10px}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.link-btn{color:var(--accent);cursor:pointer;font-size:var(--fs-md);background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}a.link{color:var(--accent)}a.link:hover{text-decoration:underline}.badge{border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;align-items:center;padding:2px 8px;display:inline-flex}.badge-success{background:var(--sev-soft-success);color:var(--sev-success-fg)}.badge-warning{background:var(--sev-soft-medium);color:var(--sev-medium-fg)}.badge-danger{background:var(--sev-soft-critical);color:var(--sev-critical-fg)}.badge-info{background:var(--sev-soft-low);color:var(--sev-low-fg)}.badge-muted{background:var(--bg-active);color:var(--text-secondary)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-md)}.table th{text-align:left;font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--text-secondary);padding:10px var(--space-4);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:10px var(--space-4);border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--bg-hover)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-secondary)}.small{font-size:var(--fs-sm)}.mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.pager{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--fs-sm);color:var(--text-secondary);border-top:1px solid var(--border);display:flex}.toolbar{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.toolbar input,.toolbar select{width:auto;min-width:180px}input,select,textarea{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-md);padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.form{gap:var(--space-3);flex-direction:column;display:flex}.form-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium)}.field-hint{font-size:var(--fs-xs);color:var(--text-muted)}.field-error,.form-error{font-size:var(--fs-sm);color:var(--sev-critical-fg)}.field-invalid input,.field-invalid select{border-color:var(--sev-critical-fg)}.checkbox{align-items:center;gap:var(--space-2);font-size:var(--fs-md);display:flex}.checkbox input{width:auto}.state{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);color:var(--text-secondary);font-size:var(--fs-md);display:flex}.state-error{color:var(--sev-critical-fg)}.state-empty{flex-wrap:wrap}.empty-title{color:var(--text-primary);font-weight:var(--fw-medium)}.empty-hint{font-size:var(--fs-sm)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-md);margin-bottom:var(--space-4)}.notice-warning{background:var(--sev-soft-medium);color:var(--sev-medium-fg)}.notice-danger{background:var(--sev-soft-critical);color:var(--sev-critical-fg)}.notice-info{background:var(--accent-soft);color:var(--accent)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-scrim{background:var(--overlay-scrim);z-index:50;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.modal-wide{max-width:680px}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-head h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.modal-body{padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex;overflow-y:auto}.modal-foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex}.secret{align-items:center;gap:var(--space-2);background:var(--bg-input);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.secret code{font-family:var(--font-mono);font-size:var(--fs-lg);letter-spacing:1px;overflow-wrap:anywhere;flex:1}.secret-note{width:100%;font-size:var(--fs-sm);color:var(--text-secondary)}.auth-page{min-height:100vh;padding:var(--space-4);background:var(--bg-app);place-items:center;display:grid}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:var(--space-7) var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.auth-brand{align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);font-size:var(--fs-lg);color:var(--accent);display:flex}.meter{background:var(--bg-active);border-radius:var(--radius-full);height:8px;margin-top:var(--space-2);overflow:hidden}.meter>span{background:var(--accent);height:100%;display:block}.meter.full>span{background:var(--sev-medium-fg)}@media (width<=860px){.sidebar{z-index:40;transition:transform var(--dur-base) var(--ease);box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.nav-open .sidebar{transform:none}.icon-btn.menu-btn{display:inline-grid}.topbar{padding:0 var(--space-4)}.topbar-user{display:none}.content{padding:var(--space-4)}.dl{grid-template-columns:1fr;gap:2px}.dl dd{margin-bottom:var(--space-2)}.toolbar input,.toolbar select{flex:1;min-width:0}}
