@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";:root{--cm-brand-50: #eef2ff;--cm-brand-100: #e0e7ff;--cm-brand-400: #818cf8;--cm-brand-500: #6366f1;--cm-brand-600: #4f46e5;--cm-brand-700: #4338ca;--cm-brand-900: #312e81;--cm-brand-950: #1e1b4b;--cm-accent-cyan: #22d3ee;--cm-accent-emerald: #10b981;--cm-accent-amber: #f59e0b;--cm-accent-rose: #f43f5e;--cm-status-danger: #ef4444;--cm-status-warn: #f59e0b;--cm-status-success: #10b981;--cm-status-info: #3b82f6;--cm-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--cm-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--cm-shell-topbar-height: 56px;--cm-shell-leftrail-width: 280px;--cm-shell-leftrail-collapsed-width: 64px;--cm-shell-taskbar-height: 36px;--cm-radius-sm: 4px;--cm-radius-md: 8px;--cm-radius-lg: 12px;--cm-radius-xl: 16px;--cm-chrome-rail: #0f172a;--cm-chrome-rail-hover: #1e293b;--cm-chrome-rail-active: #334155;--cm-chrome-rail-text: #cbd5e1;--cm-chrome-rail-text-active: #ffffff;--cm-chrome-topbar: #111827;--cm-chrome-topbar-text: #e5e7eb;--cm-chrome-topbar-border: rgba(255, 255, 255, .06);--cm-gradient-rail: linear-gradient(180deg, #0f172a 0%, #0b1120 100%);--cm-gradient-brand: linear-gradient(135deg, #4338ca 0%, #6366f1 50%, #22d3ee 100%);--cm-surface-content: #f8fafc;--cm-surface-card: #ffffff;--cm-surface-card-hover: #f9fafb;--cm-surface-card-border: #e5e7eb;--cm-surface-taskbar: #f1f5f9;--cm-surface-input: #ffffff;--cm-surface-input-border: #cbd5e1;--cm-surface-input-focus: #6366f1;--cm-surface-overlay: rgba(15, 23, 42, .5);--cm-surface-modal: #ffffff;--cm-text-primary: #0f172a;--cm-text-secondary: #475569;--cm-text-muted: #94a3b8;--cm-text-inverse: #ffffff;--cm-text-link: #4338ca;--cm-text-link-hover: #4f46e5;--cm-border-subtle: #e5e7eb;--cm-border-strong: #cbd5e1;--cm-border-focus: #6366f1;--cm-shadow-glass: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 32px rgba(15, 23, 42, .06);--cm-shadow-card-hover: 0 4px 16px rgba(15, 23, 42, .08);--cm-shadow-modal: 0 20px 60px rgba(15, 23, 42, .35);--cm-row-hover: #f8fafc;--cm-row-selected: #eef2ff;--cm-row-selected-border: #6366f1}[data-theme=dark]{--cm-surface-content: #0b1120;--cm-surface-card: #111827;--cm-surface-card-hover: #1e293b;--cm-surface-card-border: #334155;--cm-surface-taskbar: #0f172a;--cm-surface-input: #1e293b;--cm-surface-input-border: #334155;--cm-surface-input-focus: #818cf8;--cm-surface-overlay: rgba(0, 0, 0, .7);--cm-surface-modal: #1e293b;--cm-text-primary: #f1f5f9;--cm-text-secondary: #cbd5e1;--cm-text-muted: #64748b;--cm-text-inverse: #0f172a;--cm-text-link: #818cf8;--cm-text-link-hover: #a5b4fc;--cm-border-subtle: #334155;--cm-border-strong: #475569;--cm-border-focus: #818cf8;--cm-shadow-glass: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 32px rgba(0, 0, 0, .4);--cm-shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .5);--cm-shadow-modal: 0 20px 60px rgba(0, 0, 0, .7);--cm-row-hover: #1e293b;--cm-row-selected: rgba(99, 102, 241, .15);--cm-row-selected-border: #818cf8}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--cm-surface-content: #0b1120;--cm-surface-card: #111827;--cm-surface-card-hover: #1e293b;--cm-surface-card-border: #334155;--cm-surface-taskbar: #0f172a;--cm-surface-input: #1e293b;--cm-surface-input-border: #334155;--cm-surface-input-focus: #818cf8;--cm-surface-overlay: rgba(0, 0, 0, .7);--cm-surface-modal: #1e293b;--cm-text-primary: #f1f5f9;--cm-text-secondary: #cbd5e1;--cm-text-muted: #64748b;--cm-text-inverse: #0f172a;--cm-text-link: #818cf8;--cm-text-link-hover: #a5b4fc;--cm-border-subtle: #334155;--cm-border-strong: #475569;--cm-border-focus: #818cf8;--cm-shadow-glass: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 32px rgba(0, 0, 0, .4);--cm-shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .5);--cm-shadow-modal: 0 20px 60px rgba(0, 0, 0, .7);--cm-row-hover: #1e293b;--cm-row-selected: rgba(99, 102, 241, .15);--cm-row-selected-border: #818cf8}}html,body,#root{height:100%}body{font-family:var(--cm-font-sans);background:var(--cm-surface-content);color:var(--cm-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--cm-purple-50: #faf5ff;--cm-purple-100: #f3e8ff;--cm-purple-200: #e9d5ff;--cm-purple-300: #d8b4fe;--cm-purple-400: #ba27fc;--cm-purple-500: #8b18f5;--cm-purple-600: #630dea;--cm-purple-700: #5209c7;--cm-purple-800: #4208a1;--cm-purple-900: #35077f;--cm-blue-50: #eff6ff;--cm-blue-100: #dbeafe;--cm-blue-200: #bfdbfe;--cm-blue-300: #93c5fd;--cm-blue-400: #60a5fa;--cm-blue-500: #2563eb;--cm-blue-600: #0129d9;--cm-blue-700: #1d4ed8;--cm-blue-800: #1e40af;--cm-blue-900: #1e3a8a;--cm-orange-50: #fff7ed;--cm-orange-100: #ffedd5;--cm-orange-200: #fed7aa;--cm-orange-300: #fdba74;--cm-orange-400: #fb923c;--cm-orange-500: #fc6901;--cm-orange-600: #ea580c;--cm-orange-700: #c2410c;--cm-orange-800: #9a3412;--cm-white: #ffffff;--cm-gray-25: #fcfcfd;--cm-gray-50: #f8fafc;--cm-gray-100: #f1f5f9;--cm-gray-200: #e2e8f0;--cm-gray-300: #cbd5e1;--cm-gray-400: #94a3b8;--cm-gray-500: #64748b;--cm-gray-600: #475569;--cm-gray-700: #334155;--cm-gray-800: #1e293b;--cm-gray-900: #0f172a;--cm-gray-950: #020617;--success-50: #f0fdf4;--success-100: #dcfce7;--success-200: #bbf7d0;--success-500: #22c55e;--success-600: #16a34a;--success-700: #15803d;--success-800: #166534;--warning-50: #fffbeb;--warning-100: #fef3c7;--warning-200: #fde68a;--warning-500: #f59e0b;--warning-600: #d97706;--warning-700: #b45309;--warning-800: #92400e;--error-50: #fef2f2;--error-100: #fee2e2;--error-200: #fecaca;--error-500: #ef4444;--error-600: #dc2626;--error-700: #b91c1c;--error-800: #991b1b;--info-50: #eff6ff;--info-100: #dbeafe;--info-200: #bfdbfe;--info-500: #3b82f6;--info-600: #2563eb;--info-700: #1d4ed8;--info-800: #1e40af;--bg-page: #f8fafc;--bg-surface: #ffffff;--bg-surface-secondary: #f8fafc;--bg-surface-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-muted: #94a3b8;--text-disabled: #cbd5e1;--text-inverse: #ffffff;--border-default: #e2e8f0;--border-subtle: #eef2f6;--border-strong: #cbd5e1;--border-focus: #630dea;--primary: #630dea;--primary-hover: #5209c7;--primary-active: #4208a1;--primary-soft: #f3e8ff;--secondary: #0129d9;--secondary-hover: #1d4ed8;--secondary-active: #1e40af;--secondary-soft: #eff6ff;--accent: #fc6901;--accent-hover: #ea580c;--accent-soft: #fff7ed;--success: #16a34a;--success-soft: #f0fdf4;--warning: #d97706;--warning-soft: #fffbeb;--error: #dc2626;--error-soft: #fef2f2;--info: #2563eb;--info-soft: #eff6ff;--input-bg: #ffffff;--input-border: #cbd5e1;--input-border-hover: #94a3b8;--input-placeholder: #94a3b8;--input-focus: #630dea;--button-primary-bg: #630dea;--button-primary-hover: #5209c7;--button-primary-active: #4208a1;--button-primary-text: #ffffff;--button-secondary-bg: #0129d9;--button-secondary-hover: #1d4ed8;--button-secondary-active: #1e40af;--button-secondary-text: #ffffff;--button-outline-bg: #ffffff;--button-outline-border: #cbd5e1;--button-outline-text: #334155;--button-ghost-text: #475569;--button-ghost-hover: #f1f5f9;--card-bg: #ffffff;--card-border: #e2e8f0;--table-header-bg: #f8fafc;--table-row-hover: #f8fafc;--table-border: #e2e8f0;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 6px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .07);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .09);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 28px;--font-size-5xl: 32px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}[data-theme=dark],.dark-theme{--bg-page: #080b18;--bg-surface: #101426;--bg-surface-secondary: #151a2d;--bg-surface-tertiary: #1b2239;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #a8b0c2;--text-muted: #778198;--text-disabled: #475569;--text-inverse: #ffffff;--border-default: #252c45;--border-subtle: #1c2338;--border-strong: #3a4565;--border-focus: #ba27fc;--primary: #8b18f5;--primary-hover: #a855f7;--primary-active: #ba27fc;--primary-soft: rgba(139, 24, 245, .14);--secondary: #3154e8;--secondary-hover: #4565ed;--secondary-active: #5b76f0;--secondary-soft: rgba(49, 84, 232, .14);--accent: #fc6901;--accent-hover: #fb7a20;--accent-soft: rgba(252, 105, 1, .12);--success: #22c55e;--success-soft: rgba(34, 197, 94, .1);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .1);--error: #f87171;--error-soft: rgba(239, 68, 68, .1);--info: #60a5fa;--info-soft: rgba(59, 130, 246, .1);--input-bg: #101426;--input-border: #3a4565;--input-border-hover: #4b587a;--input-placeholder: #778198;--input-focus: #ba27fc;--button-primary-bg: #630dea;--button-primary-hover: #7c2bef;--button-primary-active: #8b18f5;--button-primary-text: #ffffff;--button-secondary-bg: #0129d9;--button-secondary-hover: #3154e8;--button-secondary-active: #4565ed;--button-secondary-text: #ffffff;--button-outline-bg: transparent;--button-outline-border: #3a4565;--button-outline-text: #e2e8f0;--button-ghost-text: #cbd5e1;--button-ghost-hover: #151a2d;--card-bg: #101426;--card-border: #252c45;--table-header-bg: #151a2d;--table-row-hover: #151a2d;--table-border: #252c45;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .24);--shadow-md: 0 5px 16px rgba(0, 0, 0, .28);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .32)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;padding:0;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;transition:background var(--transition-normal),color var(--transition-normal)}button,input,textarea,select{font-family:inherit}button{cursor:pointer}img{max-width:100%}a{color:var(--primary);text-decoration:none}.cm-page-title{margin:0;font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.cm-section-title{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.cm-card-title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.cm-body{color:var(--text-secondary);font-size:var(--font-size-base)}.cm-small{color:var(--text-secondary);font-size:var(--font-size-sm)}.cm-muted{color:var(--text-muted)}.cm-btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.cm-btn:disabled{cursor:not-allowed;opacity:.55}.cm-btn-primary{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.cm-btn-primary:hover{background:var(--button-primary-hover);border-color:var(--button-primary-hover)}.cm-btn-primary:active{background:var(--button-primary-active);border-color:var(--button-primary-active)}.cm-btn-secondary{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--button-secondary-bg)}.cm-btn-secondary:hover{background:var(--button-secondary-hover);border-color:var(--button-secondary-hover)}.cm-btn-outline{background:var(--button-outline-bg);color:var(--button-outline-text);border-color:var(--button-outline-border)}.cm-btn-outline:hover{color:var(--primary);background:var(--primary-soft);border-color:var(--primary)}.cm-btn-ghost{background:transparent;color:var(--button-ghost-text);border-color:transparent}.cm-btn-ghost:hover{color:var(--text-primary);background:var(--button-ghost-hover)}.cm-btn-danger{background:var(--error-600);color:#fff;border-color:var(--error-600)}.cm-btn-danger:hover{background:var(--error-700);border-color:var(--error-700)}.cm-btn-success{background:var(--success-600);color:#fff;border-color:var(--success-600)}.cm-btn-success:hover{background:var(--success-700);border-color:var(--success-700)}.cm-btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.cm-btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.cm-btn-sm{min-height:34px;padding:0 12px;border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.cm-btn-md{min-height:40px}.cm-btn-lg{min-height:46px;padding:0 20px;border-radius:var(--radius-lg);font-size:var(--font-size-lg)}.cm-btn-xl{min-height:52px;padding:0 24px;border-radius:var(--radius-xl);font-size:var(--font-size-lg)}.cm-btn-block{width:100%}.cm-icon-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.cm-icon-btn:hover{color:var(--primary);background:var(--primary-soft);border-color:var(--primary)}.cm-form-group{margin-bottom:20px}.cm-label{display:block;margin-bottom:7px;color:var(--text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.cm-input,.cm-select,.cm-textarea{width:100%;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);outline:none;font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.cm-input,.cm-select{height:42px;padding:0 12px}.cm-textarea{min-height:100px;padding:12px;resize:vertical}.cm-input::placeholder,.cm-textarea::placeholder{color:var(--input-placeholder)}.cm-input:hover,.cm-select:hover,.cm-textarea:hover{border-color:var(--input-border-hover)}.cm-input:focus,.cm-select:focus,.cm-textarea:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px #630dea1a}.cm-input:disabled,.cm-select:disabled,.cm-textarea:disabled{cursor:not-allowed;opacity:.6;background:var(--bg-surface-secondary)}.cm-help-text{display:block;margin-top:5px;color:var(--text-muted);font-size:var(--font-size-sm)}.cm-error-text{display:block;margin-top:5px;color:var(--error);font-size:var(--font-size-sm)}.cm-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.cm-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.cm-card-body{padding:20px}.cm-card-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border-subtle)}.cm-alert{width:100%;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-base);line-height:1.5}.cm-alert-icon{flex-shrink:0;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:700;line-height:1}.cm-alert-success{color:var(--success-800);background:var(--success-50);border-color:var(--success-200)}.cm-alert-success .cm-alert-icon{color:#fff;background:var(--success-600)}.cm-alert-warning{color:var(--warning-800);background:var(--warning-50);border-color:var(--warning-200)}.cm-alert-warning .cm-alert-icon{color:#fff;background:var(--warning-600)}.cm-alert-error{color:var(--error-800);background:var(--error-50);border-color:var(--error-200)}.cm-alert-error .cm-alert-icon{color:#fff;background:var(--error-600)}.cm-alert-info{color:var(--info-800);background:var(--info-50);border-color:var(--info-200)}.cm-alert-info .cm-alert-icon{color:#fff;background:var(--info-600)}[data-theme=dark] .cm-alert-success,.dark-theme .cm-alert-success{color:#86efac;background:#22c55e14;border-color:#22c55e38}[data-theme=dark] .cm-alert-success .cm-alert-icon{background:var(--success);color:#fff}[data-theme=dark] .cm-alert-warning,.dark-theme .cm-alert-warning{color:#fcd34d;background:#f59e0b14;border-color:#f59e0b38}[data-theme=dark] .cm-alert-warning .cm-alert-icon{background:var(--warning);color:#fff}[data-theme=dark] .cm-alert-error,.dark-theme .cm-alert-error{color:#fca5a5;background:#ef444414;border-color:#ef444438}[data-theme=dark] .cm-alert-error .cm-alert-icon{background:var(--error);color:#fff}[data-theme=dark] .cm-alert-info,.dark-theme .cm-alert-info{color:#93c5fd;background:#3b82f614;border-color:#3b82f638}[data-theme=dark] .cm-alert-info .cm-alert-icon{background:var(--info);color:#fff}.cm-badge{min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cm-badge-success{color:var(--success-700);background:var(--success-100)}.cm-badge-warning{color:var(--warning-700);background:var(--warning-100)}.cm-badge-error{color:var(--error-700);background:var(--error-100)}.cm-badge-info{color:var(--info-700);background:var(--info-100)}.cm-badge-primary{color:var(--cm-purple-700);background:var(--cm-purple-100)}.cm-badge-accent{color:var(--cm-orange-700);background:var(--cm-orange-100)}.cm-badge-neutral{color:var(--cm-gray-700);background:var(--cm-gray-100)}[data-theme=dark] .cm-badge-success,.dark-theme .cm-badge-success{color:#86efac;background:#22c55e1f}[data-theme=dark] .cm-badge-warning,.dark-theme .cm-badge-warning{color:#fcd34d;background:#f59e0b1f}[data-theme=dark] .cm-badge-error,.dark-theme .cm-badge-error{color:#fca5a5;background:#ef44441f}[data-theme=dark] .cm-badge-info,.dark-theme .cm-badge-info{color:#93c5fd;background:#3b82f61f}[data-theme=dark] .cm-badge-primary,.dark-theme .cm-badge-primary{color:#d8b4fe;background:#8b18f524}[data-theme=dark] .cm-badge-accent,.dark-theme .cm-badge-accent{color:#fdba74;background:#fc69011f}[data-theme=dark] .cm-badge-neutral,.dark-theme .cm-badge-neutral{color:#cbd5e1;background:#1b2239}.cm-status{display:inline-flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:var(--font-size-sm)}.cm-status:before{content:"";width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--cm-gray-400)}.cm-status-success:before{background:var(--success)}.cm-status-warning:before{background:var(--warning)}.cm-status-error:before{background:var(--error)}.cm-status-info:before{background:var(--info)}.cm-table-wrapper{width:100%;overflow-x:auto;background:var(--card-bg);border:1px solid var(--table-border);border-radius:var(--radius-xl)}.cm-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.cm-table th{height:44px;padding:0 16px;text-align:left;color:var(--text-secondary);background:var(--table-header-bg);border-bottom:1px solid var(--table-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap}.cm-table td{height:52px;padding:0 16px;color:var(--text-primary);border-bottom:1px solid var(--table-border);white-space:nowrap}.cm-table tbody tr{transition:background var(--transition-fast)}.cm-table tbody tr:hover{background:var(--table-row-hover)}.cm-table tbody tr:last-child td{border-bottom:none}.cm-divider{width:100%;height:1px;margin:20px 0;border:0;background:var(--border-default)}.cm-link{color:var(--primary);font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.cm-link:hover{color:var(--primary-hover);text-decoration:underline}:focus-visible{outline:2px solid rgba(99,13,234,.35);outline-offset:2px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--bg-page)}::-webkit-scrollbar-thumb{background:var(--cm-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--cm-gray-400)}[data-theme=dark] ::-webkit-scrollbar-thumb,.dark-theme ::-webkit-scrollbar-thumb{background:#374151}[data-theme=dark] ::-webkit-scrollbar-thumb:hover,.dark-theme ::-webkit-scrollbar-thumb:hover{background:#4b5563}.cm-flex{display:flex}.cm-flex-center{display:flex;align-items:center;justify-content:center}.cm-flex-between{display:flex;align-items:center;justify-content:space-between}.cm-gap-1{gap:var(--space-1)}.cm-gap-2{gap:var(--space-2)}.cm-gap-3{gap:var(--space-3)}.cm-gap-4{gap:var(--space-4)}.cm-gap-5{gap:var(--space-5)}.cm-gap-6{gap:var(--space-6)}.cm-w-full{width:100%}.cm-text-center{text-align:center}.cm-hidden{display:none!important}.cm-radius-sm{border-radius:var(--radius-sm)}.cm-radius-md{border-radius:var(--radius-md)}.cm-radius-lg{border-radius:var(--radius-lg)}.cm-radius-xl{border-radius:var(--radius-xl)}.cm-radius-2xl{border-radius:var(--radius-2xl)}.cm-radius-full{border-radius:var(--radius-full)}@media (max-width: 768px){.cm-page-title{font-size:var(--font-size-3xl)}.cm-section-title{font-size:var(--font-size-xl)}.cm-card-header{padding:14px 16px}.cm-card-body{padding:16px}.cm-btn-lg{min-height:44px}}:root{--fg: #0f172a;--fg-soft: #334155;--bg: #f5f7fb;--card: #ffffff;--muted: #64748b;--accent: #4338ca;--accent-soft: #eef2ff;--accent-hover: #3730a3;--danger: #b91c1c;--allow: #047857;--warn: #b45309;--block: #b91c1c;--record: #6d28d9;--border: #e2e8f0;--border-strong: #cbd5e1;--online: #047857;--idle: #b45309;--offline: #64748b;--stale: #78350f;--revoked: #b91c1c;--sidebar-w: 232px;--sidebar-bg: #0f172a;--sidebar-fg: #cbd5e1;--sidebar-fg-active: #ffffff;--sidebar-item-active: rgba(255, 255, 255, .08);--sidebar-accent: #818cf8;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06);--shadow-lg: 0 20px 40px rgba(15, 23, 42, .16);--radius: 8px;--radius-sm: 6px;font-family:-apple-system,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--fg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:1fr}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-fg);padding:20px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{color:#fff;font-weight:700;font-size:18px;padding:4px 12px 20px;letter-spacing:.02em;display:flex;align-items:baseline;gap:8px}.sidebar .brand-mark{color:var(--sidebar-accent)}.sidebar .brand-sub{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.sidebar .group-label{color:#64748b;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:16px 12px 6px}.sidebar .nav-item,.sidebar .tab{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--sidebar-fg);text-decoration:none;font-size:13.5px;font-weight:500;transition:background .12s ease,color .12s ease}.sidebar .nav-item:hover,.sidebar .tab:hover{background:var(--sidebar-item-active);color:var(--sidebar-fg-active)}.sidebar .nav-item.active,.sidebar .tab.active{background:var(--sidebar-item-active);color:var(--sidebar-fg-active);box-shadow:inset 3px 0 0 var(--sidebar-accent)}.sidebar .nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700}.sidebar .footer{margin-top:auto;padding:12px;color:#475569;font-size:11px;border-top:1px solid rgba(255,255,255,.06)}.topbar{display:none}main{padding:28px 32px 48px;max-width:1440px;width:100%}section{margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header h1{margin:0 0 4px;font-size:22px;font-weight:650;letter-spacing:-.01em}.page-header .subtitle{color:var(--muted);font-size:13.5px;line-height:1.45;max-width:720px}.page-header .actions{display:flex;gap:8px;flex-shrink:0}h1{margin:0 0 8px;font-size:22px;font-weight:650;letter-spacing:-.01em}h2{margin:24px 0 10px;font-size:15px;font-weight:600;color:var(--fg-soft)}.muted{color:var(--muted);font-size:13px}.error{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:10px 14px;border-radius:var(--radius-sm);margin:12px 0;font-size:13px}.empty{color:var(--muted);padding:48px 24px;text-align:center;background:var(--card);border:1px dashed var(--border-strong);border-radius:var(--radius)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.card+.card{margin-top:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:4px;transition:transform .12s ease,box-shadow .12s ease}.stat:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.stat .label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.stat .value{font-size:28px;font-weight:650;letter-spacing:-.02em;color:var(--fg)}.stat .delta{font-size:12px;color:var(--muted)}.stat .delta.up{color:var(--allow)}.stat .delta.down{color:var(--danger)}.stat.accent{border-left:3px solid var(--accent)}.stat.allow{border-left:3px solid var(--allow)}.stat.warn{border-left:3px solid var(--warn)}.stat.block{border-left:3px solid var(--block)}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:12px 0;box-shadow:var(--shadow-sm)}.table th,.table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--table-row-hover, #fafbff)}.table th{background:var(--table-header-bg, #f8fafc);font-weight:600;color:var(--muted);text-transform:uppercase;font-size:10.5px;letter-spacing:.06em}.action{font-weight:600;font-size:11px;letter-spacing:.03em}.action-ALLOW{color:var(--allow)}.action-WARN{color:var(--warn)}.action-BLOCK{color:var(--block)}.action-RECORD{color:var(--record)}.chip{display:inline-block;background:#f1f5f9;padding:3px 9px;border-radius:12px;font-size:11px;color:var(--fg-soft);margin-right:4px;margin-bottom:2px;font-weight:500}.chip.accent{background:var(--accent-soft);color:var(--accent)}.badge{display:inline-block;padding:3px 9px;border-radius:4px;font-size:10.5px;font-weight:600;color:#fff;letter-spacing:.03em}.badge-ONLINE{background:var(--online)}.badge-IDLE{background:var(--idle)}.badge-OFFLINE{background:var(--offline)}.badge-STALE{background:var(--stale)}.badge-REVOKED{background:var(--revoked)}.sev{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.sev.critical{background:#fee2e2;color:#991b1b}.sev.high{background:#fef3c7;color:#92400e}.sev.medium{background:#dbeafe;color:#1e40af}.sev.low{background:#f1f5f9;color:#475569}.form-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.form-row input,.form-row select,.form-row textarea{padding:7px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;min-width:140px;font-family:inherit;background:var(--card);transition:border-color .12s ease,box-shadow .12s ease}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4338ca1f}button{padding:7px 14px;border:1px solid var(--border-strong);background:var(--card);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:500;color:var(--fg);transition:background .12s ease,border-color .12s ease;font-family:inherit}button:hover{background:var(--button-ghost-hover, #f8fafc);border-color:var(--muted)}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:#fca5a5}button.danger:hover{background:#fef2f2;border-color:var(--danger)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:#f1f5f9}code{font-family:SF Mono,Cascadia Code,Monaco,monospace;font-size:12px;background:#f1f5f9;padding:1px 5px;border-radius:3px;color:var(--fg-soft)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-body{background:var(--card);border-radius:var(--radius);padding:24px;max-width:480px;width:calc(100% - 32px);box-shadow:var(--shadow-lg)}.modal-body h2{margin-top:0}.modal-body p{color:var(--fg);line-height:1.5}.tag-preview{display:inline-block;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:3px;margin-left:8px;vertical-align:middle;text-transform:uppercase}.callout{background:var(--accent-soft);border:1px solid #c7d2fe;color:var(--accent);padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.5;margin:12px 0}.callout strong{color:var(--accent-hover)}.placeholder-hero{background:linear-gradient(180deg,#eef2ff,#fff);border:1px solid var(--border);border-radius:var(--radius);padding:48px 40px;text-align:center;margin:24px 0}.placeholder-hero h2{margin:0 0 8px;font-size:20px;color:var(--fg)}.placeholder-hero p{color:var(--muted);max-width:520px;margin:0 auto 16px;line-height:1.55}:root[data-theme=cyphermesh]{--fg: #F8FAFC;--fg-soft: #CBD5E1;--bg: #080B18;--card: #101426;--muted: #778198;--accent: #8B18F5;--accent-soft: rgba(139, 24, 245, .14);--accent-hover: #A855F7;--border: #252C45;--border-strong: #3A4565;--sidebar-bg: #080B18;--sidebar-fg: #CBD5E1;--sidebar-fg-active: #FFFFFF;--sidebar-item-active: rgba(139, 24, 245, .14);--sidebar-accent: #BA27FC;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .24);--shadow-md: 0 5px 16px rgba(0, 0, 0, .28);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .32);--allow: #22C55E;--warn: #F59E0B;--block: #F87171;--danger: #F87171;--record: #A855F7;--online: #22C55E;--idle: #F59E0B;--offline: #778198;--stale: #D97706;--revoked: #F87171;--bg-page: #080b18;--bg-surface: #101426;--bg-surface-secondary: #151a2d;--bg-surface-tertiary: #1b2239;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #a8b0c2;--text-muted: #778198;--text-disabled: #475569;--text-inverse: #ffffff;--border-default: #252c45;--border-subtle: #1c2338;--border-focus: #ba27fc;--primary: #8b18f5;--primary-hover: #a855f7;--primary-active: #ba27fc;--primary-soft: rgba(139, 24, 245, .14);--secondary: #3154e8;--secondary-hover: #4565ed;--secondary-active: #5b76f0;--secondary-soft: rgba(49, 84, 232, .14);--success: #22c55e;--success-soft: rgba(34, 197, 94, .1);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .1);--error: #f87171;--error-soft: rgba(239, 68, 68, .1);--info: #60a5fa;--info-soft: rgba(59, 130, 246, .1);--input-bg: #101426;--input-border: #3a4565;--input-border-hover: #4b587a;--input-placeholder: #778198;--input-focus: #ba27fc;--button-primary-bg: #630dea;--button-primary-hover: #7c2bef;--button-primary-active: #8b18f5;--button-primary-text: #ffffff;--button-secondary-bg: #0129d9;--button-secondary-hover: #3154e8;--button-secondary-active: #4565ed;--button-secondary-text: #ffffff;--button-outline-bg: transparent;--button-outline-border: #3a4565;--button-outline-text: #e2e8f0;--button-ghost-text: #cbd5e1;--button-ghost-hover: #151a2d;--card-bg: #101426;--card-border: #252c45;--table-header-bg: #151a2d;--table-row-hover: #151a2d;--table-border: #252c45;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);color:var(--fg)}:root[data-theme=cyphermesh-light]{--fg: #0F172A;--fg-soft: #475569;--bg: #F8FAFC;--card: #FFFFFF;--muted: #94A3B8;--accent: #630DEA;--accent-soft: #F3E8FF;--accent-hover: #5209C7;--border: #E2E8F0;--border-strong: #CBD5E1;--sidebar-bg: #0F172A;--sidebar-fg: #CBD5E1;--sidebar-fg-active: #FFFFFF;--sidebar-item-active: rgba(99, 13, 234, .2);--sidebar-accent: #A855F7;--shadow-sm: 0 2px 6px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .07);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .09);--allow: #16a34a;--warn: #d97706;--block: #dc2626;--danger: #dc2626;--record: #630dea;--online: #16a34a;--idle: #d97706;--offline: #94a3b8;--stale: #d97706;--revoked: #dc2626;--bg-page: #f8fafc;--bg-surface: #ffffff;--bg-surface-secondary: #f8fafc;--bg-surface-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-muted: #94a3b8;--text-inverse: #ffffff;--border-default: #e2e8f0;--border-subtle: #eef2f6;--border-focus: #630dea;--primary: #630dea;--primary-hover: #5209c7;--primary-active: #4208a1;--primary-soft: #f3e8ff;--secondary: #0129d9;--secondary-hover: #1d4ed8;--secondary-active: #1e40af;--secondary-soft: #eff6ff;--success: #16a34a;--success-soft: #f0fdf4;--warning: #d97706;--warning-soft: #fffbeb;--error: #dc2626;--error-soft: #fef2f2;--info: #2563eb;--info-soft: #eff6ff;--input-bg: #ffffff;--input-border: #cbd5e1;--input-border-hover: #94a3b8;--input-placeholder: #94a3b8;--input-focus: #630dea;--button-primary-bg: #630dea;--button-primary-hover: #5209c7;--button-primary-active: #4208a1;--button-primary-text: #ffffff;--button-secondary-bg: #0129d9;--button-secondary-hover: #1d4ed8;--button-secondary-active: #1e40af;--button-secondary-text: #ffffff;--button-outline-bg: #ffffff;--button-outline-border: #cbd5e1;--button-outline-text: #334155;--button-ghost-text: #475569;--button-ghost-hover: #f1f5f9;--card-bg: #ffffff;--card-border: #e2e8f0;--table-header-bg: #f8fafc;--table-row-hover: #f8fafc;--table-border: #e2e8f0;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);color:var(--fg)}:root[data-theme=dark]{--fg: #f1f5f9;--fg-soft: #cbd5e1;--bg: #0b1120;--card: #111c34;--muted: #94a3b8;--accent: #6366f1;--accent-soft: rgba(99, 102, 241, .14);--accent-hover: #818cf8;--border: #1f2a44;--border-strong: #334155;--sidebar-bg: #0b1120;--sidebar-fg: #cbd5e1;--sidebar-fg-active: #ffffff;--sidebar-item-active: rgba(255, 255, 255, .08);--sidebar-accent: #818cf8;color:var(--fg)}:root[data-theme=cyphermesh] .table tbody tr:hover,:root[data-theme=dark] .table tbody tr:hover{background:#ffffff0a}:root[data-theme=cyphermesh] .table th,:root[data-theme=dark] .table th{background:#ffffff08;color:var(--muted)}:root[data-theme=cyphermesh] button:hover,:root[data-theme=dark] button:hover{background:#ffffff0d;border-color:var(--border-strong)}:root[data-theme=cyphermesh] .error,:root[data-theme=dark] .error{background:#f8717114;border-color:#f871714d}.login-shell{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at top left,rgba(67,56,202,.18),transparent 55%),radial-gradient(ellipse at bottom right,rgba(109,40,217,.14),transparent 60%),var(--bg);padding:32px 16px;box-sizing:border-box}.login-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:36px 32px 28px;box-shadow:0 24px 60px -24px #0f172a59}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.login-brand-mark{color:var(--accent);font-size:22px;line-height:1}.login-brand-name{font-weight:700;font-size:18px;color:var(--fg);letter-spacing:.01em}.login-brand-sub{margin-left:auto;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.login-title{margin:0 0 6px;font-size:24px;color:var(--fg);font-weight:650}.login-sub{margin:0 0 24px;color:var(--muted);font-size:13.5px}.login-error{margin:0 0 16px;padding:10px 12px;border-radius:8px;background:#b91c1c14;border:1px solid rgba(185,28,28,.28);color:var(--danger);font-size:13px;line-height:1.45}.login-field{display:block;margin-bottom:14px}.login-field>span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.02em}.login-field input{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4338ca24}.login-field input:disabled{opacity:.6;cursor:not-allowed}.login-primary{width:100%;margin-top:6px;padding:11px 14px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .12s ease}.login-primary:hover:not(:disabled){background:var(--accent-hover)}.login-primary:disabled{opacity:.65;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0 14px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-sso{width:100%;padding:10px 14px;background:transparent;color:var(--fg);border:1px solid var(--border-strong);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.login-sso:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.login-sso:disabled{opacity:.55;cursor:not-allowed}.login-sso-hint{margin:8px 0 0;font-size:12px;color:var(--muted);text-align:center}.login-footer{margin-top:28px;padding-top:16px;border-top:1px solid var(--border);text-align:center;font-size:11px;color:var(--muted);letter-spacing:.04em}.sidebar .session-badge{margin:10px 12px 6px;padding:10px 12px;background:var(--sidebar-item-active);border-radius:8px;color:var(--sidebar-fg);font-size:12px;line-height:1.3;overflow:hidden;word-break:break-all}.sidebar .session-badge .session-email{color:var(--sidebar-fg-active);font-weight:600;display:block;margin-bottom:2px}.sidebar .session-badge .session-roles{color:var(--sidebar-fg);opacity:.75;font-size:11px}.sidebar .session-signout{margin:0 12px 10px;padding:8px 10px;width:calc(100% - 24px);background:transparent;border:1px solid rgba(255,255,255,.14);color:var(--sidebar-fg);border-radius:6px;font-size:12px;cursor:pointer;transition:background-color .12s ease}.sidebar .session-signout:hover{background:#ffffff14;color:var(--sidebar-fg-active)}
