:root,[data-theme=dark]{--bg1:#1a1206;--bg2:#2a1b08;--accent:#f59e0b;--accent2:#fbbf24;--text:#f7f3ea;--muted:#b9a98a;--card:hsla(0,0%,100%,.06);--card-br:hsla(0,0%,100%,.12);--field-bg:rgba(0,0,0,.25);--lap-bg:rgba(0,0,0,.22)}[data-theme=light]{--bg1:#f3ede1;--bg2:#fffdf8;--accent:#d97706;--accent2:#b45309;--text:#2a2118;--muted:#6b5d49;--card:rgba(0,0,0,.035);--card-br:rgba(0,0,0,.1);--field-bg:hsla(0,0%,100%,.7);--lap-bg:rgba(0,0,0,.04)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:radial-gradient(1200px 800px at 70% -10%,#3a2607 0,var(--bg1) 60%),linear-gradient(160deg,var(--bg2),var(--bg1));min-height:100vh}.wrap{max-width:720px;margin:0 auto;padding:40px 20px 64px;display:flex;flex-direction:column;align-items:center;gap:22px}header h1{font-size:28px;font-weight:700;margin:0;text-align:center;letter-spacing:.2px}.topbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.ctrl{border:1px solid var(--card-br);background:var(--card);color:var(--muted);padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.ctrl:hover{color:var(--text);background:hsla(0,0%,100%,.1)}[data-theme=light] .ctrl:hover{background:rgba(0,0,0,.06)}.tabs{display:flex;gap:8px;background:var(--card);border:1px solid var(--card-br);border-radius:999px;padding:6px}.tabs button{border:none;background:transparent;color:var(--muted);padding:9px 18px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:all .18s ease}.tabs button.on{background:var(--accent);color:#1a1206}[data-theme=light] .tabs button.on{color:#fff}.panel{background:var(--card);border:1px solid var(--card-br);border-radius:22px;padding:32px 24px;gap:22px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel,.tool{width:100%;display:flex;flex-direction:column;align-items:center}.tool{gap:20px}.dial{position:relative;width:280px;height:280px}.ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:hsla(0,0%,100%,.1);stroke-width:14}[data-theme=light] .ring-bg{stroke:rgba(0,0,0,.08)}.ring-fg{fill:none;stroke:var(--accent);stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset .12s linear}.ring-fg.done{stroke:var(--accent2)}.dial-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.time{font-size:46px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:1px}.time.done{color:var(--accent2);animation:flash .6s ease-in-out 3}@keyframes flash{50%{opacity:.35}}.dial-sub{font-size:13px;color:var(--muted)}.inputs{display:flex;gap:14px}.inputs label{display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--muted);gap:6px}.inputs input{width:64px;padding:10px;font-size:22px;text-align:center;border-radius:12px;border:1px solid var(--card-br);background:var(--field-bg);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.inputs input:disabled{opacity:.5}.presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:360px}.preset{border:1px solid var(--card-br);background:var(--field-bg);color:var(--text);padding:7px 13px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:all .16s ease}.preset:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.preset:disabled{opacity:.4;cursor:not-allowed}.field{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted);width:100%;max-width:320px}.label-input{width:100%;padding:10px 12px;font-size:15px;text-align:center;border-radius:12px;border:1px solid var(--card-br);background:var(--field-bg);color:var(--text)}.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}.chk input{width:16px;height:16px;accent-color:var(--accent)}.btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.btns button{border:1px solid var(--card-br);background:hsla(0,0%,100%,.08);color:var(--text);padding:12px 26px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .16s ease}[data-theme=light] .btns button{background:rgba(0,0,0,.04)}.btns button:hover:not(:disabled){background:hsla(0,0%,100%,.16)}[data-theme=light] .btns button:hover:not(:disabled){background:rgba(0,0,0,.08)}.btns button:disabled{opacity:.4;cursor:not-allowed}.btns button.primary{background:var(--accent);color:#1a1206;border-color:var(--accent)}[data-theme=light] .btns button.primary{color:#fff}.btns button.primary:hover{background:var(--accent2)}.settings{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.settings .num{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.settings .num input{width:54px;padding:8px;font-size:16px;text-align:center;border-radius:10px;border:1px solid var(--card-br);background:var(--field-bg);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.settings .num input:disabled{opacity:.5}.summary{width:100%;max-width:360px;display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;font-size:13px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary span{background:var(--lap-bg);padding:6px 12px;border-radius:999px}.hint{font-size:12px;color:var(--muted);opacity:.8}.laps{width:100%;max-width:360px;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.laps li{display:flex;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--lap-bg);border-radius:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:14px}.laps li span:first-child{color:var(--accent2);font-weight:700}.laps li .split{margin-left:auto;color:var(--muted)}.laps li.best{outline:1px solid var(--accent)}.laps li.best .split{color:var(--accent);font-weight:700}.laps li.worst .split{color:#ef4444}@media (max-width:480px){.time{font-size:38px}.inputs input{width:56px;font-size:19px}.dial{width:240px;height:240px}}