/*
 * TerraSight Design "Glas" (Okt. 2026)
 * Fuer Dummies: Diese Datei wird auf JEDER Seite als letzte geladen und faerbt die ganze Website dunkel
 * (Dunkelgruen, Gold, Glas-Karten). Die alten Dateien bleiben unveraendert darunter liegen.
 * Der Standortbericht selbst (das "Blatt") bleibt bewusst hell wie Papier – gut lesbar und druckbar.
 * Zurueck zum alten Design: diese Datei loeschen.
 */

:root {
  --bg: #0b1f1d;
  --bg-2: #0f2a27;
  --ink: #eef5f2;
  --muted: #9fbdb5;
  --line: rgba(255, 255, 255, 0.10);
  --panel: rgba(255, 255, 255, 0.045);
  --soft: rgba(255, 255, 255, 0.07);
  --brand: #0d7c66;
  --brand-dark: #5fd0ad;      /* Textfarbe fuer Links/Hervorhebungen auf dunklem Grund */
  --brand-deep: #ffffff;
  --accent: #e6b84f;
  --accent-dark: #c9961f;
  --mint: #3fc29a;
  --risk: #ef7a5f;
  --water: #5fa3e0;
  --glass-border: linear-gradient(140deg, rgba(230, 184, 79, 0.75), rgba(13, 124, 102, 0.18) 40%, rgba(255, 255, 255, 0.22));
  --shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  color-scheme: dark;
}

/* ---------- Grundflaeche mit Farbverlauf ---------- */
html { background: var(--bg); }

body {
  color: var(--ink);
  background:
    radial-gradient(900px 620px at 82% -6%, rgba(13, 124, 102, 0.50), transparent 70%),
    radial-gradient(620px 460px at 100% 62%, rgba(230, 184, 79, 0.13), transparent 70%),
    radial-gradient(760px 560px at -8% 108%, rgba(13, 124, 102, 0.28), transparent 70%),
    var(--bg);
  background-attachment: fixed;
}

