:root{--rg-primary: #2563eb;--rg-primary-hover: #1d4ed8;--rg-primary-light: rgba(37, 99, 235, .08);--rg-accent: #7c3aed;--rg-accent-hover: #6d28d9;--rg-success: #16a34a;--rg-success-light: rgba(22, 163, 74, .08);--rg-warning: #d97706;--rg-warning-light: rgba(217, 119, 6, .08);--rg-danger: #dc2626;--rg-danger-light: rgba(220, 38, 38, .08);--rg-info: #2563eb;--rg-info-light: rgba(37, 99, 235, .08);--rg-bg-body: #f8fafc;--rg-bg-surface: #ffffff;--rg-bg-elevated: #f1f5f9;--rg-bg-input: #ffffff;--rg-bg-sidebar: #1e293b;--rg-bg-sidebar-hover: #334155;--rg-text-primary: #0f172a;--rg-text-secondary: #475569;--rg-text-muted: #94a3b8;--rg-text-sidebar: #e2e8f0;--rg-border: #e2e8f0;--rg-border-hover: #cbd5e1;--rg-border-focus: var(--rg-primary);--rg-radius-sm: 6px;--rg-radius-md: 8px;--rg-radius-lg: 12px;--rg-radius-full: 9999px;--rg-space-xs: 4px;--rg-space-sm: 8px;--rg-space-md: 16px;--rg-space-lg: 24px;--rg-space-xl: 32px;--rg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--rg-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--rg-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .05);--rg-font-sans: "Inter", system-ui, -apple-system, sans-serif;--rg-font-mono: "JetBrains Mono", "Fira Code", monospace;--rg-font-size-xs: 11px;--rg-font-size-sm: 13px;--rg-font-size-base: 14px;--rg-font-size-lg: 16px;--rg-font-size-xl: 20px;--rg-font-size-2xl: 24px;--rg-font-size-3xl: 32px;--rg-transition-fast: .15s ease;--rg-transition-base: .2s ease;--rg-transition-slow: .3s ease;--rg-sidebar-width: 240px;--rg-header-height: 56px}[data-theme=dark]{--rg-primary: #38bdf8;--rg-primary-hover: #0ea5e9;--rg-primary-light: rgba(56, 189, 248, .1);--rg-accent: #818cf8;--rg-accent-hover: #6366f1;--rg-success: #22c55e;--rg-success-light: rgba(34, 197, 94, .12);--rg-warning: #f59e0b;--rg-warning-light: rgba(245, 158, 11, .12);--rg-danger: #ef4444;--rg-danger-light: rgba(239, 68, 68, .12);--rg-info: #3b82f6;--rg-info-light: rgba(59, 130, 246, .12);--rg-bg-body: #0f172a;--rg-bg-surface: #1e293b;--rg-bg-elevated: #334155;--rg-bg-input: #0f172a;--rg-bg-sidebar: #0f172a;--rg-bg-sidebar-hover: #1e293b;--rg-text-primary: #f8fafc;--rg-text-secondary: #94a3b8;--rg-text-muted: #64748b;--rg-text-sidebar: #e2e8f0;--rg-border: #334155;--rg-border-hover: #475569;--rg-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--rg-shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--rg-shadow-lg: 0 8px 24px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--rg-font-sans);font-size:var(--rg-font-size-base);color:var(--rg-text-primary);background:var(--rg-bg-body);line-height:1.6}a{color:var(--rg-primary);text-decoration:none}a:hover{color:var(--rg-primary-hover)}.mono{font-family:var(--rg-font-mono);font-size:var(--rg-font-size-sm)}.muted{color:var(--rg-text-muted)}.text-secondary{color:var(--rg-text-secondary)}.text-success{color:var(--rg-success)}.text-warning{color:var(--rg-warning)}.text-danger{color:var(--rg-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--rg-space-sm);padding:8px 16px;border:1px solid transparent;border-radius:var(--rg-radius-md);font-family:var(--rg-font-sans);font-size:var(--rg-font-size-sm);font-weight:600;cursor:pointer;transition:all var(--rg-transition-fast);outline:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--rg-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--rg-primary-hover)}.btn-danger{background:var(--rg-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-success{background:var(--rg-success);color:#fff}.btn-success:hover:not(:disabled){background:#15803d}.btn-ghost{background:transparent;color:var(--rg-text-secondary);border-color:var(--rg-border)}.btn-ghost:hover:not(:disabled){border-color:var(--rg-border-hover);color:var(--rg-text-primary);background:var(--rg-bg-elevated)}.btn-sm{padding:4px 10px;font-size:var(--rg-font-size-xs)}.btn-lg{padding:12px 24px;font-size:var(--rg-font-size-base)}.input,select.input,textarea.input{width:100%;padding:9px 12px;background:var(--rg-bg-input);border:1px solid var(--rg-border);border-radius:var(--rg-radius-md);color:var(--rg-text-primary);font-family:var(--rg-font-sans);font-size:var(--rg-font-size-base);transition:border-color var(--rg-transition-fast),box-shadow var(--rg-transition-fast);outline:none}.input:focus{border-color:var(--rg-primary);box-shadow:0 0 0 3px var(--rg-primary-light)}.input::placeholder{color:var(--rg-text-muted)}textarea.input{resize:vertical;min-height:80px}.card{background:var(--rg-bg-surface);border:1px solid var(--rg-border);border-radius:var(--rg-radius-lg);padding:var(--rg-space-lg);box-shadow:var(--rg-shadow-sm);transition:transform var(--rg-transition-base),box-shadow var(--rg-transition-base)}.card:hover{box-shadow:var(--rg-shadow-md)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 12px;font-size:var(--rg-font-size-xs);font-weight:700;color:var(--rg-text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--rg-border);background:var(--rg-bg-elevated)}td{padding:10px 12px;font-size:var(--rg-font-size-base);border-bottom:1px solid var(--rg-border)}tbody tr{transition:background var(--rg-transition-fast)}tbody tr:hover{background:var(--rg-bg-elevated)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--rg-radius-full);font-size:var(--rg-font-size-xs);font-weight:600;letter-spacing:.3px}.badge-success{background:var(--rg-success-light);color:var(--rg-success)}.badge-warning{background:var(--rg-warning-light);color:var(--rg-warning)}.badge-danger{background:var(--rg-danger-light);color:var(--rg-danger)}.badge-info{background:var(--rg-info-light);color:var(--rg-info)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.online{background:var(--rg-success);box-shadow:0 0 6px var(--rg-success)}.status-dot.offline{background:var(--rg-danger)}.status-dot.warning{background:var(--rg-warning)}.panel{background:var(--rg-bg-surface);border:1px solid var(--rg-border);border-radius:var(--rg-radius-lg);padding:var(--rg-space-lg);box-shadow:var(--rg-shadow-sm)}.panel h2{margin:0 0 var(--rg-space-md) 0;font-size:var(--rg-font-size-lg);font-weight:700}.tabs{display:flex;gap:0;border-bottom:2px solid var(--rg-border);margin-bottom:var(--rg-space-lg);overflow-x:auto}.tab{padding:10px 16px;font-size:var(--rg-font-size-sm);font-weight:600;color:var(--rg-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--rg-transition-fast);white-space:nowrap;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--rg-font-sans)}.tab:hover{color:var(--rg-text-primary)}.tab.active{color:var(--rg-primary);border-bottom-color:var(--rg-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--rg-space-md)}.stat-card{background:var(--rg-bg-surface);border:1px solid var(--rg-border);border-radius:var(--rg-radius-lg);padding:var(--rg-space-lg);box-shadow:var(--rg-shadow-sm)}.stat-card .stat-value{font-size:var(--rg-font-size-2xl);font-weight:800;color:var(--rg-text-primary)}.stat-card .stat-label{font-size:var(--rg-font-size-sm);color:var(--rg-text-muted);margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--rg-bg-surface);border:1px solid var(--rg-border);border-radius:var(--rg-radius-lg);width:90%;max-width:640px;box-shadow:var(--rg-shadow-lg);max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--rg-border)}.modal-header h2{margin:0;font-size:var(--rg-font-size-lg);font-weight:700}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--rg-border)}.field{display:flex;flex-direction:column;gap:5px}.field-label{font-size:var(--rg-font-size-sm);font-weight:600;color:var(--rg-text-secondary)}.form-row{display:flex;gap:12px}.form-row .field{flex:1}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.toggle-label{font-size:var(--rg-font-size-sm);font-weight:500}.toggle{position:relative;width:40px;height:22px;background:var(--rg-border);border-radius:11px;cursor:pointer;transition:background var(--rg-transition-fast);border:none}.toggle.active{background:var(--rg-primary)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform var(--rg-transition-fast)}.toggle.active:after{transform:translate(18px)}.error-banner{padding:10px 14px;background:var(--rg-danger-light);border:1px solid rgba(220,38,38,.2);border-radius:var(--rg-radius-md);color:var(--rg-danger);font-size:var(--rg-font-size-sm)}.success-banner{padding:10px 14px;background:var(--rg-success-light);border:1px solid rgba(22,163,74,.2);border-radius:var(--rg-radius-md);color:var(--rg-success);font-size:var(--rg-font-size-sm)}.token-box{display:flex;gap:8px;align-items:center;background:var(--rg-bg-elevated);border:1px solid var(--rg-border);border-radius:var(--rg-radius-md);padding:12px}.token-code{flex:1;word-break:break-all;font-family:var(--rg-font-mono);font-size:13px;color:var(--rg-primary)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--rg-bg-elevated);border:1px solid var(--rg-border);border-radius:var(--rg-radius-full);font-size:var(--rg-font-size-xs);color:var(--rg-text-secondary)}.chip .chip-remove{cursor:pointer;font-size:14px;color:var(--rg-text-muted);background:none;border:none;padding:0;line-height:1}.chip .chip-remove:hover{color:var(--rg-danger)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rg-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--rg-border-hover)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--rg-transition-slow) ease-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s ease-in-out infinite}
