:root{--bg: #10110e;--bg-2: #181910;--panel: #1c1d14;--line: #2d2f22;--ink: #ece7d4;--muted: #9a9378;--gold: #d7b15c;--buy: #7ea36a;--sell: #c45c4a;--warn: #d4a017;--danger: #c45c4a}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:"Source Sans 3",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 28px 14px;border-bottom:1px solid var(--line);background:var(--bg-2)}.brand{display:flex;flex-direction:column;gap:2px}.brand b{font-family:Newsreader,serif;font-size:28px;font-weight:600;letter-spacing:-.03em}.brand span,.clock,.field label,.tiny{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.clock{font-family:IBM Plex Mono,monospace;text-align:right}.clock strong{display:block;color:var(--ink);font-size:18px;letter-spacing:0;text-transform:none}.shell{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);min-height:0}.rail,.desk{min-width:0}.rail{border-right:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:16px;background:#14150f;overflow:auto}.desk{padding:20px 24px 28px;display:flex;flex-direction:column;gap:16px}.card{background:var(--panel);border:1px solid var(--line);padding:16px}.card h2,.card h3{margin:0 0 12px;font-family:Newsreader,serif;font-size:20px;font-weight:500}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head h3{margin:0}.card-head .btn{padding:7px 12px;flex:0 0 auto}.row{display:flex;gap:10px}.row.actions{flex-wrap:wrap}.row.actions .btn{flex:1 1 140px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;flex:1}.field input,.field select{width:100%;min-width:0;background:#10110e;color:var(--ink);border:1px solid #3a3c2c;padding:9px 10px;outline:none}.field input:focus,.field select:focus{border-color:var(--gold)}.check{display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:14px;line-height:1.4;margin:8px 0 12px}.check input{margin-top:3px;flex:0 0 auto}.check span{min-width:0;flex:1}.btn{border:0;padding:10px 14px;background:var(--gold);color:#1a1608;font-weight:700}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--sell);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.warn{color:var(--muted);font-size:12px;line-height:1.45;margin:0 0 10px}.banner{padding:10px 12px;border:1px solid var(--line);color:var(--muted);font-size:13px}.banner.bad{border-color:var(--sell);color:#f0c7c0}.banner.ok{border-color:#445536;color:#c8ddb8}.status-grid,.levels,.candles,.meta{display:grid;gap:10px}.status-grid{grid-template-columns:repeat(4,1fr)}.stat,.level,.candle{background:#14150f;border:1px solid var(--line);padding:12px;min-width:0}.stat b,.level b,.candle b,.price{display:block;font-family:IBM Plex Mono,monospace;font-size:18px;line-height:1.25;margin-top:8px;overflow-wrap:anywhere}.stat-copy{font-size:14px!important;font-weight:600;letter-spacing:0;text-transform:none;overflow-wrap:break-word}.stat-sub{display:block;margin-top:6px;color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none}.level.sell{box-shadow:inset 3px 0 0 var(--sell)}.level.buy{box-shadow:inset 3px 0 0 var(--buy)}.levels{grid-template-columns:repeat(4,1fr)}.candles{grid-template-columns:repeat(3,1fr)}.candle{display:flex;flex-direction:column;gap:2px}.candle .tiny{display:block}.ohlc{display:block;margin-top:8px;color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none;line-height:1.4}.candle.up{box-shadow:inset 3px 0 0 var(--buy)}.candle.down{box-shadow:inset 3px 0 0 var(--sell)}.price-strip{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:8px 0 4px}.feed-status{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:13px}.feed-status i{font-style:normal;color:var(--ink)}.quote{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:0}.price-strip em{font-style:normal;color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:clamp(22px,3.4vw,32px);font-variant-numeric:tabular-nums;line-height:1}.price-strip em.flash{animation:tick .16s ease-out}@keyframes tick{0%{opacity:.45}to{opacity:1}}.price-strip em.up{color:var(--buy)}.price-strip em.down{color:var(--sell)}.quote-mark{color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none}.notes{margin:0;padding-left:18px;color:var(--muted);line-height:1.5;letter-spacing:0;text-transform:none}.table-wrap{overflow:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-family:IBM Plex Mono,monospace;font-size:12px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);letter-spacing:0;text-transform:none}th{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}td{line-height:1.45}.pos{color:var(--buy)}.neg{color:var(--sell)}.logs{max-height:220px;overflow:auto;font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1.7;letter-spacing:0;color:var(--muted)}.logs .error{color:#f0c7c0}.logs .trade{color:var(--gold)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#666}.dot.on{background:var(--buy)}.dot.live{background:var(--sell)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#080906b8;display:grid;place-items:center;padding:24px;z-index:40}.modal{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);padding:20px 20px 16px}.modal h3{margin:6px 0 10px;font-family:Newsreader,serif;font-size:24px;font-weight:500}.modal p{margin:0 0 18px;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.modal .row{flex-wrap:wrap}.modal .btn{flex:1 1 120px}.modal.success{box-shadow:inset 3px 0 0 var(--buy)}.modal.error{box-shadow:inset 3px 0 0 var(--sell)}.modal.confirm{box-shadow:inset 3px 0 0 var(--gold)}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:min(420px,100%)}.gate-card .btn{width:100%;margin-top:4px}@media(max-width:1200px){.status-grid,.levels{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:960px){.shell{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line)}.status-grid,.levels,.candles{grid-template-columns:1fr}.price-strip{flex-direction:column;align-items:flex-start}.quote{align-items:flex-start}.topbar{flex-direction:column;align-items:flex-start}}
