:root{color-scheme:dark;--bg:#0d1117;--panel:#151c24;--line:#26313e;--ink:#f0f4fa;--muted:#a6b5ca;--green:#52edb2;--red:#ff858b;--amber:#ffc44c;--blue:#3094ff;--reserve:#64758b}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 0,#10202b55,transparent 55%),var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.35;font-variant-numeric:tabular-nums}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-height:44px;padding:9px 12px}button:disabled{opacity:.55;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}a{color:var(--blue)}[hidden]{display:none!important}.app{position:fixed;inset:0;width:100%;max-width:480px;margin-inline:auto;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;overflow-wrap:anywhere}header{padding-top:calc(14px + env(safe-area-inset-top));display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 8px;margin-bottom:14px}.brand{display:flex;align-items:center;gap:12px}h1{font-size:1.95rem;line-height:1.1;margin:0;letter-spacing:-.05em}.badge{font-size:.75rem;font-weight:700;color:var(--muted);background:#222d3b;padding:5px 10px;border-radius:8px}.header-actions{display:flex;gap:3px}.icon-button{position:relative;display:inline-grid;place-items:center;min-width:44px;padding:10px;background:transparent;border-color:transparent}.icon-button svg{width:23px;height:23px}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.freshness{grid-column:1/-1;display:flex;align-items:center;gap:7px;font-size:.77rem;color:var(--muted);min-height:22px}.dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--green)}.dot.bad{background:var(--red)}.dot.warn{background:var(--amber)}.dot.neutral{background:var(--reserve)}#event-dot{position:absolute;right:7px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--amber)}.panel{background:linear-gradient(115deg,#17212b66,transparent),var(--panel);border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px;min-width:0}.hero-label{font-size:.94rem;display:flex;align-items:center;gap:5px}.info{padding:0 5px;min-width:32px;min-height:32px;font-size:1rem;border:0;color:var(--muted);background:transparent}.hero-value{font-size:clamp(2rem,1.45rem + 3vw,2.65rem);font-weight:750;letter-spacing:-.04em;line-height:1.15;margin:5px 0 12px}.hero-value .unit{font-size:.65em;letter-spacing:-.01em}.positive{color:var(--green)}.negative{color:var(--red)}.unknown,.muted{color:var(--muted)}.profit-secondary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:10px;gap:8px}.profit-secondary>div+div{padding-left:12px;border-left:1px solid var(--line)}.profit-secondary span{display:block;font-size:.76rem}.profit-secondary strong{display:block;font-size:1.08rem;margin-top:3px;letter-spacing:-.02em}.capital-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.91rem}.capital-heading>span{display:flex;align-items:center}.capital-heading strong{font-size:1.05rem}.capital-sub{text-align:right;font-size:.7rem;margin:-1px 0 8px}.allocation{height:10px;display:flex;background:var(--line);border-radius:4px;overflow:hidden}.allocation>span{display:block;height:100%}.available{background:var(--blue)}.used{background:var(--amber)}.reserve{background:var(--reserve)}.allocation-values{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:9px;gap:7px}.allocation-values>div+div{border-left:1px solid var(--line);padding-left:9px}.allocation-values span{font-size:.67rem;color:var(--muted);display:flex;gap:5px;align-items:center}.key{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-radius:2px}.allocation-values strong{display:block;font-size:.86rem;margin-top:3px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:15px 0 8px}.section-heading .muted{font-size:.68rem}h2{font-size:1.13rem;margin:0;letter-spacing:-.025em}h3{font-size:1rem;margin:0 0 10px}.rows{display:grid;gap:7px}.bot-row{width:100%;display:grid;grid-template-columns:9px 1fr auto 10px;gap:10px;align-items:center;padding:10px 12px;min-height:55px;text-align:left;border-radius:11px}.bot-row .name{font-size:.91rem;font-weight:650}.bot-row small{display:block;font-size:.67rem;color:var(--muted);font-weight:400;margin-top:3px}.bot-row strong{font-size:.98rem}.chevron{color:var(--muted);font-size:1.3rem;font-weight:400}.position-row{width:100%;text-align:left;padding:12px}.position-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.98rem}.position-meta{font-size:.73rem;color:var(--muted);margin-top:4px}.short{color:var(--amber)}.long{color:var(--blue)}.position-bottom{display:flex;justify-content:space-between;gap:10px;font-size:.7rem;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.position-bottom strong{color:var(--ink)}.empty{padding:15px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:.85rem}.text-button{border:0;background:transparent;color:var(--blue);font-size:.8rem;min-height:36px;padding:5px 0}.bottom-nav{z-index:3;background:var(--bg);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:2px 12px max(2px,min(env(safe-area-inset-bottom),22px))}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:1px;min-height:44px;font-size:.71rem;padding:2px 5px;justify-content:flex-end}.bottom-nav svg{width:23px;height:23px}.bottom-nav [aria-current]{color:var(--green)}.notice{font-size:.8rem;line-height:1.45;border:1px solid #8b6c28;background:#2a2416;color:#ffd981;padding:11px;border-radius:10px;margin:0 0 10px}.notice.error{border-color:#884850;background:#2c1c23;color:#ffb5bb}.primary{background:#52edb2;color:#08251c;border-color:#52edb2;font-weight:700;min-height:46px}form>label{display:block;margin:13px 0;font-size:.86rem}input:not([type=checkbox]),select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--bg);color:var(--ink);margin-top:5px}input[type=checkbox]{width:22px;height:22px;accent-color:var(--green);flex:0 0 22px}.switch{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:8px 0;border-bottom:1px solid var(--line)}.switch small{display:block;color:var(--muted);font-size:.73rem;margin-top:4px}.number-field{display:flex;align-items:center;gap:14px;justify-content:space-between}.number-field input{width:110px!important;margin:0!important}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}#push-message,#login-error{font-size:.82rem;color:var(--amber)}.small{font-size:.73rem;line-height:1.5}.filter-label{display:block;font-size:.8rem;margin:12px 0}.bot-detail .detail-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.metrics span{display:block;color:var(--muted);font-size:.7rem}.metrics strong{font-size:.92rem;display:block;margin-top:3px}.bot-detail .small{margin-bottom:0}.event-card h3{font-size:.88rem;margin-bottom:5px}.event-card p{font-size:.78rem;margin:5px 0}.event-card time{font-size:.67rem;color:var(--muted)}dialog{width:calc(100% - 24px);max-width:450px;max-height:85dvh;overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:15px}dialog::backdrop{background:#000a}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-heading .icon-button{font-size:1.8rem}dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:.82rem}dialog dt{color:var(--muted)}dialog dd{margin:0;text-align:right}dialog p{line-height:1.6;font-size:.9rem}.filter-label select{max-width:100%}@media(max-width:350px){.app-scroll{padding-left:10px;padding-right:10px}.panel{padding:11px}.bot-row{gap:7px;padding:9px}.bot-row .name{font-size:.85rem}.allocation-values span{font-size:.61rem}.profit-secondary strong{font-size:.95rem}.position-bottom{font-size:.63rem}}@media(max-height:760px) and (min-width:351px){header{margin-bottom:8px;padding-top:calc(8px + env(safe-area-inset-top))}.panel{padding:11px;margin-bottom:8px}.hero-value{font-size:2.1rem;margin:2px 0 8px}.profit-secondary{padding-top:7px}.profit-secondary strong{font-size:1rem}.section-heading{margin-top:10px}.bot-row{min-height:50px;padding:8px 11px}.rows{gap:5px}}

/* The agreed summary fits a normal iPhone viewport; larger text can reflow and scroll. */
header{padding-top:calc(10px + env(safe-area-inset-top));margin-bottom:8px}
h1{font-size:1.75rem}
.profit-panel,.capital-panel{padding:12px}
.hero-label{font-size:.9rem}
.info{min-height:22px;min-width:24px;font-size:.9rem;padding:0 3px}
.hero-value{font-size:2.2rem;margin:3px 0 9px}
.profit-secondary{padding-top:8px}
.profit-secondary strong{font-size:1rem;margin-top:2px}
.capital-heading{font-size:.86rem}
.capital-heading strong{font-size:1rem}
.capital-sub{margin:0 0 6px;font-size:.68rem}
.allocation{height:9px}
.allocation-values{margin-top:8px}
.allocation-values strong{font-size:.83rem}
.section-heading{margin:10px 0 7px}
.bot-row{min-height:52px;padding:8px 10px;gap:8px}
.bot-row .name{font-size:.87rem}
.bot-row strong{font-size:.92rem}
.rows{gap:6px}
.rows>.panel{margin-bottom:0}
.position-row{padding:10px}
.position-heading{font-size:.92rem}
.position-meta{font-size:.7rem;margin-top:3px}
.position-bottom{padding-top:6px;margin-top:6px;font-size:.66rem}
@media(max-height:760px){.hero-value{font-size:1.95rem}.profit-panel,.capital-panel{padding:10px}.bot-row{padding-top:7px;padding-bottom:7px;min-height:49px}.section-heading{margin-top:8px}}

.position-row{padding:9px}
@media(max-height:830px), (display-mode:standalone) and (max-height:900px){
 header{padding-top:calc(4px + env(safe-area-inset-top));margin-bottom:6px}
 .profit-panel,.capital-panel{padding:10px;margin-bottom:8px}
 .hero-value{font-size:1.95rem;margin:0 0 6px}
 .profit-secondary{padding-top:6px}.profit-secondary strong{font-size:.95rem}
 .capital-sub{margin-bottom:4px}.allocation{height:8px}.allocation-values{margin-top:6px}
 .allocation-values strong{margin-top:2px;font-size:.8rem}
 .bot-row{padding-top:6px;padding-bottom:6px;min-height:47px}
 .section-heading{margin:8px 0 5px}.rows{gap:5px}
 .position-row{padding:8px}.position-bottom{padding-top:5px;margin-top:5px}
}

/* Distinct account identities and signed results on the Bots screen. */
.bot-detail{border-inline-start-width:3px}
.bot-detail.bot-binance{border-inline-start-color:#f6c445;background:linear-gradient(125deg,#f6c4450d,transparent 48%),var(--panel)}
.bot-detail.bot-bybit{border-inline-start-color:#41d8ef;background:linear-gradient(125deg,#41d8ef0d,transparent 48%),var(--panel)}
.bot-detail .detail-top{flex-wrap:wrap;gap:8px}
.bot-identity{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0}
.exchange-tag,.strategy-tag{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid;border-radius:8px;font-size:.85rem;font-weight:750;line-height:1.2}
.exchange-binance{color:#ffda70;background:#f6c44519;border-color:#f6c44560}
.exchange-bybit{color:#6ee7f5;background:#41d8ef19;border-color:#41d8ef60}
.exchange-other{color:var(--ink);border-color:var(--line)}
.strategy-tag{font-size:.75rem;padding:5px 7px}
.strategy-x7{color:#8ac4ff;background:#3094ff21;border-color:#3094ff66}
.strategy-x8{color:#d2afff;background:#a36bff21;border-color:#a36bff66}
.strategy-other{color:var(--muted);border-color:var(--line)}
.bot-status{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:650}
.metrics{gap:7px}
.metric{padding:9px;border:1px solid #ffffff09;background:#0d111755;border-radius:9px;min-width:0}
.metric-positive{background:#52edb20c;border-color:#52edb22e}
.metric-negative{background:#ff858b0e;border-color:#ff858b38}
.metrics .metric-positive strong{color:var(--green)}
.metrics .metric-negative strong{color:var(--red)}
.metrics .metric-available strong{color:#71baff}
.metrics .metric-used strong{color:#ffcf69}
.metrics .metric-reserve strong{color:#c5a7fa}
@media(max-width:350px){.metric{padding:7px}.metrics strong{font-size:.85rem}}

/* Reuse account colors on the compact summary and position cards. */
.bot-row .bot-identity{gap:5px}
.bot-row .exchange-tag{padding:1px 5px;font-size:.78rem;border-radius:5px}
.bot-row .strategy-tag{padding:1px 4px;font-size:.68rem;border-radius:5px}
.position-identity{display:inline-flex;align-items:center;gap:4px;vertical-align:baseline}
.position-identity .exchange-tag{padding:0 4px;font-size:.64rem;border-radius:4px}
.position-identity .strategy-tag{padding:0 3px;font-size:.62rem;border-radius:4px}

/* Keep tab navigation outside the only scrolling area, including on iPhone. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
.app-scroll{min-height:0;overflow-y:auto;overflow-anchor:none;overscroll-behavior-y:contain;padding:0 16px 2px;-webkit-overflow-scrolling:touch}
@media(max-width:350px){.app-scroll{padding-left:10px;padding-right:10px}}
