/* Public archive — shared design system. Reuse zmiennych z public/archive.html (Syne+DM Sans, dark+yellow). */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root{
  --bk:#080808;--wh:#f2f1ed;--y:#e8f542;--yd:#c8d52e;
  --g1:#111;--g2:#181818;--g3:#222;--g4:#2c2c2c;--g5:#383838;
  --mt:#787878;--mt2:#444;--green:#4dff91;--amber:#ffbe3d;--red:#ff6b6b;
  --fd:'Syne',sans-serif;--fb:'DM Sans',sans-serif;
  --r:3px;--max:1180px;
}
html{background:var(--bk);color:var(--wh);font-family:var(--fb);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
body{background:var(--bk);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
a{color:inherit;text-decoration:none}

/* TOPBAR — kopia 1:1 z public/index.html `nav` + zachowany sticky behavior. */
.topbar{position:sticky;top:0;z-index:200;background:rgba(8,8,8,0.94);backdrop-filter:blur(20px);border-bottom:1px solid #1c1c1c;padding:0 48px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
/* Logo — kopia 1:1 z public/index.html `.logo`. Klasy `tb-*` zachowane dla mobile breakpointów poniżej. */
.tb-logo{font-family:var(--fd);font-weight:800;font-size:22px;letter-spacing:-1px;display:inline-flex;align-items:center;gap:9px;cursor:pointer;text-decoration:none;color:var(--wh)}
.tb-logo-icon{flex-shrink:0;color:var(--y);transition:transform .3s ease}
.tb-logo:hover .tb-logo-icon{transform:rotate(-8deg)}
.tb-logo-text{display:inline-flex;align-items:baseline;line-height:1}
.tb-logo .dot{color:var(--y);font-size:28px;line-height:0;margin-top:4px}
.tb-logo .io{color:var(--yd);font-weight:400}
.tb-nav{display:flex;gap:4px}
.tb-nav a{font-size:12px;color:var(--mt);padding:5px 10px;border-radius:var(--r);transition:color .15s}
.tb-nav a:hover{color:var(--wh)}
.tb-nav a.is-active{color:var(--y)}

/* LAYOUT */
.shell{max-width:var(--max);margin:0 auto;padding:24px 20px 64px}
.shell-narrow{max-width:1040px}

/* HERO */
.hero{padding:36px 0 28px;border-bottom:1px solid var(--g3);margin-bottom:28px}
.hero-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--y);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.hero-kicker::before{content:'';display:inline-block;width:16px;height:1px;background:var(--y)}
.hero h1{font-family:var(--fd);font-size:clamp(28px,4.6vw,44px);font-weight:800;letter-spacing:-0.04em;margin-bottom:10px;line-height:1.1}
.hero-lead{font-size:14px;color:var(--mt);max-width:680px;line-height:1.7}
.hero-sub{margin-top:14px;font-size:14px;color:var(--mt);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hero-sub .sep{color:var(--mt2)}
.hero-sub a{color:var(--y);border-bottom:1px dotted rgba(232,245,66,.4);padding-bottom:1px}
.hero-sub a:hover{border-bottom-color:var(--y)}

/* BREADCRUMB */
.crumbs{font-size:12px;color:var(--mt);margin:18px 0 4px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--mt);text-decoration:underline;text-decoration-color:var(--g4);text-underline-offset:3px}
.crumbs a:hover{color:var(--wh)}
.crumbs .arrow{color:var(--mt2)}

/* CARD */
.card{background:var(--g1);border:1px solid var(--g3);border-radius:5px;margin-bottom:18px;overflow:hidden}
.card-head{padding:18px 22px 14px;border-bottom:1px solid var(--g3);display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.card-head h2{font-family:var(--fd);font-size:17px;font-weight:700;letter-spacing:-0.02em;margin:0}
.card-head .head-meta{font-size:12px;color:var(--mt)}
.card-body{padding:18px 22px}
.card-body.is-flush{padding:0}

/* STATS GRID */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.stat-tile{background:var(--g2);border:1px solid var(--g3);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.stat-tile .stat-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mt)}
.stat-tile .stat-value{font-family:var(--fd);font-weight:800;font-size:24px;letter-spacing:-0.02em;color:var(--wh);line-height:1.1}
.stat-tile .stat-suffix{font-size:11px;color:var(--mt2);margin-top:2px}

.record-banner{margin-top:14px;background:linear-gradient(90deg,rgba(232,245,66,.08),transparent 70%);border:1px solid rgba(232,245,66,.18);border-left:3px solid var(--y);padding:12px 16px;border-radius:var(--r);display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:14px}
.record-banner .rb-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--y)}
.record-banner .rb-time{font-family:var(--fd);font-weight:800;font-size:18px;color:var(--y);letter-spacing:-0.02em}
.record-banner .rb-name{color:var(--wh);font-weight:500}
.record-banner .rb-club{color:var(--mt)}
.record-banner .rb-cat{color:var(--mt2);font-size:12px}

