:root{--bg: #000000;--bg2: #101010;--bg3: #1c1c1e;--line: #3a3a3c;--line2: #545458;--ink: #ffffff;--ink2: #d1d1d6;--mute: #9a9aa0;--accent: #ffd60a;--accent-ink: #000000;--accent-text: #ffd60a;--good: #30d158;--warn: #ff9f0a;--bad: #ff453a;--info: #64d2ff;--violet: #bf5af2;--good-text: #30d158;--warn-text: #ff9f0a;--pc-red: #ff453a;--pc-orange: #ff9f0a;--pc-gold: #ffd60a;--pc-green: #30d158;--pc-teal: #40c8e0;--pc-blue: #0a84ff;--pc-violet: #bf5af2;--pc-pink: #ff375f;--pc-gray: #8e8e93;--radius: 12px;--tap: 48px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root[data-theme=light]{--bg: #ffffff;--bg2: #f2f2f7;--bg3: #e5e5ea;--line: #c7c7cc;--line2: #aeaeb2;--ink: #000000;--ink2: #1c1c1e;--mute: #58585e;--accent: #ffd54a;--accent-ink: #000000;--accent-text: #7a5a00;--good: #1f8a3c;--warn: #b25f00;--bad: #c62828;--info: #0a5fa8;--violet: #6d2fa8;--good-text: #166a2e;--warn-text: #8a4a00;--pc-red: #d70015;--pc-orange: #c93400;--pc-gold: #a05a00;--pc-green: #248a3d;--pc-teal: #00838a;--pc-blue: #0040dd;--pc-violet: #8944ab;--pc-pink: #d30f45;--pc-gray: #6c6c70}@media(prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){--bg: #ffffff;--bg2: #f2f2f7;--bg3: #e5e5ea;--line: #c7c7cc;--line2: #aeaeb2;--ink: #000000;--ink2: #1c1c1e;--mute: #58585e;--accent: #ffd54a;--accent-ink: #000000;--accent-text: #7a5a00;--good: #1f8a3c;--warn: #b25f00;--bad: #c62828;--info: #0a5fa8;--violet: #6d2fa8;--good-text: #166a2e;--warn-text: #8a4a00;--pc-red: #d70015;--pc-orange: #c93400;--pc-gold: #a05a00;--pc-green: #248a3d;--pc-teal: #00838a;--pc-blue: #0040dd;--pc-violet: #8944ab;--pc-pink: #d30f45;--pc-gray: #6c6c70}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.4;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{font-size:max(16px,1em)}button{background:none;border:none;cursor:pointer}a{color:var(--info)}:focus-visible{outline:3px solid var(--accent-text, var(--accent));outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.num{font-variant-numeric:tabular-nums}.mute{color:var(--mute)}.hidden{display:none!important}.shell{display:flex;flex-direction:column;min-height:100vh}.top{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:2px solid var(--line);padding-top:env(safe-area-inset-top)}.brand{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 4px;gap:10px}.brand h1{font-size:22px;font-weight:900;letter-spacing:-.02em}.brand h1 span{color:var(--accent-text)}.brand h1{white-space:nowrap}.brand .date{font-size:13px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px 8px;text-align:right}.tabs{display:flex;overflow:hidden}.tab{flex:1 1 0;min-width:0;height:46px;padding:0 4px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border-bottom:3px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:420px){.tab{font-size:11px;letter-spacing:.04em;padding:0 2px}}@media(max-width:340px){.tab{font-size:11px;letter-spacing:0}}.tab.on{color:var(--ink);border-bottom-color:var(--accent-text)}.view{flex:1;padding:14px 16px calc(40px + env(safe-area-inset-bottom));max-width:640px;width:100%;margin:0 auto}.more{display:flex;flex-direction:column;gap:10px}.more-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;padding:14px 16px;text-align:left;background:var(--bg2);border:2px solid var(--line);border-radius:var(--radius);color:var(--ink)}.more-row:active{background:var(--bg3)}.more-row .t{font-size:18px;font-weight:900}.more-row .s{font-size:13px;color:var(--mute);margin-top:2px}.more-row .chev{font-size:26px;font-weight:800;color:var(--mute);line-height:1;flex-shrink:0}.runbar{display:flex;gap:8px;overflow-x:auto;padding:8px 16px 10px;scrollbar-width:none}.runbar::-webkit-scrollbar{display:none}.chip{flex-shrink:0;height:36px;padding:0 14px;border-radius:18px;border:2px solid var(--line2);font-size:13px;font-weight:800;color:var(--ink2);background:var(--bg2);display:inline-flex;align-items:center;gap:6px}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text)}.chip.paused{opacity:.6}.inputs{display:flex;gap:14px;flex-wrap:wrap;padding:0 16px 10px}.tm{min-height:44px;border-left:3px solid var(--accent-text);padding:0 8px;display:flex;flex-direction:column;justify-content:center}.tm .l{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--mute);text-transform:uppercase}.tm .v{font-size:18px;font-weight:900;display:flex;align-items:center;gap:5px}.tm .s{font-size:11px;font-weight:700;color:var(--mute)}button.tm.edit{text-align:left;background:color-mix(in srgb,var(--accent) 12%,transparent);border:2px solid var(--line);border-left:3px solid var(--accent-text);border-radius:0 10px 10px 0;color:inherit;font:inherit;cursor:pointer;margin:-2px 0}button.tm.edit:active{background:var(--bg3)}button.tm.edit .pen{font-size:14px;color:var(--accent-text)}button.tm.edit .s{color:var(--accent-text)}.card{background:var(--bg2);border:2px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card.hero{border-color:var(--accent-text)}.card.warn{border-color:var(--warn)}button.sub.jump{display:block;text-align:left;text-decoration:underline;color:var(--ink2);padding:2px 0}.card h2{font-size:24px;font-weight:900;letter-spacing:-.02em;line-height:1.1}.card h3{font-size:17px;font-weight:800}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}.eyebrow b{color:var(--accent-text)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:6px;border:2px solid var(--line2);color:var(--ink2)}.tag.accent{border-color:var(--accent-text);color:var(--accent-text)}.tag.good{border-color:var(--good-text);color:var(--good-text)}.tag.warn{border-color:var(--warn-text);color:var(--warn-text)}.tag.bad{border-color:var(--bad);color:var(--bad)}.tag.info{border-color:var(--info);color:var(--info)}.tag.violet{border-color:var(--violet);color:var(--violet)}.sub{font-size:14px;color:var(--mute);margin-top:4px}.rest{text-align:center;padding:36px 16px}.rest h2{color:var(--mute)}.rest .big{font-size:48px;margin-bottom:8px}.empty{text-align:center;padding:40px 16px;color:var(--mute)}.empty h2{color:var(--ink);margin-bottom:8px}.empty .list,.empty .field,.empty .eyebrow{text-align:left}.empty .list{margin:16px 0}.chart-summary{font-size:15px;font-weight:800;color:var(--ink);margin:4px 0 8px}.btn.back{margin-bottom:10px}.ex{background:var(--bg2);border:2px solid var(--line);border-left-width:6px;border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.ex.primary{border-left-color:var(--accent-text)}.ex.done{border-color:var(--good);border-left-color:var(--good)}.ex.skipped{opacity:.55}.ex.group-a{border-left-color:var(--info)}.ex.group-b{border-left-color:var(--violet)}.exh{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 12px 8px 14px}.exname{font-size:19px;font-weight:900;letter-spacing:-.01em;line-height:1.15}.exrx{font-size:15px;font-weight:700;margin-top:3px;color:var(--ink2)}.exrx b{color:var(--accent-text);font-weight:900}.exnote{font-size:14px;color:var(--mute);padding:0 14px 10px;line-height:1.4}.exnote b{color:var(--ink2)}.warm{font-size:13px;color:var(--mute);padding:0 14px 10px}.warm b{color:var(--ink2)}.exmenu{display:flex;gap:6px;flex-shrink:0}.ibtn{width:40px;height:40px;border-radius:10px;border:2px solid var(--line2);font-size:18px;font-weight:800;color:var(--ink2);display:inline-flex;align-items:center;justify-content:center}.ibtn:active{background:var(--bg3)}.sets{padding:0 10px 10px;display:flex;flex-direction:column;gap:6px}.set{display:grid;grid-template-columns:30px 44px 1fr 1fr 52px 44px;gap:6px;align-items:center}.set.timed{grid-template-columns:30px 44px 1fr 52px 44px}.set .n{font-size:13px;font-weight:800;color:var(--mute);text-align:center}.set .type{height:var(--tap);border-radius:10px;border:2px solid var(--line);font-size:11px;font-weight:900;letter-spacing:.04em;color:var(--mute)}.set .type.work{color:var(--ink2)}.set .type.warm{color:var(--info);border-color:var(--info)}.set .type.drop{color:var(--violet);border-color:var(--violet)}.set .type.fail{color:var(--bad);border-color:var(--bad)}.set input{height:var(--tap);width:100%;min-width:0;border-radius:10px;border:2px solid var(--line);background:var(--bg3);text-align:center;font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;-webkit-appearance:none}.set input::placeholder{color:var(--mute);font-weight:700}.set input.rpe{font-size:16px}.set input:focus{border-color:var(--accent-text)}.set .ok{height:var(--tap);border-radius:10px;border:2px solid var(--line2);font-size:20px;font-weight:900;color:var(--mute)}.set.done input{border-color:var(--good)}.set.done .ok{background:var(--good);border-color:var(--good);color:#000}.set .type.skip{color:var(--warn-text);border-color:var(--warn-text);border-style:dashed}.set.skipped .n,.set.skipped input,.set.skipped .ok{opacity:.4}.set.skipped input{text-decoration:line-through}.setlbl{display:grid;grid-template-columns:30px 44px 1fr 1fr 52px 44px;gap:6px;padding:0 10px 4px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:center}.setlbl.timed{grid-template-columns:30px 44px 1fr 52px 44px}.exfoot{display:flex;gap:8px;padding:0 10px 12px;flex-wrap:wrap}.sbtn{height:38px;padding:0 12px;border-radius:10px;border:2px solid var(--line);font-size:13px;font-weight:800;color:var(--ink2)}.sbtn.accent{border-color:var(--accent-text);color:var(--accent-text)}.check{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:2px solid var(--line);cursor:pointer}.check .box{width:28px;height:28px;border-radius:8px;border:2px solid var(--line2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900}.check.on .box{background:var(--good);border-color:var(--good);color:#000}.check .lbl{font-size:17px;font-weight:700}.check.on .lbl{color:var(--mute);text-decoration:line-through}button.check{width:100%;text-align:left;color:inherit;font:inherit}.textarea{width:100%;min-height:64px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:10px;font-size:16px;resize:vertical}.textarea:focus{border-color:var(--accent-text)}.btn{display:flex;align-items:center;justify-content:center;width:100%;height:54px;border-radius:12px;border:2px solid var(--line2);font-size:16px;font-weight:900;letter-spacing:.04em;color:var(--ink);margin-top:8px;gap:8px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text)}.btn.good{background:var(--good);color:#000;border-color:var(--good)}.btn.warn{background:transparent;color:var(--warn-text);border-color:var(--warn-text)}.btn.ghost{background:transparent}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn:disabled{opacity:.4}.row{display:flex;gap:8px}.row .btn{margin-top:8px}.weeknav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.weeknav button{height:44px;padding:0 16px;border-radius:10px;border:2px solid var(--line2);font-weight:900;font-size:15px}.weeknav .lbl{font-weight:900;font-size:16px;text-align:center}.weeknav .lbl small{display:block;font-size:11px;color:var(--mute);letter-spacing:.1em;text-transform:uppercase}.weeknav .linkbtn{height:auto;border:none;padding:2px 8px;font-size:13px;font-weight:800}.weeknav .small{padding:0 10px;font-size:13px}.weeknav .lbl>button.wkpick{display:block;width:100%;height:auto;min-height:44px;border:none;padding:2px 8px;font-weight:900;font-size:16px;color:inherit}.pills{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.pills::-webkit-scrollbar{display:none}.pill{flex-shrink:0;height:42px;padding:0 14px;border-radius:10px;border:2px solid var(--line);font-size:13px;font-weight:800;color:var(--mute)}.pill.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pill.done{border-color:var(--good-text);color:var(--good-text)}.pill.on.done{background:var(--good);color:#000}.pill.partial{border-color:var(--warn-text);color:var(--warn-text)}.pill.on.partial{background:var(--warn);color:#000}.pill.rest{opacity:.6}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}.field input,.field select{width:100%;height:50px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:0 12px;font-size:17px;font-weight:700;-webkit-appearance:none}.field input:focus,.field select:focus{border-color:var(--accent-text)}.field .hint{font-size:13px;color:var(--mute);margin-top:6px}.seg{display:flex;gap:6px}.seg button{flex:1;height:46px;border-radius:10px;border:2px solid var(--line2);font-weight:800;font-size:14px;color:var(--mute)}.seg button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text)}.list{display:flex;flex-direction:column;gap:8px}.item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--bg2);border:2px solid var(--line);border-radius:var(--radius)}.item .t{font-weight:800;font-size:16px}.item .s{font-size:13px;color:var(--mute);margin-top:2px}.item.on{border-color:var(--accent-text)}button.item{width:100%;text-align:left;color:inherit;font:inherit;min-height:var(--tap)}button.item:active{background:var(--bg3)}.item>button.body{text-align:left;color:inherit;font:inherit;min-height:44px;padding:0}.item .body{min-width:0;flex:1}.item .chev{font-size:22px;font-weight:800;color:var(--mute);line-height:1;flex-shrink:0}.stat{display:flex;justify-content:space-between;padding:10px 0;border-top:2px solid var(--line);font-size:15px}.stat:first-child{border-top:none}.stat b{font-variant-numeric:tabular-nums;color:var(--accent-text)}canvas.chart{width:100%;border-radius:var(--radius);background:var(--bg2);border:2px solid var(--line)}h2.sec{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin:26px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--line)}.banner{display:flex;flex-direction:column;gap:8px}.kv{font-size:14px;color:var(--mute)}pre.code{background:var(--bg3);border:2px solid var(--line);border-radius:10px;padding:10px;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:40vh;overflow:auto}dialog.overlay{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;color:inherit;background:#000000bf;z-index:100}dialog.overlay[open]{display:flex;align-items:flex-end;justify-content:center}dialog.overlay::backdrop{background:transparent}.sheet:focus,.modal:focus{outline:none}.sheet{background:var(--bg);border-top:3px solid var(--accent-text);width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}.sheet .hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:2px solid var(--line)}.sheet .hd h3{font-size:20px;font-weight:900}.sheet .bd{overflow-y:auto;padding:14px 16px;-webkit-overflow-scrolling:touch}dialog.overlay.center[open]{align-items:center;padding:20px}.modal{background:var(--bg);border:2px solid var(--line2);border-top:3px solid var(--accent-text);border-radius:16px;width:100%;max-width:420px;padding:18px 16px}.modal h3{font-size:20px;font-weight:900;margin-bottom:6px}.modal p{color:var(--mute);font-size:15px;margin-bottom:8px}.search{width:100%;height:50px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:0 12px;font-size:17px;margin-bottom:10px}.search:focus{border-color:var(--accent-text)}.libitem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:2px solid var(--line)}.libitem .t{font-weight:800;font-size:16px}.libitem .s{font-size:12px;color:var(--mute);margin-top:3px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.libitem .why{font-size:12px;color:var(--accent-text);font-weight:800}button.libitem{width:100%;text-align:left;color:inherit;font:inherit;min-height:var(--tap)}button.libitem:active{background:var(--bg3)}.toast{position:fixed;left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 32px);margin-inline:auto;background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:22px;font-size:15px;font-weight:800;line-height:1.3;text-align:center;white-space:normal;opacity:0;transition:opacity .2s;pointer-events:none;z-index:200}.toast.show{opacity:1}.progress{height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin-top:8px}.progress div{height:100%;background:var(--accent)}@media(min-width:700px){.brand h1{font-size:26px}}.btn.accent{border-color:var(--accent-text);color:var(--accent-text)}.wgrid{display:grid;gap:4px;min-width:100%;font-size:12px;font-weight:800}.wg-h{color:var(--mute);text-align:center;letter-spacing:.06em;text-transform:uppercase;font-size:11px;padding:4px 0}.wg-c{text-align:center;padding:8px 2px;background:var(--bg3);border-radius:6px;border-top:3px solid var(--line2);font-variant-numeric:tabular-nums}.wg-c.dl{opacity:.6;border-top-color:var(--warn)}.trow{display:grid;grid-template-columns:30px 1fr 1fr 1fr 1fr 44px;gap:6px;align-items:center;margin-bottom:6px}.trow.th{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:center}.trow input{height:44px;min-width:0;width:100%;border-radius:8px;border:2px solid var(--line);background:var(--bg3);text-align:center;font-size:16px;font-weight:700}.trow .num{font-size:13px;font-weight:800;color:var(--mute);text-align:center}.trow.dl input{border-color:var(--warn)}.trow .type{height:44px;border-radius:8px;border:2px solid var(--line);font-weight:900;color:var(--mute)}.trow .type.fail{color:var(--warn-text);border-color:var(--warn-text)}.linkbtn{color:var(--info);font-size:13px;font-weight:800;padding:2px 0;white-space:nowrap}.sw{display:inline-block;width:14px;height:14px;border-radius:4px;flex-shrink:0}.sw.prog{background:repeating-linear-gradient(135deg,var(--line2) 0 3px,transparent 3px 6px);border:2px solid var(--line2)}.sw.big{width:36px;height:36px;border-radius:10px;border:3px solid transparent}.sw.big.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--bg) inset}.jcolors{display:flex;flex-wrap:wrap;gap:8px}.jlegend-wrap{position:sticky;z-index:30;background:var(--bg);margin:-14px -16px 12px;padding:10px 16px 8px;border-bottom:2px solid var(--line)}.jchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.jchips::-webkit-scrollbar{display:none}.jchips.wrap{flex-wrap:wrap;overflow:visible}.jchip{flex-shrink:0;height:36px;padding:0 12px;border-radius:18px;border:2px solid var(--line2);background:var(--bg2);font-size:13px;font-weight:800;color:var(--ink2);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.jchip.on{border-color:var(--accent-text);color:var(--ink);box-shadow:0 0 0 1px var(--accent-text) inset}.jchip.add{color:var(--accent-text);border-style:dashed}.jchip.act{color:var(--accent-text);border-color:var(--accent-text)}.jchip.act.on{background:var(--accent);color:var(--accent-ink)}.jpaint{display:flex;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;border-radius:10px;border:2px solid var(--accent-text);background:var(--bg2)}.jpaint .jpt{flex:1;min-width:0}.jpaint .sub{margin-top:0;font-size:13px}.jtoday .jth{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.jtoday .jth .eyebrow{margin:0}.jtags{display:flex;gap:6px;flex-wrap:wrap}.jtag{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;border:2px solid}.jmiss{font-size:13px;font-weight:800;color:var(--accent-text);margin-bottom:10px}.jmiss.done{color:var(--good-text)}.jgrid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.jf.miss>label{color:var(--accent-text)}.jf.miss>label:after{content:" ●"}.jkcal{margin-top:8px}.jsleep{display:grid;grid-template-columns:96px 1fr;gap:8px;align-items:center}.jscale{display:flex;gap:6px;align-items:center;min-width:0}.jscale button{width:40px;height:40px;border-radius:10px;border:2px solid var(--line2);font-weight:900;font-size:15px;color:var(--mute);flex-shrink:0}.jscale button.on{background:var(--accent);border-color:var(--accent-text);color:var(--accent-ink)}.jscl{font-size:13px;font-weight:700;color:var(--mute);margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:400px){.jscale{gap:4px}.jscale button{width:34px;height:38px}.jsleep{grid-template-columns:78px 1fr}}.jcalseg button.on.deficit{background:var(--info);border-color:var(--info);color:var(--bg)}.jcalseg button.on.surplus{background:var(--warn);border-color:var(--warn);color:var(--bg)}.jtog{height:40px;padding:0 14px;border-radius:10px;border:2px solid var(--line2);font-size:14px;font-weight:800;color:var(--mute)}.jtog.on{border-color:var(--good-text);color:var(--good-text)}.jtog.on:before{content:"✓ "}.jprog{font-size:14px;font-weight:700;color:var(--ink2);margin-bottom:8px}.jhrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.jhrow .hint{margin:0}.jhnum{display:flex;align-items:center;gap:8px}.jhnum input{width:110px}.jhu{font-size:14px;font-weight:800;color:var(--mute)}.jhweek{border-top:1px solid var(--line);padding:10px 4px 2px;display:flex;flex-direction:column;gap:8px}.jhw{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;gap:10px;align-items:center;font-size:14px}.jhl{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jhd{display:flex;gap:5px}.jhd i{width:12px;height:12px;border-radius:50%;border:2px solid var(--line2)}.jhd i.some{border-color:var(--mute)}.jhd i.met{background:var(--accent);border-color:var(--accent-text)}.jhd i.fut{opacity:.45}.jhc{text-align:right;font-variant-numeric:tabular-nums;color:var(--mute)}.jhw.met .jhc{color:var(--accent-text)}.jhset{display:flex;flex-direction:column;gap:8px;align-items:stretch}.jhset .jchip.add{align-self:flex-start}.jhs{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.jhs .btn{margin:0;width:auto;padding:0 14px}.switch .lbl small{display:block;font-size:12px;font-weight:700;color:var(--mute)}.jcal{padding:12px 10px}.jcal .seg{margin-bottom:10px}.jbody{user-select:none;-webkit-user-select:none}.jcal.painting .jbody{touch-action:none}.jwk{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;font-weight:800;color:var(--mute);text-align:center;margin-bottom:4px;letter-spacing:.08em}.jrow{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line)}.jd{min-height:60px;padding:4px 0 3px;display:flex;flex-direction:column;cursor:pointer;position:relative;min-width:0}.jd.out{opacity:.4}.jn{font-size:13px;font-weight:800;color:var(--ink2);padding:0 4px;display:flex;justify-content:space-between;align-items:center}.jd.now .jn{color:var(--accent-text)}.jd.now:before{content:"";position:absolute;inset:1px;border:2px solid var(--accent-text);border-radius:8px;pointer-events:none}.jflag{font-size:13px;line-height:1;color:var(--accent-text)}.jm{display:flex;gap:3px;align-items:center;justify-content:center;min-height:12px;margin:4px 0 auto;flex-wrap:wrap}.jm i,.jkey i{display:inline-block;flex-shrink:0}.wk{width:9px;height:9px;border-radius:50%}.wk.done{background:var(--good)}.wk.plan{border:2px solid var(--mute)}.wk.miss{border:2px solid var(--bad);opacity:.8}.wt{width:7px;height:7px;background:var(--ink);transform:rotate(45deg)}.cal{width:9px;height:8px}.cal.deficit{background:var(--info);clip-path:polygon(0 0,100% 0,50% 100%)}.cal.surplus{background:var(--warn);clip-path:polygon(50% 0,100% 100%,0 100%)}.cal.maintain{background:var(--mute);height:3px}.jbars{display:flex;flex-direction:column;gap:2px;margin-top:4px}.jbars i{display:block;height:5px}.jbars i.prog{height:3px;background:repeating-linear-gradient(90deg,var(--line2) 0 4px,transparent 4px 6px)}.jd.pv,.jw.pv{background:color-mix(in srgb,var(--paint, var(--accent)) 30%,transparent)}.jd.pe,.jw.pe{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bad) 30%,transparent) 0 4px,transparent 4px 8px)}.jkey{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:11px;font-weight:700;color:var(--mute)}.jkey span{display:inline-flex;align-items:center;gap:5px}.jkey .pgk{width:14px;height:3px;background:repeating-linear-gradient(90deg,var(--line2) 0 4px,transparent 4px 6px)}.jw{display:grid;grid-template-columns:42px 6px 1fr;gap:8px;padding:9px 4px;border-top:1px solid var(--line);cursor:pointer;border-radius:8px;text-align:left}.jw.now{box-shadow:0 0 0 2px var(--accent-text) inset}.jwd{display:flex;flex-direction:column;align-items:center;line-height:1.1}.jwd b{font-size:11px;letter-spacing:.1em;color:var(--mute)}.jwd span{font-size:19px;font-weight:900}.jws{display:flex;flex-direction:column;gap:2px}.jws i{flex:1;border-radius:3px}.jwc{min-width:0;font-size:14px;display:flex;flex-direction:column;gap:2px}.jwp{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}.jwt{font-weight:700}.jwt.done{color:var(--good-text)}.jwt.plan{color:var(--ink2)}.jwt.miss{color:var(--bad)}.jwm{color:var(--mute);font-variant-numeric:tabular-nums}.jbody.year{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px}@media(min-width:560px){.jbody.year{grid-template-columns:repeat(4,1fr)}}.jyt{font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin-bottom:4px;padding:2px 0}.jyg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.jyd{aspect-ratio:1;border-radius:2px;background:var(--bg3);position:relative;cursor:pointer;padding:0}.jyd.blank{background:none;cursor:default}.jyd.pg{box-shadow:inset 0 -2px 0 var(--line2)}.jyd.w:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--good)}.jyd.pl.w:after{background:var(--bg)}.jyd.now{outline:2px solid var(--accent-text);z-index:1}.jyd.pv{outline:2px solid var(--paint, var(--accent));background:color-mix(in srgb,var(--paint, var(--accent)) 60%,var(--bg3))!important}.jyd.pe{outline:2px solid var(--bad);opacity:.5}.jrange{display:grid;grid-template-columns:1fr auto 1fr 40px;gap:6px;align-items:center;margin-bottom:8px}.jrange input{height:44px;min-width:0;width:100%;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:0 6px;font-size:16px;font-weight:700}.jhint{margin-bottom:4px}.jkinds{display:grid;grid-template-columns:1fr 1fr;gap:8px}.jkind{display:flex;align-items:center;gap:10px;height:54px;padding:0 14px;border-radius:12px;border:2px solid var(--line2);background:var(--bg2);font-size:16px}.jnote{border-top:2px solid var(--line);padding:10px 0;font-size:15px;white-space:pre-wrap}.jnh{display:flex;gap:8px;align-items:center;margin-bottom:3px;font-size:13px}.jnh .linkbtn{margin-left:auto;color:var(--bad)}.wv{display:none;font-size:11px;font-weight:800;color:var(--ink2);text-align:center;font-variant-numeric:tabular-nums;margin-bottom:2px}@media(min-width:700px){.view[data-v=journal]{max-width:900px}.jlegend .jchips{flex-wrap:wrap;overflow:visible}.jd{min-height:84px}.jd .jn{font-size:15px;padding:0 6px}.wv{display:block}.wk{width:10px;height:10px}.jm{gap:4px}}@media(min-width:1000px){.view[data-v=journal]{max-width:1320px}.jcols{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:20px;align-items:start}.jcols .jcal{margin-bottom:0}.jcols .jcol>div>h2.sec:first-child{margin-top:18px}}@media(max-width:360px){.brand h1{font-size:18px}.brand .date{font-size:11px}.jsleep{grid-template-columns:62px 1fr}.jsleep input{padding:0 8px}.jscale{gap:3px}.jscale button{width:30px}.jsleep .jscl{display:none}}.star{color:var(--accent-text)}.star.big{font-size:34px;line-height:1}.jchip.ev{border-color:var(--accent-text);color:var(--ink)}.jchip .jcd{font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}.jchip.add.evadd{color:var(--accent-text);border-color:var(--accent-text)}.jtag.evt{border-color:var(--accent-text);color:var(--accent-text)}.jevents{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid var(--line)}.jev{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:2px solid var(--accent-text);background:var(--bg)}.jevh{display:flex;align-items:center;gap:8px;margin-bottom:4px}.jevh b{flex:1;min-width:0;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evline{margin-bottom:12px}.evline .jevh{margin-bottom:0}.jevd{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);white-space:nowrap}.jevg{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px;padding:3px 0}.jevg .gl{font-weight:800;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jevg .gv{color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap}.jevg .tag{padding:2px 6px;font-size:11px}.jevhero{display:flex;align-items:center;gap:12px;margin-bottom:14px}.jgoal{border:2px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;background:var(--bg2);display:flex;flex-direction:column;gap:8px}.jgoal .search{margin-bottom:0}.jgoal .seg{margin:0}.jgr{display:flex;gap:8px;align-items:center}.jgl{display:flex;flex-direction:column;gap:8px;align-items:stretch}.jgl .jtog{align-self:flex-start}.jgt{flex:1;min-width:0;height:44px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:0 10px;font-size:16px;font-weight:800;-webkit-appearance:none}.jgf{display:flex;align-items:center;gap:8px}.jgf input{flex:1;min-width:0;height:46px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);padding:0 12px;font-size:17px;font-weight:700}.jgu{font-weight:800;color:var(--mute);min-width:24px}.jgs{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:13px;color:var(--mute)}.jwe{font-size:13px;font-weight:900;color:var(--accent-text)}.jyd.ev:before{content:"★";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;color:var(--ink);text-shadow:0 0 2px var(--bg),0 0 2px var(--bg);z-index:1}.jyd.ev{box-shadow:0 0 0 2px var(--accent-text) inset}.jyd.ev.w:after{display:none}.restpill{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;margin:0 10px 10px;border-radius:18px;border:2px solid var(--accent-text);color:var(--ink);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;background:var(--bg3)}.restpill.over{border-color:var(--good-text);color:var(--good-text)}.set.skipped .n{text-decoration:line-through}.set.skipped .type{opacity:.6}.weekpick{display:flex;flex-direction:column;gap:6px}.weekpick button{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:8px 12px;text-align:left;border-radius:10px;border:2px solid var(--line);background:var(--bg2);color:var(--ink)}.weekpick button.on{border-color:var(--accent-text);background:color-mix(in srgb,var(--accent) 12%,var(--bg2))}.weekpick button.done{border-color:var(--good)}.weekpick button.deload .wkn{color:var(--warn-text)}.weekpick .wkn{font-size:15px;font-weight:900;letter-spacing:.04em;font-variant-numeric:tabular-nums}.weekpick .wkl{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekpick .wks{font-size:12px;font-weight:700;color:var(--mute);white-space:nowrap}.optin{border-color:var(--info)}.optin .eyebrow{color:var(--info)}.optin .sub{color:var(--ink2);margin:6px 0 4px}.optin .row .btn{flex:1}.optin.on{border-color:var(--good)}.optin.on .eyebrow{color:var(--good-text)}.privacy p{font-size:14px;color:var(--ink2);line-height:1.45;margin-top:6px}.privacy p:first-of-type{margin-top:0}.privacy details{border-top:2px solid var(--line);margin-top:10px;padding-top:8px}.privacy summary{font-weight:800;font-size:15px;cursor:pointer;min-height:36px;display:flex;align-items:center;list-style:none}.privacy summary::-webkit-details-marker{display:none}.privacy summary:after{content:"›";margin-left:auto;font-size:22px;font-weight:800;color:var(--mute);transform:rotate(90deg)}.privacy details[open] summary:after{transform:rotate(-90deg)}.privacy a,.privacy .linkbtn{color:var(--info);font-weight:800}.syncrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--bg3)}.syncline{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink2);min-width:0}.syncline .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--mute)}.syncline .dot.idle{background:var(--good)}.syncline .dot.syncing{background:var(--info)}.syncline .dot.offline,.syncline .dot.paused{background:var(--warn)}.syncline .dot.error{background:var(--bad)}.syncrow .sbtn{flex-shrink:0}.flexcard .eyebrow{margin-bottom:8px}.flexlist{display:flex;flex-direction:column;gap:6px}.flexrow{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:6px 10px;border-radius:10px;border:2px solid var(--line);background:var(--bg3);text-align:left;color:inherit;font:inherit}.flexrow:active{background:var(--bg2)}.flexrow .box{width:28px;height:28px;border-radius:8px;border:2px solid var(--line2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px}.flexrow .body{flex:1;min-width:0;display:flex;flex-direction:column}.flexrow .t{font-size:16px;font-weight:800;line-height:1.2}.flexrow .s{font-size:13px;color:var(--mute);margin-top:2px}.flexrow .tag{flex-shrink:0}.flexrow.done .box{background:var(--good);border-color:var(--good);color:#000}.flexrow.done .t{color:var(--mute)}.flexrow.partial .box{background:var(--warn);border-color:var(--warn);color:#000}.flexrow.next{border-color:var(--accent-text)}.flexrow.next .t{color:var(--accent-text)}.flexrow.on{background:color-mix(in srgb,var(--accent) 12%,var(--bg3))}.flexrow.bonus .box{border-style:dashed;color:var(--violet);border-color:var(--violet)}.flexhint{margin-top:10px}.flexreset{width:100%;margin-top:12px}.flexdone{font-size:17px;font-weight:800;color:var(--good-text);margin-top:14px}.tag.bonus{border-color:var(--violet);color:var(--violet)}.peek{opacity:.7}.pills.routines .pill{max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill.next:not(.on){border-color:var(--accent-text);color:var(--accent-text)}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:var(--tap);padding:8px 12px;border-radius:10px;border:2px solid var(--line);background:var(--bg2);text-align:left;color:inherit;font:inherit}.switch .lbl{font-size:16px;font-weight:800}.switch .knob{position:relative;width:52px;height:30px;border-radius:15px;background:var(--line2);flex-shrink:0;transition:background .15s}.switch .knob:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--ink);transition:transform .15s}.switch[aria-checked=true]{border-color:var(--good-text)}.switch[aria-checked=true] .knob{background:var(--good)}.switch[aria-checked=true] .knob:after{transform:translate(22px);background:#000}.switch:disabled{opacity:.4}.chip.small{height:28px;padding:0 10px;font-size:11px}.chip.week{border-color:var(--accent-text);color:var(--accent-text);font-variant-numeric:tabular-nums;white-space:nowrap}.tab .badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:900;letter-spacing:0;vertical-align:1px}.coach-card h3{margin-bottom:2px}.coach-card .coach-msg{margin:10px 0 4px;padding:10px 12px;border-left:3px solid var(--accent-text);background:var(--bg3);border-radius:8px;font-size:15px;color:var(--ink);white-space:pre-wrap}.coach-card .field{margin:12px 0 0}.coach-card details{margin-top:8px}.coach-card details summary{cursor:pointer}.habit-edit .field{margin-bottom:10px}.client-card .prog{color:var(--ink2)}.client-card .prog b{font-weight:800}.client-card details.history{border-top:2px solid var(--line);margin-top:10px;padding-top:6px}.client-card details.history summary{font-weight:800;font-size:14px;cursor:pointer;min-height:36px;display:flex;align-items:center;list-style:none;color:var(--ink2)}.client-card details.history summary::-webkit-details-marker{display:none}.client-card details.history summary:after{content:"›";margin-left:auto;font-size:20px;font-weight:800;color:var(--mute);transform:rotate(90deg)}.client-card details.history[open] summary:after{transform:rotate(-90deg)}.client-card details.history ul{list-style:none;padding:0;margin:0 0 4px;display:flex;flex-direction:column;gap:6px}.client-card details.history li{display:flex;flex-direction:column;font-size:14px}.client-card details.history li .t{font-weight:700;color:var(--ink);overflow-wrap:anywhere}.client-card details.history li .s{color:var(--mute);font-size:13px}.invite-card .row .btn,.client-card .row .btn{flex:1}
