:root{--radius:14px}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}a{color:var(--link);text-underline-offset:3px}a:hover{color:var(--link-hover)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.skip-link{position:absolute;top:-100px;left:20px;padding:12px;background:var(--surface);z-index:10}.skip-link:focus{top:12px}.site-header{background:var(--surface);border-top:4px solid var(--red);border-bottom:1px solid var(--line)}.header-inner{max-width:1480px;margin:auto;padding:23px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--brand-text);flex-shrink:0}.brand:hover{color:var(--brand-text)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--red);color:var(--surface);font-size:24px;font-weight:800}.brand strong{font-size:20px;letter-spacing:.04em}.brand strong span{color:var(--red)}small{display:block;color:var(--muted);font-size:12px}.brand small{margin-top:1px}nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}nav a{padding:9px 13px;text-decoration:none;color:var(--label);font-weight:600;border-radius:8px}nav a:hover,nav a[aria-current]{background:var(--navigation-active);color:var(--link)}main{max-width:1480px;margin:0 auto;padding:44px 32px 64px;min-height:70vh}h1{font-size:clamp(28px,3.5vw,42px);line-height:1.15;letter-spacing:-.035em;margin:0 0 12px;color:var(--heading)}h2{font-size:21px;margin:0 0 16px}p{max-width:850px}.eyebrow{text-transform:uppercase;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.15em;margin:0 0 12px}.intro{color:var(--muted);margin:0 0 28px}.filters{display:grid;grid-template-columns:110px minmax(180px,1fr) 165px 165px auto;align-items:end;gap:16px;background:var(--surface);border:1px solid var(--line);padding:20px;border-radius:var(--radius);margin:28px 0 32px}.filters button{margin:0}.filters label{margin:0}.table-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.table-heading h2{margin:0}.count{color:var(--muted);font-size:13px}.scroll{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;background:var(--table-background);color:var(--table-heading);font-size:11px;font-weight:700;letter-spacing:.025em;padding:15px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:18px 14px;border-bottom:1px solid var(--row-border);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--highlight)}.calendar-table{min-width:1120px}.calendar-table td:nth-child(2),.calendar-table td:nth-child(3){white-space:nowrap;font-variant-numeric:tabular-nums}.calendar-table td:nth-child(4){min-width:230px;font-weight:600;color:var(--heading)}.calendar-table td:nth-child(7){min-width:170px}.calendar-table td:last-child{white-space:nowrap}.empty{padding:45px;text-align:center;color:var(--muted)}.discipline{display:inline-block;background:var(--badge-background);color:var(--badge-text);padding:3px 8px;border-radius:5px;white-space:nowrap;font-size:12px;font-weight:600}.no-results{color:var(--no-results)}.table-help{font-size:12px;color:var(--muted);margin:12px 0}.year-grid{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.year-card{padding:22px 36px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font-size:22px;font-weight:700;text-decoration:none}.year-card:hover{border-color:var(--blue)}label{display:block;font-size:13px;font-weight:600;color:var(--label);margin-bottom:16px}input:not([type=hidden]),select{display:block;background:var(--surface);color:var(--ink);border:1px solid var(--input-border);border-radius:8px;padding:10px 12px;min-height:44px;margin-top:6px;width:100%;min-width:0}input[type=file]{max-width:100%;padding:10px}input::placeholder{color:var(--placeholder)}button{border:1px solid transparent;background:var(--link);color:var(--surface);border-radius:8px;padding:10px 17px;min-height:44px;font-weight:600;cursor:pointer;margin:8px 0}button:hover{background:var(--button-hover)}button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}button.secondary:hover{background:var(--secondary-hover)}.danger{background:var(--red)}.danger:hover{background:var(--danger-hover)}.inline{display:inline;margin:0;padding:0}.form-panel{max-width:760px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-top:26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.form-grid .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;margin-top:8px}.login-panel{max-width:440px}section,.message{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:var(--radius);margin:24px 0}.message{border-left:4px solid var(--blue);background:var(--highlight)}.error{color:var(--error-text);background:var(--error-background);border-left:3px solid var(--red);padding:12px 16px}.site-footer{max-width:1416px;margin:0 auto;padding:24px 0;border-top:2px solid var(--blue);display:flex;justify-content:space-between;gap:16px;font-size:11px;letter-spacing:.05em;color:var(--muted)}
@media(max-width:1100px){.header-inner{align-items:flex-start;flex-direction:column;gap:16px}.filters{grid-template-columns:110px 1fr 1fr}.filters label:nth-child(2){grid-column:span 2}.site-footer{margin:0 24px}}
@media(max-width:600px){.header-inner{padding:20px}main{padding:30px 16px 44px}.brand strong{font-size:17px}nav{gap:2px;width:100%}nav a{padding:9px 10px;font-size:13px}.filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:12px}.filters label:nth-child(2){grid-column:auto}.filters button{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.form-panel{padding:20px}.site-footer{flex-direction:column;margin:0 16px}.table-help{max-width:100%}section{padding:20px}}
/* Strony klubu: treść starej witryny w nowej kompozycji. */
.header-inner{flex-wrap:wrap}.header-inner nav{margin-left:auto}.hero-lead{font-size:19px;line-height:1.7;color:var(--muted);max-width:710px;margin:22px 0 32px}.club-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center;padding:24px 0}.club-hero h1{font-size:clamp(38px,4.4vw,64px);line-height:1.08}.action-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.button-link{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:13px 21px;background:var(--link);color:var(--surface);border-radius:8px;text-decoration:none;font-size:14px;font-weight:650;min-height:46px}.button-link:hover{color:var(--surface);background:var(--button-hover)}.text-link{font-size:14px;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:44px 0 22px}.section-heading h2{font-size:28px;letter-spacing:-.03em;margin:0}.news-card{display:grid;grid-template-columns:210px 1fr;gap:36px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px}.news-date{display:flex;flex-direction:column;justify-content:center;padding:26px;background:var(--subtle-background);border-radius:10px;color:var(--muted);font-size:12px}.news-date strong{font-size:44px;color:var(--red);line-height:1.3;letter-spacing:-.04em;margin-bottom:14px}.news-card h2{font-size:28px;margin-bottom:10px}.news-card p{color:var(--muted)}.podium{display:flex;gap:44px;margin-top:24px}.podium div{border-left:2px solid var(--blue);padding-left:14px}.podium span,.podium strong{display:block}.podium span{color:var(--muted);font-size:12px}.podium strong{font-size:19px;margin-top:4px}.contact-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 0;margin-top:28px}.contact-strip h2{margin-bottom:6px}.contact-strip p{margin:0;color:var(--muted)}.about-intro{display:grid;grid-template-columns:.85fr 1.4fr;gap:60px;margin:42px 0 56px;align-items:center}.about-intro>div>p{color:var(--muted);line-height:1.8}.facility-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.facility-card{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.facility-card h3{margin:14px 0 8px;font-size:18px}.facility-card p{font-size:14px;color:var(--muted);margin:0}.board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.board-member{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px}.board-member span{color:var(--muted);font-size:12px}.board-member h3{margin:7px 0 0;font-size:18px;font-weight:650}.document-row{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--logo-line);margin-top:36px;padding-top:26px}.document-row h3{margin:0}.document-row p{color:var(--muted);margin:6px 0}.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-top:36px}.contact-grid section{margin:0;padding:36px}.phone-link{display:block;font-size:32px;font-weight:650;text-decoration:none;letter-spacing:-.03em;margin:20px 0 10px}.email-link{overflow-wrap:anywhere}.address-block{padding-top:26px;border-top:1px solid var(--line);margin-top:28px}.address-block h3{font-size:15px}.address-block address{font-style:normal;color:var(--muted);line-height:1.8}.contact-grid .location-card{background:var(--logo-tint);border-color:var(--logo-border);display:flex;flex-direction:column;justify-content:space-between;align-items:start;gap:32px}.location-card h2{font-size:36px;line-height:1.15;letter-spacing:-.03em}.location-card p{max-width:300px;color:var(--hero-text)}.bank-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:30px 36px;display:grid;grid-template-columns:1fr 1.4fr;gap:24px;margin-top:24px;align-items:center}.bank-card h2{margin-bottom:8px}.bank-card p{margin:0}.bank-card .account-number{font-size:clamp(17px,2vw,25px);font-variant-numeric:tabular-nums;letter-spacing:.02em;margin:8px 0 12px;overflow-wrap:anywhere}
@media(max-width:1000px){.club-hero{gap:30px;grid-template-columns:1.2fr 1fr}.about-intro{grid-template-columns:1fr;gap:24px}.header-inner nav{margin-left:0}.board-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.club-hero{grid-template-columns:1fr;padding:4px 0 12px;gap:24px}.club-hero+.section-heading{margin-top:36px}.hero-lead{font-size:17px}.news-card{grid-template-columns:1fr;gap:24px;padding:24px}.news-date{padding:16px;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.news-date strong{font-size:26px;margin:0}.section-heading{align-items:start;flex-direction:column}.contact-strip,.document-row{align-items:start;flex-direction:column}.contact-grid,.bank-card{grid-template-columns:1fr}.contact-grid section,.bank-card{padding:24px}.contact-grid{gap:16px}.phone-link{font-size:28px}.facility-grid,.board-grid{grid-template-columns:1fr}.podium{gap:24px;flex-wrap:wrap}.action-row{gap:18px}}

/* Oryginalne logo klubu zamiast ilustracji tarczy. */
.club-logo-panel{display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;overflow:hidden}.club-logo{display:block;width:100%;max-width:360px;height:auto;object-fit:contain}
@media(max-width:700px){.club-logo-panel{padding:20px}.club-logo{max-width:280px}}

/* Zbliżenie tarczy z logo w znaku nawigacji. */
.brand-mark{background:var(--surface);overflow:hidden;border:1px solid var(--line);flex-shrink:0;position:relative}.brand-mark img{display:block;width:66px;height:66px;max-width:none;object-fit:cover;position:absolute;left:-12px;top:-23px}
@media(max-width:700px){.filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.filters label:nth-child(2){grid-column:auto}.filters button{grid-column:1/-1}}

/* Native date inputs on iOS may add padding outside width:100%. Keep spacing on a wrapper. */
.filters label{min-width:0}
.filters .date-control{display:block;min-width:0;margin-top:6px;padding:10px 12px;border:1px solid var(--input-border);border-radius:8px;background:var(--surface)}
.filters .date-control input[type=date]{width:100%;max-width:100%;min-width:0;min-height:22px;margin:0;padding:0;border:0;border-radius:0;background:transparent}
@media(max-width:380px){.filters .date-filter{grid-column:1/-1}}

.filters .date-control input[type=date]{color:var(--ink);-webkit-text-fill-color:currentColor}
.filters .date-control input[type=date].is-empty{color:var(--placeholder)}

/* Galeria i dostęp administratora w stopce */
.site-footer{flex-wrap:wrap;align-items:center}.site-footer .admin-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}

