/* SpinReport components.css — buttons, library, map, accordion, tables */
.btn{
  display:inline-block;
  font-weight:700;
  font-size:14px;
  padding:.7em 1.2em;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--ff-body);
}
.btn-primary{background:var(--accent); color:#06201f;}
.btn-primary:hover{background:#34a892; color:#06201f;}
.btn-outline{background:transparent; border-color:var(--text-on-dark); color:var(--text-on-dark);}
.btn-outline:hover{background:rgba(255,255,255,.1);}
.btn-outline-dark{background:transparent; border-color:var(--poi); color:var(--poi);}
.btn-danger{background:var(--casino); color:#fff;}

.point-type{
  display:inline-flex;
  align-items:center;
  gap:.4em;
  font-size:12px;
  font-weight:700;
  padding:.15em .55em;
  border-radius:6px;
  color:#fff;
}
.point-type.hotel-casino{background:var(--casino);}
.point-type.playa,.point-type.mirador{background:var(--poi);}
.point-type.transporte{background:#4b6b64;}

/* route builder */
.route-app{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  margin:1.5em 0;
}
@media (min-width:900px){
  .route-app{grid-template-columns:1.1fr .9fr;}
}
.map-panel{
  background:var(--dark-bg);
  border-radius:var(--radius);
  padding:16px;
  color:var(--text-on-dark);
}
.map-panel svg{width:100%; height:auto; display:block;}
.map-status{font-size:14px; margin:10px 0 0; color:var(--text-on-dark);}
.map-empty-msg{font-size:14px; opacity:.85;}

.point-lib{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:520px;
  overflow:auto;
}
.point-btn{
  width:100%;
  text-align:left;
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:10px 12px;
  cursor:pointer;
  font-size:14px;
}
.point-btn[aria-pressed="true"]{
  border-color:var(--accent);
  background:#e6f7f3;
  box-shadow:inset 0 0 0 2px var(--accent);
}
.point-btn .pt-title{font-weight:700; flex:1;}
.point-btn .pt-note{display:block; font-weight:400; font-size:12px; color:#555;}

.route-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;}
.restored-banner{
  background:#fff;
  border:1px solid var(--accent);
  border-radius:8px;
  padding:10px 14px;
  font-size:14px;
  margin-bottom:14px;
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}

/* accordion */
.accordion-item{border-bottom:1px solid var(--border);}
.accordion-item h3{margin:0;}
.accordion-trigger{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  padding:16px 4px;
  font-family:var(--ff-head);
  font-size:18px;
  font-weight:600;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  color:var(--text);
}
.accordion-trigger .icon{flex-shrink:0; font-size:20px; color:var(--accent);}
.accordion-panel{padding:0 4px 16px;}
.accordion-panel[hidden]{display:none!important;}

/* compare table wrapper for scroll on mobile */
.table-scroll{overflow-x:auto; margin:1em 0;}

.sponsored-note{font-size:12px; color:#555;}
.affiliate-link::after{content:" (enlace patrocinado)"; font-size:12px; color:#555;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important; transition-duration:.001ms!important;}
}
