:root{
  --bg:#14101a; --bg2:#1c1626; --card:#241c30; --line:#3a2f4a;
  --text:#f4eefb; --muted:#a99bbd; --pink:#ff4d9d; --pink2:#ff86bf; --violet:#8b5cf6;
  --ok:#4ade80; --warn:#fbbf24; --bad:#f87171;
  --r:16px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,-apple-system,Roboto,"Segoe UI",sans-serif;overscroll-behavior-y:contain}
.hidden{display:none!important}
.muted{color:var(--muted)} .small{font-size:12px} .err{color:var(--bad);min-height:1.2em;margin:.5rem 0 0}
h2{margin:0 0 .6rem;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}
h3{margin:.2rem 0 .4rem;font-size:18px}
.logo{font-weight:800;letter-spacing:.28em;font-size:28px;background:linear-gradient(90deg,var(--pink),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.logo.sm{font-size:18px}

.login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:340px;text-align:center}
.login-card input{margin:1.2rem 0 .8rem;text-align:center}

.app{display:flex;flex-direction:column;min-height:100dvh}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:linear-gradient(var(--bg) 70%,transparent)}
.chips{display:flex;gap:6px}
.chip{font-size:11px;padding:3px 8px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
.chip.on{color:var(--ok);border-color:#2b6b45}
main{flex:1;padding:4px 14px calc(84px + env(safe-area-inset-bottom));max-width:640px;width:100%;margin:0 auto}

.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg2);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}
.tabs button{flex:1;background:none;border:0;color:var(--muted);padding:8px 0 7px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px}
.tabs svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabs button.on{color:var(--pink2)}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:0 0 12px}
.row{display:flex;gap:10px;align-items:center}
.row.sb{justify-content:space-between} .row.wrap{flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}

input,select,textarea{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--pink);border-color:transparent}
label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}
input[type=range]{padding:0;accent-color:var(--pink)}

.btn{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:12px;padding:11px 14px;font:inherit;font-weight:600}
.btn.primary{background:linear-gradient(90deg,var(--pink),var(--violet));border:0;color:#fff;width:100%}
.btn.small{padding:7px 10px;font-size:13px}
.btn:disabled{opacity:.5}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.btnrow .btn{flex:1;min-width:110px}

.seg{display:flex;gap:6px}
.seg button{flex:1;padding:10px 0;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--muted);font:inherit}
.seg button.on{background:var(--pink);border-color:var(--pink);color:#fff;font-weight:700}

.sports{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sport{padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--bg2);text-align:left;color:var(--text);font:inherit}
.sport b{display:block}.sport span{font-size:12px;color:var(--muted)}
.sport.on{border-color:var(--pink);background:#33203f}

.ring{--v:0;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--c,var(--pink)) calc(var(--v)*1%),var(--line) 0)}
.ring>div{width:108px;height:108px;border-radius:50%;background:var(--card);display:grid;place-items:center;text-align:center}
.ring b{font-size:34px;line-height:1}.ring small{color:var(--muted);font-size:11px}
.bars .b{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
.bars .b span:first-child{width:92px;color:var(--muted)}
.bars .track{flex:1;height:8px;border-radius:9px;background:var(--line);overflow:hidden}
.bars .track i{display:block;height:100%;border-radius:9px}
.bars .b span:last-child{width:96px;text-align:right;font-size:12px;color:var(--muted)}

.steps{list-style:none;margin:8px 0 0;padding:0}
.steps li{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.steps .dur{width:58px;color:var(--muted);flex:none}
.steps .tgt{margin-left:auto;font-weight:700;white-space:nowrap}
.k-interval .tgt,.k-interval b{color:var(--pink2)}
.reasons{margin:.4rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:14px}
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:99px;background:#33203f;color:var(--pink2);margin-right:6px}
.stat{background:var(--bg2);border-radius:12px;padding:10px;text-align:center}
.stat b{display:block;font-size:20px}.stat span{font-size:11px;color:var(--muted)}
svg.chart{width:100%;height:auto;display:block}

.msgs{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.msg{max-width:88%;padding:10px 12px;border-radius:14px;white-space:pre-wrap}
.msg.u{align-self:flex-end;background:var(--violet)} .msg.a{align-self:flex-start;background:var(--card);border:1px solid var(--line)}
.chat-in{position:sticky;bottom:calc(66px + env(safe-area-inset-bottom));display:flex;gap:8px;background:var(--bg);padding:8px 0}
.chat-in input{flex:1}
.suggest{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.suggest button{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:99px;padding:7px 12px;font-size:13px}

.item{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.item:first-child{border-top:0}
.item .t{font-weight:600}.item .m{font-size:12px;color:var(--muted)}
.done{color:var(--ok)}
dialog{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:18px;width:min(92vw,420px)}
dialog::backdrop{background:#000a}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#fff;color:#111;padding:10px 16px;border-radius:99px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:50;max-width:90vw}
.toast.show{opacity:1;transform:translate(-50%,0)}
