/* ── Reset & base ─────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #212121;
  --bg2:       #2a2a2a;
  --bg3:       #333333;
  --bg-input:  rgba(255,255,255,0.05);
  --cream:     #E2DDD4;
  --cream2:    rgba(226,221,212,0.55);
  --cream3:    rgba(226,221,212,0.10);
  --accent:    #3d52a0;
  --border:    rgba(226,221,212,0.10);
  --border-md: rgba(226,221,212,0.18);
  --radius:    16px;
  --radius-sm: 8px;
  --font-serif:'Fraunces', serif;
  --font-mono: 'DM Mono', monospace;
  --font-sans: 'DM Sans', sans-serif;
  --ok:        #52b788;
  --error:     #e63946;
}

body.day {
  --bg:        #F0EDE8;
  --bg2:       #E8E4DE;
  --bg3:       #DDD9D2;
  --bg-input:  rgba(0,0,0,0.04);
  --cream:     #1a1814;
  --cream2:    rgba(26,24,20,0.55);
  --cream3:    rgba(26,24,20,0.10);
  --border:    rgba(26,24,20,0.12);
  --border-md: rgba(26,24,20,0.22);
}

html, body { height: 100%; }
body {
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--cream);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

* { scrollbar-width: thin; }
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

/* ── Layout ───────────────────────────────────── */

.page {
  max-width: 680px;
  margin: 0 auto;
  padding: 48px 24px 80px;
}

/* ── Header ───────────────────────────────────── */

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--cream2);
  text-decoration: none;
  transition: color .15s;
  margin-bottom: 20px;
}
.back-link:hover { color: var(--cream); }
.back-link .material-icons { font-size: 16px; }

.page-title {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  margin-bottom: 44px;
}

/* ── Summary bar ──────────────────────────────── */

.summary-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.refresh-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  border-radius: 6px;
  background: var(--cream3);
  color: var(--cream2);
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
  border: 0.5px solid var(--border);
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap;
  margin-left: auto;
}
.refresh-btn:hover { background: var(--border-md); color: var(--cream); border-color: var(--border-md); }
.refresh-btn .material-icons { font-size: 14px; }
.refresh-btn.spinning .material-icons { animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.summary-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  background: var(--bg2);
  border: 0.5px solid var(--border);
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
  font-family: var(--font-sans);
  color: var(--cream);
}
.summary-chip:hover { border-color: var(--border-md); }
.summary-chip.info { cursor: default; color: var(--cream2); }
.summary-chip.info:hover { border-color: var(--border); }

.summary-chip .dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.summary-chip.ok   .dot { background: var(--ok); }
.summary-chip.err  .dot { background: var(--error); }
.summary-chip.pend .dot { background: var(--cream2); animation: pulse 1.2s ease-in-out infinite; }
.summary-chip.info .dot { background: var(--accent); }

/* Pill activo — fondo tenue del color + texto contrastado en ambos temas */
.summary-chip.ok.active  { background: rgba(82,183,136,.15); border-color: rgba(82,183,136,.45); color: #2d7a5a; }
.summary-chip.err.active { background: rgba(230,57,70,.12);  border-color: rgba(230,57,70,.45);  color: #b02030; }
body.day .summary-chip.ok.active  { color: #1a5e3e; }
body.day .summary-chip.err.active { color: #8b1520; }

@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

/* ── Country block ────────────────────────────── */

.country-list { display: flex; flex-direction: column; gap: 10px; }
.country-block { display: flex; flex-direction: column; }

.country-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: var(--bg2);
  border: 0.5px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  user-select: none;
  transition: border-color .15s, box-shadow .15s;
}
.country-header:hover { border-color: var(--border-md); }
.country-block.open .country-header {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* Activo — verde */
.country-block.country-active > .country-header {
  border-color: rgba(76,175,125,0.35);
  background: rgba(76,175,125,0.05);
}
.country-block.country-active > .country-header:hover {
  border-color: rgba(76,175,125,0.55);
  box-shadow: 0 2px 16px rgba(76,175,125,0.10);
}
.country-block.country-active.open > .country-header { border-bottom-color: transparent; }
.country-block.country-active.open .services-list {
  border-color: rgba(76,175,125,0.35);
  border-top: none;
}

/* Soon — amarillo (con o sin servicios) */
.country-block.country-soon-block > .country-header {
  border-color: rgba(200,160,40,0.30);
  background: rgba(200,160,40,0.04);
}
.country-block.country-soon-block > .country-header:hover {
  border-color: rgba(200,160,40,0.50);
}
.country-block.country-soon-block.open > .country-header { border-bottom-color: transparent; }
.country-block.country-soon-block.open .services-list {
  border-color: rgba(200,160,40,0.30);
  border-top: none;
}

/* country-header-soon: sin servicios, no clickeable */
.country-header-soon {
  cursor: default;
  pointer-events: none;
}

/* Inactivo */
.country-header.inactive {
  opacity: 0.40;
  cursor: default;
  pointer-events: none;
}

.country-name { font-size: 15px; font-weight: 500; flex: 1; }

/* Badges de estado — igual que .connected-label en landing */
.country-active-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #3a9e6a;
}

.country-soon {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #a07800;
}

/* Línea separadora entre header y servicios */
.country-block.country-active.open .services-list::before {
  content: '';
  display: block;
  height: 1.5px;
  background: rgba(76,175,125,0.35);
  flex-shrink: 0;
}
.country-block.country-soon-block.open .services-list::before {
  content: '';
  display: block;
  height: 1.5px;
  background: rgba(200,160,40,0.30);
  flex-shrink: 0;
}

.country-toggle { color: var(--cream2); transition: transform .2s; flex-shrink: 0; }
.country-toggle .material-icons { font-size: 20px; }
.country-block.open .country-toggle { transform: rotate(180deg); }

/* ── Services ─────────────────────────────────── */

.services-list {
  display: none;
  flex-direction: column;
  border: 0.5px solid var(--border);
  border-top: none;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  overflow: hidden;
}
.country-block.open .services-list { display: flex; }

.service-card + .service-card { border-top: 0.5px solid var(--border); }

.service-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px 13px 36px;
  cursor: pointer;
  user-select: none;
  transition: background .12s;
}
.service-header:hover { background: var(--cream3); }
.service-card.open .service-header { background: var(--cream3); }

.service-status-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  background: var(--cream2);
  transition: background .3s;
}
.service-status-dot.ok       { background: var(--ok); }
.service-status-dot.error    { background: var(--error); }
.service-status-dot.checking { background: var(--cream2); animation: pulse 1.2s ease-in-out infinite; }

.service-info { flex: 1; min-width: 0; }
.service-name {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 6px;
}

.service-layer-count-right {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--cream2);
  white-space: nowrap;
  flex-shrink: 0;
}