/* FORMS */
select,input[type="search"],input[type="date"],input[type="text"]{background:var(--g2);border:1px solid var(--g4);color:var(--wh);padding:10px 12px;border-radius:var(--r);font-size:14px;font-family:var(--fb);outline:none;width:100%;transition:border-color .15s;appearance:none;min-height:44px}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23666' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}
select:focus,input:focus{border-color:var(--y)}
input::placeholder{color:var(--mt2)}
.f-label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--mt);letter-spacing:.04em;text-transform:uppercase}

/* HUB FILTERS + SEARCH */
.hub-search{position:relative;margin-bottom:16px}
.hub-search input{background:var(--g2);border:1px solid var(--g4);color:var(--wh);padding:14px 16px 14px 44px;border-radius:var(--r);font-size:15px;width:100%;min-height:52px}
.hub-search input:focus{border-color:var(--y)}
.hub-search::before{content:'⌕';position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--mt);font-size:18px;pointer-events:none}
.hub-suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--g2);border:1px solid var(--g3);border-radius:var(--r);max-height:340px;overflow-y:auto;z-index:30;box-shadow:0 12px 36px rgba(0,0,0,.55)}
.hub-suggest[hidden]{display:none}
.hub-suggest-row{padding:11px 16px;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:baseline;border-bottom:1px solid #141414;transition:background .12s}
.hub-suggest-row:last-child{border-bottom:none}
.hub-suggest-row:hover,.hub-suggest-row.is-focus{background:rgba(232,245,66,.06)}
.hub-suggest-row .hsr-name{font-size:14px;color:var(--wh)}
.hub-suggest-row .hsr-club{font-size:12px;color:var(--mt2);margin-left:8px}
.hub-suggest-row .hsr-event{font-size:11px;color:var(--mt);text-align:right}
.hub-suggest-empty{padding:14px 16px;font-size:13px;color:var(--mt);font-style:italic}

.hub-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:18px}

/* EVENT GRID */
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.event-card{background:var(--g1);border:1px solid var(--g3);border-radius:5px;padding:18px 18px 16px;cursor:pointer;transition:border-color .15s,transform .15s,background .15s;display:flex;flex-direction:column;gap:10px;min-height:200px;text-decoration:none;color:inherit}
.event-card:hover{border-color:var(--y);background:linear-gradient(180deg,rgba(232,245,66,.04),transparent 60%);transform:translateY(-1px)}
.event-card .ec-date{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--y);font-weight:600}
.event-card .ec-name{font-family:var(--fd);font-size:16px;font-weight:700;line-height:1.25;letter-spacing:-0.01em;color:var(--wh)}
.event-card .ec-loc{font-size:12px;color:var(--mt);display:flex;align-items:center;gap:6px}
.event-card .ec-pool{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.06em;padding:2px 7px;border-radius:var(--r);background:rgba(232,245,66,.1);color:var(--y);border:1px solid rgba(232,245,66,.2);align-self:flex-start;text-transform:uppercase}
.event-card .ec-stats{margin-top:auto;display:flex;gap:14px;font-size:12px;color:var(--mt);padding-top:8px;border-top:1px solid var(--g3)}
.event-card .ec-stats span{display:inline-flex;align-items:center;gap:4px}
.event-card .ec-stats strong{color:var(--wh);font-family:var(--fd);font-weight:700;font-size:13px}

.events-empty{padding:48px 24px;text-align:center;color:var(--mt);font-style:italic;border:1px dashed var(--g3);border-radius:5px}
.events-loadmore{margin-top:18px;text-align:center}