::selection { background: rgba(230, 184, 79, 0.35); color: #fff; }

h1, h2, h3 { color: #fff; }
h1 { letter-spacing: -0.02em; }
.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.86rem; }
.lead { color: #cfe3dd; }

/* ---------- Kopfzeile ---------- */
.page-header {
  border-bottom-color: rgba(255, 255, 255, 0.08);
  background: rgba(11, 31, 29, 0.94);
}
.page-header:hover {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(11, 31, 29, 0.88);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.3);
}
.brand-mark {
  color: var(--bg);
  background: #fff;
  border: 0;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
.brand-name { color: #fff; }
.nav-links { color: #cfe3dd; }
.nav-links a:hover { color: #fff; }
.nav-links .navi-highlight {
  padding: 9px 18px;
  border-radius: 9px;
  color: #123734;
  background: var(--accent);
  font-weight: 800;
}
.nav-links .navi-highlight:hover { color: #123734; background: #f0c867; }

.navi-profile { background: rgba(255, 255, 255, 0.06); }
.navi-profile:hover, .navi-profile[aria-expanded="true"] { border-color: var(--accent); color: #fff; }
.profile-dropdown { background: #12302c; border-color: rgba(255, 255, 255, 0.12); }
.profile-dropdown a:hover, .profile-dropdown button:hover { color: #fff; }

/* ---------- Buttons ---------- */
.button {
  color: #123734;
  background: var(--accent);
  box-shadow: 0 10px 26px rgba(230, 184, 79, 0.22);
  font-weight: 800;
}
.button:hover { color: #123734; background: #f0c867; box-shadow: 0 14px 34px rgba(230, 184, 79, 0.32); }
.button.secondary {
  color: #fff;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.24);
  box-shadow: none;
}
.button.secondary:hover { color: #fff; border-color: var(--accent); background: rgba(255, 255, 255, 0.08); }
.button.danger { color: #fff; }
.button.ghost-danger { color: #ffb3a5; border-color: rgba(239, 122, 95, 0.45); background: transparent; }
.button.ghost-danger:hover { color: #fff; background: rgba(239, 122, 95, 0.18); }

/* ---------- Glas-Karten (alle Kaesten der Website) ---------- */
.data-card, .source-card, .login-card, .dashboard-panel, .metric-card, .dash-card,
.activity-panel, .impressum-content article, .profile-card, .profil-card, .plan-card,
.al-row, .al-toolbar, .req-card, .fb-card, .admin-panel {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.025));
  border-color: rgba(255, 255, 255, 0.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.data-card:hover, .source-card:hover, .impressum-content article:hover {
  border-color: rgba(230, 184, 79, 0.45);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.35);
}

/* Glas mit leuchtendem Goldrand */
.glass-edge { position: relative; }
.glass-edge::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  background: var(--glass-border);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* ---------- Formulare ---------- */
input, select, textarea { color-scheme: dark; }
.form-field input, .form-field select, .form-field textarea,
.cancel-form textarea, .req-inline select, .al-search input, .al-sort select, select {
  color: #fff !important;
  background: rgba(0, 0, 0, 0.22) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .cancel-form textarea:focus {
  border-color: var(--accent) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(230, 184, 79, 0.18);
}
input::placeholder, textarea::placeholder { color: rgba(207, 227, 221, 0.45) !important; }
.form-field label, .form-field > span { color: #dbe9e5; }
.remember input, .data-category input, .cancel-option input[type="radio"] { accent-color: var(--accent); }
.text-link, .login-footer a, .signup-footer a { color: var(--accent) !important; }

.form-error, .activities-error, .cancel-page .form-error {
  color: #ffd0c6;
  background: rgba(239, 122, 95, 0.12);
  border-color: rgba(239, 122, 95, 0.45);
}
.form-success { color: #bff0dd; background: rgba(63, 194, 154, 0.12); border-color: rgba(63, 194, 154, 0.45); }

.address-suggestions { background: #12302c; }
.data-category { background: rgba(0, 0, 0, 0.18); }
.data-category summary { color: var(--accent); }
.quota-hint { color: var(--ink); }
.quota-hint.empty { background: rgba(239, 122, 95, 0.12); }
.quota-hint.empty i { color: var(--risk); }

/* ---------- Seitenleiste im Kundenbereich ---------- */
.app-sidebar { background: rgba(8, 24, 22, 0.94); border-color: rgba(255, 255, 255, 0.08); backdrop-filter: blur(12px); }
.sidebar-link { color: #b5cfc8; }
.sidebar-link:hover { color: #fff; background: rgba(255, 255, 255, 0.06); }
.sidebar-link.active {
  color: #123734;
  background: var(--accent);
  box-shadow: 0 10px 26px rgba(230, 184, 79, 0.22);
}

/* ---------- Dashboard & Aktivitaeten ---------- */
.dash-card, .al-row { border-left-width: 4px; }
.dash-scale i, .al-scale i { background: #fff !important; box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4); }
.chip.ok, .al-chips .chip.ok { background: rgba(63, 194, 154, 0.16); color: #8fe3c6; }
.chip.mid, .al-chips .chip.mid { background: rgba(230, 184, 79, 0.16); color: #f2cf7c; }
.chip.bad, .al-chips .chip.bad { background: rgba(239, 122, 95, 0.16); color: #ffb3a5; }
.admin-notice { background: rgba(13, 124, 102, 0.18); color: #bff0dd; border-color: rgba(63, 194, 154, 0.35); }
.empty-state { background: rgba(255, 255, 255, 0.03); }
.al-filter { color: #cfe3dd; }
.al-filter.active { color: #123734 !important; background: var(--accent) !important; border-color: var(--accent) !important; }
.tabulator-row.tabulator-selectable:hover { background: rgba(255, 255, 255, 0.05); }

/* ---------- Profil ---------- */
.profile-status.secure { color: #8fe3c6; background: rgba(63, 194, 154, 0.16); }
.profile-status.warning { color: #f2cf7c; background: rgba(230, 184, 79, 0.16); }
.quota-bar { background: rgba(255, 255, 255, 0.10); }
.twofa-qr-wrap, .recovery-codes { background: rgba(0, 0, 0, 0.22); }
.twofa-qr { background: #fff; } /* QR-Code muss hell bleiben, sonst kann die App ihn nicht lesen */
.security-note.warn strong { color: #ffb3a5; }

/* ---------- Rechtsseiten ---------- */
.legal-form { background: rgba(0, 0, 0, 0.18); }
.legal-form p, .cancel-done ul { color: var(--ink); }
.legal-hint { border-left-color: var(--accent); }
.impressum-content a { color: var(--accent); }
.impressum-content a:hover { color: #f0c867; }
.cancel-option:has(input:checked) { border-color: var(--accent); background: rgba(230, 184, 79, 0.08); }
.cancel-form legend { color: var(--accent); }

/* ---------- Fusszeile ---------- */
.page-footer {
  color: var(--muted);
  background: rgba(6, 18, 17, 0.6);
  border-top-color: rgba(255, 255, 255, 0.08);
}
.page-footer a { color: #dbe9e5; }
.page-footer a:hover { color: var(--accent); }
.page-footer .footer-cancel { border-color: rgba(230, 184, 79, 0.6); color: var(--accent); }

/* =========================================================================
 *  STARTSEITE
 * ========================================================================= */
.hero { min-height: calc(100vh - 77px); }
.hero h1 { font-size: clamp(2.5rem, 4.4vw, 4.1rem); line-height: 1.04; max-width: 760px; }
.hero h1 span { color: var(--accent); }
.trust-row { color: #cfe3dd; }

.hero-visual { min-height: auto; display: flex; align-items: center; }
.glass-card {
  position: relative;
  width: 100%;
  border-radius: 20px;
  padding: 1px;
  background: var(--glass-border);
  box-shadow: 0 40px 90px rgba(0, 0, 0, 0.45);
  transition: transform 260ms ease, box-shadow 260ms ease;
}
.hero-visual:hover .glass-card { transform: translateY(-4px); box-shadow: 0 48px 100px rgba(0, 0, 0, 0.5); }
.glass-inner {
  border-radius: 19px;
  padding: 26px 28px 18px;
  background: linear-gradient(160deg, rgba(23, 61, 56, 0.92), rgba(12, 34, 31, 0.92));
  backdrop-filter: blur(14px);
}
.glass-tag {
  position: absolute;
  top: -12px;
  right: 24px;
  z-index: 2;
  padding: 4px 11px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  color: #6b4d0e;
  background: #fdf3dc;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.glass-label { margin: 0; color: var(--muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; }
.glass-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 6px 0 16px; }
.glass-head strong { font-size: 1.3rem; color: #fff; line-height: 1.25; }
.glass-grade {
  display: grid;
  flex: none;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: #7a9a2e;
  font: 400 2.1rem Georgia, "Times New Roman", serif;
  box-shadow: 0 0 34px rgba(122, 154, 46, 0.55);
}
.glass-row {
  display: grid;
  grid-template-columns: 130px 1fr 74px;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 0.95rem;
}
.glass-row em { font-style: normal; color: #cfe3dd; font-size: 0.86rem; text-align: right; }
.glass-track { height: 7px; overflow: hidden; border-radius: 9px; background: rgba(255, 255, 255, 0.08); }
.glass-track i { display: block; height: 100%; border-radius: 9px; background: linear-gradient(90deg, var(--brand), var(--mint)); }
.glass-track i.warn { background: linear-gradient(90deg, var(--accent-dark), var(--accent)); }
.glass-foot { margin: 10px 0 0; color: var(--muted); font-size: 0.78rem; }

.section.alt {
  background: rgba(255, 255, 255, 0.025);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.section h2 { letter-spacing: -0.015em; }
.icon {
  color: var(--accent);
  background: rgba(230, 184, 79, 0.10);
  border: 1px solid rgba(230, 184, 79, 0.28);
}
.source-card span { color: var(--accent); }
.step { border-top-color: rgba(255, 255, 255, 0.12); }
.step-num { color: #123734; background: var(--accent); }
.step:hover .step-num { background: #f0c867; }
.cta {
  position: relative;
  background:
    radial-gradient(500px 260px at 90% 0%, rgba(230, 184, 79, 0.22), transparent 70%),
    linear-gradient(140deg, #0f5a4b, #123734);
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
}
.muster-page { box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45); }
.muster-checks li::before { color: var(--accent) !important; }
.muster-meta { color: var(--muted); }

@media (max-width: 680px) {
  .glass-row { grid-template-columns: 104px 1fr 62px; gap: 10px; font-size: 0.88rem; }
  .glass-inner { padding: 22px 18px 14px; }
  .glass-head strong { font-size: 1.1rem; }
}

/* =========================================================================
 *  STANDORTBERICHT: das Blatt bleibt hell (Papier), Rahmen drumherum dunkel
 * ========================================================================= */
.fb-dialog {
  --ink: #17211f;
  --muted: #60716d;
  --line: #d8e1de;
  --panel: #ffffff;
  --soft: #eef5f2;
  --brand-dark: #075847;
  --brand-deep: #123734;
  color: var(--ink);
  color-scheme: light;
}
.fb-dialog h2 { color: var(--ink); }
.fb-dialog .form-field input, .fb-dialog textarea {
  color: #17211f !important;
  background: #fbfdfc !important;
  border-color: #d8e1de !important;
}
.fb-dialog .button { color: #123734; }
.report-toolbar .button.secondary { color: #fff; }

/* Drucken / PDF: alles hell */
@media print {
  :root {
    --ink: #17211f; --muted: #60716d; --line: #d8e1de; --panel: #fff; --soft: #eef5f2;
    --brand-dark: #075847; --brand-deep: #123734;
    color-scheme: light;
  }
  html, body { background: #fff !important; }
  .sheet { box-shadow: none; }
}

/* =========================================================================
 *  STARTSEITE – neue Bereiche (Zahlen, Fuer wen, Vergleich, FAQ, Bewegung)
 * ========================================================================= */
body { font-size: 1.03rem; }

.stats-band { padding: 8px clamp(20px, 5vw, 72px) 56px; }
.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  overflow: hidden;
}
.stat { padding: 26px 24px; border-right: 1px solid rgba(255, 255, 255, 0.08); }
.stat:last-child { border-right: 0; }
.stat strong { display: block; font-size: clamp(2rem, 3.4vw, 2.8rem); font-weight: 800; line-height: 1; color: #fff; letter-spacing: -0.02em; }
.stat:nth-child(odd) strong { color: var(--accent); }
.stat span { display: block; margin-top: 8px; color: var(--muted); font-size: 0.92rem; }
.source-line { margin: 18px 4px 0; color: #b5cfc8; font-size: 0.92rem; line-height: 1.7; }
.source-line span { margin-right: 8px; color: var(--muted); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }

.audience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.audience-card {
  padding: 26px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
  transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.audience-card:hover { transform: translateY(-4px); border-color: rgba(230, 184, 79, 0.45); box-shadow: 0 22px 50px rgba(0, 0, 0, 0.35); }
.audience-card .icon { margin-bottom: 20px; }
.audience-card h3 { margin: 0 0 8px; font-size: 1.2rem; }
.audience-card p { margin: 0 0 16px; color: var(--muted); }
.audience-card ul { margin: 0; padding: 14px 0 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.audience-card li { display: flex; align-items: center; gap: 10px; padding: 4px 0; color: #dbe9e5; font-size: 0.95rem; }
.audience-card li::before { content: "✓"; color: var(--accent); font-weight: 800; }

.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.compare-card { padding: 26px 28px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.10); }
.compare-card.is-before { background: rgba(255, 255, 255, 0.025); }
.compare-card.is-after {
  position: relative;
  background:
    radial-gradient(420px 220px at 100% 0%, rgba(230, 184, 79, 0.18), transparent 70%),
    linear-gradient(160deg, rgba(13, 124, 102, 0.35), rgba(13, 124, 102, 0.12));
  border-color: rgba(230, 184, 79, 0.45);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}
.compare-tag { margin: 0 0 14px; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.is-after .compare-tag { color: var(--accent); }
.compare-card ul { margin: 0; padding: 0; list-style: none; }
.compare-card li { position: relative; padding: 9px 0 9px 30px; border-top: 1px solid rgba(255, 255, 255, 0.06); color: #b5cfc8; }
.compare-card li:first-child { border-top: 0; }
.compare-card li::before { position: absolute; left: 0; top: 9px; width: 20px; text-align: center; font-weight: 800; }
.is-before li::before { content: "–"; color: #7f9a93; }
.is-after li { color: #fff; }
.is-after li::before { content: "✓"; color: var(--accent); }

.faq { display: grid; gap: 10px; max-width: 880px; }
.faq details {
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.035);
  transition: border-color 180ms ease, background 180ms ease;
}
.faq details[open] { border-color: rgba(230, 184, 79, 0.45); background: rgba(255, 255, 255, 0.06); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 22px; cursor: pointer; list-style: none; font-weight: 700; font-size: 1.05rem; color: #fff;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #123734; background: var(--accent); font-weight: 800; transition: transform 200ms ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0; padding: 0 22px 20px; color: #cfe3dd; line-height: 1.65; }
.faq a { color: var(--accent); }

/* Fester Button auf dem Handy */
.mobile-cta { display: none; }
@media (max-width: 680px) {
  .mobile-cta {
    position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 30;
    display: flex; min-height: 52px; box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
    transform: translateY(140%); transition: transform 260ms ease;
  }
  .mobile-cta.is-visible { transform: translateY(0); }
  .page-footer { padding-bottom: 90px; }
}

/* Bewegung beim Scrollen */
.js-motion .reveal { opacity: 0; transform: translateY(18px); transition: opacity 600ms ease, transform 600ms ease; }
.js-motion .reveal.is-in { opacity: 1; transform: none; }
.js-motion .glass-track i { transform-origin: left; transform: scaleX(0); transition: transform 1100ms cubic-bezier(.2,.7,.2,1); }
.js-motion .glass-card.is-in .glass-track i { transform: scaleX(1); }
.js-motion .glass-row:nth-of-type(2) i { transition-delay: 80ms; } .js-motion .glass-row:nth-of-type(3) i { transition-delay: 160ms; }
.js-motion .glass-row:nth-of-type(4) i { transition-delay: 240ms; } .js-motion .glass-row:nth-of-type(5) i { transition-delay: 320ms; }
.js-motion .glass-row:nth-of-type(6) i { transition-delay: 400ms; } .js-motion .glass-row:nth-of-type(7) i { transition-delay: 480ms; }
@media (prefers-reduced-motion: reduce) {
  .js-motion .reveal { opacity: 1; transform: none; }
  .js-motion .glass-track i { transform: none; }
}

@media (max-width: 980px) {
  .audience-grid { grid-template-columns: 1fr; }
  .compare { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
}


/* =========================================================================
 *  STANDORTBERICHT AM BILDSCHIRM: fliesst ins dunkle Design ein (kein weisses Blatt)
 *  Fuer Dummies: Nur am Bildschirm. Beim Drucken/PDF greift weiter der helle Papier-Look.
 * ========================================================================= */
@media screen {
  .report-page {
    --r-ok: #4fc795; --r-low: #a9c94a; --r-mid: #e6b84f; --r-high: #ef6f5a; --r-none: #7f9a93;
    max-width: 1060px;
  }
  .sheet { background: transparent !important; border: 0; border-radius: 0; box-shadow: none; overflow: visible; color: var(--ink); }
  .sheet-hero { background: none; padding-bottom: 0; }
  .sheet-hero::after { display: none; }
  .sheet-top { padding: 4px 4px 16px; border-bottom-color: rgba(255,255,255,.08); }
  .sheet-object { padding: 26px 4px 30px; }
  .sheet-hero .sheet-address { font-size: clamp(2rem, 4.6vw, 3.1rem); }

  .overview, .ov-note, .cat-section, .method {
    border: 1px solid rgba(255,255,255,.10);
    background: linear-gradient(160deg, rgba(255,255,255,.065), rgba(255,255,255,.02));
    backdrop-filter: blur(10px);
  }
  .overview { margin: 0; border-radius: 20px; box-shadow: 0 30px 70px rgba(0,0,0,.30); position: relative; }
  .overview::before {
    content: ""; position: absolute; inset: 0; padding: 1px; border-radius: inherit; pointer-events: none;
    background: var(--glass-border);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  }
  .ov-grade { border-right-color: rgba(255,255,255,.08); }
  .ov-ring-bg { stroke: rgba(255,255,255,.09); }
  .ov-ring-text strong { color: #fff; }
  .ov-ring-text span, .ov-risk small { color: var(--muted); }
  .ov-risk { color: #cfe3dd; }
  .ov-risk strong { color: #fff; }
  .grade-scale span { background: rgba(255,255,255,.06); color: var(--muted); }
  .grade-scale span.is-active { background: var(--accent); color: #123734; }
  .ov-head h2 { color: #fff; }
  .ov-name { color: #fff; }
  .ov-track, .mini-bar { background: rgba(255,255,255,.08); }
  .ov-row:hover { background: rgba(255,255,255,.05); }

  .ov-notes { padding: 14px 0 0; border: 0; }
  .ov-note { border-radius: 18px; }
  .ov-note.is-good { background: linear-gradient(160deg, rgba(79,199,149,.12), rgba(79,199,149,.03)); border-color: rgba(79,199,149,.28); }
  .ov-note.is-watch { background: linear-gradient(160deg, rgba(230,184,79,.13), rgba(230,184,79,.03)); border-color: rgba(230,184,79,.32); }
  .ov-note-title { color: #fff; }
  .ov-note-title span { color: #0b1f1d; }
  .ov-note p { color: #dbe9e5; }
  .ov-note p strong { color: #fff; }
  .ov-why, .ov-small { color: var(--muted) !important; }
  .ov-small { border-top-color: rgba(255,255,255,.12); }

  .cat-section { margin-top: 18px; padding: 30px; border-radius: 20px; }
  .cat-title { color: #fff; }
  .cat-title span { color: #0b1f1d; }
  .cat-weight { background: rgba(255,255,255,.06); color: var(--muted); }
  .cat-score { color: var(--muted); }
  .cat-intro { color: #cfe3dd; }
  .cat-intro strong { color: #fff; }
  .card { background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.09) !important; }
  .card-label { color: var(--muted); }
  .card-value { color: #fff; }
  .card-note { color: #b5cfc8; }
  .card-stage { background: rgba(255,255,255,.06) !important; }
  .badge { background: rgba(255,255,255,.08); color: #dbe9e5; }
  .cat-notes { background: rgba(255,255,255,.04); color: var(--muted); }
  .cat-sources { background: rgba(0,0,0,.18); border-color: rgba(255,255,255,.07); }
  .cat-sources p { color: #dbe9e5; }
  .cat-sources small, .src-license { color: var(--muted); }
  .cat-sources a, .disclaimer a { color: var(--accent); }
  .fb-link { color: var(--accent) !important; }
  .fb-invite { background: rgba(230,184,79,.08) !important; color: #dbe9e5 !important; border-color: rgba(230,184,79,.2) !important; }
  .fb-invite b { color: #fff; }

  .method { margin-top: 18px; padding: 30px; border-radius: 20px; }
  .method .cat-title span { background: var(--accent); }
  .method-grid > div { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
  .method-grid strong { color: #fff; }
  .method-grid p { color: #b5cfc8; }
  .disclaimer { color: var(--muted); }
}
@media screen and (max-width: 760px) {
  .cat-section, .method { padding: 22px 16px; }
  .overview { padding: 22px 16px; }
}
@media print {
  .sheet {
    --ink: #17211f; --muted: #60716d; --line: #d8e1de; --panel: #fff; --soft: #eef5f2;
    --brand-dark: #075847; --brand-deep: #123734; color: var(--ink);
  }
  .sheet h1, .sheet h2, .sheet h3 { color: var(--ink); }
  .sheet-hero .sheet-address { color: #fff; }
}
