:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1f232c;--text: #f2f4f8;--muted: #8b93a3;--accent: #5b8cff;--good: #34d399;--track: #2a2f3a;--danger: #ef4444;--radius: 18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overscroll-behavior-y:contain}.app{display:flex;flex-direction:column;min-height:100%;max-width:560px;margin:0 auto}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 14px) 20px 12px}.brand{font-weight:700;font-size:18px;letter-spacing:.2px}.date{color:var(--muted);font-size:14px}.content{flex:1;padding:8px 16px 96px}.hero{text-align:center;padding:18px 0 24px}.hero-num{font-size:56px;font-weight:800;line-height:1}.hero-slash{color:var(--muted);font-size:28px;font-weight:600}.hero-sub{color:var(--muted);margin-top:8px;font-size:14px}.hero.complete .hero-num{color:var(--good)}.rest-hero .hero-num{font-size:40px;color:var(--accent)}.card{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:14px;border:1px solid transparent}.card.done{border-color:color-mix(in srgb,var(--good) 45%,transparent)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.card-head h2{font-size:17px;margin:0}.pill{font-size:12px;color:var(--muted);background:var(--surface-2);padding:4px 10px;border-radius:999px}.done-pill{color:var(--good);background:color-mix(in srgb,var(--good) 16%,transparent)}.rest-pill{color:var(--accent)}.rest-text{color:var(--muted);font-size:14px;margin:4px 0 0}.today-stat{background:none;border:none;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:8px}.today-stat:active{background:var(--surface-2)}.today-stat.done{color:var(--good)}.total-edit{width:96px;background:var(--surface-2);border:1px solid var(--track);border-radius:8px;color:var(--text);font-size:15px;font-weight:700;text-align:center;padding:4px 6px}.progress-bar{height:6px;background:var(--track);border-radius:999px;overflow:hidden;margin:4px 0 6px}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease}.progress-fill.done{background:var(--good)}.counter{display:flex;flex-direction:column;align-items:center}.bank-btn{width:100%;max-width:280px;margin-top:4px}.btn.primary.bank-btn:disabled{background:var(--surface-2);color:var(--muted);cursor:default}.all-time{text-align:center;color:var(--muted);font-size:12px;margin:10px 0 2px;opacity:.85}.dial-wrap{position:relative;width:216px;height:216px;margin:8px auto 12px;touch-action:none;user-select:none;-webkit-user-select:none}.dial{display:block;cursor:grab;touch-action:none}.dial:active{cursor:grabbing}.dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.dial-count{font-size:60px;font-weight:800;line-height:1}.dial-wrap.done .dial-count{color:var(--good)}.dial-target{color:var(--muted);font-size:16px;margin-top:4px}.dial-total{color:var(--muted);font-size:12px;margin-top:10px;opacity:.85}.dial-edit{pointer-events:auto}.dial-hint{text-align:center;color:var(--muted);font-size:12px;margin:6px 0 2px}.edit-input{background:var(--surface-2);border:1px solid var(--track);border-radius:12px;color:var(--text);font-size:30px;font-weight:800;text-align:center;padding:6px 8px;width:130px}.settings-intro{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 16px}.settings-card h2{font-size:17px;margin:0 0 12px}.field-row{display:flex;gap:12px;margin-bottom:12px}.num-field{flex:1}.num-label{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.num-control{display:flex;align-items:center;background:var(--surface-2);border-radius:12px;overflow:hidden}.num-btn{width:40px;flex-shrink:0;border:none;background:transparent;color:var(--text);font-size:22px;font-weight:700;padding:10px 0;cursor:pointer}.num-btn:active{background:var(--track)}.num-input{flex:1;width:100%;min-width:0;border:none;background:transparent;color:var(--text);text-align:center;font-size:18px;font-weight:700;padding:10px 0;-moz-appearance:textfield}.num-input::-webkit-outer-spin-button,.num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 4px;font-size:15px}.toggle-row input{width:22px;height:22px;accent-color:var(--accent)}.settings-preview{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--track);color:var(--muted);font-size:13px}.settings-preview strong{color:var(--text)}.settings-preview .dot{margin:0 8px;opacity:.5}.lock-tag{margin-left:8px;font-size:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);padding:2px 7px;border-radius:999px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--track);padding-bottom:env(safe-area-inset-bottom);max-width:560px;margin:0 auto}.tab{flex:1;background:none;border:none;color:var(--muted);font-size:12px;font-weight:600;padding:10px 0 12px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer}.tab.active{color:var(--text)}.tab-icon{font-size:20px}.streak-card{background:linear-gradient(135deg,var(--surface-2),var(--surface));border-radius:var(--radius);text-align:center;padding:20px;margin-bottom:16px}.streak-num{font-size:48px;font-weight:800;color:var(--accent);line-height:1}.streak-label{color:var(--muted);margin-top:4px}.seg{display:flex;background:var(--surface);border-radius:12px;padding:4px;margin-bottom:16px}.seg-btn{flex:1;background:none;border:none;color:var(--muted);padding:8px 0;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer}.seg-btn.active{background:var(--surface-2);color:var(--text)}.totals{background:var(--surface);border-radius:var(--radius);padding:18px;margin-bottom:20px}.grand{text-align:center;margin-bottom:14px}.grand-num{font-size:40px;font-weight:800;display:block}.grand-label{color:var(--muted);font-size:13px}.break-row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--track);font-size:15px}.section-title{font-size:15px;color:var(--muted);margin:0 0 10px}.day-list{display:flex;flex-direction:column;gap:8px}.day-row{background:var(--surface);border-radius:12px;padding:10px 14px}.day-row.done{border-left:3px solid var(--good)}.day-date{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.day-detail{color:var(--muted);font-size:13px;margin-top:2px}.tag{font-size:11px;background:var(--surface-2);color:var(--muted);padding:2px 7px;border-radius:999px}.tag.good{color:var(--good);background:color-mix(in srgb,var(--good) 16%,transparent)}.btn{border:none;border-radius:12px;padding:12px 14px;font-size:15px;font-weight:600;cursor:pointer;color:var(--text);background:var(--surface-2)}.btn.ghost{background:var(--surface-2)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:active{filter:brightness(.9)}.btn.small{padding:10px 12px;font-size:14px}.btn.danger{background:var(--danger);color:#fff;width:100%}.data-actions{display:flex;gap:10px;margin:14px 0 8px}.file-label{text-align:center;display:inline-flex;align-items:center;justify-content:center}.footnote{color:var(--muted);font-size:12px;line-height:1.5}
