/* GUSTI E-map — floating controls. Everything collapses back to the map. */

/* ---------- search (top-left) ---------- */
.searchbox{
  position:fixed;left:16px;top:calc(var(--header-h) + 14px);z-index:40;
  width:min(340px,calc(100vw - 150px));
}
.searchbox .field{
  display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);
  transition:box-shadow var(--dur),border-color var(--dur);
}
.searchbox .field:focus-within{border-color:var(--turq);box-shadow:var(--shadow-sm),var(--ring)}
.searchbox svg{width:16px;height:16px;color:var(--ink-soft);flex:0 0 auto}
.searchbox input{
  flex:1;min-width:0;border:0;background:transparent;font-size:13px;color:var(--ink);
}
.searchbox input:focus{outline:none}
.searchbox input::placeholder{color:var(--ink-soft)}

.search-results{
  margin-top:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow);overflow:hidden;max-height:54vh;overflow-y:auto;
}
.sr{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:0;background:transparent;
  padding:9px 13px;border-bottom:1px solid var(--line);transition:background var(--dur)}
.sr:last-child{border-bottom:0}
.sr:hover,.sr:focus-visible{background:var(--turq-wash)}
.sr-label{font-size:13px;font-weight:600;color:var(--ink)}
.sr-sub{font-size:11px;color:var(--ink-soft);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}
.sr-empty{padding:14px 13px;font-size:12.5px;color:var(--ink-soft)}

/* ---------- region chip (top-right) ---------- */
.region-chip{
  position:fixed;right:16px;top:calc(var(--header-h) + 14px);z-index:40;
  display:flex;align-items:center;gap:9px;height:42px;padding:0 14px;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);
  font-size:13px;color:var(--ink);transition:border-color var(--dur);
}
.region-chip:hover{border-color:var(--line-2)}
.region-chip .rc-cap{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
#region-current{font-weight:700}
.region-chip .chev{color:var(--ink-soft);font-size:10px;transition:transform var(--dur)}
.region-chip[aria-expanded="true"] .chev{transform:rotate(180deg)}

/* ---------- bottom dock ---------- */
.dock{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:41;
  display:flex;gap:3px;padding:4px;background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
}
.dockbtn{
  display:flex;align-items:center;gap:7px;border:0;background:transparent;border-radius:10px;
  padding:9px 15px;font-size:12.5px;font-weight:600;color:var(--ink-soft);
  transition:color var(--dur),background var(--dur);
}
.dockbtn svg{width:15px;height:15px}
.dockbtn:hover:not(.active){color:var(--ink);background:var(--wash)}
.dockbtn.active{color:#fff;background:var(--blue)}
.dockbtn .badge{
  font-size:10px;font-weight:700;background:var(--turq-wash-2);color:var(--turq-d);
  border-radius:999px;padding:1px 6px;min-width:18px;text-align:center;
}
.dockbtn.active .badge{background:rgba(255,255,255,.24);color:#fff}

/* ---------- popovers ---------- */
.popover{
  position:fixed;left:50%;bottom:70px;transform:translateX(-50%);z-index:42;
  width:min(390px,calc(100vw - 28px));max-height:min(62vh,560px);overflow-y:auto;
  background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);
  animation:pop var(--dur) var(--ease);
}
@keyframes pop{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.pop-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px 12px;font-weight:700;font-size:13px;letter-spacing:.01em;
  position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);z-index:1;
}
.pop-head .seg,.pop-head-actions{display:flex;gap:4px}
.mini{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:4px 9px;font-size:11px;font-weight:600;color:var(--ink-soft);transition:all var(--dur)}
.mini:hover{border-color:var(--turq);color:var(--turq-d)}
.pop-body{padding:8px}

/* country segmented control (inside regions popover) */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--wash)}
.seg button{border:0;background:transparent;padding:5px 10px;font-size:11px;font-weight:700;color:var(--ink-soft);transition:all var(--dur)}
.seg button.active{background:var(--blue);color:#fff}

/* region list */
.reg-all{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;
  border-radius:10px;padding:10px;font-size:12.5px;font-weight:700;color:var(--ink);transition:background var(--dur)}
.reg-all:hover{background:var(--turq-wash)}
.reg-group{margin-top:6px}
.reg-head{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);padding:7px 10px 3px;font-weight:700}
.reg-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;
  border:0;background:transparent;border-radius:10px;padding:9px 10px;font-size:13px;color:var(--ink);transition:background var(--dur)}
