/* Online výsledky – seznam akcí a detail (navazuje na /style.css a jeho proměnné). */
:root{--live:#d92d2d;--ok:#1f8a4c;--warn:#b86200;--bad:#c62828;--best:#e7f6ec;--chip:#eef0f3}
:root[data-theme="dark"]{--live:#ff5a5a;--ok:#4cc77f;--warn:#ffb14a;--bad:#ff6b6b;--best:rgba(76,199,127,.16);--chip:#232933}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--live:#ff5a5a;--ok:#4cc77f;--warn:#ffb14a;--bad:#ff6b6b;--best:rgba(76,199,127,.16);--chip:#232933}}

.online .wrap{padding-top:1.5rem;padding-bottom:3rem}
.online h1{font-size:clamp(1.6rem,4.5vw,2.3rem);line-height:1.15;letter-spacing:-.015em;margin:.2rem 0 .4rem}
.online .intro{color:var(--muted);margin:0 0 1.2rem;max-width:62ch}
.nav a.current{color:var(--text);font-weight:700}
.online [hidden],dialog [hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* záložky */
.tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--line);margin:0 0 1rem;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{appearance:none;border:0;background:none;font:inherit;font-weight:700;color:var(--muted);padding:.7rem .9rem;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:.45rem}
.tab[aria-selected="true"]{color:var(--text);border-bottom-color:var(--orange)}
.tab .live-dot{color:var(--live);animation:pulse 1.4s ease-in-out infinite}
@media (max-width:480px){.tab{padding:.7rem .55rem}}
.tab .count{font-size:.8rem;font-weight:700;background:var(--chip);border-radius:999px;padding:0 .45rem;color:var(--muted)}

/* filtry */
.filters{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 1.2rem}
.filters summary{cursor:pointer;padding:.75rem 1rem;font-weight:700;list-style:none;display:flex;align-items:center;justify-content:space-between}
.filters summary::-webkit-details-marker{display:none}
.filters summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.filters[open] summary::after{transform:rotate(-135deg)}
.filters .active-count{color:var(--accent);font-weight:700;margin-left:.4rem}
.filter-grid{display:grid;gap:.75rem;padding:0 1rem 1rem;grid-template-columns:1fr 1fr}
.filter-grid .full{grid-column:1/-1}
@media (min-width:860px){.filter-grid{grid-template-columns:1.8fr 1fr 1fr 1fr 1.25fr 1.3fr}.filter-grid .full{grid-column:auto}}
.field{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted);font-weight:600}
.field input,.field select{font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;min-height:44px;width:100%}
.field input:focus,.field select:focus{outline:2px solid var(--orange);outline-offset:1px}
.quick{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem 1rem}
.chip{appearance:none;font:inherit;font-size:.88rem;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:.35rem .8rem;cursor:pointer;min-height:36px;white-space:nowrap}
.chip[aria-pressed="true"],.chip[aria-selected="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.chip.reset{color:var(--accent);border-color:transparent;background:none}

/* karty akcí */
.ev-list{display:grid;gap:.75rem;grid-template-columns:1fr}
@media (min-width:760px){.ev-list{grid-template-columns:1fr 1fr}}
.ev-card{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}
.ev-card:hover{border-color:var(--muted)}
.ev-date{width:54px;text-align:center;border-radius:12px;background:var(--bg-soft);border:1px solid var(--line);padding:.35rem 0;line-height:1.1}
.ev-date .d{display:block;font-size:1.35rem;font-weight:800}
.ev-date .m{display:block;font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase}
.ev-card h3{margin:0 0 .15rem;font-size:1.06rem;line-height:1.3}
.ev-meta{color:var(--muted);font-size:.9rem;margin:0}
.ev-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem;align-items:center}
.b{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:700;border-radius:6px;padding:.1rem .45rem;border:1px solid var(--line);color:var(--muted);background:var(--bg-soft)}
.b.live{color:#fff;background:var(--live);border-color:var(--live)}
.b.planned{color:var(--badge-text);background:var(--badge-bg);border-color:var(--badge-line)}
.b.finished{color:var(--text)}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}
.b.live .dot{background:#fff;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@media (prefers-reduced-motion:reduce){.b.live .dot,.live-pill .dot,.tab .live-dot{animation:none}}
.more{display:flex;justify-content:center;margin-top:1.2rem}
.empty,.state{text-align:center;color:var(--muted);padding:2.5rem 1rem;border:1px dashed var(--line);border-radius:var(--radius)}
.state h2{color:var(--text);font-size:1.25rem;margin:0 0 .4rem}
.skeleton{height:96px;border-radius:var(--radius);background:linear-gradient(90deg,var(--bg-soft),var(--line),var(--bg-soft));background-size:200% 100%;animation:sk 1.2s linear infinite}
@keyframes sk{to{background-position:-200% 0}}

/* detail */
.back{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);text-decoration:none;font-size:.92rem;font-weight:600}
.back:hover{color:var(--text)}
.ev-head{display:grid;gap:.6rem;margin-bottom:1rem}
.ev-head .meta{display:flex;flex-wrap:wrap;gap:.3rem 1rem;color:var(--muted);font-size:.95rem}
.ev-head .meta span{display:inline-flex;gap:.35rem;align-items:center}
.ev-head .note{margin:0;color:var(--muted);font-size:.95rem}
.live-pill{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;font-size:.85rem;border-radius:999px;padding:.2rem .7rem;color:#fff;background:var(--live);letter-spacing:.03em}
.live-pill .dot{background:#fff;animation:pulse 1.4s ease-in-out infinite}
.live-pill.stale{background:var(--muted)}
.live-pill.stale .dot{animation:none}
.status-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;font-size:.9rem;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:.5rem}
.actions .pill svg{width:16px;height:16px}
.group-bar{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem 0 .7rem;scrollbar-width:thin;position:sticky;top:57px;z-index:3;background:var(--bg)}
.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin:.2rem 0 .8rem}
.toolbar .field{min-width:min(100%,260px);flex:1}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface)}
.seg button{appearance:none;border:0;background:none;font:inherit;font-size:.86rem;font-weight:700;color:var(--muted);padding:.45rem .85rem;cursor:pointer;min-height:36px}
.seg button[aria-pressed="true"]{background:var(--text);color:var(--bg)}
.course-info{color:var(--muted);font-size:.9rem;margin:.1rem 0 .6rem}