.badge {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--cream2);
  font-weight: 400;
  letter-spacing: 0;
}

/* Soon-block con servicios: borde amarillo al abrir */
.country-block.country-soon-block.open .services-list {
  border-color: rgba(200,160,40,0.30);
}

/* Inactive con servicios */
.country-header-inactive-services {
  cursor: pointer;
}


/* Pill 'próximamente' */
.summary-chip.soon-chip      { color: var(--cream); }
.summary-chip.soon-chip .dot { background: #c8a028; }
.summary-chip.soon-chip.active {
  background: rgba(200,160,40,0.12);
  border-color: rgba(200,160,40,0.45);
  color: #a07800;
}
body.day .summary-chip.soon-chip.active { color: #7a5c00; }

/* Pill 'todos' activo — removed */

.service-toggle { color: var(--cream2); transition: transform .2s; flex-shrink: 0; }
.service-toggle .material-icons { font-size: 18px; }
.service-card.open .service-toggle { transform: rotate(180deg); }

/* ── Layers panel ─────────────────────────────── */

.layers-panel {
  display: none;
  padding: 8px 18px 14px 36px;
  border-top: 0.5px solid var(--border);
}
.service-card.open .layers-panel { display: block; }

.layers-grid-scroll {
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
}

.layers-grid {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.layer-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 6px;
}

.layer-geom {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  overflow: visible;
  position: relative;
}
.layer-geom .material-icons { color: var(--cream2); line-height: 1; font-size: 18px; }
.search-geom-icon { overflow: visible; position: relative; }

.layer-text { flex: 1; min-width: 0; }
.layer-name {
  font-size: 13px;
  color: var(--cream);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.layer-key {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--cream2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  margin-top: 1px;
}

.layer-count {
  font-size: 10px;
  font-family: var(--font-mono);
  color: var(--cream2);
  opacity: 0.7;
  white-space: nowrap;
  flex-shrink: 0;
}
body.day .layer-count { color: #9a9590; }
body.day .layer-count-restricted { color: #e57373; }

/* Capas restringidas — superan window.CLIP_THRESHOLDS.display */
.layer-row-restricted {
  opacity: 0.75;
}
.layer-name-restricted  { color: #e57373; }
.layer-key-restricted   { color: #e57373; opacity: 0.7; }
.layer-geom-restricted .material-icons { color: #e57373; }
.layer-count-restricted { color: #e57373; }
body.day .layer-count-restricted { color: #e57373; }
.layer-restricted-icon {
  font-size: 14px;
  color: #e57373;
  flex-shrink: 0;
  pointer-events: none;
}

.layers-empty { font-size: 13px; color: var(--cream2); padding: 10px 0; text-align: center; }

/* ── Responsive ───────────────────────────────── */

@media (max-width: 600px) {
  .page { padding: 28px 16px 60px; }
  .page-title { font-size: 22px; }

  .refresh-btn { display: none; }

  .summary-bar {
    justify-content: center;
  }
}
