/* ═══════════════════════════════════════════════════════════════
   StarshipOS — Token-Overrides v2 (Lesbarkeit & Kontrast)
   Eingebunden in templates/layout/base.html NACH
   /assets/css/styles.css und nach allen globalen /css/*.css,
   aber VOR dem head-extra-Fragment der Stationsseiten:

       <link rel="stylesheet" href="/assets/css/v2/tokens-v2.css"/>
       <link rel="stylesheet" href="/assets/css/v2/controls-v2.css"/>

   Bewusst als <link> und nicht als @import: @import-Regeln muessen
   am Anfang eines Stylesheets stehen, eine Zeile am Ende von
   assets/css/styles.css wuerde vom Browser verworfen.

   Das Theme bleibt dunkel. Geändert werden nur Helligkeiten,
   Mindest-Schriftgrößen und Rahmenkontraste. Alle Stationen
   erben das automatisch, weil sie ausschließlich über Tokens
   arbeiten.
   ═══════════════════════════════════════════════════════════════ */

:root {
    /* ── Flächen ──────────────────────────────────────────────── */
    --bg-primary:   #080b12;
    --bg-secondary: #141c28;
    --bg-panel:     #101825;
    --bg-raised:    #1b2533;   /* NEU: Bedienelement-Fläche */
    --bg-overlay:   rgba(8, 11, 18, 0.92);

    /* ── Text (Kontrast gegen --bg-secondary) ─────────────────── */
    --text-primary:   #f0f4ff;  /* 15.5:1 */
    --text-secondary: #b6c2d6;  /*  9.4:1  NEU */
    --text-muted:     #8c9bb3;  /*  6.0:1  war #6b7280 = 3.6:1 */
    --text-dim:       #5b6980;  /* nur Deko/Disabled */

    /* ── Rahmen ───────────────────────────────────────────────── */
    --border-color:  #2a3648;   /* Panel-Trennlinien */
    --border-strong: #5b6f8c;   /* NEU: Rahmen von Buttons/Inputs, 3.3:1 */
    --focus-ring:    #7dd3fc;   /* NEU */

    /* ── Signalfarben: heller für Text auf dunklem Grund ──────── */
    --accent-blue:   #60a5fa;
    --accent-green:  #34d399;
    --accent-red:    #f87171;
    --accent-yellow: #fbbf24;
    --accent-cyan:   #22d3ee;
    --accent-violet: #c4b5fd;
    --accent-teal:   #2dd4bf;
    --brand-cyan:    #22d3ee;

    /* Gesättigte Varianten für Flächen/Balken (kein Text!) */
    --fill-blue:   #3b82f6;
    --fill-green:  #10b981;
    --fill-red:    #ef4444;
    --fill-yellow: #f59e0b;

    /* ── Tints: etwas dichter, damit Badges Fläche zeigen ─────── */
    --tint-blue:   rgba(96, 165, 250, 0.14);
    --tint-green:  rgba(52, 211, 153, 0.14);
    --tint-red:    rgba(248, 113, 113, 0.16);
    --tint-yellow: rgba(251, 191, 36, 0.14);
    --tint-cyan:   rgba(34, 211, 238, 0.14);
    --tint-brand:  rgba(34, 211, 238, 0.08);

    /* ── Typografie: Untergrenze 12 px, weniger Sperrung ─────── */
    --text-xs:   0.75rem;   /* 12px — absolutes Minimum */
    --text-sm:   0.8125rem; /* 13px */
    --text-base: 0.875rem;  /* 14px */
    --text-md:   0.9375rem; /* 15px */
    --text-lg:   1.0625rem; /* 17px */
    --text-xl:   1.5rem;
    --text-2xl:  1.875rem;

    --tracking-label:  0.06em;
    --tracking-wide:   0.08em;
    --tracking-beacon: 0.1em;

    /* ── Bedienelement-Metrik (NEU) ───────────────────────────── */
    --control-h-sm: 32px;
    --control-h-md: 40px;
    --control-h-lg: 48px;   /* Touch-Stationen */
    --control-pad:  0 16px;

    --radius-xs: 3px;
    --radius-sm: 4px;
    --radius-md: 5px;
    --radius-lg: 6px;
}

/* Per-Station-Akzente: gleiche Hues, höhere Helligkeit */
[data-station="bridge-helm"]         { --station-accent: #7dd3fc; }
[data-station="engineering"],
[data-station="engineering-reactor"] { --station-accent: #fbbf24; }
[data-station="navigation"]          { --station-accent: #22d3ee; }
[data-station="tactical"]            { --station-accent: #f87171; }
[data-station="medical"]             { --station-accent: #2dd4bf; }
[data-station="science"],
[data-station="science-pipeline"]    { --station-accent: #c4b5fd; }
[data-station="cic"]                 { --station-accent: #fb7185; }
[data-station="gm"]                  { --station-accent: #fcd34d; }
[data-station="security"]            { --station-accent: #fb923c; }
[data-station="logistics"]           { --station-accent: #cbd5e1; }

/* Tabellenzahlen nicht springen lassen */
body { font-variant-numeric: tabular-nums; }

/* Kein Dauerblinken auf Text — nur der Statuspunkt pulsiert.
   Dauerhaft animierte Deckkraft senkt die Lesbarkeit genau dann,
   wenn es kritisch wird. */
.alert-bar--RED                     { animation: none; }
.alert-bar--RED .alert-indicator    { animation: dot-blink 1s step-end infinite; }
.system-state-badge.state-critical,
.station-panel .panel-status-badge[data-tone="critical"] { animation: none; }
