:root{--bg:#f5f3ef;--surface:#fff;--text:#221a14;--muted:#675c53;--accent:#b8430b;--accent-text:#fff;--border:#ddd6cc;--danger:#b3261e;--danger-strong:#d93025;--tap:44px;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#15120f;--surface:#211c18;--text:#f0ebe6;--muted:#b0a59b;--accent:#ff9a5c;--accent-text:#231006;--border:#3a322b;--danger:#ff8a80;--danger-strong:#d93025}}:root{color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.4}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}:is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--text);outline-offset:2px}button:not(:disabled){cursor:pointer}button:not(:disabled):active{filter:brightness(.9)}@media (hover:hover){button:not(:disabled):hover{filter:brightness(1.06)}}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{font-size:16px}.app{top:var(--app-top,0);height:var(--app-height,100dvh);background:var(--bg);flex-direction:column;display:flex;position:fixed;left:0;right:0}.topbar{padding:calc(env(safe-area-inset-top) + 16px) 16px 8px;flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar h1{margin:0;font-size:1.75rem}.content{overscroll-behavior-y:contain;flex:1;min-height:0;padding:8px 16px 16px;overflow-y:auto}.empty{color:var(--muted)}.tab-bar{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex}.tab{min-height:56px;color:var(--muted);font:inherit;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;font-size:.8rem;line-height:18px;display:flex;position:relative}.tab[aria-current=page]{color:var(--accent);font-weight:600}.tab-icon{font-size:1.3rem;line-height:28px}.keyboard-open .tab-bar{display:none}.topbar{position:relative}.menu-button{background:0 0;border:none;min-width:44px;min-height:44px;margin-left:auto;font-size:1.4rem}.menu{z-index:10;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;min-width:180px;padding:4px 0;display:flex;position:absolute;top:100%;right:16px}.menu button{text-align:left;background:0 0;border:none;min-height:44px;padding:0 16px}.login{background:var(--bg);flex-direction:column;justify-content:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.login>*{width:100%;max-width:420px;margin-left:auto;margin-right:auto}.login h1{color:var(--accent);text-align:center;margin-top:0;margin-bottom:32px;font-size:2rem}.login-form{flex-direction:column;gap:16px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.login-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:12px;font-size:16px}.login-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.form-error{color:var(--danger);margin:0}button.primary{background:var(--accent);min-height:48px;color:var(--accent-text);border:none;border-radius:10px;font-weight:600}button.secondary{min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:0 16px}button.link{min-height:var(--tap);color:var(--muted);background:0 0;border:none;text-decoration:underline}a.link{min-height:var(--tap);color:var(--muted);align-items:center;display:inline-flex}.hint{color:var(--muted);margin:0;font-size:.9rem}.card{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;margin-bottom:16px;padding:16px;display:flex}.card h2,.card h3{margin:0}.card h2{font-size:1.15rem}.confirm{border-color:var(--danger-strong);color:var(--danger)}.version-notes{margin:0;padding-left:1.2em}.version-display{grid-template-columns:auto 1fr;gap:4px 16px;margin:0;display:grid}.version-display dt{color:var(--muted)}.version-display dd{margin:0}.version-earlier h3 small{color:var(--muted);font-weight:400}.version-earlier+.version-earlier{margin-top:8px}button.show-password{align-self:flex-start;margin-top:-8px;padding:0}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.field input{min-height:var(--tap);border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:0 12px;font-size:16px}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field input[aria-invalid=true]{border-color:var(--danger)}.actions{flex-direction:column;gap:8px;display:flex}button.danger{min-height:var(--tap);border-radius:var(--radius);background:var(--danger);color:var(--bg);border:none;padding:0 16px;font-weight:600}.los{flex-direction:column;gap:16px;display:flex}.sports{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;display:grid}button.sport{border:2px solid var(--border);background:var(--surface);min-height:80px;color:var(--text);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:1rem;display:flex}button.sport span{font-size:1.8rem;line-height:1}button.sport[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text);font-weight:600}button.primary.go{border-radius:16px;min-height:72px;font-size:1.4rem}.running{text-align:center;align-items:stretch}.running h2{margin:8px 0 0;font-size:1.6rem}.running .hint{margin-top:-12px}.stopwatch{font-variant-numeric:tabular-nums;margin:8px 0;font-size:clamp(3.5rem,22vw,6rem);font-weight:300;line-height:1}.finished{border-left:4px solid var(--accent)}.finished p{margin:0}.units{margin:0;padding:0;list-style:none}.card.unit{flex-direction:row;align-items:center;gap:12px}.unit-text{flex:1;min-width:0}.unit-text h3{font-size:1.05rem}.unit-numbers{font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;margin:0;display:flex}.unit-numbers span{color:var(--muted);font-size:.9rem}.weight-form{flex-direction:column;gap:8px;display:flex}
