.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg-base: #0A0A0F;--bg-0: #050810;--bg-1: #0a0f1a;--bg-2: #0f1628;--bg-3: #151e35;--bg-4: #1a2744;--bg-hover: #1e2d50;--surface-1: rgba(255, 255, 255, .03);--surface-2: rgba(255, 255, 255, .06);--surface-3: rgba(255, 255, 255, .09);--surface-4: rgba(255, 255, 255, .12);--border-1: rgba(255, 255, 255, .06);--border-2: rgba(255, 255, 255, .1);--border-3: rgba(255, 255, 255, .15);--border-glass: rgba(255, 255, 255, .08);--divider: rgba(255, 255, 255, .06);--text-0: #ffffff;--text-1: #e2e8f0;--text-2: #94a3b8;--text-3: #64748b;--text-4: #475569;--green: #00DC82;--green-dim: #059669;--green-alpha: rgba(0, 220, 130, .12);--red: #FF4458;--red-dim: #dc2626;--red-alpha: rgba(255, 68, 88, .12);--blue: #3B82F6;--blue-dim: #2563eb;--blue-alpha: rgba(59, 130, 246, .12);--purple: #8B5CF6;--purple-dim: #7c3aed;--purple-alpha: rgba(139, 92, 246, .12);--amber: #F59E0B;--amber-dim: #d97706;--amber-alpha: rgba(245, 158, 11, .12);--cyan: #06d6e0;--cyan-dim: #0891a2;--cyan-alpha: rgba(6, 214, 224, .12);--orange: #fb923c;--pink: #ec4899;--teal: #14b8a6;--primary: var(--cyan);--primary-dim: var(--cyan-dim);--primary-alpha: var(--cyan-alpha);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--fs-xs: 10px;--fs-sm: 11px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .5);--shadow-glow-cyan: 0 0 20px rgba(6, 214, 224, .15);--shadow-glow-green: 0 0 20px rgba(0, 220, 130, .15);--shadow-glow-red: 0 0 20px rgba(255, 68, 88, .15);--shadow-glow-purple: 0 0 20px rgba(139, 92, 246, .15);--glass-blur: 20px;--glass-bg: rgba(10, 15, 26, .75);--glass-bg-heavy: rgba(10, 15, 26, .9);--glass-border: rgba(255, 255, 255, .08);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-panel: 1;--z-header: 100;--z-dropdown: 200;--z-modal: 1000;--z-toast: 2000;--z-tooltip: 3000}[data-theme=light]{--bg-base: #f0f2f5;--bg-0: #f8f9fb;--bg-1: #ffffff;--bg-2: #f1f3f7;--bg-3: #e4e7ee;--bg-4: #d5d9e3;--bg-hover: #e9ecf2;--surface-1: rgba(0, 0, 0, .02);--surface-2: rgba(0, 0, 0, .04);--surface-3: rgba(0, 0, 0, .06);--surface-4: rgba(0, 0, 0, .08);--border-1: rgba(0, 0, 0, .08);--border-2: rgba(0, 0, 0, .12);--border-3: rgba(0, 0, 0, .18);--border-glass: rgba(0, 0, 0, .06);--divider: rgba(0, 0, 0, .06);--text-0: #0f172a;--text-1: #1e293b;--text-2: #475569;--text-3: #64748b;--text-4: #94a3b8;--green: #059669;--green-dim: #10b981;--green-alpha: rgba(5, 150, 105, .12);--red: #dc2626;--red-dim: #ef4444;--red-alpha: rgba(220, 38, 38, .12);--blue: #2563eb;--blue-dim: #3b82f6;--blue-alpha: rgba(37, 99, 235, .12);--purple: #7c3aed;--purple-dim: #a78bfa;--purple-alpha: rgba(124, 58, 237, .12);--amber: #d97706;--amber-dim: #f59e0b;--amber-alpha: rgba(217, 119, 6, .12);--cyan: #0891b2;--cyan-dim: #06b6d4;--cyan-alpha: rgba(8, 145, 178, .12);--orange: #ea580c;--pink: #db2777;--teal: #0d9488;--glass-bg: rgba(255, 255, 255, .75);--glass-bg-heavy: rgba(255, 255, 255, .9);--glass-border: rgba(0, 0, 0, .06);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 8px 32px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .15);--shadow-glow-cyan: 0 0 20px rgba(8, 145, 178, .1);--shadow-glow-green: 0 0 20px rgba(5, 150, 105, .1);--shadow-glow-red: 0 0 20px rgba(220, 38, 38, .1);--shadow-glow-purple: 0 0 20px rgba(124, 58, 237, .1)}body:before{content:"";position:fixed;inset:0;z-index:-1;background:conic-gradient(from 45deg at 25% 25%,rgba(6,214,224,.04),transparent 50%),conic-gradient(from 225deg at 75% 75%,rgba(139,92,246,.04),transparent 50%),conic-gradient(from 135deg at 50% 50%,rgba(0,220,130,.03),transparent 50%);animation:ambient-rotate 30s linear infinite;pointer-events:none;opacity:.7}@keyframes ambient-rotate{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.glass-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);pointer-events:none}.glass-card{background:var(--surface-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-3);position:relative}.glass-overlay{background:#05081099;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glass-btn{background:var(--surface-2);border:1px solid var(--border-glass);border-radius:var(--radius-md);color:var(--text-2);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.glass-btn:hover{background:var(--surface-3);border-color:var(--border-2);color:var(--text-1)}.glow-cyan{box-shadow:var(--shadow-glow-cyan)}.glow-green{box-shadow:var(--shadow-glow-green)}.glow-red{box-shadow:var(--shadow-glow-red)}.glow-purple{box-shadow:var(--shadow-glow-purple)}.text-glow-green{text-shadow:0 0 10px rgba(0,220,130,.5);transition:text-shadow .6s ease-out}.text-glow-red{text-shadow:0 0 10px rgba(255,68,88,.5);transition:text-shadow .6s ease-out}.text-glow-none{text-shadow:none;transition:text-shadow .6s ease-out}@keyframes symbol-link-pulse{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 6px #3b82f600}to{box-shadow:0 0 #3b82f600}}.symbol-linked{animation:symbol-link-pulse .6s ease-out}@keyframes heartbeat{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.status-heartbeat{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-heartbeat.live{background:var(--green);animation:heartbeat 2s ease-in-out infinite}.status-heartbeat.loading{background:var(--amber);animation:heartbeat 1s ease-in-out infinite}.status-heartbeat.stale{background:var(--text-4)}.status-heartbeat.error{background:var(--red);animation:heartbeat .8s ease-in-out infinite}@media(max-width:768px){.glass-panel,.glass-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}body:before{opacity:.4}}.panel{transition:border-color var(--duration-normal),box-shadow var(--duration-normal)}.panel:hover{border-color:var(--border-2);box-shadow:0 0 24px #06d6e00f,var(--shadow-sm)}.react-grid-item.react-draggable-dragging{box-shadow:0 12px 40px #0006,0 0 30px #06d6e01a!important;z-index:100!important;opacity:.92}.react-grid-item.react-grid-placeholder{background:var(--cyan-alpha)!important;border:1px dashed var(--cyan)!important;border-radius:var(--radius-lg)!important;opacity:.3}.dense-table tbody tr{transition:background var(--duration-fast)}.dense-table tbody tr:hover{background:var(--surface-2)}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}.badge-live{animation:badge-pulse 2s ease-in-out infinite}.panel-body{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}.panel-body::-webkit-scrollbar{width:5px;height:5px}.panel-body::-webkit-scrollbar-track{background:transparent}.panel-body::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:3px}.panel-body::-webkit-scrollbar-thumb:hover{background:var(--surface-4)}.panel:focus-within{outline:1px solid var(--cyan-alpha);outline-offset:-1px}@keyframes notif-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@media(prefers-reduced-motion:reduce){body:before{animation:none}.status-heartbeat.live,.status-heartbeat.loading,.status-heartbeat.error{animation:none;opacity:1}.symbol-linked,.badge-live{animation:none}.panel:hover{box-shadow:var(--shadow-sm)}.react-grid-item.react-draggable-dragging{box-shadow:var(--shadow-md)!important}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);color:var(--text-1);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes pulse-glow{0%,to{opacity:.5}50%{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes breathe{0%,to{box-shadow:0 0 8px #06d6e033}50%{box-shadow:0 0 20px #06d6e066}}@keyframes scan-line{0%{top:0%}to{top:100%}}@keyframes shimmer-sweep{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-in{animation:slide-up .35s var(--ease-out) both}.anim-fade{animation:fade-in .4s var(--ease-out) both}.spinner{animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton{animation:none;background:var(--bg-3)}.spinner,.ticker-scroll{animation:none}.anim-in,.anim-fade{animation:none;opacity:1;transform:none}.status-dot.live,.status-dot.warn,.status-dot.error{animation:none;opacity:1}.flash-green,.flash-red{animation:none}.react-grid-item{transition:none}}@media(pointer:coarse){button,a,[role=button],input,select,textarea{-webkit-tap-highlight-color:transparent;touch-action:manipulation}}@media(max-width:768px){body{font-size:14px}.mono{font-size:12px}}@media(max-width:480px){body{font-size:13px}.mono{font-size:11px}}.card{background:var(--surface-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-glass);border-radius:var(--radius-xl);padding:18px;transition:all var(--duration-normal);position:relative;overflow:hidden}.card:hover{border-color:var(--border-2);box-shadow:var(--shadow-sm)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent)}.btn-primary{background:linear-gradient(135deg,var(--cyan),var(--blue));border:none;color:#fff;padding:12px 24px;border-radius:var(--radius-lg);font-weight:var(--fw-semibold);font-size:var(--fs-md);cursor:pointer;display:flex;align-items:center;gap:8px;transition:all var(--duration-normal);font-family:var(--font-sans)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #06d6e040}.btn-primary:active{transform:translateY(0) scale(.97);box-shadow:0 2px 8px #06d6e026;transition-duration:50ms}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;border:1px solid var(--border-1);color:var(--text-2);padding:8px 14px;border-radius:var(--radius-md);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all var(--duration-fast);font-family:var(--font-sans)}.btn-ghost:hover:not(:disabled){border-color:var(--border-2);color:var(--text-1);background:var(--surface-2)}.btn-ghost:active:not(:disabled){transform:scale(.96);transition-duration:50ms}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.badge{padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);border:1px solid var(--border-glass)}.tab-btn{padding:9px 16px;border-radius:var(--radius-md);font-size:12px;font-weight:var(--fw-medium);cursor:pointer;transition:all var(--duration-fast);border:1px solid transparent;background:transparent;color:var(--text-3);font-family:var(--font-sans);display:flex;align-items:center;gap:6px;white-space:nowrap}.tab-btn.active{background:var(--surface-3);border-color:var(--border-2);color:var(--cyan)}.tab-btn:hover:not(.active){color:var(--text-2);background:var(--surface-2)}.input-field{background:var(--surface-1);border:1px solid var(--border-1);color:var(--text-1);padding:8px 12px;border-radius:var(--radius-md);font-size:var(--fs-base);font-family:var(--font-mono);outline:none;transition:border-color var(--duration-normal);width:100%}.input-field:focus{border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan-alpha)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.live{background:var(--green);animation:pulse-glow 2s ease-in-out infinite}.status-dot.warn{background:var(--amber);animation:pulse-glow 1.5s ease-in-out infinite}.status-dot.error{background:var(--red);animation:pulse-glow 1s ease-in-out infinite}.skeleton{background:linear-gradient(110deg,var(--surface-1) 0%,var(--surface-1) 40%,var(--surface-3) 50%,var(--surface-1) 60%,var(--surface-1) 100%);background-size:200% 100%;animation:shimmer-sweep 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.skeleton-chart{position:relative;background:var(--surface-1);border-radius:var(--radius-md);overflow:hidden}.skeleton-chart:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,transparent 40%,var(--surface-3) 50%,transparent 60%,transparent 100%);background-size:200% 100%;animation:shimmer-sweep 1.5s ease-in-out infinite}.skeleton-chart:after{content:"";position:absolute;inset:10px 10px 20px 30px;border-left:1px solid var(--border-1);border-bottom:1px solid var(--border-1)}.toast-container{position:fixed;top:16px;right:16px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--glass-bg-heavy);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-2);border-radius:var(--radius-lg);padding:12px 16px;font-size:12px;color:var(--text-1);pointer-events:auto;animation:slide-right .25s var(--ease-out);display:flex;align-items:center;gap:10px;max-width:360px;box-shadow:var(--shadow-md)}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.toast.warning{border-left:3px solid var(--amber)}.toast.info{border-left:3px solid var(--cyan)}@media(max-width:996px){.btn-primary{padding:10px 20px;font-size:13px}.btn-ghost{padding:7px 12px;font-size:11px}.card{padding:14px;border-radius:var(--radius-lg)}.tab-btn{padding:7px 12px;font-size:11px}.toast{max-width:320px;font-size:11px;padding:10px 14px}}@media(max-width:768px){.btn-primary{min-height:44px;padding:10px 18px;font-size:13px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn-ghost{min-height:44px;padding:8px 12px;font-size:11px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.tab-btn{min-height:40px;padding:6px 10px;font-size:11px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.card{padding:12px;border-radius:var(--radius-md)}.badge{font-size:9px;padding:2px 6px}.input-field{min-height:44px;padding:10px 12px;font-size:14px}.toast-container{top:8px;right:8px;left:8px}.toast{max-width:100%;font-size:11px}.skeleton{border-radius:var(--radius-sm)}}@media(max-width:480px){.btn-primary{padding:10px 14px;font-size:12px;gap:6px;width:100%;justify-content:center}.btn-ghost{font-size:10px;padding:8px 10px}.tab-btn{padding:5px 8px;font-size:10px;gap:4px}.card{padding:10px;border-radius:var(--radius-md)}.badge{font-size:8px}.input-field{font-size:16px}.toast{padding:8px 12px;gap:8px}.status-dot{width:6px;height:6px}}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{height:48px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border-1);display:flex;align-items:center;padding:0 16px;gap:16px;flex-shrink:0;z-index:var(--z-header)}.app-body{flex:1;overflow:auto;position:relative}.app-footer{height:28px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border-1);display:flex;align-items:center;padding:0 16px;gap:16px;font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0}.ticker-bar{height:32px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-1);overflow:hidden;position:relative;flex-shrink:0}.ticker-scroll{display:flex;gap:32px;white-space:nowrap;animation:ticker 60s linear infinite;padding:0 16px;align-items:center;height:100%}.ticker-item{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.ticker-symbol{color:var(--text-2);font-weight:var(--fw-semibold)}.ticker-price{color:var(--text-0);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ticker-change{font-family:var(--font-mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.ticker-change.up{color:var(--green)}.ticker-change.down{color:var(--red)}.dense-table{width:100%;border-collapse:collapse;font-size:12px}.dense-table th{text-align:left;padding:6px 10px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-bottom:1px solid var(--border-1);cursor:pointer;-webkit-user-select:none;user-select:none}.dense-table th:hover{color:var(--text-2)}.dense-table td{padding:6px 10px;border-bottom:1px solid var(--border-1);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.dense-table tr:hover td{background:var(--surface-2)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-3)}@media(max-width:1200px){.app-header,.app-footer{padding:0 12px;gap:12px}.ticker-scroll{gap:24px}.dense-table td,.dense-table th{padding:5px 8px}}@media(max-width:996px){.app-header{height:44px;padding:0 10px;gap:10px}.app-footer{font-size:9px;height:24px}.ticker-scroll{gap:20px;padding:0 10px}.ticker-item{font-size:10px}.dense-table{font-size:11px}.dense-table td{font-size:10px}}@media(max-width:768px){.app-header{height:42px;padding:0 8px;gap:8px}.ticker-bar{display:none}.app-footer{height:22px;padding:0 8px;font-size:9px}.app-body{padding:0}.dense-table th{font-size:9px;padding:4px 6px}.dense-table td{font-size:10px;padding:4px 6px}.dense-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:480px){.app-header{height:40px;padding:0 6px;gap:6px}.app-footer{display:none}.dense-table th{padding:3px 4px}.dense-table td{padding:3px 4px;font-size:9px}}.react-grid-layout{position:relative}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:100;opacity:.9}.react-grid-item.resizing{transition:none;z-index:100}.react-grid-item>div{height:100%}.react-grid-placeholder{background:var(--cyan)!important;opacity:.1!important;border-radius:var(--radius-lg)!important}.panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:100%;overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.panel:hover{border-color:var(--border-2);box-shadow:var(--shadow-md)}.panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);pointer-events:none;z-index:1}.panel-titlebar{height:26px;background:var(--surface-2);display:flex;align-items:center;padding:0 8px;gap:6px;cursor:grab;flex-shrink:0;border-bottom:1px solid var(--border-1);-webkit-user-select:none;user-select:none;position:relative}.panel-titlebar:active{cursor:grabbing}.panel-title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-sm);color:var(--text-4);transition:all var(--duration-fast)}.panel-btn:hover{background:var(--surface-3);color:var(--text-2)}.panel-body{flex:1;overflow:auto;padding:12px}.workspace-tabs{display:flex;align-items:center;gap:4px;padding:0 8px;height:34px;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-1);flex-shrink:0;overflow-x:auto}.workspace-tab{padding:4px 12px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;border:1px solid transparent;background:transparent;color:var(--text-3);font-family:var(--font-sans);white-space:nowrap;transition:all var(--duration-fast)}.workspace-tab.active{background:var(--surface-3);border-color:var(--border-2);color:var(--cyan)}.workspace-tab:hover:not(.active){color:var(--text-2);background:var(--surface-2)}@media(max-width:996px){.react-grid-layout{margin:0 4px}.panel-body{padding:10px}.panel-titlebar{padding:0 6px;gap:4px}.workspace-tabs{gap:2px;padding:0 4px}.workspace-tab{padding:4px 10px;font-size:10px}}@media(max-width:768px){.react-grid-layout{margin:0 2px}.panel{border-radius:var(--radius-md)}.panel-body{padding:8px}.panel-titlebar{height:24px;padding:0 6px;gap:4px}.panel-title{font-size:9px}.panel-btn{width:22px;height:22px;min-width:22px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.workspace-tabs{gap:2px;padding:0 4px;height:32px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tab{padding:4px 10px;font-size:10px;scroll-snap-align:start;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}}@media(max-width:480px){.react-grid-layout{margin:0}.panel{border-radius:var(--radius-sm)}.panel-body{padding:6px}.panel-titlebar{height:22px;padding:0 4px}.panel-title{font-size:8px;letter-spacing:.03em}.panel-btn{width:24px;height:24px;min-width:24px}.workspace-tabs{height:30px}.workspace-tab{padding:3px 8px;font-size:9px}.react-grid-item{transition-duration:.1s}}.heatmap-grid{display:grid;gap:2px}.heatmap-cell{display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-family:var(--font-mono);font-weight:var(--fw-medium);border-radius:var(--radius-sm);min-height:32px;transition:opacity var(--duration-fast),outline .1s;cursor:pointer}.heatmap-cell:hover{opacity:.85;outline:1px solid var(--text-2)}.price-up{color:var(--green)}.price-down{color:var(--red)}.flash-green{animation:flash-bg-green .4s ease-out}.flash-red{animation:flash-bg-red .4s ease-out}@keyframes flash-bg-green{0%{background:var(--green-alpha)}to{background:transparent}}@keyframes flash-bg-red{0%{background:var(--red-alpha)}to{background:transparent}}@media(max-width:768px){.heatmap-cell{min-height:28px;font-size:9px}}@media(max-width:480px){.heatmap-cell{min-height:24px;font-size:8px}}.command-overlay{position:fixed;inset:0;background:#05081099;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:center;padding-top:20vh;z-index:var(--z-modal)}.command-dialog{width:600px;max-height:480px;background:var(--glass-bg-heavy);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-2);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}[cmdk-root]{display:flex;flex-direction:column;height:100%;max-height:480px}[cmdk-input]{flex:1;background:none;border:none;color:var(--text-0);font-size:15px;font-family:var(--font-mono);outline:none;caret-color:var(--cyan)}[cmdk-input]::placeholder{color:var(--text-4)}[cmdk-list]{flex:1;overflow-y:auto;padding:var(--space-2);overscroll-behavior:contain}[cmdk-group-heading]{font-size:9px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-4);padding:var(--space-2) var(--space-3);margin-top:var(--space-1)}[cmdk-item]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer;font-size:13px;color:var(--text-1);transition:background var(--duration-fast)}[cmdk-item][data-selected=true]{background:var(--surface-3)}[cmdk-item]:hover{background:var(--surface-2)}[cmdk-item] .command-item-icon{color:var(--text-3);flex-shrink:0}[cmdk-item] .command-item-label{flex:1;font-size:13px;color:var(--text-1)}[cmdk-item] .command-item-desc{font-size:var(--fs-sm);color:var(--text-3);margin-left:auto}[cmdk-item] .command-item-shortcut{font-size:var(--fs-xs);padding:2px 6px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-3);font-family:var(--font-mono);border:1px solid var(--border-1)}[cmdk-empty]{padding:var(--space-4);text-align:center;color:var(--text-3);font-size:12px}[cmdk-separator]{height:1px;background:var(--border-1);margin:var(--space-1) 0}.cmdk-input-wrapper{display:flex;align-items:center;padding:12px 16px;gap:8px;border-bottom:1px solid var(--border-1)}.command-preview{width:240px;border-left:1px solid var(--border-1);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}@media(max-width:768px){.command-dialog{width:calc(100vw - 32px);max-height:60vh;border-radius:var(--radius-xl)}.command-overlay{padding-top:12vh}[cmdk-input]{font-size:14px}.cmdk-input-wrapper{padding:10px 12px}[cmdk-item]{padding:10px 12px;min-height:44px}[cmdk-item] .command-item-label{font-size:14px}[cmdk-item] .command-item-desc{font-size:10px}[cmdk-item] .command-item-shortcut{display:none}[cmdk-list]{padding:4px}.command-preview{display:none}}@media(max-width:480px){.command-dialog{width:calc(100vw - 16px);max-height:70vh;border-radius:var(--radius-lg)}.command-overlay{padding-top:8vh}[cmdk-input]{font-size:16px}[cmdk-item]{padding:12px 10px}}
