:root{--bg:#0d0d0f;--surface:#16161a;--surface-2:#1e1e24;--border:#26262e;--text:#eceae4;--muted:#8a8894;--accent:#c2853a;--accent-soft:#c2853a24;--green:#6fa97a;--danger:#c75c5c;--radius:14px;--nav-h:60px;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;font-size:16px;line-height:1.45}#root{max-width:560px;min-height:100dvh;margin:0 auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,select{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;outline:none;width:100%;padding:10px 12px}input:focus{border-color:var(--accent)}input::placeholder{color:var(--muted)}a{color:inherit;text-decoration:none}.page{padding:16px 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}.page-title{letter-spacing:-.02em;justify-content:space-between;align-items:baseline;margin:6px 0 16px;font-size:26px;font-weight:700;display:flex}.wordmark{font-family:var(--mono);color:var(--accent);letter-spacing:.02em;font-size:13px;font-weight:500}.bottom-nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);z-index:40;background:#0d0d0feb;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{flex:1;max-width:560px;margin:0 auto;display:flex}.bottom-nav a{color:var(--muted);letter-spacing:.02em;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;display:flex}.bottom-nav a.active{color:var(--accent)}.bottom-nav svg{width:22px;height:22px}.chip-row{scrollbar-width:none;gap:8px;padding:2px 0 8px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{background:var(--surface);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:6px 13px;font-size:13px;font-weight:500;transition:all .15s}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ex-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ex-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.ex-card .thumb{aspect-ratio:4/3;background:#fff;position:relative}.ex-card .thumb img{object-fit:cover;width:100%;height:100%;display:block}.ex-card .body{padding:10px 12px 12px}.ex-card .name{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.6em;font-size:13.5px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.ex-card .meta{color:var(--muted);text-transform:capitalize;margin-top:5px;font-size:11px}.ex-card .meta b{color:var(--accent);font-weight:600}.xfade{background:#fff;width:100%;height:100%;position:relative;overflow:hidden}.xfade img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.xfade img.frame-b{opacity:0;animation:2.6s ease-in-out infinite xfade}@keyframes xfade{0%,38%{opacity:0}50%,88%{opacity:1}to{opacity:0}}.detail-hero{border-radius:var(--radius);aspect-ratio:3/2;border:1px solid var(--border);overflow:hidden}.badge-row{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.badge{background:var(--surface-2);color:var(--muted);text-transform:capitalize;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.badge.accent{background:var(--accent-soft);color:var(--accent)}.section-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:22px 0 10px;font-size:13px;font-weight:700}.instructions{color:#cfcdc6;flex-direction:column;gap:10px;margin:0;padding-left:22px;font-size:14.5px;display:flex}.instructions li::marker{color:var(--accent);font-weight:700}.btn{background:var(--accent);color:#14100a;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:15px;font-weight:700;transition:opacity .15s;display:flex}.btn:active{opacity:.85}.btn.ghost{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn.small{border-radius:10px;width:auto;padding:8px 14px;font-size:13px}.btn.danger{border:1px solid var(--danger);color:var(--danger);background:0 0}.row-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex}.row-card .grow{flex:1;min-width:0}.row-card .title{font-size:15px;font-weight:600}.row-card .sub{color:var(--muted);margin-top:2px;font-size:12.5px}.thumb-sm{background:#fff;border-radius:10px;flex-shrink:0;width:52px;height:52px;overflow:hidden}.thumb-sm img{object-fit:cover;width:100%;height:100%;display:block}.wx-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.wx-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:flex}.wx-head .name{flex:1;font-size:14.5px;font-weight:600}.set-row{grid-template-columns:34px 1fr 1fr 1fr 44px;align-items:center;gap:8px;padding:8px 14px;display:grid}.set-row.header{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:12px;font-size:11px;font-weight:700}.set-row .idx{font-family:var(--mono);color:var(--muted);font-size:13px}.set-row input{text-align:center;font-family:var(--mono);border-radius:8px;padding:8px 6px;font-size:15px}.set-row.done input{color:var(--green);background:#6fa97a1f;border-color:#0000}.set-row .prev{font-family:var(--mono);color:var(--muted);text-align:center;cursor:pointer;white-space:nowrap;font-size:12px;overflow:hidden}.check{border:1.5px solid var(--border);width:34px;height:34px;color:var(--muted);border-radius:9px;justify-content:center;align-items:center;margin-left:auto;display:flex}.check.on{background:var(--green);border-color:var(--green);color:#0d0d0f}.wx-foot{padding:10px 14px}.rest-bar{left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:50;justify-content:center;padding:0 16px 10px;display:flex;position:fixed}.rest-bar-inner{background:var(--surface-2);border:1px solid var(--accent);border-radius:14px;align-items:center;gap:14px;width:100%;max-width:528px;padding:10px 16px;display:flex;box-shadow:0 8px 28px #00000080}.rest-time{font-family:var(--mono);color:var(--accent);flex:1;font-size:24px;font-weight:700}.stat-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.stat .v{font-family:var(--mono);color:var(--accent);font-size:20px;font-weight:700}.stat .l{color:var(--muted);margin-top:2px;font-size:11px}.heatmap{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;padding-bottom:4px;display:grid;overflow-x:auto}.heatmap .cell{background:var(--surface-2);border-radius:3px;flex-shrink:0;width:13px;height:13px}.heatmap .cell.on{background:var(--accent)}.sheet-backdrop{z-index:60;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border:1px solid var(--border);width:100%;max-width:560px;max-height:82dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;display:flex;overflow:hidden}.sheet h3{margin:0 0 12px;font-size:17px}.sheet .scroll{flex:1;margin:0 -4px;padding:0 4px;overflow-y:auto}.empty{text-align:center;color:var(--muted);padding:48px 24px;font-size:14.5px}.empty .big{margin-bottom:10px;font-size:34px}.stepper{align-items:center;gap:4px;display:flex}.stepper button{background:var(--surface-2);border:1px solid var(--border);width:30px;height:30px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.stepper .val{font-family:var(--mono);text-align:center;min-width:34px;font-size:14px}.sparkline{width:100%;height:120px;display:block}
