:root{--bg: #f5f6f8;--surface: #ffffff;--surface-hover: #f0f1f3;--border: #d8dbe2;--text: #1a1d26;--text-dim: #6b7085;--accent: #2563eb;--green: #16a34a;--red: #dc2626;--yellow: #ca8a04;--orange: #ea580c;--demo-badge: #2563eb;--live-badge: #dc2626}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px}.app-layout{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);box-shadow:1px 0 4px #0000000a;padding:20px 0;flex-shrink:0;position:fixed;height:100vh;overflow-y:auto}.sidebar-logo{padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:12px}.sidebar-logo h1{font-size:18px;font-weight:700;color:var(--accent)}.sidebar-logo .mode-badge{display:inline-block;padding:2px 10px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:6px}.mode-badge.demo{background:var(--demo-badge);color:#fff}.mode-badge.live{background:var(--live-badge);color:#fff}.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;color:var(--text-dim);text-decoration:none;font-size:14px;transition:all .15s}.sidebar nav a:hover{background:var(--surface-hover);color:var(--text)}.sidebar nav a.active{background:var(--accent);color:#fff}.main-content{margin-left:220px;flex:1;padding:24px;min-height:100vh}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000000a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-header h2{font-size:15px;font-weight:600}.card-header h3{font-size:13px;font-weight:600;color:var(--text-dim)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-4{grid-template-columns:1fr 1fr 1fr 1fr}.stat-value{font-size:24px;font-weight:700}.stat-label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.source-tag{font-size:10px;color:var(--text-dim);text-transform:none;opacity:.7}.stat-positive{color:var(--green)}.stat-negative{color:var(--red)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px}td{padding:8px 12px;border-bottom:1px solid var(--border)}tr:hover td{background:var(--surface-hover)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;transition:all .15s}.btn:hover{background:var(--surface-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-green{background:#16a34a1f;color:var(--green)}.badge-red{background:#dc26261f;color:var(--red)}.badge-yellow{background:#ca8a041f;color:var(--yellow)}.badge-blue{background:#2563eb1f;color:var(--accent)}.badge-gray{background:#6b70851f;color:var(--text-dim)}input,select{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 12px;color:var(--text);font-size:13px}input:focus,select:focus{outline:none;border-color:var(--accent)}.toggle{position:relative;width:40px;height:22px;background:var(--border);border-radius:11px;cursor:pointer;transition:all .2s}.toggle.active{background:var(--green)}.toggle:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;top:2px;left:2px;transition:all .2s}.toggle.active:after{left:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1{font-size:22px;font-weight:700}.log-debug{color:var(--text-dim)}.log-info{color:var(--accent)}.log-warning{color:var(--yellow)}.log-error{color:var(--red)}.log-critical{color:var(--red);font-weight:700}.kill-switch{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .15s}.kill-switch.active{background:#dc26261a;border:1px solid var(--red)}.kill-switch.inactive{background:var(--surface);border:1px solid var(--border)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#bfc3ce;border-radius:3px}.market-card-body{display:flex;flex-direction:column;gap:12px}.market-question{font-size:12px;color:var(--text-dim)}.countdown-display{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.countdown-display.expired{color:var(--red)}.countdown-display.countdown-warn{color:var(--orange)}.price-row{display:flex;gap:20px;align-items:flex-start}.price-block{flex:1}.price-value{font-size:20px;font-weight:700;margin-top:2px}.price-diff{font-size:18px;font-weight:700;margin-top:2px}.diff-up{color:var(--green)}.diff-down{color:var(--red)}.outcome-row{display:flex;gap:12px}.outcome-card{flex:1;padding:10px 14px;border-radius:8px;border:1px solid var(--border)}.outcome-up{background:#16a34a0f;border-color:#16a34a33}.outcome-down{background:#dc26260f;border-color:#dc262633}.outcome-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.outcome-up .outcome-label{color:var(--green)}.outcome-down .outcome-label{color:var(--red)}.outcome-price{font-size:22px;font-weight:700;margin:4px 0}.outcome-sub{font-size:11px;color:var(--text-dim)}.orderbook-summary{display:flex;gap:24px;font-size:12px;color:var(--text-dim);padding-top:4px;border-top:1px solid var(--border)}.ptb-diff-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;padding:4px 0}.market-direction{font-size:12px;font-weight:700;padding:2px 10px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.market-direction.up{background:#16a34a1f;color:var(--green)}.market-direction.down{background:#dc26261f;color:var(--red)}.market-direction.even{background:#6b70851f;color:var(--text-dim)}.outcome-active{border-width:2px;box-shadow:0 0 0 1px #2563eb33}.arb-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:6px 0}.arb-label{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.arb-value{font-weight:700}.arb-opportunity{color:var(--green);font-weight:700}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px;width:100%;max-width:380px;box-shadow:0 4px 12px #00000014}.login-form h1{font-size:24px;font-weight:700;color:var(--accent);margin-bottom:4px}.login-subtitle{color:var(--text-dim);font-size:14px;margin-bottom:24px}.login-error{background:#fef2f2;color:var(--red);border:1px solid #fecaca;border-radius:6px;padding:10px 12px;font-size:13px;margin-bottom:16px}.login-form label{display:block;font-size:13px;font-weight:600;color:var(--text-dim);margin-bottom:16px}.login-form input{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg);color:var(--text);outline:none;transition:border-color .15s}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.login-form button{width:100%;margin-top:8px;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.login-form button:hover{background:#1d4ed8}.login-form button:disabled{opacity:.6;cursor:not-allowed}