/* MEET-PRINT ACCORDION */
.meetcat{background:var(--g1);border:1px solid var(--g3);border-radius:5px;margin-bottom:12px;overflow:hidden}
.meetcat > summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--g2);border-bottom:1px solid transparent;min-height:56px}
.meetcat[open] > summary{border-bottom-color:var(--g3)}
.meetcat > summary::-webkit-details-marker{display:none}
.meetcat > summary::before{content:'▸';font-size:11px;color:var(--y);margin-right:6px;flex-shrink:0;transition:transform .12s}
.meetcat[open] > summary::before{content:'▾'}
.meetcat-title{font-family:var(--fd);font-weight:700;font-size:15px;letter-spacing:-0.01em;color:var(--wh);flex:1}
.meetcat-meta{font-size:12px;color:var(--mt)}
.meetcat-podium{display:flex;gap:6px}
.meetcat-podium .pod{font-family:var(--fd);font-weight:800;font-size:11px;padding:2px 6px;border-radius:var(--r)}
.meetcat-podium .pod1{background:var(--y);color:var(--bk)}
.meetcat-podium .pod2{background:#c0c0c0;color:#222}
.meetcat-podium .pod3{background:#b87333;color:#fff}

/* RESULTS TABLE — wspólna dla event/heat */
.results-tbl{width:100%;border-collapse:collapse;font-size:14px}
.results-tbl thead th{text-align:left;padding:10px 14px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mt);background:var(--g2);border-bottom:1px solid var(--g3);white-space:nowrap;font-weight:500}
.results-tbl thead .th-time,.results-tbl thead .th-pzp{text-align:right}
.results-tbl tbody td{padding:11px 14px;border-bottom:1px solid #141414;color:var(--mt);vertical-align:middle}
.results-tbl tbody tr:last-child td{border-bottom:none}
.results-tbl tbody tr:hover td{background:rgba(255,255,255,.012)}
.results-tbl .td-place{font-family:var(--fd);font-weight:800;font-size:18px;color:var(--y);letter-spacing:-0.03em;width:64px}
.results-tbl .td-time{font-family:var(--fd);font-weight:800;font-size:18px;color:var(--y);letter-spacing:-0.03em;text-align:right;white-space:nowrap}
.results-tbl .td-name{color:var(--wh)}
.results-tbl .td-club{color:var(--mt)}
.results-tbl .td-status{white-space:nowrap}
.results-tbl .td-pzp{text-align:right;white-space:nowrap}
.results-tbl tbody tr.is-podium .td-place{color:var(--y)}
.results-tbl tbody tr.is-medal-2 .td-place{color:#c0c0c0}
.results-tbl tbody tr.is-medal-3 .td-place{color:#b87333}
.results-tbl .empty-row td{text-align:center;padding:32px 16px;color:var(--mt);font-style:italic}

/* STATUS CHIP */
.statusCode{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;padding:3px 8px;border-radius:var(--r);text-transform:uppercase}
.statusCode.ok{background:rgba(77,255,145,.12);color:var(--green);border:1px solid rgba(77,255,145,.25)}
.statusCode.dns,.statusCode.dnf{background:rgba(255,190,61,.12);color:var(--amber);border:1px solid rgba(255,190,61,.25)}
.statusCode.dsq{background:rgba(255,107,107,.12);color:var(--red);border:1px solid rgba(255,107,107,.25)}
.statusCode.empty,.statusCode.muted{background:transparent;color:var(--mt2);border:1px solid var(--g4)}

/* PZP BADGE */
.pzp-badge{display:inline-block;font-family:var(--fd);font-weight:800;font-size:11px;letter-spacing:.04em;padding:2px 7px;border-radius:var(--r);background:rgba(232,245,66,.15);color:var(--y);border:1px solid rgba(232,245,66,.3);text-transform:uppercase}
.pzp-badge.pzp-MM{background:rgba(232,245,66,.25);color:var(--bk);background:var(--y);border-color:var(--y)}
.pzp-badge.pzp-M{background:rgba(232,245,66,.18);border-color:rgba(232,245,66,.4)}
.pzp-badge.pzp-tooltip{cursor:help;border-bottom:1px dotted rgba(232,245,66,.5)}

/* HEATS LIST */
.heats-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.heat-card{background:var(--g2);border:1px solid var(--g3);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:border-color .15s,background .15s;color:inherit;text-decoration:none}
.heat-card:hover{border-color:var(--y);background:rgba(232,245,66,.04)}
.heat-card .hc-num{font-family:var(--fd);font-weight:800;font-size:18px;color:var(--y);letter-spacing:-0.02em;line-height:1}
.heat-card .hc-meta{font-size:12px;color:var(--mt);line-height:1.5}
.heat-card .hc-status{font-size:11px;color:var(--mt2)}

/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--y);color:var(--bk);font-family:var(--fb);font-weight:600;font-size:14px;padding:11px 20px;border-radius:var(--r);border:none;cursor:pointer;transition:background .15s;min-height:44px;text-decoration:none}
.btn-primary:hover{background:var(--yd)}
.btn-secondary{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--y);background:transparent;border:1px solid rgba(232,245,66,.3);padding:10px 14px;border-radius:var(--r);transition:background .15s,border-color .15s;min-height:44px;cursor:pointer;font-family:var(--fb);text-decoration:none}
.btn-secondary:hover{background:rgba(232,245,66,.08);border-color:rgba(232,245,66,.5)}
.btn-secondary.is-disabled{opacity:.4;pointer-events:none}
.btn-tertiary{background:transparent;border:none;color:var(--mt);font-size:13px;cursor:pointer;font-family:var(--fb);padding:10px 0;text-decoration:underline;text-decoration-color:var(--g4);text-underline-offset:3px;min-height:44px;transition:color .15s,text-decoration-color .15s}
.btn-tertiary:hover{color:var(--wh);text-decoration-color:var(--g5)}

.export-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}

