:root{--bg-base: #0C0E12;--bg-surface: #141720;--bg-raised: #1A1E2A;--bg-hover: #1E2433;--border: #242838;--border-bright: #2E3448;--text-primary: #E8EAF0;--text-secondary: #6B7490;--text-dim: #404660;--accent: #F5A623;--accent-dim: rgba(245, 166, 35, .15);--accent-glow: rgba(245, 166, 35, .08);--bull: #1D9E75;--bull-dim: rgba(29, 158, 117, .15);--bear: #D85A30;--bear-dim: rgba(216, 90, 48, .15);--neutral: #6B7490;--warning: #EF9F27;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--sidebar-w: 220px;--radius: 6px;--radius-lg: 10px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent)}.text-bull{color:var(--bull)}.text-bear{color:var(--bear)}.app-shell{display:flex;height:100vh;overflow:hidden}.main-content{flex:1;overflow-y:auto;padding:28px 32px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card-title{font-family:var(--font-display);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px}.page-header{margin-bottom:28px}.page-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.page-subtitle{color:var(--text-secondary);font-size:13px;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius);border:1px solid transparent;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;text-decoration:none}.btn-primary{background:var(--accent);color:#0c0e12;border-color:var(--accent)}.btn-primary:hover{filter:brightness(1.1)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border-bright)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--bear-dim);color:var(--bear);border-color:transparent}.btn-danger:hover{background:#d85a3040}.btn-sm{padding:5px 10px;font-size:12px}.input{width:100%;background:var(--bg-raised);border:1px solid var(--border-bright);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-body);font-size:13px;padding:8px 12px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-dim)}select.input option{background:var(--bg-raised)}.input-label{display:block;font-size:11px;font-weight:500;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px}.form-group{margin-bottom:14px}.data-table{width:100%;border-collapse:collapse}.data-table th{font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.data-table td{padding:11px 12px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-hover)}.data-table .mono{font-family:var(--font-mono);font-size:12px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:500;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase}.badge-bull{background:var(--bull-dim);color:var(--bull)}.badge-bear{background:var(--bear-dim);color:var(--bear)}.badge-neutral{background:var(--bg-raised);color:var(--text-secondary)}.badge-accent{background:var(--accent-dim);color:var(--accent)}.badge-long{background:#6478ff1f;color:#89f}.badge-swing{background:#b464ff1f;color:#c9f}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0e12d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-surface);border:1px solid var(--border-bright);border-radius:var(--radius-lg);padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-title{font-family:var(--font-display);font-size:16px;font-weight:700;margin-bottom:20px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}.stat-label{font-size:10px;font-family:var(--font-display);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px}.stat-value{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--text-primary)}.stat-sub{font-size:11px;color:var(--text-secondary);margin-top:4px}.score-pill{display:inline-flex;align-items:center;justify-content:center;width:42px;height:24px;border-radius:4px;font-family:var(--font-mono);font-size:13px;font-weight:600}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:32px;margin-bottom:12px;opacity:.4}.empty-state-title{font-family:var(--font-display);font-size:15px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.flex{display:flex}.flex-center{display:flex;align-items:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.pos{color:var(--bull)}.neg{color:var(--bear)}.dim{color:var(--text-secondary)}
