:root{--bg: #0f1115;--surface: #181b22;--surface-2: #21252e;--border: #2b303b;--text: #e8eaf0;--muted: #8a92a3;--accent: #4f8cff;--green: #3ecf7a;--red: #ff5d5d;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}#root{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}main{flex:1;padding:16px 16px calc(76px + env(safe-area-inset-bottom))}h1{font-size:22px;margin:4px 0 16px}h2{font-size:16px;margin:20px 0 8px;color:var(--muted);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px}button{font:inherit;border:none;border-radius:10px;padding:10px 14px;background:var(--surface-2);color:var(--text);cursor:pointer}button.primary{background:var(--accent);color:#fff;font-weight:600}button.success{background:var(--green);color:#06240f;font-weight:600}button.danger{background:transparent;color:var(--red)}button.ghost{background:transparent;color:var(--accent)}button:disabled{opacity:.5}button.block{width:100%;padding:14px;font-size:16px}input,select,textarea{font:inherit;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px;width:100%}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}nav.tabbar{position:fixed;bottom:0;left:0;right:0;margin:0 auto;max-width:560px;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}nav.tabbar button{flex:1;background:none;border-radius:0;padding:10px 0 8px;color:var(--muted);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:3px}nav.tabbar button.active{color:var(--accent)}nav.tabbar .icon{font-size:20px;line-height:1}.set-grid{display:grid;grid-template-columns:32px 1fr 72px 60px 44px;gap:8px;align-items:center;margin-bottom:6px}.set-grid.cardio{grid-template-columns:32px 1fr 136px 44px}.set-grid .head{color:var(--muted);font-size:11px;text-transform:uppercase}.set-grid input{text-align:center;padding:8px 4px}.set-grid .prev{color:var(--muted);font-size:13px;text-align:center;background:none;padding:4px}.set-done input{background:#3ecf7a1f;border-color:#3ecf7a66}.check{width:44px;height:38px;border-radius:8px;font-size:16px}.check.on{background:var(--green);color:#06240f}.row{display:flex;gap:8px;align-items:center}.spread{display:flex;justify-content:space-between;align-items:center}.muted{color:var(--muted);font-size:13px}.title{font-weight:600;font-size:16px}.chat-log{display:flex;flex-direction:column;gap:10px}.bubble{max-width:85%;padding:10px 13px;border-radius:14px;white-space:pre-wrap;font-size:15px;line-height:1.4}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff}.bubble.assistant{align-self:flex-start;background:var(--surface-2)}.bubble.info{align-self:center;background:none;color:var(--green);font-size:13px}.chat-input{position:fixed;bottom:calc(58px + env(safe-area-inset-bottom));left:0;right:0;margin:0 auto;max-width:560px;display:flex;gap:8px;padding:10px 12px;background:var(--bg);border-top:1px solid var(--border)}.pill{display:inline-block;background:var(--surface-2);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted);margin:2px 4px 2px 0}.seg{display:flex;background:var(--surface-2);border-radius:10px;padding:3px;margin-bottom:12px}.seg button{flex:1;padding:8px;background:none;color:var(--muted);font-size:13px}.seg button.active{background:var(--surface);color:var(--text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{text-align:center;color:var(--muted);font-size:10px;text-transform:uppercase;padding:4px 0}.cal-day{background:none;border-radius:8px;padding:6px 0 2px;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:40px}.cal-day.selected{background:var(--surface-2);outline:1px solid var(--accent)}.cal-dots{display:flex;gap:3px;height:6px}.dot{width:5px;height:5px;border-radius:50%}.dot.workout{background:var(--accent)}.dot.measure{background:var(--green)}.error-banner{background:#ff5d5d1f;border:1px solid rgba(255,93,93,.4);color:var(--red);border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:14px}
