/*
 * Zentrale Design-Variablen (NEU, 16.07.2026, Etappe 1 der CSS/JS-
 * Zentralisierung - Priorität 4 aus der kritischen Projekt-
 * Einschätzung vom 16.07.2026).
 *
 * BISHERIGES PROBLEM: Diese Farb-Variablen waren bisher in JEDER der
 * 7 Hauptseiten (dashboard.php, angebotsausarbeitungen.php,
 * passwort.php, benutzer.php, lieferanten.php, vergabeportale.php,
 * angebotsanfragen.php) identisch dupliziert - jede Design-Änderung
 * musste bisher 7-mal identisch nachgezogen werden (so geschehen bei
 * mehreren Design-Experimenten in dieser Sitzung).
 *
 * AB JETZT: Nur noch EINE zentrale Quelle. Diese Datei wird per
 * <link rel="stylesheet" href="../assets/css/basis.css"> in jeder
 * der 7 Seiten eingebunden, VOR dem jeweils eigenen, seitenspezifischen
 * <style>-Block (damit seitenspezifisches CSS bei Bedarf weiterhin
 * Vorrang haben kann, falls nötig - CSS-Kaskade).
 *
 * WICHTIG bei künftigen Änderungen: Farb-/Theme-Änderungen bitte NUR
 * noch HIER vornehmen, nicht mehr in den einzelnen Seiten.
 */

:root{

    --bg:#eef4fb;
    --sidebar-bg:#ffffff;
    --content-bg:#eef4fb;
    --border:#dbe7f3;
    --kachel-bg:#ffffff;
    --akzent:#1d7fc4;
    --akzent-glow:none;
    --text-haupt:#0f2940;
    --text-gedaempft:#5a7a93;
    --text-schwach:#8aa3b8;
    --menu-aktiv-bg:#dbe7f3;
    --logo-border:#dbe7f3;
    --status-gelb:#d97706;
    --status-gruen:#15803d;
    --status-rot:#dc2626;
    --status-grau:#64748b;
    --text-auf-badge-rot:#991b1b;
    --text-auf-badge-orange:#92400e;
    --text-auf-badge-blau:#1d4ed8;

}

body.dark-mode{

    --bg:#070b12;
    --sidebar-bg:#0b1018;
    --content-bg:#070b12;
    --border:#16263d;
    --kachel-bg:#0c121c;
    --akzent:#4dc4ff;
    --akzent-glow:0 0 10px #4dc4ff44;
    --text-haupt:#e2f4ff;
    --text-gedaempft:#7a9ab8;
    --text-schwach:#4a6a82;
    --menu-aktiv-bg:#16263d;
    --logo-border:#16263d;
    --status-gelb:#fbbf24;
    --status-gruen:#34d399;
    --status-rot:#f87171;
    --status-grau:#7a9ab8;
    --text-auf-badge-rot:#f87171;
    --text-auf-badge-orange:#fbbf24;
    --text-auf-badge-blau:#7fb8e8;

}

/*
 * ===== Etappe 2 (16.07.2026): Gemeinsame strukturelle CSS-Klassen =====
 *
 * Alle folgenden Klassen wurden per automatisiertem Abgleich
 * (Textvergleich, nicht nur Klassenname) als IN ALLEN Hauptseiten,
 * in denen sie vorkommen, BYTE-IDENTISCH bestätigt, bevor sie hier
 * zentralisiert wurden. Enthält u.a.: Basis-Reset, Sidebar-Grundgerüst,
 * Logo, globale Suche, Menü-Grundstile, LME-Notiz-Sidebar-Widget
 * (kommt auf 6 der 7 Seiten vor, NICHT auf dashboard.php - dort gibt
 * es stattdessen die großen Metallpreis-Kacheln, daher harmlos
 * ungenutzt), Sidebar-Fußzeile, Uhrzeit-Anzeige, Logout-Icon,
 * Dark/Light-Modus-Umschalter, großes Logo oben rechts (Puls-
 * Animation).
 *
 * BEWUSST NICHT zentralisiert (echte Unterschiede zwischen den
 * Seiten festgestellt, siehe roadmap.md für Details): .menu a
 * (dashboard.php hat eine andere Textfarbe), .menu a.aktiv,
 * .hauptlogo-oben-rechts (Positionierung unterscheidet sich leicht
 * zwischen den Seiten), .modal/.modal-content (unterschiedliche
 * Breiten je nach Formular), .content (unterschiedliches Padding).
 */

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

