:root{--bg: #f3f5fa;--surface: #ffffff;--surface-2: #ebeff7;--border: #d8dee9;--text: #1a2033;--muted: #6b7280;--blue: #1d3e8c;--blue-dark: #16306e;--blue-tint: #e4eaf9;--red: #b3261e;--red-tint: #fbe7e6;--gold: #b58b00;--gold-dark: #7a5d00;--gold-tint: #fbf3d9;--green: #1f7a4d;--orange: #c2410c;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,system-ui,sans-serif;font-size:15px;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button{cursor:pointer;font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.oswald,h1,h2,h3{font-family:Oswald,Arial Narrow,sans-serif}.app{max-width:520px;margin:0 auto;padding:10px 12px 110px}.muted{color:var(--muted)}.small{font-size:13px}.cal-head{display:flex;align-items:center;gap:4px;padding:6px 2px 10px}.cal-title{flex:1;margin:0;font-size:26px;font-weight:600;color:var(--blue);letter-spacing:.3px}.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--blue);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center}.today-btn{height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--blue);font-weight:600;font-size:14px}.wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:0 0 6px}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden;touch-action:pan-y}.cell{background:var(--surface);min-height:92px;display:flex;flex-direction:column;padding:3px 2px 2px;cursor:pointer;min-width:0}.cell.other{background:#f8f9fc}.cell.other .dn{color:#b3b9c6}.cell.sel{box-shadow:inset 0 0 0 2px var(--blue)}.dn{font-size:12px;font-weight:600;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;margin:0 auto 1px}.cell.today .dn{background:var(--blue);color:#fff}.half{flex:1;display:flex;flex-direction:column;gap:2px;min-height:31px;padding:1px 0;min-width:0}.half.am{border-bottom:1px dashed var(--border)}.chip{font-size:10px;line-height:14px;padding:0 3px;border-radius:3px;background:var(--blue-tint);color:var(--blue-dark);border-left:3px solid var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.chip.done{background:var(--blue);color:#fff;border-left-color:var(--blue-dark)}.chip.more{background:none;border:none;color:var(--muted);padding-left:2px}.grid-hint{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:6px 2px 0}.modes{display:flex;width:100%;margin:4px 0 8px}.modes button{flex:1;padding:8px 0}.modes.sub{margin:0 0 4px;border-width:1px}.modes.sub button{font-size:14px;padding:7px 0}.week{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;touch-action:pan-y}.wrow{display:flex;border-top:1px solid var(--border)}.wrow:first-child{border-top:none}.wday{width:52px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0;border-right:1px solid var(--border)}.wdn{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase}.wdd{font-family:Oswald,sans-serif;font-size:20px;font-weight:600;width:34px;height:34px;line-height:34px;text-align:center;border-radius:50%}.wrow.today .wdd{background:var(--blue);color:#fff}.whalves{flex:1;min-width:0}.wslot{display:flex;align-items:flex-start;gap:6px;padding:6px 8px;min-height:44px}.wslot.pm{border-top:1px dashed var(--border)}.wlbl{font-size:11px;font-weight:700;color:var(--muted);width:20px;padding-top:7px;flex-shrink:0}.witems{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.witem{display:block;width:100%;text-align:left;border:none;border-left:3px solid var(--blue);background:var(--blue-tint);color:var(--blue-dark);border-radius:6px;padding:6px 8px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.witem.done{background:var(--blue);color:#fff;border-left-color:var(--blue-dark)}.wadd{width:30px;height:30px;border:1px dashed var(--blue);border-radius:8px;background:none;color:var(--blue);font-size:18px;line-height:1;flex-shrink:0;opacity:.6}.list-date{font-family:Oswald,sans-serif;font-size:15px;font-weight:600;color:var(--blue);margin:16px 2px 0}.status.miss{background:#f1f2f5;color:var(--muted)}.item.miss .bar{background:#b3b9c6}.day{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px}.day h2{margin:0;font-size:21px;font-weight:600;color:var(--blue)}.slot-h{display:flex;align-items:baseline;gap:8px;margin-top:16px}.slot-h .lbl{font-family:Oswald,sans-serif;font-size:17px;font-weight:600}.slot-h .sub{font-size:12px;color:var(--muted)}.item{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;margin-top:8px;background:var(--surface);text-align:left}.item .bar{width:4px;align-self:stretch;border-radius:2px;background:var(--blue)}.item.run .bar{background:var(--blue)}.item.done .bar{background:var(--green)}.item.live .bar{background:var(--text)}.item .body{flex:1;min-width:0}.item .t{font-weight:600}.item .s{font-size:12px;color:var(--muted);margin-top:2px}.item .chev{color:var(--muted);font-size:18px}.status{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--blue-tint);color:var(--blue);white-space:nowrap}.status.done{background:#e3f2ea;color:var(--green)}.status.live{background:var(--red-tint);color:var(--red)}.add-btn{width:100%;margin-top:8px;padding:10px;border:1.5px dashed var(--blue);color:var(--blue);background:none;border-radius:10px;font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.3px}.reset{display:block;margin:18px auto 0;background:none;border:none;color:var(--muted);font-size:13px;text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);z-index:5;padding:6px 0 8px}.topbar h1{margin:0;font-size:19px;font-weight:600;color:var(--blue);text-align:center;flex:1}.link{background:none;border:none;color:var(--blue);font-size:16px;font-weight:600;padding:8px 4px;min-width:64px;text-align:left}.link.right{text-align:right}.link.danger{color:var(--red)}.top-icons{display:flex;gap:2px;min-width:64px;justify-content:flex-end}.top-icon{width:40px;height:40px;border:none;background:none;color:var(--blue);display:flex;align-items:center;justify-content:center;border-radius:10px}.top-icon:active{background:var(--surface-2)}.top-icon.danger{color:var(--red)}.top-icon svg{width:22px;height:22px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}.label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:0 0 6px}.text-in{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:16px;background:var(--surface);color:var(--text);font-family:inherit}.row{display:flex;gap:10px;align-items:flex-end}.seg{display:inline-flex;border:1.5px solid var(--blue);border-radius:10px;overflow:hidden;flex-shrink:0}.seg button{padding:9px 16px;background:var(--surface);color:var(--blue);border:none;font-family:Oswald,sans-serif;font-size:15px}.seg button.on{background:var(--blue);color:#fff}.btn-primary{display:block;width:100%;background:var(--blue);color:#fff;border:none;border-radius:12px;padding:14px;font-family:Oswald,sans-serif;font-size:18px;letter-spacing:.3px}.btn-primary:active{background:var(--blue-dark)}.btn-secondary{display:block;width:100%;background:var(--surface);color:var(--blue);border:1.5px solid var(--blue);border-radius:12px;padding:12px;font-family:Oswald,sans-serif;font-size:17px;margin-top:10px}.btn-danger{display:block;width:100%;background:none;color:var(--red);border:none;padding:12px;font-weight:600;margin-top:4px}.text-link{background:none;border:none;color:var(--blue);font-weight:600;padding:8px 0;font-size:14px}.text-link.muted{color:var(--muted)}.actions{position:sticky;bottom:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,rgba(243,245,250,0),var(--bg) 20%)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface);overflow:hidden;height:30px;min-width:0;max-width:100%;vertical-align:middle}.stepper>button{width:26px;flex-shrink:0;height:100%;border:none;background:var(--surface-2);color:var(--blue);font-size:16px;line-height:1}.stepper .field{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:84px;min-width:0;padding:0 3px;overflow:hidden}.stepper input{width:3.4em;min-width:0;border:none;text-align:center;font-size:13px;font-weight:600;background:none;color:var(--text);padding:0;font-family:inherit}.unit{border:none;background:none;color:var(--blue);font-size:12px;font-weight:700;padding:0 2px;text-decoration:underline dotted}.suffix{font-size:12px;color:var(--muted);padding-right:2px}.rest-row{display:flex;align-items:center;gap:8px;margin:10px 0 4px}.rest-row .lbl{font-size:13px;font-weight:600;color:var(--muted);width:34px}.rest-row .stepper{width:auto}.ex-head{display:flex;gap:6px;align-items:center}.ex-num{font-family:Oswald,sans-serif;font-size:18px;color:var(--blue);width:22px;text-align:center;flex-shrink:0}.ex-tools{display:flex;gap:2px}.mini{width:30px;height:34px;border:none;background:none;color:var(--muted);font-size:16px;border-radius:8px}.mini:disabled{opacity:.3}.set-hdr,.set-row{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,1.3fr) 26px;gap:6px;align-items:center}.set-rest{border-bottom:1px solid var(--surface-2);padding-bottom:8px}.set-rest .rest-row{margin:6px 0 0 28px}.set-hdr{font-size:11px;font-weight:600;color:var(--muted);margin-top:10px}.set-row{margin-top:6px}.set-n{font-weight:700;color:var(--muted);text-align:center;font-size:14px}.d-title{margin:4px 0 2px;font-size:30px;font-weight:600;color:var(--text)}.d-sub{color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.ex-title{font-family:Oswald,sans-serif;font-size:19px;font-weight:600}.ex-meta{font-size:13px;color:var(--muted);margin-top:2px}.line{display:grid;grid-template-columns:44px 1fr auto;gap:8px;padding:7px 0;border-top:1px solid var(--surface-2);font-size:14px;align-items:center}.line:first-of-type{margin-top:8px}.line .n{color:var(--muted);font-weight:600}.line .plan{color:var(--muted);font-size:12px}.eff{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;color:#fff}.eff.Easy{background:var(--green)}.eff.Moderate{background:#eab308;color:#1a2033}.eff.Hard{background:var(--orange)}.eff.Max{background:var(--red)}.wk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px 12px}.wk-head h1{margin:0;font-size:24px;font-weight:600;color:var(--blue)}.wk-clock{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;margin-top:2px}.card.current{border:2px solid var(--blue)}.card.todo{opacity:.85}.card.skipped .ex-title{text-decoration:line-through;color:var(--muted)}.done-tick{color:var(--green);font-weight:700}.big{text-align:center;padding:14px 0 6px}.big .k{font-family:Oswald,sans-serif;font-size:44px;font-weight:600;color:var(--blue);line-height:1.05}.big .num{font-family:Oswald,sans-serif;font-size:58px;font-weight:600;color:var(--blue);font-variant-numeric:tabular-nums;line-height:1.05}.big .num.over{color:var(--red)}.big .cap{color:var(--muted);font-size:14px;margin-top:2px}.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.07)}}.entry{background:var(--blue-tint);border-radius:12px;padding:12px;margin:10px 0}.entry-h{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:8px}.entry-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 46px;gap:6px;align-items:center}.entry-row .stepper{display:flex;width:100%}.entry-row .stepper .field{flex:1 1 0;width:auto;padding:0 2px;gap:3px;justify-content:center}.entry-row .stepper input{width:3em;flex:0 1 auto;text-align:right}.entry-h>span:first-child{white-space:nowrap}.entry-lbls{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 46px;gap:6px;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.tick{height:40px;border:none;border-radius:10px;background:var(--blue);color:#fff;font-size:20px}.effort{display:flex;gap:6px;margin-top:10px}.effort button{flex:1;padding:7px 0;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:600;color:var(--muted)}.effort button.on.Easy{background:var(--green);border-color:var(--green);color:#fff}.effort button.on.Moderate{background:#eab308;border-color:#eab308;color:#1a2033}.effort button.on.Hard{background:var(--orange);border-color:var(--orange);color:#fff}.effort button.on.Max{background:var(--red);border-color:var(--red);color:#fff}.logged-note{font-size:13px;color:var(--green);font-weight:600;text-align:center;margin:8px 0}.stats{display:flex;gap:10px;margin-bottom:12px}.stat{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;text-align:center}.stat .v{font-family:Oswald,sans-serif;font-size:26px;font-weight:600;color:var(--blue)}.stat .l{font-size:12px;color:var(--muted)}.chip.run{background:var(--blue-tint);color:var(--blue);border-left-color:var(--blue)}.chip.run.done{background:var(--blue);color:#fff;border-left-color:var(--blue-dark)}.chip.live,.chip.run.live{background:var(--surface);color:var(--text);border-left-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.witem.run{background:var(--blue-tint);color:var(--blue);border-left-color:var(--blue)}.witem.run.done{background:var(--blue);color:#fff;border-left-color:var(--blue-dark)}.witem.live,.witem.run.live{background:var(--surface);color:var(--text);border-left-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.ex-num.run{color:var(--blue)}.tpls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tpls button{padding:9px 0;border:1.5px solid var(--blue);border-radius:10px;background:var(--surface);color:var(--blue);font-family:Oswald,sans-serif;font-size:15px}.tpls button.on{background:var(--blue);color:#fff}.rep{border-bottom:1px solid var(--surface-2);padding:10px 0}.rep-h{display:flex;align-items:center;gap:8px}.mini-seg button{padding:6px 10px;font-size:13px}.rep-b{padding-left:30px}.rest-row.flex .lbl{width:58px;flex-shrink:0;line-height:1.15}.rest-row.flex .stepper{flex:0 1 auto;width:auto}.rec{margin:8px 0 0 30px;padding:8px 10px;background:var(--surface-2);border-radius:10px}.rec .rep-h .lbl{font-size:13px;font-weight:600;color:var(--muted);flex:1}.kinds button.on{background:var(--blue);border-color:var(--blue);color:#fff}.chip.event{background:var(--gold-tint);color:var(--gold-dark);border-left-color:var(--gold)}.chip.event.done{background:var(--gold);color:#fff;border-left-color:var(--gold-dark)}.witem.event{background:var(--gold-tint);color:var(--gold-dark);border-left-color:var(--gold)}.witem.event.done{background:var(--gold);color:#fff;border-left-color:var(--gold-dark)}.item.event .bar,.item.event.done .bar{background:var(--gold)}.status.ev{background:var(--gold-tint);color:var(--gold-dark)}.type-ic.ev{background:var(--gold-tint)}.tpls.ev{grid-template-columns:repeat(5,minmax(0,1fr))}.tpls.ev button{border-color:var(--gold);color:var(--gold-dark);font-size:14px}.tpls.ev button.on{background:var(--gold);color:#fff}.hms{display:flex;align-items:center;gap:6px}.hms-in{width:60px;text-align:center}textarea.text-in{resize:vertical;font-family:inherit}.ev-big{font-family:Oswald,sans-serif;font-size:44px;font-weight:600;color:var(--gold-dark);line-height:1.1;margin-top:4px}.kv{display:grid;grid-template-columns:92px 1fr;gap:8px 10px;font-size:15px}.kv .k{color:var(--muted);font-size:13px;font-weight:600;padding-top:2px}.type-ic.lib{background:var(--surface-2)}.panel{max-height:88vh;overflow-y:auto}.prog-banner{display:flex;justify-content:space-between;gap:8px;width:100%;padding:9px 12px;margin:0 0 8px;border:1px solid var(--border);background:var(--surface);border-radius:10px;font-size:13px;font-weight:600;color:var(--blue);text-align:left}.prog-link{display:block;width:100%;text-align:left;background:var(--blue-tint);border:none;color:var(--blue-dark);font-size:13px;font-weight:600;padding:8px 12px;border-radius:10px;margin:-6px 0 14px}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:8px}.progress span{display:block;height:100%;background:var(--blue);border-radius:99px}.type-opt.sel,.item.sel{border:2px solid var(--blue);background:var(--blue-tint)}.sitem{display:flex;gap:2px;align-items:center}.sitem .witem{flex:1;min-width:0}.steps{font-size:12px;font-weight:600;color:var(--muted);text-align:center;margin:6px 0 14px;line-height:1.4}.week-tag{font-family:Inter,sans-serif;font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted);margin-left:8px;vertical-align:middle}.wk-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.pill-opts{display:flex;flex-wrap:wrap;gap:6px}.pill-opts button{padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:13px;color:var(--muted)}.pill-opts button.on{background:var(--blue);border-color:var(--blue);color:#fff}.btn-row{display:flex;gap:10px}.btn-row button{flex:1;margin-top:0}.plan-card{display:block}.btn-primary:disabled{opacity:.4}.k-hard{background:#fce7f3;color:#be185d}.k-long{background:var(--blue-tint);color:var(--blue-dark)}.k-gym{background:#eceef2;color:#4b5563}.k-easy{background:#e3f2ea;color:var(--green)}.paint{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0 12px}.paint button{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;font-weight:600;font-size:14px;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.paint button.on{border:2px solid var(--text)}.grip{opacity:.55;font-size:15px;line-height:1}.drag-ghost{position:fixed;left:0;top:0;z-index:70;pointer-events:none;padding:10px 14px;border-radius:10px;font-weight:600;font-size:14px;border:1.5px solid currentColor;box-shadow:0 6px 18px #0000002e}.mt.over{outline:2px dashed var(--text);outline-offset:2px}.pdot{width:14px;height:14px;border-radius:4px;border:1px solid currentColor}.mrow{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:center;margin-bottom:6px}.mt{height:42px;border-radius:10px;border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted);background:var(--surface);width:100%}.mt.f2{display:flex;gap:3px;padding:0;border:none;background:none;cursor:pointer}.mchip{flex:1;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1.5px solid currentColor;font-weight:600;font-size:13px;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.mt.f2 .mchip+.mchip{font-size:12px}.mt.f{border:1.5px solid currentColor;font-weight:600;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.mhd{font-size:11px;font-weight:600;color:var(--muted);text-align:center}.dchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.dchip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600}.chip-x{border:none;background:none;font-size:11px;color:inherit;text-decoration:underline;padding:0;font-weight:500}.rot-item{border:1px solid var(--border);border-radius:12px;padding:10px;margin-top:8px}.rot-h{display:flex;gap:10px;align-items:flex-start}.rot-l{width:26px;height:26px;border-radius:8px;background:var(--surface-2);font-family:Oswald,sans-serif;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rot-item .t{font-weight:600}.rot-item .s{font-size:12px;color:var(--muted)}.prog-sum{font-size:12px;color:var(--blue-dark);background:var(--blue-tint);border-radius:8px;padding:6px 8px;margin-top:8px;line-height:1.45}.rot-prev{font-size:12px;color:var(--muted);margin-top:10px}.prog-ed{margin-top:4px}.pe{border-top:1px solid var(--surface-2);padding:10px 0}.pe-n{font-weight:600;margin-bottom:6px}.pe .rest-row.flex .lbl{width:70px}.pv{font-weight:600;font-size:14px;white-space:nowrap}.rv{padding:8px 0;border-top:1px solid var(--surface-2)}.rv:first-of-type{margin-top:8px}.dchip.off{background:var(--surface);color:var(--muted);border:1px dashed var(--border)}.dchip.sel{background:var(--text);color:#fff}.pencil{border:none;background:none;color:var(--blue);padding:2px 4px;margin-left:4px;vertical-align:middle;line-height:0;border-radius:6px}.pencil svg{width:16px;height:16px}button.dchip{border:1px solid transparent;cursor:pointer}.later-note{font-size:13px;color:var(--muted);background:var(--surface-2);border-radius:10px;padding:10px 12px;margin-top:8px;line-height:1.45}.sheet-h{display:flex;align-items:center;gap:8px;position:sticky;top:-18px;margin:-18px -16px 6px;padding:12px 16px 8px;background:var(--surface);z-index:2;border-bottom:1px solid var(--surface-2)}.sheet-h h3{margin:0;flex:1;text-align:center}.tick-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--blue);color:#fff;font-size:20px;line-height:1}.pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}.pcell{min-width:0}.mini-lbl{display:block;font-size:11px;font-weight:600;color:var(--muted);margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcell .stepper{height:30px}.pcell .stepper>button{width:26px}.pcell .pv{font-size:13px}.mini-seg2{display:flex;height:30px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.mini-seg2 button{flex:1;min-width:0;border:none;background:var(--surface);color:var(--muted);font-size:12px;font-weight:600;padding:0 4px;line-height:1.1}.mini-seg2 button+button{border-left:1px solid var(--border)}.mini-seg2 button:first-child{flex:0 0 36%}.mini-seg2 button.on{background:var(--blue);color:#fff}.panel .pe{padding:8px 0}.panel .pill-opts button{padding:6px 10px;font-size:12px}.sum-card{background:var(--blue-tint);border-color:transparent}.sum-card .ex-title{color:var(--blue-dark)}.tpls{grid-template-columns:repeat(4,minmax(0,1fr))}.erow{display:flex;align-items:center;gap:8px;margin-top:6px}.en{width:18px;text-align:center;font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0}.epill{flex:0 1 auto;min-width:0;text-align:left;padding:6px 12px;border-radius:999px;border:1px dashed var(--border);background:var(--surface-2);color:var(--text);font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.erow .mini{margin-left:auto}.rep-row .lbl{font-size:13px}.rest-row.flex.rep-row .stepper{flex:0 0 auto;width:auto;height:30px;border-radius:999px}.rep-row .stepper>button{width:26px;font-size:16px}.rep-row .stepper .field{flex:0 0 auto;padding:0 2px}.rep-row .stepper input{width:3em;font-size:13px}.rep-row .suffix{font-size:13px;color:var(--text);font-weight:600;padding-right:2px}#wdate{width:auto;max-width:100%;height:38px;padding:4px 10px;font-size:16px;line-height:1.2;-webkit-appearance:none;appearance:none}#wdate::-webkit-date-and-time-value{text-align:left}.wc{padding:12px 14px}.wc-row{display:flex;align-items:center;gap:12px;min-height:34px}.wc-l{font-weight:600;flex:0 0 auto}.wc-row .tgl{margin-left:auto}.wc .rpill{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.rline{display:flex;align-items:center;gap:8px;margin-top:8px}.rline.gap{margin:6px 0 0 26px}.rl{font-size:12px;font-weight:600;color:var(--muted);width:100px;flex-shrink:0}.rline.gap .rl{width:auto}.rpill{border:1px dashed var(--border);background:var(--surface-2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.rpill i{font-style:normal;margin-right:2px}.rsep{border-top:1px solid var(--surface-2);margin-top:10px;padding-top:2px}.conn{text-align:center;margin:-4px 0 8px}.tgl{width:44px;height:26px;border-radius:13px;background:var(--border);border:none;position:relative;flex-shrink:0;padding:0}.tgl:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.tgl.on{background:var(--blue)}.tgl.on:after{left:21px}.tgl.sm{width:36px;height:22px;border-radius:11px}.tgl.sm:after{width:16px;height:16px}.tgl.sm.on:after{left:17px}.shape{flex-shrink:0;width:70px;height:18px;color:var(--blue)}.qs-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qs-t{text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.qs-t b{display:block;font-family:Oswald,sans-serif;font-size:17px;font-weight:600;color:var(--blue)}.qs-t span{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.3}.qs-t.on{border:2px solid var(--blue)}.qs-s{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-top:8px}.qs-s.on{border:2px solid var(--blue);background:var(--blue-tint)}.qs-txt{min-width:0}.qs-txt b{display:block;font-size:14px}.qs-txt span{display:block;font-size:12px;color:var(--muted);margin-top:1px;line-height:1.3}.qs-c{padding:10px 14px}.qs-line{display:flex;align-items:center;gap:10px}.qs-line b{display:block;font-size:14px}.max-opts button{font-size:12px;padding:6px 10px}.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.trio .stepper>button{width:24px;font-size:16px}.trio .stepper{width:100%}.trio .stepper .field{padding:0 1px;width:auto;flex:1 1 0}.trio .pv{font-size:12px;overflow:hidden;text-overflow:ellipsis}.tgl-wrap{display:flex;align-items:center;gap:8px;height:30px}.shape.gym,.qs-t.gym b{color:var(--blue)}.gm{display:flex;align-items:flex-start;gap:8px;margin-top:8px}.gm .rot-l{margin-top:6px}.gm-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.gm-b .text-in{width:100%}.set-card{border-left:4px solid var(--blue)}.bx{display:flex;align-items:flex-start;gap:8px;margin-top:10px}.bx .rot-l{margin-top:6px}.bx-h{display:flex;align-items:center;gap:4px;width:100%}.bx-h .text-in{flex:1;min-width:0}.blk-h{display:flex;align-items:center;gap:8px;min-width:0}.blk-h .shape{width:58px}.blk-t{font-family:Oswald,sans-serif;font-size:17px;font-weight:600;color:var(--blue)}.stepper .pv+.suffix{margin-left:4px}.vol{display:block;width:100%;height:56px;margin:12px 0 4px}.seg button+button{border-left:1px solid var(--blue)}.unit-seg{margin-left:auto}.unit-seg button{padding:4px 10px;font-size:13px}.mseg{flex-shrink:0}.mseg button{padding:4px 10px;font-size:13px}.ez-day{border-top:1px solid var(--surface-2);margin-top:10px;padding-top:2px}.ez-opts{padding-left:4px}.type-tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.sent{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.sent .x{font-weight:600;color:var(--muted)}.sent .epill{flex:0 1 auto}.rmini{display:flex;align-items:center;gap:8px;margin-top:8px}.conn.mid{margin:6px 0 0 34px;text-align:left}.ex-name-in{font-weight:600}nav.tabs{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--border);display:flex;padding-bottom:env(safe-area-inset-bottom,0px);z-index:20}nav.tabs.hidden{display:none}nav.tabs button{flex:1;padding:9px 0 8px;background:none;border:none;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.3px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}nav.tabs button.on{color:var(--blue)}nav.tabs svg{width:24px;height:24px}.live-dot{position:absolute;top:7px;left:calc(50% + 9px);width:8px;height:8px;border-radius:50%;background:var(--red)}.backdrop{position:fixed;inset:0;background:#1a203373;z-index:40}.panel{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:var(--surface);border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));z-index:41}.panel h3{margin:0 0 4px;font-size:20px;font-weight:600;color:var(--blue)}.type-opt{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-top:10px;text-align:left}.type-opt:disabled{opacity:.5;cursor:default}.type-ic{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--blue-tint)}.type-ic.run{background:var(--blue-tint)}.type-opt .t{font-family:Oswald,sans-serif;font-size:18px;font-weight:600}.type-opt .s{font-size:13px;color:var(--muted)}#restover{position:fixed;inset:0;background:#b3261e;color:#fff;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:50;padding:24px;text-align:center}#restover.show{display:flex}#restover .big-t{font-family:Oswald,sans-serif;font-size:64px;font-weight:700;line-height:1}#restover button{margin-top:18px;background:#fff;color:var(--red);border:none;border-radius:12px;padding:14px 28px;font-family:Oswald,sans-serif;font-size:20px}#restover .ro-k{font-family:Oswald,sans-serif;font-size:22px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;opacity:.9}#restover .ro-time{font-family:Oswald,sans-serif;font-size:84px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}#restover .ro-sub{font-size:15px;opacity:.85}#restover .ro-next{margin-top:22px;background:#ffffff24;border-radius:14px;padding:14px 18px;width:100%;max-width:340px}#restover .ro-nl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;opacity:.8}#restover .ro-nn{font-family:Oswald,sans-serif;font-size:26px;font-weight:600;margin-top:2px}#restover .ro-ns{font-size:15px;opacity:.9;margin-top:2px}#restover .ro-back{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);left:12px;margin:0;display:flex;align-items:center;gap:6px;background:#ffffff29;color:#fff;border:none;border-radius:999px;padding:8px 14px 8px 10px;font-family:inherit;font-size:16px;font-weight:600}#restover .ro-back svg{width:20px;height:20px}#restover .ro-tap{margin-top:26px;font-size:17px;font-weight:600;opacity:.95;animation:roPulse 1.6s ease-in-out infinite}@keyframes roPulse{0%,to{opacity:.95}50%{opacity:.55}}#restover{cursor:pointer}#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--text);color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center}#toast.show{opacity:1}@media(prefers-reduced-motion:reduce){.pulse{animation:none}#toast{transition:none}}:root{--c-gym: #2563eb;--c-easy: #10b981;--c-hard: #ec4899;--c-long: #06b6d4;--c-run: #475569;--c-race: #eab308;--c-miss: #9ca3af;--race-day: #fef9c3;--race-text: #854d0e}.cat-gym{--c: var(--c-gym)}.cat-easy{--c: var(--c-easy)}.cat-hard{--c: var(--c-hard)}.cat-long{--c: var(--c-long)}.cat-run{--c: var(--c-run)}.cat-race{--c: var(--c-race)}.grid .cell{min-height:0;height:68px;padding:2px 1px}.grid .cell .dn{flex-shrink:0}.cell.race{background:var(--race-day)}.cell.race .dn{color:var(--race-text)}.cell.today.race .dn{color:#fff}.cmrow{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;margin:0;padding:0}.cmrow.am{border-bottom:1px dashed var(--border)}.bdg{position:relative;width:18px;height:18px;flex-shrink:0;border-radius:5px;border:1.5px solid var(--c);color:var(--c);background:var(--surface);display:inline-flex;align-items:center;justify-content:center}.bdg svg{width:12px;height:12px;display:block}.bdg.done{background:var(--c);color:#fff}.bdg.cat-race.done{color:#fff}.bdg.miss{--c: var(--c-miss);border-style:dashed;background:var(--surface);color:var(--c-miss)}.bdg.live:after{content:"";position:absolute;top:-3px;right:-3px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid var(--surface)}.mmore{font-size:10px;font-weight:700;color:var(--muted);line-height:1}.cal-key{display:flex;flex-wrap:wrap;gap:6px 12px;margin:10px 2px 0;font-size:11px;color:var(--muted)}.cal-key span{display:inline-flex;align-items:center;gap:5px}.cal-key i{width:10px;height:10px;border-radius:3px;background:var(--c);display:inline-block}.cal-key .bdg{width:15px;height:15px}.cal-key .bdg svg{width:10px;height:10px}.cal-key .sep{width:1px;height:12px;background:var(--border)}.day-week{background:none;border:none;color:var(--blue);font-weight:600;font-size:14px;padding:6px 0 0}.week .wrow.race{background:var(--race-day)}.week .wday{width:48px}.wbody{flex:1;min-width:0;padding:6px 8px;display:flex;flex-direction:column;gap:6px;justify-content:center}.wit{display:flex;align-items:stretch;gap:8px;width:100%;text-align:left;border:none;background:var(--surface-2);border-left:4px solid var(--c);border-radius:0 8px 8px 0;padding:7px 8px;min-width:0}.wrow.race .wit{background:#fff9}.wit .wsl{font-size:11px;font-weight:700;color:var(--muted);width:20px;flex-shrink:0;padding-top:1px}.wit .wtx{flex:1;min-width:0}.wit .wn{font-weight:600;font-size:14px;line-height:1.3;color:var(--text)}.wit .wdl{font-size:12px;color:var(--muted);margin-top:1px;line-height:1.3}.wit .wst{font-size:11px;font-weight:700;align-self:center;white-space:nowrap;padding:2px 7px;border-radius:999px}.wit .wst.done{background:var(--c);color:#fff}.wit.cat-race .wst.done{color:#fff}.wit .wst.live{background:var(--red-tint);color:var(--red)}.wit.miss{--c: var(--c-miss)}.wit.miss .wn{color:var(--muted);text-decoration:line-through}.wit .wst.miss{background:#f1f2f5;color:var(--muted)}.wadds{display:flex;gap:14px}.wadd2{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;padding:2px 0}.wadd2:active{color:var(--blue)}.wbody.empty{justify-content:center}.item[class*=cat-] .bar,.item.event[class*=cat-] .bar,.item.event.done[class*=cat-] .bar{background:var(--c)}.item.miss[class*=cat-] .bar{background:var(--c-miss)}.rtabs{display:flex;gap:6px;margin-bottom:12px}.rtabs button{flex:1;padding:10px 4px;border-radius:10px;border:1.5px solid var(--c);background:var(--surface);color:var(--text);font-family:Oswald,sans-serif;font-size:15px;display:flex;align-items:center;justify-content:center;gap:6px}.rtabs button i{width:9px;height:9px;border-radius:50%;background:var(--c);display:inline-block}.rtabs button.on{background:var(--c);color:#fff}.rtabs button.on i{background:#fff}.qs-grp{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:12px 0 2px}.qs-grp:first-of-type{margin-top:4px}.rcat-opt{display:flex;align-items:center;gap:12px;width:100%;padding:14px;margin-top:8px;border:1.5px solid var(--c);border-radius:12px;background:var(--surface);text-align:left}.rcat-opt i{width:14px;height:14px;border-radius:50%;background:var(--c);flex-shrink:0}.rcat-opt .t{font-weight:600}.rcat-opt .s{font-size:12px;color:var(--muted);margin-top:2px}.type-ic.tile{background:var(--c);color:#fff;flex-shrink:0}.type-ic.tile.cat-race{color:#fff}.type-ic.tile svg{width:22px;height:22px;display:block}.run-dots{display:inline-flex;gap:4px;margin-left:8px;vertical-align:2px}.run-dots i{width:8px;height:8px;border-radius:50%;background:var(--c);display:inline-block}.k-gym{--c: var(--c-gym)}.k-easy{--c: var(--c-easy)}.k-hard{--c: var(--c-hard)}.k-long{--c: var(--c-long)}.k-gym,.k-easy,.k-hard,.k-long,.mchip.k-gym,.mchip.k-easy,.mchip.k-hard,.mchip.k-long,.drag-ghost.k-gym,.drag-ghost.k-easy,.drag-ghost.k-hard,.drag-ghost.k-long{background:var(--c);color:#fff;border-color:var(--c)}.ptile{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ptile svg{width:16px;height:16px;display:block}.paint button.on{border:2px solid var(--c);background:var(--ct)}.mchip{gap:5px;line-height:1;padding:0 6px}.mchip svg{width:15px;height:15px;flex-shrink:0;display:block}.mchip .mlbl{min-width:0;overflow:hidden;text-overflow:ellipsis}.mt.f2 .mchip+.mchip{font-size:inherit}.mt.f2 .mchip{font-size:13px}.dchip.sel.k-gym,.dchip.sel.k-easy,.dchip.sel.k-hard,.dchip.sel.k-long{background:var(--c);color:#fff}.set-row .stepper{display:flex;width:100%}.set-row .stepper .field{flex:1 1 0;width:auto;padding:0 2px;gap:2px}.set-row .stepper input{width:2.4em;flex:0 1 auto}.set-row .stepper .unit,.set-row .stepper .suffix{flex-shrink:0}.rest-row .stepper{display:flex;flex:1 1 0}.rest-row .stepper .field{flex:1 1 0;width:auto}.stepper.tsel .field{gap:1px}.stepper.tsel input{font-variant-numeric:tabular-nums}.stepper.tsel input.tm{width:2.2em;text-align:right}.stepper.tsel input.ts{width:1.7em;text-align:left}.stepper.tsel .tcolon{font-weight:600;font-size:13px;color:var(--text)}.pair .stepper.tsel,.prow .stepper.tsel{min-width:150px}.th-easy{--blue: #047857;--blue-dark: #065f46;--blue-tint: #d1fae5}.th-hard{--blue: #be185d;--blue-dark: #9d174d;--blue-tint: #fce7f3}.th-long{--blue: #0e7490;--blue-dark: #155e75;--blue-tint: #cffafe}.th-run{--blue: #475569;--blue-dark: #334155;--blue-tint: #e2e8f0}.th-race{--blue: #a16207;--blue-dark: #854d0e;--blue-tint: #fef9c3}.th .shape,.th .qs-t b{color:var(--blue)}.th .eff.Moderate{background:#eab308;color:#1a2033}.th .effort button.on.Moderate{background:#eab308;border-color:#eab308;color:#1a2033}.rcat-chip{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--c);border-radius:12px;padding:10px 12px;margin-bottom:12px}.rcat-chip .type-ic{width:38px;height:38px}.rcat-chip .rc-tx{flex:1;min-width:0}.rcat-chip .t{font-weight:600;font-size:15px}.rcat-chip .s{font-size:12px;color:var(--muted)}.le-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.le-date{width:auto;max-width:60%}.le-seg{width:auto;min-width:120px}.le-rep{padding:10px 0;border-top:1px solid var(--border)}.le-rep:first-of-type{border-top:none}.le-rep-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}.le-x{width:32px;height:32px;margin-left:auto;font-size:14px}:root{--navy-solid: #1d3e8c}.rv-tl{display:flex;height:24px;border-radius:7px;overflow:hidden;margin-top:10px;font-size:11px;font-weight:600;color:#fff}.rv-tl div{display:flex;align-items:center;justify-content:center;min-width:3px;white-space:nowrap;overflow:hidden}.rv-tll{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:4px}.rv-wg{display:grid;grid-template-columns:28px repeat(7,minmax(0,1fr));gap:3px;align-items:center;text-align:center;margin-top:6px}.rv-wg .hd{font-size:11px;color:var(--muted);font-weight:600}.rv-cell{height:30px;border-radius:6px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;gap:1px}.rv-cell .bdg{width:20px;height:20px}.rv-mix{display:flex;gap:6px 12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:10px}.rv-mix i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c);margin-right:5px;vertical-align:-1px}.rv-chart{display:flex;align-items:flex-end;gap:5px;height:110px;margin-top:10px;padding:0 2px;border-bottom:1px solid var(--border)}.rv-col{flex:1;height:100%;display:flex;flex-direction:column-reverse;gap:1px}.rv-col div{background:var(--c);border-radius:2px;min-height:1px}.rv-col div.est{opacity:.45;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.45) 0 3px,transparent 3px 6px)}.rv-xl{display:flex;gap:5px;padding:0 2px;margin-top:4px}.rv-xl span{flex:1;text-align:center;font-size:10px;color:var(--muted)}.rv-note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.4}.rv-pr{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border)}.rv-pr:first-of-type{border-top:none}.rv-pr .bar{width:4px;align-self:stretch;border-radius:2px;background:var(--c);flex-shrink:0}.rv-pr .n{flex:1;min-width:0;line-height:1.3}.rv-pr .n b{display:block;font-weight:600}.rv-pr .n span{font-size:12px;color:var(--muted)}.rv-pr .arrow{font-size:12px;text-align:right;max-width:45%;line-height:1.3}.rv-pr .arrow span{color:var(--muted)}.rv-same{font-size:12px;color:var(--muted);padding-top:9px;border-top:1px solid var(--border);line-height:1.4}.rv-wr{display:flex;align-items:center;gap:8px;width:100%;padding:9px 2px;border:none;border-top:1px solid var(--border);background:none;text-align:left;color:var(--text);font-size:13px}.rv-wr .wk{width:38px;font-weight:700;color:var(--muted);font-size:12px;flex-shrink:0}.rv-wr .dt{width:48px;flex-shrink:0}.rv-wr .sqs{flex:1;display:flex;gap:3px;flex-wrap:wrap;min-width:0}.rv-sq{width:14px;height:14px;border-radius:4px;background:var(--c)}.rv-sq.dim{opacity:.4}.rv-wr .km{font-size:12px;color:var(--muted);min-width:40px;text-align:right}.week-tag.race{background:#fef9c3;color:#854d0e}.rv-wd{padding:2px 0 10px 46px}.rv-wdi{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px}.rv-wdi .bar{width:4px;height:18px;border-radius:2px;background:var(--c)}.rv-wdi .d{width:58px;color:var(--muted);font-size:12px}.rv-wdi .nm{flex:1;min-width:0}.rv-wdi .km{font-size:12px;color:var(--muted)}.rv-tlw{position:relative}.rv-now{position:absolute;top:-3px;width:3px;height:30px;margin-left:-1.5px;border-radius:2px;background:var(--text);box-shadow:0 0 0 2px var(--surface)}.rv-tll .now{font-weight:700;color:var(--text)}.rv-col.now{outline:2px solid var(--text);outline-offset:2px;border-radius:3px}.rv-xl span.now{font-weight:700;color:var(--text)}.rv-sq.plan{background:var(--surface);border:2px solid var(--c);box-sizing:border-box}.rv-sq.miss{background:var(--surface);border:2px dashed var(--c-miss);box-sizing:border-box}.rv-wr.now{background:var(--surface-2);border-radius:8px}.week-tag.now{background:var(--navy-solid);color:#fff}.rv-wdl{padding:0 0 8px}.hb-sec{border-top:1px solid var(--border);padding:12px 0 6px}.hb-sec:first-of-type{border-top:none}.hb-sec.th-hard{--cd: #be185d;--ct: #fce7f3}.hb-sec.th-long{--cd: #0e7490;--ct: #cffafe}.hb-sec.th-gymc{--cd: #1d4ed8;--ct: #dbeafe}.hb-sec.th-easy{--cd: #047857;--ct: #d1fae5}.hb-sh{display:flex;align-items:center;gap:10px}.hb-sh .type-ic{width:30px;height:30px;border-radius:8px}.hb-sh .type-ic svg{width:17px;height:17px}.hb-sh b{font-size:15px;color:var(--cd)}.hb-dys{margin-left:auto;font-size:12px;color:var(--muted);text-align:right}.hb-sub{font-size:12px;font-weight:700;color:var(--muted);margin:10px 0 0 40px}.hb-cyc{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:6px 8px;margin:10px 0 2px;padding:10px 6px 8px;background:var(--ct);border-radius:10px}.hb-cyc .node{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:84px;text-align:center}.hb-cyc .node .hb-l{width:34px;height:34px;font-size:15px;background:var(--surface)}.hb-cyc .nm{font-size:12px;font-weight:600;color:var(--text);line-height:1.25}.hb-cyc .ar{color:var(--cd);font-size:17px;line-height:34px;font-weight:700}.hb-cycs{font-size:12px;color:var(--muted);text-align:center;margin:4px 0 2px}.hb-cyc.cmini{justify-content:flex-start;align-items:center;padding:6px 8px;gap:4px 6px}.hb-cyc.cmini .hb-l{background:var(--surface)}.hb-cyc.cmini .ar{line-height:22px;font-size:14px}.hb-cyc.cmini .nx{font-size:12px;color:var(--muted);margin-left:auto}.hb-cyc.cmini .nx b{color:var(--cd)}.hb-order{font-size:12px;color:var(--muted);margin:8px 0 2px 40px}.hb-order span{display:inline-block;background:var(--ct);color:var(--cd);border-radius:4px;padding:0 5px;font-weight:700;margin-right:3px}.hb-it{display:flex;gap:10px;margin-top:8px;padding:9px 10px;border:1px solid var(--border);border-radius:10px}.hb-l{width:22px;height:22px;border-radius:6px;background:var(--ct);color:var(--cd);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hb-b{flex:1;min-width:0;line-height:1.35}.hb-n{font-weight:600;font-size:14px}.hb-n small{font-weight:400;color:var(--muted);font-size:12px;margin-left:6px}.hb-pg{font-size:13px;margin-top:3px}.hb-pg .a{color:var(--muted)}.hb-how{display:block;font-size:12px;color:var(--cd);margin-top:2px}.hb-none{font-size:12px;color:var(--muted);margin-top:3px}.hb-ex{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:12px;margin-top:4px}.hb-ex span:nth-child(2n){color:var(--muted);text-align:right}.hb-ex b{color:var(--text)}.hb-note{font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:10px;margin-top:8px;line-height:1.4}.ss-row{display:flex;align-items:center;gap:8px;margin-top:8px}.ss-plus{display:none}.ss-row .text-in{flex:1;min-width:0}.ss-x{width:34px;height:34px;flex-shrink:0;border:none;background:none;color:var(--red);font-size:15px;border-radius:8px}.ss-3 .stepper.tsel input.tm,.ss-3 .stepper.tsel input.ts{width:1.5em}.ss-3 .stepper .field{padding:0 1px}.ex-pills{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.ex-pill{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:9px 14px;font-size:14px;color:var(--text)}.ex-pill .xp-ck{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.ex-pill.sk .xp-ck{background:var(--c-miss)}.ex-pill .xp-nm{font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ex-pill .xp-mt{font-size:12px;color:var(--muted)}.ex-pill .xp-ed{color:var(--blue);display:flex}.ex-pill .xp-ed svg{width:16px;height:16px}.ex-skip{margin-left:auto;flex-shrink:0;border:1px solid var(--border);background:var(--surface);color:var(--blue);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;font-family:inherit}.grp-card2{background:#f7f9fc}.bx.bx-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px;margin-top:0}.loop{position:relative;display:flex;flex-direction:column;margin-top:10px}.loop.on{padding-left:22px}.loop-arc{position:absolute;left:3px;top:30px;bottom:30px;width:11px;border:2px solid var(--blue);border-right:none;border-radius:12px 0 0 12px;pointer-events:none}.loop-arc:after{content:"";position:absolute;left:100%;top:-7px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:8px solid var(--blue)}.conn-gap{display:flex;justify-content:center;padding:6px 0}.erow-w{flex-wrap:wrap;row-gap:6px}.same-in{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.same-in>span{white-space:normal;max-width:74px;text-align:right;line-height:1.15;font-size:11px}.bx-card .erow-w{margin-left:-34px}.mode-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.mode-row .lbl{font-size:12px;font-weight:600;color:var(--muted)}.mode-sw{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface);flex-shrink:0}.mode-sw button{border:none;background:none;padding:6px 16px;font-size:13px;font-weight:600;color:var(--muted);font-family:inherit}.mode-sw button.on{background:var(--blue);color:#fff}#restover.ready{background:var(--blue)}#restover.ready .ro-time{font-size:110px}.ex-sum{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:14px;margin:2px 0}.ex-sum .pen{width:32px;height:32px;border:none;background:none;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0}.ex-sum .pen:active{background:var(--surface-2)}.ex-sum .pen svg{width:18px;height:18px}.prefill{font-size:13px;color:var(--muted);margin-top:6px}.prefill:empty{display:none}#root{min-height:100vh}.signin{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.signin .card{width:100%;max-width:360px;text-align:center;padding:28px 20px}.signin h1{margin:0;font-size:40px;font-weight:600;color:var(--blue);letter-spacing:.5px}.signin .tagline{color:var(--muted);margin:6px 0 22px}.signin .google-slot{display:flex;justify-content:center;min-height:44px}.signin .err{color:var(--red);font-size:14px;margin-top:12px;min-height:1.2em}.signin form{display:flex;flex-direction:column;gap:8px;margin-top:16px}.acct-btn{position:relative;width:38px;height:38px;border-radius:50%;border:none;background:var(--blue);color:#fff;font-family:Oswald,sans-serif;font-size:17px;font-weight:600;flex-shrink:0;margin-left:2px}.sync-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--bg);background:var(--green)}.sync-dot[data-status=pending],.sync-dot[data-status=syncing]{background:var(--gold)}.sync-dot[data-status=offline]{background:var(--muted)}.sync-dot[data-status=error]{background:var(--red)}.acct-who{font-weight:600;margin-top:2px;word-break:break-all}.acct-sync{display:flex;align-items:center;gap:8px;margin:14px 0 4px;font-size:14px;color:var(--muted)}.acct-sync .sync-dot{position:static;border:none;flex-shrink:0}.update-bar{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));max-width:496px;margin:0 auto;z-index:30;display:flex;align-items:center;gap:10px;background:var(--text);color:#fff;border-radius:12px;padding:10px 12px;font-size:14px}.update-bar span{flex:1}.update-bar button{border:none;border-radius:10px;background:#fff;color:var(--blue);font-weight:700;padding:8px 14px}button.backdrop{border:none;padding:0;cursor:default}button.cell{border:none;font:inherit;color:inherit;text-align:inherit;width:100%}.cell .dn{display:block}.cal-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.signin .google-slot:empty{display:none}
