.spot-panel {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: min(420px, calc(100vw - 32px));
  background: #fffbf0;
  border: 3px solid #333;
  border-radius: 20px;
  padding: 20px;
  color: #1a2a1a;
  box-shadow: 5px 5px 0px #333;
  z-index: 10;
  font-family: 'Fredoka', sans-serif;
}

.spot-panel__close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: none;
  border: 2px solid #333;
  border-radius: 8px;
  color: #333;
  font-size: 14px;
  cursor: pointer;
  padding: 2px 7px;
  font-weight: bold;
  box-shadow: 2px 2px 0 #333;
  transition: transform .1s, box-shadow .1s;
}
.spot-panel__close:hover {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #333;
}
.spot-panel__close:active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 #333;
}

.spot-panel__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.spot-panel__icon   { font-size: 28px; }
.spot-panel__name   { margin: 0; font-size: 19px; font-weight: 600; font-family: 'Fredoka One', cursive; color: #1a1a2e; }
.spot-panel__region { margin: 2px 0 0; font-size: 13px; color: #555; }

/* Horizon label */
.spot-panel__horizon-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  color: #555;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.spot-panel__confidence { font-weight: 400; color: #888; }

/* Score gauge */
.spot-panel__score { margin-bottom: 14px; }

.spot-panel__gauge {
  padding: 14px 16px 12px;
  border-radius: 14px;
  margin-bottom: 12px;
  border: 2px solid rgba(0,0,0,0.15);
}
.gauge--low    { background: #dcfce7; }
.gauge--medium { background: #fef9c3; }
.gauge--high   { background: #fee2e2; }

.spot-panel__gauge-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 10px;
}

.spot-panel__gauge-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.gauge--low .spot-panel__gauge-label    { color: #16a34a; }
.gauge--medium .spot-panel__gauge-label { color: #d97706; }
.gauge--high .spot-panel__gauge-label   { color: #dc2626; }

.spot-panel__gauge-score {
  font-family: 'Fredoka One', cursive;
  font-size: 32px;
  font-weight: 400;
  color: #1a1a2e;
  line-height: 1;
}
.spot-panel__gauge-max {
  font-size: 13px;
  font-weight: 400;
  color: #999;
  margin-left: 2px;
  font-family: 'Fredoka', sans-serif;
}

.spot-panel__gauge-track {
  height: 6px;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.1);
}
.spot-panel__gauge-fill {
  height: 100%;
  border-radius: 3px;
  transition: width .6s cubic-bezier(0.4, 0, 0.2, 1);
}
.gauge--low .spot-panel__gauge-fill    { background: #22c55e; }
.gauge--medium .spot-panel__gauge-fill { background: #eab308; }
.gauge--high .spot-panel__gauge-fill   { background: #ef4444; }

/* ETA */
.spot-panel__eta {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-radius: 14px;
  border: 2px solid rgba(0,0,0,0.15);
  margin-bottom: 10px;
  font-weight: 700;
  font-size: 15px;
  font-family: 'Fredoka One', cursive;
}
.eta--now   { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.eta--soon  { background: #fef9c3; color: #92400e; border-color: #fde68a; }
.eta--later { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.eta--safe  { background: #dcfce7; color: #15803d; border-color: #86efac; }

.spot-panel__eta-icon  { font-size: 20px; line-height: 1; flex-shrink: 0; }
.spot-panel__eta-label { font-family: 'Fredoka', sans-serif; font-weight: 600; }

/* Trend */
.spot-panel__trend {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 12px;
  border: 2px solid rgba(0,0,0,0.12);
  margin-bottom: 12px;
  font-weight: 600;
  font-size: 14px;
}
.trend--bad     { background: #fee2e2; color: #b91c1c; }
.trend--neutral { background: #f1f5f9; color: #475569; }
.trend--good    { background: #dcfce7; color: #15803d; }

.spot-panel__trend-icon  { font-size: 18px; line-height: 1; }
.spot-panel__trend-label { font-family: 'Fredoka', sans-serif; }

/* Details */
.spot-panel__details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 12px;
  font-size: 13px;
  margin: 0;
}
.spot-panel__details dt { color: #777; }
.spot-panel__details dd { margin: 0; font-weight: 600; color: #1a1a2e; }

.spot-panel__loading,
.spot-panel__no-data,
.spot-panel__error { font-size: 14px; text-align: center; padding: 12px 0; color: #777; }
.spot-panel__error { color: #dc2626; }

/* Feedback */
.spot-panel__feedback {
  border-top: 2px solid #e5e7eb;
  padding-top: 14px;
  text-align: center;
}
.spot-panel__feedback p { margin: 0 0 10px; font-size: 13px; color: #555; }

.spot-panel__feedback-btns {
  display: flex;
  gap: 8px;
  justify-content: center;
}
.spot-panel__feedback-btns button {
  flex: 1;
  padding: 8px 12px;
  border: 2px solid #333;
  border-radius: 10px;
  background: #f1f5f9;
  color: #1a1a2e;
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 2px 2px 0 #333;
  transition: transform .1s, box-shadow .1s;
}
.spot-panel__feedback-btns button:hover:not(:disabled) {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #333;
}
.spot-panel__feedback-btns button:active:not(:disabled) {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 #333;
}
.spot-panel__feedback-btns button:disabled { opacity: .5; cursor: default; }

.spot-panel__feedback-thanks {
  text-align: center;
  color: #16a34a;
  font-size: 14px;
  font-weight: 600;
  margin: 0;
  padding-top: 14px;
  border-top: 2px solid #e5e7eb;
}

/* Push */
.spot-panel__push {
  border-top: 2px solid #e5e7eb;
  padding-top: 12px;
  text-align: center;
}
.spot-panel__push-btn {
  width: 100%;
  padding: 9px 16px;
  border: 2px solid #333;
  border-radius: 10px;
  background: #f1f5f9;
  color: #555;
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 2px 2px 0 #333;
  transition: transform .1s, box-shadow .1s;
}
.spot-panel__push-btn:hover:not(:disabled) {
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #333;
  color: #1a1a2e;
}
.spot-panel__push-btn--active { border-color: #0ea5e9; color: #0284c7; background: #e0f2fe; }
.spot-panel__push-btn:disabled { opacity: .5; cursor: default; }
.spot-panel__push-error { color: #dc2626; font-size: 12px; margin-top: 6px; }

/* ── Mobile ── */
@media (max-width: 480px) {
  .spot-panel {
    bottom: 0;
    left: 0;
    right: 0;
    transform: none;
    width: 100%;
    border-radius: 20px 20px 0 0;
    max-height: 70vh;
    overflow-y: auto;
  }
  .spot-panel__feedback-btns { flex-direction: column; }
  .spot-panel__details { grid-template-columns: 1fr; }
}