body{

    font-family:'Inter', Arial, Helvetica, sans-serif;
    font-size:15px;
    background:var(--bg);
    color:var(--text-haupt);
    transition:background 0.15s, color 0.15s;

}

.sidebar{

    position:fixed;

    left:0;
    top:0;

    width:250px;

    height:100vh;

    background:var(--sidebar-bg);

    color:var(--text-haupt);

    display:flex;

    flex-direction:column;

    border-right:1px solid var(--border);

}

.logo{

    padding:30px;

    font-size:18px;

    font-weight:bold;

    line-height:1.3;

}

.globale-suche-bereich{

    padding:0 20px 16px 20px;

    position:relative;

}

.globale-suche-feld{

    width:100%;

    padding:9px 12px;

    border:1px solid var(--border);

    border-radius:8px;

    font-size:13px;

    background:var(--bg);

    color:var(--text-haupt);

    font-family:inherit;

}

.globale-suche-feld:focus{

    outline:none;

    border-color:var(--akzent);

}

.globale-suche-ergebnisse{

    position:absolute;

    top:100%;

    left:20px;

    right:20px;

    background:var(--kachel-bg);

    border:1px solid var(--border);

    border-radius:8px;

    box-shadow:0 4px 12px rgba(0,0,0,0.15);

    max-height:360px;

    overflow-y:auto;

    z-index:50;

    display:none;

}

.globale-suche-kategorie{

    padding:8px 12px 4px 12px;

    font-size:11px;

    font-weight:600;

    color:var(--text-schwach);

    text-transform:uppercase;

}

.globale-suche-treffer{

    display:block;

    padding:8px 12px;

    text-decoration:none;

    color:var(--text-haupt);

    cursor:pointer;

}

.globale-suche-treffer:hover{

    background:var(--menu-aktiv-bg);

}

.globale-suche-treffer-titel{

    font-size:13px;

    font-weight:600;

}

.globale-suche-treffer-untertitel{

    font-size:12px;

    color:var(--text-gedaempft);

    margin-top:2px;

}

.globale-suche-leer{

    padding:12px;

    font-size:12px;

    color:var(--text-schwach);

    text-align:center;

}

.menu{

    flex:1;

}

.menu a:hover{

    background:var(--bg);

}

.lme-notiz-bereich{

    padding:14px 20px;

    border-top:1px solid var(--border);

    font-size:13px;

}

.lme-notiz-titel{

    font-weight:600;

    color:var(--text-haupt);

    margin-bottom:4px;

}

.lme-notiz-datum{

    color:var(--text-gedaempft);

    margin-bottom:8px;

}

.lme-notiz-zeile{

    display:flex;

    justify-content:space-between;

    margin-bottom:3px;

}

.lme-notiz-label{

    color:var(--text-gedaempft);

}

.lme-notiz-wert{

    font-weight:600;

    color:var(--text-haupt);

}

.lme-notiz-hinweis{

    font-size:11px;

    color:var(--text-schwach);

    margin-top:8px;

    line-height:1.4;

}

.lme-notiz-faber-titel{

    font-weight:600;

    color:var(--text-haupt);

    margin-top:14px;

    margin-bottom:4px;

    font-size:12px;

}

.sidebar-footer{

    padding:16px;

    border-top:1px solid var(--border);

}

.eingeloggt-zeile{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:8px;

    margin-bottom:14px;

}