.reg-item:hover{background:var(--turq-wash)}
.reg-item[aria-current="true"]{background:var(--turq-wash);font-weight:700}
.reg-count{font-size:11px;color:var(--turq-d);font-weight:700;min-width:20px;text-align:right}
.reg-count.zero{color:#b9c3c4;font-weight:400}

/* category list */
.cat-list{display:flex;flex-direction:column;gap:1px}
.cat-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:13px;cursor:pointer;transition:background var(--dur)}
.cat-item:hover{background:var(--wash)}
.cat-item input{position:absolute;opacity:0;width:0;height:0}
.cat-box{width:17px;height:17px;border-radius:6px;border:1.5px solid var(--line-2);display:grid;place-items:center;flex:0 0 auto;transition:all var(--dur)}
.cat-item input:checked + .cat-box{background:var(--blue);border-color:var(--blue)}
.cat-item input:checked + .cat-box::after{content:"";width:9px;height:9px;border-radius:2px;background:#fff}
.cat-item input:focus-visible + .cat-box{box-shadow:var(--ring)}
.cat-swatch{width:9px;height:9px;border-radius:50%;flex:0 0 auto;margin-left:auto}
.cat-events{border-top:1px solid var(--line);margin-top:6px;padding-top:12px}

/* routes list */
.route-modes{display:flex;gap:4px;flex-wrap:wrap;padding:2px 2px 10px}
.rm{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:5px 11px;font-size:11.5px;font-weight:700;color:var(--ink-soft);transition:all var(--dur)}
.rm.active{background:var(--blue);color:#fff;border-color:transparent}
.route-item{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:11px;padding:10px 11px;transition:background var(--dur)}
.route-item:hover{background:var(--wash)}
.route-item.sel{background:var(--turq-wash);box-shadow:inset 0 0 0 1px var(--turq)}
.route-name{font-size:13px;font-weight:700;color:var(--ink);line-height:1.32;overflow-wrap:anywhere}
.route-meta{font-size:11px;color:var(--ink-soft);margin-top:3px}
.route-state{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10.5px;font-weight:600}
.route-state.live{color:var(--turq-d)}
.route-state.pending{color:var(--ink-soft)}
.route-state.indicative{color:var(--blue);gap:4px}
.route-subnote{margin-top:3px;font-size:10px;line-height:1.4;color:var(--ink-soft);max-width:34ch}
.route-state .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.route-empty{padding:14px;color:var(--ink-soft);font-size:12px}
.route-scope{padding:0 11px 6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--turq-d)}
.route-clear{margin:10px 2px 2px;width:calc(100% - 4px);border:1px solid var(--line);background:var(--paper);
  border-radius:10px;padding:9px;font-size:12px;font-weight:600;color:var(--ink-soft);transition:all var(--dur)}
.route-clear:hover{border-color:var(--turq);color:var(--turq-d)}

/* subtle Zadar / empty state inside popover */
.reg-empty-note{font-size:11px;color:var(--ink-soft);padding:2px 10px 8px;font-style:italic}

/* toast for map-level empty state */
.map-toast{
  position:fixed;left:50%;top:calc(var(--header-h) + 70px);transform:translateX(-50%);z-index:39;
  background:var(--paper);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);
  font-size:12px;color:var(--ink-soft);padding:7px 16px;animation:pop var(--dur) var(--ease);
}
