
:root{
  --bg:#f6f1e8;
  --panel:#fffdf9;
  --panel-2:#f2ece2;
  --line:#dfd6c9;
  --text:#243228;
  --muted:#667068;
  --accent:#7b9278;
  --accent-strong:#5f7b62;
  --accent-soft:#e4ecdf;
  --shadow:0 10px 28px rgba(47,58,47,.08);
  --radius:22px;
  --nav-h:82px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f8f4ed 0%,#f4eee4 100%);color:var(--text)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3,p{margin:0}
.small{font-size:13px}.muted{color:var(--muted)}
.app-shell{min-height:100dvh;max-width:100vw;padding:16px 16px calc(var(--nav-h) + 16px);display:flex;flex-direction:column;overflow:hidden}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px}
.topbar h1{font-size:28px;line-height:1.05}
.topbar-actions{display:flex;align-items:center;gap:10px}
.lang-toggle,.icon-btn,.chip,.primary-btn,.secondary-btn,.ghost-btn,.nav-btn,.mini-toggle,.segment{border:1px solid transparent;background:var(--panel);color:var(--text);border-radius:16px;box-shadow:var(--shadow)}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;font-size:19px}
.icon-btn-xl{width:58px;height:58px;font-size:27px}
.small-icon-btn{width:34px;height:34px;border-radius:12px;box-shadow:none;background:var(--panel-2)}
.lang-toggle{height:52px;min-width:52px;padding:0 12px;font-weight:700}
.primary-btn,.secondary-btn,.ghost-btn,.mini-toggle{padding:13px 16px;font-weight:700}
.primary-btn{background:var(--accent-strong);color:#fff}
.secondary-btn{background:var(--accent-soft);border-color:#d5e0cf}
.ghost-btn,.mini-toggle{background:var(--panel);border-color:var(--line)}
.small.primary-btn,.small.secondary-btn,.small.ghost-btn{padding:10px 12px;border-radius:14px}
.views{flex:1;position:relative;overflow:hidden}
.view{display:none;height:calc(100dvh - 118px - var(--nav-h));overflow:auto;padding-bottom:18px}
.view.active{display:block}
.card,.hero-card,.legend-card,.search-card,.place-card,.planner-day,.planner-slot,.modal-card,.admin-login,.admin-editor,.admin-list,.admin-actions-card{background:rgba(255,253,249,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-card{padding:18px;display:grid;gap:16px;margin-bottom:14px}
.hero-card h2{font-size:24px;line-height:1.1;margin-bottom:8px}
.hero-actions,.toggle-row,.planner-actions,.header-actions,.map-action-buttons,.day-head-actions,.slot-actions-inline{display:flex;gap:10px;flex-wrap:wrap}
.search-card,.legend-card,.planner-form,.planner-day,.place-card{padding:14px;margin-bottom:14px}
.compact-search-card{padding:12px 14px}
.search-input-wrap{display:grid;gap:6px}
.input-with-icon{position:relative}
.input-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:22px;pointer-events:none;opacity:.9}
.search-input-wrap input,label input,label select,label textarea{width:100%;padding:14px 15px;border-radius:16px;border:1px solid var(--line);background:#fff;color:var(--text);outline:none}
.input-with-icon input{padding-left:50px!important}
.search-input-large input{font-size:16px;padding:17px 18px}
label{display:grid;gap:6px}label span{font-size:13px;color:var(--muted)}
.field-grid{display:grid;gap:12px}.field-grid-2{grid-template-columns:1fr 1fr}
.toolbar{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.toolbar-scroll{overflow:auto;padding-bottom:4px;scrollbar-width:none;flex-wrap:nowrap}.toolbar-scroll::-webkit-scrollbar{display:none}
.chip{padding:10px 14px;border-color:var(--line);white-space:nowrap}.chip.active,.legend-item.active,.favorite-btn.active,.segment.active,.mini-toggle[data-active="true"]{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}
.results-meta{font-size:13px;color:var(--muted);padding:0 4px 10px}.places-list{display:grid;gap:12px}.compact-list{padding-bottom:6px}
.place-card-header{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.place-card h3{font-size:20px;line-height:1.15;margin:2px 0 6px}.place-card .muted{font-size:14px;line-height:1.35}.favorite-btn{min-width:48px;height:42px;padding:0;font-size:20px}.place-desc,.modal-copy{font-size:14px;line-height:1.5;margin:12px 0 0}
.meta-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:var(--panel-2);font-size:13px;border:1px solid var(--line)}
.place-actions{display:flex;gap:8px;flex-wrap:wrap}
#map{height:46dvh;min-height:350px;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);z-index:0!important;margin-bottom:14px;position:relative;background:#dfe8e0}
.leaflet-pane,.leaflet-top,.leaflet-bottom{z-index:1}
.pin{width:calc(38px * var(--pin-scale,1));height:calc(38px * var(--pin-scale,1));border-radius:999px;display:grid;place-items:center;border:1px solid rgba(36,50,40,.14);font-size:calc(18px * var(--pin-scale,1));box-shadow:0 6px 18px rgba(0,0,0,.2)}
.pin>*{transform:none}
.legend-title-row,.split-header,.editor-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.split-header{margin-bottom:14px}.split-header h2{font-size:24px;line-height:1.1}.split-header-tight h2{font-size:22px}
.legend-grid,.interest-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.legend-item,.interest-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--panel)}.legend-swatch{width:32px;height:32px;border-radius:12px;display:grid;place-items:center}.interest-item input{accent-color:var(--accent-strong)}
.bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;height:var(--nav-h);display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px;background:rgba(255,253,249,.88);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);z-index:40}
.nav-btn{display:grid;place-items:center;gap:4px;font-size:12px;padding:6px 4px;background:transparent;box-shadow:none}.nav-btn span:first-child{font-size:20px}.nav-btn.active{background:var(--accent-soft);border-color:#d5e0cf}
.search-sheet{position:fixed;left:10px;right:10px;top:10px;bottom:calc(var(--nav-h) + 20px);padding:14px;background:rgba(255,253,249,.97);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);z-index:120;display:flex;flex-direction:column;gap:12px}
.sheet-head{display:flex;align-items:center;justify-content:space-between}.quick-results{display:grid;gap:10px;overflow:auto}.quick-item{padding:12px;border-radius:16px;border:1px solid var(--line);background:#fff;text-align:left}
.modal{position:fixed;inset:0;background:rgba(26,31,25,.36);display:grid;place-items:end center;padding:10px;z-index:130}.modal-card{width:min(760px,100%);max-height:88dvh;overflow:auto;padding:16px;position:relative;border-top-left-radius:28px;border-top-right-radius:28px}.modal-close{position:absolute;right:14px;top:14px;z-index:2}.place-hero{width:100%;height:230px;object-fit:cover;border-radius:22px;border:1px solid var(--line);background:#efeae0}.modal-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.sticky-actions{position:sticky;top:0;z-index:5;background:linear-gradient(180deg,#f6f1e8 75%,rgba(246,241,232,0));padding-bottom:10px}.planner-days{display:grid;gap:14px}.planner-day{display:grid;gap:12px}.day-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.day-title-input{font-size:20px;font-weight:700;padding:6px 0;border:none;background:transparent;outline:none;width:100%}
.planner-slot{padding:12px;background:#fff;border:1px dashed #d8cfbf;border-radius:18px}.slot-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.slot-item{display:grid;gap:8px}.slot-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.slot-item select,.slot-item textarea,.slot-item input{width:100%;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.slot-meta{display:flex;gap:8px;flex-wrap:wrap}.empty-card{padding:14px}
.segmented{display:flex;gap:8px}.segment{padding:10px 14px}.map-toolbar-row{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.map-popup-card{overflow:hidden;border-radius:16px}.popup-image{width:100%;height:126px;object-fit:cover;border-radius:12px;margin-bottom:10px}.popup-top{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.popup-pill{display:inline-flex;padding:6px 8px;border-radius:999px;background:var(--panel-2);font-size:12px;border:1px solid var(--line)}.popup-small{font-size:12px;color:var(--muted);margin-top:6px}.popup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.admin-body{padding:18px}.admin-shell{max-width:1200px;margin:0 auto}.admin-login{max-width:480px;margin:5vh auto 0;padding:18px;display:grid;gap:14px}.admin-grid{display:grid;gap:14px;grid-template-columns:330px 1fr}.admin-list,.admin-editor,.admin-actions-card{padding:14px}.admin-list{height:70vh;overflow:auto}.admin-item{display:block;width:100%;text-align:left;padding:12px;border-radius:16px;border:1px solid var(--line);background:#fff;margin-bottom:10px}.admin-item.active{background:var(--accent-soft);border-color:#cfdbc9}.editor-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-form-grid .full{grid-column:1/-1}textarea{min-height:110px;resize:vertical}
@media (min-width:900px){.app-shell{max-width:none;padding-left:24px;padding-right:24px}.topbar,.views{max-width:1120px;margin:0 auto;width:100%}.view{height:calc(100dvh - 128px - var(--nav-h))}.legend-grid,.interest-grid{grid-template-columns:repeat(3,1fr)}#map{height:52dvh}}
@media (max-width:760px){.field-grid-2,.editor-form-grid,.admin-grid,.slot-grid{grid-template-columns:1fr}.admin-list{height:auto;max-height:38vh}.place-card h3{font-size:18px}.map-toolbar-row,.day-head{align-items:stretch}}

.linkish-title{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;font-weight:700}
.small-link{font-size:15px}
.active-ghost{background:var(--accent-soft);border-color:#d5e0cf}
.compare-grid{display:grid;gap:12px}
.day-board{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.compact-slot{padding:12px}
.timeline-wrap{display:grid;gap:10px}
.timeline-item{display:grid;grid-template-columns:64px 18px 1fr;gap:10px;align-items:start}
.timeline-time{font-size:13px;color:var(--muted);padding-top:8px}
.timeline-dot{width:14px;height:14px;border-radius:50%;background:var(--accent-strong);margin-top:10px;box-shadow:0 0 0 6px rgba(123,146,120,.12)}
.timeline-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}
#myTripSummary{margin-bottom:14px}
@media (min-width:900px){.compare-grid{grid-template-columns:repeat(3,1fr)}.timeline-wrap{grid-template-columns:1fr}.day-board{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.timeline-item{grid-template-columns:56px 14px 1fr}.day-board{grid-template-columns:1fr}}

.nearby-block{margin-top:16px}.nearby-grid{display:grid;gap:10px;margin-top:8px}.nearby-item{padding:12px;border-radius:16px;border:1px solid var(--line);background:#fff;text-align:left;display:grid;gap:4px}.nearby-item span{color:var(--muted);font-size:13px}

.leaflet-control-zoom{border:none!important;box-shadow:var(--shadow)!important;border-radius:18px!important;overflow:hidden}
.leaflet-control-zoom a{width:42px!important;height:42px!important;line-height:42px!important;color:var(--text)!important;background:rgba(255,253,249,.96)!important;font-size:20px!important}
.custom-pin-wrap{background:transparent;border:none}
.pin{position:relative}.pin::after{content:"";position:absolute;inset:4px;border-radius:999px;border:1px solid rgba(255,255,255,.6)}
.map-hint{font-size:12px;color:var(--muted)}


.cluster-pin-wrap{background:transparent;border:none}
.cluster-pin{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#29352f;color:#fff;border:3px solid rgba(255,255,255,.92);box-shadow:0 8px 22px rgba(0,0,0,.24);font-weight:700}
.cluster-pin span{font-size:13px}
.day-summary{margin-top:-4px}
#baseHint{margin-top:-4px}


.linkish-title{background:none;border:none;padding:0;margin:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.linkish-title:hover{text-decoration:underline}
#map{position:relative;z-index:1}
.map-preview-card{margin-top:12px;padding:12px 12px 14px;border-radius:24px;background:rgba(255,253,249,.98);border:1px solid var(--line);box-shadow:0 18px 40px rgba(44,53,49,.12)}
.map-preview-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.map-preview-inner{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start}.map-preview-inner .popup-image{height:96px;margin:0;border-radius:16px}
@media (max-width:640px){.map-preview-inner{grid-template-columns:1fr}.map-preview-inner .popup-image{width:100%;height:150px}}
.planner-slot.dragging{opacity:.45}.planner-slot.drop-target{outline:2px dashed var(--accent-strong);outline-offset:2px}
.small-link{font-size:14px}
.cluster-pin{background:#1f332b}
.pin{transform:scale(var(--pin-scale,1));transition:transform .12s ease, box-shadow .12s ease}.pin:hover{box-shadow:0 10px 24px rgba(0,0,0,.2)}
.legend-actions,#legendTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.place-popup .leaflet-popup-content-wrapper{border-radius:20px;padding:0;background:rgba(255,253,249,.98);box-shadow:0 18px 40px rgba(44,53,49,.18)}
.place-popup .leaflet-popup-content{margin:0;width:280px!important}
.place-popup .leaflet-popup-tip{background:rgba(255,253,249,.98)}


.mytrip-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-bottom:12px}
#myTripSummary{padding:18px}
#myTripAgenda{display:grid;gap:14px}
.timeline-wrap{display:grid;gap:12px;padding-top:4px}
.timeline-card{padding:14px}
.compact-slot{padding:14px}
.place-popup .leaflet-popup-content-wrapper{border-radius:22px;padding:6px;background:rgba(255,253,249,.99);box-shadow:0 18px 40px rgba(44,53,49,.18)}
.place-popup .leaflet-popup-content{margin:0;width:264px!important}
.place-popup .leaflet-popup-tip-container{margin-top:-1px}
.place-popup .popup-body{padding:2px 2px 0}
.place-popup .popup-image{border-radius:14px;margin-bottom:10px}
.place-popup .popup-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.place-popup .popup-actions .small{justify-content:center;padding-inline:10px}
@media (max-width:760px){
  #myTripSummary{padding:16px}
  .planner-day,.planner-slot,.search-card,.legend-card,.place-card{padding:16px}
  .timeline-item{grid-template-columns:58px 16px 1fr;gap:12px}
  .timeline-card{padding:16px}
  .place-popup .leaflet-popup-content{width:250px!important}
}

/* v12 tweaks */
.place-popup .leaflet-popup-content-wrapper{padding:8px!important;border-radius:22px;overflow:hidden}
.place-popup .leaflet-popup-content{margin:0!important;width:248px!important;max-width:248px!important}
.place-popup .leaflet-popup-tip{background:rgba(255,253,249,.99)}
.place-popup .popup-body{padding:2px 4px 2px}
.place-popup .popup-image{height:132px;border-radius:16px}
.place-popup .popup-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.place-popup .popup-actions .small,.place-popup .popup-actions a{justify-content:center}
.leaflet-container .leaflet-popup{margin-bottom:12px}
.pin{transform:none!important}
.meta-pill.subtle{background:#f5f2ea}
#myTripSummary.card,#myTripContent .card,.planner-card,.day-card,.timeline-card{padding:18px!important}
#myTripContent .meta-row{gap:10px;margin-bottom:10px}
@media (max-width:640px){
  .place-popup .leaflet-popup-content{width:236px!important;max-width:236px!important}
  #myTripSummary.card,#myTripContent .card,.planner-card,.day-card,.timeline-card{padding:16px!important}
}


/* v13 popup + tag filter polish */
.filter-subtitle{margin:10px 2px 8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tag-toolbar{margin-bottom:2px}
.tag-chip{white-space:nowrap}
.clear-chip{background:#fff5ef;border-style:dashed}
.place-popup .leaflet-popup-content-wrapper{padding:7px!important;border-radius:20px!important;overflow:hidden;box-shadow:0 14px 34px rgba(44,53,49,.16)!important}
.place-popup .leaflet-popup-content{margin:0!important;width:228px!important;max-width:228px!important}
.place-popup .popup-image{height:116px!important;border-radius:14px!important;margin-bottom:8px!important}
.place-popup .popup-body{padding:2px 3px 0!important}
.place-popup .popup-top{gap:4px!important;margin-bottom:6px!important}
.place-popup .popup-pill{padding:5px 7px!important;font-size:11px!important}
.place-popup .popup-actions{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:7px!important;margin-top:10px!important}
.place-popup .popup-actions .small,.place-popup .popup-actions a{min-height:40px;padding:9px 8px!important;font-size:13px!important}
.place-popup .leaflet-popup-tip{background:rgba(255,253,249,.99)!important}
.leaflet-container .leaflet-popup{margin-bottom:18px!important}
@media (max-width:760px){
  .place-popup .leaflet-popup-content{width:214px!important;max-width:214px!important}
  .place-popup .popup-image{height:108px!important}
}


/* v15 popup + tag fixes */
.place-popup .leaflet-popup-content-wrapper{padding:6px!important;border-radius:18px!important;overflow:hidden;box-shadow:0 12px 28px rgba(44,53,49,.15)!important}
.place-popup .leaflet-popup-content{margin:0!important;width:212px!important;max-width:212px!important}
.place-popup .popup-image{height:104px!important;border-radius:12px!important;margin-bottom:8px!important}
.place-popup .popup-body{padding:1px 2px 0!important}
.place-popup .popup-top{gap:4px!important;margin-bottom:6px!important}
.place-popup .popup-pill{padding:4px 7px!important;font-size:11px!important}
.place-popup .popup-actions{display:grid!important;grid-template-columns:1fr 1fr 1fr;gap:6px!important;margin-top:9px!important}
.place-popup .popup-actions .small,.place-popup .popup-actions a{min-height:38px;padding:8px 7px!important;font-size:12px!important}
.leaflet-container .leaflet-popup{margin-bottom:14px!important}
@media (max-width:760px){
  .place-popup .leaflet-popup-content{width:202px!important;max-width:202px!important}
  .place-popup .popup-image{height:98px!important}
}


/* Webplication landing page */
.wv-landing{max-width:1120px;margin:0 auto;padding:32px 20px 56px;color:#1f2937}
.wv-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin:0 0 10px}
.wv-hero{background:linear-gradient(135deg,#f4efe7 0%,#fff 100%);border:1px solid rgba(0,0,0,.07);border-radius:28px;padding:28px;box-shadow:0 20px 50px rgba(0,0,0,.06);margin-bottom:24px}
.wv-hero h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;margin:0 0 14px}
.wv-hero p{font-size:1.05rem;max-width:760px}
.wv-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.wv-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:999px;text-decoration:none;font-weight:700}
.wv-btn-primary{background:#111827;color:#fff}
.wv-btn-secondary{background:#fff;color:#111827;border:1px solid rgba(17,24,39,.14)}
.wv-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 24px}
.wv-card,.wv-content{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:24px;padding:22px;box-shadow:0 14px 40px rgba(0,0,0,.04)}
.wv-card h2,.wv-content h2{margin-top:0}
.wv-content ul{margin:0;padding-left:18px}
@media (max-width:820px){.wv-card-grid{grid-template-columns:1fr}.wv-landing{padding:20px 14px 40px}.wv-hero{padding:22px}}

html body.webplication-valencia-app-shell,
html body.webplication-valencia-app-page{margin:0;background:#f4efe7}
body.webplication-valencia-app-shell #wpadminbar{display:none}

/* v1.2 bike planner */
.bottom-nav{grid-template-columns:repeat(5,1fr)}
#bikeMap{height:42dvh;min-height:320px;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#dfe8e0}
.bike-layout{display:grid;gap:14px}
.bike-map-column{display:grid;gap:14px}
.bike-stops-list{display:grid;gap:12px}
.bike-stop-row .slot-grid{margin-top:10px}
.bike-summary-card,.bike-stops-card{margin-bottom:0}
@media (min-width:980px){.bike-layout{grid-template-columns:minmax(320px,420px) 1fr;align-items:start}.bike-map-column{position:sticky;top:0}}
@media (max-width:760px){.bottom-nav{gap:6px;padding:8px;left:8px;right:8px}.nav-btn{font-size:11px}.nav-btn span:first-child{font-size:18px}}

.bike-layout-stacked{display:grid;gap:14px}
.bike-map-column-first{order:1}
.bike-stops-card{order:2}
.bike-map-toolbar{display:flex;gap:10px;margin-bottom:10px}
#bikeMap{min-height:360px;border-radius:28px;overflow:hidden;background:#dfe7e1}
.bike-route-pin-wrap{background:transparent;border:none}
.bike-route-pin{width:32px;height:32px;border-radius:999px;background:#25322c;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 6px 16px rgba(0,0,0,.18);border:2px solid #fff}
.bike-route-pin.is-custom{background:#2f6c5a}
.bike-leg-pill{margin-top:6px;font-size:12px;color:#5f665f}
.bike-legs-list{display:grid;gap:8px;margin-top:12px}
.bike-leg-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid rgba(38,54,45,.09);border-radius:14px;background:#fff}
#bikeMapAddStopBtn.active{background:#dfe7d8;border-color:#b9c9b4}
@media (min-width:980px){.bike-layout-stacked{grid-template-columns:1fr}.bike-map-column-first{position:sticky;top:0}}


/* v1.4 bike polish */
#bikeMap{height:42dvh;min-height:320px;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#dfe8e0;margin-bottom:14px;position:relative}
.bike-map-toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.bike-map-hint{font-size:12px;padding:0 4px}
.bike-stop-row{position:relative}.bike-stop-row.is-start{border:1px solid #a7cfb1;background:linear-gradient(180deg,#f8fff9 0%,#fff 100%)}.bike-stop-row.is-end{border:1px solid #cdb6e7;background:linear-gradient(180deg,#fcf8ff 0%,#fff 100%)}
.bike-stop-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.bike-stop-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--panel-2)}.bike-stop-badge.start{background:#e5f5e8;border-color:#b9dec2}.bike-stop-badge.end{background:#f0e8fb;border-color:#d4c0f0}.bike-stop-badge.custom{background:#e4f0ed;border-color:#b9d2cc}
.bike-stop-main{display:grid;grid-template-columns:82px 1fr;gap:12px;align-items:start}.bike-stop-thumb{width:82px;height:82px;border-radius:18px;object-fit:cover;border:1px solid var(--line);background:#efeae0}.bike-stop-thumb.placeholder{display:grid;place-items:center;font-size:28px;background:linear-gradient(180deg,#edf3ec,#f8f4ed)}
.bike-leg-pill{margin-top:8px;display:inline-flex;padding:8px 10px;border-radius:999px;background:var(--accent-soft);border:1px solid #d5e0cf;font-size:12px;font-weight:600}.bike-legs-list{display:grid;gap:8px;margin-top:12px}.bike-leg-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--line);align-items:center}
.bike-route-minimap{font-size:12px;color:var(--muted)}
.bike-sheet{position:fixed;inset:0;z-index:160;display:grid;align-items:end}.bike-sheet-backdrop{position:absolute;inset:0;background:rgba(26,31,25,.36)}.bike-sheet-card{position:relative;background:rgba(255,253,249,.98);backdrop-filter:blur(12px);border-top-left-radius:28px;border-top-right-radius:28px;border:1px solid var(--line);padding:12px 14px 22px;max-height:78dvh;overflow:auto;box-shadow:0 -12px 36px rgba(0,0,0,.18)}.bike-sheet-handle{width:56px;height:6px;border-radius:999px;background:#d9d1c6;margin:4px auto 12px}.bike-sheet-close{position:absolute;right:12px;top:12px}.bike-sheet-hero{width:100%;height:180px;object-fit:cover;border-radius:20px;border:1px solid var(--line);background:#efeae0;margin-bottom:12px}.bike-sheet-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.bike-sheet-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.bike-sheet-title{padding-right:60px}.bike-pin-dot{width:14px;height:14px;border-radius:999px;display:inline-block}.bike-summary-routehead{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}


.no-scroll-popup{width:min(70vw,236px);max-width:min(70vw,236px);display:block}.no-scroll-popup .popup-image{width:100%;height:84px;margin:0 0 8px;border-radius:12px}.no-scroll-popup .popup-body{min-width:0}.no-scroll-popup strong{display:block;font-size:14px;line-height:1.2;margin-bottom:4px}.no-scroll-popup .popup-small{font-size:12px;line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.popup-actions-compact{display:grid;grid-template-columns:1fr 1fr;gap:7px}.popup-actions-compact .small,.popup-actions-compact a{justify-content:center;min-height:36px;padding:8px 6px;font-size:13px;line-height:1.1;white-space:normal;text-align:center}.gm-style .gm-style-iw-c{padding:8px!important;border-radius:18px!important;max-height:none!important;max-width:min(74vw,252px)!important}.gm-style .gm-style-iw-d{overflow:hidden!important;max-height:none!important;max-width:min(74vw,252px)!important}.gm-style .gm-ui-hover-effect{top:2px!important;right:2px!important;width:32px!important;height:32px!important;opacity:1!important;z-index:3!important}.bike-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bike-sheet-actions .primary-btn,.bike-sheet-actions .secondary-btn,.bike-sheet-actions .ghost-btn{width:100%;justify-content:center}
@media (max-width:640px){.no-scroll-popup{width:min(66vw,220px);max-width:min(66vw,220px)}.no-scroll-popup .popup-image{height:74px}.popup-actions-compact{grid-template-columns:1fr 1fr}.popup-actions-compact .small,.popup-actions-compact a{min-height:34px;padding:8px 5px;font-size:12px}.gm-style .gm-style-iw-c,.gm-style .gm-style-iw-d{max-width:min(68vw,228px)!important}}


/* v2.0.6 mobile popup fit */
.no-scroll-popup{width:min(58vw,196px)!important;max-width:min(58vw,196px)!important}
.no-scroll-popup .popup-image{height:64px!important;border-radius:10px!important;margin-bottom:6px!important}
.no-scroll-popup strong{font-size:13px!important;line-height:1.15!important;margin-bottom:3px!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.no-scroll-popup .popup-top{gap:4px!important;margin-bottom:4px!important}
.no-scroll-popup .popup-pill{padding:4px 6px!important;font-size:10px!important}
.no-scroll-popup .popup-small{font-size:11px!important;line-height:1.22!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.popup-actions-compact{grid-template-columns:1fr 1fr!important;gap:6px!important}
.popup-actions-compact .small,.popup-actions-compact a{min-height:32px!important;padding:7px 5px!important;font-size:11px!important;line-height:1.05!important;border-radius:14px!important}
.gm-style .gm-style-iw-c{padding:6px!important;border-radius:16px!important;max-width:min(62vw,212px)!important}
.gm-style .gm-style-iw-d{overflow:hidden!important;max-width:min(62vw,212px)!important}
.gm-style .gm-ui-hover-effect{top:0!important;right:0!important;width:28px!important;height:28px!important}
@media (max-width:640px){
  .no-scroll-popup{width:min(54vw,184px)!important;max-width:min(54vw,184px)!important}
  .no-scroll-popup .popup-image{height:58px!important}
  .gm-style .gm-style-iw-c,.gm-style .gm-style-iw-d{max-width:min(58vw,196px)!important}
}


#editEntityModal .modal-sheet{max-width:560px;}
.edit-sheet textarea{min-height:110px;border:1px solid var(--line,#ddd);border-radius:16px;padding:12px;font:inherit;background:#fff;}
.edit-sheet input[type=file]{padding:10px 0;}
.bike-stop-thumb.placeholder{display:grid;place-items:center;background:#eef4ef;color:#355e4a;font-size:22px;}
@media (max-width: 768px){#editEntityModal .modal-sheet{width:min(92vw,560px);} .edit-sheet .field-grid{grid-template-columns:1fr;} }
