.main-layout {
  display:flex;
  height:calc(100vh - 120px);
  margin-top:120px;
  position:relative;
}

.map-container {
  position:fixed;
  left:0;
  top:120px;
  width:70%;
  height:calc(100vh - 120px);
  z-index:1;
}

#map-controls {
  position:absolute;
  bottom:16px;
  right:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:5;
  align-items:flex-end;
}


.sidebar-stack {
  display:flex;
  flex-direction:column;
  gap:22px;
  margin-bottom:24px;
}

.voronoi-panel {
  display:flex;
  flex-direction:column;
  gap:14px;
  width:100%;
  background:#fff;
  border:1px solid rgba(148,163,184,0.25);
  box-shadow:0 18px 40px rgba(15,23,42,0.08);
  border-radius:16px;
  padding:18px 20px;
  color:#1f2937;
}

.voronoi-panel__header {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}

.voronoi-panel__title {
  margin:0;
  font-size:1rem;
  font-weight:700;
  letter-spacing:0.01em;
  color:#1f2937;
  flex:1 1 auto;
}

.voronoi-toggle {
  display:flex;
  align-items:center;
  gap:8px;
  padding:0;
  border-radius:999px;
  background:transparent;
  border:0;
  box-shadow:none;
  min-width:auto;
  max-width:100%;
  margin-left:auto;
}

.voronoi-toggle__controls {
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:2px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(191,219,254,0.45), rgba(96,165,250,0.6));
  border:1px solid rgba(59,130,246,0.45);
  gap:2px;
  width:auto;
}

.voronoi-toggle__input {
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}