table.res{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
table.res th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;font-weight:700;padding:.45rem .5rem;border-bottom:1px solid var(--line)}
table.res td{padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
table.res .num{text-align:right;white-space:nowrap}
table.res .pos{width:2.5rem;font-weight:800;text-align:right}
table.res tr.row{cursor:pointer}
table.res tr.row:hover td{background:var(--bg-soft)}
table.res tr.row.open td{background:var(--bg-soft);border-bottom-color:transparent}
.rname{font-weight:700}
.rclub{color:var(--muted);font-size:.85rem;font-weight:500}
.rname .hidden-name{font-style:italic;font-weight:600;color:var(--muted)}
.st{font-size:.78rem;font-weight:800;border-radius:6px;padding:.05rem .4rem;white-space:nowrap}
.st.mp,.st.dnf,.st.dsq{color:var(--bad);border:1px solid currentColor}
.st.other{color:var(--muted);border:1px solid var(--line)}
.miss{color:var(--bad);font-size:.82rem}
.edited{color:var(--warn);font-weight:800;margin-left:.25rem}
tr.flash td{animation:flash 2.5s ease-out}
@keyframes flash{0%{background:var(--badge-bg)}100%{background:transparent}}
.section-label td{font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:1rem;border-bottom:1px solid var(--line)}
.active-note{color:var(--muted);font-size:.9rem;margin:.8rem 0 0}

/* mezičasy závodníka */
tr.splits td{padding:0 .5rem .8rem;background:var(--bg-soft)}
.split-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem}
.split{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.4rem .55rem;font-size:.85rem;line-height:1.35}
.split .k{color:var(--muted);font-size:.75rem;font-weight:700}
.split .leg{font-weight:800}
.split .cum{color:var(--muted)}
.split .rk{color:var(--muted);font-size:.78rem}
.split.best{background:var(--best);border-color:var(--ok)}
.loss{font-size:.78rem;font-weight:700}
.loss.l0{color:var(--ok)}.loss.l1{color:var(--warn)}.loss.l2{color:var(--bad)}
.split.missing{border-color:var(--bad);color:var(--bad)}

/* tabulka mezičasů */
.split-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;-webkit-overflow-scrolling:touch}
table.st-table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-size:.85rem;min-width:100%}
table.st-table th,table.st-table td{padding:.4rem .55rem;border-bottom:1px solid var(--line);white-space:nowrap;text-align:right;background:var(--bg)}
table.st-table th{font-size:.75rem;color:var(--muted);position:sticky;top:0}
table.st-table .stick{position:sticky;left:0;z-index:1;text-align:left;border-right:1px solid var(--line);min-width:9rem;max-width:44vw;overflow:hidden;text-overflow:ellipsis}
table.st-table th.stick{z-index:2}
table.st-table td .leg{font-weight:700;display:block}
table.st-table td .cum{color:var(--muted);display:block;font-size:.78rem}
table.st-table td.best{background:var(--best)}
table.st-table td.miss-cell{color:var(--bad)}

/* dialog QR */
dialog.qr{border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);padding:1.4rem;max-width:min(92vw,420px);text-align:center}
dialog.qr::backdrop{background:rgba(0,0,0,.55)}
dialog.qr .code{background:#fff;border-radius:12px;padding:12px;margin:.8rem auto;width:min(72vw,300px)}
dialog.qr .code svg{width:100%;height:auto}
dialog.qr .url{font-weight:700;word-break:break-all}
dialog.qr form{margin-top:1rem;display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:.6rem 1rem;border-radius:999px;font-weight:700;font-size:.9rem;z-index:20;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
.ev-foot{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;color:var(--muted);font-size:.9rem}
.ev-foot a{color:var(--muted)}

