/* ============================================================
   Radzen re-skin
   ------------------------------------------------------------
   Basis ist Radzens "software"-Theme (nicht Material - siehe DESIGN.md
   fuer die Begruendung). Es definiert jede --rz-*-Variable, die Radzen
   braucht; diese Datei ueberschreibt nur die, die den Look tragen.

   Alle Werte zeigen auf die acht Kernfarben aus site.css (--t1/--t2/--t3/
   --paper/--surface/--rule/--rule2/--ox), nicht auf eigene Hex-Werte -
   damit es exakt eine Quelle fuer Farbe im ganzen System gibt.

   Load order matters: software.css first, then this file, then site.css.
   ============================================================ */

:root {
    /* ---------- Primary ---------- */
    --rz-primary: var(--t1);
    --rz-primary-light: var(--t1-hover);
    --rz-primary-lighter: var(--t1-soft);
    --rz-primary-dark: var(--t1-active);
    --rz-primary-darker: var(--t1-active);
    --rz-on-primary: var(--surface);
    --rz-on-primary-light: var(--surface);
    --rz-on-primary-lighter: var(--t1);
    --rz-on-primary-dark: var(--surface);
    --rz-on-primary-darker: var(--surface);

    /* Secondary: gedeckter Kontextton statt einer zweiten Markenfarbe -
       dieses Design ist monochrom, Farbe ist ausschliesslich --ox
       vorbehalten (siehe unten). */
    --rz-secondary: var(--t2);
    --rz-secondary-light: var(--t3);
    --rz-secondary-lighter: var(--rule2);
    --rz-secondary-dark: var(--t1);
    --rz-on-secondary: var(--surface);
    --rz-on-secondary-lighter: var(--t1);

    /* ---------- Statusfarben: neutralisiert ----------
       Erfolg/Info/Warnung tragen keine eigene Farbe mehr (kein Gruen,
       kein Blau, kein Orange - harte Regel). Nur --rz-danger zeigt auf
       --ox, und auch das ausschliesslich fuer Fristueberschreitung -
       RadzenDataGrid nutzt "danger" sonst nirgends im Code. */
    --rz-success: var(--t1);
    --rz-success-light: var(--t2);
    --rz-success-lighter: var(--rule2);
    --rz-success-dark: var(--t1);
    --rz-on-success: var(--surface);
    --rz-on-success-lighter: var(--t2);

    --rz-danger: var(--ox);
    --rz-danger-light: var(--ox-hover);
    --rz-danger-lighter: var(--ox-soft);
    --rz-danger-dark: var(--ox-hover);
    --rz-on-danger: var(--surface);
    --rz-on-danger-lighter: var(--ox);

    --rz-warning: var(--t2);
    --rz-warning-light: var(--t2);
    --rz-warning-lighter: var(--rule2);
    --rz-warning-dark: var(--t1);
    --rz-on-warning: var(--surface);
    --rz-on-warning-lighter: var(--t2);

    --rz-info: var(--t2);
    --rz-info-light: var(--t2);
    --rz-info-lighter: var(--rule2);
    --rz-info-dark: var(--t1);
    --rz-on-info: var(--surface);
    --rz-on-info-lighter: var(--t2);

    /* ---------- Neutral-Skala: warme Grautoene zwischen --paper und --t1 ----------
       Bewusst nur die acht Kernwerte wiederverwendet statt eigene
       Zwischentoene zu erfinden - "genau diese acht Werte, keine weiteren". */
    --rz-base: var(--surface);
    --rz-base-50: var(--paper);
    --rz-base-100: var(--rule2);
    --rz-base-200: var(--rule);
    --rz-base-300: var(--rule);
    --rz-base-400: var(--t3);
    --rz-base-500: var(--t3);
    --rz-base-600: var(--t2);
    --rz-base-700: var(--t2);
    --rz-base-800: var(--t1);
    --rz-base-900: var(--t1);
    --rz-base-background-color: var(--paper);
    --rz-base-light: var(--surface);
    --rz-base-lighter: var(--rule2);
    --rz-base-dark: var(--t1);
    --rz-on-base-light: var(--t1);
    --rz-on-base-lighter: var(--t1);

    /* ---------- Text ----------
       Genau drei Textfarben, keine vierte. */
    --rz-text-color: var(--t1);
    --rz-text-title-color: var(--t1);
    --rz-text-secondary-color: var(--t2);
    --rz-text-tertiary-color: var(--t3);
    --rz-text-disabled-color: var(--t3);
    --rz-text-contrast-color: var(--surface);

    /* ---------- Typografie ---------- */
    --rz-text-font-family: var(--font-sans);
    --rz-body-font-family: var(--font-sans);
    --rz-body-font-size: 13.5px;
    --rz-body-line-height: 1.5;

    /* ---------- Form ----------
       Dieselben Rundungsstufen wie site.css (#205), keine eigenen Werte. */
    --rz-border-radius: var(--radius-sm);
    --rz-card-border-radius: var(--radius);
    --rz-panel-border-radius: var(--radius);
    --rz-input-border-radius: var(--radius-sm);
    --rz-button-border-radius: var(--radius-sm);
    --rz-dialog-border-radius: var(--radius-lg);

    /* ---------- Rahmen ---------- */
    --rz-border-color: var(--rule);
    --rz-border-width: 1px;
    --rz-border-normal: 1px solid var(--rule);
    --rz-outline-normal: var(--rule);
    --rz-outline-hover: var(--t3);
    --rz-outline-focus: var(--t1);

    /* ---------- Flaechen ---------- */
    --rz-body-background-color: var(--paper);
    --rz-panel-background-color: var(--surface);
    --rz-card-background-color: var(--surface);
    --rz-dialog-background-color: var(--surface);
    --rz-menu-background-color: var(--surface);

    /* ---------- Schatten: keine ----------
       Harte Regel - Trennung entsteht durch Linien (--rule), nicht Tiefe. */
    --rz-shadow-1: none;
    --rz-shadow-2: none;
    --rz-shadow-3: none;
    --rz-shadow-4: none;
    --rz-shadow-5: none;
    --rz-card-shadow: none;
    --rz-panel-shadow: none;
    --rz-dialog-shadow: none;

    /* ---------- DataGrid ---------- */
    --rz-grid-background-color: var(--surface);
    --rz-grid-header-background-color: var(--rule2);
    --rz-grid-header-color: var(--t2);
    --rz-grid-cell-border: 1px solid var(--rule2);
    --rz-grid-row-hover-background-color: var(--t1-soft);
    --rz-grid-stripe-background-color: var(--paper);
    --rz-grid-border-color: var(--rule);

    /* Ripple-Klickeffekt: existiert im Software-Theme genauso wie im
       Material-Theme (gleicher Mechanismus, gleiche Variable) - "ruhig,
       nicht verspielt" heisst: aus, unabhaengig von der Theme-Basis. */
    --rz-ripple-duration: 0s;
}