/* Informacja o cookies bez banera i zapisywania potwierdzenia. */
.site-footer .footer-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0}
.site-footer .cookie-note{flex-basis:100%;max-width:none;margin:0;letter-spacing:normal;line-height:1.6}
.privacy-page{max-width:900px}.privacy-page section p{line-height:1.75;overflow-wrap:anywhere}.privacy-page section p:last-child{margin-bottom:0}

/* Komunikaty korzystają z tych samych PDF-ów co kalendarz. */
.announcements-list{list-style:none;padding:0;margin:24px 0 32px;max-width:900px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.announcements-list li{padding:20px 24px;border-bottom:1px solid var(--line)}
.announcements-list li:last-child{border-bottom:0}
.announcement-title{display:inline-block;padding:8px 0;font-weight:650;font-size:17px;overflow-wrap:anywhere}
.announcements-list p{margin:2px 0 8px;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:600px){.announcements-list li{padding:16px 20px}}

/* Trzy miniatury aktualności korzystają ze wspólnego podglądu galerii. */
.news-photos.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:360px;margin-top:24px;gap:10px}
.news-photos.gallery-grid img{aspect-ratio:1}

.school-invitation{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px);gap:40px;align-items:center;margin-top:32px;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.school-invitation h2{font-size:28px;letter-spacing:-.03em}.school-invitation p:not(.eyebrow){color:var(--muted);line-height:1.7}
.school-poster{display:block;text-decoration:none}.school-poster img{display:block;width:100%;height:auto;border-radius:8px}
@media(max-width:600px){.school-invitation{grid-template-columns:1fr;padding:24px;gap:24px}.school-poster{width:100%;max-width:280px;margin:auto}}

