:root{--green:#07896e;--deep:#073e35;--ink:#12382f;--paper:#f6f7f2;--line:#dce5df;--muted:#64766e;--gold:#89670e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{touch-action:manipulation}:focus-visible{outline:3px solid #e3a62b;outline-offset:4px}.skip{position:absolute;top:-100px;left:10px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}header{display:flex;align-items:center;gap:24px;padding:18px 4%;background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0}.brand img{border-radius:5px;object-fit:contain}.brand span{font-size:10px;letter-spacing:1.5px;line-height:1.4}.brand strong{display:block;font-size:17px;letter-spacing:.5px}nav{display:flex;align-items:center;gap:20px;margin-left:auto}nav a{font-size:13px;text-decoration:none;white-space:nowrap;padding:8px 0}nav a:hover,nav a[aria-current]{color:var(--green);box-shadow:0 2px var(--green)}.editor-link{font-size:11px;text-decoration:none;border:1px solid var(--line);padding:8px 12px;border-radius:3px;white-space:nowrap}h1,h2,h3{font-family:'Arial Narrow',Arial,sans-serif;line-height:1.06;letter-spacing:-1px;margin:0;font-weight:800}h1{font-size:clamp(45px,5.6vw,80px)}h2{font-size:clamp(28px,3vw,42px)}h3{font-size:22px;letter-spacing:-.5px}em{font-style:normal;color:#67d1ad}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 20px}.home-hero{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--deep);color:#fff;min-height:620px}.hero-copy{padding:75px 10% 45px}.hero-copy h1{font-size:clamp(48px,6vw,83px);letter-spacing:-2.5px}.hero-copy>p:not(.eyebrow){color:#bbd3c9;line-height:1.8;margin:28px 0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--green);border:0;border-radius:3px;color:white;font-weight:bold;font-size:13px;padding:15px 22px;text-decoration:none}.button:hover{filter:brightness(1.1)}.button.light{background:#e7f4ed;color:var(--deep)}.hero-meta{display:flex;gap:18px;align-items:center;border-top:1px solid #ffffff25;padding-top:25px;margin-top:40px;font-size:11px;color:#b9d3c7}.hero-meta b{font-size:20px;letter-spacing:3px;color:#80d2b6}.slideshow{position:relative;min-width:0;background:#052b25;display:flex;flex-direction:column;justify-content:center;padding:25px 0}.slides{width:100%;aspect-ratio:1.6;position:relative;overflow:hidden}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;visibility:hidden;transition:opacity .5s}.slide.active{opacity:1;visibility:visible}.slide-controls{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 5px;color:#e3f6ed;font-size:12px;letter-spacing:2px}.slide-controls button{color:white;background:none;border:1px solid #ffffff50;border-radius:50%;width:38px;height:38px;margin-left:6px}.slide-dots{display:flex;gap:8px;padding:15px 28px}.slide-dots button{width:8px;height:8px;border:0;border-radius:50%;background:#53796d;padding:0}.slide-dots button[aria-pressed=true]{background:#92e5c6}.section{padding:65px 5%;max-width:1600px;margin:auto}.section-title{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-title a{font-size:12px}.athlete-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.athlete-card{display:grid;grid-template-columns:42% 1fr;text-decoration:none;background:white;border:1px solid var(--line);min-height:245px;overflow:hidden;border-radius:4px}.card-image{background:linear-gradient(145deg,#05614d,#073e35);display:flex;align-items:center;justify-content:center;min-height:245px}.card-image img{width:100%;height:100%;object-fit:cover}.card-image>span{color:#6bceaa;font-size:90px;font-weight:bold}.card-copy{padding:28px}.card-copy h3{font-size:32px}.card-copy p:not(.eyebrow){font-size:12px;color:var(--muted)}.card-link{display:block;color:var(--green);font-weight:bold;font-size:12px;margin-top:25px}.green-band{background:var(--deep);color:#f4faf6;padding:60px 10%}.green-band p:not(.eyebrow){color:#bed6c9;max-width:600px}.highlights{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px}.highlights img{width:100%;height:auto;border-radius:4px}.highlights p{color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 5%;background:#e9eee7;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer p{margin:6px 0}.foot-brand strong{font-size:13px}.foot-brand span{font-size:9px}.page-heading{padding:65px 5% 40px;background:#e8efe7}.page-heading h1{font-size:clamp(40px,5vw,67px)}.lead{max-width:720px;font-size:16px;color:var(--muted);margin:24px 0 0}.top-less{padding-top:35px}.athlete-layout{display:grid;grid-template-columns:250px minmax(0,1fr);border:1px solid var(--line);background:white}.identity{padding:25px;background:#eaf0e7;border-right:1px solid var(--line)}.identity h2{font-size:32px}.identity .eyebrow{margin-top:25px;font-size:9px}.profile-photo{width:100%;height:235px;object-fit:cover;object-position:center}.identity>p,.identity>a{font-size:12px}.identity-note{border-top:1px solid #cbd8cb;margin-top:22px;padding-top:20px;font-size:12px}.identity-note p{font-size:11px;color:var(--muted)}.initials{height:220px;background:var(--deep);color:#72d4ae;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:80px;font-weight:bold}.initials span{font-size:9px;letter-spacing:2px}.career{padding:35px;min-width:0}.career h2{font-size:32px}.muted{color:var(--muted);font-size:13px}.small{font-size:11px;color:var(--muted);line-height:1.6}.legend{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;margin:20px 0}.record-label{font-size:10px;color:#886517}.timeline{display:flex;gap:14px;flex-wrap:nowrap;overflow-x:auto;padding:10px 3px 20px;scrollbar-width:thin}.year{position:relative;flex:0 0 105px;border:0;background:none;padding:0;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:8px}.year:not(:last-child):after{content:'';height:1px;width:36px;background:#c9d8cc;position:absolute;left:90px;top:43px}.circle{width:88px;height:88px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1px solid #c9d8cc;border-radius:50%;background:white;z-index:1}.circle b{font-size:17px}.circle small{font-size:10px;white-space:nowrap}.year.selected .circle{border:2px solid var(--green);box-shadow:0 0 0 4px #e1f1e8}.year.milestone .circle{background:var(--green);border-color:var(--green);color:white}.year-label{font-size:10px;min-height:32px;max-width:105px}.year .record-label{font-size:9px}.year-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:30px;margin-top:30px}.year-toolbar label{font-size:10px;margin:0}.year-toolbar select{padding:8px;max-width:180px}.summary-line{font-size:12px;background:#eaf3eb;padding:12px 15px}.notice{background:#eef3e7;border-left:3px solid var(--green);font-size:13px;padding:18px 20px;color:#496453}.result-card{display:grid;grid-template-columns:115px 1fr;border:1px solid var(--line);border-radius:3px;background:#fff;margin:12px 0;padding:22px;gap:20px}.result-date{font-size:11px;font-weight:bold;color:var(--green)}.result-card h3{font-size:18px;letter-spacing:0;line-height:1.3}.performance{font-size:14px;margin:10px 0;font-weight:bold}.badges{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-block;border-radius:3px;font-size:10px;padding:5px 8px;letter-spacing:0}.gold{background:#f6edd0;color:#775b12}.silver{background:#e8eced;color:#4a5a65}.bronze{background:#f3e1d5;color:#86532d}.cup{background:#e3f1dd;color:#39682b}.record{background:#f4e9c7;color:#775a0c}.honorary{background:#ece3f3;color:#6e5082}.verification{font-size:10px;color:#63776b;margin:12px 0 0}.result-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:12px;font-size:10px}.athlete-tag{font-size:10px;color:var(--green);display:inline-block;margin-bottom:9px}.filter-bar{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;gap:18px;padding:22px;background:#e9efe6;border:1px solid var(--line)}label{display:grid;gap:7px;font-size:12px;margin:12px 0}input,select{min-width:0;background:white;color:var(--ink);border:1px solid #c7d5c9;padding:10px 12px;border-radius:3px;width:100%}.filter-bar label{margin:0}#archiveCount{font-size:12px;color:var(--muted)}.reading{max-width:1050px}.reading h2{font-size:30px;margin:35px 0 18px}.reading p,.reading li{color:#526b5d;line-height:1.8}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:12px}.history-event{display:grid;grid-template-columns:100px 1fr;gap:30px;border-bottom:1px solid var(--line);padding:25px 0}.history-event>b{font-size:30px;color:var(--green)}.history-event h2{margin:0;font-size:28px}.history-event a{font-size:12px}.calendar-event{display:grid;grid-template-columns:150px 1fr 80px;gap:20px;border-bottom:1px solid var(--line);padding:22px 0;align-items:start}.calendar-event time{font-size:12px;color:var(--green)}.calendar-event h3{font-size:17px}.calendar-event a{font-size:11px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.contact-panel{background:var(--deep);color:white;padding:40px;border-radius:4px}.contact-panel p{color:#c3daca;font-size:13px}.contact-logo{width:150px;height:150px;border-radius:5px;margin-bottom:22px}.contact-grid>div>p{font-size:13px}.draft-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}.draft-form button{align-self:end;margin:12px 0}.admin-buttons{display:flex;gap:22px;margin:30px 0}.plain-button{background:none;border:0;color:var(--green);text-decoration:underline;font-size:12px}.empty-state{padding:30px;border:1px dashed var(--line);font-size:13px;color:var(--muted)}.total-line{font-weight:bold;font-size:12px;color:var(--deep)}.trainer-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.trainer{background:white;border:1px solid var(--line);padding:35px;border-radius:4px}.trainer .initials{height:130px;font-size:56px;margin-bottom:25px}.trainer h2{font-size:34px;margin:15px 0}.trainer p{font-size:13px}.trainer a{font-size:11px}.trainer ul{font-size:12px;padding-left:20px}code{font-size:12px;background:#e8ede6;padding:2px 5px}@media(max-width:1150px){header{gap:16px;flex-wrap:wrap}nav{order:3;width:100%;justify-content:center;overflow:auto;gap:22px}.editor-link{margin-left:auto}.home-hero{min-height:0}.hero-copy{padding:55px 8%}.career{padding:25px}.filter-bar{grid-template-columns:1fr 1fr}}@media(max-width:760px){header{padding:12px 5%}.brand img{width:48px;height:48px}.brand strong{font-size:15px}nav{justify-content:flex-start;gap:22px;padding:5px 0}.home-hero{grid-template-columns:1fr}.hero-copy{padding:45px 7%}.hero-copy h1{font-size:59px}.hero-meta{margin-top:30px}.slideshow{padding:0 0 8px}.slides{aspect-ratio:1.6}.slide-controls{padding:13px 20px 0}.slide-dots{padding-left:20px}.section{padding:40px 5%}.section-title{align-items:start}.section-title>a{display:none}.athlete-cards,.highlights,.contact-grid,.trainer-grid{grid-template-columns:1fr}.athlete-card{grid-template-columns:38% 1fr;min-height:210px}.card-image{min-height:210px}.card-copy{padding:22px}.card-copy h3{font-size:28px}.green-band{padding:45px 7%}.page-heading{padding:40px 5% 30px}.page-heading h1{font-size:43px}.lead{font-size:14px}.athlete-layout{grid-template-columns:1fr}.identity{border-right:0;display:grid;grid-template-columns:110px 1fr;gap:10px 20px}.profile-photo,.initials{grid-row:1/5;height:145px;width:110px;font-size:50px}.identity .eyebrow{margin:0}.identity h2{font-size:28px}.identity>p{margin:0}.identity-note,#careerTotals{grid-column:1/-1}.identity-note{margin-top:8px;padding-top:15px}.career{padding:20px}.career h2{font-size:28px}.year{flex-basis:100px}.year-toolbar{flex-wrap:wrap}.result-card{grid-template-columns:1fr;gap:7px;padding:18px}.result-card h3{font-size:17px}.filter-bar{grid-template-columns:1fr 1fr;padding:15px;gap:12px}.source-grid{grid-template-columns:1fr}.calendar-event{grid-template-columns:1fr;gap:8px}.history-event{grid-template-columns:65px 1fr;gap:18px}.history-event>b{font-size:25px}.history-event h2{font-size:24px}.draft-form{grid-template-columns:1fr}.contact-panel{padding:28px}.trainer{padding:25px}.trainer .initials{width:100%;height:120px}footer{flex-direction:column;align-items:start}.highlights{gap:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.slide{transition:none}}

.roster-scroll{overflow-x:auto;border:1px solid var(--line);background:white}.roster-head,.roster-row{display:grid;grid-template-columns:160px 220px var(--years);width:max-content;min-width:100%;align-items:stretch}.roster-head{background:var(--deep);color:white;position:sticky;top:0}.roster-head>div{padding:16px 8px;text-align:center;font-weight:bold}.roster-row{border-bottom:1px solid var(--line)}.roster-person{padding:20px 10px;text-align:center;text-decoration:none}.roster-person img{width:100px;height:100px;border-radius:50%;object-fit:cover;object-position:center 25%;border:3px solid #dbece3}.roster-person strong{display:block;font-size:15px;margin-top:8px}.roster-info{padding:22px 15px;border-right:1px solid var(--line);font-size:12px}.roster-info p{margin:3px 0}.roster-cell{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:82px;border-right:1px solid #edf0ea;background:linear-gradient(transparent 49.5%,#d7e3db 50%,transparent 50.5%);padding:12px 3px}.roster-dot{width:65px;height:65px;border:1px solid #c6d6cb;border-radius:50%;background:white;color:var(--ink);font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center}.roster-dot.birth{border:3px solid var(--deep)}.roster-dot.training{background:var(--green);color:white}.roster-dot.first{border:2px dashed var(--green)}.roster-dot.active{outline:3px solid #e3a62b;outline-offset:2px}.roster-dot small{font-size:9px}.roster-cell>span{font-size:9px;max-width:78px;text-align:center;line-height:1.3;min-height:25px;margin-top:5px}.roster-filter{max-width:300px}#rosterDetails{scroll-margin-top:20px;margin-top:30px}textarea{width:100%;font:inherit;padding:12px;border:1px solid #c7d5c9;border-radius:3px}#adminWorkspace h2{margin:35px 0 15px}#adminStatus{white-space:pre-line}#adminStatus.error{color:#a52323}.draft-form [type=checkbox]{width:auto}[hidden]{display:none!important}
.roster-person,.roster-info{position:sticky;background:white;z-index:2}.roster-person{left:0}.roster-info{left:160px}.roster-head>div:first-child{position:sticky;left:0;background:var(--deep);z-index:3}.roster-head>div:nth-child(2){position:sticky;left:160px;background:var(--deep);z-index:3}@media(max-width:760px){.roster-head,.roster-row{grid-template-columns:120px 180px var(--years)}.roster-info,.roster-head>div:nth-child(2){left:120px}.roster-person img{width:80px;height:80px}.roster-person strong{font-size:12px}.roster-info{font-size:10px;padding:16px 10px}}

/* Round athlete portraits across cards, list and profiles. */
.athlete-card{grid-template-columns:170px 1fr;align-items:center;min-height:220px}.card-image{background:none;min-height:0;width:140px;height:140px;margin:20px auto;border-radius:50%;overflow:hidden;display:flex}.card-image img{width:100%;height:100%;object-fit:cover;object-position:center 22%;border-radius:50%}.card-image>span{background:var(--deep);width:100%;height:100%;display:grid;place-items:center;font-size:50px}.card-copy h3{font-size:26px}.profile-photo{display:block;width:170px;height:170px;max-width:100%;border-radius:50%;object-fit:cover;object-position:center 22%;margin:0 auto 18px;border:3px solid #d2e4d8}.identity h2{text-align:center;font-size:27px}.identity .initials{border-radius:50%;width:170px;height:170px;margin:auto}.identity{display:block}.card-copy .eyebrow{margin-bottom:12px}.card-image+.card-copy{padding:20px}.card-copy h3{margin-bottom:12px}.club-medals-table{border-collapse:collapse;width:100%;font-size:13px}.club-medals-table th,.club-medals-table td{padding:13px;border-bottom:1px solid var(--line);text-align:left}.club-medals-table thead{background:var(--deep);color:white}#clubYearMedals{overflow:auto}.latest-year{box-shadow:0 0 0 3px #07896e33}@media(max-width:760px){.athlete-card{grid-template-columns:135px 1fr}.card-image{width:105px;height:105px}.profile-photo{width:150px;height:150px;grid-row:auto}.identity h2{font-size:26px}.card-copy h3{font-size:23px}.identity .eyebrow{margin:20px 0 8px}.roster-person img{object-position:center 22%}}

.card-portrait{text-align:center;padding:15px 5px}.card-portrait .card-image{margin:5px auto 12px}.card-portrait>strong{display:block;font-size:14px}.card-copy{min-width:0}

.timeline-gap{align-self:flex-start;display:grid;place-items:center;flex:0 0 36px;height:88px;font-size:26px;color:var(--muted)}.school-year .circle,.roster-dot.school-year{border:2px solid #c99b29;background:#fff6d9;color:#694c06}.school-year .circle small{font-size:9px}.school-champion{border:2px solid #c99b29;background:linear-gradient(120deg,#fff8df,#fff)}.school-title{font-size:11px;letter-spacing:1px;font-weight:bold;color:#805d0b;margin:0 0 14px}.school-champion h3{font-size:23px}
@media(max-width:760px){.roster-head,.roster-row{grid-template-columns:92px var(--years)}.roster-info,.roster-head>div:nth-child(2){display:none}.roster-person{width:92px;padding:14px 5px}.roster-person img{width:62px;height:62px;border-width:2px}.roster-person strong{font-size:10px;line-height:1.3;max-width:82px;margin:7px auto 0}.roster-head>div:first-child{padding:13px 4px;font-size:11px}.roster-cell{min-width:82px}.roster-row{min-height:120px}}

.photo-upload{padding:18px;background:#edf4ed;border:1px solid var(--line)}#athletePhotoPreview{width:120px;height:120px;object-fit:cover;object-position:center 22%;border-radius:50%;display:block;margin:15px 0}#photoUploadStatus{font-size:12px}#homeAthletes{display:flex;flex-wrap:wrap;justify-content:center;align-items:start;gap:30px}#homeAthletes .athlete-card{display:flex;flex-direction:column;width:210px;min-height:0;padding:8px;border:0;background:transparent;overflow:visible;text-align:center}#homeAthletes .card-portrait{width:100%;padding:0}#homeAthletes .card-image{width:155px;height:155px;margin:0 auto 15px;border:3px solid #d1e4d8;border-radius:50%;overflow:hidden}#homeAthletes .card-image img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 22%}#homeAthletes .card-portrait>strong{font-size:19px}#homeAthletes .card-copy{padding:10px 0!important}#homeAthletes .card-copy .eyebrow{display:none}#homeAthletes .card-copy p{margin:0;font-size:11px}#homeAthletes .card-link{margin-top:8px}@media(max-width:760px){#homeAthletes{gap:22px 12px}#homeAthletes .athlete-card{width:145px;padding:0}#homeAthletes .card-image{width:120px;height:120px}#homeAthletes .card-portrait>strong{font-size:15px}}

/* Full-bleed landscape slideshow. */
.home-hero{align-items:stretch}.slideshow{display:block;padding:0;position:relative;min-height:420px;overflow:hidden}.slideshow .slides{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.slideshow .slide{object-fit:cover;width:100%;height:100%}.slideshow .slide-controls{position:absolute;z-index:2;bottom:42px;left:0;right:0;padding:25px 24px 8px;background:linear-gradient(transparent,#03251c80);text-shadow:0 1px 4px #000}.slideshow .slide-controls button{background:#052b2580}.slideshow .slide-dots{position:absolute;bottom:0;left:0;right:0;z-index:2;background:#03251c80;padding:14px 24px;flex-wrap:wrap;gap:10px}.slideshow .slide-dots button{width:10px;height:10px}.slideshow-empty{position:absolute;inset:0;display:grid;place-items:center;color:white;text-align:center;padding:30px}.slideshow-editor{padding:25px;background:#edf3eb;border:1px solid var(--line);margin:30px 0}.slide-editor-row{display:grid;grid-template-columns:200px 1fr auto;gap:20px;padding:20px 0;border-bottom:1px solid #d3dfd4;align-items:center}.slide-editor-row img{width:200px;aspect-ratio:16/9;object-fit:cover;border-radius:4px}.slide-editor-actions{display:flex;flex-direction:column;gap:8px}.slide-editor-actions button{padding:8px 12px;background:white;border:1px solid #bacdbf;border-radius:3px}.slide-editor-row label{margin:5px 0}.slideshow-editor button:disabled{cursor:default;opacity:.45}@media(max-width:760px){.slideshow{min-height:0;height:auto;aspect-ratio:16/9}.slideshow .slide-controls{bottom:30px;padding:14px 16px 4px}.slideshow .slide-controls button{width:32px;height:32px}.slideshow .slide-dots{padding:10px 16px;gap:8px}.slideshow .slide-dots button{width:8px;height:8px}.slideshow-editor{padding:15px}.slide-editor-row{grid-template-columns:1fr;gap:10px}.slide-editor-row img{width:100%}.slide-editor-actions{flex-direction:row;flex-wrap:wrap}}
@media(min-width:761px){.home-hero{grid-template-columns:.75fr 1.25fr;min-height:0}.hero-copy{padding:45px 9% 35px}.hero-copy h1{font-size:clamp(42px,4.8vw,72px)}.hero-meta{margin-top:24px}.slideshow{min-height:0}}

/* Management update: visible mobile hero, movable crop, group colors. */
@media(max-width:760px){.home-hero{display:flex;flex-direction:column}.home-hero .slideshow{display:block!important;order:-1;flex:none;width:100%;height:56.25vw;min-height:200px;max-height:450px;aspect-ratio:16/9}.slideshow .slides{display:block!important;position:absolute;inset:0;height:100%}.hero-copy{padding:30px 7%}.hero-copy h1{font-size:46px}}
.person-photo,.person-placeholder{width:150px;height:150px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 20px}.person-placeholder{display:grid;place-items:center;background:var(--deep);color:white;font-size:45px}.trainer h2 a{text-decoration:none;font-size:inherit}.year-club-total small,.year-club-total b{display:block;white-space:nowrap;font-size:11px}.year-club-total b{font-size:15px;margin-bottom:7px}.roster-row .roster-person,.roster-row .roster-info{background:var(--group-color)}.roster-row{box-shadow:inset 0 3px var(--group-color)}.roster-row .roster-cell{background-color:color-mix(in srgb,var(--group-color) 35%,white)}.group-color-row{display:flex;gap:18px;align-items:center;padding:6px}.group-color-row input{width:65px;height:40px;padding:3px}.slide-crop{position:relative;aspect-ratio:16/9;overflow:hidden;background:#073e35;touch-action:none;cursor:grab;border:2px solid #07896e}.slide-crop:active{cursor:grabbing}.slide-editor-row .slide-crop img{width:100%;height:100%;aspect-ratio:auto;pointer-events:none;border-radius:0}.slide-crop:after{content:'Prevuci sliku da podesiš kadar';position:absolute;bottom:0;left:0;right:0;font-size:10px;padding:4px;background:#0009;color:white;text-align:center;pointer-events:none}.slide-editor-row[draggable=true]{border:1px solid #c7d5c9;padding:15px;margin-bottom:10px}.slide-editor-row.drag-over{outline:3px solid var(--green)}

.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.gallery-thumb{padding:0;border:1px solid var(--line);background:white;color:var(--ink);text-align:left;overflow:hidden;border-radius:6px}.gallery-thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 25%;transition:transform .2s}.gallery-thumb:hover img{transform:scale(1.03)}.gallery-thumb span{display:block;padding:14px;font-size:12px}.gallery-dialog{width:min(1100px,96vw);max-width:96vw;padding:20px;background:#073e35;color:white;border:0;border-radius:8px;max-height:95dvh}.gallery-dialog::backdrop{background:#000d}.gallery-dialog figure{margin:30px 0 12px}.gallery-dialog figure img{display:block;width:100%;height:65dvh;object-fit:contain}.gallery-dialog figcaption{font-size:13px;text-align:center;padding-top:14px}.gallery-dialog button{background:#ffffff19;border:1px solid #ffffff66;color:white;padding:9px 15px;border-radius:4px}.gallery-dialog #galleryClose{position:absolute;right:14px;top:8px;font-size:24px}.gallery-navigation{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.gallery-editor-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-editor-item{border:1px solid var(--line);padding:12px;background:white}.gallery-editor-item img{width:100%;height:160px;object-fit:contain;background:#edf3eb}.gallery-edit-actions{display:flex;gap:6px;flex-wrap:wrap}.gallery-edit-actions button{background:white;border:1px solid var(--line);padding:7px;font-size:11px}.gallery-admin{margin:35px 0;padding:20px;background:#eef3e9}@media(max-width:760px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-editor-list{grid-template-columns:1fr}.gallery-thumb span{padding:10px;font-size:11px}.gallery-dialog{padding:12px}.gallery-dialog figure img{height:60dvh}.gallery-navigation button{font-size:11px;padding:9px}.gallery-admin{padding:12px}}

.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.album-card strong,.album-card small{display:block}.album-card strong{font-size:20px;margin-bottom:8px}.album-empty{height:210px;display:grid;place-items:center;background:var(--deep);color:white}.album-admin{background:white;padding:20px;margin:20px 0}.gallery-thumb img{object-position:center top}#galleryAlbumTitle{margin:25px 0 12px}@media(max-width:760px){.album-grid{grid-template-columns:1fr}.album-admin{padding:12px}}

.result-types{border:1px solid #cee3d9;border-radius:14px;padding:16px;margin:20px 0;display:flex;flex-wrap:wrap;gap:12px 24px}.result-types legend{font-weight:700;padding:0 8px}.result-types label{display:flex;align-items:center;gap:7px;cursor:pointer}.result-types input{width:18px;height:18px;accent-color:#078667}.result-types p{flex-basis:100%;margin:0}

/* Compact athlete heading, scoped to roster page. */
.roster-intro{max-width:1600px;margin:auto;padding:24px 5% 12px;display:grid;grid-template-columns:minmax(240px,1fr) minmax(310px,440px);column-gap:40px;row-gap:10px;align-items:start}.roster-title{grid-column:1;grid-row:1/3;align-self:center}.roster-title h1{font-size:clamp(36px,4vw,56px)}.roster-title p{margin:10px 0 0;color:var(--muted);font-size:13px}.roster-group-compact{grid-column:2;margin:0;gap:4px;max-width:100%}.roster-group-compact select{padding:8px 10px}.roster-category-panel{grid-column:2;min-width:0}.roster-category-panel>summary{cursor:pointer;font-size:13px;font-weight:bold;padding:8px 0}.roster-category-panel .result-types{margin:0;padding:8px 12px 10px;display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;border-radius:8px}.roster-category-panel .result-types label{margin:0;min-height:34px;font-size:12px;gap:7px}.roster-category-panel legend{font-size:11px}.roster-help{grid-column:1/-1;font-size:12px}.roster-help summary{cursor:pointer;min-height:30px;color:var(--green);width:fit-content;padding:5px 0}.roster-help>div{background:white;border:1px solid var(--line);border-radius:8px;padding:8px 16px;margin-top:5px;max-width:900px}.roster-help p{margin:8px 0}.roster-section{padding-top:0;padding-bottom:35px}.roster-section .roster-head>div{padding-top:10px;padding-bottom:10px}
@media(min-width:761px){.roster-category-panel>summary{display:none}}
@media(max-width:760px){.roster-intro{grid-template-columns:minmax(0,1fr) minmax(140px,1fr);column-gap:12px;row-gap:6px;padding-top:16px;padding-bottom:8px}.roster-title{grid-row:1;align-self:center}.roster-title h1{font-size:32px;letter-spacing:-1px}.roster-title p{display:none}.roster-group-compact{font-size:10px}.roster-group-compact select{font-size:12px;min-height:40px}.roster-category-panel{grid-column:1/-1}.roster-category-panel>summary{border:1px solid var(--line);border-radius:6px;background:white;padding:8px 12px;min-height:40px}.roster-category-panel .result-types{margin-top:6px;padding:6px 10px}.roster-category-panel .result-types label{min-height:40px}.roster-help summary{min-height:32px}.roster-section{padding-top:0}.roster-section .roster-head>div{padding-top:8px;padding-bottom:8px}}

.roster-inactive-heading{padding:12px 16px;background:#e1e5e0;border-top:2px solid #aab6ac;font-size:12px;display:flex;gap:16px;align-items:center}.roster-inactive-heading strong{position:sticky;left:16px;min-width:160px}.roster-inactive-heading span{position:sticky;left:190px}.roster-initials{width:100px;height:100px;border-radius:50%;background:var(--deep);color:white;display:grid;place-items:center;margin:auto;font-size:30px;font-weight:bold;border:3px solid #dbece3}.athlete-placeholder{display:grid;place-items:center;background:var(--deep);color:white;font-size:44px;font-weight:bold;border-radius:50%}.inactive-badge{background:#e1e5e0;padding:8px;border-radius:6px;font-size:11px}.athlete-bests{margin:15px 0;font-size:12px}.athlete-bests summary{cursor:pointer;color:var(--green);font-weight:bold}.athlete-bests p{line-height:1.6}@media(max-width:760px){.roster-initials{width:60px;height:60px;font-size:20px}.roster-inactive-heading{font-size:10px;display:block;padding:8px}.roster-inactive-heading strong{min-width:0;left:8px}.roster-inactive-heading span{display:none}}

.roster-inactive-heading{width:calc(380px + var(--roster-year-count)*82px)}@media(max-width:760px){.roster-inactive-heading{width:calc(92px + var(--roster-year-count)*82px)}}

/* 006: linija neaktivnog profila završava se poslednjim pronađenim nastupom. */
.roster-cell.career-ended{background:none!important;border-right:0}

.athlete-portrait{display:block;flex-shrink:0;border-radius:50%;background-repeat:no-repeat;background-color:#dceee3;overflow:hidden}.card-image>.athlete-portrait{width:100%;height:100%;background-color:transparent}.roster-person>.athlete-portrait{width:100px;height:100px;border:3px solid #dbece3}.photo-credit{font-size:11px;line-height:1.4;color:#587267}@media(max-width:1000px){.roster-person>.athlete-portrait{width:80px;height:80px}}@media(max-width:760px){.roster-person>.athlete-portrait{width:62px;height:62px;border-width:2px}.identity .photo-credit{display:none}}

/* 007: dostupno pomeranje godina iznad prvog takmičara. */
.roster-navigation{padding:12px 14px;background:#edf5ef;border:1px solid var(--line);border-bottom:0}.roster-navigation-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.roster-navigation-label>div{display:flex;gap:8px}.roster-navigation button{padding:7px 10px;border:1px solid #b6d4c6;border-radius:5px;background:white;color:var(--deep);font:inherit;cursor:pointer}.roster-navigation button:hover{background:#d9eee3}.roster-top-scroll{overflow-x:scroll;overflow-y:hidden;width:100%;height:24px;margin-top:8px;scrollbar-color:#27836a #d5e7dc;scrollbar-width:auto}.roster-top-scroll>div{height:1px}.roster-top-scroll:focus-visible{outline:2px solid #27836a;outline-offset:2px}@media(max-width:760px){.roster-navigation{padding:9px}.roster-navigation-label{flex-wrap:wrap;font-size:11px}.roster-navigation-label>div{width:100%;justify-content:space-between}}

/* 008: traka ostaje uz gornju ivicu tokom pregleda spiska. */
.roster-navigation{position:sticky;top:0;z-index:30;box-shadow:0 3px 8px #073e351a}.roster-person{display:flex;flex-direction:column;align-items:center;justify-content:center}.roster-person>img,.roster-person>.athlete-portrait,.roster-person>.roster-initials{display:block;flex-shrink:0;margin-left:auto;margin-right:auto}.roster-person>strong{width:100%;text-align:center}.roster-top-scroll{overscroll-behavior-x:contain}

/* 009: komande za godine bez dodatnog natpisa. */
.roster-navigation-label{justify-content:flex-end}

/* 010: ime i uzrast dele jedan red, bez prelamanja kontrola. */
.roster-intro{grid-template-columns:minmax(180px,1fr) minmax(360px,540px)}.roster-quick-filters{grid-column:2;display:flex;flex-wrap:nowrap;gap:10px;min-width:0;align-items:end}.roster-quick-filters>label{flex:1 1 0;min-width:0;margin:0;display:flex;flex-direction:column;gap:4px;font-size:12px;white-space:nowrap}.roster-quick-filters input,.roster-quick-filters select{box-sizing:border-box;width:100%;min-width:0;height:40px;margin:0;padding:8px;font-size:13px}.roster-top-scroll{margin-top:0}.roster-navigation{padding-top:7px;padding-bottom:7px}@media(max-width:760px){.roster-intro{grid-template-columns:minmax(0,1fr);gap:6px}.roster-title{grid-column:1;grid-row:auto}.roster-title h1{font-size:28px}.roster-quick-filters{grid-column:1;gap:8px}.roster-quick-filters>label{font-size:10px}.roster-quick-filters input,.roster-quick-filters select{font-size:12px;height:36px;min-height:36px}.roster-category-panel{grid-column:1}.roster-category-panel>summary{min-height:30px;padding:6px 10px}.roster-help{grid-column:1}}

/* 011: kružni portreti i logotipi prijatelja. */
.person-photo.athlete-portrait{overflow:hidden;border-radius:50%;background-repeat:no-repeat}.person-photo.company-logo{object-fit:contain;background:#fff;border:1px solid var(--line);padding:12px}.trainer-grid .trainer h2{overflow-wrap:anywhere}

/* 012: manje praznog prostora ispod menija. */
.page-heading{padding:22px 5% 20px}.page-heading .eyebrow{margin-bottom:7px}.page-heading h1{font-size:clamp(30px,3.2vw,44px)}.page-heading .lead{margin-top:9px;font-size:14px;line-height:1.5}.page-heading+.section{padding-top:25px}
.roster-intro{grid-template-columns:minmax(160px,1fr) minmax(600px,760px);padding-top:12px;padding-bottom:7px;column-gap:24px;row-gap:5px;align-items:center}.roster-title{grid-column:1;grid-row:1;align-self:center}.roster-title h1{font-size:34px;letter-spacing:-1px}.roster-title p{display:none}.roster-quick-filters{grid-column:2;grid-row:1;gap:10px}.roster-quick-filters>label{font-size:11px;line-height:1.2;gap:3px}.roster-quick-filters input,.roster-quick-filters select{height:34px;min-height:34px;padding:5px 9px;font-size:13px}.roster-category-panel{grid-column:2;grid-row:2}.roster-category-panel .result-types{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px;border:0;padding:0;margin:0;min-width:0}.roster-category-panel legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.roster-category-panel .result-types label{font-size:12px;line-height:1.3;min-height:28px;white-space:nowrap;gap:6px}.roster-category-panel input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0}.roster-help{grid-column:1;grid-row:2;font-size:11px;position:relative}.roster-help summary{min-height:26px;padding:3px 0}.roster-help[open]>div{position:absolute;top:100%;left:0;width:min(650px,85vw);max-height:50vh;overflow:auto;z-index:50;box-shadow:0 8px 24px #073e3520}.roster-section{padding-top:0}.roster-navigation{padding-top:5px;padding-bottom:5px}
@media(min-width:1001px){.roster-category-panel>summary{display:none}}
@media(max-width:1000px){.roster-intro{grid-template-columns:minmax(140px,1fr) minmax(300px,1.6fr);column-gap:16px}.roster-title h1{font-size:30px}.roster-category-panel{position:relative}.roster-category-panel>summary{display:block;font-size:11px;line-height:1.3;padding:4px 10px;border:1px solid var(--line);border-radius:5px;background:white;min-height:28px;width:fit-content;margin-left:auto;cursor:pointer}.roster-category-panel[open] .result-types{position:absolute;right:0;top:100%;z-index:45;display:grid;grid-template-columns:1fr 1fr;width:min(420px,85vw);gap:5px 14px;padding:10px 12px;margin-top:4px;background:white;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #073e3520}.roster-category-panel .result-types label{min-height:38px;white-space:normal}}
@media(max-width:760px){.page-heading{padding:16px 5%}.page-heading h1{font-size:31px}.page-heading .eyebrow{font-size:9px;margin-bottom:6px}.page-heading .lead{margin-top:7px;font-size:13px}.page-heading+.section{padding-top:18px}.roster-intro{grid-template-columns:1fr 1fr;gap:4px 8px;padding-top:9px;padding-bottom:5px}.roster-title{grid-column:1/-1;grid-row:1}.roster-title h1{font-size:26px}.roster-quick-filters{grid-column:1/-1;grid-row:2;gap:8px}.roster-quick-filters>label{font-size:10px}.roster-quick-filters input,.roster-quick-filters select{font-size:12px;height:34px;min-height:34px}.roster-help{grid-column:1;grid-row:3}.roster-category-panel{grid-column:2;grid-row:3}.roster-category-panel>summary{padding:4px 10px;min-height:28px}.roster-help summary{min-height:28px;line-height:20px;padding:4px 0}}

/* 013: zbijeniji redovi uz nepromenjene, čitljive krugove godina. */
.roster-row{min-height:126px}.roster-person{padding:9px 7px}.roster-person>img,.roster-person>.athlete-portrait,.roster-person>.roster-initials{width:80px;height:80px}.roster-person strong{font-size:13px;line-height:1.25;margin-top:5px}.roster-info{padding:10px 12px;font-size:11px;line-height:1.4;display:flex;flex-direction:column;justify-content:center}.roster-info p{margin:2px 0}.roster-cell{padding:7px 3px}.roster-cell>span{margin-top:4px;min-height:22px}.roster-cell>span:empty{display:none}
#clubFriends{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}#clubFriends .trainer{padding:22px 20px}#clubFriends .person-photo,#clubFriends .person-placeholder{width:110px;height:110px;margin-bottom:13px}#clubFriends h2{font-size:25px;line-height:1.15;letter-spacing:-.5px}#clubFriends .eyebrow{margin:8px 0 10px;font-size:9px}#clubFriends .trainer>p:not(.eyebrow){font-size:13px;line-height:1.55;margin:9px 0}
@media(max-width:1000px){.roster-row{min-height:116px}.roster-person>img,.roster-person>.athlete-portrait,.roster-person>.roster-initials{width:72px;height:72px}.roster-person strong{font-size:12px}.roster-info{font-size:10px;padding:8px}#clubFriends{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.roster-row{min-height:106px}.roster-person{padding:6px 5px}.roster-person>img,.roster-person>.athlete-portrait,.roster-person>.roster-initials{width:62px;height:62px}.roster-person strong{font-size:10px;line-height:1.25;margin-top:4px}.roster-info{display:none}.roster-cell{padding:6px 3px}.roster-cell>span{min-height:20px;margin-top:3px}#clubFriends .trainer{padding:18px}#clubFriends h2{font-size:23px}}
@media(max-width:599px){#clubFriends{grid-template-columns:1fr;gap:14px}}

/* 014: jedna vest po takmičenju, svi nastupi unutar nje. */
.competition-news{background:#fff;border:1px solid var(--line);border-radius:7px;margin:16px 0 24px;overflow:hidden}.competition-news-heading{display:block;padding:18px 22px;background:#eaf2eb;border:0;border-bottom:1px solid var(--line)}.competition-news-heading h2{font-size:25px;line-height:1.2;letter-spacing:-.5px}.competition-news-date{font-size:12px;font-weight:bold;margin:0 0 6px;color:var(--green)}.competition-news-summary{font-size:12px;color:var(--muted);margin:8px 0 0}.competition-news-result{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(140px,.8fr) minmax(170px,1fr);gap:5px 20px;padding:14px 22px;border-bottom:1px solid var(--line);align-items:center}.competition-news-result:last-child{border-bottom:0}.competition-news-athlete>a{font-size:15px;font-weight:bold}.competition-news-result p{margin:3px 0;line-height:1.5}.competition-news-performance strong{font-size:14px}.competition-news-result>.badges{margin:0}.competition-result-sources{grid-column:1/-1;font-size:11px}.competition-result-sources summary{cursor:pointer;color:var(--muted);width:fit-content}.competition-result-sources[open]{padding-top:6px}.competition-result-sources a{display:inline-block;margin:4px 16px 0 0}.competition-load-more{margin:0 0 20px}.competition-load-more[hidden]{display:none}@media(max-width:760px){.competition-news-heading{padding:14px}.competition-news-heading h2{font-size:21px}.competition-news-result{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:5px 12px;padding:12px 14px}.competition-news-result>.badges{grid-column:1/-1}.competition-news-result>.badges:empty{display:none}.competition-news-athlete>a{font-size:13px}.competition-news-performance strong{font-size:13px}.competition-news-result .small{font-size:11px}}

/* 017: all performances grouped by distance */
.race-analysis{padding-top:24px}.race-analysis h2{margin:0 0 12px}.distance-analysis{border:1px solid #cbdcd2;border-radius:12px;margin:12px 0;background:#fff}.distance-analysis summary{cursor:pointer;padding:16px 20px;font-weight:700;color:#123c30}.analysis-timeline{list-style:none;display:flex;gap:0;overflow-x:auto;padding:8px 20px 24px;margin:0;scrollbar-width:auto;scrollbar-color:#23876a #edf3ee}.analysis-timeline:focus-visible{outline:3px solid #23876a;outline-offset:-3px}.analysis-race{flex:0 0 215px;min-width:0;position:relative;padding:0 18px 0 0;display:flex;flex-direction:column;gap:8px}.analysis-year{display:block;color:#236f54;font-weight:700;border-bottom:2px solid #b5d5c4;padding:0 0 16px;margin-bottom:12px;position:relative}.analysis-year:after{content:'';position:absolute;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#23876a;bottom:-7px;left:0}.analysis-race time{font-size:12px;color:#61766c;min-height:32px}.analysis-mark{font-size:24px;line-height:1.2;color:#123c30;overflow-wrap:anywhere}.analysis-race p{font-size:14px;margin:0;line-height:1.45}.analysis-race small{font-size:12px;color:#61766c}.analysis-race a{font-size:12px;margin-top:auto;padding-top:8px}.analysis-tags{display:flex;flex-wrap:wrap;gap:4px;font-size:11px}.analysis-tags span{background:#edf3ee;border-radius:20px;padding:3px 7px}@media(max-width:600px){.analysis-race{flex-basis:175px}.analysis-mark{font-size:21px}.distance-analysis summary{padding:14px}.analysis-timeline{padding-left:14px;padding-right:14px}}

/* 019: best recorded performance */
.analysis-best-summary{display:block;font-size:13px;line-height:1.5;font-weight:500;color:#176046;margin:8px 0 0}.analysis-race-best{background:#edf7e9;border-radius:8px;padding:10px 12px;border:1px solid #8fbd80;margin-right:8px}.analysis-best-badge{background:#245b35;color:white;border-radius:16px;padding:4px 8px;font-size:12px;align-self:flex-start;font-weight:700}.analysis-race-best .analysis-mark{color:#225a32}

/* 020: jump to best performance */
.analysis-best-jump{appearance:none;border:0;background:transparent;text-align:left;cursor:pointer;padding:4px 0;font-family:inherit;text-decoration:underline;text-underline-offset:3px}.analysis-best-jump:hover{color:#103e2a}.analysis-best-jump:focus-visible{outline:3px solid #23876a;outline-offset:3px;border-radius:3px}

/* 021: period, season comparison, progress chart */
.analysis-controls{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.analysis-controls label{display:flex;flex-direction:column;gap:6px;font-size:13px;flex:1 1 140px}.analysis-controls select{padding:10px;border:1px solid #b8cfc0;border-radius:6px;background:white;color:#123c30}.analysis-comparison{padding:12px 20px;overflow-x:auto}.analysis-comparison h3{font-size:17px;margin:6px 0}.analysis-comparison table{width:100%;border-collapse:collapse;font-size:14px}.analysis-comparison caption{text-align:left;margin:8px 0;color:#52685c}.analysis-comparison th,.analysis-comparison td{text-align:left;border-bottom:1px solid #d6e3da;padding:10px 8px;white-space:nowrap}.analysis-chart{margin:12px 20px 20px}.analysis-chart svg{width:100%;height:auto;min-height:190px}.analysis-chart circle{cursor:pointer;stroke:white;stroke-width:2}.analysis-chart circle:focus{outline:none;stroke:#102e20;stroke-width:4}.analysis-point-detail{font-size:13px;color:#123c30;min-height:40px}@media(max-width:600px){.analysis-chart{margin:10px}.analysis-controls{gap:8px}.analysis-controls label{flex-basis:40%}.analysis-chart svg{min-width:540px}.analysis-chart{overflow-x:auto}.analysis-comparison{padding:10px}}

/* 022: hidden analysis and season colors */
#analysisContent[hidden]{display:none!important}.analysis-toggle{margin-bottom:16px}.analysis-chart-legend{list-style:none;padding:0;margin:12px 0;display:flex;flex-wrap:wrap;gap:12px 18px;font-size:13px}.analysis-chart-legend li{display:flex;align-items:center;gap:6px}.season-swatch{display:inline-block;width:14px;height:14px;border-radius:50%}.best-legend{color:#916308;font-weight:700}

.analysis-chart circle.analysis-best-ring{stroke:#b57d0b;stroke-width:3;pointer-events:none}

/* 023: interactive season legend, compact empty charts */
.season-toggle,.analysis-single{font:inherit;cursor:pointer;border:1px solid #bbcfbf;background:#fff;color:#123c30;border-radius:7px;padding:7px 10px;display:inline-flex;align-items:center;gap:7px}.season-toggle[aria-pressed="false"]{opacity:.5;text-decoration:line-through;background:#f1f3f0}.season-toggle:focus-visible,.analysis-single:focus-visible{outline:3px solid #23876a;outline-offset:2px}.analysis-point-detail:empty{display:none}.analysis-single{text-align:left;line-height:1.5}.analysis-chart:empty{display:none}

/* 025: legend also controls the race timeline */
.analysis-race[hidden],.analysis-timeline[hidden]{display:none!important}

/* 026: age-group colors and national records */
.analysis-nr-badge{background:#a6263e;color:#fff;border-radius:5px;padding:5px 8px;font-size:12px;font-weight:700;align-self:flex-start}.analysis-nr-key{color:#a6263e;font-weight:700}.age-legend{padding:10px;background:#f2f6f1;border-radius:7px}.analysis-chart .analysis-nr-symbol{stroke:#b3263d;stroke-width:3}

.analysis-login{display:flex;flex-wrap:wrap;align-items:end;gap:12px;max-width:720px}.analysis-login label{display:flex;flex-direction:column;gap:6px;flex:1 1 200px}.analysis-login input{padding:10px;border:1px solid #b7cbbb;border-radius:5px}.year-club-total small{line-height:1.35}

/* 029: comparison within historical age groups */
.race-comparison{margin:16px 0}.race-comparison>div>label{display:flex;flex-direction:column;gap:6px;max-width:420px;margin:16px 0}.race-comparison select{padding:10px;border:1px solid #b7cbbb;border-radius:6px}.compare-body{padding:14px;overflow-x:auto}.compare-body table{border-collapse:collapse;width:100%;font-size:14px}.compare-body td,.compare-body th{padding:8px;text-align:left;border-bottom:1px solid #d6e3da}.compare-body svg{width:100%;min-width:500px}.compare-body svg circle[role="button"]{cursor:pointer}.compare-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.compare-races{list-style:none;padding:0;margin:0}.compare-races li{padding:10px;border-bottom:1px solid #d6e3da;display:flex;flex-direction:column;gap:5px;font-size:13px}.compare-best{background:#edf7e9}.compare-races a{font-size:12px}@media(max-width:650px){.compare-columns{grid-template-columns:1fr}.compare-body table{min-width:480px}}

/* 030: calendar-year groups in athlete comparison */
.compare-races li.compare-year-divider{display:flex;flex-direction:row;justify-content:space-between;align-items:center;background:#e4eee6;border-top:2px solid #8bb69b;padding:10px 12px;margin-top:16px;border-radius:5px}.compare-year-divider h5{font-size:18px;margin:0;color:#174f35}.compare-year-divider small{color:#536d5c}.compare-columns>div>h4{font-size:17px}

/* 032: compact analysis heading and filters */
.analysis-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.analysis-toolbar h2{margin:0;flex:1 1 360px;font-size:clamp(20px,2.3vw,30px)}.analysis-toolbar .button{margin:0;padding:9px 16px}.analysis-toolbar+.analysis-content{margin-top:0}#analysisContent>.analysis-filters{margin:0 0 10px}#analysisContent>.race-comparison{margin:0}#analysisContent>.race-comparison>div[hidden]{display:none!important}#analysisContent>.analysis-controls{margin:10px 0}.analysis-toolbar .button{flex:0 0 auto}@media(max-width:600px){.analysis-toolbar{gap:8px}.analysis-toolbar h2{flex:1 1 100%;font-size:22px}.analysis-toolbar .button{padding:8px 12px}}

/* 033: no stale static slideshow before settings and image load */
.slideshow-pending .slide,.slideshow-pending .slide-controls,.slideshow-pending .slide-dots{visibility:hidden!important}.slideshow-pending:after{content:"Učitavanje fotografija…";position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(120deg,#073e35,#095b4c);color:#d8eee4;font-size:13px;letter-spacing:.5px}

/* 035: race types beside career title */
.career-heading-filters{display:flex;align-items:center;gap:16px;margin-bottom:14px}.career-heading-filters>h2{flex:1 1 220px;margin:0;font-size:clamp(23px,2vw,32px)}.career-heading-filters>.result-types{flex:1.5 1 360px;margin:0;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 14px}.career-heading-filters .result-types legend{font-size:12px}.career-heading-filters .result-types label{font-size:12px;white-space:nowrap}.career-heading-filters .result-types p{display:none}@media(max-width:650px){.career-heading-filters{flex-wrap:wrap;gap:8px}.career-heading-filters>h2,.career-heading-filters>.result-types{flex-basis:100%}}

/* 037: izdvojena arhivska grupa, samo na kraju liste takmičara. */
.heritage-section[hidden],.roster-section[hidden]{display:none!important}
.heritage-section{padding-top:24px;padding-bottom:36px;border-top:1px solid #cbded3}
.heritage-heading{margin-bottom:24px}.heritage-heading h2{margin:4px 0 8px;font-size:clamp(1.7rem,3vw,2.4rem)}.heritage-heading p{margin:4px 0}
.heritage-person{display:grid;grid-template-columns:166px minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid #d7e4dc;scroll-margin-top:100px}
.heritage-identity{text-align:center;min-width:0}.heritage-identity .heritage-portrait{display:block;width:108px;height:108px;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto 10px;background-repeat:no-repeat;object-fit:cover;border:3px solid #e3eee7}
.heritage-identity h3{font-size:1.1rem;margin:5px 0;line-height:1.25}.heritage-identity p{margin:6px 0}.heritage-body{min-width:0}.heritage-body>p{margin:0 0 14px;max-width:100ch}
.heritage-highlights{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}.heritage-highlights li{padding:10px 12px;border-left:3px solid #278368;background:#f2f6f1;border-radius:0 5px 5px 0}.heritage-highlights strong{display:block;font-size:.95rem}.heritage-highlights p{margin:6px 0;font-size:.9rem;line-height:1.5}.heritage-highlights a,.heritage-sources a,.heritage-photo-source a{font-size:.78rem}
.heritage-photo-source{font-size:.75rem;margin-top:10px}.heritage-photo-source summary{cursor:pointer;list-style-position:inside}.heritage-photo-source .small{font-size:.72rem}.heritage-story{max-width:100ch;margin-top:20px}.heritage-story h4{font-size:1.15rem;margin:0 0 10px}.heritage-story p{font-size:.95rem;line-height:1.65;margin:10px 0}.heritage-sources{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
@media(max-width:700px){.heritage-person{grid-template-columns:1fr;gap:14px;padding:20px 0}.heritage-identity .heritage-portrait{width:96px;height:96px}.heritage-highlights{grid-template-columns:1fr;gap:9px}.heritage-body>p{font-size:.9rem}.heritage-section{padding-top:20px}.heritage-heading p{font-size:.9rem}}

/* 038: hronološki pregled događaja; bez praznih godina. */
.heritage-chronology{display:block;margin:0;padding:0;list-style:none}.heritage-chronology li{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;position:relative;border:0;border-radius:0;background:transparent;padding:0 0 16px}.heritage-event-date{font-size:.85rem;font-weight:700;color:#22755d;line-height:1.5;padding-top:10px;text-align:right}.heritage-event-copy{position:relative;border-left:2px solid #c9ded1;padding:8px 12px 10px 18px;background:#f2f6f1;border-radius:0 5px 5px 0}.heritage-event-copy:before{content:'';position:absolute;left:-6px;top:15px;width:10px;height:10px;border-radius:50%;background:#278368}.heritage-chronology strong{font-size:.95rem}.heritage-undated{margin:4px 0 18px;padding:12px 16px;background:#f3f1e9;border-radius:5px}.heritage-undated h4{font-size:.9rem;margin:0 0 8px}.heritage-undated p{margin:5px 0;font-size:.9rem}.heritage-undated a{font-size:.78rem}@media(max-width:700px){.heritage-chronology li{grid-template-columns:1fr;gap:5px;padding-bottom:13px}.heritage-event-date{text-align:left;padding:0 0 0 18px}.heritage-event-copy{padding-left:16px}.heritage-chronology .heritage-event-copy strong{font-size:.9rem}}

/* 039: editable heritage profiles */
.heritage-placeholder{display:inline-flex;align-items:center;justify-content:center;background:#e0ece5;color:#17694f;font-size:30px;border-radius:50%;width:108px;height:108px}.heritage-admin{margin:32px 0;padding:24px 0;border-block:1px solid #cdded4}.heritage-admin .heritage-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.heritage-admin form{max-width:1000px}.heritage-admin label{display:block;margin:12px 0}.heritage-admin input,.heritage-admin textarea,.heritage-admin select{width:100%}.heritage-admin .heritage-photo-frame{width:144px;height:144px;border-radius:50%;overflow:hidden;touch-action:none;cursor:move;background:#e0ece5}.heritage-photo-frame img{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}.heritage-result-editor{padding:16px;border:1px solid #cdded4;border-radius:10px;margin:16px 0}.heritage-result-editor legend{font-weight:bold}.heritage-photo-frame:focus-visible{outline:3px solid #2c8062}

/* 040: larger club mark and more readable main navigation */
body>header{padding-block:12px;gap:20px}body>header>.brand img{width:80px;height:80px}body>header nav{gap:18px}body>header nav a{font-size:16px;font-weight:600;line-height:1.45;padding-block:10px}body>header>.editor-link{font-size:12px}
@media(max-width:1150px){body>header{flex-wrap:wrap;gap:8px 18px}body>header nav{order:3;width:100%;margin-left:0;justify-content:center;overflow-x:auto;gap:22px;padding-block:2px}body>header>.editor-link{margin-left:auto}}
@media(max-width:760px){body>header{padding:10px 5%;gap:6px 12px}body>header>.brand{gap:10px}body>header>.brand img{width:64px;height:64px}body>header nav{justify-content:flex-start;gap:22px}body>header nav a{font-size:15px;padding-block:8px;flex-shrink:0}body>header>.brand strong{font-size:15px}}

/* 041: Edin career highlights */
.heritage-achievements{border-left:4px solid #07896e;background:#e7f2e9;border-radius:6px;padding:16px 20px;margin:16px 0 24px}.heritage-achievements h4{font-size:18px;margin:0 0 10px}.heritage-achievements p{font-size:14px;line-height:1.7;margin:8px 0}

/* 042: authenticated Personal Best after distance analysis */
.personal-best{padding-top:18px}.personal-best h2{font-size:clamp(21px,2.3vw,30px)}.pb-table-wrap{overflow-x:auto}.pb-table-wrap table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.pb-table-wrap caption{text-align:left;font-size:13px;margin-bottom:10px;color:var(--muted)}.pb-table-wrap th,.pb-table-wrap td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}.pb-table-wrap th{background:#e7f2e9}.pb-table-wrap td strong{color:#17694f;white-space:nowrap}.pb-occurrence{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.pb-occurrence a{font-size:12px}.pb-table-wrap .analysis-nr-badge{display:block;font-size:10px;margin-top:5px}@media(max-width:600px){.pb-table-wrap table{min-width:620px}.pb-table-wrap td,.pb-table-wrap th{padding:10px}.personal-best .analysis-toolbar{gap:8px}}

/* 043: Personal Best integrated into authenticated analysis */
#analysisContent>.personal-best{margin-top:24px;border-top:1px solid var(--line);padding:20px 0 0}.personal-best h2{margin:0 0 10px}.pb-best-jump{background:#e7f2e9;border:1px solid #a4cbb7;border-radius:5px;color:#17694f;font-weight:700;font-size:15px;padding:7px 10px;white-space:nowrap}.pb-best-jump:hover{background:#d3eadc}.pb-event-jump{background:none;border:0;padding:0;text-align:left;text-decoration:underline;color:var(--ink);font-size:13px}.analysis-race-pb-target{background:#fff6da;outline:2px solid #b57d0b;outline-offset:-2px;border-radius:6px;padding:8px}.analysis-race-pb-target:focus{outline:3px solid #b57d0b}

/* 044: age at PB and focused admin sections */
.pb-age-group{font-size:13px;white-space:nowrap;margin:0 0 5px}.admin-settings-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:28px;align-items:start}.admin-settings-menu{display:flex;flex-direction:column;gap:6px;position:sticky;top:16px;padding:12px;background:#e7f0e9;border:1px solid var(--line);border-radius:8px}.admin-settings-menu button{text-align:left;background:transparent;color:var(--ink);border:0;border-radius:5px;padding:11px 12px;font-size:14px;line-height:1.4}.admin-settings-menu button:hover{background:#d4e7d9}.admin-settings-menu button[aria-current="page"]{background:var(--green);color:white;font-weight:bold}.admin-settings-panel[hidden]{display:none!important}.admin-settings-content{min-width:0}.admin-settings-panel>h2,.admin-settings-panel>section>h2{font-size:28px;margin:0 0 14px}.admin-settings-panel .heritage-admin{margin-top:0;padding-top:0;border-top:0}.admin-settings-panel .slideshow-editor{margin-top:0}.admin-settings-panel .draft-form{gap:8px 16px}.admin-settings-panel .draft-form textarea{max-width:100%}@media(max-width:850px){.admin-settings-layout{grid-template-columns:1fr;gap:18px}.admin-settings-menu{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px}.admin-settings-menu button{font-size:13px;padding:10px}.pb-table-wrap table{min-width:760px}}

.admin-page .page-heading{padding:22px 5% 16px}.admin-page .page-heading h1{font-size:38px}.admin-page .page-heading .eyebrow{margin-bottom:8px}.admin-page .page-heading .lead{margin-top:10px}.admin-page main>.section{padding-top:16px}.admin-page .admin-buttons{margin:12px 0 16px;gap:10px;flex-wrap:wrap}

/* 045: PB recalculated within the selected age group */
.pb-age-filter{max-width:320px;margin:12px 0 18px}.pb-age-filter select{font-size:14px}

/* 046: record references in authenticated comparison */
.record-benchmarks{margin:16px 0;padding:14px;background:#f2f7f4;border:1px solid #d3e1d9;border-radius:10px}.record-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.record-heading h4{margin:0}.record-heading label{min-width:220px;font-size:12px}.record-person h5{font-size:15px;margin:14px 0 6px}.record-person{overflow-x:auto}.record-person table{width:100%;min-width:440px;font-size:13px}.record-reference{display:grid;gap:3px;margin-bottom:6px}.record-reference a{font-size:12px}.record-benchmarks .small{margin:8px 0}
/* 047: optional record comparison within Personal Best */
.pb-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.pb-controls .pb-age-filter{min-width:240px}.pb-record-toggle{display:flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}.pb-record-toggle input{width:18px;height:18px;accent-color:#128568}.pb-record-row>td{padding:8px!important;background:#f7faf8}.pb-record-context{font-size:15px;margin:10px 6px}.pb-record-row .record-benchmarks{margin:6px 0 12px}.pb-record-row .record-person table{min-width:440px}.pb-record-row .record-person table th,.pb-record-row .record-person table td{white-space:normal}@media(max-width:650px){.pb-controls{gap:4px}.pb-record-toggle{margin-bottom:12px}}
/* 048: comparison record references are opt-in */
.compare-record-toggle{display:flex;align-items:center;gap:7px;margin:12px 0;font-size:14px;cursor:pointer}.compare-record-toggle input{width:18px;height:18px;accent-color:#128568}.compare-record-panel[hidden]{display:none!important}
/* 049: club year medal breakdown */
a.year-club-total{color:inherit;text-decoration:none;border-radius:5px}a.year-club-total:hover,a.year-club-total:focus-visible{background:#d8ecdf;outline:2px solid #158365;outline-offset:-2px}.year-medals-page{max-width:1100px;margin:auto}.year-medals-page h1{font-size:32px;margin:12px 0}.year-medals-controls{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.year-medals-controls>label{min-width:120px}.year-medals-controls fieldset{flex:1}.year-medals-table-wrap{overflow-x:auto}.year-medals-table{width:100%;border-collapse:collapse;min-width:450px}.year-medals-table th,.year-medals-table td{padding:12px 10px;border-bottom:1px solid #d4e3d9;text-align:right}.year-medals-table th:first-child,.year-medals-table td:first-child{text-align:left}.year-medals-table thead,.year-medals-table tfoot{background:#e5f0e8}.year-medals-table .inactive-badge{font-size:11px;display:block;margin:3px 0}.year-medals-controls input{accent-color:#128568}
.roster-head>a.year-club-total{padding:10px 8px;text-align:center;font-weight:bold}.roster-head>a.year-club-total:hover,.roster-head>a.year-club-total:focus-visible{color:var(--ink)}@media(max-width:760px){.roster-head>a.year-club-total{padding:8px}}

/* 050: medal count drill-down */
.medal-count-button{font:inherit;font-weight:700;min-width:38px;min-height:36px;border:1px solid #9ebdac;border-radius:6px;background:white;color:#145a43;cursor:pointer}.medal-count-button:hover,.medal-count-button:focus-visible{background:#dceee3;outline:2px solid #158365}.medal-award-details{margin-top:24px;scroll-margin-top:18px}.medal-award-details h2{font-size:24px;margin:12px 0}.medal-award-details>.button{margin-bottom:14px}
/* 051: larger club identity, capsule navigation and panoramic home slideshow. */
body>header{display:flex;flex-wrap:nowrap;align-items:center;gap:20px;padding:12px 3%;border-bottom:3px solid #07896e;background:#fff;box-shadow:0 4px 24px #073e3508;position:relative;z-index:5}
body>header>.brand{gap:15px}body>header>.brand img{width:112px;height:112px;padding:4px;background:white;border:1px solid #e1e9e2;border-radius:13px;box-shadow:0 6px 20px #073e3514}body>header>.brand span{font-size:10px;letter-spacing:1.8px}body>header>.brand strong{font-size:21px;letter-spacing:.3px;margin-top:3px}
body>header nav{order:initial;display:flex;width:auto;flex:1;justify-content:flex-end;gap:3px;margin-left:auto;overflow:visible;padding:0}body>header nav a{font-size:15px;font-weight:600;line-height:1.35;padding:12px 13px;border-radius:24px;border:1px solid transparent;transition:background .18s,color .18s;box-shadow:none}body>header nav a:hover{color:var(--deep);background:#eaf4ee;box-shadow:none}body>header nav a[aria-current]{background:var(--deep);color:white;box-shadow:none}body>header>.editor-link{font-size:11px;padding:9px 12px;border-radius:20px;background:#f5f8f4;margin-left:0;color:#54685c}
.home-hero{display:block;position:relative;isolation:isolate;min-height:640px;height:clamp(600px,47vw,790px);overflow:hidden;background:#073e35}.home-hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#052e29f2 0%,#052e29d9 23%,#052e2980 43%,#052e2910 68%),linear-gradient(0deg,#03292375,transparent 35%)}
.home-hero .slideshow{display:block;position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden;z-index:0}.home-hero .slideshow .slides{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.home-hero .slideshow .slide{object-fit:cover}.home-hero .hero-copy{position:relative;z-index:2;width:min(49%,660px);height:100%;display:flex;flex-direction:column;justify-content:center;padding:44px 0 52px 5.5%;background:none}.hero-copy .eyebrow{display:flex;align-items:center;gap:12px;color:#bcead8;font-size:11px;letter-spacing:2.5px;margin-bottom:24px}.hero-copy .eyebrow::before{content:'';width:28px;height:3px;background:#70d9b8;display:inline-block}.home-hero .hero-copy h1{font-size:clamp(52px,5.4vw,82px);line-height:1.01;letter-spacing:-2.5px;text-shadow:0 2px 28px #03292325}.home-hero .hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.75;margin:24px 0;color:#d6e8df}.home-hero .hero-copy>.button{align-self:flex-start;border-radius:30px;padding:16px 24px;background:#0caa82;box-shadow:0 6px 26px #03292335;font-size:14px}.home-hero .hero-meta{align-self:flex-start;margin-top:28px;padding-top:18px;border-color:#ffffff30}.home-hero .hero-meta b{font-size:17px}.home-hero .slideshow .slide-controls{left:auto;right:4%;bottom:54px;width:min(440px,43%);z-index:4;padding:0;background:none;pointer-events:auto}.home-hero .slideshow .slide-controls>span{padding:6px 12px;border-radius:20px;background:#052e29a6;backdrop-filter:blur(8px)}.home-hero .slideshow .slide-controls button{width:44px;height:44px;background:#052e298c;border-color:#ffffff9c;backdrop-filter:blur(8px);font-size:18px}.home-hero .slideshow .slide-controls button:hover{background:#07896e}.home-hero .slideshow .slide-dots{left:auto;right:4%;bottom:18px;max-width:52%;width:auto;z-index:4;padding:9px 13px;border-radius:30px;background:#052e2970;backdrop-filter:blur(8px);gap:10px}.home-hero .slideshow .slide-dots button{width:9px;height:9px;background:#ffffff80}.home-hero .slideshow .slide-dots button[aria-pressed=true]{background:#83edc9;box-shadow:0 0 0 3px #83edc92b}
@media(max-width:1350px) and (min-width:1181px){body>header{gap:12px;padding-inline:2.5%}body>header>.brand span{font-size:9px}body>header>.brand strong{font-size:18px}body>header nav a{font-size:14px;padding:11px 10px}body>header>.brand img{width:104px;height:104px}}
@media(max-width:1180px){body>header{flex-wrap:wrap;gap:5px 18px;padding:10px 4%}body>header>.brand img{width:100px;height:100px}body>header>.editor-link{margin-left:auto}body>header nav{order:3;flex:none;width:100%;margin:0;justify-content:center;gap:5px;overflow-x:auto;padding:5px 0 7px}body>header nav a{font-size:15px;padding:10px 13px}.home-hero{height:610px;min-height:610px}.home-hero .hero-copy{width:53%;padding-left:5%}.home-hero .hero-copy h1{font-size:62px}}
@media(max-width:760px){body>header{padding:10px 4% 5px;gap:5px 10px}body>header>.brand{gap:12px}body>header>.brand img{width:88px;height:88px;border-radius:10px}body>header>.brand span{font-size:9px}body>header>.brand strong{font-size:19px}body>header>.editor-link{font-size:10px;padding:7px 9px}body>header nav{justify-content:flex-start;gap:4px;scrollbar-width:thin}body>header nav a{font-size:15px;padding:11px 14px;flex-shrink:0;background:#f3f7f2}.home-hero{display:flex;flex-direction:column;height:auto;min-height:0}.home-hero::after{display:none}.home-hero .slideshow{position:relative;inset:auto;order:-1;flex:none;width:100%;height:74vw;min-height:300px;max-height:520px;aspect-ratio:auto}.home-hero .hero-copy{display:block;width:100%;height:auto;padding:30px 7% 34px;background:radial-gradient(ellipse at top right,#0a6552,transparent 65%)}.home-hero .hero-copy h1{font-size:53px;letter-spacing:-1.8px}.home-hero .hero-copy h1 br{display:none}.home-hero .hero-copy h1 em{display:block}.home-hero .hero-copy .eyebrow{margin-bottom:18px}.home-hero .hero-copy>p:not(.eyebrow){font-size:14px;margin:20px 0}.home-hero .hero-meta{margin-top:22px;max-width:380px}.home-hero .slideshow .slide-controls{left:5%;right:5%;bottom:44px;width:auto}.home-hero .slideshow .slide-controls button{width:40px;height:40px}.home-hero .slideshow .slide-dots{left:5%;right:auto;bottom:10px;max-width:90%;padding:8px 11px;gap:8px}.home-hero .slideshow .slide-dots button{width:8px;height:8px}}
@media(prefers-reduced-motion:reduce){body>header nav a{transition:none}}

@media(max-width:760px){.home-hero .hero-copy h1 br{display:initial}.home-hero .hero-copy h1 em{display:inline}.home-hero .slideshow .slide-controls button{width:44px;height:44px}}

/* 053: gallery views and linked race photography */
.gallery-view-modes{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.gallery-view-modes button{border:1px solid #b9d1c3;border-radius:24px;background:white;color:#164e3e;font:inherit;font-weight:600;padding:10px 20px;min-height:44px}.gallery-view-modes button[aria-pressed=true]{background:#073e35;color:white;border-color:#073e35}.gallery-view-modes button:hover{box-shadow:0 3px 12px #073e3517}.race-photo-section{margin-top:14px;border-top:1px solid #dce5df;padding-top:10px}.race-photo-section>summary{font-weight:600;font-size:13px;cursor:pointer}.race-photo-thumbnails{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:12px 0;max-width:800px}.race-photo-thumbnails img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}.race-photo-gallery-link{font-size:12px;color:#076d55}.gallery-view-modes~#galleryCount{margin-bottom:18px}#galleryGrid[hidden],#albumGrid[hidden]{display:none!important}@media(max-width:600px){.gallery-view-modes button{flex:1;padding:10px 12px}.race-photo-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}}

body>header>.instagram-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;color:var(--deep);text-decoration:none}body>header>.instagram-link:hover{background:#eaf4ee;color:var(--green)}.race-photo-editor{margin:22px 0;border-top:1px solid var(--line);padding-top:20px}.race-photo-editor h3{font-size:22px}.race-photo-editor-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.race-photo-editor-list article{padding:12px;background:#edf4ef;border-radius:8px}.race-photo-editor-list img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px}.race-photo-editor-list label{display:grid;gap:4px}.race-photo-editor-list button{padding:8px;background:white;border:1px solid #b7cdbf;border-radius:5px;margin-top:8px}@media(max-width:760px){body>header>.instagram-link{width:34px;height:34px}body>header:has(.instagram-link)>.brand strong{font-size:16px}body>header:has(.instagram-link){gap:5px 7px}body>header:has(.instagram-link)>.brand img{width:80px;height:80px}}

.gallery-page .page-heading{padding-top:32px;padding-bottom:14px}.gallery-page main>.section{padding-top:20px}

.club-heading{padding-bottom:24px}.club-biography{max-width:1180px;padding-top:0}.club-story-photo{margin:0 0 38px}.club-story-photo img{display:block;width:100%;max-height:570px;object-fit:cover;object-position:center 45%;border-radius:12px}.club-story-photo figcaption{font-size:12px;color:var(--muted);margin-top:8px}.club-story{max-width:850px;margin:auto}.club-story h2{font-size:36px;line-height:1.15;margin-bottom:24px}.club-story>p{font-size:17px;line-height:1.85;margin:0 0 24px}.club-story>p.lead{font-size:21px;line-height:1.6;color:#1c6650;margin-bottom:30px}.club-story details{border-top:1px solid var(--line);padding:18px 0;margin-top:20px}.club-story summary{cursor:pointer;font-weight:bold}.club-story-sources ul{font-size:13px;line-height:1.9}.club-generation-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.club-generation-list article{background:white;padding:18px;border:1px solid var(--line);border-radius:8px}.club-generation-list article>a:first-child{font-size:17px;font-weight:bold}.club-generation-list article>a:last-child{display:block;font-size:12px;margin-top:8px}@media(max-width:650px){.club-story h2{font-size:29px}.club-story>p{font-size:16px;line-height:1.8}.club-story>p.lead{font-size:19px}.club-story-photo{margin-bottom:26px}.club-story-photo img{max-height:none;aspect-ratio:4/3}.club-generation-list{grid-template-columns:1fr}}

/* Competition-first administration */
.competition-admin-result{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,2fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #d3e2d9}.legacy-result-editor{margin-top:32px;padding-top:18px;border-top:1px solid #d3e2d9}.competition-description{white-space:pre-line}#competitionEditor h3{margin-top:28px}#competitionUploadStatus:empty{display:none}@media(max-width:700px){.competition-admin-result{grid-template-columns:1fr 1fr}.competition-admin-result span{grid-column:1/-1}}

#competitionPhotoList{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}#competitionPhotoList img{width:100%;height:150px;object-fit:cover;border-radius:10px}#competitionPhotoList article{min-width:0;padding:12px;border:1px solid #d3e2d9;border-radius:12px}

.danger-button{border:1px solid #a43d37;color:#872b25;margin:10px 8px} .slide-crop{overflow:hidden} .slide-crop img{will-change:transform}.slide-editor-row input[type=range]{width:100%;accent-color:#00856b}.slide-editor-row output{display:inline-block;min-width:60px;margin:8px 12px 8px 0;font-weight:700}

/* Video albums and circular portrait framing */
.gallery-thumb video,.race-photo-thumbnails video,.gallery-editor-item video,.video-admin-list video{width:100%;height:180px;object-fit:cover;background:#092c25}.gallery-video-player{width:min(100%,1100px);aspect-ratio:16/9;max-height:70vh;border:0;background:#000}.gallery-dialog [hidden]{display:none!important}.video-badge{display:block;padding:4px;background:#0c5746;color:white}.video-admin{border-top:1px solid #c7dbd1;margin-top:28px;padding-top:18px}.video-admin-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.video-admin-list img{width:100%;height:140px;object-fit:cover}.video-admin-list article{min-width:0}.crop-original-preview{display:none!important}.athlete-crop-editor{position:relative;overflow:hidden;border-radius:50%;width:220px;height:220px;background:#e0eae2 center/cover no-repeat;touch-action:none;cursor:grab;border:3px solid #0b8063}.athlete-crop-editor img{width:100%;height:100%;object-fit:cover;pointer-events:none;max-width:none}.athlete-crop-editor[hidden]{display:none}.framed-portrait{display:block;position:relative;overflow:hidden;border-radius:50%;background-size:cover}.framed-portrait>img{width:100%!important;height:100%!important;object-fit:cover;max-width:none;display:block}.photo-upload input[type=range]{width:min(350px,100%);accent-color:#07896e}.photo-upload output{display:block;font-weight:700}.gallery-media-player{display:flex;justify-content:center}

.video-placeholder{display:grid;place-items:center;min-height:160px;aspect-ratio:16/9;width:100%;background:#0c4539;color:#fff;font-size:22px;font-weight:700}.race-photo-thumbnails .video-placeholder{min-height:80px;font-size:14px}

/* Shared gallery/race framing and MP4 posters */
.media-photo-frame{display:block;position:relative;aspect-ratio:16/9;width:100%;overflow:hidden}.media-photo-frame>img{display:block;width:100%!important;height:100%!important;object-fit:cover;max-width:none;border-radius:0!important}.gallery-thumb .media-photo-frame{aspect-ratio:16/9}.gallery-crop-frame{position:relative;aspect-ratio:16/9;overflow:hidden;width:100%;background:#0c4539;touch-action:none;cursor:grab}.gallery-crop-frame>img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;border-radius:0!important;max-width:none;pointer-events:none}.gallery-crop-tools{min-width:0;width:100%}.gallery-crop-tools input[type=range]{width:100%;accent-color:#07896e}.gallery-crop-tools output{display:inline-block;padding:6px;font-weight:700}.media-video-thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:#0c4539}.media-video-thumb>img,.media-video-thumb>video{width:100%!important;height:100%!important;object-fit:cover;display:block;pointer-events:none}.video-play-badge{position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:35px;text-shadow:0 2px 10px #000;pointer-events:none}.poster-editor{padding:10px 0}.gallery-editor-item{align-content:start}.gallery-editor-item[hidden]{display:none}.race-photo-editor button[hidden],.gallery-admin button[hidden],#competitionPhotos button[hidden]{display:none!important}
