@import "https://fonts.googleapis.com/css2?family=Exo+2:wght@300;400;500;600;700&family=Orbitron:wght@400;500;600;700&display=swap";:root{--color-primary:#f59e0b;--color-secondary:#fbbf24;--color-accent:#8b5cf6;--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-light:#334155;--color-surface-hover:#3b4a63;--color-text:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8;--color-border:#334155;--color-border-light:#475569;--color-success:#22c55e;--color-danger:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--color-glass:#1e293bcc;--color-glass-border:#f8fafc1a;--color-live-bg:#071a0e;--color-live-surface:#0d2818;--color-live-border:#22c55e4d;--color-live-accent:#22c55e;--color-paper-tint:#1a2744;--color-live-tint:#0f2015;--color-paper-badge:#3b82f6;--color-live-badge:#22c55e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #00000026;--font-heading:"Orbitron", sans-serif;--font-body:"Exo 2", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none}a:hover{opacity:.85}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.card{background:var(--color-surface);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);padding:var(--space-6);transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-lg)}.glass-card{background:var(--color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-glass-border);border-radius:var(--radius-md);padding:var(--space-6)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;border:none;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{opacity:.9;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:#1e1e1e}.btn-danger{background:var(--color-danger);color:#fff}.btn-secondary{color:var(--color-accent);border:2px solid var(--color-accent);background:0 0}.btn-secondary:hover{background:#8b5cf61a}.btn-ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-surface-light);color:var(--color-text)}.btn-text{color:var(--color-text-secondary);background:0 0;border:none;padding:8px 12px}.btn-text:hover{color:var(--color-text)}.input{background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);font-family:var(--font-body);padding:12px 16px;font-size:14px;transition:border-color .2s}.input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #f59e0b1f}.input::placeholder{color:var(--color-text-muted)}.badge{border-radius:var(--radius-sm);text-transform:uppercase;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-long{color:var(--color-success);background:#22c55e26}.badge-short{color:var(--color-danger);background:#ef444426}.badge-pending{color:var(--color-warning);background:#f59e0b26}.badge-success{color:var(--color-success);background:#22c55e26}.badge-danger{color:var(--color-danger);background:#ef444426}.badge-muted{color:var(--color-text-muted);background:#64748b26}.heading{font-family:var(--font-heading)}.toast-custom{background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-glass-border)!important}.auth-loading{justify-content:center;align-items:center;gap:var(--space-4);height:100vh;color:var(--color-primary);flex-direction:column;display:flex}.auth-loading-icon{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.95)}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-sm{padding:6px 14px;font-size:12px}.confirm-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.confirm-card{width:90%;max-width:400px;padding:var(--space-8);animation:.2s slideUp}.confirm-title{color:var(--color-text);margin-bottom:var(--space-3);font-size:18px;font-weight:600}.confirm-message{color:var(--color-text-secondary);margin-bottom:var(--space-6);font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:var(--space-3);display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-glass-border);width:240px;min-width:240px;padding:var(--space-4);gap:var(--space-2);flex-direction:column;transition:width .2s,min-width .2s,padding .2s;display:flex;overflow:hidden}.sidebar--collapsed{width:64px;min-width:64px;padding:var(--space-2)}.sidebar-brand{align-items:center;gap:var(--space-2);color:var(--color-primary);padding:var(--space-2);margin-bottom:var(--space-4);white-space:nowrap;font-size:18px;font-weight:700;display:flex}.sidebar--collapsed .sidebar-brand{padding:var(--space-2) 0;justify-content:center}.sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.nav-link{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;width:100%;font-size:14px;font-weight:500;font-family:var(--font-body);white-space:nowrap;background:0 0;border:none;padding:10px 12px;text-decoration:none;transition:all .15s;display:flex}.sidebar--collapsed .nav-link{justify-content:center;padding:10px}.nav-link:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-link.active{color:var(--color-primary);border-left:3px solid var(--color-primary);background:#f59e0b1f}.sidebar--collapsed .nav-link.active{border-left:none}.sidebar-footer{gap:var(--space-2);border-top:1px solid var(--color-border);padding-top:var(--space-4);flex-direction:column;display:flex}.sidebar-collapse-btn{border-radius:var(--radius-sm);background:var(--color-surface-light);color:var(--color-text-muted);cursor:pointer;border:none;justify-content:center;align-items:center;width:100%;padding:6px;transition:all .15s;display:flex}.sidebar-collapse-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.logout-btn{color:var(--color-text-muted)}.logout-btn:hover{color:var(--color-danger);background:#ef44441a}.mode-toggle{background:var(--color-surface-light);border-radius:var(--radius-sm);gap:4px;padding:3px;display:flex}.mode-btn{border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:12px;font-weight:600;font-family:var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;padding:6px 8px;transition:all .15s}.mode-btn.active{background:var(--color-paper-badge);color:#fff}.mode-btn--live.active{background:var(--color-live-badge);color:#fff}.mode-btn:hover:not(.active){background:var(--color-surface-hover);color:var(--color-text)}.pause-btn{color:var(--color-text-muted)}.pause-btn:hover{color:#d97706;background:#d977061a}.pause-btn--active{color:#d97706;background:#d9770614}.pause-btn--active:hover{color:var(--color-success);background:#22c55e1a}.exchange-badge{background:var(--color-surface-light);color:var(--color-text-secondary);border-radius:6px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-flex}.exchange-badge__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:background .3s}.exchange-badge__warning{color:#d97706;margin-left:2px;font-size:10px;font-weight:700}.header-bar{height:56px;min-height:56px;padding:0 var(--space-8);border-bottom:1px solid var(--color-glass-border);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.header-title{color:var(--color-text);margin:0;font-size:24px;font-weight:700}.header-right{align-items:center;gap:var(--space-4);display:flex}.header-refresh-group{align-items:center;gap:6px;display:flex}.header-last-updated{color:var(--color-text-muted);white-space:nowrap;font-size:11px;transition:color .3s}.header-last-updated--stale{color:#d97706}.header-refresh-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.header-refresh-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.header-refresh-btn:disabled{cursor:not-allowed;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-refresh-btn--spinning svg{animation:1s linear infinite spin}.mode-banner{height:36px;min-height:36px;font-size:13px;font-weight:700;font-family:var(--font-body);letter-spacing:.5px;justify-content:center;align-items:center;transition:background-color .3s,color .3s;display:flex}.mode-banner--paper{background:var(--color-paper-badge);color:#fff}.mode-banner--live{background:var(--color-live-badge);color:#fff}.mode-banner-text{align-items:center;gap:6px;display:flex}.mode-banner--paused{animation:2s ease-in-out infinite pausePulse;background:#d97706!important}@keyframes pausePulse{0%,to{opacity:1}50%{opacity:.75}}.layout{min-width:1280px;height:100vh;transition:background-color .3s;display:flex}.layout--paper .sidebar{border-right-color:var(--color-paper-badge)}.layout--live .sidebar{border-right-color:var(--color-live-badge)}.layout-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.main-content{padding:var(--space-8);flex:1;transition:background-color .3s;overflow-y:auto}.main-content.mode-paper{background:var(--color-bg)}.main-content.mode-live{background:var(--color-live-tint)}.error-boundary{min-height:400px;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.error-boundary__card{align-items:center;gap:var(--space-3);text-align:center;background:var(--color-surface);border:1px solid var(--color-border);max-width:420px;padding:var(--space-6);border-radius:12px;flex-direction:column;display:flex}.error-boundary__icon{color:var(--color-danger);opacity:.8}.error-boundary__title{font-family:var(--font-heading);color:var(--color-text);margin:0;font-size:24px}.error-boundary__message{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.5}.error-boundary__detail{color:var(--color-text-muted);word-break:break-all;background:#0f172a80;border-radius:6px;max-width:100%;margin:0;padding:8px 12px;font-family:monospace;font-size:12px}.error-boundary__actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.auth-page{background:var(--color-bg);height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:440px;padding:var(--space-8);text-align:center}.auth-brand{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-primary);margin-bottom:var(--space-2);font-size:28px;display:flex}.auth-subtitle{color:var(--color-text-muted);margin-bottom:var(--space-8);font-size:14px}.auth-form{gap:var(--space-4);text-align:left;flex-direction:column;display:flex}.auth-input-group{gap:var(--space-1);flex-direction:column;display:flex}.auth-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.auth-input-wrap{position:relative}.auth-input-wrap .input{padding-right:40px}.auth-toggle-visibility{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.auth-toggle-visibility:hover{color:var(--color-text)}.auth-error{border-radius:var(--radius-sm);padding:var(--space-3);align-items:center;gap:var(--space-2);background:#ef44441a;border:1px solid #ef44444d;flex-direction:column;display:flex}.auth-error p{color:var(--color-danger);text-align:center;margin:0;font-size:13px}.auth-retry-btn{padding:6px 16px;font-size:12px}.auth-verify-btn{width:100%;margin-top:var(--space-2);padding:14px;font-size:15px}.auth-footer-note{color:var(--color-text-muted);margin-top:var(--space-6);text-align:center;font-size:12px}
