/* Adaptations for the PHP templates using the original design system. */
.admin-workspace { max-width:1280px;margin:0 auto;padding:32px; }
.admin-toolbar { display:flex;flex-wrap:wrap;gap:10px 20px;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:28px;font-size:14px;font-weight:700; }
.admin-toolbar a { color:var(--green); }
.admin-workspace h1 { font-size:36px;margin-bottom:24px; }
.admin-workspace h2 { font-size:25px;margin:35px 0 18px; }
.admin-editor { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;padding:24px;border:1px solid var(--line);margin:20px 0; }
.admin-editor label { display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600; }
.admin-editor input,.admin-editor select,.admin-editor textarea,.admin-filter input { box-sizing:border-box;min-width:0;max-width:100%;width:100%;border:1px solid #a8c3b7;border-radius:0;background:#fff;padding:12px;font:inherit;color:var(--ink); }
.admin-editor textarea { min-height:100px;resize:vertical; }
.submission-form input,.submission-form textarea { box-sizing:border-box;min-width:0;max-width:100%;border-radius:0; }
.admin-editor .checkbox-label { display:flex;align-items:center;gap:10px; }
.admin-editor input[type=checkbox] { width:auto; }
.admin-workspace button { padding:12px 18px;border:1px solid var(--green);border-radius:0;background:var(--green);color:white;font:inherit;font-weight:700;cursor:pointer; }
.admin-card { border:1px solid var(--line);padding:20px;margin:18px 0;background:#f5f7f4; }
.admin-workspace .directory-admin { display:grid;grid-template-columns:minmax(280px,0.8fr) minmax(0,1.2fr);gap:28px;align-items:start; }
.admin-workspace .directory-admin aside { min-width:0; }
.admin-workspace .directory-admin .admin-table { max-height:70vh;overflow:auto; }
.admin-workspace .directory-admin .admin-table-row { min-width:0;grid-template-columns:minmax(0,1fr);gap:3px;padding:12px; }
.admin-workspace .directory-admin .admin-table-row:first-child { display:none; }
.admin-workspace .directory-admin .admin-table-row span { font-size:12px;color:var(--muted); }
.admin-workspace .race-admin-row .admin-editor { display:block;margin:0;padding:0;border:0; }
.admin-workspace .race-admin-row .review-actions { display:flex;align-items:center;flex-wrap:wrap;gap:10px; }
.admin-workspace .race-admin-row .review-actions button { white-space:nowrap; }
.admin-workspace .race-delete-link { color:#8a4545;font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap; }
.admin-workspace .race-delete-link:hover,.admin-workspace .race-delete-link:focus-visible { text-decoration:underline; }
.admin-workspace .admin-form select[name=sport_code] { min-width:0;box-sizing:border-box;border:1px solid #a8c3b7;border-radius:0;background:#fff;padding:10px;color:var(--ink);font:inherit;font-size:12px; }
.race-detail-form [data-international-bonus][hidden] { display:none; }
.race-delete-panel { margin:18px 0 32px;padding:16px 18px;border:1px solid #d8abab;color:var(--ink); }
.race-delete-panel summary { color:#8a4545;font-weight:800; }
.race-delete-panel p { color:var(--muted);font-size:13px;line-height:1.5; }
.race-delete-panel .admin-editor { max-width:520px; }
.race-delete-panel .admin-editor label { display:grid;gap:6px;font-size:12px;font-weight:800; }
.race-delete-panel .admin-editor input { width:100%;box-sizing:border-box;border:1px solid #a8c3b7;padding:10px;font:inherit; }
.race-delete-panel .danger-button { border-color:#a44d4d;background:#8a4545;color:#fff; }
.admin-workspace > .admin-form { grid-template-columns:2fr 1fr 1fr 1fr 2fr auto; }
.admin-workspace .race-publication-control .admin-editor,.admin-workspace .race-completion-control .admin-editor { display:block;margin:0;padding:0;border:0; }
.admin-workspace .race-detail-form label { min-width:0; }
.admin-workspace .race-detail-form label select,.admin-workspace .race-detail-form label input[type=number] { width:100%;box-sizing:border-box; }
.admin-workspace .directory-admin-form label { display:grid;gap:6px;min-width:0;font-size:12px; }
.admin-workspace .directory-admin-form label input,.admin-workspace .directory-admin-form label select { box-sizing:border-box;width:100%;min-width:0;padding:10px;border:1px solid #a8c3b7;background:#fff;font:inherit; }
.admin-workspace .directory-admin .cup-picker { text-decoration:none;color:var(--ink); }
.visually-hidden { position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.admin-card .admin-editor { padding:0;border:0; }
.admin-workspace .claim-review-row .admin-editor { display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:0;padding:0;border:0; }
.admin-workspace .claim-review-row .admin-editor textarea { flex:1 1 230px;min-height:74px;border:1px solid #a8c3b7;padding:10px;font:inherit; }
.admin-workspace .claim-review-row .secondary-button { background:transparent;color:var(--green); }
.admin-filter { display:flex;align-items:end;gap:12px;margin:24px 0; }
.admin-filter label { display:grid;gap:7px; }
.admin-table-row,.admin-result-summary { display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) minmax(140px,1fr);gap:16px;padding:16px 10px;border-bottom:1px solid var(--line);align-items:center; }
.admin-result-summary { grid-template-columns:100px minmax(180px,2fr) 100px minmax(110px,1fr) auto; }
.admin-table-row:hover { background:#edf2ee; }
.admin-workspace details { margin:20px 0; }
.admin-workspace summary { cursor:pointer;font-weight:700;color:var(--green); }
.admin-message { padding:16px;background:#edf5e5;border:1px solid #b1c6a7;overflow-wrap:anywhere; }
.account-page { max-width:980px;margin:auto;line-height:1.5; }
.account-page h1,.account-page h2 { font-weight:400; }
.account-top { display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin-bottom:44px; }
.account-top .account-email { margin:0; }
.account-top .account-actions { justify-content:flex-end;margin:0; }
.account-actions { display:flex;flex-wrap:wrap;gap:10px;align-items:center; }
.account-actions .profile-claim-link,.account-actions button { box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin:0;padding:10px 13px;border-width:1px;border-style:solid;border-radius:0;font-family:inherit;font-size:13px;line-height:1.5;font-weight:800;text-decoration:none;white-space:nowrap; }
.account-actions form { margin:0; }
.submission-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px; }
.submission-form { min-width:0;display:grid;align-content:start;gap:11px;padding:20px 0 0;border:0;border-top:2px solid var(--ink); }
.my-submissions article { border-top:1px solid var(--line);padding:13px 0; }
.my-submissions .submission-dates { grid-column:2;display:flex;flex-wrap:wrap;gap:3px 16px;color:var(--muted);font-size:12px; }
.account-poll { margin:38px 0 0;padding:24px 0 0;border-top:2px solid var(--ink); }
.account-poll .poll-vote button { width:100%;padding:0;border:0;background:transparent;color:var(--ink);text-align:left; }
.account-poll .poll-vote > div.selected button { color:var(--green); }
.privacy-request { margin-top:32px; }
.account-actions .privacy-request { margin:0; }
.account-actions .privacy-button { background:transparent;color:#a43b32;border-color:#a43b32; }
.development-link { padding:16px;border:1px dashed #a87a25;background:#fff8e0; }
@media(max-width:760px) {
 .account-top { align-items:stretch;flex-direction:column; }
 .submission-grid,.admin-editor { grid-template-columns:minmax(0,1fr); }
 .submission-form { padding:20px 0 0; }
 .submission-form label { overflow:hidden; }
 .submission-form input { height:46px; }
 .submission-form input[type=date] { display:block;width:100%;max-width:100%;min-width:0;height:46px;line-height:22px;padding:11px 12px;appearance:none;-webkit-appearance:none; }
 .submission-form input[type=date]::-webkit-date-and-time-value { min-width:0;text-align:left; }
 .submission-form input[type=date]::-webkit-datetime-edit { min-width:0;padding:0; }
 .admin-workspace { padding:24px 16px; }
 .admin-workspace .directory-admin { grid-template-columns:minmax(0,1fr); }
 .admin-table { overflow-x:auto; }
 .admin-table-row { min-width:600px; }
 .admin-result-summary { min-width:670px; }
}
[hidden] { display:none!important; }
.page { max-width:none; padding:0; }
.page-heading,.profile-hero { max-width:1180px;margin:0 auto;padding:43px 28px 53px;border-bottom:1px solid var(--line); }
.profile-hero h1 { font-size:clamp(43px,5.5vw,70px); }
.desktop-nav { display:flex; }
.listing .table-row:hover,.race-row:hover { background:#edf2ee; }
.listing .table-row,.race-row { text-decoration:none; color:var(--ink); transition:background .18s; }
.listing .table-row > span,.race-title { min-width:0; }
.profile-hero .profile-stats { display:flex;flex-wrap:wrap;gap:14px 34px; }
.participant-pagination-controls a { border:1px solid #a8c3b7;padding:8px 12px;color:var(--green); }
.split-section .directory .directory-links a > span { color:var(--lime);text-align:left; }
#statistiky { scroll-margin-top:20px; }
.auth-form input[type="email"] { border-radius:0; }
.autocomplete { position:relative;flex:1;min-width:180px; }
.autocomplete input { width:100%;min-width:0; }
.search-suggestions { position:absolute;top:100%;left:0;right:0;z-index:30;display:block!important;border:1px solid #a8c3b7;background:var(--paper);box-shadow:0 8px 20px #13221d20; }
.search-suggestions[hidden] { display:none!important; }
.search-suggestions a { display:flex;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700; }
.search-suggestions small { color:var(--muted);font-weight:400; }
.search-suggestions a:hover,.search-suggestions [aria-selected="true"] { background:#e8f4f5; }
[data-zpi-categories] select { padding:9px;border:1px solid #a8c3b7;border-radius:0;background:#fff;font:inherit;margin-bottom:16px; }
.club-sort-form { display:flex;align-items:center;gap:12px;margin:0 0 24px; }
.page > .claim-panel { max-width:620px;padding-top:70px;padding-bottom:70px; }
.claim-panel .claim-form { display:grid;grid-template-columns:minmax(0,1fr);gap:18px;border:0; }
.claim-panel .claim-form label { min-width:0;display:grid;gap:8px; }
.claim-panel .claim-form input,.claim-panel .claim-form textarea { width:100%;min-width:0;box-sizing:border-box; }
.claim-panel .claim-form textarea { min-height:110px; }
.claim-panel .claim-form button { justify-self:start; }
.club-sort-form select,.club-sort-form button { padding:10px 12px;border:1px solid #a8c3b7;background:#fff;color:var(--green);font:inherit;font-size:13px; }
.club-sort-form button { background:var(--green);color:#fff;cursor:pointer; }
.club-catalog { overflow-x:auto;border-top:2px solid var(--ink); }
.club-catalog-row { display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(170px,1fr) 140px;gap:24px;align-items:center;min-height:64px;border-bottom:1px solid var(--line);font-size:14px; }
.club-catalog-row > span { text-align:left;color:var(--muted); }
.club-catalog-row:hover { background:#edf2ee; }
.club-catalog-header { font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted); }
.race-row.completed { background:#f4f6f4; }
.race-row.completed:hover { background:#e9eeea; }
.race-row.upcoming { background:#fff; }
.race-row.upcoming:hover { background:#edf2ee; }
.desktop-nav a.active { text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:1px;text-underline-offset:5px; }
.mobile-menu a.active { text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:1px;text-underline-offset:5px; }
.catalog-hero { padding-top:43px;padding-bottom:24px;border-bottom:0; }
.site-header.catalog-header { border-bottom:0; }
.catalog-listing { padding-top:24px; }
.catalog-listing .listing-filter { margin:14px 0 0; }
.catalog-listing .directory-header { border-top:0; }
.directory-search { max-width:1180px;margin:0 auto;padding-top:0;padding-bottom:0; }
.catalog-listing .directory-search { padding:0 0 18px; }
.directory-search > div { max-width:540px; }
.catalog-search { max-width:420px;margin:0 0 18px; }
.catalog-search input[name=q] { box-sizing:border-box;width:100%;min-width:0;border:1px solid #a8c3b7;border-radius:0;background:#fff;padding:11px 12px;font:inherit;font-size:13px; }
.catalog-filter-group { display:grid;grid-template-columns:86px minmax(0,1fr);align-items:start;gap:12px;margin:0 0 12px; }
.catalog-filter-label { padding-top:11px;color:var(--muted);font-size:12px;font-weight:800; }
.catalog-filter-tabs { min-width:0;max-width:100%;overflow-x:auto;margin:0;scrollbar-width:thin; }
.catalog-filter-tabs a { flex:none;white-space:nowrap; }
.season-statistics .season-ranking li.podium-gold { background:#f4e3a6; }
.season-statistics .season-ranking li.podium-silver { background:#dce2e5; }
.season-statistics .season-ranking li.podium-bronze { background:#eac9a8; }
.zpi-full-table .zpi-full-row.podium-gold { background:#f4e3a6; }
.zpi-full-table .zpi-full-row.podium-silver { background:#dce2e5; }
.zpi-full-table .zpi-full-row.podium-bronze { background:#eac9a8; }
.zpi-ranking-heading,.zpi-page-intro { position:relative;display:flex;align-items:center;gap:7px; }
.zpi-ranking-heading { margin-bottom:14px; }
.zpi-ranking-heading h3,.zpi-page-intro p { margin:0; }
.zpi-explainer { position:static;display:inline-block;flex:none; }
.zpi-explainer summary { display:grid;width:19px;height:19px;place-items:center;border:1px solid var(--green);border-radius:50%;color:var(--green);cursor:pointer;font-size:12px;font-weight:800;line-height:1;list-style:none; }
.zpi-explainer summary::-webkit-details-marker { display:none; }
.zpi-explainer summary:focus-visible { outline:2px solid var(--green);outline-offset:3px; }
.zpi-explainer-text { position:absolute;z-index:20;top:calc(100% + 9px);left:0;width:min(360px,100%);box-sizing:border-box;padding:14px 16px;background:var(--ink);color:#fff;font-size:12px;font-weight:500;line-height:1.55;letter-spacing:normal;text-align:left;box-shadow:0 8px 24px rgba(0,0,0,.17); }
.zpi-explainer-page .zpi-explainer-text { width:min(390px,100%); }
.profile-stats .zpi-profile-stat { flex-wrap:wrap;gap:6px 22px; }
.profile-stats .zpi-profile-link { text-decoration:underline;text-underline-offset:3px; }
.intro { grid-template-columns:minmax(0,1fr) minmax(340px,360px);gap:clamp(28px,4vw,48px); }
.season-card-heading { position:relative;width:100%; }
.season-card-heading::after { content:'↓';position:absolute;left:50%;top:-5px;transform:translateX(-50%);color:var(--lime);font-size:24px;font-weight:700;line-height:1; }
.header-season { flex:none;margin-left:18px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.12em;white-space:nowrap; }
.site-header .triathlon-marks { margin-left:20px; }
.season-switcher { display:flex;align-items:center;justify-content:center;gap:10px;width:max-content;max-width:100%;margin:14px 0 18px;border:0; }
.season-switcher a { display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:5px 3px;color:var(--green);font-weight:800;line-height:1;text-decoration:none; }
.season-switcher a:hover,.season-switcher a:focus-visible { text-decoration:underline;text-underline-offset:5px; }
.season-switcher a.selected { min-width:92px;font-size:38px;letter-spacing:-.065em; }
.season-switcher a.adjacent { font-size:19px;opacity:.66; }
.season-switcher-spacer { width:58px;flex:none; }
.season-card .season-carousel { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;width:min(100%,300px);margin:14px auto 0;touch-action:pan-y;transform:translateX(var(--season-drag,0px));transition:transform .22s cubic-bezier(.2,.7,.2,1); }
.season-card .season-carousel.is-dragging { transition:none; }
.season-card .season-carousel-current { color:#fff;font-size:63px;font-weight:800;letter-spacing:-.065em;line-height:1;white-space:nowrap; }
.season-card .season-carousel a { display:flex;align-items:center;gap:3px;min-width:0;color:#fff;font-size:31px;font-weight:700;letter-spacing:-.025em;line-height:1;opacity:.76;transition:opacity .18s ease; }
.season-card .season-carousel a span { color:inherit;font-size:inherit;letter-spacing:inherit; }
.season-card .season-carousel a:hover,.season-card .season-carousel a:focus-visible { color:#fff;opacity:1;text-decoration:none; }
.season-card .season-carousel a:focus-visible { outline:2px solid #fff;outline-offset:5px; }
.season-card .season-carousel-previous { justify-self:end;justify-content:flex-end; }
.season-card .season-carousel-next { justify-self:start;justify-content:flex-start; }
.season-card .season-carousel-empty { width:1px; }
.season-carousel.is-entering-next .season-carousel-current { animation:season-enter-right .2s ease-out both; }
.season-carousel.is-entering-previous .season-carousel-current { animation:season-enter-left .2s ease-out both; }
@keyframes season-enter-right { from { transform:translateX(12px);opacity:.6; } }
@keyframes season-enter-left { from { transform:translateX(-12px);opacity:.6; } }
@media(prefers-reduced-motion:reduce) { .season-card .season-carousel,.season-card .season-carousel a { transition:none; } .season-carousel.is-entering-next .season-carousel-current,.season-carousel.is-entering-previous .season-carousel-current { animation:none; } }
.admin-workspace > .season-switcher { margin:12px 0 24px; }
.season-scope-note { margin:-10px 0 24px;color:var(--muted);font-size:12px;line-height:1.5; }
@media(max-width:760px) {
 .intro { grid-template-columns:minmax(0,1fr);gap:28px; }
 .season-card { min-width:0;padding:24px 18px; }
 .season-card .season-carousel { width:min(100%,250px); }
 .header-season { margin-left:9px;font-size:10px;letter-spacing:.04em; }
 .site-header .triathlon-marks { margin-left:8px;gap:5px; }
 .season-card .season-carousel-current { font-size:clamp(45px,16.8vw,54px); }
 .season-card .season-carousel a { font-size:clamp(20px,7.6vw,27px); }
 .catalog-hero { padding-top:30px;padding-bottom:18px; }
 .catalog-listing { padding-top:18px; }
 .directory-search { padding-top:0; }
 .catalog-filter-group { grid-template-columns:minmax(0,1fr);gap:4px; }
 .catalog-filter-label { padding-top:0; }
}
@media(max-width:365px) { .site-header .triathlon-marks { display:none; } }
.athlete-state.active { box-shadow:none; }
.directory-filters select,.directory-sort select,.club-sort-form select { border-radius:0; }
@media(max-width:760px) {
 .club-catalog-row { min-width:600px; }
 .club-sort-form { flex-wrap:wrap; }
}
.race-badge { height:22px;min-height:22px;box-sizing:border-box;padding:2px 6px;line-height:16px;align-items:center; }
.detail-meta > a { height:22px;box-sizing:border-box;display:inline-flex;align-items:center;padding:2px 6px;font-size:10px;line-height:16px; }
.profile-race-badges { display:block;margin-top:7px; }
.profile-claim-link.profile-claim-highlight { color:#a53636;border-color:#d5a2a2;background:#fff3f0; }
.profile-claim-link.profile-claim-highlight:hover { background:#f9e4de; }
.search button { border-radius:0;background:var(--green);color:#fff;border:1px solid var(--green);padding:10px 16px;font:inherit;font-size:13px;font-weight:700; }
.search input { border-radius:0;border-color:#a8c3b7; }
.club-members { background:transparent;color:var(--ink); }
.listing .athlete-result-row.zpi-best,.listing .athlete-result-row.zpi-best:hover { background:#edf7f1; }
.page > .auth-form { max-width:620px;margin:30px auto 50px;padding:0 28px; }
@media(max-width:760px) { .page > .auth-form { padding:0 18px; } }
/* Legacy admin list names coexist with the public directory panel. */
section.directory { max-width:1180px;margin:auto;background:transparent;color:var(--ink);padding:20px 28px; }
section.directory a { display:flex;justify-content:space-between;padding:19px 0;border-bottom:1px solid var(--line); }
.race-row { grid-template-columns:78px minmax(0,1fr) auto auto auto; }
@media(max-width:760px) {
 .desktop-nav { display:none; }
 .page-heading,.profile-hero { padding:43px 18px 35px; }
 .profile-hero .profile-stats { gap:14px 20px; }
 .race-row { grid-template-columns:58px minmax(0,1fr) auto auto; }
 .athlete-result-row { grid-template-columns:76px minmax(0,1fr) 60px 20px; }
 .athlete-result-row small { white-space:normal; }
 .athlete-result-row .zpi-score { display:block; }
}
