/* ==========================================================================
   KI-News – Nachrichten-Look für Inhaltsseiten (01.11.26)
   Gleiche Typografie wie meldung/* und recherche/*: Überschriften Fraunces 600,
   Text Work Sans, ruhige Grautöne, ein Akzent. Kein Mono, keine Versalien mit
   Sperrung, kein Leuchten.
   Eingebunden von: Impressum, Datenschutz, suche, woche, dossiers, Archiv,
   stats, modelle, landkarte, linie, belege, profil, ki-welt.
   Greift nur innerhalb von <main class="z-inhalt">; Kopf und Seitenleiste
   stylt ki-layout.js. Präfix :root:not(#_k) überstimmt die Seitenregeln
   (gleicher Trick wie ki-type.css).
   ========================================================================== */

/* Tokens: dieselben Werte wie ki-layout.js und meldungsseiten.py _CSS.
   Hier nochmal, weil Impressum/Datenschutz ki-layout.js nicht laden. */
:root{--z-papier:#fff;--z-tinte:#16181b;--z-grau:#565c65;--z-linie:#dde2e8;--z-grund:#f0f4f8;--z-akzent:#0b6e88;
  --z-serif:'Fraunces',Georgia,'Times New Roman',serif;--z-sans:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;}
html.dark{--z-papier:#15181b;--z-tinte:#ecebe7;--z-grau:#a7acb3;--z-linie:#2a2e33;--z-grund:#0d0f11;--z-akzent:#55c3de;}

/* Seitenvariablen von suche/woche/dossiers auf die Tokens legen.
   Die Datenfarben (violett, grün, orange, rot) bleiben, ebenso --neon-rgb
   (Farbschema aus ki-layout.js). */
:root:not(#_k), :root:not(#_k) body{
  --px-bg:var(--z-grund); --px-page:var(--z-grund); --px-bg-deep:var(--z-grund);
  --px-panel:var(--z-papier); --px-card:var(--z-papier); --px-card-strong:var(--z-papier);
  --px-panel-2:var(--z-grund); --px-panel-3:var(--z-grund); --px-card-soft:var(--z-grund);
  --px-ink:var(--z-tinte); --px-text:var(--z-tinte);
  --px-muted:var(--z-grau); --px-faint:var(--z-grau);
  --px-cyan:var(--z-akzent); --px-cyan-ink:var(--z-akzent); --px-action:var(--z-akzent);
  --px-line:var(--z-linie); --px-border:var(--z-linie);
  --px-line-2:color-mix(in srgb,var(--z-grau) 45%,transparent);
  --px-line-strong:color-mix(in srgb,var(--z-grau) 45%,transparent);
  --px-border-strong:color-mix(in srgb,var(--z-grau) 45%,transparent);
  --px-shadow:none; --px-shadow-soft:none;
  /* Archiv */
  --px-panel-strong:var(--z-papier); --px-field:var(--z-grund);
  --px-border-hover:color-mix(in srgb,var(--z-grau) 45%,transparent); --px-glow:none;
}
:root:not(#_k) body.z-seite, :root:not(#_k):has(body.z-seite){background:var(--z-grund) !important;color:var(--z-tinte);}

/* Schrift: alles im Inhalt Work Sans, ohne Versalien, ohne Sperrung, ohne Leuchten */
:root:not(#_k) .z-inhalt, :root:not(#_k) .z-inhalt *{
  font-family:var(--z-sans);text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none;
}
:root:not(#_k) .z-inhalt *::before, :root:not(#_k) .z-inhalt *::after{
  font-family:var(--z-sans);text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none;
}
:root:not(#_k) .z-inhalt *:focus-visible{outline:2px solid var(--z-akzent);outline-offset:2px;}

/* Überschriften und Titel: Fraunces 600 (auch für Text in Unterelementen, z. B. Links im Titel) */
:root:not(#_k) .z-inhalt :is(h1,h2,h3,h4,
  .px-title,.px-hero-title,.px-card-title,.px-week-title,.px-section-title,.px-focus-title,
  .px-side-title,.px-story-title,.px-day-heading,.px-lead-title,.px-tile-title,
  .px-stat-value,.px-index-row strong,.px-section-number,.px-empty-symbol,
  .px-result-title,.px-entity-name,.px-topic-name,.px-embed-titel,.px-footer strong,.px-stat strong,
  .px-entity-count,
  .section-title,.profile-name,.stat-num,.px-catalog-title,.px-stand-date,.px-gen-name,.px-linie-kopf strong,
  .px-map-title,.px-detail-title,.px-news-title,.px-metrics-title,.px-block-value,.px-ring-number,
  .px-map-count,.px-photo-index,.px-end-mark,.kw-h1),
:root:not(#_k) .z-inhalt :is(h1,h2,h3,h4,
  .px-title,.px-hero-title,.px-card-title,.px-week-title,.px-section-title,.px-focus-title,
  .px-side-title,.px-story-title,.px-day-heading,.px-lead-title,.px-tile-title,
  .px-stat-value,.px-index-row strong,.px-section-number,.px-empty-symbol,
  .px-result-title,.px-entity-name,.px-topic-name,.px-embed-titel,.px-footer strong,.px-stat strong,
  .px-entity-count,
  .section-title,.profile-name,.stat-num,.px-catalog-title,.px-stand-date,.px-gen-name,.px-linie-kopf strong,
  .px-map-title,.px-detail-title,.px-news-title,.px-metrics-title,.px-block-value,.px-ring-number,
  .px-map-count,.px-photo-index,.px-end-mark,.kw-h1) *{
  font-family:var(--z-serif);font-weight:600;letter-spacing:-0.005em;
}
:root:not(#_k) .z-inhalt :is(h1,.px-title,.px-hero-title){
  font-size:clamp(2rem,1.4rem + 2.4vw,2.75rem);line-height:1.15;
}
:root:not(#_k) .z-inhalt :is(.px-section-title,.px-day-heading,.px-section-head h2,.px-group-title h2){
  font-size:clamp(1.5rem,1.25rem + 1vw,1.875rem);line-height:1.2;
}
/* Akzentwort im Seitentitel: einfarbig statt Kontur/Leuchten */
:root:not(#_k) .z-inhalt :is(.px-title-accent,.px-hero-title span,.px-hero h1 span){
  color:var(--z-akzent);-webkit-text-stroke:0;-webkit-text-fill-color:currentColor;background:none;
}

/* Kleine Auszeichnungen (früher 8–10 px Mono in Versalien): lesbare Sans */
:root:not(#_k) .z-inhalt :is(.px-eyebrow,.px-kicker,.px-lead-kicker,.px-tile-kicker,.px-label,.px-meta,
  .px-card-meta,.px-status,.px-index-head,.px-empty-label,.px-group-count,.px-original,.px-stat-label,
  .px-week-label,.px-section-count,.px-source,.px-dossier-label,.px-day-count,.px-day-more,.px-load-status,
  .px-footer,.px-map-label,.px-field-label,.px-filter-label,.px-control-meta,.px-card-id,.px-metric-label,
  .px-source-strip-label,.px-mini-label,.px-mini-caption,.px-card-foot,.px-error,.px-mono,.px-index,
  .px-stat span,.px-index-row span,
  .px-coordinate,.px-section-label,.px-entity-type,.px-entity-count-label,.px-map-top,.px-map-data span,
  .px-filterbar-label,.px-section-meta,.px-heat-detail,.px-heat-hint,.px-legend,.px-media-type,
  .px-media-message,.px-embed-kopf,.px-result-index){
  font-size:13px !important;font-weight:500;
}
:root:not(#_k) .z-inhalt :is(.px-tag,.px-pill,.px-rank,.px-button,.px-share,.px-load-month,.px-week-button,
  .px-video-label,.px-video-duration,.px-video-hint,.px-video-missing,.px-lead-cta,.px-card-link,
  .px-metric-value,.px-chip,.px-badge,.px-node-button){
  font-size:12px !important;font-weight:500;
}
:root:not(#_k) .z-inhalt :is(.px-eyebrow,.px-kicker,.px-lead-kicker,.px-section-label){color:var(--z-grau);}

/* Archiv: Eingabefelder in normaler Lesegröße */
:root:not(#_k) .z-inhalt :is(.px-select,.px-field input){font-size:14px;}

/* Einbettungs-Platzhalter (ki-embed.js setzt Inline-Styles, deshalb !important) */
:root:not(#_k) .z-inhalt .ki-embed-ph, :root:not(#_k) .z-inhalt .ki-embed-ph *{font-family:var(--z-sans) !important;text-transform:none !important;letter-spacing:normal !important;}

/* Von Skripten erzeugte Inline-Styles mit alter Schrift */
:root:not(#_k) .z-inhalt [style*="Space Grotesk"], :root:not(#_k) .z-inhalt [style*="monospace"]{font-family:var(--z-sans) !important;}
:root:not(#_k) .z-inhalt [style*="uppercase"]{text-transform:none !important;letter-spacing:normal !important;}

/* Schaltflächen: Akzent mit weißer Schrift wie im Artikel-Overlay */
:root:not(#_k) .z-inhalt :is(.px-share,.px-load-month){background:var(--z-akzent);color:var(--z-papier);border-color:transparent;}

/* Deko-Kreise, Raster und Verläufe aus */
:root:not(#_k) .z-inhalt .px-hero::before,:root:not(#_k) .z-inhalt .px-hero::after{display:none;}
:root:not(#_k) .z-inhalt :is(.px-index,.px-group-head,.px-empty,.px-map,.px-dossier-card,.px-result-card:hover){
  background:var(--z-papier);
}
:root:not(#_k) .px-dossier-page .z-inhalt .px-hero{background:var(--z-papier);border-color:var(--z-linie);}
:root:not(#_k) .z-inhalt .px-radar{background:var(--z-grund);}

/* ---- Daten-Seiten (Schritt 4): stats, modelle, landkarte, linie, belege, profil, ki-welt ---- */
/* Seitenvariablen dieser Seiten auf die Tokens legen. Nur am <body>, der Kopf aus
   ki-layout.js liest diese Variablen nicht. Farbschema (--accent, --neon-rgb) bleibt. */
:root:not(#_k) body.z-seite{
  --bg:var(--z-grund); --card:var(--z-papier); --surface:var(--z-papier);
  --text:var(--z-tinte); --muted:var(--z-grau); --border:var(--z-linie); --field:var(--z-grund);
  --px-raised:var(--z-papier); --px-dim:var(--z-grau);
}
:root:not(#_k):has(body.z-seite){color-scheme:light;}
:root.dark:not(#_k):has(body.z-seite){color-scheme:dark;}
/* Profil: Sternenhimmel hinter der Seite aus */
:root:not(#_k) body.z-seite > :is(#genesis-wrap,#bg-overlay){display:none;}
/* Raster, Lichthöfe und Farbverläufe im Hintergrund aus (modelle, belege, linie, landkarte) */
:root:not(#_k) body.z-seite::before{display:none;}
:root:not(#_k) body.z-seite .px-ambient::before,:root:not(#_k) body.z-seite .px-dossier-intro::before,
:root:not(#_k) body.z-seite .px-intro::before,:root:not(#_k) body.z-seite .px-stand-card::before{display:none;}
:root:not(#_k) body.z-seite .px-ambient{background:var(--z-grund);}
:root:not(#_k) body.z-seite .px-landkarte{
  --px-page:var(--z-grund); --px-page-deep:var(--z-grund); --px-surface:var(--z-papier); --px-surface-solid:var(--z-papier);
  --px-ink:var(--z-tinte); --px-muted:var(--z-grau); --px-shadow:none; background:var(--z-grund);
}

/* Statistik (Tailwind-Klassen und Inline-Styles) */
:root:not(#_k) .z-inhalt .font-black{font-weight:700;}
:root:not(#_k) .z-inhalt :is(h1,h2,h3,.font-black)[style*="Space Grotesk"]{font-family:var(--z-serif) !important;font-weight:600;}
:root:not(#_k) .z-inhalt :is(.text-\[9px\],.text-\[10px\],.text-\[11px\],.srcrow-rank,.srcrow-avg,.meta-text){font-size:13px !important;font-weight:500;}
:root:not(#_k) .z-inhalt .section-title{font-size:1.25rem;line-height:1.3;}

/* Profil */
:root:not(#_k) .z-inhalt .profile-name{font-size:1.875rem;line-height:1.15;}
:root:not(#_k) .z-inhalt .settings-block h3{font-size:1.0625rem;color:var(--z-tinte);}
:root:not(#_k) .z-inhalt .profile-hero, :root:not(#_k) .z-inhalt :is(.settings-block,.theme-detail){backdrop-filter:none;}
:root:not(#_k) .z-inhalt .theme-card.active{border-color:var(--accent);}
:root:not(#_k) .z-inhalt .theme-card.active::after{content:'✓ Aktiv';font-size:11px;}

/* KI-Welt: Panel liegt außerhalb von <main> und trägt selbst z-inhalt */
:root:not(#_k) .z-inhalt .kw-h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem);line-height:1.05;}

/* Grafiken (SVG-Text in Landkarte): nur die Schriftart, Größen passen zur Zeichnung */
:root:not(#_k) .z-inhalt :is(.px-center-title,.px-center-meta,.px-cluster-label,.px-cluster-kind,.px-hub-label,.px-node-label,.px-chart-label){
  font-family:var(--z-sans) !important;letter-spacing:normal;
}

/* Kleine Auszeichnungen dieser Seiten */
:root:not(#_k) .z-inhalt :is(
  .profile-handle,.stat-lbl,.section-sub,.settings-val,.cte-field>span,.cte-hint,
  .px-stand-label,.px-stand-state,.px-stand-warning,.px-latest,.px-control-label,.px-result-count,.px-catalog-label,
  .px-catalog-code,.px-index-note,.px-index-label,.px-maker-count,.px-maker-latest,.px-model-date,.px-model-index,
  .px-model-meta,.px-model-slug,.px-empty-code,.px-index-value,.px-linie-kopf span,.px-gen-date,.px-arena,
  .px-map-subtitle,.px-release-status,.px-news-count,.px-news-meta,.px-block-label,.px-ring-caption,.px-footnote,
  .px-reader-count,.px-state-kicker,.px-dossier-meta,.px-map-caption,.px-photo-credit,.px-chapter-kicker,
  .px-event-source,.px-event-date,.px-media-label,.px-media-caption,.px-media-note,.px-intro-hero figcaption,
  .px-zeitbruecke,.px-event-context-label,.px-rand-datum,
  .px-trace-signature-label,.px-trace-signature p,.px-status-bar,.px-sidebar-label,.px-index-id,.px-index-score,
  .px-index-foot,.px-sidebar-foot,.px-head-id,.px-panel-head span,.px-thread-time,.px-node-role,.px-node-date,
  .px-image-fallback,.px-note,.px-compare-label,.px-warning,.px-video-error,.px-candidate-index,
  .px-text-details summary,.px-fulltext,
  .kw-mono,.kw-hilfe,.kw-legende span:last-child,.kw-liste span){
  font-size:13px !important;font-weight:500;
}
:root:not(#_k) .z-inhalt :is(.tag,.tc-name,.tc-desc,.swatch-name,.social-btn,.cte-apply,.cte-reset,
  .px-detail-zu,.px-stufe,.px-art,.px-tab,.px-release-link,.px-reset-link,
  .px-back-link,.px-chapter-button,.px-dossier-start,.px-source-link,.px-end-button,.px-theme-button){
  font-size:12px !important;font-weight:500;
}
:root:not(#_k) .z-inhalt :is(.px-state-kicker,.px-chapter-kicker){color:var(--z-grau);}
/* Fließtext, der vorher 10–11 px klein war */
:root:not(#_k) .z-inhalt :is(.px-input,.px-search,.px-gen-news a,.px-thread-card p,.px-compare-text,
  .px-video-card p,.px-candidate p,.px-gap-card p,.px-hero-copy,.px-story-summary){
  font-size:14px !important;
}

/* Impressum und Datenschutz: schlichte Papier-Spalte, Kopf und Leiste kommen aus ki-layout.js */
.z-recht{margin:0;padding-top:56px;background:var(--z-grund);color:var(--z-tinte);font:1.0625rem/1.65 var(--z-sans);-webkit-font-smoothing:antialiased;}
.z-recht a{color:var(--z-akzent);text-decoration:none;}
.z-recht a:hover{text-decoration:underline;}
.z-recht .wrap,.z-recht footer{max-width:46rem;margin:0 auto;padding-left:16px;padding-right:16px;}
.z-recht .wrap{background:var(--z-papier);margin-top:20px;padding-top:28px;padding-bottom:36px;border-radius:4px;}
.z-recht h1{font:600 clamp(1.75rem,1.2rem + 2vw,2.5rem)/1.15 var(--z-serif);margin:.4rem 0 .75rem;}
.z-recht .lead{color:var(--z-grau);font-size:.9375rem;margin:0 0 2rem;}
.z-recht h2{font:600 1.3125rem/1.3 var(--z-serif);margin:1.75rem 0 .5rem;padding-top:1rem;border-top:1px solid var(--z-linie);}
.z-recht h3{font:600 1.0625rem var(--z-serif);margin:1.25rem 0 .4rem;}
.z-recht p{margin:0 0 .85rem;}
.z-recht ul{margin:0 0 .85rem 1.3rem;padding:0;}
.z-recht li{margin-bottom:.35rem;}
.z-recht p.label{color:var(--z-grau);font-size:.8125rem;margin:0 0 .15rem;}
.z-recht .muted{color:var(--z-grau);}
.z-recht .box{background:var(--z-grund);border-left:3px solid var(--z-akzent);padding:.75rem 1rem;margin:1rem 0;border-radius:0 4px 4px 0;}
.z-recht .ok{display:block;border-left:3px solid var(--z-akzent);padding:.25rem 0 .25rem 1rem;margin:1rem 0;font-size:.9375rem;color:var(--z-tinte);}
.z-recht .todo{display:block;border-left:3px solid #b7791f;padding:.25rem 0 .25rem 1rem;margin:1rem 0;font-size:.9375rem;}
.z-recht .fill{color:inherit;background:var(--z-grund);padding:1px 6px;border-radius:3px;}
.z-recht table{width:100%;border-collapse:collapse;font-size:.875rem;margin:.85rem 0;}
.z-recht th,.z-recht td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--z-linie);vertical-align:top;}
.z-recht th{color:var(--z-grau);font-weight:600;}
.z-recht footer{padding-top:18px;padding-bottom:32px;font-size:.8125rem;color:var(--z-grau);text-align:center;}
.z-recht footer a{color:var(--z-grau);margin:0 8px;}
