:root{--bg-primary: #0f1729;--bg-secondary: #1a2332;--bg-card: rgba(26, 35, 50, .8);--bg-card-hover: rgba(30, 42, 60, .9);--bg-glass: rgba(255, 255, 255, .04);--border-glass: rgba(255, 255, 255, .08);--border-active: rgba(99, 179, 237, .3);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-heading: #f1f5f9;--accent-primary: #60a5fa;--accent-secondary: #818cf8;--accent-gradient: linear-gradient(135deg, #60a5fa 0%, #818cf8 50%, #a78bfa 100%);--success: #34d399;--success-bg: rgba(52, 211, 153, .1);--success-border: rgba(52, 211, 153, .2);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .1);--warning-border: rgba(251, 191, 36, .2);--error: #f87171;--error-bg: rgba(248, 113, 113, .1);--error-border: rgba(248, 113, 113, .2);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px rgba(96, 165, 250, .15);--transition-fast: .15s ease;--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(96,165,250,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(129,140,248,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(167,139,250,.04) 0%,transparent 50%);pointer-events:none;z-index:0}.container{max-width:960px;margin:0 auto;padding:24px 20px;position:relative;z-index:1}.card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:28px;margin-bottom:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.card:hover{border-color:var(--border-active)}.card h2{font-size:20px;font-weight:700;color:var(--text-heading);margin-bottom:6px;letter-spacing:-.02em}.card p{color:var(--text-secondary);font-size:14px;line-height:1.6}.btn{background:var(--accent-gradient);color:#fff;border:none;padding:12px 28px;font-size:14px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-base),opacity var(--transition-fast);display:inline-flex;align-items:center;gap:8px;font-family:var(--font-family);letter-spacing:.01em;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #60a5fa40}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-glass);color:var(--text-secondary);border:1px solid var(--border-glass)}.btn-secondary:hover:not(:disabled){background:#ffffff14;border-color:var(--border-active);box-shadow:none;color:var(--text-primary)}.btn-sm{padding:8px 16px;font-size:13px}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){box-shadow:0 8px 24px #f8717140}.btn-success{background:var(--success);color:#0f1729}.upload-area{border:2px dashed var(--border-glass);border-radius:var(--radius-md);padding:48px 24px;text-align:center;transition:all var(--transition-base);cursor:pointer;margin-bottom:20px;position:relative;overflow:hidden}.upload-area:before{content:"";position:absolute;inset:0;background:var(--accent-gradient);opacity:0;transition:opacity var(--transition-base)}.upload-area:hover{border-color:var(--accent-primary)}.upload-area:hover:before{opacity:.03}.upload-area.drag-over{border-color:var(--accent-primary);border-style:solid}.upload-area.drag-over:before{opacity:.06}.file-input{display:none}.status{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-weight:500;font-size:14px;border:1px solid}.status-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.status-error{background:var(--error-bg);color:var(--error);border-color:var(--error-border)}.status-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.table{width:100%;border-collapse:collapse;margin-top:16px;font-size:13px}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-glass)}.table th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-glass)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:16px;text-align:center}.stat-value{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.2}.stat-value.success{color:var(--success)}.stat-value.error{color:var(--error)}.stat-value.warning{color:var(--warning)}.stat-value.info{color:var(--accent-primary)}.stat-label{font-size:12px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}.auth-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.auth-status-indicator{display:flex;align-items:center;gap:10px}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-dot.connected{background:var(--success);box-shadow:0 0 8px #34d39999;animation:pulse-green 2s infinite}.status-dot.disconnected{background:var(--error);box-shadow:0 0 8px #f8717166}@keyframes pulse-green{0%,to{box-shadow:0 0 4px #34d39966}50%{box-shadow:0 0 12px #34d399cc}}.section-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:12px 0;border-bottom:1px solid var(--border-glass);-webkit-user-select:none;user-select:none}.section-toggle h3{font-size:15px;font-weight:600;color:var(--text-heading)}.loader-overlay{position:fixed;inset:0;background:#0f1729d9;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.loader-content{text-align:center;background:var(--bg-card);border:1px solid var(--border-glass);padding:40px;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),var(--shadow-glow);min-width:300px}.spinner{border:3px solid var(--border-glass);border-top:3px solid var(--accent-primary);border-radius:50%;width:48px;height:48px;animation:spin .8s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:10000;display:flex;flex-direction:column-reverse;gap:8px}.toast{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:14px 20px;min-width:300px;max-width:420px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;align-items:flex-start;gap:12px;animation:slideIn var(--transition-slow) forwards}.toast.removing{animation:slideOut var(--transition-base) forwards}.toast-icon{font-size:18px;flex-shrink:0;margin-top:1px}.toast-body{flex:1}.toast-title{font-size:14px;font-weight:600;color:var(--text-heading);margin-bottom:2px}.toast-message{font-size:13px;color:var(--text-secondary)}.toast-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;font-size:16px;line-height:1;flex-shrink:0}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--error)}.toast.warning{border-left:3px solid var(--warning)}.toast.info{border-left:3px solid var(--accent-primary)}@keyframes slideIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100px)}}@media(max-width:640px){.container{padding:16px 12px}.card{padding:20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.auth-bar{flex-direction:column;align-items:stretch;gap:12px}}
