/* Estado del servicio — CONQI (CON-169).
   Brand tokens per DESIGN.md: teal primary, Poppins display / Inter body,
   capsule badges, flat elevation, light + dark via prefers-color-scheme. */

@font-face {
  font-family: "Poppins";
  src: url("Poppins-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("Inter-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #f7f9fa;
  --card: #ffffff;
  --border: #e2e8ea;
  --fg: #0b0b0b;
  --muted: #5f6b6e;
  --primary: #067086;
  --logo-accent: #067086;
  --selection: #c5e0e4;

  --ok: #047857;
  --ok-bg: #e5f5ec;
  --warn: #b45309;
  --warn-bg: #fdf1d7;
  --bad: #b91c1c;
  --bad-bg: #fdeaea;
  --gray-pill-bg: #edf1f2;

  --bar-ok: #10b981;
  --bar-warn: #f59e0b;
  --bar-bad: #ef4444;
  --bar-none: #d7dee0;

  --watermark-opacity: 0.05;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #14181a;
    --card: #1b2124;
    --border: #2a3236;
    --fg: #f2f5f5;
    --muted: #97a3a7;
    --primary: #5ca3af;
    --logo-accent: #5ca3af;
    --selection: #2e4a51;

    --ok: #34d399;
    --ok-bg: #0d2f23;
    --warn: #fbbf24;
    --warn-bg: #33260a;
    --bad: #f87171;
    --bad-bg: #3a1616;
    --gray-pill-bg: #262e31;

    --bar-ok: #10b981;
    --bar-warn: #f59e0b;
    --bar-bad: #ef4444;
    --bar-none: #333c40;

    --watermark-opacity: 0.06;
  }
}

* {
  box-sizing: border-box;
}

::selection {
  background: var(--selection);
}

html {
  height: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  background: var(--bg);
  color: var(--fg);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1,
h2 {
  font-family: "Poppins", "Inter", system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0;
}

a {
  color: var(--primary);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* --- layout --- */

.site-header,
main,
.site-footer {
  position: relative;
  z-index: 1;
  width: min(720px, 100% - 48px);
  margin-inline: auto;
}

.site-header {
  padding: 36px 0 8px;
}

.logo {
  display: inline-flex;
  color: var(--fg);
}

main {
  padding-bottom: 24px;
}

h1 {
  font-size: 1.9rem;
  margin-top: 28px;
}

.arrow-accent {
  margin-top: 6px;
}

.lede {
  color: var(--muted);
  margin: 10px 0 28px;
}

.site-footer {
  padding: 20px 0 40px;
  color: var(--muted);
  font-size: 0.85rem;
}

.noscript {
  position: relative;
  z-index: 1;
  width: min(720px, 100% - 48px);
  margin: 16px auto;
}

/* Q watermark bleeding off the corner (brand signature, DESIGN.md). */
.watermark {
  position: fixed;
  right: -110px;
  bottom: -130px;
  width: 460px;
  height: 460px;
  z-index: 0;
  pointer-events: none;
  opacity: var(--watermark-opacity);
  color: var(--primary);
}

.watermark svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* --- cards --- */

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 20px;
}

.card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.card h2 {
  font-size: 1.05rem;
}

/* --- banner --- */

.banner-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.dot {
  flex: none;
  width: 13px;
  height: 13px;
  border-radius: 999px;
  margin-top: 7px;
}

.dot-ok {
  background: var(--ok);
  box-shadow: 0 0 0 5px var(--ok-bg);
}

.dot-warn {
  background: var(--warn);
  box-shadow: 0 0 0 5px var(--warn-bg);
}

.dot-bad {
  background: var(--bad);
  box-shadow: 0 0 0 5px var(--bad-bg);
}

.dot-none {
  background: var(--muted);
  box-shadow: 0 0 0 5px var(--gray-pill-bg);
}

.banner-title {
  font-family: "Poppins", "Inter", sans-serif;
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: -0.01em;
  margin: 0;
}

.banner-desc {
  color: var(--muted);
  margin: 4px 0 0;
}

.banner.is-stale .banner-title,
.banner.is-stale .banner-desc {
  color: var(--muted);
}

.updated {
  color: var(--muted);
  font-size: 0.82rem;
  margin: 16px 0 0;
}

/* --- notices (stale / error) --- */

.notice {
  border-radius: 16px;
  padding: 14px 18px;
  margin-bottom: 20px;
  font-size: 0.92rem;
  background: var(--warn-bg);
  color: var(--warn);
  border: 1px solid transparent;
}

.notice strong {
  font-weight: 600;
}

/* --- pills (capsule badges: tinted bg, colored text, no border) --- */

.pill {
  display: inline-block;
  border-radius: 999px;
  padding: 3px 12px;
  font-size: 0.8rem;
  font-weight: 500;
  white-space: nowrap;
}

.pill-ok {
  background: var(--ok-bg);
  color: var(--ok);
}

.pill-warn {
  background: var(--warn-bg);
  color: var(--warn);
}

.pill-bad {
  background: var(--bad-bg);
  color: var(--bad);
}

.pill-gray {
  background: var(--gray-pill-bg);
  color: var(--muted);
}

/* --- current month --- */

.big-number {
  font-family: "Poppins", "Inter", sans-serif;
  font-weight: 600;
  font-size: 2.6rem;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.big-number.tier-ok {
  color: var(--ok);
}

.big-number.tier-bad {
  color: var(--bad);
}

.current-row {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}

.current-sub {
  color: var(--muted);
  font-size: 0.88rem;
  margin: 10px 0 0;
}

/* --- bar strips (daily + monthly) --- */

.strip {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  margin-top: 18px;
}

.strip .bar {
  flex: 1;
  height: 40px;
  border-radius: 3px;
  min-width: 0;
  transition: opacity 0.15s ease-out;
}

.strip .bar:hover {
  opacity: 0.8;
}

.bar.tier-ok {
  background: var(--bar-ok);
}

.bar.tier-warn {
  background: var(--bar-warn);
}

.bar.tier-bad {
  background: var(--bar-bad);
}

.bar.tier-none {
  background: var(--bar-none);
}

.bar.in-progress {
  opacity: 0.55;
}

.strip-labels {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.78rem;
  margin-top: 6px;
}

/* Monthly strip: label under each bar. */
.month-strip {
  display: flex;
  gap: 3px;
  margin-top: 18px;
}

.month-cell {
  flex: 1;
  min-width: 0;
  /* With a short history (the strip grows to 12 months) keep bars compact
     instead of stretching a lone month across the whole card. */
  max-width: 56px;
  text-align: center;
}

.month-cell .bar {
  display: block;
  width: 100%;
  height: 40px;
  border-radius: 3px;
}

.month-cell .month-label {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
  margin-top: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.legend {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  color: var(--muted);
  font-size: 0.78rem;
  margin-top: 14px;
}

.legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

/* --- method + footnotes --- */

.method {
  padding: 4px 2px 0;
}

.method h2 {
  font-size: 0.98rem;
  margin-bottom: 8px;
}

.method p {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0;
}

.footnote {
  color: var(--muted);
  font-size: 0.8rem;
  margin: 14px 0 0;
}

.empty-note {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 0;
}

@media (max-width: 480px) {
  .site-header,
  main,
  .site-footer,
  .noscript {
    width: calc(100% - 32px);
  }

  h1 {
    font-size: 1.55rem;
  }

  .big-number {
    font-size: 2.1rem;
  }

  /* Too narrow for 31 labeled slots: tighten gaps. */
  .strip,
  .month-strip {
    gap: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
  }
}