/* ALERTS */
.alert-warn{padding:12px 16px;background:rgba(255,190,61,.1);border:1px solid rgba(255,190,61,.3);border-radius:var(--r);color:var(--amber);font-size:13px;margin-bottom:14px}
.alert-err{padding:12px 16px;background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.2);border-radius:var(--r);color:var(--red);font-size:13px;margin-bottom:14px}
.alert-info{padding:12px 16px;background:rgba(232,245,66,.07);border:1px solid rgba(232,245,66,.18);border-radius:var(--r);color:var(--y);font-size:13px;margin-bottom:14px}

/* FOOTER */
.footnote{font-size:12px;color:var(--mt2);margin-top:32px;padding-top:18px;border-top:1px solid var(--g3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footnote a{color:var(--mt);text-decoration:underline;text-decoration-color:var(--g4);text-underline-offset:3px}
.footnote a:hover{color:var(--wh)}

/* SCROLLBAR */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--g2)}
::-webkit-scrollbar-thumb{background:var(--g4);border-radius:3px}

/* MOBILE */
@media(max-width:920px){
  .events-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .hub-filters{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .topbar{padding:0 14px;height:58px}
  .tb-logo{font-size:18px}
  .tb-logo .dot{font-size:24px}
  .tb-nav a{padding:5px 8px}
  .shell{padding:18px 14px 48px}
  .hero{padding:24px 0 18px;margin-bottom:18px}
  .hero h1{font-size:28px}
  .card-head{padding:14px 16px 12px}
  .card-body{padding:14px 16px}
  .events-grid{grid-template-columns:1fr;gap:12px}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .stat-tile .stat-value{font-size:20px}
  .hub-filters{grid-template-columns:1fr;gap:10px}
  .meetcat > summary{padding:12px 14px;flex-wrap:wrap}
  .meetcat-podium{order:3;width:100%;margin-top:4px}

  /* Stacked results table */
  .results-tbl thead{display:none}
  .results-tbl,.results-tbl tbody,.results-tbl tr,.results-tbl td{display:block;width:100%}
  .results-tbl tbody tr{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"place name time" "lane club status" "pzp pzp pzp";gap:4px 12px;padding:14px 14px;border-bottom:1px solid var(--g3);align-items:center}
  .results-tbl tbody tr:hover td{background:transparent}
  .results-tbl tbody td{padding:0;border-bottom:none}
  .results-tbl .td-place{grid-area:place;width:auto;font-size:24px;line-height:1}
  .results-tbl .td-name{grid-area:name;font-size:14px;color:var(--wh);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .results-tbl .td-time{grid-area:time;font-size:20px;line-height:1;text-align:right}
  .results-tbl .td-lane{grid-area:lane;font-size:11px;color:var(--mt2)}
  .results-tbl .td-lane::before{content:'Tor: ';color:var(--mt2)}
  .results-tbl .td-club{grid-area:club;font-size:11px;color:var(--mt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .results-tbl .td-club::before{content:'Klub: ';color:var(--mt2)}
  .results-tbl .td-status{grid-area:status;text-align:right}
  .results-tbl .td-pzp{grid-area:pzp;text-align:left}
  .results-tbl .td-pzp:empty{display:none}
  .results-tbl .empty-row{display:block}
  .results-tbl .empty-row td{display:block;grid-area:none;text-align:center;padding:28px 16px;font-size:13px}
}

/* Logo organizatora + sponsorzy (PR #3 — public archive) */
.organizer-logo-link{display:inline-flex;margin-bottom:10px;text-decoration:none}
.event-logo{max-height:56px;max-width:200px;object-fit:contain}
.title-sponsor{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-top:14px;background:rgba(232,245,66,0.06);border:1px solid rgba(232,245,66,0.18);border-radius:6px;color:var(--wh);text-decoration:none}
.title-sponsor a,.title-sponsor a:link,.title-sponsor a:visited{color:inherit;text-decoration:none;display:flex;align-items:center;gap:12px;width:100%}
.title-sponsor__label{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:#e8f542;font-weight:500}
.title-sponsor img{max-height:36px;max-width:140px;object-fit:contain}
.title-sponsor__name{font-size:14px;color:var(--wh)}
.sponsor-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;align-items:center;padding:14px 0}
.sponsor-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;text-decoration:none;color:var(--mt)}
.sponsor-tile:hover{color:var(--wh)}
.sponsor-tile img{max-height:48px;max-width:100%;object-fit:contain}
.sponsor-tile__name{font-size:11px;text-align:center}
