:root{--bg:#0e0c0b;--panel:#1a1614;--panel-2:#24201c;--line:#322c27;--ink:#f2ece4;--ink-dim:#b9b0a5;--ink-faint:#8a8077;--ember:#ff7a1a;--ember-soft:#ff7a1a29;--pr:#35d0b6;--ok:#5ee9a4;--warn:#e8c547;--bad:#e2544c;--lift:#ff7a1a;--run:#4ea8de;--climb:#7bc86c;--rest:#8a8077;--other:#c77dff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:560px;padding:calc(env(safe-area-inset-top) + 14px) 14px 0;min-height:100vh;margin:0 auto}.app main{padding-bottom:calc(env(safe-area-inset-bottom) + 140px)}@media (display-mode:standalone){.app{padding-top:max(env(safe-area-inset-top), 56px)}}.app .num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.app .sub{color:var(--ink-faint);font-size:13px;line-height:1.4}.app .sub.ok{color:var(--ok)}.app .head{margin-bottom:14px}.app .head-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.app .head-title{letter-spacing:-.02em;margin:2px 0 4px;font-size:clamp(24px,7vw,32px);font-weight:600;line-height:1.1}.app .section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:8px;margin:22px 0 8px;font-size:12px;display:flex}.app .section-label:before{content:"";background:var(--ember);opacity:.9;border-radius:2px;width:3px;height:12px}.app .toggle{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.app .toggle button,.app button.small{font:inherit;cursor:pointer;border:1px solid var(--line);min-height:36px;color:var(--ink-dim);white-space:nowrap;background:0 0;border-radius:999px;padding:7px 12px;font-size:13px;line-height:1.3}.app .toggle button.on,.app button.small.on{background:var(--panel-2);color:var(--ink);border-color:var(--ink-faint)}.app button:disabled{opacity:.4;cursor:default}.app button.go{font:inherit;cursor:pointer;background:var(--ember);color:#1a0d03;white-space:nowrap;border:0;border-radius:999px;min-height:40px;padding:9px 18px;font-size:14px;font-weight:600;line-height:1.3}.app button.go.big{border-radius:14px;width:100%;min-height:52px;padding:14px 18px;font-size:17px}.app input,.app textarea,.app select{font:inherit;background:var(--panel-2);min-width:0;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:15px}.app input::placeholder{color:var(--ink-faint)}.app input:focus,.app textarea:focus{border-color:var(--ember);outline:none}.app input[type=search]{appearance:none}.app .sheet-search{width:100%;padding:12px 14px;font-size:16px}.app .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.app .actions .go.big{flex:100%}.app .quick{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.app .linkish{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.app .tag{text-transform:uppercase;letter-spacing:.09em;background:var(--panel-2);color:var(--ink-faint);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px}.app .tag.ok{color:var(--ok)}.app .tag.kind-lift{color:var(--lift)}.app .tag.kind-run{color:var(--run)}.app .tag.kind-climb{color:var(--climb)}.app .tag-plan{color:var(--ember)}.app .tag-custom{color:var(--pr)}.app .tag-main{color:var(--ember)}.app .tag-prehab{color:var(--ok)}.app .tag-core{color:var(--run)}.app .tag-carry{color:var(--warn)}.app .pr{letter-spacing:.08em;color:var(--pr);border:1px solid var(--pr);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:700}.app .card{text-align:left;width:100%;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:14px 15px;display:block}.app button.card{cursor:pointer}.app .card-open{border-color:var(--ember);background:linear-gradient(180deg, var(--ember-soft), var(--panel))}.app .card-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.app .card-title{letter-spacing:-.01em;margin-top:2px;font-size:21px;font-weight:600;line-height:1.15}.app .day-card{border-left:3px solid var(--rest)}.app .day-card.kind-lift{border-left-color:var(--lift)}.app .day-card.kind-run{border-left-color:var(--run)}.app .day-card.kind-climb{border-left-color:var(--climb)}.app .detail{margin-top:10px;font-size:14px}.app .row{text-align:left;width:100%;font:inherit;color:inherit;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:11px 2px;display:flex}.app .row.static{cursor:default}.app .row-main{flex:1;min-width:0}.app .row-main>div:first-child{font-size:15px}.app .row.banned .row-main>div:first-child{color:var(--ink-faint);text-decoration:line-through}.app .row.kind-lift .row-main>div:first-child:before,.app .row.kind-run .row-main>div:first-child:before,.app .row.kind-climb .row-main>div:first-child:before{content:"";vertical-align:2px;background:var(--rest);border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.app .row.kind-lift .row-main>div:first-child:before{background:var(--lift)}.app .row.kind-run .row-main>div:first-child:before{background:var(--run)}.app .row.kind-climb .row-main>div:first-child:before{background:var(--climb)}.app .datebar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.app .datebar-mid{text-align:center;flex:1}.app .date-rel{letter-spacing:-.01em;font-size:22px;font-weight:600}.app .weekline{color:var(--ink-dim);justify-content:space-between;align-items:center;margin:6px 0 12px;font-size:13px;display:flex}.app .rx-list{border-top:1px solid var(--line);margin-top:12px}.app .rx{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:2px 12px;padding:8px 0;display:flex}.app .rx-side{opacity:.85}.app .rx-name{font-size:15px}.app .rx-line{color:var(--ink-dim);align-items:center;gap:8px;font-size:13px;display:flex}.app .rx-prog{flex-basis:100%}.app .rx-load{font:inherit;color:var(--ember);background:var(--ember-soft);cursor:pointer;border:0;border-radius:6px;padding:2px 7px;font-size:13px}.app .rx-edit input{width:80px;padding:4px 8px;font-size:14px}.app .session-head{background:var(--bg);z-index:5;align-items:center;gap:10px;margin-bottom:12px;padding:6px 0 8px;display:flex;position:sticky;top:0}.app .session-title{flex:1;min-width:0}.app .session-title .card-title{white-space:nowrap;text-overflow:ellipsis;font-size:18px;overflow:hidden}.app .warmup{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:10px 14px;font-size:14px}.app .warmup summary{cursor:pointer;color:var(--ink-dim)}.app .warmup ul,.app .warmup ol{color:var(--ink-dim);margin:8px 0 0;padding-left:20px}.app .warmup li{padding:2px 0}.app .ex{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:12px 12px 8px}.app .ex.skipped{opacity:.55}.app .ex-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.app .ex-name{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:17px;font-weight:600;line-height:1.2}.app .ex-target{margin-top:3px}.app .ex-menu{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.app .why{color:var(--ink-dim);border-left:3px solid var(--ember);margin:8px 0 10px;padding-left:10px;font-size:14px}.app .sets{margin-top:10px}.app .set-row{border-bottom:1px solid var(--line);grid-template-columns:2.4em 1fr 1.25fr 1.25fr 52px;align-items:center;gap:8px;min-height:52px;padding:5px 0;display:grid}.app .set-row:last-of-type{border-bottom:0}.app .set-head{text-transform:uppercase;letter-spacing:.1em;min-height:0;padding:0 0 4px;font-size:11px}.app .set-head span:nth-child(3),.app .set-head span:nth-child(4){text-align:center}.app .set-no{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:13px}.app .set-row.left .set-no{color:var(--ember)}.app .set-row input{text-align:center;font-variant-numeric:tabular-nums;width:100%;height:44px;padding:8px 4px;font-size:18px}.app .set-row .num{text-align:center;font-size:18px}.app .set-row.done{cursor:pointer}.app .set-row.done .num{color:var(--ink)}.app .set-row.done.warm .num,.app .set-row.done.warm .set-no{color:var(--ink-faint)}.app .check{border:1px solid var(--line);background:var(--panel-2);width:52px;height:44px;color:var(--ink-dim);cursor:pointer;border-radius:12px;font-size:20px}.app .check:active,.app .check:hover:not(:disabled){background:var(--ember);color:#1a0d03;border-color:var(--ember)}.app .tick{text-align:center;color:var(--ok);font-size:18px}.app .addrow{margin-top:8px}.app .recap-card{background:var(--panel);border:1px solid var(--pr);border-radius:14px;margin-bottom:12px;padding:14px 15px}.app .recap-line{margin:4px 0 10px;font-size:18px;font-weight:600}.app .recap-line.big{margin:8px 0 18px;font-size:24px}.app .recap-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;display:grid}.app .stat{letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:1.1}.app .recap-save{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:10px;margin-top:20px;padding-top:16px;display:flex}.app .notes{flex-direction:column;gap:8px;margin-top:18px;display:flex}.app .notes textarea{resize:vertical;width:100%}.app .fields{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:10px;display:grid}.app .fields label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:4px;font-size:12px;display:flex}.app .fields input{font-size:17px}.app .picker{margin-top:8px}.app .picker-row{text-align:left;width:100%;font:inherit;color:inherit;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:11px 2px;display:flex}.app .picker-row.banned{cursor:default;opacity:.6}.app .picker-name{font-size:15px}.app .spark{margin:14px 0 4px}.app .spark svg{width:100%;height:70px;margin-top:4px;display:block}.app .cycle{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px;display:grid}.app .cycle-cell{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:10px;padding:8px;font-size:13px}.app .cycle-cell.on{border-color:var(--ember);background:var(--ember-soft)}.app .goal{border-bottom:1px solid var(--line);padding:8px 0}.app .goal-row{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:14px;display:flex}.app .goal-bar{background:var(--panel-2);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.app .goal-bar div{background:var(--ember);border-radius:2px;height:100%}.app .sheet{z-index:20;background:var(--bg);padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 20px);max-width:560px;margin:0 auto;position:fixed;inset:0;overflow-y:auto}@media (display-mode:standalone){.app .sheet{padding-top:max(env(safe-area-inset-top), 56px)}}.app .sheet-head{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:12px;display:grid}.app .sheet-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.app .sheet-body{padding-top:6px}.app .recap{text-align:left}.app .bottom{z-index:10;max-width:560px;padding:0 10px calc(env(safe-area-inset-bottom) + 8px);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.app .nav{background:var(--panel);border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid;box-shadow:0 10px 30px #00000080}.app .nav button{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:12px;min-height:44px;padding:10px 4px;font-size:14px}.app .nav button.on{background:var(--panel-2);color:var(--ink)}.app .rest{background:var(--panel);border:1px solid var(--ember);border-radius:16px;margin-bottom:8px;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000080}.app .rest.over{border-color:var(--ok)}.app .rest-fill{background:var(--ember-soft);transition:width .25s linear;position:absolute;inset:0}.app .rest.over .rest-fill{background:#5ee9a42e;width:100%!important}.app .rest-row{grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 12px;display:grid;position:relative}.app .rest-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.app .rest-sub{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;max-width:40vw;font-size:12px;overflow:hidden}.app .rest-clock{letter-spacing:-.02em;font-size:28px;font-weight:600}.app .rest.over .rest-clock{color:var(--ok)}.app .rest-btns{gap:4px;display:flex}.app .rest-btns button{font:inherit;border:1px solid var(--line);background:var(--panel-2);min-width:44px;min-height:40px;color:var(--ink);cursor:pointer;border-radius:10px;padding:0 8px;font-size:13px}.app .version{color:var(--ink-faint);opacity:.5;pointer-events:none;font-size:9px;position:fixed;bottom:2px;right:8px}.app .state-empty,.app .state-failed{padding:22px 4px}.app .state-title{font-size:16px;font-weight:600}.app .sk{background:var(--panel-2);border-radius:6px;animation:1.4s ease-in-out infinite pulse}.app .sk-label{width:90px;height:11px;margin-bottom:8px}.app .sk-hero{width:60%;height:30px;margin-bottom:8px}.app .sk-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.app .sk-line{height:13px}.app .sk-amt{width:52px;height:13px;margin-left:auto}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.9}}
