/* HullVision AI — Design-Tokens
   Konsolidiert aus design-system/project/tokens/ (fonts, colors, typography, spacing, effects, base).
   Quelle ist das Design-System-Handoff — hier keine eigenen Werte erfinden. */

/* Schriften lokal gehostet (assets/fonts/) — keine Verbindung zu Google-Servern.
   Space Grotesk & IBM Plex Sans sind Variable Fonts (ein File je Subset). */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('../assets/fonts/space-grotesk-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url('../assets/fonts/space-grotesk-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('../assets/fonts/ibm-plex-sans-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

:root{
/* Dark theme — abyss navy. Primitives unchanged where possible; surfaces/inks flipped. */
/* Base — Abyss (navy scale) */
--abyss-900:#081826;--abyss-800:#0C2436;--abyss-700:#123349;--abyss-600:#1C4560;
/* Ink (text on dark) */
--ink-1:#EAF2F6;--ink-2:#B8CBD6;--ink-3:#7E97A6;
/* Surfaces (dark) */
--surface-0:#07131E;--surface-1:#102A3E;--surface-2:#163650;--surface-deep:#0C2436;--surface-deep-2:#123349;
/* Lines (dark hairlines) */
--line-1:#1C3E58;--line-2:#2A557A;--line-inverse:rgba(255,255,255,0.14);
/* Primary — Hull Blue (lifted for dark) */
--primary-700:#0E5E8C;--primary-600:#1B77AC;--primary-500:#4FA3CF;--primary-100:rgba(27,119,172,0.22);--primary-50:rgba(27,119,172,0.12);
/* Accent — Sonar Cyan (nur Scan/Live/Progress) */
--sonar-600:#0E97A8;--sonar-500:#14B8CB;--sonar-300:#7BDDE8;--sonar-100:rgba(20,184,203,0.18);
/* Highlight — Kontrast-Akzent (Orange) */
--highlight-600:#C74521;--highlight-500:#E4572E;--highlight-100:rgba(228,87,46,0.16);
/* Danger — Fehler / destruktiv (Rot) */
--danger-600:#96182F;--danger-500:#C93D57;--danger-100:rgba(179,34,59,0.18);
/* Severity scale (Befundschwere) */
--sev-ok:#3FB57E;--sev-ok-bg:rgba(46,158,107,0.16);
--sev-minor:#D9A82A;--sev-minor-bg:rgba(199,147,16,0.16);
--sev-moderate:#EE6B43;--sev-moderate-bg:rgba(228,87,46,0.16);
--sev-severe:#D9536C;--sev-severe-bg:rgba(179,34,59,0.18);
/* Semantic aliases */
--text-body:var(--ink-1);--text-secondary:var(--ink-2);--text-muted:var(--ink-3);--text-inverse:#F2F6F8;--text-inverse-muted:rgba(242,246,248,0.62);
--surface-page:var(--surface-0);--surface-card:var(--surface-1);--surface-inset:var(--surface-2);--surface-panel-dark:var(--surface-deep);
--border-default:var(--line-1);--border-strong:var(--line-2);
--action-primary:var(--primary-600);--action-primary-hover:var(--primary-700);--action-primary-text:#FFFFFF;
--accent-scan:var(--sonar-500);--accent-scan-soft:var(--sonar-100);
--accent-highlight:var(--highlight-500);--accent-highlight-hover:var(--highlight-600);--accent-highlight-soft:var(--highlight-100);
--danger:var(--danger-500);--danger-hover:var(--danger-600);--danger-soft:var(--danger-100);
--link:var(--primary-500);--link-hover:var(--sonar-300);
--focus-ring:0 0 0 2px var(--surface-0),0 0 0 4px var(--sonar-500);

/* Typography */
--font-display:'Space Grotesk',sans-serif;
--font-body:'IBM Plex Sans',sans-serif;
--font-mono:'IBM Plex Mono',monospace;
--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:26px;--text-2xl:34px;--text-3xl:46px;
--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
--tracking-caps:0.08em;--tracking-display:-0.01em;
--type-display:var(--weight-bold) var(--text-2xl)/var(--leading-tight) var(--font-display);
--type-title:var(--weight-bold) var(--text-xl)/var(--leading-tight) var(--font-display);
--type-heading:var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-display);
--type-body:var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-body);
--type-label:var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-body);
--type-caption:var(--weight-regular) var(--text-xs)/var(--leading-snug) var(--font-body);
--type-data:var(--weight-regular) var(--text-sm)/var(--leading-snug) var(--font-mono);
--type-overline:var(--weight-medium) var(--text-xs)/var(--leading-snug) var(--font-mono);

/* Spacing — 4px grid */
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;
--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;
--container-max:1200px;--sidebar-w:232px;

/* Effects */
--shadow-card:0 1px 2px rgba(8,24,38,0.06);
--shadow-overlay:0 8px 32px rgba(8,24,38,0.24),0 2px 8px rgba(8,24,38,0.12);
--shadow-toast:0 4px 16px rgba(8,24,38,0.28);
--ease-out:cubic-bezier(0.2,0,0,1);
--dur-fast:120ms;
--dur-base:200ms;
--scanline-grid:repeating-linear-gradient(0deg,rgba(123,221,232,0.05) 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,rgba(123,221,232,0.05) 0 1px,transparent 1px 24px);
}

/* Base */
body{margin:0;font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover);text-decoration:underline}
::selection{background:var(--sonar-100)}
