/* BiKaTech Dispo - schlichtes, professionelles Buero-Design, keine Animationen */
:root {
    --dunkelblau: #1f3a5f;
    --dunkelblau_hell: #2c4f7c;
    --hintergrund: #f4f6f8;
    --karte: #ffffff;
    --rand: #dbe1e8;
    --text: #1c2733;
    --text_schwach: #5b6b7c;
    --erfolg: #1e7e34;
    --erfolg_bg: #e6f4ea;
    --fehler: #a31515;
    --fehler_bg: #fbe8e8;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Segoe UI", Arial, sans-serif;
    background: var(--hintergrund);
    color: var(--text);
    font-size: 14px;
}

a { color: var(--dunkelblau); text-decoration: none; }
a:hover { text-decoration: underline; }

.layout { display: flex; min-height: 100vh; }

.seitenleiste {
    width: 230px;
    background: var(--dunkelblau);
    color: #fff;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}
.seitenleiste .logo {
    padding: 16px;
    border-bottom: 1px solid rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    gap: 10px;
}
.seitenleiste .logo img { width: 40px; height: 40px; border-radius: 4px; background: #fff; padding: 3px; }
.seitenleiste .logo span { font-weight: 400; font-size: 15px; opacity: 0.9; }
.seitenleiste ul { list-style: none; margin: 0; padding: 8px 0; }
.seitenleiste ul li a {
    display: block;
    padding: 9px 18px;
    color: #e8edf3;
}
.seitenleiste ul li a:hover { background: var(--dunkelblau_hell); text-decoration: none; }
.seitenleiste ul li a.aktiv { background: var(--dunkelblau_hell); font-weight: 600; border-left: 3px solid #fff; }
.nav_badge {
    display: inline-block;
    background: #d64545;
    color: #fff;
    border-radius: 10px;
    padding: 1px 7px;
    font-size: 11px;
    font-weight: 700;
    margin-left: 4px;
}
.gruppen_titel {
    padding: 10px 18px 2px;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #a9bdd6;
}
.seitenleiste_fuss {
    margin-top: auto;
    padding: 14px 18px;
    border-top: 1px solid rgba(255,255,255,0.15);
    font-size: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.seitenleiste_fuss a { color: #cfe0f0; }

.inhalt { flex: 1; padding: 24px 32px; max-width: 1400px; }

h1 { font-size: 20px; margin: 0 0 18px; }
h2 { font-size: 16px; margin: 24px 0 10px; }

.karte {
    background: var(--karte);
    border: 1px solid var(--rand);
    border-radius: 4px;
    padding: 18px;
    margin-bottom: 18px;
}

table { width: 100%; border-collapse: collapse; background: var(--karte); }
th, td { padding: 8px 10px; border-bottom: 1px solid var(--rand); text-align: left; }
th { background: #eef1f5; font-weight: 600; font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.02em; color: var(--text_schwach); }
tr:hover td { background: #f8fafc; }
th a { color: var(--text_schwach); }

.werkzeugleiste { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }
.werkzeugleiste input[type=text], .werkzeugleiste select { padding: 7px 9px; border: 1px solid var(--rand); border-radius: 3px; }

.btn {
    display: inline-block;
    padding: 8px 16px;
    background: var(--dunkelblau);
    color: #fff;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    font-size: 13.5px;
}
.btn:hover { background: var(--dunkelblau_hell); text-decoration: none; }
.btn.sekundaer { background: #fff; color: var(--dunkelblau); border: 1px solid var(--dunkelblau); }
.btn.gefahr { background: var(--fehler); }

form .feld { margin-bottom: 14px; }
form label { display: block; font-size: 12.5px; color: var(--text_schwach); margin-bottom: 4px; }
form input[type=text], form input[type=number], form input[type=date],
form input[type=time], form input[type=password], form input[type=email],
form select, form textarea {
    width: 100%;
    padding: 8px 9px;
    border: 1px solid var(--rand);
    border-radius: 3px;
    font-family: inherit;
    font-size: 14px;
}
form input[type=color] { width: 60px; height: 34px; padding: 2px; border: 1px solid var(--rand); border-radius: 3px; }
.formular_grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }

.status_chip { display: inline-block; padding: 2px 9px; border-radius: 10px; font-size: 12px; background: #e2e8f0; color: #334155; }
.status_eingegangen { background: #e2e8f0; color: #334155; }
.status_dispo_geplant { background: #dbeafe; color: #1e40af; }
.status_in_ausfuehrung { background: #fef3c7; color: #92400e; }
.status_fahrerdaten_pruefen, .status_m2_fehlen { background: #fde2e1; color: #a31515; }
.status_abrechnungsfertig { background: #d1fae5; color: #065f46; }
.status_abgerechnet { background: #cffafe; color: #155e63; }
.status_abgeschlossen { background: #e0e7ff; color: #3730a3; }
.status_abgesagt { background: #f1f1f1; color: #888; }

.flash_liste { margin-bottom: 16px; display: flex; flex-direction: column; gap: 8px; }
.flash_liste_login { max-width: 340px; margin: 20px auto 0; }
.flash { padding: 10px 14px; border-radius: 4px; font-size: 13.5px; }
.flash_erfolg { background: var(--erfolg_bg); color: var(--erfolg); }
.flash_fehler { background: var(--fehler_bg); color: var(--fehler); }

.login_seite { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--dunkelblau); }
.login_karte { background: #fff; padding: 34px; border-radius: 6px; width: 320px; text-align: center; }
.login_karte h1 { text-align: center; margin-top: 4px; }
.login_karte form { text-align: left; }
.login_logo { width: 90px; height: auto; }

.paginierung { display: flex; gap: 8px; align-items: center; margin-top: 14px; font-size: 13px; }

.hinweis { color: var(--text_schwach); }

.aenderungshistorie { font-size: 12.5px; color: var(--text_schwach); }
.aenderungshistorie li { margin-bottom: 4px; }
