
:root{
  --bg:#07111f;--panel:rgba(8,18,32,.78);--panel2:rgba(11,24,43,.90);
  --line:rgba(154,199,255,.16);--text:#f5f9ff;--muted:#9db0c7;
  --blue:#1769ff;--blue2:#4ca6ff;--cyan:#46e6ff;--violet:#916cff;
  --green:#57f0b3;--orange:#ff9d3f;--danger:#ff6f86;
  --shadow:0 18px 70px rgba(0,0,0,.42);--radius:22px;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overscroll-behavior:none}#app{position:fixed;inset:0;width:100vw;height:100dvh;min-height:100dvh;margin:0}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);overflow:hidden}
button,input,select{font:inherit}
button{color:inherit}
#map{position:absolute;inset:0;width:100%;height:100%;background:#081321}
#map:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:400;background:
 radial-gradient(circle at 70% 15%,rgba(23,105,255,.09),transparent 28%),
 linear-gradient(180deg,rgba(7,17,31,.08),rgba(7,17,31,.22))}
.leaflet-tile-pane{filter:saturate(.55) brightness(.67) contrast(1.22) hue-rotate(178deg)}
.leaflet-control-attribution{background:rgba(7,17,31,.78)!important;color:#a8b7ca!important}
.leaflet-control-attribution a{color:#cdd8e8!important}
.glass{background:linear-gradient(145deg,rgba(13,28,48,.86),rgba(6,15,28,.72));backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%);border:1px solid rgba(145,187,255,.15);box-shadow:var(--shadow)}
.topbar{position:absolute;z-index:900;left:24px;right:24px;top:max(18px,env(safe-area-inset-top));height:58px;border-radius:18px;display:flex;align-items:center;padding:0 10px 0 16px}
.brand{display:flex;gap:10px;align-items:center;background:none;border:0;padding:0;cursor:pointer;letter-spacing:.02em;margin-left:64px;position:relative;z-index:2}
.brand strong{font-size:14px;letter-spacing:.14em}.brand em{font-style:normal;font-size:10px;margin-left:5px;padding:3px 6px;border-radius:7px;background:linear-gradient(120deg,var(--blue),var(--violet))}
.brand-mark{width:29px;height:29px;position:relative;display:block}
.brand-mark i{position:absolute;height:2px;background:linear-gradient(90deg,var(--blue2),var(--cyan));transform-origin:left center;box-shadow:0 0 14px rgba(76,166,255,.8)}
.brand-mark i:nth-child(1){width:25px;left:2px;top:5px;transform:rotate(60deg)}
.brand-mark i:nth-child(2){width:25px;left:14px;top:5px;transform:rotate(120deg)}
.brand-mark i:nth-child(3){width:24px;left:4px;top:24px}
.city-pill{margin-left:auto;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035)}
.city-pill select{background:transparent;color:#edf6ff;border:0;outline:0;font-weight:700}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green);animation:pulse 1.8s infinite}
.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);display:grid;place-items:center;margin-left:8px;cursor:pointer;font-size:22px}
.route-panel{position:absolute;z-index:850;top:94px;left:24px;width:390px;max-height:calc(100dvh - 126px);border-radius:var(--radius);padding:20px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.panel-head{display:flex;gap:12px;align-items:flex-start}.panel-head>div{flex:1}
.eyebrow{margin:0 0 6px;color:#7fb8ff;font-size:10px;letter-spacing:.2em;font-weight:800}
h1{font-size:25px;line-height:1.08;margin:0;letter-spacing:-.03em}
.collapse-btn{border:0;background:rgba(255,255,255,.05);width:32px;height:32px;border-radius:10px;cursor:pointer}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 14px}
.hero-metrics div{padding:11px 10px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05)}
.hero-metrics strong{display:block;font-size:16px}.hero-metrics span{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.chips{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;border:1px solid var(--line);background:rgba(255,255,255,.035);padding:8px 10px;border-radius:999px;font-size:11px;cursor:pointer}
.chip.active{background:rgba(23,105,255,.18);border-color:rgba(76,166,255,.65);box-shadow:0 0 18px rgba(23,105,255,.18)}
.route-progress{margin:14px 0 7px}.progress-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.progress-meta strong{color:#dfeaff}.progress-track{height:4px;background:rgba(255,255,255,.07);border-radius:20px;margin-top:7px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:.35s}
.stops{overflow:visible;margin-right:-8px;padding-right:7px;scrollbar-color:rgba(133,179,255,.2) transparent;min-height:120px;flex:0 0 auto}
.stop-card{display:grid;grid-template-columns:31px 72px 1fr auto;gap:10px;align-items:center;padding:10px 8px;border-radius:13px;cursor:pointer;border:1px solid transparent;transition:.2s}
.stop-card:hover,.stop-card.active{background:rgba(255,255,255,.045);border-color:rgba(96,164,255,.14)}
.stop-num{width:29px;height:29px;border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:11px;background:linear-gradient(145deg,rgba(23,105,255,.35),rgba(145,108,255,.18));border:1px solid rgba(83,153,255,.32)}
.stop-card.visited .stop-num{background:rgba(87,240,179,.14);border-color:rgba(87,240,179,.4);color:var(--green)}
.stop-thumb{width:72px;height:52px;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,rgba(15,40,72,.9),rgba(5,15,30,.9));border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;color:#a9c5e9;font-size:11px;font-weight:800;letter-spacing:.08em}
.stop-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.stop-thumb span{padding:0 8px;text-align:center}
.stop-card strong{display:block;font-size:12px}.stop-card small{color:var(--muted);font-size:10px;line-height:1.45;display:block;margin-top:3px}
.stop-card .arrow{color:#7190b0}
.panel-actions{display:grid;grid-template-columns:1.45fr 1fr;gap:8px;padding-top:13px}
.primary,.secondary{border:0;border-radius:13px;padding:11px 12px;font-weight:800;font-size:11px;cursor:pointer}
.primary{background:linear-gradient(120deg,var(--blue),#2455e8 50%,var(--violet));box-shadow:0 9px 30px rgba(23,105,255,.26)}
.secondary{background:rgba(255,255,255,.05);border:1px solid var(--line)}
.primary.big{font-size:13px;padding:14px 18px;width:100%}.primary.small,.secondary.small{padding:10px 12px}
.route-status{position:absolute;z-index:820;left:440px;right:110px;bottom:max(24px,env(safe-area-inset-bottom));height:64px;border-radius:18px;display:flex;align-items:center;padding:0 18px;gap:12px}
.route-status small{font-size:9px;color:#72a9e7;letter-spacing:.14em;display:block}.route-status strong{font-size:12px}
.pulse-ring{width:12px;height:12px;border-radius:50%;background:var(--blue2);box-shadow:0 0 0 0 rgba(76,166,255,.6);animation:ping 2s infinite}
.status-distance{margin-left:auto;font-weight:900;color:#cfe5ff}
.ai-orb{position:absolute;z-index:900;right:26px;bottom:max(25px,env(safe-area-inset-bottom));width:68px;height:68px;border:0;border-radius:50%;background:rgba(7,17,31,.83);display:grid;place-items:center;cursor:pointer;box-shadow:0 0 42px rgba(83,108,255,.35)}
.orb-core{position:relative;z-index:3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#7cf1ff,#2354ff 55%,#5724b5);font-weight:950;font-size:11px;box-shadow:inset 0 0 15px rgba(255,255,255,.22),0 0 18px rgba(76,166,255,.65)}
.orb-ring{position:absolute;border:1px solid rgba(81,171,255,.48);border-radius:50%;animation:orb 2.8s infinite}.r1{inset:5px}.r2{inset:-3px;animation-delay:-1.1s}
.ai-drawer{position:absolute;z-index:1200;right:24px;top:94px;width:370px;height:min(620px,calc(100dvh - 125px));max-height:calc(100dvh - 112px);border-radius:24px;transform:translateX(calc(100% + 55px));opacity:0;transition:.32s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:contain}
.ai-drawer.open{transform:none;opacity:1}.ai-head{display:flex;align-items:center;padding:15px;border-bottom:1px solid var(--line)}
.ai-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(140deg,var(--blue),var(--violet));display:grid;place-items:center;font-weight:900;margin-right:10px}
.ai-head>div:nth-child(2){flex:1}.ai-head strong,.ai-head small{display:block}.ai-head small{color:var(--muted);font-size:10px;margin-top:2px}
.ai-context{font-size:10px;color:#bdd1e9;background:rgba(23,105,255,.11);padding:9px 13px;border-bottom:1px solid rgba(23,105,255,.18)}
.ai-messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:15px;display:flex;flex-direction:column;gap:9px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.msg{max-width:86%;padding:10px 12px;border-radius:14px;font-size:12px;line-height:1.48}
.msg.bot{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.06);align-self:flex-start}
.msg.user{background:linear-gradient(120deg,rgba(23,105,255,.9),rgba(96,69,215,.88));align-self:flex-end}
.quick-asks{display:flex;gap:6px;overflow:auto;padding:0 12px 10px;scrollbar-width:none}.quick-asks button{white-space:nowrap;border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:999px;padding:7px 9px;font-size:9px;cursor:pointer}
.ai-form{display:flex;gap:7px;border-top:1px solid var(--line);padding:11px}.ai-form input{flex:1;min-width:0;background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:12px;color:white;padding:11px;outline:none;font-size:12px}.ai-form button{width:42px;border:0;border-radius:12px;background:var(--blue);font-size:20px}
.stop-sheet{position:absolute;z-index:1000;right:24px;top:94px;width:380px;max-height:calc(100dvh - 118px);border-radius:22px;padding:22px;transform:translateX(calc(100% + 55px));opacity:0;transition:.3s;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable}
.stop-sheet.open{transform:none;opacity:1}.sheet-close{position:absolute;right:12px;top:12px;width:30px;height:30px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.04)}
.sheet-kicker{font-size:10px;color:#6db2ff;font-weight:900;letter-spacing:.16em}.stop-sheet h2{font-size:25px;margin:8px 36px 5px 0}.sheet-meta{color:#8eafd0;font-size:11px}.stop-sheet>p:not(.sheet-meta){font-size:13px;line-height:1.58;color:#d9e5f2}
.sheet-photo{margin:14px 0 16px;position:relative;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:linear-gradient(145deg,rgba(11,26,48,.95),rgba(5,14,28,.95));min-height:214px}
.sheet-photo img{display:none;width:100%;height:214px;object-fit:cover}
.sheet-photo.has-photo img{display:block}
.sheet-photo-placeholder{height:214px;display:grid;place-items:center;color:#b5c9e4;font-size:12px;letter-spacing:.1em;font-weight:800;text-transform:uppercase;background:radial-gradient(circle at 28% 22%,rgba(76,166,255,.22),transparent 28%),linear-gradient(145deg,rgba(9,24,44,.95),rgba(3,10,19,.95))}
.sheet-photo.has-photo .sheet-photo-placeholder{display:none}
.sheet-photo-meta{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.06);font-size:10px;color:#a8bed9;background:rgba(4,10,18,.72)}
.sheet-photo-meta a{color:#d6e7ff;text-decoration:none;white-space:nowrap}
.look-for{margin:15px 0;padding:12px;border-radius:14px;background:rgba(23,105,255,.09);border:1px solid rgba(76,166,255,.15)}.look-for span{font-size:9px;font-weight:900;color:#61afff;letter-spacing:.14em}.look-for p{margin:5px 0 0;font-size:11px;line-height:1.5}
.sheet-actions{display:flex;gap:8px}.sheet-actions a{text-decoration:none;text-align:center}
.permission-modal{position:absolute;inset:0;z-index:5000;display:grid;place-items:center;background:rgba(2,8,15,.70);backdrop-filter:blur(9px);padding:18px;transition:.25s}.permission-modal.hidden{opacity:0;pointer-events:none}
.permission-card{width:min(430px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:30px;border-radius:28px;text-align:center}.permission-card h2{margin:8px 0 10px;font-size:29px}.permission-card>p:not(.eyebrow){font-size:13px;line-height:1.6;color:#c7d5e5}
.privacy-note{font-size:10px;line-height:1.5;color:#9fb1c5;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:13px;padding:10px;margin:15px 0}
.text-btn{border:0;background:transparent;color:#9fb1c5;padding:12px;cursor:pointer}
.radar{position:relative;width:105px;height:105px;margin:0 auto 17px;display:grid;place-items:center}.radar span{position:absolute;border:1px solid rgba(76,166,255,.3);border-radius:50%;animation:radar 2.4s infinite}.radar span:nth-child(1){inset:34px}.radar span:nth-child(2){inset:20px;animation-delay:-.7s}.radar span:nth-child(3){inset:5px;animation-delay:-1.4s}.radar b{font-size:27px;color:#71c4ff;text-shadow:0 0 18px var(--blue2)}
.toast{position:absolute;z-index:6000;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;border-radius:14px;padding:11px 16px;font-size:11px;transition:.25s;pointer-events:none}.toast.show{transform:translate(-50%,0);opacity:1}
.user-marker{width:18px;height:18px;background:#6cf1ff;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 7px rgba(76,230,255,.16),0 0 25px rgba(76,230,255,.9)}
.poi-marker{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:13px;border:1px solid rgba(255,255,255,.28);box-shadow:0 6px 16px rgba(0,0,0,.28)}.poi-marker.restaurant{background:#ff8b38}.poi-marker.museum{background:#8b65ff}
.arch-marker{position:relative;width:34px;height:34px;border-radius:12px;background:linear-gradient(140deg,#1769ff,#4932bc);display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);box-shadow:0 8px 24px rgba(23,105,255,.42);font-size:11px;font-weight:900}
.arch-marker::after{content:"";position:absolute;inset:-6px;border-radius:16px;border:1px solid rgba(76,166,255,.22)}
.arch-marker.active::after{animation:ping2 1.4s infinite}
.route-panel.min .hero-metrics,.route-panel.min .chips,.route-panel.min .route-progress,.route-panel.min .stops,.route-panel.min .panel-actions{display:none}.route-panel.min{max-height:none}
@keyframes pulse{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes ping{70%{box-shadow:0 0 0 13px rgba(76,166,255,0)}100%{box-shadow:0 0 0 0 rgba(76,166,255,0)}}
@keyframes ping2{70%{inset:-14px;opacity:0}100%{inset:-6px;opacity:0}}
@keyframes orb{0%,100%{opacity:.35;transform:scale(.93)}50%{opacity:.7;transform:scale(1.04)}}
@keyframes radar{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:.8;transform:scale(1.05)}}
@media(max-width:760px){
  .topbar{left:10px;right:10px;top:max(10px,env(safe-area-inset-top));height:52px}
  .brand{margin-left:18px}
  .brand strong{font-size:12px}.city-pill{padding:7px 9px}.city-pill select{font-size:11px}.topbar .icon-btn{width:34px;height:34px}
  .route-panel{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));top:auto;width:auto;max-height:50%;padding:15px;border-radius:21px}
  .route-panel.min{max-height:90px}
  .route-panel h1{font-size:20px}.hero-metrics{margin:10px 0}.stops{max-height:none}.panel-actions{padding-top:9px}
  .stop-card{grid-template-columns:31px 62px 1fr auto}.stop-thumb{width:62px;height:48px}
  .route-status{left:10px;right:86px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 54%);height:56px;padding:0 12px}
  .ai-orb{right:12px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 54%);width:58px;height:58px}.orb-core{width:38px;height:38px}
  .ai-drawer{inset:74px 10px max(10px,env(safe-area-inset-bottom)) 10px;width:auto;height:auto}
  .stop-sheet{left:10px;right:10px;bottom:10px;top:auto;width:auto;max-height:76dvh;overflow-y:auto;overflow-x:hidden;transform:translateY(calc(100% + 30px));-webkit-overflow-scrolling:touch;touch-action:pan-y}
  .stop-sheet.open{transform:none}
  .sheet-photo,.sheet-photo img,.sheet-photo-placeholder{min-height:188px;height:188px}
  .leaflet-control-zoom{display:none}
}
@media(max-width:420px){
  .route-status{display:none}.ai-orb{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 52%)}
}

.stop-thumb .thumb-fallback{display:none;padding:0 7px;text-align:center;color:#b9d0ed;font-size:9px;line-height:1.2}.stop-thumb img[style*="display: none"] + .thumb-fallback{display:grid!important;place-items:center;height:100%}

.panel-head-actions{display:flex;align-items:center;gap:7px}.route-switch-btn{border:1px solid rgba(112,171,255,.28);background:rgba(23,105,255,.10);color:#dbeaff;padding:7px 9px;border-radius:10px;font-size:9px;font-weight:850;white-space:nowrap;cursor:pointer}.route-switch-btn:hover{background:rgba(23,105,255,.18)}

.route-chooser{
  position:absolute;inset:0;z-index:4800;display:grid;place-items:center;padding:18px;
  background:rgba(2,8,15,.72);backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;transition:.25s;overflow:hidden
}
.route-chooser.open{opacity:1;pointer-events:auto}
.route-chooser-card{
  position:relative;width:min(760px,100%);height:min(760px,calc(100dvh - 36px));
  max-height:calc(100dvh - 36px);border-radius:28px;padding:28px 20px 20px 28px;
  display:flex;flex-direction:column;overflow:hidden
}
.route-chooser-card>.eyebrow,
.route-chooser-card>h2,
.route-chooser-card>.route-chooser-intro{flex:0 0 auto;padding-right:42px}
.route-chooser-card h2{font-size:31px;margin:4px 0 7px}
.route-chooser-intro{color:#b7c8dc;font-size:12px;line-height:1.55;margin:0 0 15px}
.route-chooser-close{
  position:absolute;right:14px;top:14px;z-index:3;width:36px;height:36px;border-radius:12px;
  border:1px solid var(--line);background:rgba(7,17,31,.88);font-size:20px;cursor:pointer
}
.route-cards{
  flex:1 1 auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;align-content:start;
  gap:13px;overflow-y:auto;overflow-x:hidden;padding:3px 8px 18px 0;
  scrollbar-width:thin;scrollbar-color:rgba(105,170,255,.55) rgba(255,255,255,.035);
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y
}
.route-cards::-webkit-scrollbar{width:7px}
.route-cards::-webkit-scrollbar-track{background:rgba(255,255,255,.035);border-radius:999px}
.route-cards::-webkit-scrollbar-thumb{background:rgba(105,170,255,.55);border-radius:999px}
.route-choice-card{
  position:relative;border:1px solid rgba(145,187,255,.16);background:rgba(255,255,255,.035);
  border-radius:20px;overflow:hidden;text-align:left;padding:0;transition:.22s;min-height:306px
}
.route-choice-main{
  display:block;width:100%;height:auto;min-height:258px;border:0;background:transparent;
  color:inherit;text-align:left;padding:0;cursor:pointer
}
.route-choice-card:hover,.route-choice-card.selected{
  transform:translateY(-2px);border-color:rgba(90,165,255,.55);
  box-shadow:0 16px 36px rgba(0,0,0,.25),0 0 24px rgba(23,105,255,.12)
}
.route-choice-photo{height:150px;background:#0a1728;overflow:hidden}
.route-choice-photo img{display:block;width:100%;height:100%;object-fit:cover}
.route-choice-copy{padding:14px 42px 15px 15px}
.route-choice-copy span{font-size:8px;letter-spacing:.16em;color:#78b7ff;font-weight:900}
.route-choice-copy strong{display:block;font-size:18px;margin:5px 0}
.route-choice-copy small{display:block;color:#b7c8dc;font-size:10px;line-height:1.45}
.route-choice-copy em{display:block;font-style:normal;color:#7f9ab8;font-size:9px;margin-top:9px}
.route-choice-arrow{
  position:absolute;right:14px;bottom:64px;width:29px;height:29px;border-radius:10px;
  background:rgba(23,105,255,.18);display:grid;place-items:center;color:#9fd3ff;font-size:15px
}


.route-voice-btn{
  position:absolute;z-index:4;left:12px;top:12px;display:flex;align-items:center;gap:7px;
  min-height:34px;padding:7px 10px;border-radius:999px;
  border:1px solid rgba(123,207,255,.34);
  background:rgba(5,16,30,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:#eef8ff;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.24);transition:.2s
}
.route-voice-btn span{font-size:13px;line-height:1}
.route-voice-btn b{font-size:9px;letter-spacing:.04em}
.route-voice-btn:hover{background:rgba(23,105,255,.82);border-color:rgba(116,190,255,.75)}
.route-voice-btn.speaking{
  background:linear-gradient(120deg,rgba(23,105,255,.94),rgba(145,108,255,.94));
  border-color:rgba(180,217,255,.8);
  box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 28px rgba(76,166,255,.35)
}
.route-voice-btn.speaking span{animation:voicePulse 1.15s ease-in-out infinite}
@keyframes voicePulse{0%,100%{transform:scale(.9);opacity:.72}50%{transform:scale(1.12);opacity:1}}

@media(max-width:760px){
  .panel-head-actions{flex-direction:column;gap:5px;align-items:flex-end}
  .route-switch-btn{font-size:8px;padding:6px 8px}
  .route-chooser{place-items:end center;padding:8px}
  .route-chooser-card{
    width:100%;height:min(92dvh,760px);max-height:92dvh;padding:19px 11px 11px 16px;
    border-radius:24px 24px 18px 18px
  }
  .route-chooser-card h2{font-size:24px;margin-top:2px}
  .route-chooser-intro{font-size:11px;margin-bottom:11px;line-height:1.45}
  .route-cards{
    grid-template-columns:1fr;gap:9px;padding:2px 7px 20px 0;
    scroll-snap-type:y proximity
  }
  .route-choice-card{min-height:118px;scroll-snap-align:start;border-radius:16px}
  .route-choice-main{display:grid;grid-template-columns:112px 1fr;min-height:118px;height:auto}
  .route-choice-photo{height:118px}
  .route-choice-copy{padding:11px 36px 11px 12px;align-self:center}
  .route-choice-copy strong{font-size:15px;line-height:1.15}
  .route-choice-copy small{font-size:9px;line-height:1.35}
  .route-choice-copy em{font-size:8px;margin-top:6px}
  .route-choice-arrow{right:10px;bottom:10px;width:27px;height:27px}
  .route-voice-btn{left:7px;top:7px;min-height:29px;padding:5px 8px;gap:5px}
  .route-voice-btn b{font-size:8px}
}

@media(max-width:430px){
  .route-chooser-card{height:94dvh;max-height:94dvh;padding-top:16px}
  .route-chooser-card h2{font-size:22px}
  .route-chooser-intro{font-size:10px}
  .route-choice-card{min-height:106px}
  .route-choice-main{grid-template-columns:96px 1fr;min-height:106px}
  .route-choice-photo{height:106px}
  .route-choice-copy{padding:9px 34px 9px 10px}
  .route-choice-copy strong{font-size:14px}
}


.walk-health{
  margin:10px 0 11px;padding:11px;border-radius:16px;
  background:linear-gradient(145deg,rgba(16,37,61,.68),rgba(7,20,35,.62));
  border:1px solid rgba(87,240,179,.14)
}
.walk-health-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.walk-health-head>div:first-child span{
  display:block;font-size:8px;font-weight:950;letter-spacing:.15em;color:#68e7bd
}
.walk-health-head>div:first-child small{display:block;font-size:9px;color:#91aac3;margin-top:3px}
.walk-health-head-right{display:flex;align-items:center;gap:7px}
.walk-health-head-right>small{font-size:8px;color:#a7bdd5;white-space:nowrap}
.health-settings-btn{
  width:28px;height:28px;border-radius:9px;border:1px solid rgba(87,240,179,.20);
  background:rgba(87,240,179,.06);color:#c9f9e8;cursor:pointer;padding:0
}
.walk-health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.walk-health-grid div{
  min-width:0;padding:8px 7px;border-radius:11px;background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.045)
}
.walk-health-grid strong{display:block;font-size:13px;line-height:1.1;color:#f4fbff}
.walk-health-grid span{display:block;font-size:8px;color:#8fa8c0;margin-top:4px;white-space:nowrap}
.health-settings{
  margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.07)
}
.health-settings[hidden]{display:none}
.health-settings label{display:flex;align-items:center;justify-content:space-between;gap:10px}
.health-settings label>span{font-size:9px;color:#c1d4e7}
.health-settings label>div{
  display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:4px 7px
}
.health-settings input{
  width:52px;background:transparent;border:0;outline:0;color:#fff;font-weight:900;text-align:right
}
.health-settings b{font-size:9px;color:#8fa8c0}
.health-settings>small{display:block;margin-top:7px;font-size:8px;line-height:1.45;color:#8097ae}
.walk-health.running{
  border-color:rgba(87,240,179,.32);
  box-shadow:0 0 22px rgba(87,240,179,.07)
}
.walk-health.paused{border-color:rgba(255,157,63,.22)}


@media(max-width:760px){
  .walk-health{margin:8px 0 9px;padding:9px}
  .walk-health-grid{
    display:flex;overflow-x:auto;gap:6px;padding-bottom:2px;scrollbar-width:none;
    -webkit-overflow-scrolling:touch
  }
  .walk-health-grid::-webkit-scrollbar{display:none}
  .walk-health-grid div{flex:0 0 82px}
  .walk-health-grid strong{font-size:12px}
  .walk-health-head-right>small{display:none}
  .health-settings label{align-items:flex-start}
}


:fullscreen #app,:-webkit-full-screen #app{width:100vw;height:100vh;height:100dvh}
body.fullscreen-ready{touch-action:manipulation}
@supports(height:100svh){
  #app{height:100dvh;min-height:100svh}
}


.route-choice-placeholder{
  width:100%;height:100%;min-height:145px;display:flex;flex-direction:column;justify-content:flex-end;
  gap:6px;padding:18px;background:
  radial-gradient(circle at 78% 20%,rgba(76,166,255,.30),transparent 32%),
  linear-gradient(145deg,rgba(11,31,56,.98),rgba(4,12,23,.98));
}
.route-choice-placeholder span{font-size:9px;letter-spacing:.20em;color:#6ccfff;font-weight:900}
.route-choice-placeholder strong{font-size:17px;line-height:1.12;color:#f4f8ff;max-width:90%}

.route-choice-placeholder{position:relative;overflow:hidden}
.route-choice-placeholder::after{
  content:"";position:absolute;inset:0;transform:translateX(-110%);
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.07) 48%,transparent 76%);
  animation:photoLoadSweep 1.5s ease-in-out infinite
}
@keyframes photoLoadSweep{to{transform:translateX(110%)}}

/* v4.20 · extensió opcional de ruta */
.stop-card.optional-stop{margin-top:7px;border-color:rgba(255,191,74,.34);background:linear-gradient(135deg,rgba(255,176,54,.09),rgba(113,82,20,.05))}
.stop-card.optional-stop:hover,.stop-card.optional-stop.active{border-color:rgba(255,197,94,.65);background:linear-gradient(135deg,rgba(255,176,54,.16),rgba(113,82,20,.08))}
.stop-card.optional-stop .optional-num{background:linear-gradient(145deg,rgba(255,181,55,.36),rgba(255,130,36,.16));border-color:rgba(255,194,83,.55);color:#ffe0a0}
.stop-card.optional-stop strong{color:#ffe4ac}

/* v4.23 · àudio bilingüe català / aranès a la Val d'Aran */
.aran-audio-language{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:10px 0 2px;padding:8px 9px;border:1px solid rgba(113,196,255,.20);
  border-radius:13px;background:linear-gradient(120deg,rgba(18,68,111,.16),rgba(93,56,151,.11));
}
.aran-audio-language[hidden]{display:none!important}
.aran-audio-language>span{font-size:8px;letter-spacing:.13em;font-weight:900;color:#9acfff}
.aran-audio-language>div{display:flex;gap:5px}
.aran-audio-language button{
  border:1px solid rgba(130,188,255,.26);background:rgba(7,18,33,.72);color:#c5d7e9;
  border-radius:999px;padding:6px 10px;font-size:9px;font-weight:850;cursor:pointer;transition:.18s
}
.aran-audio-language button:hover{border-color:rgba(120,202,255,.55);background:rgba(23,105,255,.20)}
.aran-audio-language button.active{
  color:#fff;background:linear-gradient(120deg,rgba(23,105,255,.86),rgba(126,88,222,.86));
  border-color:rgba(168,218,255,.72);box-shadow:0 0 18px rgba(66,155,255,.20)
}
.route-chooser .chooser-lang{margin:0 0 11px}
@media(max-width:760px){
  .aran-audio-language{margin-top:7px;padding:6px 7px}
  .aran-audio-language>span{font-size:7px}
  .aran-audio-language button{font-size:8px;padding:5px 8px}
  .route-chooser .chooser-lang{margin-bottom:8px}
}

/* v4.32 · meteorologia en temps real + fase lunar */
.weather-strip{
  position:relative;isolation:isolate;overflow:hidden;
  margin-left:clamp(14px,3vw,44px);min-width:338px;max-width:520px;height:44px;
  display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 12px 4px 8px;
  border:1px solid rgba(109,198,255,.19);border-radius:14px;
  background:linear-gradient(110deg,rgba(6,18,33,.52),rgba(18,43,68,.36),rgba(8,17,31,.48));
  box-shadow:inset 0 0 24px rgba(72,173,255,.035),0 0 24px rgba(43,158,255,.06);
  color:#f4fbff;flex:0 1 520px
}
.weather-strip::after{
  content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:linear-gradient(100deg,transparent 8%,rgba(88,210,255,.06) 48%,transparent 88%);
  transform:translateX(-100%);animation:weatherSweep 7s ease-in-out infinite
}
.weather-strip.loading{opacity:.82}.weather-strip.stale .weather-source{color:#ffd27c;text-shadow:0 0 9px rgba(255,183,72,.55)}
.weather-scene{position:relative;width:54px;height:37px;flex:0 0 54px;display:grid;place-items:center}
.sky-orb{position:absolute;left:4px;top:1px;width:31px;height:31px;display:grid;place-items:center;font-size:26px;line-height:1;z-index:1;filter:drop-shadow(0 0 8px rgba(255,226,109,.72));transition:.35s ease}
.sky-orb.sun{color:#ffe66b;text-shadow:0 0 8px rgba(255,221,71,.95),0 0 19px rgba(255,179,44,.65);animation:sunPulse 3.8s ease-in-out infinite}
.sky-orb.moon{font-size:25px;filter:drop-shadow(0 0 9px rgba(188,221,255,.92)) drop-shadow(0 0 17px rgba(108,150,255,.5));animation:moonFloat 5s ease-in-out infinite}
.sky-cloud{position:absolute;z-index:3;right:2px;bottom:5px;width:28px;height:10px;border-radius:999px;background:linear-gradient(#e9f6ff,#a9c9df);box-shadow:0 0 10px rgba(183,226,255,.42);opacity:0;transform:translateY(2px);transition:.3s}
.sky-cloud::before,.sky-cloud::after{content:"";position:absolute;background:inherit;border-radius:50%}
.sky-cloud::before{width:13px;height:13px;left:4px;top:-6px}.sky-cloud::after{width:16px;height:16px;right:3px;top:-8px}
.weather-scene.cloudy .sky-cloud,.weather-scene.rain .sky-cloud,.weather-scene.snow .sky-cloud,.weather-scene.storm .sky-cloud,.weather-scene.fog .sky-cloud{opacity:.95;transform:none}
.weather-scene.overcast .sky-cloud{width:38px;right:0;opacity:1;filter:brightness(.82)}
.sky-precip{position:absolute;z-index:2;right:3px;bottom:-1px;width:31px;height:14px;opacity:0;overflow:hidden}
.sky-precip::before{content:"";position:absolute;inset:-4px 1px 0;background:repeating-linear-gradient(112deg,transparent 0 5px,#57cfff 6px 8px,transparent 9px 13px);animation:rainFall .7s linear infinite}
.weather-scene.rain .sky-precip,.weather-scene.storm .sky-precip{opacity:1}
.weather-scene.snow .sky-precip{opacity:1;overflow:visible}
.weather-scene.snow .sky-precip::before{content:"✦  ·  ✦";background:none;color:#eef9ff;font-size:9px;letter-spacing:2px;animation:snowFall 1.6s linear infinite;text-shadow:0 0 7px #bcecff}
.weather-scene.fog::after{content:"≋";position:absolute;right:0;bottom:-1px;z-index:4;color:#d7e6f2;font-size:26px;letter-spacing:-5px;opacity:.72;text-shadow:0 0 9px rgba(220,241,255,.48)}
.sky-lightning{position:absolute;z-index:5;right:9px;bottom:-1px;color:#fff46d;font-size:20px;opacity:0;text-shadow:0 0 8px #ffef45,0 0 15px #ff9f2f;transform:rotate(-12deg)}
.weather-scene.storm .sky-lightning{opacity:1;animation:lightning 2.7s steps(1) infinite}
.weather-temp{height:34px;min-width:64px;display:flex;align-items:baseline;justify-content:center;gap:2px;padding:0 6px;border:0;border-radius:10px;background:rgba(79,180,255,.05);cursor:pointer;color:#f7fcff;white-space:nowrap}
.weather-temp strong{font-size:19px;letter-spacing:-.04em;text-shadow:0 0 7px rgba(101,218,255,.95),0 0 18px rgba(53,140,255,.72)}
.weather-temp small{font-size:10px;font-weight:900;color:#9ce8ff;text-shadow:0 0 8px rgba(92,216,255,.65)}
.weather-temp:hover{background:rgba(79,180,255,.12);box-shadow:0 0 14px rgba(61,179,255,.10)}
.weather-humidity,.weather-wind{height:32px;display:flex;align-items:center;gap:5px;white-space:nowrap;color:#eaf8ff}
.weather-humidity strong,.weather-wind strong{font-size:12px;text-shadow:0 0 8px rgba(80,214,255,.72)}
.weather-wind small{font-size:7px;color:#8db2ce;font-weight:850;letter-spacing:.03em}
.humidity-drop{width:10px;height:10px;border-radius:8px 8px 8px 1px;transform:rotate(45deg);background:linear-gradient(135deg,#8ef1ff,#3d91ff);box-shadow:0 0 9px rgba(73,206,255,.82);flex:0 0 10px}
.wind-glyph{position:relative;width:28px;height:20px;display:block;opacity:.9;filter:drop-shadow(0 0 5px rgba(119,222,255,.62));transform-origin:center;transition:transform .4s}
.wind-glyph i{position:absolute;left:1px;height:2px;border-radius:9px;background:linear-gradient(90deg,transparent,#9ceeff 38%,#dffcff);animation:windFlow 1.25s linear infinite}
.wind-glyph i:nth-child(1){top:4px;width:23px}.wind-glyph i:nth-child(2){top:9px;width:18px;animation-delay:-.42s}.wind-glyph i:nth-child(3){top:14px;width:26px;animation-delay:-.78s}
.weather-strip[data-wind="calm"] .wind-glyph i{animation-duration:3.2s;opacity:.5}
.weather-strip[data-wind="strong"] .wind-glyph i{animation-duration:.58s}
.weather-source{font-size:6px;letter-spacing:.14em;font-weight:950;color:#63efbd;text-shadow:0 0 8px rgba(70,240,177,.52);align-self:flex-start;margin-top:6px}
.season-layer{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.season-layer .autumn-leaf{position:absolute;top:-14px;font-size:10px;opacity:.75;filter:drop-shadow(0 0 4px rgba(255,169,60,.35));animation:leafDrift linear infinite}
.season-layer .autumn-leaf:nth-child(1){left:12%;animation-duration:8.5s;animation-delay:-2s}.season-layer .autumn-leaf:nth-child(2){left:31%;animation-duration:10.5s;animation-delay:-7s;font-size:8px}.season-layer .autumn-leaf:nth-child(3){left:55%;animation-duration:9.2s;animation-delay:-4s}.season-layer .autumn-leaf:nth-child(4){left:75%;animation-duration:11s;animation-delay:-8s;font-size:9px}.season-layer .autumn-leaf:nth-child(5){left:91%;animation-duration:8.8s;animation-delay:-5s;font-size:7px}
@keyframes weatherSweep{0%,72%,100%{transform:translateX(-110%)}84%{transform:translateX(110%)}}
@keyframes sunPulse{0%,100%{transform:scale(.94) rotate(-4deg)}50%{transform:scale(1.06) rotate(4deg)}}
@keyframes moonFloat{0%,100%{transform:translateY(1px)}50%{transform:translateY(-2px)}}
@keyframes rainFall{to{transform:translate(4px,11px)}}
@keyframes snowFall{0%{transform:translateY(-3px);opacity:.2}50%{opacity:1}100%{transform:translateY(10px);opacity:.1}}
@keyframes lightning{0%,91%,95%,100%{opacity:0}92%,94%{opacity:1}}
@keyframes windFlow{0%{transform:translateX(-4px);opacity:.25}45%{opacity:1}100%{transform:translateX(4px);opacity:.3}}
@keyframes leafDrift{0%{transform:translate3d(0,-8px,0) rotate(0deg);opacity:0}12%{opacity:.72}55%{transform:translate3d(11px,26px,0) rotate(150deg)}100%{transform:translate3d(-8px,58px,0) rotate(360deg);opacity:0}}

@media(max-width:980px){
  .weather-strip{margin-left:12px;min-width:282px;gap:8px;padding-left:6px;padding-right:8px}
  .weather-scene{width:46px;flex-basis:46px}.weather-temp{min-width:54px}.weather-temp strong{font-size:17px}
  .weather-source{display:none}.weather-humidity,.weather-wind{gap:4px}
}
@media(max-width:760px){
  .topbar{gap:5px;padding-left:8px;padding-right:7px}
  .brand{margin-left:8px;gap:7px;flex:0 0 auto}.brand-mark{width:26px;height:26px;transform:scale(.9)}
  .weather-strip{margin-left:4px;min-width:0;max-width:none;flex:1 1 auto;height:40px;gap:6px;padding:3px 6px}
  .weather-scene{width:40px;height:34px;flex-basis:40px}.sky-orb{font-size:22px;width:27px;height:27px}.sky-cloud{transform:scale(.86);transform-origin:right bottom}
  .weather-temp{min-width:45px;padding:0 3px}.weather-temp strong{font-size:15px}.weather-temp small{font-size:8px}
  .weather-humidity strong,.weather-wind strong{font-size:10px}.humidity-drop{width:8px;height:8px;flex-basis:8px}
  .wind-glyph{width:21px}.wind-glyph i:nth-child(1){width:18px}.wind-glyph i:nth-child(2){width:14px}.wind-glyph i:nth-child(3){width:20px}.weather-wind small{display:none}
  .city-pill{margin-left:3px;flex:0 0 auto;padding:7px 7px}.city-pill select{max-width:92px}.topbar .icon-btn{margin-left:2px}
}
@media(max-width:520px){
  .brand>span:last-child{display:none}.brand{margin-left:2px}.weather-strip{gap:4px;padding:2px 4px}
  .weather-scene{width:36px;flex-basis:36px}.weather-temp{min-width:42px}.weather-humidity{gap:3px}.weather-wind{gap:2px}.wind-glyph{width:18px}
  .city-pill{gap:4px;padding:7px 5px}.city-pill select{max-width:77px;font-size:10px}.live-dot{width:5px;height:5px}
}
@media(max-width:390px){
  .weather-strip{justify-content:space-evenly;gap:3px}.weather-scene{width:32px;flex-basis:32px}.weather-temp{min-width:38px}.wind-glyph{display:none}.city-pill select{max-width:66px}
}
@media(prefers-reduced-motion:reduce){
  .weather-strip::after,.sky-orb,.sky-precip::before,.sky-lightning,.wind-glyph i,.season-layer .autumn-leaf{animation:none!important}
}

/* v4.35 · alertes meteorològiques oficials CAP + Noruega */
.weather-alert-badge{position:relative;width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border:1px solid rgba(255,91,91,.82);border-radius:9px;background:linear-gradient(145deg,rgba(122,0,8,.9),rgba(247,32,32,.88));color:#fff;cursor:pointer;box-shadow:0 0 9px rgba(255,35,45,.86),0 0 23px rgba(255,15,31,.38),inset 0 0 10px rgba(255,255,255,.13);animation:alertBadgePulse 1.5s ease-in-out infinite;z-index:5}
.weather-alert-badge[hidden]{display:none!important}.weather-alert-badge>span{font-size:17px;font-weight:1000;line-height:1;text-shadow:0 0 7px #fff}.weather-alert-badge>b{position:absolute;right:-5px;top:-6px;min-width:15px;height:15px;padding:0 3px;border-radius:9px;display:grid;place-items:center;background:#fff;color:#b4000d;font-size:8px;font-weight:1000;border:1px solid #ff6a73;box-shadow:0 0 10px rgba(255,255,255,.65)}
.weather-strip.has-alert{border-color:rgba(255,60,72,.62);box-shadow:0 0 0 1px rgba(255,34,47,.12),0 8px 28px rgba(0,0,0,.25),0 0 25px rgba(255,26,41,.16)}
.weather-alert-overlay{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 35%,rgba(138,0,12,.26),rgba(3,5,10,.82) 55%,rgba(0,0,0,.94));backdrop-filter:blur(13px) saturate(1.15);-webkit-backdrop-filter:blur(13px) saturate(1.15);animation:alertOverlayIn .24s ease-out}
.weather-alert-overlay[hidden]{display:none!important}.weather-alert-dialog{position:relative;width:min(760px,100%);max-height:min(86vh,820px);overflow:hidden;border:1px solid rgba(255,79,90,.66);border-radius:22px;background:linear-gradient(160deg,rgba(57,4,10,.97),rgba(18,7,12,.98) 44%,rgba(8,10,16,.99));box-shadow:0 28px 90px rgba(0,0,0,.7),0 0 38px rgba(255,20,39,.27),inset 0 0 34px rgba(255,36,49,.05);color:#fff}
.weather-alert-glow{pointer-events:none;position:absolute;inset:-30%;background:radial-gradient(circle at 20% 0%,rgba(255,60,68,.24),transparent 28%),radial-gradient(circle at 90% 90%,rgba(255,0,25,.12),transparent 35%);animation:alertGlow 3.8s ease-in-out infinite;z-index:0}.weather-alert-head,.weather-alert-body,.weather-alert-footer{position:relative;z-index:1}
.weather-alert-head{display:flex;gap:14px;align-items:flex-start;padding:18px 20px 15px;border-bottom:1px solid rgba(255,104,111,.19);background:linear-gradient(90deg,rgba(255,33,46,.12),transparent)}.weather-alert-symbol{width:48px;height:48px;flex:0 0 48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#ff3342,#8e000b);font-size:29px;font-weight:1000;border:1px solid rgba(255,205,208,.55);box-shadow:0 0 18px rgba(255,42,55,.65),0 0 42px rgba(255,13,30,.25);text-shadow:0 0 8px #fff}.weather-alert-heading{min-width:0;flex:1}.weather-alert-kicker{display:block;font-size:9px;letter-spacing:.17em;font-weight:1000;color:#ff9ba1;text-shadow:0 0 10px rgba(255,70,82,.55);margin-bottom:4px}.weather-alert-heading h2{margin:0;font-size:clamp(20px,4vw,30px);line-height:1.08;letter-spacing:-.035em}.weather-alert-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.weather-alert-pills span{padding:5px 8px;border-radius:999px;border:1px solid rgba(255,125,132,.28);background:rgba(255,255,255,.06);font-size:8px;letter-spacing:.08em;font-weight:1000;text-transform:uppercase}.weather-alert-close{width:38px;height:38px;flex:0 0 38px;border-radius:12px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);color:#fff;font-size:25px;line-height:1;cursor:pointer}.weather-alert-close:hover{background:rgba(255,80,89,.18)}
.weather-alert-body{padding:16px 20px 18px;overflow:auto;max-height:calc(min(86vh,820px) - 178px);scrollbar-width:thin;scrollbar-color:#8e2630 transparent}.weather-alert-headline{font-size:14px;line-height:1.48;font-weight:750;color:#ffd9db;margin:0 0 14px}.weather-alert-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.weather-alert-grid>div{padding:10px 11px;border:1px solid rgba(255,105,113,.13);border-radius:12px;background:rgba(255,255,255,.035)}.weather-alert-grid span{display:block;font-size:7px;letter-spacing:.12em;font-weight:950;color:#d98d93;margin-bottom:4px}.weather-alert-grid strong{display:block;font-size:11px;line-height:1.36;color:#fff;white-space:normal}.weather-alert-section{margin-top:12px;padding:12px 13px;border-radius:13px;background:rgba(255,255,255,.035);border-left:3px solid rgba(255,77,88,.6)}.weather-alert-section h3{margin:0 0 7px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#ff9aa0}.weather-alert-section p{margin:0;white-space:pre-line;font-size:12px;line-height:1.58;color:#f0e7e8}.weather-alert-instructions{background:rgba(255,39,50,.08);border-left-color:#ff3543}.weather-alert-note{border-left-color:#b57a7f}.weather-alert-contact{margin-top:12px;font-size:10px;line-height:1.45;color:#caaeb0}
.weather-alert-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid rgba(255,104,111,.17);background:rgba(0,0,0,.18)}.weather-alert-source span{display:block;font-size:8px;font-weight:1000;letter-spacing:.12em;color:#ff8e96}.weather-alert-source small{display:block;margin-top:2px;font-size:8px;color:#a9888b}.weather-alert-actions{display:flex;align-items:center;gap:7px}.weather-alert-actions button{width:30px;height:30px;border-radius:9px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);color:#fff;font-size:20px;cursor:pointer}.weather-alert-actions button:disabled{opacity:.25;cursor:default}.weather-alert-actions span{min-width:34px;text-align:center;font-size:8px;font-weight:900;color:#d7c1c3}.weather-alert-actions a{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:9px;border:1px solid rgba(255,94,103,.34);background:rgba(255,37,50,.10);color:#ffd9dc;text-decoration:none;font-size:9px;font-weight:900}.weather-alert-dialog[data-severity="Extreme"]{border-color:#ff2636;box-shadow:0 28px 90px rgba(0,0,0,.76),0 0 42px rgba(255,0,24,.42)}.weather-alert-dialog[data-severity="Severe"]{border-color:#ff5260}.weather-alert-dialog[data-severity="Moderate"]{border-color:#ff7e52}.weather-alert-dialog[data-severity="Minor"]{border-color:#d9656e}
@keyframes alertBadgePulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.07);filter:brightness(1.25)}}@keyframes alertOverlayIn{from{opacity:0}to{opacity:1}}@keyframes alertGlow{0%,100%{transform:translate3d(-1%,0,0);opacity:.72}50%{transform:translate3d(2%,1%,0);opacity:1}}
@media(max-width:620px){.weather-alert-dialog{border-radius:18px;max-height:91vh}.weather-alert-head{padding:14px 14px 12px;gap:10px}.weather-alert-symbol{width:42px;height:42px;flex-basis:42px}.weather-alert-body{padding:13px 14px 15px;max-height:calc(91vh - 170px)}.weather-alert-grid{grid-template-columns:1fr}.weather-alert-footer{padding:10px 12px;align-items:flex-end}.weather-alert-source small{max-width:150px}.weather-alert-actions{gap:5px}.weather-alert-actions a{padding:0 8px}.weather-alert-badge{width:24px;height:24px;flex-basis:24px;border-radius:8px}.weather-alert-badge>span{font-size:14px}}
@media(prefers-reduced-motion:reduce){.weather-alert-badge,.weather-alert-glow{animation:none!important}}


/* v4.70 · valoracions globals + compartir */
.route-social-panel{margin:10px 0 12px}
.route-social-actions{display:flex;align-items:stretch;gap:7px;min-width:0}
.route-social-actions.compact{padding:8px 10px 10px;border-top:1px solid rgba(145,187,255,.12);background:rgba(2,10,20,.38)}
.route-vote-total,.route-vote-action,.route-share-action{min-height:38px;border-radius:11px;border:1px solid rgba(137,185,238,.18);background:rgba(7,18,33,.72);color:#eaf5ff;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 9px}
.route-vote-total{flex:0 0 auto;flex-direction:column;gap:0;min-width:54px;color:#9fc7ef}
.route-vote-total b{font-size:12px;line-height:1.05;color:#fff}
.route-vote-total small{font-size:7px;letter-spacing:.09em;text-transform:uppercase}
.route-vote-action,.route-share-action{cursor:pointer;transition:.18s;flex:1 1 0;min-width:0}
.route-vote-action span,.route-share-action span{font-size:14px;line-height:1}
.route-vote-action b{font-size:10px;font-variant-numeric:tabular-nums}
.route-vote-action small,.route-share-action small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.route-vote-action:hover,.route-share-action:hover{transform:translateY(-1px);border-color:rgba(99,181,255,.5);background:rgba(18,48,82,.82)}
.route-vote-action.like.active{border-color:rgba(74,224,158,.72);background:rgba(31,141,94,.28);box-shadow:0 0 20px rgba(45,215,143,.12)}
.route-vote-action.dislike.active{border-color:rgba(255,124,138,.72);background:rgba(165,55,68,.25);box-shadow:0 0 20px rgba(255,90,112,.1)}
.route-vote-action:disabled{opacity:.55;cursor:wait;transform:none}
.route-share-action{flex:0 1 92px;border-color:rgba(137,145,255,.28);background:linear-gradient(135deg,rgba(49,75,155,.34),rgba(95,55,160,.28))}
.route-social-panel .route-social-actions{padding:0}
.route-social-panel .route-vote-total,.route-social-panel .route-vote-action,.route-social-panel .route-share-action{background:rgba(255,255,255,.045);border-color:rgba(150,197,255,.18)}
@media(max-width:760px){
  .route-choice-card{min-height:164px}
  .route-choice-main{min-height:118px}
  .route-choice-arrow{bottom:58px}
  .route-social-actions{gap:5px}
  .route-social-actions.compact{padding:7px 7px 8px}
  .route-vote-total{min-width:46px;padding:5px 6px}
  .route-vote-action,.route-share-action{padding:6px 7px;min-height:36px}
  .route-vote-action small,.route-share-action small{display:none}
  .route-share-action{flex:0 0 42px}
}


/* v4.72 · puntuació +/- i controls blue glass */
.route-social-panel{margin:10px 0 12px}
.route-social-actions{display:flex;align-items:stretch;gap:8px;min-width:0}
.route-social-actions.compact{padding:8px 10px 10px;border-top:1px solid rgba(139,205,255,.20);background:linear-gradient(180deg,rgba(6,35,69,.12),rgba(7,20,45,.08));backdrop-filter:blur(14px) saturate(1.35);-webkit-backdrop-filter:blur(14px) saturate(1.35)}
.route-vote-total,.route-vote-action,.route-share-action{position:relative;overflow:hidden;min-height:40px;border-radius:13px;border:1px solid rgba(139,210,255,.38);background:linear-gradient(145deg,rgba(69,165,255,.16),rgba(8,57,120,.11));color:#eef9ff;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 8px 24px rgba(0,40,95,.14);backdrop-filter:blur(17px) saturate(1.5);-webkit-backdrop-filter:blur(17px) saturate(1.5)}
.route-vote-total::before,.route-vote-action::before,.route-share-action::before{content:"";position:absolute;left:8%;right:8%;top:1px;height:42%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.17),rgba(255,255,255,0));pointer-events:none}
.route-vote-total{flex:0 0 auto;flex-direction:column;gap:0;min-width:62px;color:#bfe5ff}
.route-vote-total b{font-size:14px;line-height:1.05;color:#fff;text-shadow:0 0 13px rgba(93,193,255,.75);font-variant-numeric:tabular-nums}
.route-vote-total small{font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:#a9d8ff}
.route-vote-action,.route-share-action{cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;flex:1 1 0;min-width:0;-webkit-tap-highlight-color:transparent}
.route-vote-action span,.route-share-action span{position:relative;z-index:1;font-size:14px;line-height:1}
.route-vote-action b{position:relative;z-index:1;font-size:10px;font-variant-numeric:tabular-nums;color:#eaf7ff}
.route-vote-action small,.route-share-action small{position:relative;z-index:1;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#d8efff}
.route-vote-action:hover,.route-share-action:hover{transform:translateY(-1px);border-color:rgba(167,225,255,.72);background:linear-gradient(145deg,rgba(74,175,255,.24),rgba(17,76,153,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 28px rgba(0,88,190,.18),0 0 20px rgba(63,164,255,.12)}
.route-vote-action.like.active,.route-vote-action.dislike.active,.route-share-action:active{border-color:rgba(176,230,255,.88);background:linear-gradient(145deg,rgba(75,185,255,.30),rgba(22,96,184,.23));box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 0 0 1px rgba(80,174,255,.10),0 0 24px rgba(61,164,255,.24)}
.route-vote-action.like.active span,.route-vote-action.dislike.active span{filter:drop-shadow(0 0 7px rgba(135,215,255,.9))}
.route-vote-action:disabled{opacity:.68;cursor:wait;transform:none}
.route-share-action{flex:0 1 96px}
.route-social-panel .route-social-actions{padding:0}
.route-social-panel .route-vote-total,.route-social-panel .route-vote-action,.route-social-panel .route-share-action{background:linear-gradient(145deg,rgba(72,170,255,.14),rgba(7,55,116,.10));border-color:rgba(143,210,255,.34)}
@media(max-width:760px){
  .route-social-actions{gap:5px}
  .route-social-actions.compact{padding:7px 7px 8px}
  .route-vote-total{min-width:52px;padding:5px 7px}
  .route-vote-action,.route-share-action{padding:6px 7px;min-height:38px}
  .route-vote-action small,.route-share-action small{display:none}
  .route-share-action{flex:0 0 44px}
}
.route-vote-action small strong{font-size:8px;color:#8fd4ff;font-weight:950;text-shadow:0 0 10px rgba(82,181,255,.42)}
.route-vote-total small [data-vote-total]{font-weight:900;color:#dff4ff}

/* v4.73 · estat de sincronització del vot */
.vote-sync-dot{display:inline-block;width:5px;height:5px;margin-left:4px;border-radius:50%;background:rgba(120,220,255,.78);box-shadow:0 0 8px rgba(85,190,255,.55);vertical-align:middle}
.vote-sync-dot.pending{background:rgba(126,190,255,.42);box-shadow:0 0 0 1px rgba(152,211,255,.48),0 0 10px rgba(65,150,255,.28);animation:voteSyncPulse 1.4s ease-in-out infinite}
@keyframes voteSyncPulse{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}


/* v4.74 · controls socials només dins la ruta · blue glass real */
.route-choice-card .route-social-actions{display:none!important}
.route-social-panel{margin:12px 0 14px;padding:0}
.route-social-panel .route-social-actions{display:flex;gap:9px;align-items:stretch;padding:0;background:transparent;border:0}
.route-social-panel .route-vote-total,
.route-social-panel .route-vote-action,
.route-social-panel .route-share-action{
  position:relative;overflow:hidden;min-height:44px;border-radius:15px;
  border:1px solid rgba(116,205,255,.48)!important;
  background:linear-gradient(145deg,rgba(49,153,255,.19),rgba(5,45,99,.16))!important;
  color:#dff5ff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(68,156,255,.10),0 8px 24px rgba(0,52,120,.20),0 0 18px rgba(58,164,255,.10)!important;
  backdrop-filter:blur(20px) saturate(1.65);-webkit-backdrop-filter:blur(20px) saturate(1.65);
}
.route-social-panel .route-vote-total::before,
.route-social-panel .route-vote-action::before,
.route-social-panel .route-share-action::before{
  content:"";position:absolute;left:7%;right:7%;top:1px;height:46%;border-radius:999px;
  background:linear-gradient(180deg,rgba(227,247,255,.25),rgba(132,210,255,.05),transparent);pointer-events:none
}
.route-social-panel .route-vote-action,
.route-social-panel .route-share-action{
  -webkit-appearance:none;appearance:none;outline:none;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}
.route-social-panel .route-vote-action:hover,
.route-social-panel .route-vote-action:focus-visible,
.route-social-panel .route-share-action:hover,
.route-social-panel .route-share-action:focus-visible{
  transform:translateY(-1px);border-color:rgba(174,229,255,.88)!important;
  background:linear-gradient(145deg,rgba(67,174,255,.28),rgba(9,70,145,.23))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 10px 30px rgba(0,87,190,.25),0 0 26px rgba(68,177,255,.28)!important
}
.route-social-panel .route-vote-action.active{
  border-color:rgba(190,236,255,.98)!important;
  background:linear-gradient(145deg,rgba(74,188,255,.36),rgba(9,87,179,.28))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 0 0 1px rgba(91,190,255,.18),0 0 20px rgba(75,181,255,.42),0 0 42px rgba(39,137,255,.20)!important
}
.route-vote-icon,.route-share-icon{position:relative;z-index:1;width:22px;height:22px;display:grid;place-items:center;color:#78cfff;filter:drop-shadow(0 0 6px rgba(75,185,255,.78));flex:0 0 22px}
.route-vote-icon svg,.route-share-icon svg{width:20px;height:20px;display:block;fill:currentColor}
.route-vote-action.active .route-vote-icon{color:#c9f0ff;filter:drop-shadow(0 0 5px rgba(194,239,255,1)) drop-shadow(0 0 12px rgba(65,179,255,.95))}
.route-share-action .route-share-icon{color:#8ed8ff}
.route-social-panel .route-vote-action small,.route-social-panel .route-share-action small{color:#d9f1ff!important;text-shadow:0 0 9px rgba(68,176,255,.20)}
.route-social-panel .route-vote-action small strong{color:#8ed8ff!important;text-shadow:0 0 10px rgba(82,181,255,.52)}
.route-social-panel .route-vote-total b{color:#f4fbff!important;text-shadow:0 0 8px rgba(125,214,255,.88),0 0 18px rgba(42,151,255,.45)}
.route-social-panel .route-vote-total small{color:#a8dcff!important}
@media(max-width:520px){
  .route-social-panel .route-social-actions{gap:6px}
  .route-social-panel .route-vote-total{min-width:58px}
  .route-social-panel .route-vote-action,.route-social-panel .route-share-action{min-height:42px;padding:6px 8px}
  .route-social-panel .route-vote-action small,.route-social-panel .route-share-action small{display:block;font-size:8px}
  .route-vote-icon,.route-share-icon{width:20px;height:20px;flex-basis:20px}
  .route-vote-icon svg,.route-share-icon svg{width:18px;height:18px}
}


/* v4.76 · icones vectorials futuristes sense text visible */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.route-social-panel .route-vote-action,
.route-social-panel .route-share-action{justify-content:center!important;gap:0!important;min-width:58px!important;padding:0 10px!important}
.route-social-panel .route-vote-action small,
.route-social-panel .route-share-action small{display:none!important}
.route-vote-icon,.route-share-icon{position:relative;z-index:1;width:28px!important;height:28px!important;display:grid!important;place-items:center!important;flex:0 0 28px!important;color:#97dcff!important;filter:drop-shadow(0 0 4px rgba(171,231,255,.95)) drop-shadow(0 0 11px rgba(62,176,255,.60))}
.route-vote-icon::after,.route-share-icon::after{content:"";position:absolute;inset:-5px;border-radius:999px;background:radial-gradient(circle,rgba(93,190,255,.22),rgba(93,190,255,0) 70%);opacity:.9;z-index:-1;pointer-events:none}
.route-vote-icon svg,.route-share-icon svg{display:block;width:24px!important;height:24px!important}
.route-vote-icon svg{fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.route-share-icon svg{fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.route-social-panel .route-vote-action{color:#dff7ff!important}
.route-social-panel .route-vote-action.like .route-vote-icon,
.route-social-panel .route-vote-action.dislike .route-vote-icon{transform:translateZ(0)}
.route-social-panel .route-vote-action.active .route-vote-icon,
.route-social-panel .route-share-action:hover .route-share-icon,
.route-social-panel .route-share-action:focus-visible .route-share-icon{color:#f7fdff!important;filter:drop-shadow(0 0 5px rgba(235,250,255,1)) drop-shadow(0 0 13px rgba(80,192,255,.98)) drop-shadow(0 0 28px rgba(45,148,255,.55))}
.route-social-panel .route-vote-action.active{border-color:rgba(207,242,255,.98)!important;background:linear-gradient(145deg,rgba(88,198,255,.36),rgba(8,83,174,.26))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 0 0 1px rgba(120,205,255,.22),0 0 22px rgba(92,193,255,.42),0 0 46px rgba(22,126,255,.22)!important}
.route-social-panel .route-vote-action.active::after,.route-social-panel .route-share-action:hover::after,.route-social-panel .route-share-action:focus-visible::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 24px rgba(93,192,255,.24) inset;pointer-events:none}
.route-social-panel .route-vote-total{min-width:68px!important}
.route-social-panel .route-share-action{flex:0 0 58px!important}
@media(max-width:520px){
  .route-social-panel .route-vote-action,
  .route-social-panel .route-share-action{min-width:50px!important;padding:0 8px!important}
  .route-vote-icon,.route-share-icon{width:24px!important;height:24px!important;flex-basis:24px!important}
  .route-vote-icon svg,.route-share-icon svg{width:22px!important;height:22px!important}
  .route-social-panel .route-share-action{flex:0 0 50px!important}
}


/* v4.78 · radar d'esdeveniments d'avui a la ruta */
.panel-head-actions{align-items:center}
.route-event-btn{position:relative;width:42px;height:42px;flex:0 0 42px;border-radius:14px;border:1px solid rgba(104,203,255,.48);background:linear-gradient(145deg,rgba(48,162,255,.20),rgba(3,48,105,.20));color:#a9e4ff;display:grid;place-items:center;cursor:pointer;overflow:visible;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 22px rgba(0,48,112,.20),0 0 14px rgba(56,167,255,.12);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);transition:.18s}
.route-event-btn[hidden]{display:none!important}.route-event-btn-icon{width:24px;height:24px;display:grid;place-items:center;filter:drop-shadow(0 0 6px rgba(91,194,255,.72))}.route-event-btn svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.route-event-btn>b{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:10px;display:grid;place-items:center;background:#dff7ff;color:#07599e;border:1px solid rgba(255,255,255,.8);font-size:8px;font-weight:1000;box-shadow:0 0 12px rgba(135,222,255,.8)}
.route-event-btn.has-events{color:#ecfbff;border-color:rgba(181,236,255,.96);background:linear-gradient(145deg,rgba(57,183,255,.34),rgba(9,82,170,.28));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 1px rgba(96,194,255,.16),0 0 19px rgba(75,186,255,.58),0 0 44px rgba(27,132,255,.26);animation:routeEventBlink 1.35s ease-in-out infinite}
.route-event-btn.has-events .route-event-btn-icon{filter:drop-shadow(0 0 5px rgba(235,251,255,1)) drop-shadow(0 0 14px rgba(72,190,255,.98))}
@keyframes routeEventBlink{0%,100%{transform:scale(1);filter:brightness(1);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 14px rgba(75,186,255,.35),0 0 30px rgba(27,132,255,.14)}50%{transform:scale(1.055);filter:brightness(1.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 25px rgba(111,211,255,.85),0 0 58px rgba(42,145,255,.36)}}
.route-event-overlay{position:fixed;inset:0;z-index:5200;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 28%,rgba(22,125,224,.22),rgba(3,8,16,.82) 55%,rgba(0,0,0,.94));backdrop-filter:blur(15px) saturate(1.3);-webkit-backdrop-filter:blur(15px) saturate(1.3)}
.route-event-overlay[hidden]{display:none!important}.route-event-dialog{position:relative;width:min(760px,100%);max-height:min(88vh,840px);overflow:hidden;border:1px solid rgba(119,207,255,.54);border-radius:23px;background:linear-gradient(155deg,rgba(8,31,59,.97),rgba(6,19,38,.985) 48%,rgba(5,10,20,.99));box-shadow:0 28px 90px rgba(0,0,0,.72),0 0 44px rgba(36,146,255,.23),inset 0 0 38px rgba(64,174,255,.045);color:#eefaff}
.route-event-ambient{pointer-events:none;position:absolute;inset:-35%;background:radial-gradient(circle at 18% 4%,rgba(83,195,255,.20),transparent 28%),radial-gradient(circle at 86% 84%,rgba(22,101,255,.12),transparent 38%);animation:eventAmbient 4.2s ease-in-out infinite}@keyframes eventAmbient{50%{transform:translate3d(1.5%,-1%,0) scale(1.04)}}
.route-event-dialog-head,.route-event-list,.route-event-footer{position:relative;z-index:1}.route-event-dialog-head{display:flex;gap:13px;align-items:flex-start;padding:18px 20px 15px;border-bottom:1px solid rgba(128,211,255,.16);background:linear-gradient(90deg,rgba(45,159,255,.10),transparent)}
.route-event-dialog-icon{width:48px;height:48px;flex:0 0 48px;border-radius:15px;display:grid;place-items:center;border:1px solid rgba(153,224,255,.58);background:linear-gradient(145deg,rgba(68,183,255,.30),rgba(8,65,139,.26));color:#dff8ff;box-shadow:0 0 18px rgba(71,184,255,.52),0 0 42px rgba(27,130,255,.20)}.route-event-dialog-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px rgba(145,225,255,.75))}
.route-event-dialog-heading{flex:1;min-width:0}.route-event-dialog-heading>span{display:block;font-size:9px;letter-spacing:.17em;font-weight:1000;color:#8edcff;text-shadow:0 0 10px rgba(65,179,255,.52);margin-bottom:4px}.route-event-dialog-heading h2{margin:0;font-size:clamp(20px,4vw,30px);line-height:1.08;letter-spacing:-.035em}.route-event-dialog-heading p{margin:6px 0 0;font-size:10px;line-height:1.42;color:#a8c9df}.route-event-close{width:38px;height:38px;flex:0 0 38px;border-radius:12px;border:1px solid rgba(143,211,255,.18);background:rgba(126,202,255,.06);color:#eaf9ff;font-size:25px;cursor:pointer}
.route-event-list{padding:15px 18px 18px;overflow:auto;max-height:calc(min(88vh,840px) - 160px);display:grid;gap:10px;scrollbar-width:thin;scrollbar-color:#2b7eb2 transparent}.route-event-card{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:12px;border:1px solid rgba(126,205,255,.14);border-radius:15px;background:linear-gradient(145deg,rgba(91,185,255,.075),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.route-event-card-time{border-right:1px solid rgba(116,202,255,.13);padding-right:10px}.route-event-card-time strong{display:block;font-size:18px;color:#e9faff;text-shadow:0 0 11px rgba(73,186,255,.48)}.route-event-card-time span{display:block;margin-top:5px;font-size:7px;line-height:1.35;text-transform:uppercase;letter-spacing:.09em;font-weight:950;color:#76c6ef}.route-event-card-copy h3{margin:0;font-size:14px;line-height:1.25;color:#fff}.route-event-venue{margin:5px 0 0;font-size:9px;color:#94c7e4}.route-event-desc{margin:8px 0 0;font-size:10px;line-height:1.5;color:#c9dce8}.route-event-meta{margin-top:9px;display:flex;align-items:center;justify-content:space-between;gap:10px}.route-event-meta span{font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:#6eaccf;font-weight:900}.route-event-meta a{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:9px;border:1px solid rgba(101,198,255,.30);background:rgba(39,145,231,.10);color:#bfe9ff;text-decoration:none;font-size:8px;font-weight:900}.route-event-footer{padding:11px 18px 13px;border-top:1px solid rgba(116,202,255,.13);background:rgba(0,0,0,.15)}.route-event-footer span{display:block;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#82c9ef;font-weight:950}.route-event-footer small{display:block;margin-top:3px;font-size:8px;color:#708da0}
@media(max-width:620px){.route-event-dialog{border-radius:18px;max-height:91vh}.route-event-dialog-head{padding:14px}.route-event-list{padding:12px;max-height:calc(91vh - 158px)}.route-event-card{grid-template-columns:62px 1fr;gap:9px;padding:10px}.route-event-card-time strong{font-size:15px}.panel-head-actions{gap:6px}.route-event-btn{width:38px;height:38px;flex-basis:38px;border-radius:12px}.route-event-btn-icon{width:22px;height:22px}.route-event-btn svg{width:21px;height:21px}}


/* v4.87 · intro cinematogràfica + mapamundi d’imatge estàtica gran sense API */
.world-intro{position:fixed;inset:0;z-index:95000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 48%,#0b2c50 0,#061525 34%,#030a12 73%,#010407 100%);color:#eefaff;isolation:isolate;transition:opacity .48s ease,visibility .48s ease}
.world-intro[hidden]{display:none!important}.world-intro.leaving{opacity:0;visibility:hidden;pointer-events:none}
.world-intro-grid{position:absolute;inset:-15%;background-image:linear-gradient(rgba(86,180,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(86,180,255,.055) 1px,transparent 1px);background-size:42px 42px;transform:perspective(700px) rotateX(58deg) translateY(24%);transform-origin:center bottom;mask-image:linear-gradient(to bottom,transparent 2%,#000 38%,#000 76%,transparent 100%);animation:worldGridDrift 13s linear infinite}
.world-intro-aurora{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(85px);opacity:.15;mix-blend-mode:screen;pointer-events:none}.world-intro-aurora-a{background:#168cff;left:-20vw;top:-22vw;animation:worldAurora 8s ease-in-out infinite alternate}.world-intro-aurora-b{background:#42e4ff;right:-24vw;bottom:-26vw;animation:worldAurora 10s ease-in-out 1s infinite alternate-reverse}
.world-intro-shell{position:relative;width:min(660px,86vw);height:min(270px,44vh);border-radius:28px;border:1px solid rgba(118,212,255,.42);background:linear-gradient(145deg,rgba(24,70,112,.36),rgba(4,21,40,.62));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 0 1px rgba(75,174,255,.05),0 0 48px rgba(42,153,255,.26),0 32px 90px rgba(0,0,0,.48);backdrop-filter:blur(26px) saturate(1.55);-webkit-backdrop-filter:blur(26px) saturate(1.55);overflow:hidden;animation:worldShellBirth 1.05s cubic-bezier(.17,.84,.24,1) both;transition:width .9s cubic-bezier(.16,.84,.24,1),height .9s cubic-bezier(.16,.84,.24,1),border-radius .7s ease,transform .5s ease}
.world-intro-shell::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 16%,rgba(191,237,255,.16) 43%,transparent 61%);transform:translateX(-115%);animation:worldGlassSweep 2.3s ease .6s infinite;pointer-events:none;z-index:5}
.world-intro.map-ready .world-intro-shell{width:min(1420px,96vw);height:min(900px,92dvh);border-radius:24px}
.world-logo-stage{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:22px;transition:opacity .48s ease,transform .58s ease;z-index:4}.world-intro.map-ready .world-logo-stage{opacity:0;transform:scale(.82);pointer-events:none}
.world-logo-halo{position:absolute;left:50%;top:50%;width:360px;height:210px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(84,194,255,.27),rgba(35,142,255,.08) 47%,transparent 72%);filter:blur(15px);animation:worldLogoPulse 2.4s ease-in-out infinite}
.world-logo-frame{position:relative;display:flex;align-items:center;gap:20px;padding:18px 28px;border-radius:19px;border:1px solid rgba(163,225,255,.42);background:linear-gradient(150deg,rgba(87,185,255,.13),rgba(4,31,62,.08));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 26px rgba(69,177,255,.23)}
.world-logo-symbol,.world-map-mini-mark{display:flex;align-items:flex-end;gap:5px}.world-logo-symbol i,.world-map-mini-mark i{display:block;width:6px;border-radius:6px;background:#b8edff;box-shadow:0 0 7px #dff8ff,0 0 18px #54baff}.world-logo-symbol i:nth-child(1){height:30px;transform:skew(-15deg)}.world-logo-symbol i:nth-child(2){height:42px}.world-logo-symbol i:nth-child(3){height:26px;transform:skew(15deg)}
.world-logo-type{display:flex;align-items:flex-start;gap:8px}.world-logo-type strong{font:900 clamp(29px,5vw,52px)/1 Inter,system-ui,sans-serif;letter-spacing:.04em;color:#f5fcff;text-shadow:0 0 6px #d8f6ff,0 0 18px rgba(81,188,255,.78),0 0 42px rgba(42,135,255,.45)}.world-logo-type em{font:900 11px/1 system-ui;letter-spacing:.12em;color:#8bd7ff;padding-top:4px;text-shadow:0 0 10px #59c3ff}
.world-logo-stage p{margin:0;font:800 9px/1.2 system-ui;letter-spacing:.28em;color:#8fcdf0;text-shadow:0 0 12px rgba(69,177,255,.48)}.world-logo-scan{position:absolute;left:15%;right:15%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#8de0ff,transparent);box-shadow:0 0 12px #4db9ff;animation:worldLogoScan 1.8s ease-in-out infinite}
.world-map-stage{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;opacity:0;transform:scale(.985);pointer-events:none;transition:opacity .6s ease .22s,transform .7s ease .18s}.world-intro.map-ready .world-map-stage{opacity:1;transform:none;pointer-events:auto}.world-map-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:18px 22px 14px;border-bottom:1px solid rgba(124,206,255,.18);background:linear-gradient(180deg,rgba(8,32,58,.68),rgba(4,20,38,.22));z-index:600}
.world-map-brand{display:flex;align-items:center;gap:11px}.world-map-mini-mark i{width:4px;box-shadow:0 0 6px #bdefff,0 0 13px #46b8ff}.world-map-mini-mark i:nth-child(1){height:19px}.world-map-mini-mark i:nth-child(2){height:27px}.world-map-mini-mark i:nth-child(3){height:16px}.world-map-brand>div:last-child{display:grid;gap:2px}.world-map-brand strong{font:950 15px/1 system-ui;letter-spacing:.07em;color:#f6fdff;text-shadow:0 0 12px rgba(102,205,255,.72)}.world-map-brand span{font:800 7px/1 system-ui;letter-spacing:.18em;color:#6cbbe7}
.world-map-heading{text-align:center}.world-map-heading span{display:block;font:850 7px/1.1 system-ui;letter-spacing:.26em;color:#6fc8f7;margin-bottom:4px}.world-map-heading h1{margin:0;font:850 clamp(17px,2.2vw,27px)/1.1 system-ui;letter-spacing:-.02em;color:#edfaff;text-shadow:0 0 18px rgba(70,177,255,.28)}.world-map-meta{min-width:82px;display:grid;text-align:right}.world-map-meta b{font:900 19px/1 system-ui;color:#e8f9ff;text-shadow:0 0 12px #4bbaff}.world-map-meta span{font:800 7px/1.2 system-ui;letter-spacing:.14em;text-transform:uppercase;color:#7fc8ec}
.world-map-wrap{position:relative;min-height:0;overflow:hidden;background:#03101c}.world-map-wrap::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 90px rgba(0,7,16,.72),inset 0 0 0 1px rgba(122,211,255,.09);pointer-events:none;z-index:500}.world-map-wrap #worldIntroMap{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(18,74,122,.24),rgba(2,12,22,.92) 70%);font-family:Inter,system-ui,sans-serif}.world-vector-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}.world-vector-viewport.dragging{cursor:grabbing}.world-vector-content{position:absolute;left:50%;top:50%;width:1000px;height:500px;transform-origin:center center;will-change:transform}.world-vector-svg{position:absolute;inset:0;width:100%;height:100%}.world-vector-svg .world-graticule path{fill:none;stroke:rgba(109,184,226,.16);stroke-width:1}.world-vector-svg .world-masses path{fill:rgba(42,111,180,.16);stroke:url(#worldStroke);stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}.world-vector-markers{position:absolute;inset:0}.world-vector-controls{position:absolute;right:14px;top:14px;z-index:730;display:flex;gap:8px}.world-vector-controls button{border:1px solid rgba(129,214,255,.3);border-radius:12px;min-width:40px;padding:9px 11px;background:rgba(5,28,51,.7);color:#e6f9ff;font:850 10px/1 system-ui;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 10px 26px rgba(0,0,0,.22);cursor:pointer}.world-vector-controls button:last-child{min-width:58px}.world-vector-controls button:hover,.world-vector-controls button:focus-visible{border-color:rgba(184,234,255,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 18px rgba(80,192,255,.24)}
.world-map-legend{position:absolute;left:14px;bottom:14px;z-index:700;display:grid;grid-template-columns:18px auto;column-gap:9px;align-items:center;padding:10px 12px;border-radius:13px;border:1px solid rgba(119,208,255,.27);background:rgba(5,28,51,.68);box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 10px 26px rgba(0,0,0,.26);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.world-map-pin-sample{grid-row:1/3;width:13px;height:13px;border:1px solid #a5e4ff;border-radius:3px;background:rgba(62,172,255,.28);box-shadow:0 0 8px #61c3ff,0 0 18px rgba(47,142,255,.58)}.world-map-legend b{font:900 8px/1 system-ui;letter-spacing:.13em;color:#dff6ff}.world-map-legend small{font:650 7px/1.25 system-ui;color:#8ebdd7;margin-top:3px}
.world-map-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px 14px;border-top:1px solid rgba(124,206,255,.17);background:linear-gradient(0deg,rgba(5,25,46,.76),rgba(4,19,35,.34));z-index:600}.world-map-footer>span{font:700 9px/1.35 system-ui;letter-spacing:.04em;color:#8fc4df}.world-map-footer button{border:1px solid rgba(126,211,255,.36);border-radius:12px;padding:9px 13px;background:linear-gradient(145deg,rgba(56,166,255,.18),rgba(7,59,120,.12));color:#dff7ff;font:850 9px/1 system-ui;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 18px rgba(44,153,255,.12);cursor:pointer}
.world-destination-button{position:absolute;z-index:20;transform:translate(-50%,-50%);background:transparent;border:0;padding:0;cursor:pointer}.world-destination-button:focus-visible{outline:none}.world-destination-pin{position:relative;display:flex;align-items:center;gap:6px;transform:translate(-1px,-1px);filter:drop-shadow(0 5px 10px rgba(0,0,0,.45))}.world-destination-core{width:13px;height:13px;flex:0 0 13px;border:1px solid rgba(197,238,255,.95);border-radius:3px;background:linear-gradient(145deg,rgba(121,215,255,.77),rgba(19,96,205,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.46),0 0 7px rgba(127,220,255,.95),0 0 18px rgba(42,145,255,.72);animation:worldPinBreath 2.8s ease-in-out infinite}.world-destination-label{display:block;max-width:150px;padding:4px 7px;border-radius:7px;border:1px solid rgba(117,206,255,.22);background:rgba(3,21,39,.74);color:#e8f9ff;font:800 8px/1 system-ui;letter-spacing:.02em;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 3px 12px rgba(0,0,0,.24);backdrop-filter:blur(10px)}.world-map-compact .world-destination-label{display:none}.world-destination-button:hover .world-destination-core,.world-destination-button:focus-visible .world-destination-core{transform:scale(1.22);background:#b9edff;box-shadow:0 0 7px #fff,0 0 16px #66c8ff,0 0 28px #1b89ff}
.world-intro.destination-chosen .world-intro-shell{transform:scale(.985);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 0 70px rgba(68,181,255,.42),0 32px 90px rgba(0,0,0,.5)}
@keyframes worldShellBirth{0%{opacity:0;transform:scale(.015,.025);filter:brightness(2.2)}52%{opacity:1;transform:scale(.04,1);filter:brightness(1.7)}100%{transform:scale(1);filter:brightness(1)}}@keyframes worldGlassSweep{0%,38%{transform:translateX(-120%);opacity:0}52%{opacity:1}76%,100%{transform:translateX(120%);opacity:0}}@keyframes worldLogoPulse{0%,100%{transform:translate(-50%,-50%) scale(.92);opacity:.52}50%{transform:translate(-50%,-50%) scale(1.13);opacity:1}}@keyframes worldLogoScan{0%,100%{transform:translateY(-68px);opacity:0}25%{opacity:1}75%{opacity:.8}100%{transform:translateY(72px);opacity:0}}@keyframes worldPinBreath{0%,100%{filter:brightness(.92);transform:scale(.94)}50%{filter:brightness(1.25);transform:scale(1.08)}}@keyframes worldGridDrift{to{background-position:42px 42px}}@keyframes worldAurora{to{transform:translate(8vw,5vw) scale(1.12);opacity:.23}}
@media(max-width:720px){.world-intro-shell{width:88vw;height:250px;border-radius:22px}.world-intro.map-ready .world-intro-shell{width:96vw;height:91dvh;border-radius:20px}.world-map-head{grid-template-columns:auto 1fr;gap:12px;padding:14px 14px 11px}.world-map-heading{text-align:right}.world-map-meta{display:none}.world-map-brand strong{font-size:12px}.world-map-heading h1{font-size:18px}.world-map-footer{padding:10px 12px 12px}.world-map-footer>span{display:none}.world-map-footer button{width:100%;padding:11px 12px}.world-map-legend{left:9px;bottom:9px}.world-vector-controls{right:9px;top:9px}.world-vector-controls button{min-width:36px;padding:8px 9px}.world-vector-controls button:last-child{min-width:52px}.world-logo-frame{gap:13px;padding:16px 20px}.world-logo-type strong{font-size:31px}.world-logo-symbol i{width:5px}.world-logo-stage p{font-size:7px;letter-spacing:.19em}}
@media(prefers-reduced-motion:reduce){.world-intro-shell,.world-intro-shell::before,.world-logo-halo,.world-logo-scan,.world-destination-core,.world-intro-grid,.world-intro-aurora{animation:none!important}.world-intro-shell{opacity:1;transform:none}}

body.world-intro-active{overflow:hidden!important}


/* v4.82 · llista lateral de destinacions + selecció en dos passos */
.world-map-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) 230px!important;min-height:0!important}
.world-map-canvas{position:relative;min-width:0;min-height:0;overflow:hidden;background:#03101c}
.world-map-canvas #worldIntroMap{position:absolute;inset:0}
.world-destination-list-panel{position:relative;z-index:760;min-width:0;min-height:0;display:flex;flex-direction:column;border-left:1px solid rgba(116,205,255,.18);background:linear-gradient(180deg,rgba(4,22,40,.93),rgba(2,13,25,.96));box-shadow:-18px 0 40px rgba(0,0,0,.24);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.world-destination-list-head{flex:0 0 auto;padding:13px 12px 10px;border-bottom:1px solid rgba(116,205,255,.14);display:grid;gap:4px}.world-destination-list-head b{font:900 9px/1 system-ui;letter-spacing:.16em;color:#dff7ff}.world-destination-list-head small{font:650 7px/1.35 system-ui;color:#78b9dc}
.world-destination-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:7px;scrollbar-width:thin;scrollbar-color:rgba(94,190,255,.45) transparent}
.world-destination-list::-webkit-scrollbar{width:5px}.world-destination-list::-webkit-scrollbar-thumb{background:rgba(94,190,255,.35);border-radius:999px}
.world-destination-list-item{width:100%;display:grid;grid-template-columns:16px 1fr 12px;align-items:center;gap:8px;text-align:left;border:1px solid transparent;border-radius:10px;padding:8px 8px;background:transparent;color:#b9d9ea;font:750 9px/1.18 system-ui;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.world-destination-list-item:hover,.world-destination-list-item:focus-visible{outline:none;color:#ecfbff;background:rgba(45,142,225,.10);border-color:rgba(99,194,255,.20)}.world-destination-list-item.selected{color:#fff;border-color:rgba(177,231,255,.74);background:linear-gradient(145deg,rgba(66,176,255,.24),rgba(8,64,133,.22));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 18px rgba(60,174,255,.20);transform:translateX(-2px)}
.world-list-square{width:11px;height:11px;border:1px solid rgba(184,235,255,.9);border-radius:2px;background:rgba(51,155,255,.30);box-shadow:0 0 7px rgba(107,205,255,.85),0 0 15px rgba(43,146,255,.5)}.world-destination-list-item.selected .world-list-square{background:#bdefff;box-shadow:0 0 6px #fff,0 0 14px #63c8ff,0 0 25px rgba(27,137,255,.76)}.world-destination-list-item i{font:900 15px/1 system-ui;color:#5aaedf;font-style:normal}.world-destination-list-item.selected i{color:#bfefff}
.world-destination-label{display:none!important}
.world-destination-button{width:26px!important;height:26px!important;display:grid!important;place-items:center!important;transform:translate(-50%,-50%)!important;border-radius:8px!important}
.world-destination-button .world-destination-core{display:block;width:11px!important;height:11px!important;margin:0!important;border:1px solid rgba(207,242,255,.94)!important;border-radius:2px!important;background:linear-gradient(145deg,rgba(116,214,255,.88),rgba(27,104,225,.78))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 0 8px rgba(130,222,255,.98),0 0 18px rgba(50,151,255,.72)!important;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.world-destination-button:hover .world-destination-core,.world-destination-button:focus-visible .world-destination-core{transform:scale(1.2)}
.world-destination-button.selected{z-index:80!important}.world-destination-button.selected .world-destination-core{transform:scale(1.65)!important;background:#dff8ff!important;box-shadow:0 0 5px #fff,0 0 14px #7cd7ff,0 0 31px #188cff,0 0 54px rgba(19,113,255,.62)!important;animation:worldSelectedPulse 1.15s ease-in-out infinite}
@keyframes worldSelectedPulse{0%,100%{filter:brightness(1);transform:scale(1.45)}50%{filter:brightness(1.35);transform:scale(1.8)}}
.world-vector-controls{right:14px!important}
@media(max-width:820px){.world-map-wrap{grid-template-columns:minmax(0,1fr) 168px!important}.world-destination-list-head{padding:10px 8px 8px}.world-destination-list-item{grid-template-columns:13px 1fr 9px;gap:5px;padding:7px 6px;font-size:8px}.world-list-square{width:9px;height:9px}.world-vector-controls{right:8px!important;top:8px!important}.world-map-legend{max-width:150px}}
@media(max-width:560px){.world-map-wrap{grid-template-columns:minmax(0,1fr) 138px!important}.world-destination-list-head small{display:none}.world-destination-list-item{font-size:7.5px;padding:6px 5px}.world-map-legend{display:none}.world-vector-controls button:last-child{display:none}}


/* v4.87 · mapa estàtic generat en alta resolució + noms en zoom */
.world-map-wrap #worldIntroMap{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(18,74,122,.24),rgba(2,12,22,.92) 70%);font-family:Inter,system-ui,sans-serif}
.world-vector-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}
.world-vector-content{position:absolute;left:50%;top:50%;width:1774px;height:887px;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-select:none}
.world-map-base{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 0 18px rgba(59,170,255,.12))}
.world-vector-markers{position:absolute;inset:0}
.world-destination-button{position:absolute;z-index:20;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;cursor:pointer}
.world-destination-core{display:block;width:15px;height:15px;border:1px solid rgba(207,242,255,.96);border-radius:3px;background:linear-gradient(145deg,rgba(160,226,255,.9),rgba(34,121,235,.76));box-shadow:inset 0 1px 0 rgba(255,255,255,.48),0 0 10px rgba(127,220,255,.96),0 0 22px rgba(42,145,255,.78);animation:worldPinBreath 2.8s ease-in-out infinite}
.world-destination-map-label{display:none;max-width:170px;padding:4px 8px;border-radius:8px;border:1px solid rgba(117,206,255,.24);background:rgba(3,21,39,.74);color:#ebfbff;font:800 10px/1 system-ui;letter-spacing:.02em;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 3px 12px rgba(0,0,0,.24);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
#worldIntroMap.world-map-show-labels .world-destination-map-label,.world-destination-button.selected .world-destination-map-label{display:block}
.world-destination-button:hover .world-destination-core,.world-destination-button:focus-visible .world-destination-core,.world-destination-button.selected .world-destination-core{transform:scale(1.22);background:#d5f5ff;box-shadow:0 0 9px #fff,0 0 18px #66c8ff,0 0 30px #1b89ff}
.world-destination-button.selected .world-destination-map-label{border-color:rgba(201,241,255,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 0 18px rgba(64,175,255,.22),0 3px 12px rgba(0,0,0,.24)}
@media(max-width:820px){.world-destination-map-label{font-size:9px;max-width:125px;padding:3px 6px}}
@media(max-width:560px){#worldIntroMap.world-map-show-labels .world-destination-map-label{display:none}.world-destination-button.selected .world-destination-map-label{display:block}}


/* v4.87 · selector global a peu / bicicleta + carril bici en vermell */
.route-mode-switch{display:flex;align-items:center;gap:8px;margin:-3px 0 13px;padding:6px;border-radius:14px;border:1px solid rgba(133,195,255,.12);background:rgba(255,255,255,.025)}
.route-mode-btn{height:34px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid rgba(136,195,255,.16);border-radius:10px;background:rgba(255,255,255,.03);color:#a9bdd2;cursor:pointer;font-size:10px;transition:.18s ease}
.route-mode-btn b{font-weight:850}.route-mode-line{width:19px;height:4px;border-radius:999px;box-shadow:0 0 10px currentColor}
.route-mode-btn.foot .route-mode-line{background:#1769ff;color:#1769ff}.route-mode-btn.bike .route-mode-line{background:#ff8a24;color:#ff8a24}
.route-mode-btn.foot.active{color:#eaf5ff;border-color:rgba(81,150,255,.6);background:rgba(23,105,255,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 18px rgba(23,105,255,.14)}
.route-mode-btn.bike.active{color:#fff1df;border-color:rgba(255,157,63,.62);background:rgba(255,138,36,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 18px rgba(255,138,36,.15)}
.cycle-lane-legend{margin-left:auto;display:flex;align-items:center;gap:6px;color:#ffdce2;font-size:8px;white-space:nowrap}.cycle-lane-legend[hidden]{display:none!important}.cycle-lane-legend i{width:18px;height:5px;border-radius:999px;background:#ff304f;box-shadow:0 0 8px rgba(255,48,79,.85),0 0 16px rgba(255,48,79,.42)}.cycle-lane-legend b{font-weight:850}
.route-panel.min .route-mode-switch{display:none}
@media(max-width:600px){.route-mode-switch{gap:5px}.route-mode-btn{padding:0 8px}.cycle-lane-legend b{display:none}.cycle-lane-legend{margin-left:2px}.cycle-lane-legend i{width:14px}}

/* v4.88 · selector global d'idioma + veu multilingüe ARQ Guide */
.language-pill{margin-left:7px;display:flex;align-items:center;gap:5px;min-width:96px;padding:7px 8px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);flex:0 0 auto}
.language-globe{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:950;color:#84d8ff;text-shadow:0 0 10px rgba(70,230,255,.75)}
.language-pill select{min-width:0;width:100%;max-width:92px;background:transparent;color:#edf6ff;border:0;outline:0;font-size:10px;font-weight:850;cursor:pointer}
.language-pill select option{background:#0b182b;color:#eef7ff}
.ai-orb.speaking .orb-core{animation:guideSpeakCore .78s ease-in-out infinite alternate}
.ai-orb.speaking .orb-ring{animation-duration:1.05s;box-shadow:0 0 18px rgba(70,230,255,.28)}
@keyframes guideSpeakCore{from{transform:scale(.96);filter:brightness(1)}to{transform:scale(1.08);filter:brightness(1.26)}}
@media(max-width:760px){.language-pill{margin-left:2px;min-width:58px;padding:7px 5px}.language-globe{display:none}.language-pill select{max-width:62px;font-size:9px}}
@media(max-width:520px){.language-pill{min-width:46px}.language-pill select{max-width:48px;font-size:9px}.language-pill option{font-size:12px}}
@media(max-width:390px){.language-pill{min-width:42px;padding-left:3px;padding-right:3px}.language-pill select{max-width:42px}}


/* v4.89 · cerca de destinació + selector de ciutat amb contrast alt */
.world-city-search{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) 22px;align-items:center;gap:4px;margin-top:7px;padding:4px 5px 4px 8px;border:1px solid rgba(122,211,255,.25);border-radius:11px;background:linear-gradient(145deg,rgba(5,31,55,.96),rgba(3,18,34,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 16px rgba(31,145,225,.08)}
.world-city-search:focus-within{border-color:rgba(126,216,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 19px rgba(45,169,255,.18)}
.world-city-search-icon{display:grid;place-items:center;color:#79ccf4;font-size:14px;font-weight:900;text-shadow:0 0 8px rgba(80,196,255,.48)}
.world-city-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#f2fbff;font:750 9px/1.2 system-ui;padding:5px 1px;caret-color:#69d8ff}
.world-city-search input::placeholder{color:#6f9eb8;opacity:1}
.world-city-search input::-webkit-search-cancel-button{display:none}
.world-city-search button{width:22px;height:22px;padding:0;border:0;border-radius:7px;background:transparent;color:#8ab9d1;font:800 15px/1 system-ui;cursor:pointer;opacity:0;pointer-events:none;transition:.15s ease}
.world-city-search button.visible{opacity:1;pointer-events:auto}.world-city-search button:hover{background:rgba(93,190,255,.13);color:#fff}
.world-city-search-status{min-height:10px;margin-top:1px;color:#6fb9dd;font:700 7px/1.2 system-ui;letter-spacing:.03em}
.world-destination-list-item[hidden]{display:none!important}
.world-destination-button.search-hidden{opacity:.12!important;pointer-events:none!important;filter:saturate(.25)!important}
.city-pill{background:linear-gradient(145deg,rgba(5,28,50,.98),rgba(3,17,32,.98))!important;border-color:rgba(121,196,255,.25)!important}
.city-pill select{background:#071a2d!important;color:#fff!important;color-scheme:dark!important;border:0!important;border-radius:7px!important;padding:3px 5px!important;cursor:pointer!important}
.city-pill select option,.city-pill select optgroup{background:#071a2d!important;color:#fff!important}
.city-pill select:focus{outline:1px solid rgba(104,195,255,.62)!important;outline-offset:2px}
@media(max-width:820px){.world-city-search{grid-template-columns:15px minmax(0,1fr) 20px;padding-left:6px}.world-city-search input{font-size:8px}.world-city-search-icon{font-size:12px}}
@media(max-width:560px){.world-city-search{margin-top:5px;padding:3px 4px}.world-city-search input{font-size:7.5px}.world-city-search-status{font-size:6.5px}}


/* v4.90 · català global + fly-to de destinació + crèdits */
.world-vector-content{transition:transform .78s cubic-bezier(.22,.78,.22,1)}
.world-vector-viewport.dragging .world-vector-content{transition:none}
.world-destination-button{transition:opacity .26s ease,filter .26s ease}
.world-destination-button.focus-hidden{opacity:0!important;pointer-events:none!important;filter:blur(2px) saturate(.2)!important}
#worldIntroMap.destination-focused .world-destination-button.selected .world-destination-map-label{display:block!important;font-size:11px;transform:translateX(2px);border-color:rgba(205,244,255,.82);background:rgba(2,19,36,.92);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 0 24px rgba(74,187,255,.34),0 4px 16px rgba(0,0,0,.32)}
#worldIntroMap.destination-focused .world-destination-button.selected .world-destination-core{transform:scale(1.75)!important}
.arq-site-footer{position:fixed;z-index:760;left:50%;bottom:max(7px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:6px;max-width:calc(100vw - 28px);padding:6px 10px;border:1px solid rgba(125,206,255,.16);border-radius:10px;background:rgba(3,18,33,.78);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 24px rgba(0,0,0,.24);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#8eb8cf;font:650 7px/1.2 system-ui;letter-spacing:.025em;white-space:nowrap;pointer-events:auto}
.arq-site-footer strong{color:#d8f2ff;font-weight:900}.arq-site-footer a{color:#84d3ff;text-decoration:none}.arq-site-footer a:hover,.arq-site-footer a:focus-visible{color:#fff;text-decoration:underline}.arq-site-footer-sep{opacity:.55}
@media(max-width:620px){.arq-site-footer{gap:4px;padding:5px 8px;font-size:6.4px;max-width:calc(100vw - 16px)}.arq-site-footer-sep{display:none}.arq-site-footer span,.arq-site-footer a{overflow:hidden;text-overflow:ellipsis}.arq-site-footer{white-space:normal;flex-wrap:wrap;row-gap:2px}}


/* v4.91 · ARQ Guide: pensament amb tres punts + resposta escrita caràcter a caràcter */
.guide-thinking{display:flex!important;align-items:center;gap:5px;min-width:52px;min-height:38px;padding-left:14px!important;padding-right:14px!important}
.guide-thinking span{width:6px;height:6px;border-radius:50%;background:#8cddff;box-shadow:0 0 9px rgba(98,210,255,.55);animation:guideThinkingDot 1.05s ease-in-out infinite}
.guide-thinking span:nth-child(2){animation-delay:.16s}.guide-thinking span:nth-child(3){animation-delay:.32s}
@keyframes guideThinkingDot{0%,65%,100%{transform:translateY(0) scale(.72);opacity:.35}30%{transform:translateY(-4px) scale(1.06);opacity:1}}
.guide-typing::after{content:"";display:inline-block;width:1px;height:1.05em;margin-left:2px;vertical-align:-2px;background:#9de4ff;box-shadow:0 0 7px rgba(93,210,255,.55);animation:guideCaretBlink .72s steps(1,end) infinite}
@keyframes guideCaretBlink{0%,48%{opacity:1}49%,100%{opacity:0}}
.ai-orb.thinking .orb-core{animation:guideThinkCore .68s ease-in-out infinite alternate;filter:saturate(1.18)}
.ai-orb.thinking .orb-ring{animation-duration:.86s;border-color:rgba(104,220,255,.72)}
@keyframes guideThinkCore{from{transform:scale(.95);box-shadow:inset 0 0 15px rgba(255,255,255,.22),0 0 13px rgba(76,166,255,.46)}to{transform:scale(1.07);box-shadow:inset 0 0 19px rgba(255,255,255,.29),0 0 27px rgba(76,207,255,.82)}}
.ai-form button:disabled,.quick-asks button:disabled{opacity:.48;cursor:wait}


/* v4.93 · Panells emergents sempre desplaçables i layout sense superposicions */
.route-panel,.stop-sheet,.ai-messages,.route-cards,.permission-card,.weather-alert-body,.route-event-list,.world-destination-list{
  scrollbar-width:thin;scrollbar-color:rgba(105,170,255,.62) rgba(255,255,255,.035)
}
.route-panel::-webkit-scrollbar,.stop-sheet::-webkit-scrollbar,.ai-messages::-webkit-scrollbar,.route-cards::-webkit-scrollbar,.permission-card::-webkit-scrollbar,.weather-alert-body::-webkit-scrollbar,.route-event-list::-webkit-scrollbar,.world-destination-list::-webkit-scrollbar{width:7px;height:7px}
.route-panel::-webkit-scrollbar-thumb,.stop-sheet::-webkit-scrollbar-thumb,.ai-messages::-webkit-scrollbar-thumb,.route-cards::-webkit-scrollbar-thumb,.permission-card::-webkit-scrollbar-thumb,.weather-alert-body::-webkit-scrollbar-thumb,.route-event-list::-webkit-scrollbar-thumb,.world-destination-list::-webkit-scrollbar-thumb{background:rgba(105,170,255,.58);border-radius:999px}
.route-panel::-webkit-scrollbar-track,.stop-sheet::-webkit-scrollbar-track,.ai-messages::-webkit-scrollbar-track,.route-cards::-webkit-scrollbar-track,.permission-card::-webkit-scrollbar-track,.weather-alert-body::-webkit-scrollbar-track,.route-event-list::-webkit-scrollbar-track,.world-destination-list::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:999px}

@media (min-width:761px){
  #app.dual-panels{--dual-left:clamp(240px,28vw,390px);--dual-side:min(410px,calc((100vw - var(--dual-left) - 72px)/2))}
  #app.dual-panels .route-panel{width:var(--dual-left)}
  #app.dual-panels .stop-sheet{left:calc(24px + var(--dual-left) + 12px);right:auto;width:var(--dual-side);max-height:calc(100dvh - 118px)}
  #app.dual-panels .ai-drawer{right:24px;left:auto;width:var(--dual-side);height:min(620px,calc(100dvh - 125px));max-height:calc(100dvh - 112px)}
}
@media (max-width:760px){
  #app.dual-panels .route-panel{display:none}
  #app.dual-panels .ai-drawer{left:8px;right:8px;top:68px;bottom:auto;width:auto;height:calc(43dvh - 42px);max-height:none;transform:none;opacity:1}
  #app.dual-panels .stop-sheet{left:8px;right:8px;top:50dvh;bottom:8px;width:auto;max-height:calc(50dvh - 16px);transform:none;opacity:1}
  #app.dual-panels .ai-messages{min-height:80px}
  #app.dual-panels .sheet-photo,#app.dual-panels .sheet-photo img,#app.dual-panels .sheet-photo-placeholder{height:132px;min-height:132px}
}

.route-cards,.world-destination-list,.route-event-list,.weather-alert-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}


/* v4.97 · Selector de capes sempre visible: Arquitectura, Museus i Restaurants en acordió */
.layer-accordion{display:grid;gap:8px;margin-top:10px;min-height:0;flex:0 0 auto}
.layer-section{border:1px solid rgba(126,177,255,.16);border-radius:15px;background:rgba(4,17,34,.44);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.layer-section[open]{border-color:rgba(80,159,255,.34);background:rgba(8,27,52,.62);box-shadow:0 10px 28px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.035)}
.layer-section>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 12px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.layer-section>summary::-webkit-details-marker{display:none}.layer-section>summary::marker{content:""}
.layer-summary-title{display:flex;align-items:center;gap:9px;min-width:0}.layer-summary-title i{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-style:normal;color:#8ad8ff;background:rgba(54,143,255,.12);border:1px solid rgba(96,176,255,.18);flex:0 0 auto}.layer-summary-title b{font-size:11px;letter-spacing:.025em;white-space:normal;line-height:1.25}
.layer-summary-meta{display:flex;align-items:center;gap:9px;color:#8ca8c8;flex:0 0 auto}.layer-summary-meta strong{min-width:22px;text-align:right;color:#cde6ff;font-size:10px}.layer-chevron{font-size:16px;transition:transform .2s ease;transform-origin:center}.layer-section[open] .layer-chevron{transform:rotate(180deg)}
.layer-section-body{max-height:min(52dvh,540px);overflow-y:auto;overflow-x:hidden;padding:4px 8px 10px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:rgba(105,170,255,.58) rgba(255,255,255,.025)}
.layer-section-body::-webkit-scrollbar{width:6px}.layer-section-body::-webkit-scrollbar-thumb{background:rgba(105,170,255,.58);border-radius:999px}.layer-section-body::-webkit-scrollbar-track{background:rgba(255,255,255,.025);border-radius:999px}
.architecture-section-body .route-progress{margin-top:8px}.architecture-section-body .stops{margin-top:6px}
.poi-section-body{padding-top:6px}.poi-panel-list{display:grid;gap:6px;min-height:54px}
.poi-panel-placeholder{min-height:52px;display:grid;place-items:center;color:#7895b8;font-size:16px;letter-spacing:.18em}
.poi-panel-item{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.026);border-radius:12px;padding:9px 10px;cursor:pointer;color:#e8f3ff}
.poi-panel-item:hover,.poi-panel-item:focus-visible{background:rgba(76,166,255,.10);border-color:rgba(93,174,255,.32);outline:none}.poi-panel-icon{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:rgba(76,166,255,.12);color:#8fd9ff;border:1px solid rgba(88,176,255,.18)}.poi-panel-item.restaurant .poi-panel-icon{color:#ffce7a;background:rgba(255,165,66,.10);border-color:rgba(255,183,83,.18)}
.poi-panel-copy{min-width:0}.poi-panel-copy strong{display:block;font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poi-panel-copy small{display:block;margin-top:3px;color:#89a8ca;font-size:9px}.poi-panel-arrow{color:#6d8baa;font-size:16px}
.route-panel.min .layer-accordion{display:none}
.panel-actions{position:sticky;bottom:-1px;z-index:6;background:linear-gradient(180deg,rgba(4,14,29,0),rgba(4,14,29,.90) 28%,rgba(4,14,29,.96));padding-top:16px;padding-bottom:2px}
@media(max-width:760px){
  .route-panel{max-height:72dvh}
  .layer-section-body{max-height:40dvh}
  .layer-section>summary{min-height:44px;padding:0 10px}
  .layer-summary-title b{font-size:10.5px}
}
@media(max-width:420px){
  .route-panel{max-height:76dvh}
  .layer-section-body{max-height:38dvh}
  .poi-panel-item{grid-template-columns:28px minmax(0,1fr) auto;padding:8px}
}


/* v4.97 · Fitxes de restaurant enriquides amb dades OSM reals */
.poi-panel-item.restaurant-result{grid-template-columns:30px minmax(0,1fr) 14px;align-items:start;padding:10px 10px 11px}
.poi-panel-item.restaurant-result .poi-panel-icon{margin-top:1px}
.poi-panel-item.restaurant-result .poi-panel-copy strong{font-size:11.5px;white-space:normal;overflow:visible;text-overflow:clip}
.poi-distance-line{color:#a9c5df!important;font-weight:700;line-height:1.35!important;white-space:normal}
.poi-detail-description{display:block;margin-top:6px;color:#c4d7e9;font-size:9.5px;line-height:1.42}
.poi-detail-meta{display:grid;gap:3px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.055);color:#86a9c9;font-size:8.7px;line-height:1.35;overflow-wrap:anywhere}
.poi-detail-meta span{display:block}.poi-detail-meta b{color:#bdd8ee;font-weight:750}
.poi-popup-card{min-width:210px;max-width:300px;color:#14283c}.poi-popup-card>strong{display:block;font-size:13px;line-height:1.25}.poi-popup-card>small{display:block;margin-top:3px;color:#54708c}.poi-popup-card>p{margin:8px 0 0;font-size:11px;line-height:1.4}.poi-popup-card .poi-detail-meta{color:#4b6b87;border-top-color:rgba(20,40,60,.12)}.poi-popup-card .poi-detail-meta b{color:#233f5a}
@media(max-width:420px){.poi-panel-item.restaurant-result{grid-template-columns:28px minmax(0,1fr) 12px}.poi-detail-description{font-size:9.2px}.poi-detail-meta{font-size:8.4px}}



/* v4.98 · Restaurant cards: major readability pass + large photo popup */
.poi-panel-item.restaurant-result{grid-template-columns:36px minmax(0,1fr) 18px;gap:12px;padding:13px 13px 14px;border-radius:15px;background:rgba(8,25,48,.72);border-color:rgba(117,174,231,.16)}
.poi-panel-item.restaurant-result:hover,.poi-panel-item.restaurant-result:focus-visible{background:rgba(21,54,91,.86);border-color:rgba(103,185,255,.42)}
.poi-panel-item.restaurant-result .poi-panel-icon{width:35px;height:35px;border-radius:11px;font-size:16px}
.poi-panel-item.restaurant-result .poi-panel-copy strong{font-size:14.5px;line-height:1.28;color:#fff;font-weight:850;letter-spacing:.005em;text-shadow:0 1px 2px rgba(0,0,0,.36)}
.poi-panel-item.restaurant-result .poi-distance-line{margin-top:5px;color:#d4e8fa!important;font-size:11.5px!important;line-height:1.4!important;font-weight:800}
.poi-panel-item.restaurant-result .poi-detail-description{margin-top:8px;color:#e4eef8;font-size:11.5px;line-height:1.52}
.poi-panel-item.restaurant-result .poi-detail-meta{gap:5px;margin-top:9px;padding-top:9px;color:#c0d8ec;font-size:10.8px;line-height:1.48;border-top-color:rgba(255,255,255,.10)}
.poi-panel-item.restaurant-result .poi-detail-meta b{color:#f0f7ff;font-weight:850}
.poi-panel-item.restaurant-result .poi-panel-arrow{align-self:center;color:#9acfff;font-size:20px}

.leaflet-popup.restaurant-map-popup{margin-bottom:18px}
.leaflet-popup.restaurant-map-popup .leaflet-popup-content-wrapper{padding:0;background:rgba(7,20,38,.97);color:#eef8ff;border:1px solid rgba(122,191,255,.32);border-radius:20px;box-shadow:0 22px 70px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.025) inset;overflow:hidden;backdrop-filter:blur(16px)}
.leaflet-popup.restaurant-map-popup .leaflet-popup-content{width:min(410px,calc(100vw - 74px))!important;margin:0!important;max-height:min(72dvh,650px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(104,181,255,.58) transparent}
.leaflet-popup.restaurant-map-popup .leaflet-popup-content::-webkit-scrollbar{width:6px}.leaflet-popup.restaurant-map-popup .leaflet-popup-content::-webkit-scrollbar-thumb{background:rgba(104,181,255,.58);border-radius:999px}
.leaflet-popup.restaurant-map-popup .leaflet-popup-tip{background:rgba(7,20,38,.97);box-shadow:none}
.leaflet-popup.restaurant-map-popup .leaflet-popup-close-button{width:34px;height:34px;top:8px;right:8px;border-radius:50%;display:grid;place-items:center;padding:0!important;background:rgba(5,15,30,.78);border:1px solid rgba(255,255,255,.18);color:#fff!important;font-size:24px!important;line-height:1!important;z-index:8;text-shadow:0 1px 3px #000}
.leaflet-popup.restaurant-map-popup .leaflet-popup-close-button:hover{background:rgba(27,67,108,.96)}
.poi-popup-card{min-width:0;max-width:none;color:#eaf6ff;background:transparent}
.poi-popup-photo{position:relative;width:100%;height:180px;background:linear-gradient(135deg,rgba(22,56,92,.9),rgba(8,21,39,.98));overflow:hidden}
.poi-popup-photo>a{display:block;width:100%;height:100%}.poi-popup-photo img{display:block;width:100%;height:100%;object-fit:cover}
.poi-popup-photo>span{position:absolute;left:12px;bottom:10px;max-width:calc(100% - 24px);padding:5px 8px;border-radius:8px;background:rgba(0,0,0,.62);color:#f7fbff;font-size:10px;font-weight:750;letter-spacing:.015em;backdrop-filter:blur(7px)}
.poi-popup-photo-placeholder{display:grid;place-items:center;align-content:center;gap:8px;color:#b6d5ef}.poi-popup-photo-placeholder>div{font-size:36px;line-height:1}.poi-popup-photo-placeholder>span{position:static;background:none;padding:0;font-size:12px;color:#bfd9ef}
.poi-popup-body{padding:16px 17px 18px}
.poi-popup-card .poi-popup-body>strong{display:block;padding-right:28px;color:#fff;font-size:19px;line-height:1.22;font-weight:900;letter-spacing:-.01em}
.poi-popup-card .poi-popup-body>small{display:block;margin-top:6px;color:#a7cef0;font-size:12px;line-height:1.35;font-weight:800}
.poi-popup-card .poi-popup-body>p{margin:12px 0 0;color:#e4eef7;font-size:13px;line-height:1.55}
.poi-popup-card .poi-detail-meta{display:grid;gap:7px;margin-top:13px;padding-top:12px;color:#c5ddf0;border-top:1px solid rgba(255,255,255,.11);font-size:12px;line-height:1.48}
.poi-popup-card .poi-detail-meta b{color:#fff;font-weight:850}
@media(max-width:760px){
  .poi-panel-item.restaurant-result .poi-panel-copy strong{font-size:14px}
  .poi-panel-item.restaurant-result .poi-detail-description{font-size:11.2px}
  .poi-panel-item.restaurant-result .poi-detail-meta{font-size:10.5px}
  .leaflet-popup.restaurant-map-popup .leaflet-popup-content{width:min(360px,calc(100vw - 58px))!important;max-height:66dvh}
  .poi-popup-photo{height:150px}
  .poi-popup-card .poi-popup-body>strong{font-size:18px}.poi-popup-card .poi-popup-body>p{font-size:12.5px}.poi-popup-card .poi-detail-meta{font-size:11.5px}
}
@media(max-width:420px){
  .poi-panel-item.restaurant-result{grid-template-columns:34px minmax(0,1fr) 16px;padding:12px 11px}
  .poi-panel-item.restaurant-result .poi-panel-copy strong{font-size:13.5px}
  .poi-panel-item.restaurant-result .poi-distance-line{font-size:11px!important}
  .poi-panel-item.restaurant-result .poi-detail-description{font-size:11px}
  .poi-panel-item.restaurant-result .poi-detail-meta{font-size:10.3px}
  .leaflet-popup.restaurant-map-popup .leaflet-popup-content{width:calc(100vw - 52px)!important}
  .poi-popup-photo{height:138px}.poi-popup-body{padding:14px 14px 16px}
}


/* v4.98 · Cinematic route loading screen */
.route-load-overlay{position:fixed;inset:0;z-index:2600;display:grid;place-items:center;visibility:hidden;opacity:0;pointer-events:none;background:#06111f;transition:opacity .28s ease,visibility .28s step-end;overflow:hidden}
.route-load-overlay.open{visibility:visible;opacity:1;pointer-events:all;transition:opacity .28s ease,visibility 0s}
.route-load-overlay.finishing{opacity:0;pointer-events:none}
.route-load-backdrop{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 46%,#12375d 0,#071526 47%,#040b13 100%)}
.route-load-backdrop>img{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;filter:saturate(.76) contrast(1.06) brightness(.54);transform:scale(1.02);animation:routeLoadImageDrift 8s ease-in-out infinite alternate}
.route-load-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,rgba(12,44,77,.12) 0 24%,rgba(2,8,16,.46) 62%,rgba(1,5,11,.86) 100%),linear-gradient(180deg,rgba(4,12,24,.36),rgba(3,10,19,.74))}
.route-load-grid{position:absolute;inset:0;opacity:.17;background-image:linear-gradient(rgba(85,177,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(85,177,255,.12) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 50% 48%,#000 0 34%,transparent 78%)}
.route-load-scan{position:absolute;left:-12%;right:-12%;height:2px;top:-4%;background:linear-gradient(90deg,transparent,rgba(109,218,255,.9),transparent);box-shadow:0 0 22px rgba(69,189,255,.7);animation:routeLoadScan 2.6s linear infinite}
.route-load-card{position:relative;width:min(560px,calc(100vw - 42px));padding:32px 34px 30px;border-radius:28px;border:1px solid rgba(128,200,255,.24);background:linear-gradient(145deg,rgba(7,24,43,.88),rgba(5,14,27,.78));box-shadow:0 32px 100px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.025) inset;backdrop-filter:blur(22px) saturate(1.16);text-align:center;color:#f4f9ff;overflow:hidden}
.route-load-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 42%,rgba(77,185,255,.08) 50%,transparent 58%);transform:translateX(-90%);animation:routeLoadSheen 2.8s ease-in-out infinite;pointer-events:none}
.route-load-brand{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:24px}
.route-load-mark{position:relative;width:34px;height:29px}.route-load-mark i{position:absolute;bottom:1px;width:2px;border-radius:3px;background:#5fd4ff;box-shadow:0 0 10px #2fbaff}.route-load-mark i:nth-child(1){height:22px;left:7px;transform:rotate(23deg);transform-origin:bottom}.route-load-mark i:nth-child(2){height:26px;left:16px;transform:rotate(-24deg);transform-origin:bottom}.route-load-mark i:nth-child(3){width:26px;height:2px;left:4px;bottom:7px;transform:rotate(-1deg)}
.route-load-word{display:flex;align-items:center;gap:7px}.route-load-word strong{font-size:16px;letter-spacing:.19em}.route-load-word em{font-style:normal;font-size:10px;font-weight:900;background:linear-gradient(135deg,#277dff,#8d55ff);padding:5px 7px;border-radius:7px;box-shadow:0 0 20px rgba(87,98,255,.35)}
.route-load-orbit{position:relative;width:88px;height:88px;margin:0 auto 18px;border-radius:50%;border:1px solid rgba(107,198,255,.2);box-shadow:0 0 36px rgba(28,126,255,.15) inset,0 0 40px rgba(28,126,255,.12)}
.route-load-orbit:before{content:"";position:absolute;inset:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#94e8ff 0,#3ca7ff 25%,#3d61ff 55%,#151f52 100%);box-shadow:0 0 28px rgba(67,142,255,.65);animation:routeLoadPulse 1.6s ease-in-out infinite}
.route-load-orbit span{position:absolute;width:7px;height:7px;border-radius:50%;background:#70dcff;box-shadow:0 0 12px #49c9ff;top:40px;left:40px;transform-origin:4px 4px}.route-load-orbit span:nth-child(1){animation:routeLoadOrbit1 1.5s linear infinite}.route-load-orbit span:nth-child(2){animation:routeLoadOrbit2 2.1s linear infinite;background:#8b7dff}.route-load-orbit span:nth-child(3){animation:routeLoadOrbit3 2.8s linear infinite;background:#9beeff}
.route-load-kicker{margin:0 0 8px;color:#6bcfff;font-size:10px;font-weight:900;letter-spacing:.26em;text-transform:uppercase}
.route-load-card h2{margin:0;color:#fff;font-size:clamp(23px,4vw,34px);line-height:1.15;font-weight:900;letter-spacing:-.025em;text-wrap:balance}
.route-load-status{margin:11px auto 0;max-width:440px;color:#c2d7ea;font-size:13px;line-height:1.55;font-weight:650}
.route-load-progress{position:relative;height:5px;margin:25px auto 0;max-width:390px;overflow:hidden;border-radius:999px;background:rgba(113,177,227,.13);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}
.route-load-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2a7cff,#58cfff,#8d64ff);box-shadow:0 0 18px rgba(67,176,255,.72);transition:width .45s cubic-bezier(.2,.75,.25,1)}
.route-load-dots{height:16px;margin-top:17px;display:flex;align-items:center;justify-content:center;gap:7px}.route-load-dots span{width:6px;height:6px;border-radius:50%;background:#8fdfff;opacity:.28;animation:routeLoadDot 1.1s ease-in-out infinite}.route-load-dots span:nth-child(2){animation-delay:.14s}.route-load-dots span:nth-child(3){animation-delay:.28s}
body.route-loading{overflow:hidden}
@keyframes routeLoadImageDrift{from{transform:scale(1.035) translate3d(-.4%,0,0)}to{transform:scale(1.085) translate3d(.4%,-.6%,0)}}
@keyframes routeLoadScan{0%{top:-3%;opacity:0}10%{opacity:.9}90%{opacity:.6}100%{top:104%;opacity:0}}
@keyframes routeLoadSheen{0%,22%{transform:translateX(-105%)}70%,100%{transform:translateX(105%)}}
@keyframes routeLoadPulse{0%,100%{transform:scale(.93);filter:brightness(.88)}50%{transform:scale(1.05);filter:brightness(1.15)}}
@keyframes routeLoadOrbit1{from{transform:rotate(0deg) translateX(42px) rotate(0deg)}to{transform:rotate(360deg) translateX(42px) rotate(-360deg)}}
@keyframes routeLoadOrbit2{from{transform:rotate(120deg) translateX(36px) rotate(-120deg)}to{transform:rotate(480deg) translateX(36px) rotate(-480deg)}}
@keyframes routeLoadOrbit3{from{transform:rotate(240deg) translateX(47px) rotate(-240deg)}to{transform:rotate(600deg) translateX(47px) rotate(-600deg)}}
@keyframes routeLoadDot{0%,100%{opacity:.25;transform:translateY(0) scale(.8)}50%{opacity:1;transform:translateY(-3px) scale(1.15)}}
@media(max-width:700px){.route-load-card{width:min(500px,calc(100vw - 28px));padding:27px 20px 25px;border-radius:23px}.route-load-orbit{width:78px;height:78px}.route-load-orbit span{top:35px;left:35px}.route-load-orbit span:nth-child(1){animation-name:routeLoadOrbit1m}.route-load-orbit span:nth-child(2){animation-name:routeLoadOrbit2m}.route-load-orbit span:nth-child(3){animation-name:routeLoadOrbit3m}.route-load-status{font-size:12px}.route-load-progress{margin-top:21px}}
@keyframes routeLoadOrbit1m{from{transform:rotate(0deg) translateX(36px) rotate(0deg)}to{transform:rotate(360deg) translateX(36px) rotate(-360deg)}}
@keyframes routeLoadOrbit2m{from{transform:rotate(120deg) translateX(31px) rotate(-120deg)}to{transform:rotate(480deg) translateX(31px) rotate(-480deg)}}
@keyframes routeLoadOrbit3m{from{transform:rotate(240deg) translateX(39px) rotate(-240deg)}to{transform:rotate(600deg) translateX(39px) rotate(-600deg)}}
@media(prefers-reduced-motion:reduce){.route-load-backdrop>img,.route-load-scan,.route-load-card:before,.route-load-orbit:before,.route-load-orbit span,.route-load-dots span{animation:none!important}}


/* v4.99 · Capçalera responsive en dos nivells: tablet vertical + mòbil */
.topbar-controls{
  display:flex;align-items:center;gap:7px;margin-left:auto;min-width:0;flex:0 1 auto
}
.topbar-controls .city-pill{margin-left:0}

/* iPad vertical, tablets estretes i finestres reduïdes: meteorologia a dalt,
   selectors en una segona fila amb amplada real de lectura. */
@media (max-width:900px){
  .topbar{
    left:12px;right:12px;top:max(10px,env(safe-area-inset-top));
    height:auto;min-height:112px;padding:8px 10px 9px;
    display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:44px 44px;
    column-gap:12px;row-gap:7px;align-items:center;border-radius:20px
  }
  .topbar .brand{
    grid-column:1;grid-row:1;margin-left:4px;align-self:center;justify-self:start;gap:8px;min-width:0
  }
  .topbar .brand>span:last-child{display:inline-flex;align-items:center;white-space:nowrap}
  .topbar .brand strong{font-size:12px;letter-spacing:.11em}
  .topbar .brand em{font-size:8px;padding:2px 5px}
  .topbar .brand-mark{width:27px;height:27px;transform:scale(.9);flex:0 0 auto}

  .topbar .weather-strip{
    grid-column:2;grid-row:1;margin:0;width:100%;min-width:0;max-width:none;height:42px;
    flex:none;justify-content:space-evenly;gap:7px;padding:3px 8px
  }
  .topbar .weather-scene{width:42px;flex-basis:42px}
  .topbar .weather-temp{min-width:48px}
  .topbar .weather-source{display:none}

  .topbar-controls{
    grid-column:1 / -1;grid-row:2;width:100%;margin:0;display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;gap:8px;align-items:stretch
  }
  .topbar-controls .city-pill,.topbar-controls .language-pill{
    width:100%;min-width:0;max-width:none;margin:0;height:42px;padding:6px 10px;
    display:flex;align-items:center;border-radius:12px
  }
  .topbar-controls .city-pill select,.topbar-controls .language-pill select{
    width:100%!important;max-width:none!important;min-width:0!important;font-size:12px!important;
    line-height:1.2;text-overflow:ellipsis;white-space:nowrap;overflow:hidden
  }
  .topbar-controls .language-pill{gap:7px}
  .topbar-controls .language-globe{display:grid!important;flex:0 0 18px}
  .topbar-controls .icon-btn{
    width:42px;height:42px;margin:0;border-radius:12px;align-self:stretch;font-size:21px
  }

  /* El contingut principal baixa per deixar lliures les dues files de capçalera. */
  .route-panel{top:143px;max-height:calc(100dvh - 167px)}
  .ai-drawer{top:143px;height:min(620px,calc(100dvh - 166px));max-height:calc(100dvh - 166px)}
  .stop-sheet{top:143px;max-height:calc(100dvh - 167px)}
  #app.dual-panels .stop-sheet{top:143px;max-height:calc(100dvh - 167px)}
  #app.dual-panels .ai-drawer{top:143px;height:min(620px,calc(100dvh - 166px));max-height:calc(100dvh - 166px)}
}

/* Mòbil vertical: mantenim la jerarquia de dues files, però compactem meteorologia
   i deixem els dos selectors amb el mateix pes visual. */
@media (max-width:520px){
  .topbar{
    left:8px;right:8px;top:max(8px,env(safe-area-inset-top));min-height:108px;
    grid-template-columns:42px minmax(0,1fr);grid-template-rows:42px 42px;
    column-gap:7px;row-gap:7px;padding:7px;border-radius:17px
  }
  .topbar .brand{margin:0;justify-self:center}
  .topbar .brand>span:last-child{display:none}
  .topbar .brand-mark{width:29px;height:29px;transform:scale(.93)}
  .topbar .weather-strip{height:40px;gap:4px;padding:2px 5px}
  .topbar .weather-scene{width:34px;flex-basis:34px}
  .topbar .weather-temp{min-width:42px;padding:0 2px}
  .topbar .weather-temp strong{font-size:15px}
  .topbar .weather-humidity strong,.topbar .weather-wind strong{font-size:9px}
  .topbar .weather-wind small{display:none}
  .topbar .wind-glyph{width:18px}

  .topbar-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;gap:6px}
  .topbar-controls .city-pill,.topbar-controls .language-pill{height:40px;padding:5px 7px;gap:5px}
  .topbar-controls .city-pill select,.topbar-controls .language-pill select{font-size:11px!important}
  .topbar-controls .language-globe{display:none!important}
  .topbar-controls .icon-btn{width:40px;height:40px}

  /* En mòbil el panell principal ja és inferior; només ajustem bot/fullscreen drawers. */
  .route-panel{top:auto;max-height:50%}
  .ai-drawer{top:126px;bottom:max(8px,env(safe-area-inset-bottom));height:auto;max-height:none}
  .stop-sheet{top:auto;max-height:72dvh}
  #app.dual-panels .ai-drawer{top:126px;height:calc(39dvh - 24px)}
  #app.dual-panels .stop-sheet{top:52dvh;max-height:calc(48dvh - 10px)}
}

@media (max-width:360px){
  .topbar .weather-humidity{display:none}
  .topbar .weather-strip{gap:3px}
  .topbar-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;gap:5px}
  .topbar-controls .city-pill,.topbar-controls .language-pill{padding-left:5px;padding-right:5px}
  .topbar-controls .city-pill select,.topbar-controls .language-pill select{font-size:10px!important}
  .topbar-controls .icon-btn{width:38px}
}

/* v5.00 · Marcadors de parada: àrea tàctil reforçada i accés directe a la fitxa */
.arq-stop-marker{display:grid!important;place-items:center!important;background:transparent!important;border:0!important;cursor:pointer!important;touch-action:manipulation;outline:none!important}
.arq-stop-marker .arch-marker{pointer-events:auto;user-select:none;-webkit-user-select:none}
.arq-stop-marker:focus-visible .arch-marker{outline:2px solid rgba(174,229,255,.98);outline-offset:4px;box-shadow:0 0 0 6px rgba(41,151,255,.16),0 8px 24px rgba(23,105,255,.52)}
@media (pointer:coarse){.arq-stop-marker{width:50px!important;height:50px!important;margin-left:-2px!important;margin-top:-2px!important}.arq-stop-marker .arch-marker{width:36px;height:36px;font-size:11px}}


/* v5.01 · Branding ArquiWalk + indicador animat de cerca de POI */
.poi-panel-placeholder.poi-panel-loading{
  min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  padding:12px;color:#9fc9e8;letter-spacing:0;text-align:center
}
.poi-panel-placeholder.poi-panel-loading small{
  display:block;max-width:280px;color:#8eabc5;font-size:9.5px;line-height:1.35;font-weight:700;letter-spacing:.01em
}
.poi-thinking-dots{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:18px}
.poi-thinking-dots i{
  display:block;width:7px;height:7px;border-radius:50%;background:#83d8ff;
  box-shadow:0 0 10px rgba(86,196,255,.82),0 0 22px rgba(46,135,255,.36);
  animation:arquiPoiThink 1.05s ease-in-out infinite;transform:translateY(0);opacity:.35
}
.poi-thinking-dots i:nth-child(2){animation-delay:.14s}
.poi-thinking-dots i:nth-child(3){animation-delay:.28s}
@keyframes arquiPoiThink{
  0%,65%,100%{transform:translateY(0) scale(.86);opacity:.35}
  32%{transform:translateY(-6px) scale(1.12);opacity:1}
}

/* El símbol queda sobre el nom, com una marca compacta de dues línies. */
.topbar .brand{
  flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:70px;
  padding:2px 5px;line-height:1;margin-top:0;margin-bottom:0
}
.topbar .brand-mark{width:27px;height:25px;flex:0 0 25px;transform:scale(.82);transform-origin:center center}
.topbar .brand-name{display:block!important;line-height:1;white-space:nowrap;text-align:center}
.topbar .brand-name strong{
  display:block;font-size:10.5px;line-height:1.05;letter-spacing:.035em;font-weight:900;color:#f4fbff;
  text-shadow:0 0 9px rgba(108,207,255,.55)
}
.topbar .brand em{display:none!important}

/* La marca d'entrada segueix la mateixa jerarquia: símbol a dalt, ArquiWalk a baix. */
.world-logo-frame{flex-direction:column;justify-content:center;gap:9px;text-align:center}
.world-logo-type{display:block;text-align:center}
.world-logo-type strong{letter-spacing:.025em}
.world-logo-type em{display:none}

@media(max-width:900px){
  .topbar .brand{min-width:68px;margin-left:0!important;gap:0}
  .topbar .brand-mark{width:26px;height:24px;flex-basis:24px;transform:scale(.78)}
  .topbar .brand-name{display:block!important}
  .topbar .brand-name strong{font-size:10px;letter-spacing:.025em}
}
@media(max-width:520px){
  .topbar{grid-template-columns:64px minmax(0,1fr)}
  .topbar .brand{width:62px;min-width:62px;justify-self:center;padding:1px 2px}
  .topbar .brand>span:last-child{display:block!important}
  .topbar .brand-mark{width:25px;height:23px;flex-basis:23px;transform:scale(.74)}
  .topbar .brand-name strong{font-size:9.2px;letter-spacing:.015em}
  .poi-panel-placeholder.poi-panel-loading small{font-size:9px;max-width:230px}
}

/* v5.02 · Museum results: same readable detail level and map card size as restaurants */
.poi-panel-item.museum-result{grid-template-columns:36px minmax(0,1fr) 18px;gap:12px;align-items:start;padding:13px 13px 14px;border-radius:15px;background:rgba(8,25,48,.72);border-color:rgba(117,174,231,.16)}
.poi-panel-item.museum-result:hover,.poi-panel-item.museum-result:focus-visible{background:rgba(21,54,91,.86);border-color:rgba(103,185,255,.42)}
.poi-panel-item.museum-result .poi-panel-icon{width:35px;height:35px;margin-top:1px;border-radius:11px;font-size:16px}
.poi-panel-item.museum-result .poi-panel-copy strong{font-size:14.5px;line-height:1.28;color:#fff;font-weight:850;letter-spacing:.005em;text-shadow:0 1px 2px rgba(0,0,0,.36);white-space:normal;overflow:visible;text-overflow:clip}
.poi-panel-item.museum-result .poi-distance-line{display:block;margin-top:5px;color:#d4e8fa!important;font-size:11.5px!important;line-height:1.4!important;font-weight:800}
.poi-panel-item.museum-result .poi-detail-description{margin-top:8px;color:#e4eef8;font-size:11.5px;line-height:1.52}
.poi-panel-item.museum-result .poi-detail-meta{gap:5px;margin-top:9px;padding-top:9px;color:#c0d8ec;font-size:10.8px;line-height:1.48;border-top-color:rgba(255,255,255,.10)}
.poi-panel-item.museum-result .poi-detail-meta b{color:#f0f7ff;font-weight:850}
.poi-panel-item.museum-result .poi-panel-arrow{align-self:center;color:#9acfff;font-size:20px}
/* Museum popup deliberately inherits the restaurant popup dimensions for consistent readability. */
.leaflet-popup.museum-map-popup .leaflet-popup-content-wrapper{border-color:rgba(129,196,255,.34)}
.leaflet-popup.museum-map-popup .leaflet-popup-tip{background:rgba(7,20,38,.97)}
@media(max-width:760px){
  .poi-panel-item.museum-result .poi-panel-copy strong{font-size:14px}
  .poi-panel-item.museum-result .poi-detail-description{font-size:11.2px}
  .poi-panel-item.museum-result .poi-detail-meta{font-size:10.5px}
}
@media(max-width:420px){
  .poi-panel-item.museum-result{grid-template-columns:34px minmax(0,1fr) 16px;padding:12px 11px}
  .poi-panel-item.museum-result .poi-panel-copy strong{font-size:13.5px}
  .poi-panel-item.museum-result .poi-distance-line{font-size:11px!important}
  .poi-panel-item.museum-result .poi-detail-description{font-size:11px}
  .poi-panel-item.museum-result .poi-detail-meta{font-size:10.3px}
}

/* v5.03 · Ajust fi de marca: desplaçament del logo 3 caràcters a la dreta */
.topbar .brand{
  position:relative;
  left:3ch;
}

/* v5.04 · Panell meteorològic 3 caràcters més estret */
@media (min-width:901px){
  .weather-strip{
    min-width:calc(338px - 3ch);
    max-width:calc(520px - 3ch);
    flex-basis:calc(520px - 3ch);
  }
}
@media (min-width:901px) and (max-width:980px){
  .weather-strip{min-width:calc(282px - 3ch)}
}
@media (max-width:900px){
  .topbar .weather-strip{
    width:calc(100% - 3ch);
    justify-self:center;
  }
}
