:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;color-scheme:light;--bg:#f3f6f8;--panel:#fff;--text:#17242e;--muted:#627480;--border:#dce5e9;--accent:#008c92;--accent2:#0f6369;--shadow:0 15px 40px rgba(20,48,64,.055)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0b141b;--panel:#14222b;--text:#f0f7f9;--muted:#a0b2bc;--border:#2a3b46;--accent:#34c6bd;--accent2:#167b7b;--shadow:0 15px 40px rgba(0,0,0,.15)}}:root[data-theme=dark]{color-scheme:dark;--bg:#0b141b;--panel:#14222b;--text:#f0f7f9;--muted:#a0b2bc;--border:#2a3b46;--accent:#34c6bd;--accent2:#167b7b;--shadow:0 15px 40px rgba(0,0,0,.15)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1300px;margin:auto;padding:0 24px}.top{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-weight:900;letter-spacing:.03em}.brand:hover{text-decoration:none}.brand b{color:var(--accent)}.brand small{display:block;font-size:9px;letter-spacing:.26em;color:var(--muted)}.logo{width:47px;height:47px;background:var(--accent);color:#05181b;border-radius:14px;display:grid;place-items:center;font-size:21px}.logo span{color:#fff}.top nav{display:flex;gap:17px;align-items:center;flex-wrap:wrap}.top nav a{font-size:13px;font-weight:700;color:var(--muted)}main{min-height:70vh;padding:46px 0 75px}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:center;min-height:480px}.hero h1{font-size:clamp(40px,5.5vw,76px);line-height:1.08;letter-spacing:-.055em;margin:14px 0}.hero p,.heading p{color:var(--muted);font-size:17px}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:900;color:var(--accent)}.panel,.tile{background:var(--panel);border:1px solid var(--border);border-radius:19px;padding:26px;box-shadow:var(--shadow)}.panel h2{margin-top:0;font-size:21px;letter-spacing:-.02em}.panel h3{margin-top:26px}form:not(.inline):not(.search){display:grid;gap:14px}label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;width:100%;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}button,.button{font:inherit;font-weight:750;cursor:pointer;display:inline-block;background:var(--accent);color:#05181b;border:0;border-radius:10px;padding:12px 19px;text-align:center}button:hover,.button:hover{filter:brightness(1.08);text-decoration:none}.secondary{background:var(--border);color:var(--text)}.quiet{background:transparent;color:var(--muted);padding:7px}.inline{display:inline-flex;align-items:center;gap:7px}.inline select{padding:8px}.heading{margin-bottom:28px}.heading h1{font-size:clamp(34px,5vw,55px);letter-spacing:-.045em;margin:8px 0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.tile{display:grid;gap:12px;color:var(--text)}.tile span{color:var(--accent);font-size:25px}.tile strong{font-size:35px}.tile small{color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.narrow{max-width:620px;margin:25px auto}.muted,.panel p{color:var(--muted)}.notice{background:#d6f5e8;color:#135c43;padding:15px 20px;border-radius:12px;margin-bottom:20px}.notice.error{background:#ffe5e5;color:#982d2d}.search{display:flex;gap:12px;margin-bottom:20px}.venuegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.message{border-top:1px solid var(--border);padding:15px 0}.message small,.userrow small{display:block;color:var(--muted)}.userrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--border);flex-wrap:wrap}footer{border-top:1px solid var(--border);padding:24px 0 40px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}footer select{width:auto}@media(max-width:850px){.hero,.two{grid-template-columns:1fr}.hero{gap:18px}.top{align-items:flex-start;flex-direction:column;padding:17px 0}.top nav{gap:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.shell{padding:0 15px}main{padding:26px 0 55px}.hero h1{font-size:41px}.panel,.tile{padding:18px;border-radius:15px}.cards,.venuegrid{grid-template-columns:1fr}.top nav{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.top nav>*{white-space:nowrap}.search{flex-direction:column}.userrow{align-items:flex-start;flex-direction:column}}

