:root{--bg: #111214;--surface: #1b1d21;--surface-2: #25282d;--line: #30343a;--text: #eef0f2;--muted: #9aa1aa;--accent: #d4ff3a;--accent-ink: #151a00;--danger: #ff6b5e;--radius: 14px;--tabbar-h: 62px;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}html{height:100%}body{min-height:100vh;min-height:100lvh}body.no-scroll{overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{opacity:.45;cursor:default}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.05rem}h3{font-size:.95rem;margin-bottom:8px}img{max-width:100%}.splash{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h1{font-size:1.5rem;letter-spacing:-.02em}.content{max-width:640px;margin:0 auto;padding:4px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 80px)}.tabbar{position:fixed;inset:auto 0 0 0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line)}.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:.72rem}.tabbar button.active{color:var(--accent)}.stack{display:flex;flex-direction:column;gap:16px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:0}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block;width:100%}.plain{text-align:left}.clamp{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 0}.danger-text{color:var(--danger)!important}p{margin:0;line-height:1.45}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-weight:600}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.small{min-height:36px;padding:0 12px;font-size:.88rem}.btn.ghost{background:transparent}.btn.dashed{background:transparent;border-style:dashed;color:var(--muted)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#1a0402}.btn.danger-ghost{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.btn.block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.btn-row:first-child{margin-top:0}.link{color:var(--accent);font-weight:600;font-size:.92rem}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--muted);font-size:1.1rem}.icon-btn:hover{background:var(--surface-2)}.hero{display:flex;flex-direction:column;gap:4px}.hero-num{font-size:2.6rem;font-weight:800;letter-spacing:-.03em}.hero-num span{font-size:1rem;font-weight:500;color:var(--muted);letter-spacing:0}.routine-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.routine-items{margin:10px 0 0;padding-left:20px;font-size:.88rem;line-height:1.6}.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.chips.wrap{flex-wrap:wrap;overflow:visible}.chip{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;background:var(--surface-2);font-size:.82rem;white-space:nowrap}.chip.accent{background:var(--accent);color:var(--accent-ink);font-weight:600}.chip.outline{background:transparent;border:1px solid var(--line);color:var(--muted)}.btn-chip{min-height:38px;padding:0 14px;border:1px solid var(--line);background:transparent;color:var(--muted)}.btn-chip.small{min-height:32px;padding:0 11px}.btn-chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px}.segmented button{min-height:38px;border-radius:9px;color:var(--muted);font-weight:600;font-size:.9rem}.segmented.small button{min-height:32px;padding:0 12px}.segmented button.on{background:var(--surface-2);color:var(--text)}.badge{margin-left:6px;padding:1px 6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-size:.7rem;font-weight:600}.filters{position:sticky;top:calc(env(safe-area-inset-top,0px) + 54px);z-index:4;background:var(--bg);padding:4px 0 8px;display:flex;flex-direction:column;gap:8px}.sheet .filters{top:0;background:var(--surface)}input[type=search],.title-input,select,.routine-controls input{width:100%;min-height:44px;padding:0 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);outline:none}input:focus,select:focus{border-color:var(--accent)}.filter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.filter-row select{min-height:38px;font-size:.85rem;padding:0 8px;color:var(--muted)}.filter-row select.active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.rows{list-style:none;margin:0;padding:0}.rows>li{display:flex;align-items:center;border-bottom:1px solid var(--line)}.row{flex:1;display:flex;align-items:center;gap:12px;padding:8px 0;text-align:left;min-width:0}.row.selected .row-title{color:var(--accent)}.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.row-title{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-sub{color:var(--muted);font-size:.8rem}.thumb{flex:none;border-radius:10px;background:#fff;object-fit:cover}.check{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);color:var(--muted)}.check.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.info-btn{flex:none;width:40px;height:40px;margin-left:4px;border-radius:50%;color:var(--muted);font-weight:700;font-style:italic;font-family:Georgia,serif;font-size:1.05rem}.sentinel{height:1px}.pr-value{flex:none;color:var(--accent);font-size:.88rem}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0009;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{width:100%;max-width:640px;max-height:calc(100vh - env(safe-area-inset-top,0px) - 24px);display:flex;flex-direction:column;background:var(--surface);border-radius:20px 20px 0 0;border:1px solid var(--line);border-bottom:0;animation:slide .2s ease-out}.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.sheet-head .link{justify-self:start}.sheet-actions{justify-self:end}.sheet-body{overflow-y:auto;padding:16px 16px calc(env(safe-area-inset-bottom,0px) + 24px);overscroll-behavior:contain}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translateY(40px);opacity:.5}}.detail{display:flex;flex-direction:column;gap:12px}.gif{align-self:center;width:min(260px,70vw);height:auto;aspect-ratio:1;border-radius:16px;background:#fff}.detail-title{font-size:1.35rem;letter-spacing:-.01em}.detail h3{margin-top:8px;margin-bottom:0}.steps{margin:0;padding-left:20px;line-height:1.5;display:flex;flex-direction:column;gap:6px}.stat-line{color:var(--muted)}.stat-line strong{color:var(--text)}.history{list-style:none;margin:0;padding:0;font-size:.88rem}.history li{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}.attribution{margin-top:8px;color:var(--muted);font-size:.72rem;text-align:center}.chart{margin:0}.chart figcaption{font-size:.85rem;font-weight:600;margin-bottom:6px}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1}.chart .tick{fill:var(--muted);font-size:10px}.chart .line{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round}.chart .dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}.chart .bar{fill:var(--accent)}.chart .bar.empty{fill:var(--line)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-grid>div{display:flex;flex-direction:column;gap:2px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.stat-num{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}.meter-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.86rem}.meter-list li{display:grid;grid-template-columns:7.5rem 1fr 2rem;align-items:center;gap:10px}.meter{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.meter span{display:block;height:100%;background:var(--accent);border-radius:4px}.num-label{text-align:right;font-variant-numeric:tabular-nums}.pr-card{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.pr-card ul{margin:0;padding-left:18px;line-height:1.7}.workout-head .title-input{font-size:1.15rem;font-weight:700;background:transparent;border-color:transparent;padding:0;min-height:36px}.workout-head .title-input:focus{border-color:transparent;border-bottom:1px solid var(--accent);border-radius:0}.ex-card{display:flex;flex-direction:column;gap:10px;position:relative}.ex-card-head{display:flex;align-items:flex-start;gap:8px}.ex-card-title{flex:1;display:flex;gap:10px;text-align:left;align-items:center}.menu{position:absolute;right:12px;top:56px;z-index:3;display:flex;flex-direction:column;min-width:150px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0006}.menu button{text-align:left;padding:12px 14px}.menu button+button{border-top:1px solid var(--line)}.set-grid{display:grid;gap:6px 8px;align-items:center;grid-template-columns:2rem 1fr 3rem}.set-grid.weight{grid-template-columns:2rem 1fr 1fr 3rem}.set-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center}.set-row{display:contents}.set-num{text-align:center;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.num{width:100%;min-height:44px;text-align:center;font-size:1.05rem;font-weight:600;font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;outline:none}.num::placeholder{color:color-mix(in srgb,var(--muted) 60%,transparent);font-weight:500}.set-row.done .num{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.done-btn{height:44px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-size:1.1rem;font-weight:700}.done-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.routine-edit-row{flex-direction:column;align-items:stretch!important;padding-bottom:8px}.routine-controls{display:grid;grid-template-columns:1fr 1.4fr auto auto auto;gap:6px;align-items:end}.routine-controls label{display:flex;flex-direction:column;gap:2px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.routine-controls input{min-height:38px;text-transform:none}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px}.restbar{position:fixed;z-index:9;left:12px;right:12px;max-width:616px;margin:0 auto;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 10px);display:flex;align-items:center;gap:4px;overflow:hidden;padding:6px 6px 6px 16px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);box-shadow:0 8px 30px #00000080}.restbar.over{border-color:var(--accent)}.rest-progress{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--accent) 14%,transparent);transition:width .25s linear}.rest-label{position:relative;flex:1;font-weight:700;font-variant-numeric:tabular-nums}.restbar button{position:relative;min-width:48px;min-height:40px;border-radius:10px;font-weight:600;font-size:.88rem}.restbar button:last-child{background:var(--accent);color:var(--accent-ink);padding:0 12px}