.uhrzeit-anzeige{

    margin-bottom:14px;

    font-size:13px;

    color:var(--text-gedaempft);

    line-height:1.5;

    text-align:center;

}

.uhrzeit-anzeige .uhrzeit-zeit{

    font-weight:bold;

    color:var(--text-haupt);

}

.eingeloggt-als{

    font-size:14px;

    color:var(--text-haupt);

    overflow:hidden;

    text-overflow:ellipsis;

    white-space:nowrap;

    min-width:0;

}

.logout-icon{

    flex-shrink:0;

    display:flex;

    align-items:center;

    justify-content:center;

    width:30px;

    height:30px;

    border-radius:6px;

    color:var(--status-rot);

    text-decoration:none;

}

.logout-icon svg{

    width:18px;

    height:18px;

}

.logout-icon:hover{

    background:var(--menu-aktiv-bg);

}

.theme-toggle{

    width:100%;

    display:flex;

    align-items:center;

    gap:10px;

    background:var(--bg);

    border:none;

    color:var(--text-haupt);

    padding:12px 14px;

    border-radius:8px;

    cursor:pointer;

    font-size:14px;

}

.theme-toggle:hover{

    background:var(--border);

}

@keyframes logoPuls{

    0%, 100%{ transform:scale(1) translateZ(0); }
    50%{ transform:scale(1.05) translateZ(0); }

}

/* ---- .content Basis (NEU, 17.07.2026) - NUR die WIRKLICH auf allen
   7 Seiten identischen Eigenschaften. Padding/Höhe/Flex-Verhalten
   unterscheiden sich zwischen den Seiten (echte, beabsichtigte
   Unterschiede - siehe roadmap.md) und bleiben daher als kleine
   Ergänzungs-Regel in der jeweiligen Seite selbst bestehen. ---- */
.content{

    margin-left:250px;

    position:relative;

}

/* ---- .modal (NEU, 17.07.2026) - vereinheitlicht auf die
   VOLLSTÄNDIGERE Variante (mit justify-content/align-items für echte
   Zentrierung). Bei der Prüfung festgestellt: dashboard.php und
   lieferanten.php fehlten diese beiden Eigenschaften bisher - das war
   vermutlich ein unbeabsichtigter, kleiner Bug (Modal-Inhalt wäre
   ohne Zentrierung oben/links statt mittig erschienen), kein
   bewusster Unterschied. Wurde daher bei dieser Gelegenheit
   mitkorrigiert, nicht nur zentralisiert. Nur auf Seiten mit
   tatsächlichen Modals relevant (nicht passwort.php/benutzer.php -
   dort ungenutzt, aber harmlos). ---- */
.modal{

    display:none;

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(0,0,0,.5);

    justify-content:center;

    align-items:center;

    overflow-y:auto;

    padding:30px 0;

    z-index:200;

}

/* ---- .modal-content Basis (NEU, 17.07.2026) - NUR die auf allen
   5 Seiten mit Modals identischen Eigenschaften. Die Breite (width)
   unterscheidet sich BEWUSST je nach Formular-Inhalt (700-975px) und
   bleibt daher als kleine Ergänzungs-Regel in der jeweiligen Seite
   bestehen, ebenso das Verschieben-/Größenverstellen-System
   (min-height/min-width/resize/position), das nicht auf jeder Seite
   gleich genutzt wird. ---- */
.modal-content{

    background:var(--kachel-bg);

    max-width:92%;

    padding:30px;

    border-radius:10px;

    max-height:90vh;

    overflow-y:auto;

}
.modal-content.wird-verschoben{

    position:fixed;

    margin:0;

}

.modal-zieh-griff{

    position:absolute;

    top:0;

    left:0;

    right:0;

    height:50px;

    cursor:move;

    z-index:1;

}
@media (max-width: 900px){

    .hauptlogo-oben-rechts{

        display:none;

    }

}
