/* kk-main.css – Kalendarz Koncertowy główna strona */

        :root { --gold:#d4af37; --gold-bright:#f3e5ab; --gold-dark:#b8860b; --slate-deep:#020617; --glass-border:rgba(212,175,55,0.2); }
        * { -webkit-tap-highlight-color: transparent; }
        body { font-family:'Plus Jakarta Sans',sans-serif; background-color:var(--slate-deep); color:#f1f5f9; overflow-x:hidden; scroll-behavior:smooth; }
        .glass-card { background:rgba(15,23,42,0.75); backdrop-filter:blur(30px); border:1px solid var(--glass-border); box-shadow:0 25px 50px -12px rgba(0,0,0,0.8); }
        /* NAPRAWIONE: padding-bottom większy żeby złoty tekst nie był poucinany + overflow:visible na parent */
        .gold-gradient-text { background:linear-gradient(135deg,var(--gold) 0%,var(--gold-bright) 50%,var(--gold-dark) 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; display:inline-block; padding-bottom:0.25em; padding-right:0.15em; line-height:1.3; overflow:visible; }
        /* Kontener nagłówka nie może ciąć gradient */
        h1.gold-gradient-text, h2.gold-gradient-text, h3.gold-gradient-text { display:block; overflow:visible; }
        /* ═══ PANEL BOCZNY PLAKATÓW ═══ */
        .side-panel { position:fixed; top:0; width:320px; height:100vh; background:rgba(2,6,23,0.98); backdrop-filter:blur(40px); z-index:9000; display:flex; flex-direction:column; padding:40px 24px 32px 24px; transition:transform 0.55s cubic-bezier(0.85,0,0.15,1); }
        #panel-right { right:0; transform:translateX(320px); border-left:1px solid rgba(212,175,55,0.15); }
        #panel-right.active { transform:translateX(0); }
        .panel-trigger { position:fixed; top:0; bottom:0; width:40px; z-index:9001; cursor:pointer; }
        #trigger-right { right:0; }
        .panel-handle { position:absolute; top:50%; writing-mode:vertical-rl; padding:28px 10px; font-size:9px; font-weight:900; letter-spacing:0.22em; text-transform:uppercase; color:#020617; background:linear-gradient(180deg,#d4af37 0%,#b8860b 100%); cursor:pointer; user-select:none; white-space:nowrap; }
        #panel-right .panel-handle { left:-38px; transform:translateY(-50%) rotate(180deg); border-radius:0 8px 8px 0; box-shadow:-4px 0 16px rgba(0,0,0,0.7); }
        .panel-inner { flex:1; overflow-y:auto; overflow-x:hidden; margin-top:24px; }
        .panel-inner::-webkit-scrollbar { width:3px; } .panel-inner::-webkit-scrollbar-thumb { background:rgba(212,175,55,0.25); border-radius:99px; }
        .panel-section-title { font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:0.22em; color:rgba(212,175,55,0.45); padding-bottom:10px; border-bottom:1px solid rgba(212,175,55,0.1); margin-bottom:16px; }
        .poster-item { display:block; border-radius:10px; overflow:hidden; border:1px solid rgba(212,175,55,0.15); transition:border-color .2s,transform .2s; background:rgba(255,255,255,.03); text-decoration:none; margin-bottom:10px; }
        .poster-item:hover { border-color:rgba(212,175,55,.5); transform:scale(1.02); }
        .poster-item img { width:100%; height:110px; object-fit:cover; display:block; }
        .poster-no-img { width:100%; height:110px; background:rgba(212,175,55,.05); display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:rgba(212,175,55,.25); }
        .poster-item-title { font-size:10px; font-weight:800; color:#d4af37; text-transform:uppercase; padding:7px 8px 3px; letter-spacing:0.04em; line-height:1.3; }
        .poster-item-sub { font-size:9px; color:#475569; padding:0 8px 7px; }
        /* ── RADIO INFO POPUP ── */
        #rp-info-popup { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.85); backdrop-filter:blur(12px); align-items:center; justify-content:center; padding:1rem; }
        #rp-info-popup.visible { display:flex; }
        .rp-info-popup-box { background:linear-gradient(135deg,rgba(2,6,23,0.98),rgba(15,23,42,0.98)); border:1px solid rgba(212,175,55,0.3); border-radius:1.5rem; padding:2rem; width:100%; max-width:420px; position:relative; animation:modalEnter 0.35s ease-out; }
        .rp-info-popup-cover { width:100%; height:180px; object-fit:cover; border-radius:1rem; display:block; margin-bottom:1.25rem; border:1px solid rgba(212,175,55,0.15); }
        .rp-info-popup-cover-ph { width:100%; height:120px; background:linear-gradient(135deg,rgba(212,175,55,0.12),rgba(15,23,42,0.8)); border-radius:1rem; display:flex; align-items:center; justify-content:center; font-size:3rem; margin-bottom:1.25rem; }
        .rp-info-popup-close { position:absolute; top:1rem; right:1rem; background:rgba(255,255,255,0.08); border:none; color:rgba(255,255,255,0.6); width:32px; height:32px; border-radius:50%; font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; line-height:1; min-height:0; }
        .rp-info-popup-close:hover { background:rgba(255,255,255,0.15); color:white; }
        .rp-top-clickable { cursor:pointer; transition:background 0.2s; border-radius:0.75rem; margin:0.5rem; }
        .rp-top-clickable:hover { background:rgba(255,255,255,0.04); }
        .btn-gold { background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%); color:var(--slate-deep); font-weight:800; text-transform:uppercase; transition:all 0.4s cubic-bezier(0.175,0.885,0.32,1.275); display:flex; align-items:center; justify-content:center; gap:8px; }
        .btn-gold:hover:not(:disabled) { transform:translateY(-3px) scale(1.02); box-shadow:0 15px 30px rgba(212,175,55,0.4); }
        .btn-gold:disabled { opacity:0.6; cursor:not-allowed; }
        #map-wrapper { width:100%; max-width:950px; height:auto; aspect-ratio:1000/950; margin:0 auto; position:relative; }
        .province-group { cursor:pointer; }
        .province-shape { fill:rgba(212,175,55,0.055); stroke:rgba(212,175,55,0.4); stroke-width:1.6; stroke-linejoin:round; transition:fill 0.35s ease, stroke 0.35s ease, filter 0.35s ease; }
        .province-group:hover .province-shape { fill:rgba(212,175,55,0.4); stroke:var(--gold); filter:url(#pl-glow) drop-shadow(0 0 10px rgba(212,175,55,0.55)); }
        .province-group:active .province-shape,
        .province-group.kk-region-active .province-shape { fill:rgba(212,175,55,0.55); stroke:#f3e5ab; }
        .province-label { font-size:11px; font-weight:800; fill:var(--gold); pointer-events:none; text-transform:uppercase; letter-spacing:1.5px; opacity:0.6; text-anchor:middle; paint-order:stroke; stroke:rgba(2,6,23,0.85); stroke-width:3px; stroke-linejoin:round; }
        #map-hover-popup { position:absolute; pointer-events:auto; display:none; width:280px; z-index:200; transition:transform 0.2s ease-out; }
        @media (max-width:768px) { #map-hover-popup { position:fixed; left:50%!important; top:50%!important; transform:translate(-50%,-50%)!important; width:90%; max-width:320px; } }
        .social-btn { aspect-ratio:1/1; height:38px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:rgba(255,255,255,0.03); color:var(--gold); border:1px solid var(--glass-border); transition:all 0.3s ease; }
        .social-btn:hover { background:var(--gold); color:var(--slate-deep); transform:rotate(8deg); }
        .sidebar-input { background:rgba(15,23,42,0.6); border:1px solid rgba(212,175,55,0.2); color:white; padding:12px; border-radius:12px; width:100%; font-size:11px; outline:none; transition:border-color 0.3s,box-shadow 0.3s; }
        .sidebar-input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,0.1); }
        .sidebar-input-highlight { background:rgba(212,175,55,0.08); border:2px solid rgba(212,175,55,0.4); box-shadow:0 0 0 3px rgba(212,175,55,0.15); }
        .sidebar-input-highlight:focus { border-color:var(--gold); box-shadow:0 0 0 4px rgba(212,175,55,0.25); }
        .concert-row { cursor:pointer; transition:all 0.3s ease; border-bottom:1px solid rgba(255,255,255,0.03); }
        .concert-row:hover { background:rgba(255,255,255,0.05); }
        .promo-row { border-left:4px solid var(--gold); background:rgba(212,175,55,0.12); }
        .promo-badge { background:linear-gradient(90deg,var(--gold-dark),var(--gold)); color:black; font-size:8px; font-weight:900; padding:2px 8px; border-radius:4px; text-transform:uppercase; }
        .calendar-day { aspect-ratio:1/1; display:flex; flex-direction:column; justify-content:space-between; padding:8px; border-radius:12px; cursor:pointer; transition:0.3s; background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.05); }
        @media (min-width:768px) { .calendar-day { padding:12px; border-radius:18px; } }
        .day-active { border-color:var(--gold); background:rgba(212,175,55,0.05); }
        .day-promo { border-color:#d4af37 !important; background:linear-gradient(135deg,rgba(212,175,55,0.13),rgba(212,175,55,0.04)) !important; box-shadow:0 0 0 1px rgba(212,175,55,0.18), 0 4px 18px rgba(212,175,55,0.12); position:relative; }
        .promo-day-pin { position:absolute; top:4px; right:5px; font-size:8px; line-height:1; }
        .event-dot { width:6px; height:6px; background:var(--gold); border-radius:50%; }
        .event-dot-promo { background:#fff176; box-shadow:0 0 4px rgba(212,175,55,0.7); width:7px; height:7px; }
        @keyframes modalEnter { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
        .animate-modal { animation:modalEnter 0.4s ease-out forwards; }
        .custom-scrollbar::-webkit-scrollbar { width:4px; }
        .custom-scrollbar::-webkit-scrollbar-thumb { background:var(--gold-dark); border-radius:10px; }
        @keyframes slideDown { from { opacity:0; transform:translateY(-20px); } to { opacity:1; transform:translateY(0); } }
        #mobile-menu.flex { animation:slideDown 0.3s ease-out; }
        @media (max-width:768px) { .btn-gold { min-height:48px; } button,a { min-height:44px; } }
        .article-card { transition:transform 0.3s ease, box-shadow 0.3s ease; cursor:pointer; }
        .article-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,0.55); }
        .article-card img { transition:filter 0.4s ease, transform 0.4s ease; filter:grayscale(0.4) brightness(0.8); }
        .article-card:hover img { filter:grayscale(0) brightness(1); transform:scale(1.05); }
        @keyframes slideInRight { from { opacity:0; transform:translateX(30px); } to { opacity:1; transform:translateX(0); } }
        .rodo-check { display:flex; align-items:flex-start; gap:10px; }
        .rodo-check input[type="checkbox"] { margin-top:2px; width:16px; height:16px; border-radius:4px; accent-color:#d4af37; flex-shrink:0; cursor:pointer; }
        .rodo-check span { font-size:10px; color:#64748b; line-height:1.6; cursor:pointer; }
        .rodo-check a { color:#d4af37; }
        .rodo-check a:hover { text-decoration:underline; }
    
/* ── RADIO PLAYER ── */
#radio-player-wrap { position:relative; width:100%; }
.rp-container { background:linear-gradient(135deg,rgba(2,6,23,0.97) 0%,rgba(15,23,42,0.97) 100%); border:1px solid rgba(212,175,55,0.25); border-radius:1.5rem; overflow:hidden; position:relative; isolation:isolate; }
.rp-bg-blur { position:absolute; inset:-20px; background-size:cover; background-position:center; filter:blur(60px) saturate(1.8); opacity:0.18; z-index:0; transition:all 1.2s ease; }
.rp-top { display:flex; align-items:center; gap:1rem; padding:1.25rem 1.25rem 1rem; position:relative; z-index:1; }
.rp-cover-wrap { position:relative; flex-shrink:0; }
.rp-cover { width:72px; height:72px; border-radius:12px; object-fit:cover; display:block; border:1px solid rgba(212,175,55,0.2); transition:all 0.5s ease; }
.rp-cover-placeholder { width:72px; height:72px; border-radius:12px; background:linear-gradient(135deg,rgba(212,175,55,0.15),rgba(15,23,42,0.8)); border:1px solid rgba(212,175,55,0.2); display:flex; align-items:center; justify-content:center; font-size:1.75rem; }
.rp-cover-wrap.playing .rp-cover, .rp-cover-wrap.playing .rp-cover-placeholder { animation:rpSpin 8s linear infinite; border-radius:50%; box-shadow:0 0 0 3px rgba(212,175,55,0.3),0 0 24px rgba(212,175,55,0.15); }
@keyframes rpSpin { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.rp-needle { position:absolute; top:-8px; right:-14px; width:28px; height:28px; transform-origin:top center; transform:rotate(-20deg); transition:transform 0.6s cubic-bezier(.34,1.56,.64,1); font-size:1.25rem; filter:drop-shadow(0 2px 4px rgba(0,0,0,0.5)); pointer-events:none; }
.rp-cover-wrap.playing .rp-needle { transform:rotate(10deg); }
.rp-info { flex:1; min-width:0; }
.rp-live-badge { display:inline-flex; align-items:center; gap:5px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:0.15em; color:#ef4444; margin-bottom:4px; }
.rp-live-dot { width:6px; height:6px; border-radius:50%; background:#ef4444; animation:rpPulse 1.2s ease-in-out infinite; }
@keyframes rpPulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:0.4; transform:scale(0.7); } }
.rp-track-title { font-size:0.9rem; font-weight:900; color:white; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.2; letter-spacing:-0.02em; }
.rp-track-artist { font-size:11px; font-weight:700; color:#d4af37; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rp-track-info-btn { background:rgba(212,175,55,0.1); border:1px solid rgba(212,175,55,0.2); border-radius:6px; padding:2px 7px; font-size:9px; font-weight:800; color:#d4af37; cursor:pointer; margin-top:5px; display:inline-block; transition:all 0.2s; text-transform:uppercase; letter-spacing:0.05em; min-height:0; font-family:inherit; }
.rp-track-info-btn:hover { background:rgba(212,175,55,0.2); }
.rp-progress-wrap { position:relative; z-index:1; padding:0 1.25rem 0.75rem; }
.rp-progress-bar { width:100%; height:3px; background:rgba(255,255,255,0.08); border-radius:99px; overflow:hidden; position:relative; }
.rp-progress-fill { height:100%; background:linear-gradient(90deg,#d4af37,#f3e5ab); border-radius:99px; width:0%; transition:width 1s linear; }
.rp-progress-fill.stream { width:100%; background:linear-gradient(90deg,rgba(212,175,55,0.3) 0%,rgba(243,229,171,0.8) 40%,rgba(212,175,55,0.3) 60%,rgba(212,175,55,0.3) 100%); background-size:200% 100%; animation:rpShimmer 2s linear infinite; }
@keyframes rpShimmer { 0% { background-position:200% 0; } 100% { background-position:-200% 0; } }
.rp-time { display:flex; justify-content:space-between; font-size:9px; color:rgba(255,255,255,0.3); font-weight:700; margin-top:4px; font-variant-numeric:tabular-nums; }
.rp-controls { display:flex; align-items:center; gap:0.5rem; padding:0 1rem 1.25rem; position:relative; z-index:1; }
.rp-btn-skip { background:transparent; border:none; color:rgba(255,255,255,0.45); cursor:pointer; padding:6px; border-radius:8px; transition:all 0.2s; display:flex; align-items:center; font-size:1rem; line-height:1; min-height:0; }
.rp-btn-skip:hover { color:white; background:rgba(255,255,255,0.07); }
.rp-btn-play { width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,#d4af37,#b8860b); border:none; color:#020617; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:all 0.25s; box-shadow:0 4px 16px rgba(212,175,55,0.35); flex-shrink:0; margin:0 0.25rem; min-height:0; }
.rp-btn-play:hover { transform:scale(1.08); box-shadow:0 6px 24px rgba(212,175,55,0.5); }
.rp-btn-play:active { transform:scale(0.95); }
.rp-volume-wrap { display:flex; align-items:center; gap:6px; margin-left:auto; }
.rp-vol-icon { font-size:0.9rem; color:rgba(255,255,255,0.4); cursor:pointer; transition:color 0.2s; flex-shrink:0; }
.rp-vol-icon:hover { color:white; }
.rp-volume { -webkit-appearance:none; appearance:none; width:70px; height:3px; border-radius:99px; background:rgba(255,255,255,0.1); outline:none; cursor:pointer; }
.rp-volume::-webkit-slider-thumb { -webkit-appearance:none; width:12px; height:12px; border-radius:50%; background:#d4af37; cursor:pointer; box-shadow:0 0 6px rgba(212,175,55,0.5); }
.rp-playlist { border-top:1px solid rgba(255,255,255,0.06); position:relative; z-index:1; max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(.4,0,.2,1); }
.rp-playlist.open { max-height:260px; overflow-y:auto; }
.rp-playlist::-webkit-scrollbar { width:3px; } .rp-playlist::-webkit-scrollbar-thumb { background:rgba(212,175,55,0.3); border-radius:99px; }
.rp-playlist-toggle { display:flex; align-items:center; justify-content:center; gap:6px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:rgba(255,255,255,0.25); cursor:pointer; padding:0.5rem; background:none; border:none; width:100%; transition:color 0.2s; position:relative; z-index:1; min-height:0; font-family:inherit; }
.rp-playlist-toggle:hover { color:rgba(255,255,255,0.6); }
.rp-track-item { display:flex; align-items:center; gap:0.75rem; padding:0.625rem 1.25rem; cursor:pointer; transition:background 0.2s; border-bottom:1px solid rgba(255,255,255,0.03); }
.rp-track-item:hover { background:rgba(255,255,255,0.04); }
.rp-track-item.active { background:rgba(212,175,55,0.07); }
.rp-track-item-cover { width:36px; height:36px; border-radius:6px; object-fit:cover; flex-shrink:0; border:1px solid rgba(255,255,255,0.06); }
.rp-track-item-placeholder { width:36px; height:36px; border-radius:6px; background:rgba(212,175,55,0.08); display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.rp-track-item-info { flex:1; min-width:0; }
.rp-track-item-title { font-size:11px; font-weight:800; color:white; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rp-track-item-artist { font-size:10px; color:#d4af37; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rp-track-item-num { font-size:10px; color:rgba(255,255,255,0.2); font-weight:700; flex-shrink:0; width:18px; text-align:right; }
.rp-track-item.active .rp-track-item-num { color:#d4af37; }
.rp-info-panel { background:rgba(212,175,55,0.06); border-top:1px solid rgba(212,175,55,0.12); padding:0.875rem 1.25rem; font-size:11px; color:rgba(255,255,255,0.6); line-height:1.6; position:relative; z-index:1; display:none; }
.rp-info-panel.visible { display:block; }
.rp-top-clickable { cursor:pointer; transition:background 0.2s; border-radius:0.75rem; margin:0.5rem; }
.rp-top-clickable:hover { background:rgba(255,255,255,0.04); }
/* ── RADIO INFO POPUP ── */
#rp-info-popup { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,0.85); backdrop-filter:blur(12px); align-items:center; justify-content:center; padding:1rem; }
#rp-info-popup.visible { display:flex; }
.rp-info-popup-box { background:linear-gradient(135deg,rgba(2,6,23,0.98),rgba(15,23,42,0.98)); border:1px solid rgba(212,175,55,0.3); border-radius:1.5rem; padding:2rem; width:100%; max-width:420px; position:relative; animation:modalEnter 0.35s ease-out; }
.rp-info-popup-cover { width:100%; height:180px; object-fit:cover; border-radius:1rem; display:block; margin-bottom:1.25rem; border:1px solid rgba(212,175,55,0.15); }
.rp-info-popup-cover-ph { width:100%; height:120px; background:linear-gradient(135deg,rgba(212,175,55,0.12),rgba(15,23,42,0.8)); border-radius:1rem; display:flex; align-items:center; justify-content:center; font-size:3rem; margin-bottom:1.25rem; }
.rp-info-popup-close { position:absolute; top:1rem; right:1rem; background:rgba(255,255,255,0.08); border:none; color:rgba(255,255,255,0.6); width:32px; height:32px; border-radius:50%; font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; line-height:1; min-height:0; font-family:inherit; }
.rp-info-popup-close:hover { background:rgba(255,255,255,0.15); color:white; }

/* ── Skalowanie dla ekranów laptopowych (1024–1440px) ── */
/* Na laptopie strona wygląda jak przy 80% zoomu przeglądarki.  */
/* Ekrany >= 1441px pozostają bez zmian.                         */
@media screen and (min-width: 1024px) and (max-width: 1440px) {
    html {
        zoom: 0.80;
    }
}

