:root{color-scheme:dark;--bg:#080e18;--panel:#101927;--panel-2:#131f30;--border:#223146;--text:#e8eef7;--muted:#8b9bb1;--blue:#83aaff;--green:#32d296;--red:#ff6e7b;--amber:#f3b85b;--radius:16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#0c1421;border-right:1px solid var(--border);padding:28px 18px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-size:21px;font-weight:750;text-decoration:none;padding:0 10px 38px}.brand-sub{display:block;color:#697a92;font-size:9px;letter-spacing:.18em;margin-top:3px}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:linear-gradient(145deg,#8bacff,#526fe0);color:#08101d;font-size:27px;font-weight:850;box-shadow:0 8px 26px #5d83ec40}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:20px}.sidebar nav{display:grid;gap:7px}.nav-item{width:100%;display:flex;gap:13px;align-items:center;background:transparent;color:#90a0b6;border:0;border-radius:10px;text-align:left;padding:12px 13px;font-size:14px}.nav-item span{font-size:19px;width:22px;text-align:center}.nav-item:hover,.nav-item.active{background:#18263b;color:#e9effa}.nav-item.active{box-shadow:inset 2px 0 #88aaff}.sidebar-bottom{margin-top:auto;display:grid;gap:15px}.exchange-pill{font-size:12px;color:#a8b8cc;border:1px solid var(--border);border-radius:20px;padding:9px 10px}.exchange-pill i,.status-badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px}.text-button{border:0;background:none;text-align:left;color:#8b9bb1;padding:8px 10px}.main-content{margin-left:248px;max-width:1600px;padding:34px clamp(20px,4vw,58px) 20px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:.16em;color:#7789a2;font-weight:750;margin:0 0 8px}.topbar h1{font-size:27px;margin:0;letter-spacing:-.03em}.topbar-actions{display:flex;align-items:center;gap:12px}.avatar{width:36px;height:36px;border-radius:50%;background:#243751;color:#c8d9f3;display:grid;place-items:center;font-weight:700}.status-badge{padding:8px 11px;border-radius:22px;background:#102820;border:1px solid #1d4938;font-size:11px;color:#a7e7ca;white-space:nowrap}.status-badge.degraded{background:#302417;border-color:#594225;color:#f0ca8b}.status-badge.degraded i{background:var(--amber)}.status-badge.disconnected{background:#321e25;border-color:#56313b;color:#ffabb3}.status-badge.disconnected i{background:var(--red)}.page{animation:fade .2s ease}@keyframes fade{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:28px 0 14px}.section-heading h2{font-size:16px;margin:0}.section-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}.grid{display:grid;gap:14px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card,.panel,.monitor-card,.signal-card,.form-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.summary-card{padding:17px 18px}.summary-label{font-size:11px;color:var(--muted)}.summary-value{font-size:25px;font-weight:700;margin-top:12px;letter-spacing:-.03em}.summary-note{font-size:11px;color:#72829a;margin-top:5px}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-card{padding:18px}.card-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.symbol-title{font-size:17px;font-weight:700}.market-label{font-size:11px;color:var(--muted);margin-top:4px}.state-label{font-size:10px;padding:6px 9px;border-radius:14px;background:#142c25;color:#9de0c2}.state-label.degraded,.state-label.recovering,.state-label.warming_up,.state-label.warning{background:#36291b;color:#f3ca88}.state-label.disabled,.state-label.disconnected,.state-label.paused{background:#301e24;color:#ffadb5}.timeframe-list{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.timeframe-chip{font-size:11px;color:#bbcae0;background:#1a293d;padding:7px 10px;border-radius:9px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;border-top:1px solid var(--border);padding-top:14px}.metric small{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.metric strong{font-size:13px;font-weight:650}.signal-preview{margin-top:15px;padding:12px;border-radius:11px;background:#0c1420;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.signal-direction{font-weight:750}.signal-direction.BUY{color:var(--green)}.signal-direction.SELL{color:var(--red)}.panel{padding:18px}.signal-list{display:grid;gap:10px}.signal-row{display:flex;align-items:center;gap:14px;padding:15px;background:var(--panel);border:1px solid var(--border);border-radius:13px;text-decoration:none;color:inherit}.signal-glyph{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;background:#122c25;color:var(--green)}.signal-glyph.SELL{background:#321e25;color:var(--red)}.signal-main{flex:1;min-width:0}.signal-main strong{font-size:13px}.signal-main small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.signal-price{text-align:right;font-size:12px}.signal-price small{display:block;color:var(--muted);margin-top:4px}.empty-state{padding:32px 18px;text-align:center;color:var(--muted);border:1px dashed #2b3b50;border-radius:var(--radius);font-size:13px}.button{border-radius:9px;border:1px solid transparent;padding:9px 13px;font-size:12px;font-weight:650}.button.primary{background:#83aaff;color:#0b1220}.button.primary:hover{background:#a2bdff}.button.secondary{background:#18263a;border-color:#30435d;color:#cfdaeb}.button.danger{background:#351f26;border-color:#59303a;color:#ffb2bb}.button.small{padding:7px 9px;font-size:11px}.button.full{width:100%;padding:12px}.actions{display:flex;flex-wrap:wrap;gap:7px}.config-layout{display:grid;grid-template-columns:minmax(270px,.75fr) minmax(0,1.25fr);gap:16px;align-items:start}.form-card{padding:19px}.form-card h2{font-size:15px;margin:0 0 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}.field label,.form-card label,.login-card label{font-size:11px;color:#9baac0}.field input,.field select,.login-card input{width:100%;color:var(--text);background:#0a111c;border:1px solid #2a3a50;border-radius:8px;padding:10px 11px;outline:none}.field input:focus,.field select:focus,.login-card input:focus{border-color:#779bdf}.check-row{display:flex;align-items:center;gap:9px;color:#bbc8da;font-size:12px;margin-top:14px}.check-row input{accent-color:#81a7ff;width:15px;height:15px}.form-actions{display:flex;gap:8px;margin-top:17px}.config-table{display:grid;gap:10px}.config-row{background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:15px}.config-row-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.config-row h3{margin:0;font-size:14px}.config-meta{font-size:11px;color:var(--muted);margin-top:5px}.config-stats{display:flex;gap:14px;flex-wrap:wrap;color:#aab8cb;font-size:11px;margin-top:13px}.toggle{position:relative;width:36px;height:20px;display:inline-block}.toggle input{opacity:0;width:0;height:0}.toggle span{position:absolute;inset:0;background:#39485b;border-radius:20px;transition:.2s}.toggle span:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:white;border-radius:50%;transition:.2s}.toggle input:checked+span{background:#3cb982}.toggle input:checked+span:before{transform:translateX(16px)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{padding:20px}.settings-card h2{font-size:15px;margin:0 0 8px}.settings-card p{font-size:12px;line-height:1.6;color:var(--muted)}.push-status{display:flex;gap:9px;align-items:center;color:#c5d2e4;font-size:12px;margin:15px 0}.push-status i{width:8px;height:8px;background:#687990;border-radius:50%}.push-status.enabled i{background:var(--green)}.connection-banner{margin:-12px 0 24px;padding:12px 14px;background:#30251a;border:1px solid #63491f;border-radius:10px;color:#f0ce91;font-size:12px}.toast-region{position:fixed;right:18px;bottom:18px;display:grid;gap:9px;z-index:10}.toast{background:#1a293a;border:1px solid #3b506c;color:#e8eef7;border-radius:10px;padding:12px 15px;max-width:340px;box-shadow:0 12px 35px #0008;font-size:12px}.toast.error{border-color:#7a3b43}footer{display:flex;justify-content:space-between;border-top:1px solid #1a2838;margin-top:38px;padding:15px 2px 4px;color:#62738b;font-size:10px}.login-screen{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 20%,#182945,#080e18 65%);display:grid;place-items:center;padding:20px;z-index:5}.login-card{width:min(400px,100%);background:#101927;border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:0 24px 80px #0006;display:grid;gap:13px}.login-card .brand-mark{margin-bottom:5px}.login-card h1{font-size:24px;margin:0}.login-card>p{margin:0}.login-card input{margin-top:6px}.muted{color:var(--muted);font-size:12px}.error{color:#ff929c;font-size:12px;min-height:16px}.connection-note{font-size:11px;color:var(--muted);line-height:1.5}.install-hint{font-size:11px;padding:11px;background:#0d1622;border-radius:9px;color:#aab9cd}
.text-buy,.tone-green{color:var(--green)}.text-sell,.tone-red{color:var(--red)}.summary-value.compact{font-size:16px}.section-heading.no-top{margin-top:0}.config-actions{margin-top:13px}.detail-panel{margin-top:15px}
@media(max-width:1050px){.sidebar{width:215px}.main-content{margin-left:215px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-grid{grid-template-columns:1fr}.config-layout{grid-template-columns:1fr}}
@media(max-width:700px){.sidebar{inset:auto 0 0;width:auto;height:66px;padding:5px 8px;background:#0c1421ee;border-right:0;border-top:1px solid var(--border);backdrop-filter:blur(15px)}.brand,.sidebar-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:2px}.nav-item{flex:1;display:grid;justify-items:center;gap:0;padding:5px 2px;font-size:9px;border-radius:8px}.nav-item span{font-size:18px}.nav-item.active{box-shadow:inset 0 2px #88aaff}.main-content{margin:0;padding:22px 15px 90px}.topbar{align-items:start;margin-bottom:22px}.topbar h1{font-size:23px}.topbar-actions{gap:7px}.status-badge{font-size:0;padding:9px}.status-badge i{margin:0}.avatar{width:32px;height:32px}.summary-grid{gap:9px}.summary-card{padding:13px}.summary-value{font-size:21px}.summary-note{font-size:10px}.section-heading{margin-top:23px}.settings-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.metric-row{gap:6px}.metric strong{font-size:12px}.signal-row{gap:9px;padding:12px}.signal-price{font-size:11px}.signal-row .signal-main small{font-size:10px}footer{font-size:9px}.button{padding:8px 10px}.topbar-actions #install-button{display:none!important}}

/* Native Safe Area Insets */
.main-content { padding-top: max(22px, env(safe-area-inset-top, 0px)); }
@media(max-width:700px) {
  .sidebar {
    padding-bottom: max(5px, env(safe-area-inset-bottom, 0px));
    height: calc(66px + env(safe-area-inset-bottom, 0px));
  }
  .main-content {
    padding-bottom: calc(90px + env(safe-area-inset-bottom, 0px));
  }
}

/* Renko sequence chart */
.renko-card{margin-top:25px;padding:17px;background:var(--panel);border:1px solid var(--border);border-radius:15px;overflow:hidden}
.renko-card-head{display:flex;align-items:start;justify-content:space-between;gap:16px}
.renko-card-head h2{font-size:16px;margin:0}.renko-card-head p{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.6}.renko-card-head p span{margin-left:9px;color:#c4d3e6}
.renko-controls{display:flex;align-items:center;gap:8px}.renko-controls label{font-size:11px;color:var(--muted)}.renko-controls select{min-width:155px;color:var(--text);background:#0a111c;border:1px solid #2a3a50;border-radius:8px;padding:8px;font-size:11px}
.renko-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--muted);margin:13px 0 10px}.renko-live{display:inline-flex;gap:6px;align-items:center;color:#91d8b0}.renko-live i{width:7px;height:7px;border-radius:50%;background:#39bc81}.renko-live.offline{color:#ffb2bb}.renko-live.offline i{background:#d9534f}
.renko-tools{display:flex;gap:7px;margin-bottom:8px}.renko-tools button:disabled{opacity:.4}.renko-chart-wrap{position:relative;height:350px;min-height:260px;border:1px solid #1b2a3c;border-radius:9px;overflow:hidden;background:#0a111b}.renko-chart-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.renko-empty{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#8393a9;font-size:12px;pointer-events:none}.renko-empty.hidden{display:none}
.renko-detail{min-height:44px;display:flex;flex-wrap:wrap;gap:5px 15px;padding:11px 1px;color:var(--muted);font-size:10px;line-height:1.5}.renko-detail strong{color:#e2ebf8}.renko-signals{border-top:1px solid var(--border);padding-top:12px}.renko-signals h3{margin:0 0 8px;font-size:12px}.renko-signal-row{display:flex;align-items:center;text-align:left;gap:10px;width:100%;padding:8px 10px;margin:4px 0;background:#0d1622;border:1px solid #1f3044;border-radius:8px;color:var(--text);cursor:pointer}.renko-signal-row:hover{border-color:#607da6}.renko-signal-row strong{font-size:11px;min-width:78px}.renko-signal-row span{flex:1;font-size:10px;color:var(--muted)}.renko-signal-row b{font-size:10px;color:#79b8ff}.renko-signal-row.SELL b{color:#ff8e8e}.renko-no-signals{font-size:10px;color:var(--muted);padding:7px 2px}
@media(max-width:700px){.renko-card{padding:12px;margin-top:20px}.renko-card-head{display:grid}.renko-controls{width:100%}.renko-controls select{flex:1;min-width:0}.renko-chart-wrap{height:300px;min-height:240px}.renko-meta{gap:9px}.renko-signal-row{gap:7px;padding:8px 7px}.renko-signal-row strong{min-width:68px}.renko-signal-row span{line-height:1.35}}
.renko-signal-row strong{min-width:142px}.renko-signal-row span small{display:block;margin-top:3px;color:#72839a;font-size:9px}
.renko-signal-row.provisional{border-color:#315a80}.renko-signal-row.provisional>b{color:#8dc8ff}.renko-signal-row.confirmed>b{color:#91d8b0}.renko-signal-row.invalidated{opacity:.65}
.device-access-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.device-access-row span{display:grid;gap:4px}.device-access-row small{color:var(--muted);font-size:11px}