/* Podział dyscypliny na podkolumny P, K i S. */
.calendar-table .discipline-heading,.calendar-table .discipline-cell{text-align:center;min-width:44px;padding-left:10px;padding-right:10px}
.calendar-table .discipline-cell{font-weight:700;font-variant-numeric:tabular-nums}
.calendar-table .discipline-note{overflow-wrap:anywhere;white-space:normal}

/* Album klubowy z lokalnymi miniaturami i powiększeniem zdjęć. */
.gallery-album{margin-top:28px;padding:0;background:transparent;border:0}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;list-style:none;margin:0;padding:0}
.gallery-grid a{display:block;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-decoration:none}
.gallery-grid a:hover{border-color:var(--link)}
.gallery-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:var(--canvas);border-radius:5px}
.gallery-viewer{width:min(1100px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}
.gallery-viewer:not([open]){display:none}.gallery-viewer::backdrop{background:rgba(0,0,0,.82)}
.gallery-viewer-heading,.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gallery-viewer-heading h2{margin:0;font-size:20px}.gallery-viewer-heading form{margin:0}.gallery-viewer button{margin:0}
.gallery-stage{display:grid;place-items:center;min-height:160px;margin:14px 0;background:var(--canvas)}
.gallery-stage img{display:block;max-width:100%;max-height:calc(100dvh - 200px);width:auto;height:auto}
.gallery-controls span{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
.gallery-viewer button:disabled{opacity:.45;cursor:default}
@media(max-width:600px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-album .table-heading{align-items:flex-start;gap:12px}.gallery-album h2{font-size:20px}.gallery-viewer{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px}.gallery-viewer-heading{gap:8px}.gallery-viewer-heading h2{font-size:17px}.gallery-controls{gap:8px}.gallery-viewer button{padding:10px 12px;font-size:13px}}

/* Stany obrazów galerii: bez zastępowania źródeł i ponawiania żądań. */
.gallery-media{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--table-background);border-radius:5px}
.gallery-media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0}
.gallery-media[data-image-state="ready"] img{opacity:1}
.gallery-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:12px;text-align:center;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.gallery-placeholder::before{content:"";display:block;width:36px;height:28px;border:2px solid currentColor;border-radius:5px;opacity:.5;background:linear-gradient(145deg,transparent 47%,currentColor 48%,currentColor 52%,transparent 53%) center/24px 18px no-repeat}
.gallery-media[data-image-state="ready"] .gallery-placeholder{display:none}
.gallery-grid .gallery-placeholder{gap:8px;padding:8px}
.gallery-grid .gallery-placeholder::before{width:26px;height:20px;flex-shrink:0}
.news-photos .gallery-media{aspect-ratio:1}
.gallery-album-card>.gallery-media{height:260px;aspect-ratio:auto;border-radius:0}
.gallery-stage>.gallery-media{width:100%;height:min(65dvh,700px);aspect-ratio:auto}

/* Strona główna galerii grupuje zdjęcia w niezależne albumy. */
.gallery-albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;margin-top:28px}
.gallery-album-card{display:block;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none}
.gallery-album-card:hover{border-color:var(--link)}
.gallery-album-card>img{display:block;width:100%;height:260px;object-fit:contain;background:var(--table-background)}
.gallery-album-card>div{padding:20px}.gallery-album-card h2{font-size:21px;margin:0 0 8px;color:var(--heading)}
@media(max-width:600px){.gallery-albums{grid-template-columns:1fr;gap:16px}.gallery-album-card{max-width:none}}

/* Osadzenie dojazdu bez stałej szerokości na telefonie. */
.location-map{display:block;width:100%;max-width:100%;height:320px;border:0;border-radius:10px}
.location-card .map-notice{max-width:none;font-size:12px;line-height:1.6;margin:0}

.contact-details{display:grid;align-content:start;gap:24px;min-width:0}
.contact-details .bank-card{grid-template-columns:1fr;gap:16px;margin-top:0}

@media(min-width:701px){.contact-details{grid-template-rows:auto 1fr;align-content:stretch}.contact-details .bank-card{align-content:center}}

@media(max-width:600px){.club-hero+.section-heading{margin-top:22px}}
