:root{--bg:#0e0c11;--card:#18151d;--card2:#221e29;--line:#2f2a37;--text:#f4f0f7;--muted:#9b93a7;--accent:#ff4f86;--accent2:#4fc3ff;--ok:#3ddc84;--warn:#ffb648;--bad:#ff6464;--radius:18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#f5f3f7;--card:#fff;--card2:#f0edf3;--line:#e1dce7;--text:#1b1720;--muted:#6e6678;--accent:#df2f6b;--accent2:#1786c9;--ok:#1fb866;--warn:#d98a10;--bad:#d93a3a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{padding:calc(env(safe-area-inset-top) + 14px) 16px calc(env(safe-area-inset-bottom) + 170px);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif}main{max-width:640px;margin:0 auto}h1{letter-spacing:-.02em;margin:0;font-size:28px;line-height:1.1}h2{letter-spacing:-.01em;margin:0;font-size:20px}h3{margin:0;font-size:17px}p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.spacer{flex:1}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.stack{flex-direction:column;gap:12px;display:flex}.mt{margin-top:16px}.mt-s{margin-top:8px}.center{text-align:center}button{font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:0;padding:0}.primary,.secondary,.ghost,.danger{white-space:nowrap;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:650}.primary{background:var(--accent);color:#fff}.secondary{background:var(--card2);border:1px solid var(--line)}.ghost{color:var(--accent)}.danger{color:var(--bad)}.danger.solid{background:var(--bad);color:#fff}.sm{border-radius:10px;padding:8px 12px;font-size:14px}.full{width:100%}.iconbtn{background:var(--card2);border:1px solid var(--line);border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:16px;display:inline-grid}.iconbtn.danger{color:var(--bad)}button:active{transform:scale(.97)}.topbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.topbar h1{flex:1}.topbar h1.center{font-size:18px}.hero{margin:6px 0 18px}.hero h1{font-size:34px}.hero h1 span{color:var(--accent)}.sectionhead{align-items:center;gap:8px;margin:22px 0 10px;display:flex}.sectionhead h2{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-align:left;width:100%;margin-bottom:12px;padding:16px;display:block}.empty{text-align:center;color:var(--muted);padding:36px 20px}.empty h3{color:var(--text);margin-bottom:6px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.stat b{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:24px;display:block}.stat span{color:var(--muted);font-size:12px}.resume{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--card));align-items:center;gap:12px;display:flex}.resume .dot{background:var(--accent);border-radius:50%;flex:none;width:10px;height:10px;animation:1.4s infinite pulse}@keyframes pulse{50%{opacity:.3}}.tpl h3{font-size:18px}.tplsum{flex-direction:column;gap:6px;margin:10px 0 14px;padding:0;font-size:14px;list-style:none;display:flex}.tplsum li{gap:8px;display:flex}.tplsum b{color:var(--accent);flex:none;width:16px}.tplsum .rest{color:var(--muted);white-space:nowrap}.tpl .row button.primary{flex:1}.tag{background:color-mix(in srgb, var(--accent) 18%, transparent);min-width:30px;height:26px;color:var(--accent);border-radius:8px;flex:none;place-items:center;padding:0 6px;font-size:13px;font-weight:800;display:inline-grid}.tag.big{min-width:34px;height:34px;font-size:16px}.badge{letter-spacing:.04em;background:var(--card2);color:var(--muted);border:1px solid var(--line);vertical-align:1px;border-radius:5px;margin-left:4px;padding:2px 5px;font-size:10px;font-weight:800;display:inline-block}.progressbar{background:var(--card2);border-radius:3px;height:6px;margin:-6px 0 16px;overflow:hidden}.progressbar div{background:var(--ok);height:100%;transition:width .3s}.elapsed{font-variant-numeric:tabular-nums;color:var(--muted);font-size:20px;font-weight:700}.blockhead{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:center;gap:8px;margin-bottom:4px;font-size:13px;font-weight:700;display:flex}.blockhead .spacer+span{text-transform:none;letter-spacing:0}.ex+.ex{border-top:1px dashed var(--line);margin-top:10px;padding-top:12px}.exhead{align-items:flex-start;gap:10px;padding:6px 0 4px;display:flex}.exname{flex:1;font-size:17px;font-weight:700}.exname .sub{color:var(--muted);font-size:13px;font-weight:500}.note{color:var(--muted);margin:0 0 4px 40px;font-size:13px;font-style:italic}.prev{color:var(--muted);margin:0 0 6px 40px;font-size:12px}.prev b{color:var(--text);font-weight:600}.setrow{border-top:1px solid var(--line);grid-template-columns:22px 1fr 50px;align-items:center;gap:8px;padding:8px 0;display:grid}.setno{color:var(--muted);text-align:center;font-size:14px;font-weight:700}.sides{flex-direction:column;gap:6px;min-width:0;display:flex}.side{align-items:center;gap:6px;min-width:0;display:flex}.sidelbl{background:color-mix(in srgb, var(--accent) 20%, transparent);width:24px;height:24px;color:var(--accent);border-radius:7px;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.sidelbl.R{background:color-mix(in srgb, var(--accent2) 20%, transparent);color:var(--accent2)}.fld{background:var(--card2);border:1px solid var(--line);border-radius:10px;flex:1;align-items:center;min-width:0;padding:0 8px;display:flex}.fld:focus-within{border-color:var(--accent)}.fld input{width:100%;min-width:0;color:var(--text);text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:1;padding:10px 0;font-family:inherit;font-size:17px;font-weight:650}.fld input::placeholder{color:var(--muted);opacity:.55;font-weight:500}.fld span{color:var(--muted);margin-left:4px;font-size:12px}.sw{font-variant-numeric:tabular-nums;width:52px;font-size:13px;font-weight:700}.sw.running{background:var(--accent);color:#fff;border-color:var(--accent)}.check{border:2px solid var(--line);width:50px;height:50px;color:var(--muted);border-radius:14px;justify-self:end;font-size:22px;font-weight:800}.check.on{background:var(--ok);border-color:var(--ok);color:#05210f}.setrow.done .fld{opacity:.65}.setctl{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.setctl button{color:var(--muted);padding:6px 10px;font-size:13px}textarea,.field input,.field select,select,.notes,dialog input,dialog select{background:var(--card2);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:12px;outline:none;padding:12px;font-size:16px}textarea:focus,.field input:focus,select:focus,.notes:focus,dialog input:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:80px}.field{margin-bottom:12px;display:block}.field>span{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.edit .row{margin-bottom:8px}.edit .grow{background:var(--card2);min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;outline:none;flex:1;padding:10px 12px;font-size:16px;font-weight:600}.edit .grow:focus{border-color:var(--accent)}.mini{color:var(--muted);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}input.num{background:var(--card2);width:56px;color:var(--text);border:1px solid var(--line);font:inherit;text-align:center;border-radius:10px;outline:none;padding:9px 8px;font-size:16px}input.num.w{width:76px}input.num:focus{border-color:var(--accent)}.seg{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--muted);border-radius:7px;padding:6px 12px;font-size:14px;font-weight:650}.seg button.on{background:var(--accent);color:#fff}.chk{background:var(--card2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:6px 10px 6px 6px;font-size:14px;font-weight:600;display:inline-flex}.chk input{width:20px;height:20px;accent-color:var(--accent);margin:0}.edit .notes{margin-bottom:8px;padding:9px 12px;font-size:15px}.blockhead.editing{text-transform:none;letter-spacing:0;color:var(--text);margin-bottom:10px;font-size:14px}.blockhead.editing label{color:var(--muted);align-items:center;gap:6px;font-weight:600;display:flex}.month{margin:20px 0 8px}.sess{align-items:center;gap:12px;display:flex}.sess .date{text-align:center;flex:none;width:46px}.sess .date b{font-size:22px;line-height:1;display:block}.sess .date span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.sess .info{flex:1;min-width:0}.sess .info h3{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sess .chev{color:var(--muted)}.detail-ex{border-top:1px solid var(--line);padding:10px 0}.detail-ex:first-child{border-top:0}.detail-ex ol{font-variant-numeric:tabular-nums;margin:6px 0 0;padding-left:22px;font-size:14px}.detail-ex li{padding:2px 0}.detail-ex li.skipped{color:var(--muted);text-decoration:line-through}.L{color:var(--accent);font-weight:700}.R{color:var(--accent2);font-weight:700}.chart{width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-family:inherit;font-size:10px}.chart .grid{stroke:var(--line);stroke-width:1px}.legend{gap:14px;margin-top:6px;font-size:13px;font-weight:600;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.chips{scrollbar-width:none;gap:6px;margin:10px 0;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips button{background:var(--card2);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:650}.chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}.balance{align-items:center;gap:12px;display:flex}.balance .pct{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.balbar{background:var(--card2);border-radius:5px;height:10px;margin-top:10px;display:flex;overflow:hidden}.balbar .l{background:var(--accent)}.balbar .r{background:var(--accent2)}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}th{text-align:left;color:var(--muted);padding:6px 4px;font-size:12px;font-weight:700}td{border-top:1px solid var(--line);padding:8px 4px}th:not(:first-child),td:not(:first-child){text-align:right}.good{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.setting{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.setting:first-child{border-top:0;padding-top:0}.setting .lbl{flex:1}.setting .lbl small{color:var(--muted);font-size:13px;display:block}.setting select{width:auto;padding:8px 10px}.switch{background:var(--card2);border:1px solid var(--line);border-radius:15px;flex:none;width:50px;height:30px;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:22px;height:22px;transition:all .2s;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent);border-color:var(--accent)}.switch.on:after{background:#fff;left:23px}#tabs{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}#tabs a{max-width:160px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;font-size:11px;font-weight:650;text-decoration:none;display:flex}#tabs svg{width:25px;height:25px}#tabs a.on{color:var(--accent)}#restbar{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 70px);z-index:19;background:var(--card2);border:1px solid var(--line);border-radius:18px;align-items:center;gap:10px;max-width:616px;margin:0 auto;padding:10px 12px 12px;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 32px #00000059}#restbar[hidden]{display:none}#restbar.over{border-color:var(--ok)}#restbar.over #restTime{color:var(--ok)}.restinfo{flex:1}.restbtns{gap:6px;display:flex}#restTime{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1}#restFill{background:var(--accent);height:4px;transition:width .25s linear;position:absolute;bottom:0;left:0}dialog{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:22px;width:min(560px,100vw - 24px);max-height:calc(100dvh - 40px);padding:20px}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c}dialog h2{margin-bottom:8px}dialog p{margin-bottom:12px}dialog .row{margin-top:14px}dialog code,.hint code{background:var(--card2);border-radius:5px;padding:1px 5px;font-size:13px}#toast{left:50%;top:calc(env(safe-area-inset-top) + 12px);z-index:50;background:var(--text);color:var(--bg);border-radius:12px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}
