/* Essential Leaflet layout rules, hosted locally to avoid CDN stylesheet failures. */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,
.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer {
    position:absolute; left:0; top:0;
}
.leaflet-container { overflow:hidden; background:#ddd; outline-offset:1px; font-family:Arial,Helvetica,sans-serif; }
.leaflet-container img.leaflet-tile,.leaflet-container .leaflet-pane img {
    max-width:none!important; max-height:none!important;
}
.leaflet-tile { visibility:hidden; user-select:none; -webkit-user-select:none; }
.leaflet-tile-loaded { visibility:inherit; }
.leaflet-zoom-animated { transform-origin:0 0; }
.leaflet-map-pane canvas { z-index:100; }
.leaflet-map-pane svg { z-index:200; }
.leaflet-tile-pane { z-index:200; }
.leaflet-overlay-pane { z-index:400; }
.leaflet-shadow-pane { z-index:500; }
.leaflet-marker-pane { z-index:600; }
.leaflet-tooltip-pane { z-index:650; }
.leaflet-popup-pane { z-index:700; }
.leaflet-control { position:relative; z-index:800; pointer-events:auto; }
.leaflet-top,.leaflet-bottom { position:absolute; z-index:1000; pointer-events:none; }
.leaflet-top { top:0; }
.leaflet-right { right:0; }
.leaflet-bottom { bottom:0; }
.leaflet-left { left:0; }
.leaflet-control { float:left; clear:both; }
.leaflet-right .leaflet-control { float:right; }
.leaflet-top .leaflet-control { margin-top:10px; }
.leaflet-bottom .leaflet-control { margin-bottom:10px; }
.leaflet-left .leaflet-control { margin-left:10px; }
.leaflet-right .leaflet-control { margin-right:10px; }
.leaflet-control-zoom a {
    display:block; width:30px; height:30px; line-height:30px; text-align:center;
    text-decoration:none; background:#fff; color:#222; border-bottom:1px solid #ccc;
    font-size:20px; font-weight:bold;
}
.leaflet-control-zoom a:first-child { border-radius:4px 4px 0 0; }
.leaflet-control-zoom a:last-child { border:0; border-radius:0 0 4px 4px; }
.leaflet-control-attribution { padding:0 5px; color:#333; background:rgba(255,255,255,.8); font-size:11px; }
.leaflet-control-attribution a { text-decoration:none; }
/* Leaflet gives the overlay SVG pointer-events="none". Interactive vector
   paths must opt back in or circle markers cannot receive clicks/taps. */
.leaflet-pane>svg path.leaflet-interactive,
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive {
    pointer-events:auto;
    cursor:pointer;
}
.leaflet-popup { position:absolute; margin-bottom:20px; text-align:center; }
.leaflet-popup-content-wrapper { padding:1px; text-align:left; border-radius:8px; background:#fff; box-shadow:0 3px 14px rgba(0,0,0,.35); }
.leaflet-popup-content { margin:13px 20px; line-height:1.4; min-width:150px; }
.leaflet-popup-tip-container { width:40px; height:20px; position:absolute; left:50%; margin-left:-20px; overflow:hidden; pointer-events:none; }
.leaflet-popup-tip { width:17px; height:17px; padding:1px; margin:-10px auto 0; transform:rotate(45deg); background:#fff; box-shadow:3px 3px 15px rgba(0,0,0,.25); }
.leaflet-popup-close-button { position:absolute; top:0; right:0; padding:4px 4px 0 0; width:18px; color:#757575; text-decoration:none; font:bold 16px/14px Arial; }

.cricket-map { width:100%; height:560px; margin:0 0 24px; border-radius:4px; }
.map-launch {
    margin:0 0 24px; padding:28px 20px; text-align:center; color:#fff;
    border-radius:5px; background:linear-gradient(135deg,#172d45,#1e5b71);
}
.map-launch h3 { margin-top:0; color:#fff; }
.map-launch p { margin:0 auto 16px; max-width:650px; font-size:16px; }
.map-launch .btn { min-width:210px; }
.map-error { padding:15px; margin-bottom:20px; background:#f2dede; border:1px solid #ebccd1; color:#a94442; }
.map-key { margin:0 0 15px; padding:0; list-style:none; }
.map-key li { display:inline-block; margin:0 15px 6px 0; }
.map-key-dot { display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:5px; border:1px solid #555; }
.map-popup h4 { margin:0 0 6px; }

.cricket-card-grid { display:flex; flex-wrap:wrap; margin:0 -8px 24px; }
.cricket-card-column { display:flex; width:33.3333%; padding:8px; }
.cricket-card {
    display:flex; flex:1; flex-direction:column; padding:18px; background:#fff;
    border:1px solid #d9e0e6; border-radius:5px; box-shadow:0 2px 5px rgba(0,0,0,.08);
}
.cricket-card h3 { margin:0 0 8px; font-size:19px; line-height:1.25; }
.cricket-card .ground-name { margin-bottom:5px; font-weight:600; }
.cricket-card .location { margin-bottom:8px; color:#555; }
.cricket-card .capacity { margin-bottom:12px; color:#555; }
.cricket-card .card-actions { margin-top:auto; padding-top:8px; }
.cricket-card .card-actions .btn { margin:0 5px 5px 0; }
.body-content h2.league-heading {
    margin:28px 0 6px;
    padding:10px 14px;
    color:#fff;
    background:#172d45;
    border-radius:4px;
}

@media (max-width:991px) {
    .cricket-card-column { width:50%; }
}
@media (max-width:600px) {
    .cricket-map { height:440px; }
    .cricket-card-column { width:100%; }
    .map-key li { display:block; }
}
