:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1e222b;--border: #2a2f3a;--border-strong: #3a4150;--text: #e7e9ee;--text-dim: #a6adbb;--text-mute: #6b7280;--accent: #4c8dff;--accent-dim: #21324f;--good: #1d9e75;--warn: #ef9f27;--danger: #e24b4a;--radius: 12px;--tab-h: 56px;--header-h: 52px;--safe-bottom: min(env(safe-area-inset-bottom), 34px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;min-height:100%}body{min-height:100dvh;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;touch-action:manipulation}button{font-family:inherit;cursor:pointer}.app{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.hdr{position:sticky;top:0;z-index:10;height:calc(var(--header-h) + env(safe-area-inset-top));display:flex;align-items:center;gap:8px;padding:env(safe-area-inset-top) 12px 0 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.hdr h1{font-size:17px;font-weight:600;margin:0;letter-spacing:.2px}.hdr .sub{font-size:12px;color:var(--text-mute);margin-left:auto}.content{flex:1;padding:16px 14px calc(var(--tab-h) + var(--safe-bottom) + 16px)}.view-title{font-size:13px;color:var(--text-dim);margin:2px 2px 12px;font-weight:500}.tabs{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tab-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:flex;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);z-index:20}.tabs-inner{max-width:640px;margin:0 auto;width:100%;display:flex}.tab{flex:1;background:none;border:none;color:var(--text-mute);font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 0}.tab .ic{font-size:18px;line-height:1}.tab.on{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.muted{color:var(--text-mute);font-size:12px}.dim{color:var(--text-dim)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;background:var(--accent-dim);color:#9cc2ff}.chip{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim)}.pill{display:inline-block;padding:1px 7px;margin:2px 3px 2px 0;border-radius:6px;font-size:12px;font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.stat .n{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.stat .l{font-size:11px;color:var(--text-mute);margin-top:2px}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.seg button{background:none;border:none;color:var(--text-dim);font-size:12px;padding:5px 10px;border-radius:6px}.seg button.on{background:var(--accent);color:#fff}select,input[type=text],input[type=number],input[type=date],input[type=password],textarea{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:16px;font-family:inherit;color-scheme:dark}input[type=number]{width:72px}textarea{width:100%;resize:vertical;min-height:54px}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:11px 14px;font-size:14px;font-weight:500}.btn:disabled{opacity:.45}.btn-ghost{background:var(--surface-2);color:var(--text-dim);border:1px dashed var(--border-strong);border-radius:8px;padding:10px 12px;font-size:13px;width:100%}.iconbtn{background:none;border:none;color:var(--text-mute);font-size:15px;padding:4px 6px}.fld{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px}.setrow{display:flex;align-items:center;gap:8px;margin:6px 0}.setrow .idx{width:16px;color:var(--text-mute);font-size:12px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tab-h) + var(--safe-bottom) + 16px);background:var(--good);color:#fff;padding:9px 16px;border-radius:999px;font-size:13px;z-index:30;box-shadow:0 4px 16px #0006}.gear{background:none;border:none;color:var(--text-dim);font-size:17px;width:44px;height:44px;padding:0;margin-left:4px;display:flex;align-items:center;justify-content:center}.err{color:var(--danger);font-size:13px;margin:8px 2px}.ex{padding:8px 0;border-top:1px solid var(--border)}.ex:first-of-type{border-top:none}.ex .name{font-size:14px;font-weight:500}.wt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.wt{border-collapse:collapse;width:100%;min-width:340px;table-layout:fixed}table.wt th,table.wt td{border:1px solid var(--border);padding:6px 2px;font-size:12px;text-align:center;vertical-align:top}table.wt th{background:var(--surface-2);color:var(--text-dim);font-weight:500}table.wt td.rest{color:var(--text-mute);background:color-mix(in srgb,var(--surface) 60%,transparent)}table.wt td .cell-split{font-weight:500;font-size:10px;line-height:1.25}table.wt td .cell-split span{display:block}table.wt td .cell-sub{color:var(--text-mute);font-size:10px;margin-top:2px}.rowhead{color:var(--text-dim);font-weight:500;background:var(--surface-2);white-space:nowrap;position:sticky;left:0;z-index:2;width:52px}table.wt thead .rowhead{z-index:3}.today-card{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:linear-gradient(145deg,color-mix(in srgb,var(--accent-dim) 72%,var(--surface)),var(--surface))}.today-card .eyebrow{color:#9cc2ff;font-size:12px;font-weight:600;margin-bottom:8px}.today-card h2{font-size:22px;line-height:1.25;margin:0}.today-card .today-exercise{color:var(--text-dim);font-size:14px;margin-top:5px}.today-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.today-actions .btn{margin-left:auto;padding:9px 14px}.week-progress{height:8px;overflow:hidden;border-radius:999px;background:var(--surface-2);margin:10px 0 14px}.week-progress>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-day{min-width:0;padding:7px 2px;border:1px solid var(--border);border-radius:8px;color:var(--text-mute);font-size:11px;text-align:center}.week-day.planned{color:var(--text-dim);background:var(--surface-2)}.week-day.done{border-color:color-mix(in srgb,var(--good) 65%,var(--border));background:color-mix(in srgb,var(--good) 18%,var(--surface));color:#79d9b8}.week-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.week-day .day-mark{display:block;height:13px;margin-top:3px;font-size:10px}.week-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.week-metric{padding:9px;border-radius:8px;background:var(--surface-2)}.week-metric strong{display:block;font-size:15px;font-variant-numeric:tabular-nums}.week-metric span{display:block;color:var(--text-mute);font-size:10px;margin-top:2px}.trend-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border)}.trend-row:first-of-type{border-top:0}.trend-main{min-width:0;flex:1}.trend-main strong,.trend-main span{display:block}.trend-main strong{font-size:13px}.trend-main span{color:var(--text-mute);font-size:11px;margin-top:2px}.trend-value{text-align:right;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.trend-delta{display:block;color:var(--text-mute);font-size:10px;font-weight:500;margin-top:2px}.trend-delta.up{color:#79d9b8}.trend-delta.down{color:#f19a99}.center{text-align:center;color:var(--text-mute);padding:40px 0}.pr{color:var(--warn);font-weight:500}.scroll-x{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.daytab{flex:none;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:6px 14px;font-size:13px}.daytab.on{background:var(--accent);border-color:var(--accent);color:#fff}
