:root{--bg-canvas: #f8fafc;--bg-subtle: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #fafafa;--bg-card-elevated: #ffffff;--bg-glass: rgba(255, 255, 255, .85);--border-subtle: #f1f5f9;--border-default: #e2e8f0;--border-strong: #cbd5e1;--border-focus: #6366f1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--primary-50: #eef2ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-gradient: linear-gradient(135deg, #6366f1 0%, #3b82f6 100%);--primary-glow: rgba(99, 102, 241, .25);--success: #10b981;--success-bg: #ecfdf5;--success-border: #a7f3d0;--success-text: #047857;--warning: #f59e0b;--warning-bg: #fffbeb;--warning-border: #fde68a;--warning-text: #b45309;--danger: #ef4444;--danger-bg: #fef2f2;--danger-border: #fecaca;--danger-text: #b91c1c;--info: #0ea5e9;--info-bg: #f0f9ff;--info-border: #bae6fd;--info-text: #0369a1;--shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, .06), 0 1px 2px -1px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .04);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .04);--sidebar-bg: #090d16;--sidebar-border: #1e293b;--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-item-hover: rgba(255, 255, 255, .05);--sidebar-item-active: rgba(99, 102, 241, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.16, 1, .3, 1)}@media(prefers-color-scheme:dark){:root{--bg-canvas: #090d16;--bg-subtle: #0f172a;--bg-card: #111827;--bg-card-hover: #172033;--bg-card-elevated: #1e293b;--bg-glass: rgba(17, 24, 39, .85);--border-subtle: #1e293b;--border-default: #243047;--border-strong: #334155;--border-focus: #818cf8;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--text-inverse: #0f172a;--primary-50: rgba(99, 102, 241, .1);--primary-100: rgba(99, 102, 241, .18);--primary-200: #818cf8;--primary-500: #6366f1;--primary-600: #818cf8;--primary-700: #a5b4fc;--primary-glow: rgba(99, 102, 241, .35);--success-bg: rgba(16, 185, 129, .12);--success-border: rgba(16, 185, 129, .25);--success-text: #34d399;--warning-bg: rgba(245, 158, 11, .12);--warning-border: rgba(245, 158, 11, .25);--warning-text: #fbbf24;--danger-bg: rgba(239, 68, 68, .12);--danger-border: rgba(239, 68, 68, .25);--danger-text: #f87171;--info-bg: rgba(14, 165, 233, .12);--info-border: rgba(14, 165, 233, .25);--info-text: #38bdf8;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .45);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6);--sidebar-bg: #05070d;--sidebar-border: #151d2f}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:var(--bg-canvas);color:var(--text-primary);line-height:1.5;overflow-x:hidden}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:"liga" 0}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);display:flex;align-items:center;gap:10px}.page-title .title-badge{font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-default);padding:2px 10px;border-radius:var(--radius-full)}.page-desc{font-size:13px;color:var(--text-secondary);margin-top:2px}.tf-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);position:relative}.tf-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.tf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:500;padding:7px 16px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.tf-btn:active{transform:scale(.98)}.tf-btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.tf-btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.tf-btn-primary:hover:not(:disabled){opacity:.94;box-shadow:0 4px 12px var(--primary-glow)}.tf-btn-secondary{background:var(--bg-card);border-color:var(--border-default);color:var(--text-primary);box-shadow:var(--shadow-xs)}.tf-btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.tf-btn-danger{background:var(--danger);color:#fff}.tf-btn-danger:hover:not(:disabled){background:#dc2626}.tf-btn-sm{padding:4px 10px;font-size:12px;border-radius:var(--radius-sm)}.tf-input,.tf-select{padding:7px 12px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:13px;color:var(--text-primary);outline:none;transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.tf-input:focus,.tf-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-glow)}.tf-input::placeholder{color:var(--text-muted)}.tf-table-container{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.tf-table{width:100%;border-collapse:collapse;font-size:13px}.tf-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-subtle);border-bottom:1px solid var(--border-default);letter-spacing:.02em;white-space:nowrap}.tf-table td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.tf-table tr:last-child td{border-bottom:none}.tf-table tr:hover td{background:var(--bg-card-hover)}.tf-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1.4;white-space:nowrap}.tf-badge-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.tf-badge-warning{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text)}.tf-badge-danger{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text)}.tf-badge-info{background:var(--info-bg);border:1px solid var(--info-border);color:var(--info-text)}.tf-badge-neutral{background:var(--bg-subtle);border:1px solid var(--border-default);color:var(--text-secondary)}.tf-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.tf-dot-pulse{position:relative}.tf-dot-pulse:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;background:inherit;opacity:.4;animation:tf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes tf-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(2);opacity:0}}.ws-reconnecting-badge{background:#f59e0b26;border-color:var(--warning);color:var(--warning-text);animation:ws-blink 1.2s ease-in-out infinite alternate}.ws-spinner-dot{width:7px;height:7px;border:1.5px solid var(--warning);border-top-color:transparent;border-radius:50%;animation:ws-spin .8s linear infinite;display:inline-block}@keyframes ws-spin{to{transform:rotate(360deg)}}@keyframes ws-blink{0%{opacity:.75}to{opacity:1}}.heartbeat-indicator{font-size:11px;color:var(--text-muted);font-weight:500;margin-left:10px;display:inline-flex;align-items:center;gap:4px}@media(max-width:480px){.page-header{flex-direction:column;align-items:flex-start;gap:12px}.page-header>div:last-child,.dashboard-header-actions,.logs-action-bar,.tasks-filter-bar{width:100%;display:flex;flex-wrap:wrap;gap:8px}.api-key-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.heartbeat-indicator{display:block;margin-left:0;margin-top:4px}}@media(max-width:375px){.stats-grid{grid-template-columns:1fr;gap:6px}.tf-badge{font-size:10px;padding:1px 6px}.page-title{font-size:17px}.page-desc{font-size:12px}.tf-btn{padding:6px 10px;font-size:12px}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
