:root{color-scheme:dark;--bg:#090c13;--card:#141a25;--line:#2b3444;--gold:#e0b56b;--muted:#9ba5b5}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#293344,#090c13 55%);color:#f4f5f8;font:15px/1.5 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}main{max-width:1050px;margin:auto;padding:26px 18px 110px}.brand{font-weight:950;letter-spacing:.24em;font-size:26px}.brand b{color:var(--gold)}.muted,small{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--gold);font-weight:800}h1{font-size:clamp(27px,5vw,42px);letter-spacing:-.04em;margin:8px 0 18px}h2{margin:0 0 12px;font-size:20px}h3{margin:12px 0 6px}.grid{display:grid;gap:14px}.two{grid-template-columns:1.3fr 1fr}.card{background:linear-gradient(145deg,#182130,#111722);border:1px solid var(--line);border-radius:19px;padding:21px;margin-bottom:14px;box-shadow:0 10px 30px #0002}.hero{background:linear-gradient(130deg,#283043,#151b27 65%);border-color:#776443}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.badge{color:var(--gold);border:1px solid #816944;border-radius:30px;padding:5px 12px;font-size:11px;font-weight:800}.stat{font-size:32px;font-weight:850}.bar{height:8px;border-radius:9px;background:#303747;overflow:hidden;margin:12px 0}.bar>div{height:100%;background:linear-gradient(90deg,#a87a39,#f4d495);border-radius:9px}.btn{border:0;background:var(--gold);color:#10151e;border-radius:10px;padding:11px 15px;font-weight:800}.btn.secondary{background:#293344;color:#fff}.btn:disabled{opacity:.45}.field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:85px;margin:6px 0}.field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}input,select,textarea{width:100%;border:1px solid #374153;border-radius:9px;padding:10px;background:#0b111b;color:white}input[type=checkbox]{width:auto}nav{position:fixed;bottom:0;left:0;right:0;background:#111722ef;display:flex;justify-content:space-around;border-top:1px solid var(--line);padding:9px 5px max(12px,env(safe-area-inset-bottom));backdrop-filter:blur(14px)}nav button{border:0;background:none;color:var(--muted);font-size:11px;padding:7px}nav button.active{color:var(--gold)}.item{padding:12px 0;border-bottom:1px solid #303848}.item:last-child{border:0}.tag{font-size:11px;color:var(--gold);font-weight:800}.cols{display:flex;flex-wrap:wrap;gap:10px}.cols>*{flex:1}.notice{padding:13px;background:#283242;border-radius:11px;margin:12px 0;color:#d8e0ed}.list{max-height:350px;overflow:auto}.mini{font-size:12px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{padding:10px 3px;border:1px solid var(--line);border-radius:9px;text-align:center;font-size:11px}.day.today{border-color:var(--gold);color:var(--gold)}.day.done{background:#263d35}.scroll{overflow:auto}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid var(--line);padding:9px 5px;font-size:12px}@media(max-width:700px){.two{grid-template-columns:1fr}main{padding:20px 14px 95px}.card{padding:17px}.week{gap:3px}.day{font-size:9px}}
.auth-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.auth-links .btn{font-size:12px;padding:9px 11px}#authSubmit{min-width:150px}#passwordForm{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}

/* Touch-first polish: safe-area navigation, feedback, accessible tap targets. */
html{-webkit-tap-highlight-color:transparent;scroll-behavior:auto}
body{overscroll-behavior-y:none}
button{touch-action:manipulation;transition:transform .13s ease,background-color .16s ease,opacity .16s ease}
button:active{transform:scale(.965)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.btn{min-height:44px}
nav{z-index:10;gap:2px;padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 -6px 22px #0003}
nav button{flex:1;min-width:0;min-height:46px;border-radius:9px;font-size:clamp(9px,2.6vw,12px);font-weight:650;white-space:nowrap}
nav button.active{background:#e0b56b17}
#cardioFeedback:not([hidden]){display:block;margin:12px 0}
.screen-enter main{animation:screen-in .18s ease-out both}
@keyframes screen-in{from{opacity:.78;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.screen-enter main{animation:none}button{transition:none}}
@media(max-width:700px){main{padding-bottom:calc(105px + env(safe-area-inset-bottom))}.item.row{gap:8px}.item.row .badge{flex-shrink:0}}
