/* Shared styles for the module pages (list-builder.html, cold-email-builder.html). */

html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
body { font-family: 'Montserrat', ui-sans-serif, system-ui, sans-serif; }
h1, h2, h3, .font-display, nav a, button, .btn-brand, .eyebrow, .mono { font-family: 'Roboto Mono', ui-monospace, monospace; }

.btn-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 600;
  font-size: 13px;
  color: #00B2FF;
  background: rgba(0,178,255,0.07);
  border: 1.5px solid #00B2FF;
  border-radius: 9999px;
  padding: .85rem 1.6rem;
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .2s ease;
}
.btn-brand:hover {
  background: #00B2FF;
  color: #0A1A2F;
  box-shadow: 0 0 0 1px #00B2FF, 0 12px 28px -10px rgba(0,178,255,0.55);
  transform: translateY(-1px);
}
.btn-brand:active { transform: translateY(0); }
.btn-brand:disabled { opacity: .7; cursor: progress; transform: none; }

a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid #00B2FF; outline-offset: 3px; border-radius: 6px; }

.tabular { font-variant-numeric: tabular-nums; }

/* Surfaces: base (page) → elevated (panel) → floating (gate card) */
.panel {
  background: #0E2136;
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 0 60px -10px rgba(0,178,255,0.18), 0 30px 60px -30px rgba(2,8,18,0.9);
}
.tile { background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.09); }

.section-label {
  display: flex; align-items: center; gap: .75rem;
  font-family: 'Roboto Mono', ui-monospace, monospace;
  font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  color: #A6AEB8;
}
.section-label::before { content: ""; width: 7px; height: 7px; border-radius: 9999px; background: currentColor; flex-shrink: 0; }
.section-label::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.1); }
.section-label.is-bad::before { background: #FF8A00; }
.section-label.is-good::before { background: #00B2FF; }
.section-label.is-plain::before { display: none; }

.pill {
  display: inline-flex; align-items: center;
  font-family: 'Roboto Mono', ui-monospace, monospace;
  font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: .2rem .55rem; border-radius: 9999px; white-space: nowrap;
}
.pill-brand { color: #00B2FF; background: rgba(0,178,255,0.1); border: 1px solid rgba(0,178,255,0.28); }
.pill-orange { color: #FF8A00; background: rgba(255,138,0,0.1); border: 1px solid rgba(255,138,0,0.3); }
.pill-teal { color: #5CC6DD; background: rgba(13,109,138,0.25); border: 1px solid rgba(13,109,138,0.7); }
.pill-mute { color: #A6AEB8; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); }

/* Gate */
.gate-stage { position: relative; }
.gate-content { transition: opacity .5s ease; }
.gate-content.is-locked {
  filter: blur(7px);
  opacity: .75;
  max-height: 780px;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.gate-overlay {
  position: absolute; inset: 0; z-index: 10;
  display: flex; justify-content: center; align-items: flex-start;
  padding: 2.5rem 1rem 0;
  background: linear-gradient(180deg, rgba(10,26,47,0.35) 0%, rgba(10,26,47,0.15) 45%, #0E2136 100%);
  border-radius: inherit;
  transition: opacity .35s ease;
}
.gate-overlay.is-leaving { opacity: 0; pointer-events: none; }
.gate-card {
  width: 100%; max-width: 30rem;
  background: #0A1A2F;
  border: 1px solid rgba(0,178,255,0.3);
  border-radius: 1.25rem;
  padding: 1.75rem;
  box-shadow: 0 0 0 1px rgba(0,178,255,0.08), 0 24px 60px -18px rgba(0,178,255,0.35), 0 40px 80px -30px rgba(2,8,18,0.95);
}
.gate-input {
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: .75rem;
  padding: .8rem 1rem;
  color: #fff; font-size: 15px;
  transition: border-color .2s ease, background-color .2s ease;
}
.gate-input::placeholder { color: rgba(166,174,184,0.6); }
.gate-input:hover { border-color: rgba(255,255,255,0.3); }
.gate-input:focus { border-color: #00B2FF; background: rgba(0,178,255,0.05); outline: none; }
.gate-input:focus-visible { outline: 2px solid #00B2FF; outline-offset: 2px; border-radius: .75rem; }

@media (max-width: 480px) {
  .gate-overlay { padding: 1.5rem .75rem 0; }
  .gate-card { padding: 1.25rem; }
  .gate-input { padding: .8rem .85rem; }
  .gate-input::placeholder { font-size: 13px; }
}

.reveal-bar { animation: reveal-in .5s cubic-bezier(.16,1,.3,1) both; }
@keyframes reveal-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; animation: none !important; }
}
