@font-face{font-family:W2D;src:local("Segoe UI")}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:W2D,"Segoe UI",Arial,sans-serif;color:#302535;background:#faf9f6}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #66c4c5;outline-offset:3px}button{border:0;background:none;color:inherit}a{color:inherit}.header{height:88px;padding:12px 32px;display:flex;align-items:center;border-bottom:1px solid #eae5e8;gap:45px;background:#fff;position:relative;z-index:700}.brand img{object-fit:contain;width:184px;height:59px}.region{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:650}.muted{font-weight:400;color:#8a818b}.live-dot{width:7px;height:7px;flex-shrink:0;background:#59a7a0;border-radius:50%;display:inline-block}.header nav{margin-left:auto;display:flex;gap:18px}.nav-button{font-size:13px;padding:10px 8px}.nav-button[aria-pressed=true]{color:#522e5a;background:#f1eaf3;border-radius:8px}#saved-count{font-size:11px;background:#f0ecef;padding:3px 6px;border-radius:20px;margin-left:5px}.workspace{height:calc(100dvh - 88px);display:flex}.explore{width:445px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;z-index:500;box-shadow:6px 0 30px #3025350a}.intro{padding:27px 28px 18px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#8b788a}.intro h1{font-size:33px;letter-spacing:-1.5px;font-weight:700;margin:8px 0 9px;line-height:1.15}.intro h1 span{color:#d98659}.intro p{color:#807681;font-size:13px;margin:0;line-height:1.5}.filters{padding:0 28px 20px;border-bottom:1px solid #efecef}.search-box{display:flex;gap:10px;align-items:center;background:#f6f4f6;border:1px solid #eae5ea;border-radius:9px;padding:9px 14px}.search-box>span{font-size:25px;line-height:1;color:#796979}.search-box input{min-width:0;border:0;background:none;outline:none;width:100%;font-size:13px;color:#302535}.time-tabs{display:flex;margin:16px 0 18px;gap:3px;background:#f6f4f6;padding:4px;border-radius:8px}.time-tabs button{font-size:11px;flex:1;white-space:nowrap;padding:9px 5px;border-radius:6px}.time-tabs .active{color:white;background:#522e5a;box-shadow:0 2px 4px #522e5a20}.select-row{display:flex;gap:16px}.select-row label{width:50%;font-size:10px;font-weight:650;color:#8a7e8b}.select-row select{margin-top:6px;width:100%;border:1px solid #e6e0e6;border-radius:7px;background:white;color:#514454;font-size:12px;padding:9px 7px}.filter-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:11px}.check{display:flex;align-items:center;gap:5px}.check input{accent-color:#522e5a}.text-button{color:#8f7f91;font-size:11px;text-decoration:underline;text-underline-offset:3px}#date{border:1px solid #ddd;padding:8px;width:100%;margin:-8px 0 14px;border-radius:6px}.results-heading{padding:17px 28px 11px;display:flex;align-items:center;justify-content:space-between}.results-heading h2{font-size:13px;margin:0}.results-heading>span{font-size:10px;color:#958a97}.results{flex:1;overflow:auto;padding:0 16px;scrollbar-width:thin;scrollbar-color:#d9d0dc #fff}.event-row{display:flex;gap:13px;width:100%;text-align:left;padding:17px 12px;border-bottom:1px solid #eee9ed;transition:background .15s;border-radius:7px}.event-row:hover{background:#faf7fa}.event-icon{display:flex;align-items:center;justify-content:center;width:48px;height:56px;border-radius:10px;background:var(--wash);color:var(--ink);font-size:25px;flex-shrink:0}.event-copy{min-width:0;flex:1}.event-top{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--ink);font-weight:650}.event-top .distance{color:#9a8d9d;font-weight:400;white-space:nowrap}.event-row h3{font-size:13px;font-weight:650;line-height:1.45;margin:6px 0;overflow-wrap:anywhere}.event-date{font-size:11px;color:#635469;line-height:1.5}.event-venue{font-size:10px;color:#978b99;margin-top:3px}.row-price{font-size:9px;display:inline-block;border-radius:4px;padding:3px 5px;margin-top:7px;color:#8b7f8e;background:#f4f1f4}.row-price.free{color:#397e76;background:#edf7f2}.empty{text-align:center;padding:38px 20px;font-size:13px;line-height:1.7;color:#8a7b8c}.empty strong{display:block;font-size:19px;color:#522e5a;margin-bottom:6px}.empty button{margin:15px 0 0;padding:10px 18px;border:1px solid #e4dbe7;border-radius:6px;background:white;font-size:12px}.list-footer{padding:13px 28px;display:flex;align-items:center;gap:8px;font-size:10px;color:#9c909f;border-top:1px solid #eee;line-height:1.5}.map-area{position:relative;flex:1;min-width:0;background:#f0eee6}#map{position:absolute;inset:0;z-index:1}.leaflet-container{background:#edece7;font-family:inherit}.leaflet-tile-pane{filter:saturate(.6)}.map-buttons{position:absolute;right:24px;top:24px;z-index:500;display:flex;flex-direction:column;gap:9px}.map-buttons button{height:42px;width:42px;border-radius:8px;background:white;box-shadow:0 3px 16px #30253512;font-size:25px}.map-note{position:absolute;bottom:36px;left:24px;z-index:500;background:#fffef5ef;padding:14px 20px;border-radius:8px;border:1px solid #eae4d6;box-shadow:0 3px 16px #30253509;display:flex;flex-direction:column;gap:4px;max-width:calc(100% - 95px);pointer-events:none}.map-note strong{font-size:13px;font-weight:600}.map-note span{font-size:11px;color:#938678}.leaflet-control-zoom{border:0!important;box-shadow:0 3px 15px #30253515!important;margin:24px!important}.leaflet-control-attribution{font-size:9px!important}.marker-group{background:none;border:0}.leaflet-tooltip{font-family:inherit!important}.mobile-map{display:none}dialog{border:0;border-radius:15px;box-shadow:0 25px 100px #29173144;max-height:88dvh;width:510px;max-width:calc(100vw - 24px);padding:0;color:#302535}dialog::backdrop{background:#2d1b3c66;backdrop-filter:blur(3px)}.close{position:absolute;right:15px;top:12px;background:#ffffffd9;width:32px;height:32px;border-radius:50%;font-size:25px;z-index:2;line-height:1}.dialog-banner{padding:35px 30px 26px;background:var(--wash);color:var(--ink);display:flex;gap:13px;align-items:center}.dialog-banner>span{font-size:45px}.dialog-banner p{font-size:10px;letter-spacing:1.3px;font-weight:700;margin:0}.dialog-banner small{font-size:11px;display:block;margin-top:6px}.dialog-inner{padding:28px 30px}.dialog-inner h2{font-size:24px;line-height:1.35;letter-spacing:-.4px;margin:5px 0 20px}.dialog-inner p{font-size:13px;line-height:1.7;color:#77677b}.detail-meta{margin:20px 0;display:grid;gap:15px}.detail-meta>div{display:flex;gap:15px;font-size:18px}.detail-meta p{margin:0;font-size:13px;color:#49384e}.detail-meta small{display:block;color:#948697;font-size:11px;margin-top:3px;line-height:1.5}.primary-link{display:block;text-align:center;text-decoration:none;color:#fff;background:#522e5a;padding:14px;border-radius:8px;font-size:13px;font-weight:650;margin-top:23px}.detail-actions{display:flex;gap:10px;margin-top:10px}.detail-actions>*{flex:1;font-size:12px;text-decoration:none;text-align:center;padding:11px 5px;border:1px solid #e7e0e9;border-radius:7px}.source-foot{border-top:1px solid #eee5ef;padding-top:17px;margin-top:22px;font-size:10px;color:#968999;line-height:1.8}.source-foot a{text-underline-offset:3px}.small{font-size:11px!important}.source-item{padding:15px 0;border-bottom:1px solid #eee}.source-item strong{font-size:13px}.source-item p{margin:5px 0 0;font-size:11px}.source-status{font-size:10px;float:right;color:#489485}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#34223b;color:white;padding:14px 22px;border-radius:9px;font-size:13px;z-index:2000;max-width:90vw;box-shadow:0 8px 25px #21102d30}.skip{position:fixed;top:-100px;z-index:2000;background:white;padding:15px}.skip:focus{top:0}.notice{padding:10px;background:#fff4db;border-radius:5px;font-size:12px}.location-marker{width:14px;height:14px;border:3px solid white;border-radius:50%;background:#2f97db;box-shadow:0 0 0 8px #2f97db30}
@media(min-width:1600px){.explore{width:485px}.intro{padding-top:35px}.intro h1{font-size:37px}.event-row h3{font-size:14px}.event-row{padding-top:20px;padding-bottom:20px}}@media(max-width:1000px){.header{padding:12px 20px;gap:20px}.explore{width:385px}.intro,.filters{padding-left:20px;padding-right:20px}.intro h1{font-size:30px}.header nav{gap:8px}.map-note span{display:none}.region .muted{display:none}}@media(max-width:700px){.header{height:72px;padding:8px 15px;gap:10px}.brand img{width:137px;height:48px}.region{display:none}.header nav{gap:2px}.nav-button{font-size:10px;padding:10px 5px}#saved-toggle{font-size:14px}#saved-toggle>span:first-child{display:none}.workspace{height:calc(100dvh - 72px)}.explore{width:100%}.intro{padding:22px 22px 16px}.intro h1{font-size:32px}.filters{padding:0 22px 15px}.results-heading{padding:16px 23px 8px}.results{padding-bottom:70px}.list-footer{display:none}.map-area{display:none}.map-note{display:none}.mobile-map{display:block;position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#522e5a;color:white;z-index:900;border:1px solid #ffffff35;border-radius:30px;padding:13px 24px;box-shadow:0 7px 28px #522e5a3d;font-size:13px}.workspace.map-visible .explore{display:none}.workspace.map-visible .map-area{display:block}.map-buttons{right:16px;top:16px}.dialog-inner{padding:24px}.dialog-inner h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.event-description{line-height:1.75;color:#56465d;font-size:15px;margin:16px 0 24px;overflow-wrap:anywhere}

/* Long category labels must not force the map or list off screen. */
.select-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.select-row label,.select-row select{min-width:0;width:100%;max-width:100%}.select-row select{text-overflow:ellipsis}.event-top{align-items:flex-start}.event-top>span:first-child{min-width:0;overflow-wrap:anywhere}.event-top .distance{flex-shrink:0}.dialog-banner p{overflow-wrap:anywhere}

/* Shared SVG category artwork: sized explicitly for small screens and Leaflet. */
.category-icon{display:block;width:36px;height:36px;flex-shrink:0}
.event-icon{width:48px;height:52px;border-radius:12px}
.dialog-banner>span{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:64px;height:64px}
.dialog-banner .category-icon{width:60px;height:60px}
.map-pin-icon{display:block;overflow:visible;filter:drop-shadow(0 2px 3px #39246926)}
.marker-group:focus-visible{outline:3px solid #0EACB5;outline-offset:4px;border-radius:24px}
.marker-group:hover .map-pin-icon{filter:drop-shadow(0 3px 5px #39246940)}

/* Mobile discovery: compact list filters and a floating view switch. */
.view-switch{display:none}.load-more{display:block;margin:14px auto 22px;border:1px solid #d9cddf;border-radius:8px;padding:12px 20px;color:#522e5a;background:white;font-size:13px}.load-more:disabled{opacity:.5}
.map-limit-note{position:absolute;bottom:90px;left:16px;right:64px;z-index:500;background:#fff8e6;padding:10px;border-radius:8px;font-size:12px}.map-limit-note[hidden]{display:none}
.select-row{grid-template-columns:minmax(0,1fr)}
@media(max-width:700px){
 .header{height:60px;padding:6px 14px}.brand img{height:45px;width:137px}
 .workspace{height:calc(100dvh - 60px);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}
 .explore,.workspace.map-visible .explore{display:contents}.intro{display:none}
 .filters{grid-row:1;padding:10px 14px;background:white;z-index:600;border-bottom:1px solid #eee9ed}
 .search-box{padding:8px 11px;min-height:40px}.search-box input{font-size:14px}
 .time-tabs{margin:8px 0;gap:2px;padding:3px}.time-tabs button{padding:8px 3px;min-height:34px;font-size:11px}
 #date{margin:0 0 8px;padding:7px;font-size:14px}
 .select-row label{font-size:10px}.select-row select{margin-top:3px;padding:8px;font-size:12px;min-height:36px}
 .filter-bottom{margin-top:8px;gap:8px;min-height:34px;font-size:11px}.check{gap:6px}.check input{width:18px;height:18px;margin:0}.filter-bottom .text-button{margin-left:auto;font-size:10px}
 .view-switch{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:900;display:flex;gap:4px;padding:5px;border:1px solid #e7dfe9;background:#fff;border-radius:30px;box-shadow:0 6px 24px #522e5a33}.view-switch button{padding:11px 24px;min-width:88px;min-height:44px;border-radius:24px;font-size:14px;font-weight:600}.view-switch button[aria-pressed=true]{background:#522e5a;color:white}
 .results-heading{grid-row:2;padding:10px 14px 8px;background:white;gap:8px}.results-heading h2{font-size:12px}.results-heading>span{font-size:9px}
 .results{grid-row:3;min-height:0;padding:0 10px calc(100px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:100px;overflow-y:auto;overscroll-behavior:contain;background:white}
 .event-row{padding:13px 6px}.event-top .distance{font-size:8px;white-space:normal;max-width:88px;text-align:right}.event-icon{width:42px;height:48px}.event-row h3{font-size:13px}
 .list-footer{display:none}.map-area{grid-row:2/4;min-height:0;display:none}.workspace.map-visible{grid-template-rows:minmax(0,1fr)}.workspace.map-visible .map-area{display:block;grid-row:1}.workspace.map-visible .filters,.workspace.map-visible .results,.workspace.map-visible .results-heading{display:none}
 .map-buttons{right:12px;top:12px}.map-limit-note{bottom:calc(90px + env(safe-area-inset-bottom,0px))}.map-note{display:none}
}
@media(max-width:360px){.filter-bottom{gap:5px}.view-switch button{padding:11px 22px}.nav-button{font-size:9px}.brand img{width:125px}.time-tabs button{font-size:10px}}

.language-control{display:flex;align-items:center;gap:7px;font-size:12px;white-space:nowrap}.language-control select{max-width:145px;min-height:36px;border:1px solid #ddd1e0;border-radius:9px;background:white;color:#522e5a;padding:5px}
.translation-note{font-size:12px;color:#726779;padding:8px 0}
@media(max-width:800px){.header{gap:8px}.language-control{margin-left:auto}.language-control select{max-width:115px}.event-top{flex-wrap:wrap}.header .region{display:none}}

.workspace{height:calc(100dvh - var(--header-height,88px))}.intro h1>span[data-i18n]{color:inherit}.results-heading{gap:8px;flex-wrap:wrap}

/* Feedback keeps its label visible on mobile and uses the existing dialog. */
.header{gap:24px}.header nav{gap:8px;align-items:center}.feedback-open{background:#f1eaf3;border:1px solid #d8c9de;border-radius:9px;color:#522e5a;font-weight:650;white-space:nowrap}
#feedback{width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}#feedback-form{display:grid;gap:9px}#feedback-form label{font-size:13px;font-weight:650;margin-top:7px}#feedback-form input,#feedback-form select,#feedback-form textarea{width:100%;min-width:0;border:1px solid #d8cedb;border-radius:8px;padding:10px;color:#302535;background:white;font:inherit}#feedback-form textarea{resize:vertical}#feedback-form textarea:focus-visible{outline:3px solid #66c4c5;outline-offset:2px}#feedback-form .small{margin:0;line-height:1.5}#feedback-form[hidden]{display:none}.feedback-submit{padding:13px 18px;background:#522e5a;color:white;border-radius:8px;font-weight:650}.feedback-submit:disabled{opacity:.6;cursor:wait}#feedback-error{color:#a23045;margin:0}#feedback-success{padding:18px;border-radius:10px;background:#edf7f2;color:#286c63;line-height:1.7}
@media(max-width:1100px){.header{gap:10px}.header .region{display:none}}
@media(max-width:640px){.header .nav-button{font-size:11px;min-height:40px;padding:8px 5px}.header .brand img{width:135px;height:42px}#feedback .dialog-inner{padding:24px 18px}}

/* One-row public navigation. The transparent native select keeps keyboard and touch support. */
.feedback-label-short{display:none}
.language-compact{position:relative;flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;margin:0}
.language-compact .language-symbol{display:block;width:24px;height:24px;line-height:24px;text-align:center;font-size:25px;color:#522e5a;pointer-events:none}
.language-compact .language-symbol[data-mode=pl],.language-compact .language-symbol[data-mode=en]{height:16px;border-radius:2px;box-shadow:0 0 0 1px #30253525;background-size:100% 100%}
.language-compact .language-symbol[data-mode=pl]{background-image:url('/static/flag-pl.svg')}
.language-compact .language-symbol[data-mode=en]{background-image:url('/static/flag-en.svg')}
.language-compact select{position:absolute;inset:0;width:44px;height:44px;max-width:none;opacity:0;cursor:pointer}
.language-compact:focus-within{outline:3px solid #66c4c5;outline-offset:1px;border-radius:8px}
.header{flex-wrap:nowrap}
@media(max-width:700px){
 .header{height:56px;min-height:56px;padding:6px 8px;gap:6px}
 .header .brand{flex-shrink:0}.header .brand img{display:block;width:110px;height:36px}
 .header nav{order:0;width:auto;margin-left:auto;display:flex;gap:4px;flex-shrink:0}
 .header .nav-button{height:44px;min-height:44px;padding:6px;font-size:12px}
 .header #saved-toggle{min-width:44px;white-space:nowrap}
 .header #saved-count{font-size:10px;margin-left:2px;padding:2px 4px}
 .feedback-label-full{display:none}.feedback-label-short{display:inline}
 .header .language-control{margin:0}
}
@media(min-width:360px) and (max-width:700px){.header .brand img{width:135px;height:42px}}
