:root{--bg: #0f1720;--card: #1a2530;--card-alt: #22303c;--text: #e8edf2;--text-dim: #8fa3b3;--water: #3d9de0;--breathe: #3d9de0;--exercise: #3d9de0;--accent: #3d9de0;--success: #3ecf8e;--danger: #e0625a;--border: #24313e;--border-strong: #2e4152;--radius: 18px;--radius-sm: 12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.app{max-width:480px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 16px 20px}header.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}header.topbar h1{font-size:20px;font-weight:600;margin:0}.icon-btn{background:var(--card);border:1px solid var(--border);border-radius:999px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:18px;text-decoration:none}.section{background:var(--card);border-radius:var(--radius);padding:18px;margin-bottom:16px;border:1px solid var(--border)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-header h2{font-size:15px;font-weight:600;margin:0;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.widgets-row{display:flex;gap:12px;margin-bottom:16px}.widget{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:14px 10px;min-width:0}.widget-wide{flex:2}.widget-narrow{flex:1;display:flex;align-items:center;justify-content:center}.tracker-row{display:flex;gap:10px}.tracker-row.two-up .ring-card{flex:1;min-width:0;padding:10px 4px}.widget-narrow .ring-card{background:none;padding:4px 0}.ring-card{flex:1;min-width:0;background:var(--card-alt);border-radius:var(--radius-sm);padding:14px 8px;text-align:center}.ring-wrap{position:relative;width:84px;height:84px;margin:0 auto 8px}.ring-wrap.small{width:60px;height:60px}.ring-wrap.large{width:72px;height:72px}.ring-wrap svg{transform:rotate(-90deg)}.ring-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2;text-align:center}.ring-pct{font-size:15px;font-weight:700}.ring-amount{font-size:10.5px;font-weight:500;color:var(--text-dim)}.ring-label{font-size:12px;color:var(--text-dim)}.quick-buttons{display:flex;gap:4px;margin-top:12px}.quick-buttons .qbtn{min-width:0;padding:8px 1px;font-size:11px;line-height:1.2;white-space:normal}.qbtn{flex:1;background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:10px 0;font-size:14px;font-weight:600}.qbtn:active{transform:scale(.97)}.qbtn.accent{background:var(--accent);border-color:var(--accent);color:#0f1720}.reset-link{display:block;width:100%;background:none;border:none;color:var(--text-dim);font-size:11.5px;text-decoration:underline;margin-top:8px;padding:4px 0 0}.exercise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.exercise-tile{background:var(--card-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 8px;text-align:center;min-height:84px;display:flex;flex-direction:column;justify-content:center;gap:6px}.exercise-tile .name{font-size:12.5px;font-weight:600;line-height:1.2}.exercise-tile-img{width:100%;height:40px;object-fit:cover;border-radius:8px;margin-bottom:2px}.empty-hint{font-size:13px;color:var(--text-dim);text-align:center;padding:8px 0}.widget-exercise{margin-bottom:16px;padding:18px}.fireworks{position:fixed;width:0;height:0;pointer-events:none;z-index:60}.firework-particle{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);animation:firework-burst .6s ease-out forwards}@keyframes firework-burst{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.3);opacity:0}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:none;z-index:40}.sheet-overlay.open{display:block}.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-radius:20px 20px 0 0;z-index:41;max-height:80vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .25s ease}.sheet.open{transform:translateY(0)}@media (min-width: 640px){.sheet{left:50%;right:auto;bottom:auto;top:50%;width:400px;max-width:90vw;border-radius:var(--radius);transform:translate(-50%,-50%) scale(.96);opacity:0;transition:transform .2s ease,opacity .2s ease}.sheet.open{transform:translate(-50%,-50%) scale(1);opacity:1}}.sheet-header{flex:0 0 auto;padding:16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.sheet-header h3{margin:0;font-size:16px}.sheet-body{flex:1 1 auto;overflow-y:auto;padding:16px}input,select{font-size:16px;background:var(--card-alt);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:10px 12px;width:100%}label{font-size:13px;color:var(--text-dim);display:block;margin:12px 0 6px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip{background:var(--card-alt);border:1px solid var(--border);border-radius:999px;padding:7px 12px;font-size:13px;color:var(--text-dim)}.chip.active{border-color:var(--accent);color:var(--accent)}.primary-btn{width:100%;background:var(--accent);color:#0f1720;border:none;border-radius:var(--radius-sm);padding:13px;font-weight:700;font-size:15px;margin-top:16px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--card-alt);border:1px solid var(--border);padding:10px 16px;border-radius:999px;font-size:13px;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;max-width:480px;margin:0 auto;background:var(--card);border-top:1px solid var(--border);padding:8px 0 calc(8px + env(safe-area-inset-bottom))}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--text-dim);font-size:11px;font-weight:500;padding:4px 0}.tab-item .tab-icon{font-size:22px;line-height:1}.tab-item.active{color:var(--accent)}
