:root{--color-bg: #0d0d0d;--color-bg-surface: #141414;--color-bg-elevated: #1a1a1a;--color-bg-input: #111111;--color-bg-hover: #202020;--color-accent: #00ff84;--color-accent-dim: #00cc6a;--color-accent-muted: rgba(0, 255, 132, .12);--color-text-primary: #e0e0e0;--color-text-secondary: #888888;--color-text-muted: #555555;--color-text-inverse: #0d0d0d;--color-border: #2a2a2a;--color-border-subtle: #1e1e1e;--color-border-accent: rgba(0, 255, 132, .4);--color-error: #ff4d4d;--color-warning: #ffbb33;--color-success: #00ff84;--color-info: #4d9fff;--color-danger: #ff4d4d;--color-danger-dim: #cc3d3d;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-sans: system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 2px;--radius: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow: 0 4px 12px rgba(0, 0, 0, .6);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .8);--shadow-accent: 0 0 12px rgba(0, 255, 132, .2);--transition-fast: .12s ease;--transition: .2s ease;--transition-slow: .35s ease;--z-base: 0;--z-raised: 10;--z-overlay: 100;--z-modal: 200;--z-toast: 300}[data-theme=light]{--color-bg: #f8f8f8;--color-bg-surface: #ffffff;--color-bg-elevated: #f0f0f0;--color-bg-input: #fafafa;--color-bg-hover: #eeeeee;--color-accent: #006633;--color-accent-dim: #005529;--color-accent-muted: rgba(0, 102, 51, .1);--color-text-primary: #1a1a1a;--color-text-secondary: #555555;--color-text-muted: #999999;--color-text-inverse: #ffffff;--color-border: #dddddd;--color-border-subtle: #eeeeee;--color-border-accent: rgba(0, 102, 51, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);--shadow-accent: 0 0 12px rgba(0, 102, 51, .15)}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}body{font-family:var(--font-mono);font-size:var(--text-base);line-height:1.6;color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:700;line-height:1.2;color:var(--color-text-primary);margin:0 0 var(--space-4)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5,h6{font-size:var(--text-base)}p{margin:0 0 var(--space-4);color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-dim);text-decoration:underline}code,pre{font-family:var(--font-mono);font-size:var(--text-sm)}pre{background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.prompt:before{content:"> ";color:var(--color-accent)}.mono{font-family:var(--font-mono)}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.btn,.btn-icon,.btn-danger,.btn-ghost,.btn-secondary,.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;line-height:1.5;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled,.btn-icon:disabled,.btn-danger:disabled,.btn-ghost:disabled,.btn-secondary:disabled,.btn-primary:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn:focus-visible,.btn-icon:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible,.btn-secondary:focus-visible,.btn-primary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-dim);border-color:var(--color-accent-dim);box-shadow:var(--shadow-accent)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:transparent;color:var(--color-accent);border-color:var(--color-border-accent)}.btn-secondary:hover:not(:disabled){background:var(--color-accent-muted);border-color:var(--color-accent)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary);border-color:var(--color-border-accent)}.btn-danger{background:transparent;color:var(--color-danger);border-color:#ff4d4d66}.btn-danger:hover:not(:disabled){background:#ff4d4d1a;border-color:var(--color-danger)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn-icon{padding:var(--space-2);background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-icon:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.badge-terminal{display:inline-flex;align-items:center;padding:2px var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--color-text-inverse);background:var(--color-accent);border-radius:var(--radius-sm);line-height:1.5}.badge-terminal:before{content:"> ";opacity:.7}.form-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}.form-label{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-label:before{content:"> ";color:var(--color-accent)}.form-control,.form-select{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;resize:vertical}.form-control::placeholder,.form-select::placeholder{color:var(--color-text-muted)}.form-control:focus,.form-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted)}.form-control:disabled,.form-select:disabled{opacity:.5;cursor:not-allowed}.form-control.is-invalid,.is-invalid.form-select{border-color:var(--color-error)}.form-control.is-invalid:focus,.is-invalid.form-select:focus{box-shadow:0 0 0 3px #ff4d4d26}textarea.form-control,textarea.form-select{min-height:120px;line-height:1.6}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8);cursor:pointer}.form-check{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.form-check input[type=checkbox],.form-check input[type=radio]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.form-check .form-check-label{font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.form-toggle{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.form-toggle input[type=checkbox]{appearance:none;width:36px;height:20px;background:var(--color-border);border-radius:10px;position:relative;cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.form-toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--color-text-muted);border-radius:50%;transition:transform var(--transition-fast),background var(--transition-fast)}.form-toggle input[type=checkbox]:checked{background:var(--color-accent-muted);border:1px solid var(--color-border-accent)}.form-toggle input[type=checkbox]:checked:after{transform:translate(16px);background:var(--color-accent)}.form-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1)}.form-error:before{content:"! "}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.card,.stat-card,.card-accent,.card-elevated{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-elevated{background:var(--color-bg-elevated);box-shadow:var(--shadow)}.card-accent{border-color:var(--color-border-accent);box-shadow:var(--shadow-accent)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.card-header h2,.card-header h3,.card-header h4{margin:0;font-size:var(--text-lg);color:var(--color-text-primary)}.card-header h2:before,.card-header h3:before,.card-header h4:before{content:"> ";color:var(--color-accent)}.card-body{flex:1}.card-footer{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3)}.stat-card{text-align:center}.stat-card .stat-value{font-size:var(--text-3xl);font-weight:700;color:var(--color-accent);line-height:1;margin-bottom:var(--space-2);font-family:var(--font-mono)}.stat-card .stat-label{font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em}.panel{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.panel-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);display:flex;align-items:center;justify-content:space-between}.panel-header h3{margin:0;font-size:var(--text-base);color:var(--color-text-secondary)}.panel-header h3:before{content:"> ";color:var(--color-accent)}.panel-body{padding:var(--space-6)}.alert,.alert-info,.alert-success,.alert-warning,.alert-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid;font-size:var(--text-sm);margin-bottom:var(--space-4)}.alert-error{color:var(--color-error);background:#ff4d4d14;border-color:#ff4d4d4d}.alert-error:before{content:"[ERROR] ";font-weight:700}.alert-warning{color:var(--color-warning);background:#ffbb3314;border-color:#ffbb334d}.alert-warning:before{content:"[WARN] ";font-weight:700}.alert-success{color:var(--color-success);background:#00ff8414;border-color:#00ff844d}.alert-success:before{content:"[OK] ";font-weight:700}.alert-info{color:var(--color-info);background:#4d9fff14;border-color:#4d9fff4d}.alert-info:before{content:"[INFO] ";font-weight:700}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}html,body{height:100%}body{background:var(--color-bg);min-height:100vh;display:flex;flex-direction:column}app-root{display:flex;flex-direction:column;min-height:100vh}main{flex:1;display:flex;flex-direction:column}.container{width:100%;max-width:960px;margin:0 auto;padding:0 var(--space-6)}.container-sm{width:100%;max-width:640px;margin:0 auto;padding:0 var(--space-6)}.container-lg{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6)}.page{flex:1;padding:var(--space-12) 0}.divider{height:1px;background:var(--color-border);margin:var(--space-6) 0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-accent-muted);color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}@media(max-width:768px){.grid-2{grid-template-columns:1fr}}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.grid-3{grid-template-columns:1fr}}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.grid-4{grid-template-columns:1fr}}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.table th{color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);background:var(--color-bg-elevated)}.table td{color:var(--color-text-secondary)}.table tr:hover td{background:var(--color-bg-hover)}.tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);gap:0}.tab{padding:var(--space-3) var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.tab:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}
