:root{
  --bg:#0e1116;
  --panel:#161b22;
  --line:#232a34;
  --text:#e8edf4;
  --muted:#8b97a8;
  --accent:#4de0b2;
  --accent-2:#7aa2ff;
  --warn:#ffb347;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1200px 600px at 50% -10%,#1a2230 0%,var(--bg) 60%);
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  min-height:100vh;
  display:flex;flex-direction:column;
  padding-bottom:env(safe-area-inset-bottom);
}
.topbar{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px 18px;border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:8px;font-weight:650;letter-spacing:.02em;color:var(--accent)}
.brand span{color:var(--text)}
.tabs{display:flex;gap:6px;margin-inline:auto;background:var(--panel);padding:4px;border-radius:999px;border:1px solid var(--line)}
.tab{
  border:0;background:transparent;color:var(--muted);
  font:inherit;font-size:14px;padding:8px 16px;border-radius:999px;cursor:pointer;
}
.tab:hover{color:var(--text)}
.tab.is-active{background:var(--text);color:#0e1116;font-weight:600}
.icon-btn{
  border:1px solid var(--line);background:var(--panel);color:var(--muted);
  font:inherit;font-size:13px;padding:8px 12px;border-radius:999px;cursor:pointer;
}
.icon-btn[aria-pressed="true"]{color:var(--accent);border-color:#294a41}

main{flex:1;display:flex;justify-content:center;padding:28px 18px 40px}
.panel{display:none;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:520px}
.panel.is-active{display:flex}

.dial{position:relative;width:min(78vw,300px);aspect-ratio:1}
.ring{width:100%;height:100%;transform:rotate(-90deg)}
.ring-bg,.ring-fg{fill:none;stroke-width:10;stroke-linecap:round}
.ring-bg{stroke:var(--line)}
.ring-fg{stroke:var(--accent);stroke-dasharray:678.58;stroke-dashoffset:0;transition:stroke-dashoffset .2s linear,stroke .3s ease}
.dial.is-break .ring-fg{stroke:var(--accent-2)}
.dial.is-done .ring-fg{stroke:var(--warn)}
.dial-inner{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;
}
.time{
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum";
  font-size:clamp(38px,11vw,54px);font-weight:600;letter-spacing:.01em;
}
.time .ms{font-size:.55em;color:var(--muted)}
.sub{color:var(--muted);font-size:13px}
.phase{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}
.dial.is-break .phase{color:var(--accent-2)}

.inputs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.inputs label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);text-align:center}
.inputs input{
  width:78px;padding:9px 8px;text-align:center;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  color:var(--text);font:inherit;font-variant-numeric:tabular-nums;
}
.inputs input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

.presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.presets button{
  background:var(--panel);border:1px solid var(--line);color:var(--muted);
  font:inherit;font-size:13px;padding:7px 12px;border-radius:999px;cursor:pointer;
}
.presets button:hover{color:var(--text);border-color:#3a4453}

.controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.btn{
  background:var(--panel);border:1px solid var(--line);color:var(--text);
  font:inherit;font-size:15px;padding:12px 20px;border-radius:var(--radius);cursor:pointer;
}
.btn:hover{border-color:#3a4453}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#08241c;font-weight:650;min-width:130px}
.btn-primary:hover{filter:brightness(1.06)}

.laps{list-style:none;margin:0;padding:0;width:100%;max-height:220px;overflow:auto;border-top:1px solid var(--line)}
.laps li{display:flex;justify-content:space-between;padding:9px 4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-size:14px}
.laps li span:first-child{color:var(--muted)}

.dots{display:flex;gap:8px}
.dots i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block}
.dots i.done{background:var(--accent)}
.dots i.current{background:var(--text)}

footer{padding:14px 18px 22px;text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}
footer p{margin:0}

@media (max-width:520px){
  .topbar{gap:10px}
  .tabs{order:3;width:100%;margin:0;justify-content:center}
  .icon-btn{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){
  .ring-fg{transition:none}
}
