.vls-solar{--bg:#0b0d10;--panel:#12161b;--panel2:#171c22;--line:#2a3139;--text:#f4f6f8;--muted:#9aa5b1;--accent:#f2b84b;--ok:#65d39a;--warn:#e9cd93;background:var(--bg);color:var(--text);padding:28px;border-radius:18px;font-family:inherit;box-sizing:border-box}.vls-solar *{box-sizing:border-box}.vls-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.vls-brand{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:800}.vls-head h1{font-size:34px;line-height:1.05;margin:6px 0 10px;color:var(--text)}.vls-head p{color:var(--muted);max-width:800px;line-height:1.5;margin:0}.vls-badge{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:12px;white-space:nowrap}.vls-badge.ok{border-color:#3f6e57;color:#9ee0ba;background:#101914}.vls-badge.err{border-color:#745f31;color:#e9cd93;background:#19160f}.vls-layout{display:grid;grid-template-columns:420px 1fr;gap:22px}.vls-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px}.vls-card h2{margin:0 0 15px;font-size:17px;color:var(--text)}.vls-card h3{color:var(--text)}.vls-solar label{display:block;color:#cfd6dd;font-size:13px;margin:15px 0 7px}.vls-solar input,.vls-solar select,.vls-solar button{width:100%;border-radius:11px;border:1px solid var(--line);background:#0f1318;color:var(--text);padding:12px 13px;font-size:14px}.vls-solar button{cursor:pointer;font-weight:750}.vls-solar button:disabled{opacity:.45;cursor:not-allowed}.vls-primary,.vls-searchrow button{background:var(--accent)!important;color:#15100a!important;border:none!important}.vls-secondary{background:#151a20!important;color:var(--text)!important;border:1px solid var(--line)!important}.vls-searchrow{display:grid;grid-template-columns:1fr 92px;gap:8px;position:relative}.vls-results{position:absolute;left:0;right:100px;top:49px;z-index:1100;background:#11161b;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:none;max-height:220px;overflow-y:auto}.vls-result{padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.35;cursor:pointer}.vls-result:hover{background:#1b222a}.vls-map{height:320px;border-radius:14px;border:1px solid var(--line);overflow:hidden;margin-top:12px}.vls-small{font-size:11px;color:var(--muted);line-height:1.5}.vls-coords,.vls-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.vls-coords{margin-top:10px}.vls-coords>div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px}.vls-coords b{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.vls-segment{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:11px;overflow:hidden}.vls-segment button{border-radius:0;background:#0f1318;color:var(--muted)}.vls-segment button.active{background:#252c34;color:var(--text)}.vls-space-top{margin-top:16px}.vls-calc{margin-top:16px}.vls-status{margin-top:14px;border:1px dashed #526155;background:#111914;color:#b8d9c6;padding:12px;border-radius:11px;font-size:12px;line-height:1.45}.vls-status.warn{border-color:#745f31;background:#19160f;color:var(--warn)}.vls-devbox{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#101419}.vls-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.vls-metric{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:16px}.vls-metric span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px;text-transform:uppercase;letter-spacing:.04em}.vls-metric b{display:block;font-size:24px;color:var(--text)}.vls-metric small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.vls-chart{height:310px;display:flex;align-items:flex-end;gap:8px;padding:24px 12px 28px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#151a20,#101419)}.vls-barcol{flex:1;display:flex;height:100%;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;cursor:pointer}.vls-barcol.active .vls-bar{outline:2px solid #fff;outline-offset:2px}.vls-bar{width:78%;background:var(--accent);border-radius:7px 7px 2px 2px;min-height:2px}.vls-m{font-size:11px;color:var(--muted)}.vls-months{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px}.vls-month{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:8px 9px;cursor:pointer;min-height:76px}.vls-month:hover,.vls-month.active{border-color:#756139;background:#1b1a16}.vls-month b{display:block;font-size:11px;margin-bottom:4px;color:var(--text)}.vls-month span{font-size:10px;color:var(--muted);line-height:1.35}.vls-details{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.vls-detailbox{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:16px}.vls-detailbox h3{margin:0 0 12px;font-size:14px}.vls-detailgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.vls-detailmetric{background:#101419;border:1px solid var(--line);border-radius:10px;padding:11px}.vls-detailmetric b{display:block;font-size:18px;color:var(--text)}.vls-detailmetric span{font-size:10px;color:var(--muted)}.vls-travel{margin-top:16px;border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(180deg,#151a20,#101419)}.vls-travel h3{margin:0 0 12px}.vls-travelres{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.vls-travelres>div{background:#12171c;border:1px solid var(--line);border-radius:10px;padding:11px}.vls-travelres b{display:block;font-size:18px}.vls-travelres span{font-size:10px;color:var(--muted)}.vls-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.vls-meta span{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:6px 9px;border-radius:999px;background:#101419}.vls-shop-summary{margin-top:9px}.vls-shop-summary+button{margin-top:10px}.vls-footnote{margin-top:14px}.vls-solar .leaflet-control-attribution{font-size:9px}.vls-solar .leaflet-popup-content-wrapper,.vls-solar .leaflet-popup-tip{background:#11161b;color:#fff}
@media(max-width:1050px){.vls-layout{grid-template-columns:1fr}.vls-hero{grid-template-columns:repeat(2,1fr)}.vls-months{grid-template-columns:repeat(4,1fr)}.vls-head{display:block}.vls-badge{display:inline-block;margin-top:14px}}@media(max-width:720px){.vls-details{grid-template-columns:1fr}.vls-travelres{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.vls-solar{padding:16px}.vls-hero{grid-template-columns:1fr}.vls-months{grid-template-columns:repeat(2,1fr)}.vls-travelres{grid-template-columns:1fr}.vls-row{grid-template-columns:1fr}}

/* v0.1.1 compact results */
.vls-months{grid-template-columns:repeat(6,minmax(100px,126px));justify-content:start;align-items:start;gap:7px;margin-top:10px}
.vls-month{min-height:0;height:auto;padding:7px 8px;border-radius:9px}
.vls-month b{font-size:10.5px;margin-bottom:3px}
.vls-month span{font-size:9.5px;line-height:1.28}
.vls-details{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:9px;margin-top:12px;align-items:start}
.vls-detailbox{padding:11px 12px;border-radius:11px}
.vls-detailbox h3{font-size:12.5px;margin:0 0 8px}
.vls-detailgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.vls-detailmetric{padding:8px;border-radius:8px}
.vls-detailmetric b{font-size:15px;line-height:1.1}
.vls-detailmetric span{font-size:9px;line-height:1.2}
.vls-travel{margin-top:12px;padding:12px;border-radius:12px}
.vls-travel h3{font-size:13px;margin-bottom:8px}
.vls-travelres{gap:6px;margin-top:8px}
.vls-travelres>div{padding:8px;border-radius:8px}
.vls-travelres b{font-size:15px;line-height:1.1}
.vls-travelres span{font-size:9px}
@media(max-width:1050px){.vls-months{grid-template-columns:repeat(4,minmax(100px,126px))}}
@media(max-width:720px){.vls-details{grid-template-columns:1fr}.vls-detailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.vls-months{grid-template-columns:repeat(2,minmax(100px,1fr));justify-content:stretch}}

/* v0.1.2 loading feedback, map tile stability, compact aligned overview */
.vls-layout{grid-template-columns:minmax(360px,420px) minmax(0,1fr);align-items:start}
.vls-layout>main{min-width:0}
.vls-overview-card{position:relative;overflow:hidden}
.vls-overview-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.vls-overview-title h2{margin:0!important}
.vls-overview-location{font-size:10px;line-height:1.3;color:var(--muted);text-align:right;max-width:230px}
.vls-overview-card .vls-hero{gap:8px;margin-bottom:10px}
.vls-overview-card .vls-metric{padding:10px 11px;border-radius:10px;min-width:0}
.vls-overview-card .vls-metric span{font-size:9px;margin-bottom:4px;letter-spacing:.03em}
.vls-overview-card .vls-metric b{font-size:19px;line-height:1.05}
.vls-overview-card .vls-metric small{font-size:9px;margin-top:3px;line-height:1.15}
.vls-overview-card .vls-chart{height:205px;padding:14px 10px 22px;gap:6px;border-radius:11px}
.vls-overview-card .vls-barcol{gap:4px}
.vls-overview-card .vls-m{font-size:9px}
.vls-overview-card .vls-months{grid-template-columns:repeat(6,minmax(0,1fr));justify-content:stretch;gap:6px;margin-top:8px}
.vls-overview-card .vls-month{padding:6px 7px;border-radius:8px;min-width:0}
.vls-overview-card .vls-month b{font-size:9.5px;margin-bottom:2px;white-space:nowrap}
.vls-overview-card .vls-month span{font-size:8.5px;line-height:1.22}
.vls-analysis-card .vls-details{margin-top:0}

.vls-loading-overlay{position:absolute;inset:0;z-index:600;display:flex;align-items:center;justify-content:center;background:rgba(11,13,16,.73);backdrop-filter:blur(1.5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease}
.vls-solar.is-loading .vls-loading-overlay{opacity:1;visibility:visible;pointer-events:auto}
.vls-loading-box{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:999px;background:#11161b;border:1px solid #3c4651;box-shadow:0 10px 30px rgba(0,0,0,.3);color:#f4f6f8;font-size:12px}
.vls-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent);animation:vls-spin .7s linear infinite;flex:0 0 auto}
@keyframes vls-spin{to{transform:rotate(360deg)}}

/* WordPress themes often constrain all img elements; Leaflet tiles must keep their native dimensions. */
.vls-map .leaflet-container img,
.vls-map .leaflet-pane img,
.vls-map img.leaflet-tile{max-width:none!important;max-height:none!important;height:auto;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important}
.vls-map .leaflet-tile{outline:1px solid transparent;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.vls-map .leaflet-tile-container{will-change:transform}

@media(max-width:1050px){
  .vls-layout{grid-template-columns:1fr}
  .vls-overview-card .vls-hero{grid-template-columns:repeat(2,1fr)}
  .vls-overview-card .vls-months{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:560px){
  .vls-overview-title{display:block}
  .vls-overview-location{display:block;text-align:left;margin-top:4px;max-width:none}
  .vls-overview-card .vls-hero{grid-template-columns:1fr 1fr}
  .vls-overview-card .vls-chart{height:185px}
  .vls-overview-card .vls-months{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v0.1.3 – Labs theme compatibility and true container responsiveness */
.vls-solar{
    width:100%;
    max-width:none;
    min-width:0;
    container-type:inline-size;
}
.vls-solar .vls-layout{
    grid-template-columns:minmax(330px,38%) minmax(0,1fr);
    gap:18px;
    align-items:start;
}
.vls-solar .vls-layout>aside,
.vls-solar .vls-layout>main{
    min-width:0;
    width:100%;
}
.vls-section-title{
    margin:0 0 15px;
    font-size:17px;
    line-height:1.25;
    font-weight:800;
    color:var(--text);
}
.vls-subsection-title{
    margin:0 0 8px;
    font-size:12.5px;
    line-height:1.3;
    font-weight:800;
    color:var(--text);
}
.vls-overview-title .vls-section-title{
    margin:0;
}
.vls-travel .vls-subsection-title{
    font-size:13px;
    margin-bottom:8px;
}

/* Never allow child content to force the result column wider than its grid track. */
.vls-overview-card,
.vls-analysis-card,
.vls-hero,
.vls-chart,
.vls-months,
.vls-details,
.vls-travel,
.vls-detailgrid,
.vls-travelres{
    min-width:0;
    max-width:100%;
}
.vls-overview-card .vls-month,
.vls-overview-card .vls-metric,
.vls-detailmetric,
.vls-travelres>div{
    min-width:0;
    overflow-wrap:anywhere;
}

/* Normal two-column desktop composition. */
@container (min-width: 960px){
    .vls-solar .vls-overview-card .vls-chart{height:195px}
    .vls-solar .vls-overview-card .vls-months{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* The component collapses based on its OWN width, not the browser viewport. */
@container (max-width: 959px){
    .vls-solar .vls-layout{grid-template-columns:1fr}
    .vls-solar .vls-overview-card .vls-hero{grid-template-columns:repeat(4,minmax(0,1fr))}
    .vls-solar .vls-overview-card .vls-months{grid-template-columns:repeat(6,minmax(0,1fr))}
    .vls-solar .vls-head{display:flex}
}
@container (max-width: 760px){
    .vls-solar .vls-head{display:block}
    .vls-solar .vls-badge{display:inline-block;margin-top:14px}
    .vls-solar .vls-overview-card .vls-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vls-solar .vls-overview-card .vls-months{grid-template-columns:repeat(4,minmax(0,1fr))}
    .vls-solar .vls-details{grid-template-columns:1fr}
}
@container (max-width: 520px){
    .vls-solar{padding:16px}
    .vls-solar .vls-overview-card .vls-hero{grid-template-columns:1fr}
    .vls-solar .vls-overview-card .vls-months{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vls-solar .vls-detailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vls-solar .vls-travelres{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vls-solar .vls-row{grid-template-columns:1fr}
}

/* Extra isolation against theme content styles. */
.vls-solar main,
.vls-solar aside,
.vls-solar section{
    float:none!important;
}
.vls-solar .vls-map{
    width:100%!important;
    min-width:0!important;
}


/* v0.1.4 – compatibility with the Vandalierer Labs page grid.
   The theme reserves a sidebar column even when the generated TOC is empty. */
.vl-page.vls-page-host{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
}
.vl-page.vls-page-host .vl-article{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
}
.vl-page.vls-page-host .vl-prose{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
}
.vl-page.vls-page-host .vl-sidebar{
    display:none!important;
}
.vl-page.vls-page-host .vls-solar{
    width:100%!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    left:auto!important;
    transform:none!important;
}


/* v0.1.5 – remove all remaining Labs theme width caps, only on calculator pages. */
.vl-main.vls-main-host{
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
}
.vl-main.vls-main-host .vl-page.vls-page-host{
    width:min(1240px, calc(100vw - 48px))!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow:visible!important;
}
.vl-main.vls-main-host .vl-page.vls-page-host .vl-article,
.vl-main.vls-main-host .vl-page.vls-page-host .vl-prose{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
}
.vl-main.vls-main-host .vl-page.vls-page-host .vl-prose > .vls-solar{
    --vls-target-width:min(1180px, calc(100vw - 64px));
    width:var(--vls-target-width)!important;
    max-width:none!important;
    margin-left:calc((100% - var(--vls-target-width)) / 2)!important;
    margin-right:0!important;
}

/* Keep the component safely inside narrow screens. */
@media (max-width: 700px){
    .vl-main.vls-main-host .vl-page.vls-page-host{
        width:calc(100vw - 24px)!important;
    }
    .vl-main.vls-main-host .vl-page.vls-page-host .vl-prose > .vls-solar{
        --vls-target-width:calc(100vw - 24px);
    }
}


/* v0.1.6 – compact month tiles and full-width month detail */
.vls-overview-card .vls-months{
    gap:6px!important;
    margin-top:8px!important;
}
.vls-overview-card .vls-month{
    min-height:52px!important;
    padding:7px 8px!important;
    border-radius:8px!important;
}
.vls-overview-card .vls-month b{
    display:block!important;
    font-size:10.5px!important;
    line-height:1.1!important;
    margin:0 0 4px!important;
}
.vls-overview-card .vls-month-values{
    display:flex!important;
    flex-direction:column!important;
    gap:1px!important;
    font-size:9.5px!important;
    line-height:1.15!important;
    color:var(--muted)!important;
}
.vls-overview-card .vls-month-values>span{
    display:block!important;
    margin:0!important;
    padding:0!important;
}

/* Detail hierarchy: month detail full width, camper interpretation below. */
.vls-analysis-card .vls-details{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
}
.vls-analysis-card .vls-detailbox{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
}
.vls-analysis-card .vls-detailbox:first-child{
    grid-column:1 / -1!important;
}
.vls-analysis-card .vls-detailbox:nth-child(2){
    grid-column:1 / -1!important;
    padding:11px 13px!important;
}
.vls-analysis-card .vls-detailgrid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
}
.vls-analysis-card .vls-detailmetric{
    padding:8px 9px!important;
}
.vls-analysis-card .vls-detailmetric b{
    font-size:16px!important;
    line-height:1.1!important;
}
.vls-analysis-card .vls-detailmetric span{
    font-size:9px!important;
    line-height:1.15!important;
}
.vls-analysis-card [data-camper-text]{
    margin:0!important;
    max-width:none!important;
    line-height:1.4!important;
}

@container (max-width:650px){
    .vls-analysis-card .vls-detailgrid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}


/* v0.1.7 – loading contrast, geocoding results and destination context */
.vls-loading-box,
.vls-loading-box strong,
.vls-loading-box [data-loading-text]{
    color:#ffffff!important;
    opacity:1!important;
    text-shadow:0 1px 1px rgba(0,0,0,.35);
}
.vls-loading-box{
    background:#1c232b!important;
    border-color:#65717d!important;
}
.vls-result{
    display:block;
    width:100%;
    text-align:left;
    border:0;
    border-bottom:1px solid var(--line);
    border-radius:0;
    background:#11161b;
    color:var(--text);
    padding:10px 12px;
    font-size:11px;
    line-height:1.35;
    cursor:pointer;
}
.vls-result:hover{background:#202832}
.vls-result b{
    color:var(--accent);
    font-size:9px;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.vls-region{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid var(--line);
}
.vls-region-head{
    display:flex;
    gap:12px;
    align-items:flex-start;
    justify-content:space-between;
}
.vls-region-kicker{
    display:block;
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:9px;
    font-weight:800;
    margin-bottom:3px;
}
.vls-region-head strong{
    display:block;
    font-size:13px;
    line-height:1.25;
}
.vls-region-loading{
    color:#d5dde5;
    font-size:10px;
    white-space:nowrap;
}
.vls-region-facts{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin-top:9px;
}
.vls-region-facts>span{
    display:flex;
    gap:5px;
    align-items:baseline;
    padding:5px 7px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#101419;
    color:var(--muted);
    font-size:9.5px;
}
.vls-region-facts b{
    color:var(--text);
    font-size:9.5px;
}
.vls-region-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    margin-top:9px;
}
.vls-region-grid>div{
    border:1px solid var(--line);
    background:#101419;
    border-radius:9px;
    padding:9px;
    min-width:0;
}
.vls-region-grid strong{
    display:block;
    font-size:10px;
    margin-bottom:5px;
}
.vls-region-grid ul{
    margin:0;
    padding-left:15px;
}
.vls-region-grid li{
    color:var(--muted);
    font-size:9.5px;
    line-height:1.35;
    margin:0 0 4px;
}
.vls-region-links{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:8px;
}
.vls-region-links a{
    color:var(--accent);
    font-size:9.5px;
    text-decoration:none;
    border-bottom:1px solid rgba(242,184,75,.45);
}
@container (max-width:760px){
    .vls-region-grid{grid-template-columns:1fr}
    .vls-region-head{display:block}
    .vls-region-loading{display:block;margin-top:5px;white-space:normal}
}


/* v0.1.8 – ambiguous place selection */
.vls-result-note{
    padding:8px 10px;
    background:#211b10;
    border-bottom:1px solid #6e5b2c;
    color:#ead9a4;
    font-size:9.5px;
    line-height:1.35;
}
.vls-result-place{
    display:block;
    color:var(--text);
    font-size:11.5px;
    font-weight:700;
    line-height:1.25;
}
.vls-result-context{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:9.5px;
    line-height:1.25;
}


/* v0.1.9 – legibility and camper-specific destination facts */
.vls-region-head strong,
.vls-region-head [data-region-title],
.vls-region-grid>div>strong,
.vls-region-grid strong{
    color:#f7f8fa!important;
    opacity:1!important;
    text-shadow:none!important;
}
.vls-region-grid>div>strong{
    font-size:10.5px!important;
    letter-spacing:.01em;
}

.vls-camper-check{
    margin-top:11px;
}
.vls-camper-check-title{
    color:#f7f8fa;
    font-size:11px;
    font-weight:800;
    margin:0 0 6px;
}
.vls-camper-check-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}
.vls-camper-rule{
    border:1px solid var(--line);
    border-radius:9px;
    background:#101419;
    padding:9px;
    min-width:0;
}
.vls-camper-rule.warn{
    border-color:#66572f;
    background:#17150f;
}
.vls-camper-rule-head{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-bottom:6px;
}
.vls-camper-rule-head strong{
    color:#f7f8fa!important;
    font-size:10px;
    line-height:1.2;
}
.vls-camper-rule-head span{
    display:inline-block;
    width:max-content;
    max-width:100%;
    border:1px solid #4a5662;
    border-radius:999px;
    padding:2px 6px;
    color:#dce4eb;
    font-size:8.5px;
    line-height:1.2;
}
.vls-camper-rule.warn .vls-camper-rule-head span{
    border-color:#7a6530;
    color:#ecd994;
}
.vls-camper-rule p{
    margin:0 0 6px!important;
    color:var(--muted)!important;
    font-size:9.3px!important;
    line-height:1.35!important;
}
.vls-camper-rule>a{
    color:var(--accent)!important;
    font-size:8.8px!important;
    text-decoration:none!important;
    border-bottom:1px solid rgba(242,184,75,.4);
}
.vls-camper-legal-note{
    margin:6px 0 0!important;
    color:#89949f!important;
    font-size:8.8px!important;
    line-height:1.3!important;
}
@container (max-width:800px){
    .vls-camper-check-grid{grid-template-columns:1fr}
}


/* v0.2.0 – compact, non-intrusive search dropdown */
.vls-searchrow{
    position:relative!important;
    z-index:30;
}
.vls-results{
    position:absolute!important;
    left:0!important;
    right:92px!important;
    top:calc(100% + 5px)!important;
    z-index:2500!important;
    display:none;
    max-height:184px!important;
    overflow-y:auto!important;
    padding:4px!important;
    background:#0d1116!important;
    border:1px solid #303943!important;
    border-radius:9px!important;
    box-shadow:0 12px 30px rgba(0,0,0,.42)!important;
}
.vls-results .vls-result{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:block!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:7px 9px!important;
    box-sizing:border-box!important;
    text-align:left!important;
    background:#121820!important;
    color:#f2f5f7!important;
    border:0!important;
    border-bottom:1px solid #252e37!important;
    border-radius:5px!important;
    box-shadow:none!important;
    font-family:inherit!important;
    font-size:10px!important;
    font-weight:400!important;
    line-height:1.2!important;
    cursor:pointer!important;
}
.vls-results .vls-result:last-child{border-bottom:0!important}
.vls-results .vls-result:hover,
.vls-results .vls-result:focus{
    background:#1d2630!important;
    color:#fff!important;
    outline:1px solid rgba(242,184,75,.45)!important;
}
.vls-result-note{
    margin:0 0 3px!important;
    padding:6px 8px!important;
    background:#17140e!important;
    border:0!important;
    border-radius:5px!important;
    color:#e4cf8f!important;
    font-size:8.8px!important;
    line-height:1.25!important;
}
.vls-result-place{
    display:block!important;
    color:#f7f8fa!important;
    font-size:10.5px!important;
    font-weight:700!important;
    line-height:1.15!important;
}
.vls-result-context{
    display:block!important;
    margin-top:2px!important;
    color:#98a4af!important;
    font-size:8.8px!important;
    line-height:1.15!important;
}

/* Uniform destination presentation */
.vls-camper-check-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.vls-camper-rule.muted{
    border-style:dashed!important;
    background:#0f1318!important;
}
.vls-camper-rule.muted .vls-camper-rule-head span{
    color:#aeb7bf!important;
    border-color:#48515a!important;
}
.vls-region-empty{
    margin:0!important;
    color:#7f8a95!important;
    font-size:9.2px!important;
    line-height:1.35!important;
    font-style:italic;
}
@container (max-width:800px){
    .vls-camper-check-grid{grid-template-columns:1fr!important}
}


/* v0.2.1 – curated Walchensee local override */
.vls-region-head [data-region-title]{
    color:#f7f8fa!important;
}
.vls-region-head [data-region-title]::after{
    content:"";
}


/* v0.2.2 – onboarding, contextual help and mobile search stacking */
.vls-head-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.vls-help-btn{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    padding:0!important;
    border-radius:50%!important;
    border:1px solid #46515c!important;
    background:#171d23!important;
    color:#f7f8fa!important;
    font-size:16px!important;
    font-weight:800!important;
    line-height:32px!important;
    text-align:center!important;
    box-shadow:none!important;
}
.vls-help-btn:hover,
.vls-help-btn:focus{
    border-color:var(--accent)!important;
    color:var(--accent)!important;
}

html.vls-modal-open,
html.vls-modal-open body{
    overflow:hidden!important;
}
.vls-modal[hidden]{display:none!important}
.vls-modal{
    position:fixed!important;
    inset:0!important;
    z-index:999999!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:18px!important;
}
.vls-modal-backdrop{
    position:absolute!important;
    inset:0!important;
    background:rgba(3,6,9,.78)!important;
    backdrop-filter:blur(4px);
}
.vls-modal-dialog{
    position:relative!important;
    z-index:1!important;
    width:min(720px,calc(100vw - 28px))!important;
    max-height:min(86vh,820px)!important;
    overflow:auto!important;
    padding:24px!important;
    border:1px solid #35404a!important;
    border-radius:18px!important;
    background:#10151a!important;
    color:#f5f7f8!important;
    box-shadow:0 30px 90px rgba(0,0,0,.55)!important;
}
.vls-intro-dialog{width:min(660px,calc(100vw - 28px))!important}
.vls-modal-x{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    padding:0!important;
    border-radius:50%!important;
    background:#1a2128!important;
    border:1px solid #36414b!important;
    color:#dbe2e7!important;
    font-size:22px!important;
    line-height:30px!important;
}
.vls-modal-kicker{
    display:block;
    color:var(--accent)!important;
    font-size:10px!important;
    font-weight:800!important;
    letter-spacing:.13em!important;
    text-transform:uppercase!important;
    margin:0 44px 6px 0!important;
}
.vls-modal-title{
    color:#f7f8fa!important;
    font-size:23px!important;
    line-height:1.12!important;
    font-weight:850!important;
    margin:0 44px 8px 0!important;
}
.vls-modal-lead{
    color:#aeb8c1!important;
    font-size:13px!important;
    line-height:1.5!important;
    max-width:580px!important;
    margin:0 0 18px!important;
}
.vls-intro-steps{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.vls-intro-steps>div{
    display:flex;
    gap:10px;
    align-items:flex-start;
    padding:12px;
    border:1px solid #2e3841;
    border-radius:11px;
    background:#151b21;
}
.vls-intro-steps>div>b{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 25px;
    width:25px;
    height:25px;
    border-radius:50%;
    background:var(--accent);
    color:#17120a;
    font-size:11px;
}
.vls-intro-steps span{
    color:#aeb8c1;
    font-size:10.5px;
    line-height:1.35;
}
.vls-intro-steps strong{
    display:block;
    color:#f5f7f8;
    font-size:11px;
    margin-bottom:3px;
}
.vls-intro-benefit{
    margin-top:12px;
    padding:12px 14px;
    border-left:3px solid var(--accent);
    background:#171a18;
    border-radius:8px;
}
.vls-intro-benefit strong{
    display:block;
    color:#f5f7f8;
    font-size:11px;
    margin-bottom:3px;
}
.vls-intro-benefit span{
    color:#abb5bd;
    font-size:10.5px;
    line-height:1.4;
}
.vls-modal-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
    margin-top:16px;
}
.vls-modal-actions button{
    width:auto!important;
    min-width:120px!important;
    margin:0!important;
}
.vls-help-sections{
    display:grid;
    gap:7px;
    margin-top:16px;
}
.vls-help-sections details{
    margin:0!important;
    padding:0!important;
    border:1px solid #303a44!important;
    border-radius:9px!important;
    background:#151b21!important;
}
.vls-help-sections summary{
    padding:10px 12px!important;
    color:#f4f6f8!important;
    font-size:11px!important;
    font-weight:750!important;
    cursor:pointer!important;
}
.vls-help-sections details[open] summary{
    border-bottom:1px solid #303a44!important;
    color:var(--accent)!important;
}
.vls-help-sections p{
    padding:10px 12px!important;
    margin:0!important;
    color:#aeb8c1!important;
    font-size:10.5px!important;
    line-height:1.5!important;
}
.vls-help-sections p strong{color:#f5f7f8!important}
.vls-help-note{
    margin-top:11px;
    color:#89959f;
    font-size:9.5px;
    line-height:1.4;
}

/* Fix remembered mobile bug: search results must sit above all Leaflet panes. */
.vls-card:has(.vls-searchrow){
    overflow:visible!important;
}
.vls-searchrow{
    z-index:10020!important;
    isolation:isolate!important;
}
.vls-results{
    z-index:10030!important;
}
.vls-map{
    position:relative!important;
    z-index:1!important;
}
.vls-map .leaflet-pane,
.vls-map .leaflet-control{
    z-index:auto;
}
.vls-map .leaflet-map-pane{z-index:1!important}
.vls-map .leaflet-tile-pane{z-index:2!important}
.vls-map .leaflet-overlay-pane{z-index:3!important}
.vls-map .leaflet-marker-pane{z-index:4!important}
.vls-map .leaflet-tooltip-pane{z-index:5!important}
.vls-map .leaflet-popup-pane{z-index:6!important}

@container (max-width:600px){
    .vls-head-actions{
        justify-content:flex-start;
        margin-top:10px;
    }
    .vls-modal{padding:10px!important}
    .vls-modal-dialog{
        width:calc(100vw - 20px)!important;
        max-height:90vh!important;
        padding:18px!important;
        border-radius:14px!important;
    }
    .vls-modal-title{font-size:20px!important}
    .vls-intro-steps{grid-template-columns:1fr}
    .vls-modal-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .vls-modal-actions button{width:100%!important}
}


/* v0.2.3 – dynamic Labs panel catalogue */
.vls-shop-summary b{
    color:#f4f6f8!important;
}
.vls-shop-summary span{
    color:#9eabb6!important;
}
[data-cart-btn]:disabled{
    cursor:not-allowed!important;
    opacity:.55!important;
}


/* v0.2.4 – tangible daily-energy comparisons */
.vls-energy-examples{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:10px 0 5px;
}
.vls-energy-example{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:10px 9px;
    border:1px solid #303a44;
    border-radius:10px;
    background:#151b21;
}
.vls-energy-icon{
    flex:0 0 30px;
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#202830;
    font-size:15px;
}
.vls-energy-example div{
    min-width:0;
}
.vls-energy-example b{
    display:block;
    color:#f7f8fa!important;
    font-size:18px!important;
    line-height:1.05!important;
}
.vls-energy-example small{
    display:block;
    margin-top:2px;
    color:var(--accent)!important;
    font-size:9.5px!important;
    font-weight:800!important;
    line-height:1.15!important;
}
.vls-energy-example em{
    display:block;
    margin-top:3px;
    color:#89959f!important;
    font-size:8.4px!important;
    font-style:normal!important;
    line-height:1.2!important;
}
.vls-energy-note{
    margin:4px 0 12px!important;
    color:#77838d!important;
    font-size:8.7px!important;
    line-height:1.35!important;
}
.vls-season-question{
    margin-top:-2px!important;
    margin-bottom:10px!important;
    color:#b9c2c9!important;
}

@container (max-width:650px){
    .vls-energy-examples{
        grid-template-columns:1fr;
    }
    .vls-energy-example{
        padding:9px 10px;
    }
}


/* v0.2.5 – dry, slightly absurd Camper-Deutsch for energy examples */
.vls-energy-intro{
    margin:10px 0 7px;
    padding:9px 11px;
    border-left:3px solid var(--accent);
    border-radius:7px;
    background:#171a18;
}
.vls-energy-intro strong{
    display:block;
    color:#f5f7f8!important;
    font-size:10.5px!important;
    margin-bottom:2px;
}
.vls-energy-intro span{
    display:block;
    color:#9aa6af!important;
    font-size:9.2px!important;
    line-height:1.35!important;
}
.vls-energy-eyebrow{
    display:block;
    margin-bottom:3px;
    color:var(--accent)!important;
    font-size:8.5px!important;
    font-weight:850!important;
    letter-spacing:.05em!important;
    text-transform:uppercase!important;
}
.vls-energy-example b{
    white-space:nowrap;
}


/* v0.3.1 – compact mobile Camper-Check and cleaner region snippets */
.vls-camper-rule{
    padding:0!important;
    overflow:hidden!important;
}
.vls-camper-rule-summary{
    list-style:none!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:10px!important;
    cursor:pointer!important;
    user-select:none!important;
}
.vls-camper-rule-summary::-webkit-details-marker{display:none!important}
.vls-camper-rule-summary::marker{content:""!important}
.vls-camper-rule-head{
    margin:0!important;
    flex:1 1 auto!important;
    min-width:0!important;
}
.vls-camper-rule-toggle{
    display:none;
    flex:0 0 auto;
    color:var(--accent)!important;
    font-size:8.8px!important;
    font-weight:750!important;
    line-height:1.2!important;
    padding-top:1px;
    white-space:nowrap;
}
.vls-camper-less{display:none}
.vls-camper-rule[open] .vls-camper-more{display:none}
.vls-camper-rule[open] .vls-camper-less{display:inline}
.vls-camper-rule-body{
    padding:0 10px 10px!important;
    border-top:1px solid rgba(255,255,255,.045);
}
.vls-camper-rule-body p{
    margin:9px 0 7px!important;
}
.vls-camper-rule-body>a{
    color:var(--accent)!important;
    font-size:8.8px!important;
    text-decoration:none!important;
    border-bottom:1px solid rgba(242,184,75,.4);
}
.vls-camper-rule-summary:focus-visible{
    outline:1px solid rgba(242,184,75,.65)!important;
    outline-offset:-1px!important;
}
.vls-region-grid li{
    max-width:68ch;
}

@container (max-width:800px){
    .vls-camper-rule-toggle{display:block!important}
    .vls-camper-rule-summary{padding:11px!important}
    .vls-camper-rule-body{padding:0 11px 11px!important}
    .vls-camper-check-grid{gap:7px!important}
}


/* v0.3.3 – production hardening */
.vls-map{
    position:relative!important;
    background:#0f1318!important;
}
.vls-map-consent{
    position:absolute;
    inset:0;
    z-index:20;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:22px;
    text-align:center;
    background:linear-gradient(180deg,#141a20,#0d1116);
}
.vls-map-consent strong{
    color:#f5f7f8!important;
    font-size:14px!important;
}
.vls-map-consent span{
    max-width:350px;
    color:#98a4ae!important;
    font-size:10.5px!important;
    line-height:1.45!important;
}
.vls-map-consent button{
    width:auto!important;
    min-width:132px!important;
    margin-top:3px!important;
    padding:9px 14px!important;
}
.vls-camper-verified{
    display:block;
    margin-top:7px;
    color:#7f8a94!important;
    font-size:8.5px!important;
    line-height:1.3!important;
}
.vls-noscript{
    margin-bottom:12px;
}


/* v0.3.4 – restore immediate map UX; failure stays non-blocking */
.vls-map-error{
    position:absolute;
    inset:0;
    z-index:30;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:20px;
    text-align:center;
    background:linear-gradient(180deg,rgba(20,26,32,.97),rgba(13,17,22,.98));
}
.vls-map-error strong{
    color:#f5f7f8!important;
    font-size:13px!important;
}
.vls-map-error span{
    max-width:340px;
    color:#98a4ae!important;
    font-size:10px!important;
    line-height:1.4!important;
}
.vls-map-error button{
    width:auto!important;
    min-width:130px!important;
    margin-top:2px!important;
    padding:8px 13px!important;
}


/* v0.3.5 – accessibility and release-candidate polish */
.vls-help-btn:focus-visible,
.vls-result:focus-visible,
.vls-month:focus-visible,
.vls-barcol:focus-visible,
.vls-modal button:focus-visible,
.vls-solar input:focus-visible,
.vls-solar select:focus-visible{
    outline:2px solid var(--accent)!important;
    outline-offset:2px!important;
}
.vls-month,
.vls-barcol{
    cursor:pointer;
}
@container (max-width:800px){
    .vls-month{
        min-height:44px;
    }
}


/* v0.3.6 – reduced motion */
@media (prefers-reduced-motion: reduce){
    .vls-spinner{animation:none!important}
    .vls-solar *,
    .vls-solar *::before,
    .vls-solar *::after{
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
    }
}


/* v0.3.7 – fixed informational POI markers */
.vls-poi-divicon{background:transparent!important;border:0!important}
.vls-poi-pin{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:13px;
    background:#f5f1e8;
    border:2px solid #f2b84b;
    box-shadow:0 7px 20px rgba(0,0,0,.34);
    transition:transform .16s ease,box-shadow .16s ease;
}
.vls-poi-pin::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-8px;
    width:12px;
    height:12px;
    background:#f5f1e8;
    border-right:2px solid #f2b84b;
    border-bottom:2px solid #f2b84b;
    transform:translateX(-50%) rotate(45deg);
    border-radius:0 0 3px 0;
}
.vls-poi-pin img{
    position:relative;
    z-index:2;
    width:29px!important;
    height:29px!important;
    object-fit:contain!important;
    display:block!important;
}
.vls-poi-fallback{
    position:relative;
    z-index:2;
    color:#11161b;
    font-size:17px;
    font-weight:900;
}
.vls-poi-divicon:hover .vls-poi-pin,
.vls-poi-divicon:focus .vls-poi-pin{
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(0,0,0,.42);
}
.vls-poi-tooltip{
    border:1px solid #39434d!important;
    border-radius:9px!important;
    background:#11171c!important;
    color:#f5f7f8!important;
    box-shadow:0 8px 24px rgba(0,0,0,.34)!important;
    padding:8px 10px!important;
}
.vls-poi-tooltip::before{border-top-color:#11171c!important}
.vls-poi-tooltip strong,.vls-poi-tooltip span{display:block}
.vls-poi-tooltip strong{color:#f6f7f8!important;font-size:11px!important;line-height:1.2!important}
.vls-poi-tooltip span{margin-top:2px;color:#a7b1b9!important;font-size:9px!important}
.vls-poi-popup{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:9px;
    min-width:205px;
}
.vls-poi-popup-logo{width:38px!important;height:38px!important;object-fit:contain!important}
.vls-poi-popup-copy strong,.vls-poi-popup-copy span{display:block}
.vls-poi-popup-copy strong{color:#12171b!important;font-size:13px!important;line-height:1.15!important}
.vls-poi-popup-copy span{margin-top:2px;color:#56616b!important;font-size:10px!important;line-height:1.25!important}
.vls-poi-route{
    grid-column:1 / -1;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:38px;
    margin-top:2px!important;
    border-radius:8px!important;
    background:#f2b84b!important;
    color:#14100a!important;
    font-size:10.5px!important;
    font-weight:850!important;
    text-decoration:none!important;
}
.vls-poi-route:hover,.vls-poi-route:focus-visible{
    filter:brightness(1.04);
    outline:2px solid #111!important;
    outline-offset:2px!important;
}
.vls-poi-leaflet-popup .leaflet-popup-content{margin:12px!important}
@media (prefers-reduced-motion: reduce){.vls-poi-pin{transition:none!important}}


/* v0.3.8 – Leaflet geometry/viewport stabilization */
.vls-map .leaflet-map-pane{z-index:auto!important}
.vls-map .leaflet-tile-pane{z-index:200!important}
.vls-map .leaflet-overlay-pane{z-index:400!important}
.vls-map .leaflet-shadow-pane{z-index:500!important}
.vls-map .leaflet-marker-pane{z-index:600!important}
.vls-map .leaflet-tooltip-pane{z-index:650!important}
.vls-map .leaflet-popup-pane{z-index:700!important}
.vls-map .leaflet-top,
.vls-map .leaflet-bottom{z-index:1000!important}
.vls-map .leaflet-marker-icon,
.vls-map .leaflet-marker-shadow{
    max-width:none!important;
    max-height:none!important;
}


/* v0.3.10 – POI readability + unified highlight visibility */
.vls-solar-divicon{
    background:transparent!important;
    border:0!important;
}
.vls-solar-pin-svg{
    display:block!important;
    width:40px!important;
    height:52px!important;
    filter:drop-shadow(0 5px 8px rgba(0,0,0,.30));
}

/* Vandalierer brand POI: readable at local zoom, hidden at wide zoom */
.vls-poi-pin{
    width:50px!important;
    height:50px!important;
    border-radius:15px!important;
    background:#11171c!important;
    border:2px solid #f2b84b!important;
}
.vls-poi-pin::after{
    background:#11171c!important;
    border-right-color:#f2b84b!important;
    border-bottom-color:#f2b84b!important;
}
.vls-poi-pin img{
    width:34px!important;
    height:34px!important;
    filter:brightness(0) invert(1) saturate(0) contrast(180%) drop-shadow(0 0 1px rgba(255,255,255,.55))!important;
    opacity:1!important;
}
.vls-poi-tooltip{
    padding:10px 12px!important;
}
.vls-poi-tooltip strong{
    font-size:13px!important;
    letter-spacing:.01em!important;
}
.vls-poi-tooltip span{
    margin-top:3px!important;
    font-size:10.5px!important;
}
.vls-poi-popup{
    min-width:230px!important;
    gap:11px!important;
}
.vls-poi-popup-logo{
    width:44px!important;
    height:44px!important;
    filter:brightness(0) invert(1) saturate(0) contrast(180%) drop-shadow(0 0 1px rgba(255,255,255,.55))!important;
    opacity:1!important;
}
.vls-poi-popup-copy strong{
    color:#f5f7f9!important;
    font-size:15px!important;
    line-height:1.2!important;
}
.vls-poi-popup-subtitle{
    margin-top:3px!important;
    color:#d9e1e8!important;
    font-size:11px!important;
    font-weight:700!important;
}
.vls-poi-popup-copy p{
    margin:8px 0 0!important;
    color:#c4cdd5!important;
    font-size:11px!important;
    line-height:1.45!important;
}
.vls-poi-popup-copy em{
    display:block;
    margin-top:7px;
    padding:6px 8px;
    border-radius:6px;
    border:1px solid #5a4720;
    background:#2b2417;
    color:#f0d18a!important;
    font-size:9.5px!important;
    font-style:normal!important;
    line-height:1.35!important;
}
.vls-poi-route{
    min-height:42px!important;
    font-size:12px!important;
}
.vls-solar .leaflet-container a.leaflet-popup-close-button{
    color:#dbe3ea!important;
}
.vls-solar .leaflet-container a.leaflet-popup-close-button:hover{
    color:#ffffff!important;
}

/* Spectacular travel highlights */
.vls-highlight-divicon{
    background:transparent!important;
    border:0!important;
}
.vls-highlight-pin{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:50% 50% 50% 4px;
    transform:rotate(-45deg);
    transform-origin:50% 70%;
    background:#f2b84b;
    border:2px solid #161b20;
    box-shadow:0 4px 12px rgba(0,0,0,.30);
}
.vls-highlight-pin span{
    transform:rotate(45deg);
    color:#17120a;
    font-size:14px;
    font-weight:900;
    line-height:1;
}
.vls-highlight-divicon:hover .vls-highlight-pin,
.vls-highlight-divicon:focus .vls-highlight-pin{
    box-shadow:0 7px 18px rgba(0,0,0,.42);
}
.vls-map-zoom-far .vls-highlight-pin{
    transform:rotate(-45deg) scale(.72);
}
.vls-map-zoom-near .vls-highlight-pin{
    transform:rotate(-45deg) scale(1);
}
.vls-highlight-tooltip{
    border-color:#8b6c2a!important;
}
.vls-highlight-popup{
    display:block!important;
    min-width:250px!important;
}
.vls-highlight-popup .vls-poi-popup-copy strong{
    font-size:15px!important;
}
.vls-highlight-popup .vls-poi-popup-copy p{
    font-size:11.5px!important;
}
.vls-highlight-popup .vls-poi-route{
    margin-top:11px!important;
}
@media (prefers-reduced-motion: reduce){
    .vls-highlight-pin{transition:none!important}
}


/* v0.3.11 – compact mobile POI popups */
@media (max-width:640px){
    .vls-solar .vls-poi-leaflet-popup .leaflet-popup-content-wrapper{
        max-width:250px!important;
        border-radius:12px!important;
    }
    .vls-solar .vls-poi-leaflet-popup .leaflet-popup-content{
        width:auto!important;
        max-width:226px!important;
        margin:8px!important;
    }
    .vls-poi-popup,
    .vls-highlight-popup{
        min-width:0!important;
        width:210px!important;
        gap:7px!important;
        grid-template-columns:32px minmax(0,1fr)!important;
    }
    .vls-highlight-popup{
        display:block!important;
        width:220px!important;
    }
    .vls-poi-popup-logo{
        width:30px!important;
        height:30px!important;
    }
    .vls-poi-popup-copy strong,
    .vls-highlight-popup .vls-poi-popup-copy strong{
        font-size:12.5px!important;
        line-height:1.18!important;
    }
    .vls-poi-popup-subtitle{
        margin-top:2px!important;
        font-size:11.5px!important;
        line-height:1.25!important;
    }
    .vls-poi-popup-copy p,
    .vls-highlight-popup .vls-poi-popup-copy p{
        display:-webkit-box!important;
        -webkit-box-orient:vertical!important;
        -webkit-line-clamp:3!important;
        overflow:hidden!important;
        margin:5px 0 0!important;
        font-size:11.5px!important;
        line-height:1.38!important;
    }
    .vls-poi-popup-copy em{
        display:block!important;
        overflow:visible!important;
        margin-top:6px!important;
        padding:6px 7px!important;
        font-size:11px!important;
        line-height:1.3!important;
    }
    .vls-poi-route,
    .vls-highlight-popup .vls-poi-route{
        min-height:44px!important;
        margin-top:7px!important;
        font-size:10.5px!important;
    }
    .vls-solar .leaflet-container a.leaflet-popup-close-button{
        width:44px!important;
        height:44px!important;
        font-size:24px!important;
        line-height:40px!important;
    }
}


/* v0.3.12 – launch hardening: mobile popup accessibility */


/* v0.3.16 – location button / mobile location UX */
.vls-searchrow{
    grid-template-columns:minmax(0,1fr) 88px 46px!important;
}
.vls-searchrow .vls-location-btn{
    width:46px!important;
    min-width:46px!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    background:#151a20!important;
    color:#f2b84b!important;
    border:1px solid #48515a!important;
}
.vls-searchrow .vls-location-btn:hover,
.vls-searchrow .vls-location-btn:focus-visible{
    border-color:#f2b84b!important;
    background:#1c2228!important;
}
.vls-searchrow .vls-location-btn:disabled{
    opacity:.62!important;
    cursor:wait!important;
}
.vls-location-icon{
    font-size:22px;
    line-height:1;
    font-weight:900;
}
.vls-location-label{
    display:none;
}
.vls-location-feedback{
    margin:7px 2px 0;
    color:#9ee0ba;
    font-size:10.5px;
    line-height:1.4;
}
.vls-location-feedback.warn{
    color:#e9cd93;
}
.vls-results{
    right:142px!important;
}

@media (max-width:620px){
    .vls-searchrow{
        grid-template-columns:1fr 1fr!important;
        gap:8px!important;
    }
    .vls-searchrow > [data-place-search]{
        grid-column:1 / -1;
    }
    .vls-searchrow > [data-search-btn],
    .vls-searchrow > .vls-location-btn{
        width:100%!important;
        min-width:0!important;
        min-height:44px!important;
    }
    .vls-searchrow > .vls-location-btn{
        padding:10px 12px!important;
    }
    .vls-location-label{
        display:inline!important;
        font-size:12px;
        font-weight:800;
    }
    .vls-location-icon{
        font-size:19px;
    }
    .vls-results{
        left:0!important;
        right:0!important;
        top:102px!important;
    }
}
