.timer-presets{margin:0 0 16px}.timer-face{background:var(--surface);text-align:center;border-radius:16px;margin-bottom:14px;padding:20px 12px}.timer-display{font-variant-numeric:tabular-nums;margin:0;font-size:clamp(3.2rem,18vw,6rem);font-weight:700;line-height:1.1}.timer-bar{background:var(--border);border-radius:999px;max-width:420px;height:8px;margin:14px auto 8px;overflow:hidden}.timer-bar span{background:var(--accent);height:100%;transition:width .25s linear;display:block}.timer-state{color:var(--muted);margin:0}.timer-face.done{background:var(--saffron-soft)}.timer-face.done .timer-display,.timer-face.done .timer-state{color:var(--saffron-text);font-weight:700}.timer-face.done .timer-display{animation:1s ease-in-out infinite alternate timer-pulse}@keyframes timer-pulse{to{opacity:.35}}.timer-controls{justify-content:center;margin-bottom:16px}.timer-set{border:0;min-width:0;margin:0 0 12px;padding:0}.timer-set legend{margin-bottom:8px;padding:0;font-size:.9rem;font-weight:600}.timer-set-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stopwatch-display{font-size:clamp(2.6rem,14vw,5rem)}.laps .lap-fast th,.laps .lap-fast td{color:var(--good);font-weight:600}.laps .lap-slow th,.laps .lap-slow td{color:var(--error);font-weight:600}.timer-presets .chip.active{font-weight:700}.timer-stage.is-full{background:var(--bg);flex-direction:column;justify-content:center;align-items:stretch;gap:24px;padding:4vh 4vw;display:flex}.timer-stage.is-full .timer-face{margin:0;padding:6vh 2vw}.timer-stage.is-full .timer-display{font-size:min(24vw,40vh)}.timer-stage.is-full .timer-state{font-size:1.4rem}.timer-stage.is-full .timer-bar{max-width:70vw;height:12px}.pomo-phase{letter-spacing:.02em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.9rem;font-weight:700}.pomo-short .pomo-phase,.pomo-long .pomo-phase{color:var(--good)}.pomo-short .timer-bar span,.pomo-long .timer-bar span{background:var(--good)}.pomo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:640px){.pomo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}