:root{--bg: #101418;--surface: #161b21;--control: #232a32;--control-hover: #2a3038;--border: #232a32;--border-dashed: #3b424b;--text: #e8eaee;--text-muted: #c9cdd3;--text-dim: #7d848e;--accent: #1f8a4c;--accent-hover: #248a55;--on-accent: #ffffff;--info: #1e6fdc;--danger-btn: #8a2a2a;--danger-btn-hover: #a23636;--input-bg: #0e1216;--error-bg: #3a1f1f;--error-text: #f5d2d2;--error-border: #b34141;--info-bg: #1a2a3e;--info-text: #b9d2f3;--info-border: #1e6fdc;color-scheme:dark}:root[data-theme=light]{--bg: #f4f6f8;--surface: #ffffff;--control: #e6eaee;--control-hover: #d8dee4;--border: #d2d8de;--border-dashed: #aeb6bf;--text: #14181c;--text-muted: #3a424a;--text-dim: #6b727a;--accent: #178a4a;--accent-hover: #14773f;--on-accent: #ffffff;--info: #1257b0;--danger-btn: #c0392b;--danger-btn-hover: #a93226;--input-bg: #ffffff;--error-bg: #fdeceb;--error-text: #8a1c14;--error-border: #e3aaa4;--info-bg: #e9f1fc;--info-text: #1a4a8a;--info-border: #9cc0ee;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:16px;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column;max-width:640px;margin:0 auto}.topbar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;padding-top:calc(14px + env(safe-area-inset-top))}.back{background:var(--control);color:var(--text);border:0;width:36px;height:36px;min-height:36px;padding:0;border-radius:18px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.back:disabled{opacity:.4}.title{font-weight:600;letter-spacing:.5px;flex:1}.clock{font-weight:700;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:1px;flex:1}.theme-toggle{background:var(--control);color:var(--text);border:0;width:36px;height:36px;min-height:36px;padding:0;border-radius:18px;font-size:17px;line-height:1;cursor:pointer;flex:0 0 auto}.lang{background-color:var(--control);color:var(--text);border:0;height:36px;padding:0 30px 0 14px;border-radius:18px;font-size:13px;font-weight:600;letter-spacing:.3px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23e8eaee' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><polyline points='1.5 2 6 6.5 10.5 2'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:10px 7px;cursor:pointer;font-family:inherit}:root[data-theme=light] .lang{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%2314181c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><polyline points='1.5 2 6 6.5 10.5 2'/></svg>")}.lang:focus{outline:2px solid var(--accent);outline-offset:2px}.lang option{background:var(--surface);color:var(--text)}.main{padding:16px 16px 80px}h2{margin:0;font-size:22px}h3{margin:0 0 12px;font-size:18px}.rowhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.rowhead-right{display:flex;align-items:center;gap:10px}.rowhead-right button{min-height:36px;padding:6px 14px;font-size:14px}.meta{color:var(--text-muted);font-size:14px;margin-bottom:16px;display:flex;gap:8px}.cards{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.card.empty,.empty{color:var(--text-dim);font-style:italic;padding:20px;text-align:center}.cardtop{display:flex;justify-content:space-between;align-items:center;gap:8px}.cardname{font-size:18px;font-weight:500}.cardmeta{color:var(--text-muted);font-size:13px}.active-flag,.chip-ok{color:var(--accent);font-weight:600}.chip-none{color:var(--text-dim)}button.chip-waiting{background:var(--warn, #8a5a00);color:#fff}.badge{color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;letter-spacing:.5px;white-space:nowrap}button{background:var(--control);color:var(--text);border:0;border-radius:8px;padding:10px 16px;font-size:15px;cursor:pointer;min-height:44px}button:hover{background:var(--control-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{background:var(--danger-btn);color:#fff}button.danger:hover:not(:disabled){background:var(--danger-btn-hover)}button.block{width:100%;margin-top:8px}.rowactions{display:flex;gap:8px;margin-top:8px}.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:14px}.info-banner{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border);border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:14px}.tabs{display:flex;gap:6px;margin:12px 0;background:var(--surface);padding:4px;border-radius:10px}.tabs button{flex:1;background:transparent;min-height:38px;font-size:14px}.tabs button.on{background:var(--control)}.events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.events li{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px}.evtop{display:flex;justify-content:space-between;align-items:center;gap:8px}.evtype{font-weight:600;font-size:14px;letter-spacing:.3px}.evsrc{color:var(--text-dim);font-size:11px;text-transform:lowercase;background:var(--control);padding:2px 8px;border-radius:6px}.evmeta{color:var(--text-muted);font-size:13px;margin-top:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.modal label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--text-muted)}.modal input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:12px;font-size:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal .hint{color:var(--text-dim);font-size:12px}.modal .lap-current{margin:0;font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums}.modal .lap-current b{color:var(--text)}.modal input[type=number]::-webkit-outer-spin-button,.modal input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.dt-picker{display:flex;align-items:center;gap:4px}.dt-picker .dt-field{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:12px 6px;font-size:16px;text-align:center;font-variant-numeric:tabular-nums}.dt-picker .dt-sep{color:var(--text-muted);font-size:18px;font-weight:600}.dt-picker .dt-gap{width:12px}@media (min-width: 720px){.main{padding:24px}}.swap{background:var(--control);color:var(--text);border:0;height:36px;min-height:36px;padding:0 14px;border-radius:18px;font-size:13px;font-weight:600;letter-spacing:.3px;cursor:pointer;flex:0 0 auto}.app.mode-display{max-width:none}.display{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px;align-items:start}.display .panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;min-height:0;display:flex;flex-direction:column}.display .run-panel h2{font-size:28px;margin:0 0 8px}.display .panel h3{font-size:18px;color:var(--text-muted);margin:0 0 12px}.display .meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--text-muted);font-size:14px;margin-bottom:16px}.display .lapbox{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:baseline;margin-top:8px}.display .laptag{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:1px}.display .lapnum{font-size:56px;font-weight:700;line-height:1}.display .countdown{font-size:72px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent)}.display .countdown.warn{color:var(--warn)}.display .finished{font-size:24px;color:var(--info);margin-top:12px}.display .waiting-start{margin-top:16px;padding:14px 18px;border:1px dashed var(--border-dashed);border-radius:10px;color:var(--text-muted);font-size:18px;display:flex;flex-direction:column;gap:6px}.display .waiting-countdown{font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);line-height:1}.display .waiting-warn{font-size:18px;color:var(--warn);font-weight:600}.display .results,.display .passes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.display .results li{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;background:var(--control);border-radius:10px;padding:10px 12px}.display .results .pos{font-size:20px;font-weight:800;color:var(--text-dim);text-align:center}.display .results .who{display:flex;align-items:baseline;gap:10px;min-width:0}.display .results .bib{font-size:20px;font-weight:800}.display .results .name{font-size:18px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display .results .res{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.display .results .laps{font-size:16px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.display .results li.dim{opacity:.55}.display .finish-box{background:var(--accent);color:var(--on-accent);font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;padding:3px 10px;border-radius:6px;white-space:nowrap}.display .passes-panel h3{font-size:28px;color:var(--text)}.display .passes li{display:grid;grid-template-columns:130px 1fr auto auto;gap:20px;align-items:baseline;background:var(--control);border-radius:10px;padding:16px 20px}.display .passes li.edited{border-left:4px solid var(--warn)}.display .passes .pbib{font-size:52px;font-weight:800;line-height:1.05}.display .passes .pname{font-size:40px;font-weight:600;line-height:1.05}.display .passes .plap{color:var(--text-muted);font-size:28px;white-space:nowrap}.display .passes .ptime{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:34px;white-space:nowrap}.display .passes .edit-tag{color:var(--warn);font-weight:600;font-size:18px;margin-left:12px;white-space:nowrap}.display .muted{color:var(--text-dim);padding:8px 2px}@media (max-width: 1100px){.display{grid-template-columns:1fr}.display .lapnum{font-size:40px}.display .countdown{font-size:52px}.display .passes-panel h3{font-size:22px}.display .passes li{grid-template-columns:72px 1fr auto auto;gap:12px;padding:12px 14px}.display .passes .pbib{font-size:30px}.display .passes .pname{font-size:22px}.display .passes .plap{font-size:16px}.display .passes .ptime{font-size:20px}}