/* Customizable branding */
.site-logo{max-width:180px;max-height:58px;width:auto;height:auto;object-fit:contain;flex-shrink:0}.logo-preview{display:block;max-width:250px;max-height:110px;object-fit:contain;margin:10px 0}.site-announcement{padding:13px 18px;background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-top:14px;color:var(--text);overflow-wrap:anywhere}.footer-extra{display:block;margin-top:7px;overflow-wrap:anywhere}.brand{min-width:0;overflow-wrap:anywhere}.brand>span:last-child{font-size:clamp(13px,1.4vw,17px)}@media(max-width:560px){.site-logo{max-width:95px;max-height:45px}.brand>span:last-child{font-size:13px}.top{gap:10px}}

/* Venue maps and gallery, 1.0.3 */
.venue-map{height:340px;min-height:260px;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin:14px 0}.map-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:12px}.photo-gallery img{width:100%;height:165px;object-fit:cover;border-radius:12px;border:1px solid var(--border)}.map-picker{display:grid;gap:8px}.map-picker .map-actions button{flex:1}@media(max-width:560px){.venue-map{height:290px}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-gallery img{height:130px}}

/* 1.0.4: prevent map clipping and support mobile controls */
.venue-map{display:block;width:100%;min-width:0;height:440px;min-height:320px;position:relative;z-index:0;touch-action:pan-x pan-y}.map-picker,.panel,.two{min-width:0}.leaflet-container{z-index:0}.map-actions button[aria-pressed="true"]{outline:3px solid #f59e0b;outline-offset:2px}@media(max-width:640px){.venue-map{height:360px;min-height:320px}}

/* v1.0.5: Leaflet must own tile dimensions and transforms. */
.venue-map.leaflet-container{display:block;width:100%;height:440px;min-height:320px;position:relative;overflow:hidden;isolation:isolate;touch-action:auto}
.venue-map .leaflet-pane,.venue-map .leaflet-map-pane,.venue-map .leaflet-tile-container{position:absolute}
.venue-map .leaflet-tile,.venue-map .leaflet-marker-icon,.venue-map .leaflet-marker-shadow{max-width:none!important;max-height:none!important;box-sizing:content-box!important;border:0!important;padding:0!important;margin:0!important;object-fit:fill!important}
.venue-map .leaflet-tile{display:block;visibility:inherit}
.venue-map .leaflet-control-container img{max-width:none}
@media(max-width:640px){.venue-map.leaflet-container{height:360px}}

/* 1.0.6 venue directory */
.directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:14px;margin:18px 0 32px}.directory-card{display:flex;align-items:center;gap:15px;min-height:100px;background:var(--panel);border:1px solid var(--border);border-radius:17px;padding:19px 21px;color:var(--text);box-shadow:var(--shadow);transition:transform .15s,border-color .15s}.directory-card:hover{transform:translateY(-2px);border-color:var(--accent);text-decoration:none}.directory-card strong{display:block;font-size:17px;overflow-wrap:anywhere}.directory-card small{display:block;color:var(--muted);margin-top:5px}.directory-icon{display:grid;place-items:center;width:47px;height:47px;flex:none;border-radius:13px;background:var(--bg);color:var(--accent);font-size:25px}.directory-arrow{margin-left:auto;color:var(--accent);font-size:26px}.venue-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 22px;color:var(--muted);font-size:14px}
/* Leaflet layout: avoid overrides on tile positions and transforms */
.venue-map .leaflet-pane,.venue-map .leaflet-map-pane,.venue-map .leaflet-tile-container{position:absolute}.venue-map .leaflet-tile{max-width:none!important;max-height:none!important;border:0!important;padding:0!important;box-sizing:content-box!important}.venue-map .leaflet-control-container{box-sizing:content-box}

/* 1.0.7 empty directory */
.directory-empty{margin-top:20px;text-align:center}.directory-empty .map-actions{justify-content:center}.directory-empty p{max-width:620px;margin:12px auto 18px}

/* 1.0.8 Leaflet tile correction: do not override Leaflet transforms or tile dimensions */
.venue-map.leaflet-container{width:100%;height:440px;position:relative;overflow:hidden;isolation:isolate}
.venue-map .leaflet-tile{max-width:none!important;max-height:none!important;box-sizing:border-box!important;object-fit:fill!important}
.venue-map .leaflet-tile-pane img{border:0!important;padding:0!important;margin:0!important}
.danger-zone{border-color:#a94444}
@media(max-width:640px){.venue-map.leaflet-container{height:360px}}
