/* === base === */
:root{--bg:#f4f6f3;--panel:#fff;--ink:#17201b;--muted:#5b635e;--line:#dfe5df;--accent:#1f7a52;--accent2:#dff3e8;--dark:#10211a;--shadow:0 14px 40px rgba(25,45,34,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
header{height:72px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:1000;backdrop-filter:blur(12px)}
.brand{display:flex;gap:11px;align-items:center;font-weight:800;letter-spacing:-.02em}.logo{width:36px;height:36px;border-radius:11px;background:var(--dark);color:#fff;display:grid;place-items:center;font-size:19px}.brand span{font-size:18px}.top-actions{display:flex;gap:10px}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:700;cursor:pointer;font-size:13px}.btn-primary{background:var(--accent);color:#fff}.btn-dark{background:var(--dark);color:#fff}.btn-soft{background:var(--accent2);color:var(--accent)}.btn-ghost{background:#f6f7f6;color:var(--ink);border:1px solid var(--line)}
main{max-width:1480px;margin:0 auto;padding:22px;display:grid;grid-template-columns:390px minmax(0,1fr);grid-template-areas:"sidebar right";column-gap:18px;align-items:start;min-height:calc(100vh - 72px)}
.sidebar{grid-area:sidebar;display:flex;flex-direction:column;gap:14px;min-width:0}.right-column{grid-area:right;display:flex;flex-direction:column;gap:8px;min-width:0}.map-wrap{min-width:0}.below-map-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;min-width:0}.below-map-panels > .panel{min-width:0}.below-map-panels > .panel{min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.panel-pad{padding:18px}.hero{background:linear-gradient(135deg,#10211a 0%,#1f7a52 100%);color:#fff;border:0}.hero h1{font-size:28px;line-height:1.05;margin:0 0 8px;letter-spacing:-.04em}.hero p{margin:0;color:rgba(255,255,255,.78);font-size:13px;line-height:1.5}
.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800;margin-bottom:10px}.search-row{display:flex;gap:8px}.autocomplete-wrap{position:relative}.autocomplete-list{position:absolute;left:0;right:82px;top:48px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(25,45,34,.14);overflow:hidden;z-index:1200;display:none}.autocomplete-list.show{display:block}.autocomplete-item{display:flex;align-items:center;gap:9px;padding:10px 12px;cursor:pointer;border-bottom:1px solid #eef1ee}.autocomplete-item:last-child{border-bottom:0}.autocomplete-item:hover,.autocomplete-item.active{background:#f3f8f4}.autocomplete-item b{font-size:12px;display:block}.autocomplete-item small{font-size:10px;color:var(--muted);display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{border:1px solid var(--line);background:#f7faf8;color:var(--ink);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;cursor:pointer}.chip:hover{background:var(--accent2);color:var(--accent)}.ai-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.sug button{margin-top:7px}.source-note{font-size:10px;color:var(--muted);margin-top:8px;line-height:1.4}.input{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:11px;font:inherit;outline:none}.input:focus{border-color:#8fc0a7;box-shadow:0 0 0 3px rgba(31,122,82,.08)}
.route-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.stop{border:1px solid var(--line);cursor:grab;border-radius:12px;padding:10px 11px;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;background:#fbfcfb}.stop:active{cursor:grabbing}.stop.drag-over{border-color:#7fbb9b;background:#f1f9f4}.stop-num{width:24px;height:24px;border-radius:50%;background:var(--dark);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.stop-main{min-width:0}.stop-name{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove{background:transparent;border:0;color:#9b4b4b;cursor:pointer;font-size:15px;padding:4px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric{background:#f7faf8;border-radius:13px;padding:12px}.metric strong{display:block;font-size:21px;letter-spacing:-.03em}.metric span{font-size:11px;color:var(--muted)}
.country-list{display:flex;flex-wrap:wrap;gap:7px}.country{background:#f0f5f1;border:1px solid #dce8de;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:700;color:#28573f}.empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px;text-align:center}
.ai-card{background:linear-gradient(180deg,#fff,#f5fbf7)}.ai-output{font-size:12px;line-height:1.55;color:#354038}.ai-country{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.ai-country select{max-width:180px}.suggestions{display:grid;gap:8px}.sug{padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.sug b{display:block;font-size:12px}.sug small{display:block;color:var(--muted);margin-top:2px;line-height:1.35}
#map{height:calc(100vh - 116px);min-height:650px;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}.map-wrap{position:relative}.map-overlay{position:absolute;left:15px;right:15px;bottom:15px;z-index:500;display:flex;justify-content:center;pointer-events:none}.map-status{background:rgba(16,33,26,.93);color:#fff;padding:10px 14px;border-radius:12px;font-size:12px;box-shadow:0 10px 28px rgba(0,0,0,.15);pointer-events:auto}.map-status b{font-size:13px}
.modal{position:fixed;inset:0;background:rgba(15,28,21,.42);display:none;align-items:center;justify-content:center;z-index:2000;padding:16px}.modal.show{display:flex}.modal-card{width:min(720px,100%);background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 22px 80px rgba(0,0,0,.22);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal h2{margin:0;font-size:20px}.field{margin-top:14px}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.help{font-size:11px;color:var(--muted);line-height:1.45;margin-top:5px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.ai-results-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ai-results-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.count-badge,.rating-pill,.meta-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#f1f7f3;color:#2f6449}.rating-pill{background:#fff7e5;color:#8a6419}.place-card{padding:12px}.place-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.place-title{font-size:13px;font-weight:900}.place-sub{font-size:10px;color:var(--muted);margin-top:2px}.place-description{display:block;margin-top:5px;line-height:1.45}.sug small{display:block;color:var(--muted);margin-top:3px;line-height:1.4}.sug .ai-actions{margin-top:9px}.source-note{background:#f7faf8;border-radius:10px;padding:8px 9px}.chip{transition:.15s ease}
.toast{position:fixed;right:18px;bottom:18px;background:var(--dark);color:#fff;padding:12px 15px;border-radius:12px;font-size:12px;display:none;z-index:3000;box-shadow:0 14px 30px rgba(0,0,0,.2)}
@media(max-width:1000px){main{grid-template-columns:1fr;grid-template-areas:"right" "sidebar"}.right-column{order:1}.sidebar{order:2}.below-map-panels{grid-template-columns:1fr}#map{height:58vh;min-height:440px}header{padding:0 16px}}

/* Saved routes */
.route-page{position:fixed;inset:0;background:var(--bg);z-index:1800;display:none;overflow:auto}.route-page.show{display:block}.route-page-inner{max-width:1100px;margin:0 auto;padding:28px 22px 50px}.route-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.route-page-title{font-size:30px;letter-spacing:-.04em;margin:0}.route-page-sub{color:var(--muted);font-size:13px;margin:5px 0 0}.saved-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.saved-route{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.saved-route-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.saved-route-name{font-size:17px;font-weight:900}.saved-route-date{font-size:11px;color:var(--muted);margin-top:4px}.saved-route-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.saved-route-stops{font-size:12px;color:#354038;line-height:1.5;margin-top:12px}.saved-route-actions{display:flex;gap:8px;margin-top:15px;flex-wrap:wrap}.empty-routes{padding:38px 20px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted);background:#fff;grid-column:1/-1}.danger{color:#8b3d3d;background:#fff5f5;border-color:#efdada}@media(max-width:760px){.saved-routes{grid-template-columns:1fr}.route-page-head{align-items:flex-start;flex-direction:column}}
#site-logo{width:44px;height:44px;flex:0 0 44px}
@media (max-width:640px){#site-logo{width:38px;height:38px;flex-basis:38px}}
.seo-content{background:var(--panel);border-top:1px solid var(--line);padding:48px 22px}.seo-inner{max-width:1100px;margin:0 auto}.seo-content h2{font-size:24px;letter-spacing:-.02em;margin:0 0 16px}.seo-content h2+h2,.seo-content ul+h2,.seo-content .seo-grid+h2{margin-top:40px}.seo-content h3{font-size:16px;margin:0 0 6px}.seo-content p{color:var(--muted);line-height:1.6;margin:0 0 10px}.seo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:8px}.seo-grid article{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px}.seo-links{columns:2;gap:24px;padding-left:18px;line-height:1.8}.seo-links a,.site-footer a{color:var(--accent);font-weight:600;text-decoration:none}.seo-links a:hover,.site-footer a:hover{text-decoration:underline}.seo-content details{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:8px;background:var(--bg)}.seo-content summary{font-weight:700;cursor:pointer}.seo-content details p{margin:8px 0 0}.site-footer{padding:24px 22px 40px;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}.site-footer nav{margin-bottom:8px}
body.dark-mode .seo-content,body.dark-mode .site-footer{background:#0d1511}body.dark-mode .seo-grid article,body.dark-mode .seo-content details{background:#101713}
@media(max-width:700px){.seo-links{columns:1}}

/* === camperroute-many-results === */
.ai-results, .results-list, .suggestions, .suggestion-list, .places-results, .ai-suggestions { display:grid; gap:10px; padding:6px 2px 12px; }
.ai-results > *, .results-list > *, .suggestions > *, .suggestion-list > *, .places-results > *, .ai-suggestions > * { min-width:0; }
.ai-more-wrap{display:flex;justify-content:center;margin-top:4px}.ai-more-wrap .btn{min-width:150px}
.camping-output .suggestions, #campingOutput .suggestions { display:block; overflow:visible; }
#campingOutput .sug { margin-bottom:10px; }

/* === base === */
.place-rating-row{margin-top:4px}.place-rating{font-size:11px;font-weight:800;color:#8a6500}.place-sub{white-space:normal;line-height:1.35}

/* === voice-listening-style === */
#voiceBtn.is-listening{outline:2px solid rgba(255,90,70,.45);box-shadow:0 0 0 4px rgba(255,90,70,.10)}#voiceTranscript{min-height:110px}

/* === route-budget-css === */
.route-budget-box{margin-top:14px;padding-top:14px;border-top:1px solid var(--border,#e5e7eb)}
.route-budget-title{font-weight:900;margin-bottom:9px}
.route-budget-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.route-budget-controls label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:800}
.route-budget-controls select{padding:9px;border:1px solid #d7dbe0;border-radius:9px;background:#fff;font:inherit}
.route-budget-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}
.route-budget-summary>div{padding:9px;border:1px solid #d7dbe0;border-radius:9px;background:#fff}
.route-budget-summary strong{display:block;font-size:15px}.route-budget-summary span{font-size:9px;color:var(--muted)}
.budget-country-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #eef0f2;font-size:10px}
.budget-country-row strong{font-size:11px}.budget-country-row small{display:block;color:var(--muted)}
.budget-source{font-size:9px;color:var(--muted);margin-top:8px;line-height:1.35}
@media(max-width:700px){.route-budget-controls{grid-template-columns:1fr}.route-budget-summary{grid-template-columns:1fr 1fr}.route-budget-summary>div:last-child{grid-column:1/-1}}

/* === final-user-layout === */
.below-map-panels{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  column-gap:18px !important;
  row-gap:0 !important;
  align-items:start !important;
}
.below-map-panels > .panel{
  grid-column:1 !important;
  grid-row:1 !important;
  min-width:0 !important;
}
.below-map-panels > .right-panel-stack{
  grid-column:2 !important;
  grid-row:1 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:18px !important;
  min-width:0 !important;
  align-self:start !important;
}
.right-panel-stack > .panel{
  min-width:0 !important;
  margin:0 !important;
}
@media(max-width:1000px){
  .below-map-panels{grid-template-columns:1fr !important;row-gap:18px !important}
  .below-map-panels > .panel,
  .below-map-panels > .right-panel-stack{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .right-panel-stack{gap:18px !important}
}

/* === camperroute-theme === */
/* Dark mode — the same controls and functionality, only the visual theme changes. */
body.dark-mode{
  --bg:#0d1411;
  --panel:#151d19;
  --ink:#edf5ef;
  --muted:#a9b5ad;
  --line:#2c3932;
  --accent:#55c98a;
  --accent2:#173a2a;
  --dark:#07120d;
  --shadow:0 14px 40px rgba(0,0,0,.28);
}
body.dark-mode header{
  background:rgba(13,20,17,.94);
}
body.dark-mode .panel,
body.dark-mode .saved-route,
body.dark-mode .modal-card{
  background:var(--panel);
  color:var(--ink);
}
body.dark-mode .ai-card{
  background:linear-gradient(180deg,#151d19,#10251a);
}
body.dark-mode .input,
body.dark-mode select,
body.dark-mode textarea{
  background:#101713;
  color:var(--ink);
  border-color:var(--line);
}
body.dark-mode .btn-ghost{
  background:#18211c;
  color:var(--ink);
  border-color:var(--line);
}
body.dark-mode .btn-soft{
  background:#173a2a;
  color:#75d9a0;
}
body.dark-mode .chip{
  background:#18211c;
  color:var(--ink);
  border-color:var(--line);
}
body.dark-mode .chip:hover{
  background:#173a2a;
  color:#75d9a0;
}
body.dark-mode .stop{
  background:#101713;
  border-color:var(--line);
}

body.dark-mode .route-budget-summary > div,
body.dark-mode .metric{
  background:#101a15 !important;
  border:1px solid #2b3b31;
  color:#edf5ef;
}
body.dark-mode .route-budget-summary > div strong,
body.dark-mode .metric strong{
  color:#f4fbf6;
}
body.dark-mode .route-budget-summary > div span,
body.dark-mode .metric span{
  color:#aebbb2;
}
body.dark-mode .budget-country-row{
  border-color:#2c3932;
}
body.dark-mode .metric{
  background:#101713;
}
body.dark-mode .sug{
  background:#101713;
  border-color:var(--line);
}
body.dark-mode .source-note{
  background:#101713;
}
body.dark-mode .country{
  background:#163024;
  border-color:#294e3b;
  color:#a9e7c2;
}
body.dark-mode .empty{
  color:var(--muted);
  border-color:var(--line);
}
body.dark-mode .autocomplete-list{
  background:#151d19;
  border-color:var(--line);
}
body.dark-mode .autocomplete-item{
  border-color:var(--line);
}
body.dark-mode .autocomplete-item:hover,
body.dark-mode .autocomplete-item.active{
  background:#1b2921;
}
body.dark-mode .route-page{
  background:var(--bg);
}
body.dark-mode .modal{
  background:rgba(0,0,0,.62);
}
body.dark-mode .help,
body.dark-mode .ai-output{
  color:var(--muted);
}
body.dark-mode .toast{
  background:#07120d;
}
body.dark-mode .map-overlay .map-status{
  background:rgba(7,18,13,.88);
  color:#edf5ef;
}
.theme-toggle-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 0;
}
.switch{
  position:relative;
  display:inline-flex;
  width:52px;
  height:30px;
  flex:0 0 auto;
  cursor:pointer;
}
.switch input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
}
.switch-slider{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#d5ddd7;
  border:1px solid #c2ccc5;
  transition:.18s ease;
}
.switch-slider:before{
  content:"";
  position:absolute;
  width:22px;
  height:22px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.18);
  transition:.18s ease;
}
.switch input:checked + .switch-slider{
  background:var(--accent);
  border-color:var(--accent);
}
.switch input:checked + .switch-slider:before{
  transform:translateX(22px);
}

body.dark-mode .country{
  background:#173025 !important;
  border-color:#31513f !important;
  color:#d7f4e2 !important;
}

/* === theme-toggle-fix === */
.top-actions{display:flex;align-items:center;gap:10px}
.header-theme-toggle{
  display:inline-flex;
  align-items:center;
  gap:5px;
  height:36px;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel);
  color:var(--muted);
  cursor:pointer;
  user-select:none;
  box-shadow:0 2px 8px rgba(25,45,34,.06);
}
.header-theme-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.header-theme-slider{
  position:relative;
  width:38px;
  height:22px;
  border-radius:999px;
  background:#d7ddd9;
  border:1px solid #c3cbc5;
  transition:.18s ease;
}
.header-theme-slider::before{
  content:"";
  position:absolute;
  width:16px;
  height:16px;
  left:2px;
  top:2px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
  transition:.18s ease;
}
.header-theme-toggle input:checked + .header-theme-slider{
  background:var(--accent);
  border-color:var(--accent);
}
.header-theme-toggle input:checked + .header-theme-slider::before{
  transform:translateX(16px);
}
body.dark-mode{
  --bg:#0d1411;
  --panel:#151d19;
  --ink:#edf5ef;
  --muted:#a9b5ad;
  --line:#2c3932;
  --accent:#55c98a;
  --accent2:#173a2a;
  --dark:#07120d;
  --shadow:0 14px 40px rgba(0,0,0,.28);
}
body.dark-mode header{background:rgba(13,20,17,.94)}
body.dark-mode .panel,
body.dark-mode .modal-card{background:var(--panel);color:var(--ink)}
body.dark-mode .input,
body.dark-mode select,
body.dark-mode textarea{background:#101713;color:var(--ink);border-color:var(--line)}
body.dark-mode .btn-ghost{background:#18211c;color:var(--ink);border-color:var(--line)}
body.dark-mode .btn-soft{background:#173a2a;color:#75d9a0}
body.dark-mode .chip{background:#18211c;color:var(--ink);border-color:var(--line)}
body.dark-mode .metric,
body.dark-mode .route-budget-summary>div{background:#101713;border-color:var(--line);color:var(--ink)}
body.dark-mode .country{background:#173025!important;border-color:#31513f!important;color:#d7f4e2!important}
body.dark-mode .autocomplete-list,
body.dark-mode .autocomplete-item{background:#151d19;color:var(--ink);border-color:var(--line)}

/* === weather-widget-css === */
#weatherBtn{white-space:nowrap}
#weatherModal.show{align-items:flex-start;padding-top:max(56px,env(safe-area-inset-top));box-sizing:border-box}
.wx-card{box-sizing:border-box;width:min(760px,100%);max-width:760px;max-height:calc(100vh - 80px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.wx-card>*,.wx-output>*,.wx-picker>*{min-width:0}
.wx-muted{color:var(--muted);font-size:12px}
#weatherTitle{font-size:22px;letter-spacing:-.02em}
.wx-picker{display:grid;gap:8px;margin:14px 0 12px}
.wx-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.wx-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:7px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.wx-chip:hover{border-color:var(--accent)}
.wx-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}
.wx-num{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent2);color:var(--accent);font-size:11px}
.wx-chip.active .wx-num{background:rgba(255,255,255,.25);color:#fff}
.wx-search{display:flex;gap:6px}
.wx-search .input{flex:1;min-width:0}
.wx-output{display:grid;gap:10px}
.wx-now{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:center;padding:18px;border-radius:16px;background:linear-gradient(135deg,var(--dark),#1f7a52);color:#fff}
.wx-now-icon{font-size:56px;line-height:1}
.wx-now-temp{font-size:48px;font-weight:800;letter-spacing:-.04em;line-height:1}
.wx-now-text{font-size:15px;opacity:.9;margin-top:4px}
.wx-now-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.wx-now-facts div{background:rgba(255,255,255,.1);border-radius:10px;padding:8px 10px;display:grid;gap:2px}
.wx-now-facts span{font-size:11px;opacity:.75}
.wx-now-facts b{font-size:14px;white-space:nowrap}
.wx-arrow{display:inline-block;font-weight:800;line-height:1}
.wx-section{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.wx-hours{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity;scrollbar-width:thin}
.wx-h{flex:0 0 58px;scroll-snap-align:start;display:grid;justify-items:center;gap:3px;padding:8px 4px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-size:12px}
.wx-h.now{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.wx-h-t{color:var(--muted);font-weight:700}
.wx-h-i{font-size:22px;line-height:1.1}
.wx-h-temp{font-weight:800;font-size:14px}
.wx-h-rain{font-size:10px;color:var(--muted)}
.wx-h-rain.wet,.wx-day-rain.wet{color:#2f7fc1;font-weight:700}
.wx-h-wind{font-size:10px;color:var(--muted);display:flex;gap:2px;align-items:center}
.wx-days{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}
.wx-day{border-top:1px solid var(--line);cursor:pointer;outline:none}
.wx-day:first-child{border-top:0}
.wx-day:hover,.wx-day:focus-visible{background:var(--accent2)}
.wx-day-row{display:grid;grid-template-columns:minmax(92px,1.3fr) 34px 52px 34px minmax(60px,2fr) 34px;gap:8px;align-items:center;padding:10px 12px}
.wx-day-name{font-weight:700;font-size:14px}
.wx-day-icon{font-size:22px;text-align:center}
.wx-day-rain{font-size:11px;color:var(--muted);text-align:right}
.wx-day-min{color:var(--muted);text-align:right;font-weight:700}
.wx-day-max{font-weight:800}
.wx-bar{position:relative;height:6px;border-radius:99px;background:var(--line)}
.wx-bar span{position:absolute;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#4aa3df,#f2b233,#e4572e)}
.wx-day-detail{display:none;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;padding:0 12px 12px}
.wx-day.open .wx-day-detail{display:grid}
.wx-dh{display:grid;grid-template-columns:28px 24px 34px 1fr;gap:6px;align-items:center;font-size:12px}
.wx-skeleton{display:grid;gap:10px}
.wx-skeleton div{height:64px;border-radius:14px;background:linear-gradient(90deg,var(--line),var(--bg),var(--line));background-size:200% 100%;animation:wx-shimmer 1.2s linear infinite}
.wx-skeleton div:first-child{height:150px}
@keyframes wx-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.wx-skeleton div{animation:none}}
@media (max-width:560px){
  #weatherModal.show{padding:max(12px,env(safe-area-inset-top)) 10px 10px}
  .wx-card{padding:16px;max-height:calc(100vh - 24px)}
  .wx-now{padding:14px}
  .wx-now-facts{grid-template-columns:repeat(2,1fr)}
  .wx-now-temp{font-size:40px}.wx-now-icon{font-size:46px}
  .wx-day-row{grid-template-columns:minmax(70px,1fr) 28px 44px 30px minmax(40px,1.4fr) 30px;gap:6px;padding:10px}
  .wx-day-name{font-size:13px}
  .wx-search .btn{padding-inline:10px}
}
body.dark-mode .wx-chip,body.dark-mode .wx-h,body.dark-mode .wx-days{background:#101713;color:var(--ink)}
body.dark-mode .wx-day:hover,body.dark-mode .wx-day:focus-visible{background:#16241c}

/* === mobile-order === */
/* Mobil: vis boksene i nummer-rækkefølge (påvirker ikke desktop) */
@media(max-width:1000px){
main{display:flex!important;flex-direction:column!important;gap:14px!important}
main>.sidebar,main>.right-column,.right-column>.below-map-panels,.below-map-panels>.right-panel-stack{display:contents!important}
main>*>*,main .below-map-panels>*,main .right-panel-stack>*{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}
.sidebar>.hero{order:0!important}
.sidebar>.panel:nth-of-type(2){order:1!important}   /* 1 · Destinationer */
.right-column>.map-wrap{order:2!important}          /* Kort */
.sidebar>.panel:nth-of-type(3){order:3!important}   /* 2 · Lande på turen */
.sidebar>.panel:nth-of-type(4){order:4!important}   /* 3 · Rute & budget */
.below-map-panels>.ai-card{order:5!important}       /* 4 · AI rejseassistent */
.below-map-panels>.right-panel-stack>*{order:6!important}   /* 5 · Campingpladser og 6 · Indtal din rejse */
}

/* === site-version === */
.site-version{font-variant-numeric:tabular-nums;white-space:nowrap}

/* === map-popups === */
/* Googles popups (InfoWindow) er hvide – giv teksten en fast mørk farve, så den ikke arver sidens lyse tekst i dark mode */
.gm-style .gm-style-iw-c{background:#fff;color:#17201b;border-radius:12px;padding:12px 14px!important;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.gm-style .gm-style-iw-d{color:#17201b;overflow:auto!important;font-size:13px;line-height:1.45}
.gm-style .gm-style-iw-c b,.gm-style .gm-style-iw-c strong{color:#10211a}
.gm-style .gm-style-iw-c .btn-soft{background:var(--accent);color:#fff}
.gm-style .gm-style-iw-c .btn-ghost{background:#f6f7f6;color:#17201b;border:1px solid #dfe5df}
/* Dark mode: mørk boks med lys tekst i stedet */
body.dark-mode .gm-style .gm-style-iw-c{background:#16201a;color:#e8efe9}
body.dark-mode .gm-style .gm-style-iw-d,body.dark-mode .gm-style .gm-style-iw-c b,body.dark-mode .gm-style .gm-style-iw-c strong{color:#e8efe9}
body.dark-mode .gm-style .gm-style-iw-tc::after{background:#16201a}
body.dark-mode .gm-style .gm-style-iw-c .gm-ui-hover-effect>span{background-color:#e8efe9!important}
body.dark-mode .gm-style .gm-style-iw-c .btn-ghost{background:#223027;color:#e8efe9;border-color:#2e3f34}

/* === mobile-header === */
/* Mobil: headerens knapper (Vejret, Gem tur, Dine ruter …) vises i en vandret scroll-række under logoet */
@media(max-width:1000px){
header{height:auto;flex-wrap:wrap;gap:8px;padding:10px 16px 8px;padding-top:max(10px,env(safe-area-inset-top))}
.top-actions{width:100%;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.top-actions::-webkit-scrollbar{display:none}
.top-actions>*{flex:0 0 auto;white-space:nowrap}
.top-actions .btn{padding:8px 11px;font-size:12.5px}
.header-theme-toggle{height:34px;order:10;position:relative}
main{min-height:0}
}
@media(max-width:560px){.wx-card{max-height:calc(100dvh - 24px)}}

/* === tomme kildenoter === */
.source-note:empty{display:none}

/* === kontaktboks under FAQ på forsiden === */
.faq-contact{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:16px 18px;border-radius:14px;background:var(--accent2);border:1px solid var(--line)}
.faq-contact strong{display:block;font-size:15px;margin-bottom:2px}
.faq-contact span{color:var(--muted);font-size:13px;line-height:1.45}
.faq-contact .btn{flex:none;text-decoration:none;white-space:nowrap}
body.dark-mode .faq-contact{background:#15281f}
@media (max-width:640px){.faq-contact{flex-direction:column;align-items:flex-start}.faq-contact .btn{width:100%;text-align:center}}
body.dark-mode .faq-contact .btn{background:var(--accent);color:#0d1511}

/* === Betalingsvej eller landevej? === */
.tv-intro{font-size:12px;color:var(--muted);line-height:1.45;margin:0 0 8px}
.tv-box .route-budget-controls label{display:flex;flex-direction:column;justify-content:flex-end}
.tv-unit{display:flex;align-items:center;gap:6px}.tv-unit .input{padding:8px 10px}.tv-unit em{font-style:normal;font-size:12px;color:var(--muted)}
#tvOutput{margin-top:10px}
.tv-list{display:grid;gap:8px}
.tv-row{border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:var(--panel)}
.tv-row.tv-free{border-color:#7fbb9b;background:#f1f9f4}
.tv-row.tv-same{opacity:.85}
.tv-route b{font-size:13px}
.tv-row small{font-size:11px;color:var(--muted)}
.tv-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;font-size:12px;line-height:1.45}
.tv-cols span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tv-verdict{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:12px}
.tv-verdict b{color:var(--accent)}
.tv-verdict span{color:var(--muted)}
.tv-calc{margin-top:7px;font-size:11px;color:var(--muted);line-height:1.45}
.tv-pick{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:12px;font-weight:700}
.tv-pick{cursor:pointer}.tv-pick input{width:18px;height:18px;accent-color:#1f7a52;margin:0}.tv-pick em{font-style:normal;font-weight:600;color:var(--muted)}
.tv-total{margin-top:10px;padding:10px 11px;border-radius:12px;background:var(--accent2);font-size:12px;line-height:1.5}
.tv-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.tv-actions .btn{flex:1;min-width:160px}
body.dark-mode .tv-row.tv-free{background:#15281f;border-color:#2f6b4c}
body.dark-mode .tv-total{background:#15281f}
@media (max-width:480px){.tv-cols{grid-template-columns:1fr}}

/* Mørk tekst på den lyse grønne knapfarve i mørkt tema (hvid tekst giver for lav kontrast) */
body.dark-mode .btn-primary{color:#0d1511}

/* === Den gamle rute (motorvej) som grå streg på kortet === */
.ghost-chip{position:absolute;top:62px;left:12px;z-index:600;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.95);color:#17201b;padding:7px 11px;font:700 12px/1.2 inherit;box-shadow:0 6px 18px rgba(0,0,0,.15);cursor:pointer}
.ghost-chip[hidden]{display:none}
.ghost-chip b{color:#1f7a52;margin-left:4px}
.ghost-swatch{width:22px;height:6px;border-radius:3px;background:rgba(91,99,94,.45)}
.preview-chip{top:108px;cursor:default}
.tv-note{font-size:11px;color:var(--muted);line-height:1.45;margin:8px 0 0}

/* === Sammenfoldelige sektioner i "3 · Rute & budget" === */
.rb-fold{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--panel)}
.rb-fold>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 0;cursor:pointer}
.rb-fold>summary::-webkit-details-marker{display:none}
.rb-fold>summary .route-budget-title{margin:0}
.rb-fold>summary::after{content:"▾";font-size:13px;color:var(--muted);transition:transform .15s ease}
.rb-fold[open]>summary::after{transform:rotate(180deg)}
.rb-fold-sum{margin-left:auto;font-size:13px}
.rb-fold[open]{padding-bottom:12px}

/* === Samlet pris for turen === */
.trip-total{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--accent2);border:1px solid var(--line)}
.trip-total span{display:block;font-weight:800;font-size:13px}
.trip-total small{font-size:11px;color:var(--muted)}
.trip-total strong{font-size:20px;letter-spacing:-.02em}
.trip-total-note{font-size:12px;font-weight:700;color:var(--accent);margin-top:6px}
.trip-total-note:empty{display:none}
body.dark-mode .trip-total{background:#15281f}

/* === Oversigtskort under "Dine ruter" === */
.saved-route-map{position:relative;height:230px;margin-top:12px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#e8efe9;cursor:pointer}
.saved-route-map.empty{display:grid;place-items:center;font-size:12px;color:var(--muted);cursor:default}
.saved-route-map-hint{position:absolute;left:8px;bottom:8px;z-index:2;font-size:10px;font-weight:700;background:rgba(255,255,255,.92);color:#17201b;padding:4px 7px;border-radius:999px;pointer-events:none}
body.dark-mode .saved-route-map{background:#15281f}


/* === Nyheder-knap med prik === */
.news-btn{position:relative}
.news-dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 2px var(--panel)}
.news-dot[hidden]{display:none}

/* === Knapperne i toppen: tydeligt klikbare === */
header .top-actions{align-items:center}
header .top-actions .btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:9px 15px;font-weight:800;font-size:13px;white-space:nowrap;
  box-shadow:0 1px 2px rgba(16,33,26,.08),0 2px 6px rgba(16,33,26,.06);transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease}
header .top-actions .btn-ghost{background:#fff;border:1px solid #d3ddd5;color:var(--ink)}
header .top-actions .btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,33,26,.14)}
header .top-actions .btn-ghost:hover{background:#eef7f1;border-color:#1f7a52;color:#14532d}
header .top-actions .btn:active{transform:translateY(0) scale(.97);box-shadow:0 1px 3px rgba(16,33,26,.12)}
header .top-actions .btn:focus-visible{outline:3px solid rgba(31,122,82,.35);outline-offset:2px}
header .top-actions .hdr-save{border:1px solid #1f7a52}
header .top-actions .hdr-save:hover{background:#18663f}
header .top-actions .hdr-routes{border-color:#10211a}
body.dark-mode header .top-actions .btn-ghost{background:#15201a;border-color:#2c3d34;color:var(--ink)}
body.dark-mode header .top-actions .btn-ghost:hover{background:#1b3327;border-color:#55c98a;color:#e6ece8}
body.dark-mode header .top-actions .hdr-routes{border-color:#55c98a}
body.dark-mode header .top-actions .hdr-save:hover{background:#6fd69c}


/* === Sammenfoldelige bokse 4–6 (lukket som standard) === */
.box-fold>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}
.box-fold>summary::-webkit-details-marker{display:none}
.box-fold>summary .section-title{margin:0}
.box-fold>summary::after{content:"▾";font-size:14px;color:var(--muted);transition:transform .15s ease}
.box-fold[open]>summary::after{transform:rotate(180deg)}
.box-fold[open]>summary{margin-bottom:10px}

/* Google Maps-knap pr. landevejsstrækning */
.tv-gmaps{display:inline-block;margin-top:7px;font-size:12px;font-weight:700;color:var(--accent);text-decoration:none}
.tv-gmaps:hover{text-decoration:underline}
.tv-gpx-tip{margin-top:10px;padding:9px 11px;border-radius:10px;background:var(--accent2);border:1px solid var(--line);font-size:12px;line-height:1.45;color:var(--ink)}
body.dark-mode .tv-gpx-tip{background:#15281f}
.tv-gpx-tip b{display:block;margin-bottom:2px}

/* Nyt logo: større ikon og "rute" i grønt som i logoet */
.brand{gap:12px}
.brand .logo{width:44px;height:44px;border-radius:12px;background:none;padding:0;overflow:hidden}
.brand .logo img{width:100%;height:100%;display:block;border-radius:12px}
.brand span{font-size:22px;letter-spacing:-.03em}
.brand-rute{font-weight:inherit;color:#1f7a52}
body.dark-mode .brand-rute{color:#3fb57f}
@media (max-width:640px){.brand .logo{width:38px;height:38px;border-radius:11px}.brand .logo img{border-radius:11px}.brand span{font-size:19px}}

/* Store, tydelige fold-ud-pile overalt (lettere at se og ramme) */
.rb-fold>summary::after,.box-fold>summary::after,.seo-content details>summary::after{
  content:"▾";flex:0 0 34px;width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;font-size:22px;line-height:1;font-weight:700;
  background:var(--accent2);color:var(--accent);transition:transform .15s ease}
.rb-fold[open]>summary::after,.box-fold[open]>summary::after,.seo-content details[open]>summary::after{transform:rotate(180deg)}
.seo-content details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.seo-content details>summary::-webkit-details-marker{display:none}

/* Tyk pil i stedet for et lille tegn */
.rb-fold>summary::after,.box-fold>summary::after,.seo-content details>summary::after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%231f7a52' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px 20px no-repeat,var(--accent2)}
body.dark-mode .rb-fold>summary::after,body.dark-mode .box-fold>summary::after,body.dark-mode .seo-content details>summary::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%2355c98a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px 20px no-repeat,var(--accent2)}

/* Google Maps i flere dele (telefon/iPad tillader kun 3 stop pr. link) */
.gmaps-parts{position:fixed;inset:0;z-index:100000;background:rgba(10,20,15,.55);display:none;align-items:center;justify-content:center;padding:16px}
.gmaps-parts.show{display:flex}
.gmaps-parts-card{background:var(--panel);color:var(--ink);border-radius:16px;max-width:440px;width:100%;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;max-height:90vh;overflow:auto}
.gmaps-parts-card h3{margin:0;font-size:19px}
.gmaps-parts-card p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
.gmaps-part{text-decoration:none;text-align:center;padding:12px 14px;font-size:15px}
.gmaps-parts-tip{font-size:13px!important}
