:root{--bg:#0e1116;--bg-soft:#161b22;--bg-card:#1a2029;--bg-input:#0b0e13;--border:#2a3340;--text:#eef2f7;--text-dim:#9aa7b8;--text-faint:#5f6b7d;--accent:#f5a524;--accent-dim:#8a5f14;--green:#3ddc84;--yellow:#ffce4d;--red:#ff6b6b;--blue:#5aa9ff;--radius:14px;--tab-h:68px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}#root{min-height:100dvh}button{touch-action:manipulation;-webkit-user-select:none;user-select:none;font-family:inherit}input,select{font-family:inherit;font-size:16px}.app{flex-direction:column;min-height:100dvh;display:flex}.main{padding:16px 14px calc(var(--tab-h) + 90px);flex:1;width:100%;max-width:640px;margin:0 auto}.tabbar{height:var(--tab-h);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);z-index:40;padding-bottom:env(safe-area-inset-bottom);background:#0e1116f5;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--text-faint);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:100%;font-size:11px;display:flex}.tabbar button.active{color:var(--accent)}.tabbar .tico{font-size:22px;line-height:1}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:14px}.card h3{margin:0 0 4px;font-size:17px}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:13px}.btn{border:1px solid var(--border);background:var(--bg-soft);min-height:52px;color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:12px 20px;font-size:16px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a1206}.btn-danger{border-color:var(--red);color:var(--red);background:0 0}.btn-ghost{background:0 0}.btn-sm{min-height:40px;padding:8px 14px;font-size:14px}.btn-block{width:100%}.btn:disabled{opacity:.45}.stepper{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;align-items:center;gap:2px;display:flex;overflow:hidden}.stepper button{background:var(--bg-soft);width:46px;height:48px;color:var(--accent);cursor:pointer;border:none;font-size:22px;font-weight:700}.stepper button:active{background:var(--border)}.stepper .val{text-align:center;min-width:64px;font-size:17px;font-weight:700}.stepper .unit{color:var(--text-faint);font-size:11px;font-weight:400;display:block}.setrow{align-items:center;gap:8px;margin-bottom:8px;display:flex}.setrow.done{opacity:.55}.setnum{background:var(--bg-soft);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.setrow.done .setnum{background:var(--green);border-color:var(--green);color:#06210f}.logbtn{border:1px solid var(--green);width:52px;height:52px;color:var(--green);cursor:pointer;background:0 0;border-radius:12px;flex-shrink:0;font-size:22px}.setrow.done .logbtn{background:var(--green);color:#06210f}.badge{letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.green{color:var(--green);background:#3ddc8426}.badge.yellow{color:var(--yellow);background:#ffce4d26}.badge.red{color:var(--red);background:#ff6b6b26}.badge.blue{color:var(--blue);background:#5aa9ff26}.badge.gray{background:var(--bg-soft);color:var(--text-dim)}.chiprow{gap:8px;padding:4px 0 10px;display:flex;overflow-x:auto}.chip{border:1px solid var(--accent-dim);color:var(--accent);cursor:pointer;background:#f5a52414;border-radius:999px;flex-shrink:0;min-height:44px;padding:10px 14px;font-size:14px;font-weight:600}.chatlist{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.msg{white-space:pre-wrap;border-radius:14px;max-width:88%;padding:12px 14px;font-size:15px;line-height:1.45}.msg.user{background:var(--accent);color:#1a1206;border-bottom-right-radius:4px;align-self:flex-end}.msg.coach{background:var(--bg-card);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.msg .cites{color:var(--text-faint);margin-top:8px;font-size:12px}.proposal{border:1px dashed var(--accent-dim);background:#f5a52412;border-radius:10px;margin-top:10px;padding:12px}.proposal .reasoning{color:var(--text-dim);margin:6px 0 10px;font-size:13px}.proposal .actions,.chatbar{gap:8px;display:flex}.chatbar input{background:var(--bg-input);border:1px solid var(--border);min-height:52px;color:var(--text);border-radius:12px;flex:1;padding:12px 14px}.offline-banner{border:1px solid var(--yellow);color:var(--yellow);background:#ffce4d1a;border-radius:10px;margin-bottom:12px;padding:10px 14px;font-size:14px}.restbar{left:12px;right:12px;bottom:calc(var(--tab-h) + 12px);background:var(--bg-card);border:1px solid var(--accent-dim);z-index:50;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 30px #00000080}.restbar .time{font-variant-numeric:tabular-nums;color:var(--accent);font-size:30px;font-weight:800}.restbar.done .time{color:var(--green)}.modalwrap{z-index:60;background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg-soft);border-top:1px solid var(--border);padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;width:100%;max-width:640px;max-height:88dvh;overflow-y:auto}.modal h2{margin:0 0 6px}.header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.header h1{margin:0;font-size:22px}.timer{font-variant-numeric:tabular-nums;color:var(--text-dim);font-weight:700}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.mt{margin-top:12px}.mb{margin-bottom:12px}.divider{border:none;border-top:1px solid var(--border);margin:14px 0}.toggle{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:56px;padding:12px 0;display:flex}.toggle:last-child{border-bottom:none}.switch{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:56px;height:32px;position:relative}.switch.on{background:var(--green)}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:left .15s;position:absolute;top:4px;left:4px}.switch.on:after{left:28px}input[type=range]{width:100%;accent-color:var(--accent);height:44px}select.dark{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:10px;width:100%;min-height:52px;padding:12px}.disclaimer{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px;font-size:14px;line-height:1.55}.progressline{align-items:flex-end;gap:6px;height:90px;padding:8px 0;display:flex}.progressline .bar{background:var(--accent);opacity:.85;border-radius:3px 3px 0 0;flex:1;min-height:3px}.warmuprow{align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.warmuprow.done{color:var(--text-faint);text-decoration:line-through}.checkbox{border:1px solid var(--border);background:var(--bg-input);width:30px;height:30px;color:var(--green);cursor:pointer;border-radius:8px;flex-shrink:0;font-size:18px}.checkbox.on{border-color:var(--green);background:#3ddc8426}
