:root{--bg:#fff;--ink:#111;--soft:#f0f0f0;--line:#9a9a9a;--mid:#555;color:var(--ink);background:var(--bg);font:15px/1.45 system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#121212;--ink:#eee;--soft:#262626;--line:#777;--mid:#aaa}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,p{margin:0 0 10px}h3{font-size:15px;font-weight:600}h2{font-size:18px;font-weight:600}button,input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:3px;max-width:100%;padding:7px 9px}button{cursor:pointer;min-height:36px}button:disabled{opacity:.5;cursor:default}button.on,button[aria-pressed=true]{background:var(--ink);color:var(--bg)}input,select,textarea{width:100%}textarea{min-height:70px}input[type=checkbox]{width:auto}.app{max-width:1100px;margin:0 auto;padding:14px}.between{justify-content:space-between;align-items:center;gap:8px;display:flex}.row{flex-wrap:wrap;align-items:center;display:flex}nav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:10px 0 14px;padding-bottom:10px;display:flex}nav button{flex:1;min-width:90px}.box{border:1px dashed var(--line);margin:10px 0;padding:12px}.field{margin:8px 0;display:block}.field>span{color:var(--mid);margin-bottom:3px;font-size:12px;display:block}.msg{background:var(--soft);border:1px solid var(--line);margin:8px 0;padding:8px 10px}.note{color:var(--mid);font-size:12px}.mono{font-variant-numeric:tabular-nums}.rings{flex-wrap:wrap;justify-content:space-around;gap:12px;margin:12px 0;display:flex}.ring{width:104px;height:104px;position:relative}.ring-text{text-align:center;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.ring-text small{color:var(--mid);max-width:70px;font-size:10px}.squares{flex-wrap:wrap;gap:4px;margin:6px 0;display:flex}.sq{border:1px solid var(--line);background:var(--soft);width:16px;height:16px}.sq.completed{background:var(--ink)}.sq.missed{background:repeating-linear-gradient(45deg, var(--bg), var(--bg) 3px, var(--line) 3px, var(--line) 4px)}.sq.ambiguous{background:var(--line)}.sq.future,.sq.before_start,.sq.unavailable{background:var(--bg);border-style:dotted}.sq.open{background:var(--bg)}.cols{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:14px;display:grid}@media (width<=800px){.cols{grid-template-columns:1fr}}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.wk{text-align:center;color:var(--mid);padding:4px;font-size:12px}.day{text-align:left;overflow-wrap:anywhere;min-height:78px;padding:4px;font-size:12px;overflow:hidden}.day.sel{outline:2px solid var(--ink)}.day.out{opacity:.45}.day small{color:var(--mid);display:block}.entry{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.entry:last-child{border-bottom:0}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:6px 3px}.modal{z-index:1000;background:#00000073;justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:0;overflow:auto}.modal>div{background:var(--bg);border:1px solid var(--ink);width:min(720px,100%);padding:16px}.steps>div{border:1px solid var(--line);margin:6px 0;padding:6px}.login{max-width:380px;margin:60px auto}:root{--z1:#8aa0b8;--z2:#3fae5a;--z3:#e3c12a;--z4:#f08a24;--z5:#e0454b}.stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:10px 0;display:grid}.stat{border:1px solid var(--line);padding:10px}.stat b{font-size:22px;line-height:1.15;display:block}.stat small{color:var(--mid)}.zbar{border:1px solid var(--line);height:44px;margin:22px 0 6px;display:flex;position:relative}.zbar>div{color:#111;justify-content:center;align-items:center;min-width:0;font-size:13px;font-weight:700;display:flex;overflow:hidden}.zbar .ftpmark{border-left:2px dashed var(--ink);width:0;position:absolute;top:-18px;bottom:-4px}.zbar .ftpmark span{white-space:nowrap;background:var(--bg);padding:0 2px;font-size:11px;position:absolute;top:-2px;left:4px}.zscale{color:var(--mid);margin-bottom:12px;font-size:11px;display:flex}.zscale>div{text-align:left;min-width:0;overflow:hidden}.zcard{border:1px solid var(--line);border-left-width:8px;grid-template-columns:54px 1fr auto;align-items:center;gap:4px 12px;margin:6px 0;padding:8px 10px;display:grid}.zcard .zn{font-size:20px;font-weight:700}.zcard .zt{color:var(--mid);grid-column:2/4;font-size:12px}.zcard .zv{text-align:right}.zcard .zv b{font-size:18px}.zcard .zv small{color:var(--mid);display:block}.zrow{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:5px 0;display:flex}.zrow:last-child{border-bottom:0}.zrow b{white-space:nowrap}:root{--k-z2:#3fae5a;--k-interval:#e0454b;--k-test:#8b5cf6;--k-recovery:#8aa0b8;--k-other:#9a9a9a;--k-rest:#6b7280}.day small[class^=wk-]{border-left:4px solid var(--c,var(--k-other));background:color-mix(in srgb, var(--c,var(--k-other)) 22%, transparent);color:var(--ink);border-radius:2px;margin-top:2px;padding:1px 4px}.wk-z2{--c:var(--k-z2)}.wk-interval{--c:var(--k-interval)}.wk-test{--c:var(--k-test)}.wk-recovery{--c:var(--k-recovery)}.wk-other{--c:var(--k-other)}.wk-rest{--c:var(--k-rest)}.legend{color:var(--mid);flex-wrap:wrap;gap:4px 14px;margin:6px 0;font-size:12px;display:flex}.legend .sw{vertical-align:-1px;background:var(--c);border-radius:2px;width:12px;height:12px;margin-right:5px;display:inline-block}.calwrap{max-width:1000px;margin:0 auto}.calwrap .wk{font-size:13px}.calwrap .day b{font-size:15px}.calwrap .legend{justify-content:center;font-size:13px}@media (width<=600px){.calwrap .day{min-height:84px;padding:3px;font-size:11px}}.modal>div{max-height:calc(100vh - 40px);overflow:auto}.wcard{border:1px solid var(--line);border-left:8px solid var(--c,var(--k-other));border-radius:4px;margin:10px 0;padding:12px}.chips{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;display:inline-block}.chip.kind{background:color-mix(in srgb, var(--c,var(--k-other)) 30%, transparent);border-color:var(--c,var(--k-other));font-weight:600}.chip.done{background:#3fae5a4d;border-color:#3fae5a}.chip.skip{background:#e3c12a4d;border-color:#e3c12a}.chip.open{background:var(--soft)}.steps{background:var(--soft);white-space:pre-wrap;border-radius:4px;margin:6px 0;padding:8px 10px;font-size:13px;line-height:1.6}.stats.small{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.stats.small .stat{padding:8px}.stats.small .stat b{font-size:17px}.modal h3.sect{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.modal .wcard details summary{cursor:pointer;margin-top:4px}.modal .box{border-style:solid;border-radius:4px}.modal>div{width:min(780px,100%);font-size:17px}.modal .note{font-size:14px}.modal h2{font-size:22px}.modal .wcard h3{font-size:20px!important}.modal .chip{padding:5px 14px;font-size:15px}.modal .chip.kind{padding:6px 16px;font-size:16px}.modal .steps{font-size:16px;line-height:1.7}.modal .stats.small .stat b{font-size:21px}.modal .stats.small .stat small{font-size:13px}.modal button,.modal select,.modal input,.modal textarea{font-size:16px}.calwrap .day small[class^=wk-]{border-left-width:6px;margin-top:3px;padding:3px 6px;font-size:13px;line-height:1.25}.calwrap .legend{font-size:14px}.calwrap .legend .sw{width:15px;height:15px}@media (width<=600px){.calwrap .day small[class^=wk-]{padding:2px 4px;font-size:11px}}.weeks{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;display:grid}.week{border:1px solid var(--line);border-radius:4px;padding:12px}.week.now{border:2px solid var(--k-z2);background:color-mix(in srgb, var(--k-z2) 8%, transparent)}.week .wno{font-size:18px}.week .wfocus{margin:6px 0 4px;font-size:15px}.week .chip.kind{background:color-mix(in srgb, var(--c,var(--k-other)) 30%, transparent);border-color:var(--c,var(--k-other));font-weight:600}.wk-build{--c:#f08a24}.chip.up{background:#3fae5a40;border-color:#3fae5a}.chip.down{background:#e0454b40;border-color:#e0454b}.hbars{margin:10px 0 4px}.hbar{background:var(--soft);border-radius:3px;height:24px;margin:4px 0;position:relative;overflow:hidden}.hbar i{position:absolute;inset:0 auto 0 0}.hbar i.plan{background:color-mix(in srgb, var(--k-recovery) 55%, transparent)}.hbar i.act{background:color-mix(in srgb, var(--k-z2) 70%, transparent)}.hbar span{padding:0 8px;font-size:13px;font-weight:600;line-height:24px;position:relative}.wchart{align-items:flex-end;gap:8px;height:190px;margin:8px 0 4px;display:flex}.wcol{flex-direction:column;flex:1;align-items:center;min-width:0;height:100%;display:flex}.wtrack{background:var(--soft);border-radius:3px;flex:1;align-items:flex-end;width:100%;display:flex}.wtrack i{background:var(--k-recovery);border-radius:3px 3px 0 0;width:100%;display:block}.wtrack i.cur{background:var(--k-z2)}.wval{margin-bottom:3px;font-size:13px}.wlab{color:var(--mid);white-space:nowrap;margin-top:4px;font-size:11px}.stat b.good{color:#3fae5a}.stat b.bad{color:#e0454b}.kinds{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.kinds button{border-radius:999px;padding:8px 14px;font-size:15px}.kinds button[aria-pressed=true]{background:var(--k-test);color:#fff;border-color:var(--k-test)}.kdesc{color:var(--mid);margin:0 0 8px;font-size:14px}.testform .field>span{font-size:13px}.testform input,.testform select,.testform textarea{font-size:16px}.result{background:color-mix(in srgb, var(--k-test) 16%, transparent);border-left:6px solid var(--k-test);border-radius:4px;margin:10px 0;padding:12px 14px;font-size:18px;font-weight:600}.tcard{border:1px solid var(--line);border-left:8px solid var(--k-test);border-radius:4px;margin:8px 0;padding:10px 12px}.tcard.tk-z2{border-left-color:var(--k-z2)}.tcard.tk-pm{border-left-color:var(--k-recovery)}.tcard .tdate{font-size:17px}.tcard .tmain{margin-top:6px;font-size:22px}.tcard .chip.kind{background:var(--soft);margin-left:6px;font-size:13px;font-weight:600}.tcard .chip.done{margin-left:6px;font-size:13px}.tdetail{color:var(--mid);padding:4px 12px 8px 14px;font-size:14px}.tdetail>div{margin:3px 0}.timeline{border-left:3px solid var(--k-test);margin-left:6px;padding-left:14px}.tl{padding:5px 0;position:relative}.tl:before{content:"";background:var(--k-test);border-radius:50%;width:11px;height:11px;position:absolute;top:12px;left:-22px}.tl .tldate{color:var(--mid);margin-right:10px}.tl b{font-size:18px}.wkhead{margin-bottom:4px}.fsec{border-top:1px solid var(--line);margin:16px 0 6px;padding-top:8px;font-size:16px}.fsec:first-of-type{border-top:0}.kinds.energy{align-items:center}.kinds.energy button{border-radius:50%;width:46px;height:46px;padding:0;font-size:18px}.kinds.energy button[aria-pressed=true]{background:var(--k-z2);border-color:var(--k-z2)}.testform textarea,.field textarea{font-size:16px}button.primary{background:var(--ink);color:var(--bg);padding:9px 18px;font-weight:600}.ctile{border-top:5px solid var(--c);background:color-mix(in srgb, var(--c) 10%, transparent)}.ctile b{color:var(--c)}.fsec[style*=--c]{border-top:0;border-left:6px solid var(--c);background:linear-gradient(90deg, color-mix(in srgb, var(--c) 18%, transparent), transparent 70%);padding:2px 0 2px 10px}.srow{border-left:5px solid var(--c);background:color-mix(in srgb, var(--c) 9%, transparent);border-bottom:0;border-radius:0 4px 4px 0;margin:4px 0;padding-top:7px;padding-bottom:7px;padding-left:10px}.kinds.energy button{background:color-mix(in srgb, var(--e) 18%, transparent);border-color:var(--e)}.kinds.energy button[aria-pressed=true]{background:var(--e);color:#111;font-weight:700}.e1{--e:#e0454b}.e2{--e:#f08a24}.e3{--e:#e3c12a}.e4{--e:#8bc34a}.e5{--e:#3fae5a}.wkhead h2{color:var(--ink)}button.primary{color:#fff;background:#3b82f6;border-color:#3b82f6}.hsec{border-left:6px solid var(--c);background:linear-gradient(90deg, color-mix(in srgb, var(--c) 16%, transparent), transparent 70%);margin:12px 0 4px;padding:2px 0 2px 10px;font-weight:600}.entry.hm{border-left:5px solid var(--c);background:color-mix(in srgb, var(--c) 8%, transparent);border-bottom:0;margin:4px 0;padding-left:10px}.gbar{background:var(--soft);border-radius:3px;height:26px;margin:6px 0 10px;position:relative;overflow:hidden}.gbar i{opacity:.6;background:#a855f7;position:absolute;inset:0 auto 0 0}.gbar span{padding:0 8px;font-size:14px;font-weight:600;line-height:26px;position:relative}details.fold>summary{cursor:pointer;padding:4px 0;font-size:16px}details.fold[open]>summary{margin-bottom:6px}.hist{max-height:360px;overflow:auto}b.dn{color:#3fae5a}b.up{color:#f08a24}.ntabs button{padding:9px 18px;font-size:16px}.ntabs button[aria-pressed=true]{background:var(--k-z2);border-color:var(--k-z2);color:#111;font-weight:700}.daynav{align-items:center;gap:8px;margin:10px 0;display:flex}.daynav input{width:auto;font-size:17px}.daynav button{padding:6px 14px;font-size:20px}.macros{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:6px 0 14px;display:grid}.mtile{border:1px solid var(--line);border-top:5px solid var(--c);background:color-mix(in srgb, var(--c) 9%, transparent);border-radius:4px;padding:10px 12px}.mtile b{color:var(--c);font-size:30px;line-height:1.15;display:block}.mtile b span{color:var(--mid);font-size:14px;font-weight:400}.mtile small{color:var(--mid);font-size:13px}.mbar{background:var(--soft);border-radius:4px;height:8px;margin:6px 0;overflow:hidden}.mbar i{background:var(--c);height:100%;display:block}.entry.nm{border-left:5px solid var(--k-z2);background:color-mix(in srgb, var(--k-z2) 7%, transparent);border-bottom:0;border-radius:0 4px 4px 0;margin:4px 0;padding-left:10px}.search{margin-bottom:8px;font-size:16px}.mdot{vertical-align:baseline;border-radius:50%;width:10px;height:10px;margin:0 4px 0 2px;display:inline-block}.mlegend span{white-space:nowrap;margin-right:10px}div.day{background:var(--bg);border:1px solid var(--line);cursor:pointer;border-radius:3px;display:block}.calwrap{max-width:1240px}.calwrap .cal{gap:6px}.calwrap .day{min-height:170px;padding:8px;font-size:14px}.calwrap .day small[class^=wk-]{margin-top:5px;padding:6px 8px;font-size:15px;line-height:1.3}.calwrap .day small.dragcard{cursor:grab;-webkit-user-select:none;user-select:none}.calwrap .day small.dragging{opacity:.35}.calwrap .day.over,.calwrap .day small.over{outline:2px dashed var(--ink);outline-offset:1px}@media (width<=600px){.calwrap .day{min-height:100px;padding:3px;font-size:11px}.calwrap .day small[class^=wk-]{padding:3px 5px;font-size:12px}}.msg.bar{border-left:6px solid var(--ink);background:var(--soft);font-size:15px}.msg.bar>div{margin-top:3px}.issuehead{margin:14px 0 2px;font-size:18px}.conflict{border:1px solid var(--line);border-left:6px solid var(--ink);background:var(--bg);border-radius:4px;margin:12px 0;padding:12px}.conflict .chead{flex-wrap:wrap;align-items:baseline;gap:8px 12px;font-size:17px;display:flex}.conflict .cwhy{margin:8px 0;font-size:15px}.cmp table{border-collapse:collapse;width:100%;font-size:15px}.cmp th,.cmp td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.cmp thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--mid);font-size:12px}.cmp tbody th{width:34%;color:var(--mid);font-size:13px;font-weight:600}.cmp tr.d td{background:var(--soft);font-weight:700;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cmpnote{border:1px solid var(--line);margin:6px 0;padding:6px 8px;font-size:14px}.cmpnote.same{background:var(--soft)}.cbtns{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.cbtns button{flex-direction:column;align-items:flex-start;min-height:52px;padding:8px 16px;font-size:16px;display:flex}.cbtns button small{color:var(--mid);font-size:12px}.modal.confirm{align-items:center}.modal.confirm>div{border:2px solid var(--ink);border-radius:6px;width:min(460px,100%);padding:20px}.modal.confirm h3{margin:0 0 8px;font-size:21px}.modal.confirm .cdlg-sub{margin:6px 0;font-size:17px;font-weight:600}.modal.confirm p.note{color:var(--ink);margin:6px 0;font-size:15px}.modal.confirm .cbtns{justify-content:flex-end}.modal.confirm .cbtns button{flex-direction:row;min-height:44px;padding:8px 18px}
