:root{--brand-primary: #2563EB;--brand-deep: #1D4ED8;--brand-navy: #0F172A;--brand-accent: #60A5FA;--brand-subtle: rgba(37, 99, 235, .12);--brand-glow: rgba(37, 99, 235, .22);--brand-highlight: #93C5FD;--bg-canvas: #0B1120;--bg-sidebar: #0E1628;--bg-subtle: #111B2E;--bg-secondary: #17243A;--bg-muted: #1E2D47;--bg-hover: #223452;--bg-active: #2A4064;--surface-bg: #111B2E;--surface-hover: #1A2840;--surface-subtle: #17243A;--surface-elevated: #1D2B44;--canvas-bg: #0B1120;--bg-primary: var(--bg-canvas);--text-primary: #F1F5F9;--text-secondary: #A3B2C7;--text-muted: #64748B;--text-inverse: #0F172A;--border-subtle: #1E2D44;--border-strong: #283750;--border-focus: #3B82F6;--focus-ring: rgba(59, 130, 246, .35);--status-connected: #10B981;--status-reconnecting: #F59E0B;--status-error: #EF4444;--status-inactive: #64748B;--status-info: #3B82F6;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-subtle: rgba(37, 99, 235, .15);--color-background: var(--bg-canvas);--color-surface: var(--surface-bg);--color-surface-elevated: var(--surface-elevated);--color-text: var(--text-primary);--color-text-muted: var(--text-muted);--color-border: var(--border-subtle);--color-success: #10B981;--color-warning: #F59E0B;--color-danger: #EF4444;--color-info: #3B82F6;--brand-green: var(--brand-accent);--brand-green-deep: var(--brand-deep);--brand-green-subtle: var(--brand-subtle);--signal-lime: var(--brand-accent);--signal-blue: #3B82F6;--signal-blue-subtle: rgba(59, 130, 246, .15);--signal-violet: #8B5CF6;--signal-violet-subtle: rgba(139, 92, 246, .15);--signal-coral: #F97316;--signal-coral-subtle: rgba(249, 115, 22, .15);--accent-primary: var(--brand-primary);--accent-glow: var(--brand-glow);--shadow-card: 0 4px 16px rgba(0, 0, 0, .28);--shadow-elevated: 0 14px 40px rgba(0, 0, 0, .45);--shadow-glow: 0 0 24px rgba(37, 99, 235, .2);--btn-pair-bg: #2563EB;--btn-pair-text: #FFFFFF;--btn-pair-hover: #1D4ED8;--tag-pill-bg: rgba(37, 99, 235, .08);--tag-pill-border: rgba(96, 165, 250, .18);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg-canvas: #F5F8FC;--bg-sidebar: #FFFFFF;--bg-subtle: #FFFFFF;--bg-secondary: #EDF3FA;--bg-muted: #E2ECF7;--bg-hover: #E9F1FA;--bg-active: #D9E6F5;--surface-bg: #FFFFFF;--surface-hover: #F8FAFC;--surface-subtle: #EDF3FA;--surface-elevated: #FFFFFF;--canvas-bg: #F5F8FC;--bg-primary: var(--bg-canvas);--text-primary: #172033;--text-secondary: #64748B;--text-muted: #8F9EAF;--text-inverse: #FFFFFF;--border-subtle: #DFE7F1;--border-strong: #CBD7E6;--border-focus: #2563EB;--focus-ring: rgba(37, 99, 235, .22);--status-connected: #059669;--status-reconnecting: #D97706;--status-error: #DC2626;--status-inactive: #8F9EAF;--status-info: #2563EB;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-subtle: #EAF2FF;--color-background: var(--bg-canvas);--color-surface: var(--surface-bg);--color-surface-elevated: var(--surface-elevated);--color-text: var(--text-primary);--color-text-muted: var(--text-muted);--color-border: var(--border-subtle);--color-success: #059669;--color-warning: #D97706;--color-danger: #DC2626;--color-info: #2563EB;--brand-green: #2563EB;--brand-green-deep: #1D4ED8;--brand-green-subtle: #EAF2FF;--signal-lime: #2563EB;--signal-blue: #2563EB;--signal-blue-subtle: #EAF2FF;--signal-violet: #7C3AED;--signal-violet-subtle: rgba(124, 58, 237, .08);--signal-coral: #EA580C;--signal-coral-subtle: rgba(234, 88, 12, .08);--accent-primary: #2563EB;--accent-glow: rgba(37, 99, 235, .12);--shadow-card: 0 1px 3px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .04);--shadow-elevated: 0 10px 32px rgba(15, 23, 42, .08);--shadow-glow: 0 0 20px rgba(37, 99, 235, .12);--btn-pair-bg: #2563EB;--btn-pair-text: #FFFFFF;--btn-pair-hover: #1D4ED8;--tag-pill-bg: #EDF3FA;--tag-pill-border: #DFE7F1}}[data-theme=light]{--bg-canvas: #F5F8FC;--bg-sidebar: #FFFFFF;--bg-subtle: #FFFFFF;--bg-secondary: #EDF3FA;--bg-muted: #E2ECF7;--bg-hover: #E9F1FA;--bg-active: #D9E6F5;--surface-bg: #FFFFFF;--surface-hover: #F8FAFC;--surface-subtle: #EDF3FA;--surface-elevated: #FFFFFF;--canvas-bg: #F5F8FC;--bg-primary: var(--bg-canvas);--text-primary: #172033;--text-secondary: #64748B;--text-muted: #8F9EAF;--text-inverse: #FFFFFF;--border-subtle: #DFE7F1;--border-strong: #CBD7E6;--border-focus: #2563EB;--focus-ring: rgba(37, 99, 235, .22);--status-connected: #059669;--status-reconnecting: #D97706;--status-error: #DC2626;--status-inactive: #8F9EAF;--status-info: #2563EB;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-subtle: #EAF2FF;--color-background: var(--bg-canvas);--color-surface: var(--surface-bg);--color-surface-elevated: var(--surface-elevated);--color-text: var(--text-primary);--color-text-muted: var(--text-muted);--color-border: var(--border-subtle);--color-success: #059669;--color-warning: #D97706;--color-danger: #DC2626;--color-info: #2563EB;--brand-green: #2563EB;--brand-green-deep: #1D4ED8;--brand-green-subtle: #EAF2FF;--signal-lime: #2563EB;--signal-blue: #2563EB;--signal-blue-subtle: #EAF2FF;--signal-violet: #7C3AED;--signal-violet-subtle: rgba(124, 58, 237, .08);--signal-coral: #EA580C;--signal-coral-subtle: rgba(234, 88, 12, .08);--accent-primary: #2563EB;--accent-glow: rgba(37, 99, 235, .12);--shadow-card: 0 1px 3px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .04);--shadow-elevated: 0 10px 32px rgba(15, 23, 42, .08);--shadow-glow: 0 0 20px rgba(37, 99, 235, .12);--btn-pair-bg: #2563EB;--btn-pair-text: #FFFFFF;--btn-pair-hover: #1D4ED8;--tag-pill-bg: #EDF3FA;--tag-pill-border: #DFE7F1}[data-theme=dark]{--bg-canvas: #0B1120;--bg-sidebar: #0E1628;--bg-subtle: #111B2E;--bg-secondary: #17243A;--bg-muted: #1E2D47;--bg-hover: #223452;--bg-active: #2A4064;--surface-bg: #111B2E;--surface-hover: #1A2840;--surface-subtle: #17243A;--surface-elevated: #1D2B44;--canvas-bg: #0B1120;--bg-primary: var(--bg-canvas);--text-primary: #F1F5F9;--text-secondary: #A3B2C7;--text-muted: #64748B;--text-inverse: #0F172A;--border-subtle: #1E2D44;--border-strong: #283750;--border-focus: #3B82F6;--focus-ring: rgba(59, 130, 246, .35);--status-connected: #10B981;--status-reconnecting: #F59E0B;--status-error: #EF4444;--status-inactive: #64748B;--status-info: #3B82F6;--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-subtle: rgba(37, 99, 235, .15);--color-background: var(--bg-canvas);--color-surface: var(--surface-bg);--color-surface-elevated: var(--surface-elevated);--color-text: var(--text-primary);--color-text-muted: var(--text-muted);--color-border: var(--border-subtle);--color-success: #10B981;--color-warning: #F59E0B;--color-danger: #EF4444;--color-info: #3B82F6;--brand-green: var(--brand-accent);--brand-green-deep: var(--brand-deep);--brand-green-subtle: var(--brand-subtle);--signal-lime: var(--brand-accent);--signal-blue: #3B82F6;--signal-blue-subtle: rgba(59, 130, 246, .15);--signal-violet: #8B5CF6;--signal-violet-subtle: rgba(139, 92, 246, .15);--signal-coral: #F97316;--signal-coral-subtle: rgba(251, 146, 60, .15);--accent-primary: var(--brand-primary);--accent-glow: var(--brand-glow);--shadow-card: 0 4px 16px rgba(0, 0, 0, .28);--shadow-elevated: 0 14px 40px rgba(0, 0, 0, .45);--shadow-glow: 0 0 24px rgba(37, 99, 235, .2);--btn-pair-bg: #2563EB;--btn-pair-text: #FFFFFF;--btn-pair-hover: #1D4ED8;--tag-pill-bg: rgba(37, 99, 235, .08);--tag-pill-border: rgba(96, 165, 250, .18)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;min-height:100vh;overflow-x:hidden;transition:background-color .2s ease,color .2s ease}code,pre,kbd{font-family:var(--font-mono)}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;background:none;border:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-1{flex:1 1 0%}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.gap-2\.5{gap:10px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.h-full{height:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-xs{font-size:12px;line-height:16px}.text-sm{font-size:14px;line-height:20px}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-mono{font-family:var(--font-mono)}.rounded{border-radius:var(--radius-sm)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.border-b{border-bottom:1px solid var(--border-subtle)}.border{border:1px solid var(--border-subtle)}:root{--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .22s cubic-bezier(.16, 1, .3, 1);--transition-smooth: .3s cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.15)}.transition-all{transition:all var(--transition-normal)}.transition-colors{transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.transition-transform{transition:transform var(--transition-normal)}.interactive-hover{transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.interactive-hover:hover{transform:translateY(-1px)}.interactive-hover:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes pulseGlow{0%,to{opacity:.8;transform:scale(1);filter:drop-shadow(0 0 8px rgba(34,197,94,.4))}50%{opacity:1;transform:scale(1.05);filter:drop-shadow(0 0 16px rgba(34,197,94,.8))}}.pulse-glow{animation:pulseGlow 3s ease-in-out infinite}@keyframes flowDash{to{stroke-dashoffset:-40}}.animate-flow{stroke-dasharray:6 6;animation:flowDash 2.5s linear infinite}@keyframes floatOrb{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-float{animation:floatOrb 4s ease-in-out infinite}@keyframes waveGlow{0%,to{opacity:.6}50%{opacity:.95}}.animate-wave-glow{animation:waveGlow 3s ease-in-out infinite alternate}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.sandhi-card{background-color:var(--surface-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sandhi-card:hover{border-color:var(--border-strong)}.sandhi-card-elevated{background-color:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated)}.sandhi-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:var(--brand-primary);color:#fff;font-weight:500;font-size:13px;padding:8px 16px;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-fast);cursor:pointer}.sandhi-btn-primary:hover:not(:disabled){background-color:var(--brand-deep);transform:translateY(-.5px);box-shadow:0 4px 12px #2563eb40}.sandhi-btn-primary:active:not(:disabled){transform:translateY(0)}.sandhi-btn-primary:disabled{opacity:.5;cursor:not-allowed}.sandhi-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:var(--bg-secondary);color:var(--text-primary);font-weight:500;font-size:13px;padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:all var(--transition-fast);cursor:pointer}.sandhi-btn-secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.sandhi-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.sandhi-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;background-color:transparent;color:var(--text-secondary);font-weight:500;font-size:13px;padding:8px 14px;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-fast);cursor:pointer}.sandhi-btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.sandhi-input{width:100%;background-color:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:13px;padding:8px 12px;border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sandhi-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--focus-ring)}.sandhi-input::placeholder{color:var(--text-muted)}.sandhi-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:3px 8px;border-radius:var(--radius-full);border:1px solid var(--border-subtle);background-color:var(--bg-secondary);color:var(--text-secondary)}.sandhi-badge-success{background-color:#10b9811f;border-color:#10b98147;color:var(--status-connected)}.sandhi-badge-primary{background-color:var(--brand-subtle);border-color:#3b82f64d;color:var(--brand-accent)}.sandhi-badge-warning{background-color:#f59e0b1f;border-color:#f59e0b47;color:var(--status-reconnecting)}.sandhi-badge-error{background-color:#ef44441f;border-color:#ef444447;color:var(--status-error)}