.voronoi-toggle__option {
  position:relative;
  z-index:1;
  border:0;
  border-radius:999px;
  padding:6px 12px;
  font-size:0.78rem;
  font-weight:600;
  color:#1d4ed8;
  background:rgba(255,255,255,0.35);
  cursor:pointer;
  transition:color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.voronoi-toggle__option--active {
  color:#0b1c4a;
  background:#e0f2ff;
  box-shadow:0 6px 14px rgba(30,64,175,0.18);
}

@media (max-width: 640px) {
  .voronoi-toggle {
    width:100%;
    justify-content:flex-end;
    margin-left:0;
  }
}

.voronoi-toggle__option:focus-visible {
  outline:3px solid rgba(59,130,246,0.55);
  outline-offset:2px;
}

.voronoi-legend {
  width:100%;
  background:transparent;
  border:1px solid rgba(148,163,184,0.35);
  border-radius:12px;
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:0.78rem;
  color:#1f2937;
}

.voronoi-legend__item {
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

.voronoi-legend__swatch { 
  width:16px;
  height:16px;
  border-radius:4px;
  border:1px solid rgba(148,163,184,0.45);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.75rem;
  font-weight:700;
}

.voronoi-legend__swatch--selected {
  background:rgba(34,197,94,0.7);
  border-color:#22c55e;
}

.voronoi-legend__swatch--source {
  background:rgba(147,197,253,0.7);
  border-color:#60a5fa;
}

.voronoi-legend__swatch--filtered {
  background:#eff6ff;
  border-color:#2563eb;
  color:#1d4ed8;
}

.voronoi-legend__swatch--archival {
  background:#fee2e2;
  border-color:#ef4444;
  color:#b91c1c;
}

.voronoi-legend__label {
  font-weight:600;
  color:#1f2937;
}

.voronoi-inspector {
  width:100%;
  color:#1f2937;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:0.82rem;
}

.voronoi-inspector__summary {
  display:flex;
  flex-direction:column;
  gap:10px;
  background:#ffffff;
  color:#0f172a;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,0.08);
  box-shadow:0 8px 24px rgba(15,23,42,0.08);
}

.voronoi-inspector__summary[hidden] {
  display:none !important;
}

.voronoi-inspector__summary-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.voronoi-inspector__summary-title {
  font-size:0.78rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:#1f2937;
}

.voronoi-inspector__summary-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  border-radius:999px;
  background:#ffffff;
  color:#111111;
  font-size:0.68rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  border:1px solid rgba(15,23,42,0.16);
  box-shadow:0 1px 2px rgba(15,23,42,0.12);
}

.voronoi-inspector__summary-badge[hidden] {
  display:none !important;
}

.voronoi-inspector__summary-grid {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.voronoi-inspector__summary-item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.voronoi-inspector__summary-label {
  font-size:0.75rem;
  font-weight:500;
  color:#475569;
}

.voronoi-inspector__summary-value {
  font-size:0.9rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:#111111;
}

.voronoi-inspector[hidden] {
  display:none !important;
}

.voronoi-inspector__empty {
  margin:0;
  color:#64748b;
  line-height:1.4;
}

.voronoi-inspector__list {
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.voronoi-inspector__item {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.voronoi-inspector__tag {
  font-weight:600;
  color:#0f172a;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.voronoi-inspector__percentage {
  font-size:0.8rem;
  font-weight:600;
  color:#111111;
  font-variant-numeric:tabular-nums;
}

#map {
  width:100%;
  height:100%;
  border-radius:0;
}

.content-container {
  margin-left:70%;
  width:30%;
  padding:20px;
  overflow-y:auto;
  background:#f8f9fa;
  height:calc(100vh - 120px);
}

.offers-section {
  background:#fff;
  border-radius:10px;
  box-shadow:0 4px 10px rgba(0,0,0,0.1);
  padding:20px;
  margin-bottom:20px;
}

.filters-panel {
  --filters-surface: rgba(255,255,255,0.94);
  --filters-border: rgba(148,163,184,0.25);
  --filters-shadow: 0 18px 40px rgba(15,23,42,0.08);
  background:var(--filters-surface);
  border-radius:16px;
  border:1px solid var(--filters-border);
  box-shadow:var(--filters-shadow);
  padding:20px 22px;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:1.15rem;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.sidebar-stack .filters-panel {
  margin-bottom:0;
}

@media (min-width:993px){
  .content-container {
    height:auto;
    min-height:calc(100vh - 120px);
    overflow-y:visible;
  }

  .sidebar-stack {
    position:sticky;
    top:24px;
    z-index:5;
  }
}

@media (max-width:1366px){
  .main-layout {
    height:auto;
    min-height:calc(100vh - 120px);
  }
  .content-container {
    height:auto;
    overflow-y:visible;
  }
}

@media (max-width:768px){
  .sidebar-stack {
    position:static;
    top:auto;
    z-index:auto;
    gap:18px;
    margin-bottom:18px;
  }

  .voronoi-panel {
    padding:16px 18px;
    gap:10px;
  }

  .voronoi-inspector {
    font-size:0.78rem;
    max-height:45vh;
    overflow-y:auto;
    gap:8px;
  }

  .voronoi-inspector__list {
    gap:8px;
  }
}

.filters-title {
  margin:0;
  font-size:1rem;
  font-weight:700;
  letter-spacing:0.01em;
  color:#1f2937;
}

@supports not ((backdrop-filter: blur(1px))) {
  .filters-panel {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

.filters-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.75rem 1rem;
}

.filters-row.sort-row {
  align-items:flex-start;
}

.filters-row.tags-row {
  align-items:flex-start;
}

.tags-area {
  flex:1;
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  min-width:0;
}

.filters-label {
  font-weight:600;
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#64748b;
  min-width:85px;
}

.sort-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:0.55rem;
}

.sort-chip {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  border:1px solid rgba(148,163,184,0.55);
  background:linear-gradient(135deg,#f8fafc 0%,#edf2f7 100%);
  color:#1f2937;
  padding:0.45rem 1.05rem;
  border-radius:999px;
  font-size:0.85rem;
  font-weight:600;
  cursor:pointer;
  transition:border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, color 0.18s ease, background 0.18s ease;
  box-shadow:0 1px 0 rgba(148,163,184,0.25), 0 6px 16px rgba(148,163,184,0.15);
}

.sort-chip:hover {
  border-color:#2b6cb0;
  color:#1a365d;
  transform:translateY(-1px);
}

.sort-chip:focus-visible {
  outline:3px solid rgba(56,120,224,0.35);
  outline-offset:2px;
}

.sort-chip[data-active="true"] {
  background:linear-gradient(135deg,#2b6cb0 0%,#2c5282 100%);
  border-color:rgba(43,108,176,0.95);
  color:#fff;
  box-shadow:0 10px 22px rgba(43,108,176,0.28);
}

.sort-chip::after {
  content:'';
  width:0.65rem;
  height:0.65rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%231f2937' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M3 7.5l3-3 3 3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  transition:transform 0.18s ease, filter 0.18s ease, opacity 0.18s ease;
  opacity:0;
  transform:translateY(-1px) rotate(0deg);
}

.sort-chip[data-active="true"]::after {
  filter:invert(1);
  opacity:1;
}

.sort-chip[data-active="true"][data-direction="asc"]::after {
  transform:translateY(-1px) rotate(0deg);
}

.sort-chip[data-active="true"][data-direction="desc"]::after {
  transform:translateY(-1px) rotate(180deg);
}

.tags-wrapper {
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  flex:1;
}

.tags-preview {
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  align-items:center;
}

.tags-summary {
  display:inline-flex;
  align-items:center;
  padding:0.25rem 0.65rem;
  border-radius:999px;
  background:rgba(148,163,184,0.16);
  color:#475569;
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.02em;
  flex-shrink:0;
}

.tags-dropdown {
  display:flex;
  flex-direction:column;
  gap:0.45rem;
  padding:0.75rem;
  border-radius:12px;
  border:1px solid rgba(148,163,184,0.35);
  background:rgba(248,250,252,0.92);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.55);
  max-height:220px;
  overflow-y:auto;
}

.tag-chip {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  border:1px solid rgba(148,163,184,0.45);
  background:#f8fafc;
  color:#1f2937;
  border-radius:999px;
  padding:0.38rem 0.85rem;
  font-size:0.8rem;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;
  transition:background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tag-chip--preview {
  white-space:nowrap;
}

.tag-chip--list {
  width:100%;
  justify-content:flex-start;
  border-radius:12px;
  padding:0.45rem 0.85rem;
  background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);
}

.tag-chip:hover {
  border-color:#2b6cb0;
  color:#1a365d;
  transform:translateY(-1px);
}

.tag-chip:focus-visible {
  outline:3px solid rgba(56,120,224,0.35);
  outline-offset:2px;
}

.tag-chip.is-active {
  background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);
  border-color:rgba(37,99,235,0.9);
  color:#fff;
  box-shadow:0 12px 24px rgba(37,99,235,0.28);
}

.tag-chip.is-active::after {
  content:'\2713';
  font-size:0.75rem;
}

.tag-chip.is-compatible:not(.is-active) {
  border-color:rgba(14,165,233,0.55);
  background:rgba(125,211,252,0.2);
  color:#0c4a6e;
  box-shadow:0 0 0 1px rgba(14,165,233,0.18);
}

.tag-chip.is-compatible:not(.is-active):hover {
  border-color:rgba(14,165,233,0.75);
  background:rgba(56,189,248,0.22);
  color:#0b5aa0;
}

.tag-chip__label {
  white-space:nowrap;
}

.tag-chip__count {
  font-size:0.72rem;
  font-weight:600;
  color:#475569;
}

.tag-chip--list .tag-chip__count {
  color:#1d4ed8;
}

.toggle-tags-btn {
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  border:1px solid rgba(37,99,235,0.25);
  background:rgba(59,130,246,0.08);
  color:#1d4ed8;
  font-weight:700;
  font-size:0.75rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  cursor:pointer;
  padding:0.45rem 0.95rem;
  border-radius:999px;
  align-self:flex-start;
  transition:background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.toggle-tags-btn:hover {
  background:rgba(37,99,235,0.12);
  border-color:rgba(37,99,235,0.45);
  transform:translateY(-1px);
}

.toggle-tags-btn:focus-visible {
  outline:3px solid rgba(56,120,224,0.35);
  outline-offset:2px;
}

.toggle-tags-btn::after {
  content:"";
  width:0.6rem;
  height:0.6rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231d4ed8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  transition:transform 0.2s ease;
}

.toggle-tags-btn[data-state="expanded"]::after {
  transform:rotate(180deg);
}

.tag-placeholder {
  color:#6b7280;
  font-size:0.85rem;
}

.offers-section .section-title { margin-bottom:1rem; }
.offers-section .section-title h2 { margin-bottom:0.5rem; font-size:1.5rem; }

.offers-list,
.offers-grid {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.offers-list .offer-card__media{
  flex-basis:240px;
  min-height:160px;
}

.offers-list .offer-card{align-items:stretch;}

@media (max-width: 900px){
  .offers-list .offer-card{flex-direction:column;}
  .offers-list .offer-card__media{flex-basis:auto;width:100%;aspect-ratio:16/9;min-height:0;}
}

.offer-tags {
  margin-top:0.75rem;
  font-size:0.82rem;
  font-weight:600;
  letter-spacing:0.01em;
  color:#1d4ed8;
  line-height:1.5;
  word-break:break-word;
}

.user-dashboard {
  display:flex;
  flex-direction:column;
  height:100%;
  width:100%;
}

.user-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:1.5rem;
  padding-bottom:1rem;
  border-bottom:1px solid #eee;
}

.user-header h2 {
  margin:0;
  font-size:1.5rem;
}

.user-header .mobile-browse-offers {
  display:none;
}

@media (max-width:992px){
  .main-layout {
    flex-direction:column;
    height:auto;
    margin-top:110px;
  }
  .map-container {
    position:relative;
    width:100%;
    height:50vh;
    top:0;
  }
  .content-container {
    margin-left:0;
    width:100%;
    height:auto;
    padding:10px;
  }
  .filters-panel { padding:16px; }
}

@media (max-width:576px){
  .main-layout { margin-top:100px; }
  .map-container { height:40vh; }
  .offers-section { padding:15px; }
  .filters-panel { padding:15px; gap:0.75rem; }
  .filters-row { flex-direction:column; align-items:flex-start; gap:0.6rem; }
  .filters-label { margin-right:0; }
  .sort-buttons { width:100%; }
  .toggle-tags-btn {
    margin-left:0;
    width:100%;
    justify-content:center;
  }
  .user-header { flex-direction:column; gap:1rem; align-items:flex-start; }
  .user-header h2 { font-size:1.3rem; }
  .user-header .mobile-browse-offers,
  .user-header #dashboardAddOffer {
    width:100%;
    justify-content:center;
  }
  .user-header .mobile-browse-offers {
    display:flex;
  }
}

.toast-container {
  position:fixed;
  top:16px;
  right:16px;
  z-index:1400;
  display:flex;
  flex-direction:column;
  gap:10px;
  pointer-events:none;
}

.toast-lite {
  min-width:280px;
  max-width:92vw;
  background:#fff;
  color:#0f172a;
  border-radius:10px;
  box-shadow:0 10px 20px rgba(0,0,0,.12),0 3px 6px rgba(0,0,0,.08);
  padding:12px 14px 12px 12px;
  display:grid;
  grid-template-columns:28px 1fr auto;
  align-items:center;
  gap:10px;
  transform:translateY(-8px);
  opacity:0;
  transition:transform .18s ease, opacity .18s ease;
  pointer-events:auto;
}

.toast-lite.show {
  transform:translateY(0);
  opacity:1;
}

.toast-lite .toast-icon {
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:14px;
  color:#fff;
}

.toast-lite .toast-msg { line-height:1.45; font-size:.95rem; }
.toast-lite .toast-close {
  background:transparent;
  border:0;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  color:#64748b;
  padding:4px;
}
.toast-lite .toast-close:hover { color:#0f172a; }

.toast-success .toast-icon { background:#16a34a; }
.toast-info .toast-icon { background:#1e6fba; }
.toast-warning .toast-icon { background:#f59e0b; }
.toast-error .toast-icon { background:#dc2626; }

@media (max-width:576px){
  .toast-container { top:10px; right:10px; gap:8px; }
  .toast-lite { padding:10px 12px; }
}

.map-info-window { font-size:.95rem; max-width:320px; }
.map-info-window h3 { font-size:1.05rem; margin:0 0 .4rem; text-align:center; }
.map-info-window p { margin:.2rem 0; font-size:.9rem; }
.map-info-window .mini-actions { margin-top:.55rem; display:flex; gap:.5rem; justify-content:center; }
.map-info-window .btn-mini {
  display:inline-block;
  padding:.35rem .6rem;
  border-radius:6px;
  border:0;
  background:var(--primary);
  color:#fff;
  font-size:.8rem;
  cursor:pointer;
  text-decoration:none;
}

/* zmniejszony przycisk zamknięcia w oknie mapy */
.gm-ui-hover-effect {
  transform:scale(.7) !important;
  transform-origin:top right;
  top:4px !important;
  right:4px !important;
}

/* zmniejszenie marginesów w oknie informacji na mapie */
.gm-style-iw-c { padding:8px !important; }


.voronoi-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  padding:0.38rem 0.7rem;
  border-radius:9999px;
  border:1px solid rgba(17,17,17,0.85);
  background:rgba(255,255,255,0.97);
  color:#111111;
  font-weight:600;
  font-size:0.9rem;
  line-height:1.12;
  font-variant-numeric:tabular-nums;
  letter-spacing:0.01em;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(15,23,42,0.18), 0 10px 26px rgba(15,23,42,0.18);
  text-shadow:none;
  pointer-events:none;
}

.voronoi-pill--compact {
  padding:0.32rem 0.6rem;
  font-size:0.84rem;
  gap:0.32rem;
}

.voronoi-label {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:0.16rem;
  padding:0.45rem 0.7rem;
  white-space:normal;
  min-width:0;
  color:inherit;
}

.voronoi-label[data-density="compact"] {
  font-size:0.86rem;
  padding:0.35rem 0.6rem;
  gap:0.12rem;
}

.voronoi-label__stack {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.12rem;
}

.voronoi-label__value {
  font-weight:700;
  font-size:1rem;
  letter-spacing:0.018em;
}

.voronoi-label[data-density="compact"] .voronoi-label__value {
  font-size:0.94rem;
}

.voronoi-label__price {
  font-size:0.82rem;
  font-weight:600;
  opacity:0.92;
}

.voronoi-label__badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.08rem 0.35rem;
  border-radius:9999px;
  border:1px solid rgba(220,38,38,0.45);
  background:rgba(248,113,113,0.18);
  color:#991b1b;
  font-size:0.64rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.voronoi-label[data-fallback="true"] {
  border-color:rgba(153,27,27,0.75);
  color:#7f1d1d;
  box-shadow:0 1px 2px rgba(153,27,27,0.22), 0 12px 28px rgba(153,27,27,0.18);
}

.voronoi-label[data-fallback="true"] .voronoi-label__badge {
  background:rgba(248,113,113,0.24);
  border-color:rgba(185,28,28,0.55);
  color:#7f1d1d;
}

.voronoi-connector-label {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.28rem;
  color:#111111;
}

.voronoi-connector-label strong {
  font-weight:700;
}

.maps-key-prompt {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 20px;
  background:linear-gradient(180deg, rgba(15,23,42,0.55), rgba(15,23,42,0.45));
  backdrop-filter:blur(6px);
  z-index:210;
  opacity:0;
  pointer-events:none;
  transition:opacity 200ms ease;
}

.maps-key-prompt--visible {
  opacity:1;
  pointer-events:auto;
}

.maps-key-prompt__card {
  width:min(420px, 100%);
  background:#ffffff;
  border:1px solid rgba(15,23,42,0.08);
  border-radius:18px;
  padding:22px 24px;
  box-shadow:0 18px 40px rgba(15,23,42,0.22);
  display:flex;
  flex-direction:column;
  gap:14px;
  color:#0f172a;
}

.maps-key-prompt__title {
  margin:0;
  font-size:1.05rem;
  font-weight:700;
}

.maps-key-prompt__message {
  margin:0;
  font-size:0.92rem;
  line-height:1.4;
  color:#1f2937;
}

.maps-key-prompt__form {
  display:flex;
  flex-direction:column;
  gap:12px;
}

.maps-key-prompt__input {
  width:100%;
  padding:0.55rem 0.75rem;
  border-radius:12px;
  border:1px solid rgba(148,163,184,0.6);
  font-size:0.95rem;
  font-family:inherit;
  color:#0f172a;
  background:#f9fafb;
}

.maps-key-prompt__input:focus {
  outline:3px solid rgba(59,130,246,0.35);
  outline-offset:2px;
}

.maps-key-prompt__actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.maps-key-prompt__submit,
.maps-key-prompt__dismiss {
  border-radius:9999px;
  border:1px solid #111111;
  background:#ffffff;
  color:#111111;
  font-size:0.9rem;
  font-weight:600;
  padding:0.45rem 0.9rem;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(15,23,42,0.12);
  transition:transform 160ms ease, box-shadow 160ms ease;
}

.maps-key-prompt__submit:hover,
.maps-key-prompt__dismiss:hover {
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(15,23,42,0.18);
}

.maps-key-prompt__dismiss {
  border-color:rgba(148,163,184,0.8);
  color:#1f2937;
}

.maps-key-prompt__hint {
  margin:0;
  font-size:0.78rem;
  color:#475569;
}

.voronoi-indicator {
  width:18px;
  height:18px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:700;
  background:rgba(255,255,255,0.96);
  border:1px solid currentColor;
  color:#2563EB;
  box-shadow:0 2px 6px rgba(15,23,42,0.3);
  pointer-events:none;
}

.voronoi-indicator--hidden {
  color:#2563EB;
}

.voronoi-indicator--supplementary {
  color:#DC2626;
}

@media (max-width:768px){
  .map-info-window { font-size:.9rem; max-width:400px; }
  .map-info-window h3 { font-size:1rem; white-space:nowrap; text-align:center; }
  .map-info-window p { font-size:.85rem; white-space:nowrap; }
  .map-info-window .mini-actions { flex-wrap:wrap; }
  .gm-ui-hover-effect {
    transform:scale(.7) !important;
    transform-origin:top right;
    top:2px !important;
    right:2px !important;
  }
}

.confirm-modal {
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,0.45);
  z-index:1300;
  padding:16px;
}

.confirm-modal.show { display:flex; }

.confirm-box {
  width:100%;
  max-width:420px;
  background:#fff;
  border-radius:12px;
  box-shadow:var(--shadow-lg);
  padding:20px 20px 16px;
  transform:scale(0.98);
  opacity:0;
  transition:transform .15s ease, opacity .15s ease;
}

.confirm-modal.show .confirm-box {
  transform:scale(1);
  opacity:1;
}

.confirm-title {
  margin:0 0 8px;
  font-size:1.15rem;
  font-weight:700;
  color:var(--darker);
}

.confirm-message {
  margin:0 0 16px;
  color:#475569;
  font-size:.95rem;
  line-height:1.5;
}

.confirm-actions {
  display:flex;
  gap:10px;
  justify-content:flex-end;
}

.confirm-btn {
  border:none;
  border-radius:8px;
  padding:.55rem 1rem;
  font-weight:600;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .08s ease, background .2s ease, color .2s ease;
}

.confirm-btn:hover { transform:translateY(-1px); }

.confirm-cancel {
  background:#eef2f7;
  color:#0f172a;
}

.confirm-cancel:hover { background:#e6ebf3; }

.confirm-yes {
  background:var(--primary);
  color:#fff;
  box-shadow:var(--shadow-sm);
}

.confirm-yes:hover { box-shadow:var(--shadow-md); }
