html,body{height:100%}body{margin:0;background:var(--color-canvas);color:var(--color-text)}.timer{position:relative;min-height:100dvh;max-width:32rem;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);text-align:center;box-sizing:border-box}.timer[data-mode=focus]{max-width:none;gap:var(--space-2)}.timer-brand-link{position:absolute;top:var(--space-3);left:var(--space-3);display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-target-min);min-height:var(--tap-target-min);color:var(--color-text);text-decoration:none}.timer-brand-mark{width:1.5rem;height:1.5rem;color:var(--color-accent)}.timer[data-mode=focus] .timer-heading{display:none}.timer-heading{font-size:var(--text-2xl);margin:0}.timer[data-mode=focus] .timer-brand-mark{width:1.125rem;height:1.125rem}.timer-tagline{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.timer-title{font-size:var(--text-lg);margin:0}.timer-display{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;line-height:var(--leading-mono);padding:var(--space-5) 0}.timer-display-value{font-weight:var(--font-weight-bold);font-size:clamp(var(--text-5xl),22vw,7.5rem)}.timer[data-mode=focus] .timer-display{flex:1;display:flex;align-items:center;justify-content:center;padding:0;min-height:0}.timer[data-mode=focus] .timer-display-value{font-size:min(30vw,55vh)}.timer-display[data-urgent=true]{color:var(--color-danger);font-weight:var(--font-weight-bold);outline:var(--border-strong) solid var(--color-danger);outline-offset:var(--space-3)}@media(prefers-reduced-motion:no-preference){.timer-display[data-urgent=true]{animation:timer-blink 1s step-start infinite}}@keyframes timer-blink{50%{opacity:.25}}.timer-display[data-status=expired]{color:var(--color-danger);font-weight:var(--font-weight-bold);outline:var(--border-strong) solid var(--color-danger);outline-offset:var(--space-3)}.timer-expired-banner{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-danger);margin:0}.timer-setup{display:flex;flex-direction:column;gap:var(--space-4);align-items:center}.timer-controls{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:center}.timer-presets{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.timer-preset{min-height:var(--tap-target-min);padding:0 var(--space-4);border-radius:var(--radius-md);border:var(--border-hairline) solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer}.timer-preset[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-canvas);font-weight:var(--font-weight-bold)}.form-field{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);text-align:left}.form-field-label{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.timer-title-field{align-self:stretch;width:100%}.timer-custom-duration{display:flex;align-items:flex-end;gap:var(--space-2)}.timer-duration-separator{font-size:var(--text-lg)}.timer-input{min-height:var(--tap-target-min);padding:0 var(--space-3);border-radius:var(--radius-md);border:var(--border-hairline) solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-md);width:100%;box-sizing:border-box}.timer-input-narrow{width:4.5rem;text-align:center}.timer-error{color:var(--color-danger);font-size:var(--text-sm);margin:0}.timer-error:empty{display:none}.timer-btn{min-height:var(--tap-target-min);min-width:8rem;padding:0 var(--space-5);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--font-weight-bold);cursor:pointer}.timer-btn-primary{border:var(--border-hairline) solid var(--color-accent);background:var(--color-accent);color:var(--color-canvas)}.timer-btn-outline{border:var(--border-hairline) solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.timer-sound-label{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-target-min);padding:0 var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}