/* Software-Theme bringt trotzdem noch eigene Grossschreibung/Gewichte mit -
   die Buttons sollen ruhig wirken, nicht wie ein Schalter. */
.rz-button {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
    box-shadow: none !important;
}

/* "Variant.Flat oder Variant.Outlined, nie Filled" gilt auch fuer Radzens
   eigene, intern gerenderte Buttons (Pager, Filter-Leiste), auf deren
   Variant-Parameter der App-Code keinen Zugriff hat - hier per CSS erzwungen. */
.rz-button.rz-variant-filled:not(.rz-primary) {
    background: transparent;
    color: var(--t1);
    border: 1px solid var(--rule);
}
.rz-button.rz-variant-filled:not(.rz-primary):hover {
    background: var(--t1-soft);
}

/* RadzenDataGrid, Density.Compact: 9-12px vertikale Zellenhoehe statt der
   Theme-Vorgabe - Arbeitswerkzeug, keine Landingpage (siehe DESIGN.md). */
.rz-data-row > td, .rz-grid-table thead th {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}
.rz-paginator, .rz-datatable-pager {
    min-height: 44px;
}

/* Ripple-Overlay hart abschalten (die Dauer auf 0 zu setzen reicht bei
   manchen Radzen-Versionen nicht, weil der Kreis trotzdem kurz aufblitzt). */
.rz-ripple { display: none !important; }

/* Grid headers: match the app's small-caps table headers from site.css. */
.rz-grid-table thead th .rz-column-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Sichtbarer Fokusring, konsistent mit dem globalen :focus-visible-Stil in
   site.css - Radzens eigener Fokusstil arbeitet meist mit einem
   box-shadow-Ring statt outline. */
.rz-button:focus-visible,
.rz-textbox:focus-visible,
.rz-dropdown:focus-visible,
.rz-grid-table tbody td:focus-visible,
.rz-data-row:focus-visible {
    outline: 2px solid var(--t1) !important;
    outline-offset: 1px;
    box-shadow: none !important;
}
