/*
 * Zentrale Fristenfarben
 *
 * Diese Datei wird nach layout.css, vehicles.css und dialogs.css geladen.
 * Das feste dunkle Netzdisplay überschreibt die sichtbare Darstellung danach.
 * und ist damit die einzige Stelle, an der die Farben für BBA / BFA / BBI gepflegt werden.
 *
 * BBA = Gelb
 * BFA = Blau
 * BBI = Grün
 */

:root{
    --frist-bba: #facc15;
    --frist-bfa: #2563eb;
    --frist-bbi: #22c55e;

    --frist-bba-row-start: rgba(250,204,21,.34);
    --frist-bba-row-end:   rgba(250,204,21,.10);
    --frist-bfa-row-start: rgba(37,99,235,.42);
    --frist-bfa-row-end:   rgba(37,99,235,.12);
    --frist-bbi-row-start: rgba(34,197,94,.34);
    --frist-bbi-row-end:   rgba(34,197,94,.10);

    --frist-text-on-color: #ffffff;
}

/* Plaketten in Fahrzeugstamm / Fahrzeugübersicht */
.vBadge.frist-bba,
.veh .frist-badge-bba{
    background: var(--frist-bba) !important;
    color: #111827 !important;
}

.vBadge.frist-bfa,
.veh .frist-badge-bfa{
    background: var(--frist-bfa) !important;
    color: #ffffff !important;
}

.vBadge.frist-bbi,
.veh .frist-badge-bbi{
    background: var(--frist-bbi) !important;
    color: #ffffff !important;
}

/* Fahrzeuge mit heute fälliger Frist */
.veh.frist-heute-bba,
.veh.bba-due:not(.status-defekt):not(.status-graffiti):not(.status-defekt_graffiti):not(.status-werkstatt):not(.status-reserve){
    background: linear-gradient(180deg,#fff7a8,var(--frist-bba)) !important;
    color: #111827 !important;
}

.veh.frist-heute-bfa,
.veh.bfa-due-tomorrow:not(.status-defekt):not(.status-graffiti):not(.status-defekt_graffiti):not(.status-werkstatt):not(.status-reserve){
    background: linear-gradient(180deg,#93c5fd,var(--frist-bfa)) !important;
    color: #ffffff !important;
}

.veh.frist-heute-bbi,
.veh.bbi-due:not(.status-defekt):not(.status-graffiti):not(.status-defekt_graffiti):not(.status-werkstatt):not(.status-reserve){
    background: linear-gradient(180deg,#bbf7d0,var(--frist-bbi)) !important;
    color: #06210f !important;
}

/* Rechte Liste: Fristen heute */
.deadlineTodayRow.deadlineToday-bba{
    background: linear-gradient(90deg,rgba(250,204,21,.95),rgba(250,204,21,.18)) !important;
    border-left: 5px solid var(--frist-bba) !important;
}

.deadlineTodayRow.deadlineToday-bfa{
    background: linear-gradient(90deg,rgba(37,99,235,.95),rgba(37,99,235,.18)) !important;
    border-left: 5px solid var(--frist-bfa) !important;
}

.deadlineTodayRow.deadlineToday-bbi{
    background: linear-gradient(90deg,rgba(34,197,94,.95),rgba(34,197,94,.18)) !important;
    border-left: 5px solid var(--frist-bbi) !important;
}

.deadlineTodayRow.deadlineToday-bba .deadlineTodayText,
.deadlineTodayRow.deadlineToday-bfa .deadlineTodayText,
.deadlineTodayRow.deadlineToday-bbi .deadlineTodayText{
    color: #ffffff !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 1px rgba(0,0,0,.45) !important;
}

/* Fristen-/Terminliste */
.deadlineLegend .legendBba{
    background: linear-gradient(90deg,var(--frist-bba),rgba(250,204,21,.35)) !important;
    color: #111827 !important;
}

.deadlineLegend .legendBfa{
    background: linear-gradient(90deg,var(--frist-bfa),rgba(37,99,235,.35)) !important;
    color: #ffffff !important;
}

.deadlineLegend .legendBbi{
    background: linear-gradient(90deg,var(--frist-bbi),rgba(34,197,94,.35)) !important;
    color: #ffffff !important;
}

.deadlineTable tbody td{
    color: var(--frist-text-on-color) !important;
    font-weight: 400 !important;
    text-shadow: none !important;
}

.deadlineTable thead th,
.deadlineTable th{
    color: #ffffff !important;
    font-weight: 700 !important;
    text-shadow: none !important;
}

.deadlineTable tr.deadline-row-bba td{
    background: linear-gradient(90deg,var(--frist-bba-row-start),var(--frist-bba-row-end)) !important;
    color: var(--frist-text-on-color) !important;
    font-weight: 400 !important;
    text-shadow: none !important;
}

.deadlineTable tr.deadline-row-bfa td{
    background: linear-gradient(90deg,var(--frist-bfa-row-start),var(--frist-bfa-row-end)) !important;
    color: var(--frist-text-on-color) !important;
    font-weight: 400 !important;
    text-shadow: none !important;
}

.deadlineTable tr.deadline-row-bbi td{
    background: linear-gradient(90deg,var(--frist-bbi-row-start),var(--frist-bbi-row-end)) !important;
    color: var(--frist-text-on-color) !important;
    font-weight: 400 !important;
    text-shadow: none !important;
}

.deadlineTable tr.deadline-row-bba td:first-child{border-left:5px solid var(--frist-bba) !important;}
.deadlineTable tr.deadline-row-bfa td:first-child{border-left:5px solid var(--frist-bfa) !important;}
.deadlineTable tr.deadline-row-bbi td:first-child{border-left:5px solid var(--frist-bbi) !important;}

/* Druckansicht */
@media print{
    #deadlineListBackdrop .deadlineTable th,
    #deadlineListBackdrop .deadlineTable td{
        font-weight: 400 !important;
        text-shadow: none !important;
    }

    #deadlineListBackdrop .deadlineTable th{
        font-weight: 700 !important;
    }

    #deadlineListBackdrop .deadlineTable tr.deadline-row-bba td,
    #deadlineListBackdrop .deadlineTable tr.deadline-row-bfa td,
    #deadlineListBackdrop .deadlineTable tr.deadline-row-bbi td{
        background: #ffffff !important;
        color: #000000 !important;
    }

    #deadlineListBackdrop .deadlineLegend{
        display:none !important;
    }
}

/* Druck-Fix: Fristen / Termine wird in einem eigenen Druck-Frame ausgegeben.
   Diese Regeln bleiben als Rückfall erhalten, falls der Browser den normalen Druck nutzt. */
@media print{
    html, body{
        background:#ffffff !important;
    }
    body > *:not(#deadlineListBackdrop){
        display:none !important;
        visibility:hidden !important;
    }
    #deadlineListBackdrop{
        display:block !important;
        visibility:visible !important;
        position:static !important;
        inset:auto !important;
        width:100% !important;
        min-height:0 !important;
        height:auto !important;
        overflow:visible !important;
        background:#ffffff !important;
        padding:0 !important;
        margin:0 !important;
    }
    #deadlineListBackdrop *{
        visibility:visible !important;
    }
    #deadlineListBackdrop .deadlineListDialog{
        display:block !important;
        width:100% !important;
        max-width:none !important;
        max-height:none !important;
        overflow:visible !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        background:#ffffff !important;
        color:#000000 !important;
        margin:0 !important;
    }
    #deadlineListBackdrop .deadlineListHeader{
        background:#ffffff !important;
        color:#000000 !important;
        border-bottom:2px solid #000000 !important;
        padding:0 0 10px 0 !important;
    }
    #deadlineListBackdrop .deadlineListHeader h2,
    #deadlineListBackdrop .deadlineListHeader p{
        color:#000000 !important;
    }
    #deadlineListBackdrop .deadlineListBody{
        padding:10px 0 0 0 !important;
        max-height:none !important;
        overflow:visible !important;
        background:#ffffff !important;
    }
}


/* Druck immer schwarz/weiß: keine farbigen Fristenhintergründe */
@media print{
    #deadlineListBackdrop .deadlineLegend{display:none !important;}
    #deadlineListBackdrop .deadlineTable,
    #deadlineListBackdrop .deadlineTable thead,
    #deadlineListBackdrop .deadlineTable tbody,
    #deadlineListBackdrop .deadlineTable tr,
    #deadlineListBackdrop .deadlineTable th,
    #deadlineListBackdrop .deadlineTable td,
    #deadlineListBackdrop .deadlineTable tr.deadline-row-bba td,
    #deadlineListBackdrop .deadlineTable tr.deadline-row-bfa td,
    #deadlineListBackdrop .deadlineTable tr.deadline-row-bbi td{
        background:#ffffff !important;
        background-image:none !important;
        color:#000000 !important;
        text-shadow:none !important;
        -webkit-print-color-adjust:economy !important;
        print-color-adjust:economy !important;
    }
    #deadlineListBackdrop .deadlineTable th{font-weight:700 !important;}
    #deadlineListBackdrop .deadlineTable td{font-weight:400 !important;}
}

/* Fahrzeugkarte: lange Fristen vollständig anzeigen statt abschneiden */
.vehicle-card-row:has(#vehicleCardDue){
    align-items:start !important;
}
#vehicleCardDue{
    max-width:none !important;
    min-width:0 !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    word-break:break-word !important;
    overflow-wrap:anywhere !important;
    line-height:1.25 !important;
    text-align:right !important;
}

.vehicle-card-row:has(#vehicleCardDue){
    grid-template-columns:54px minmax(0,1fr) !important;
    gap:8px !important;
}

.vehicle-card-due-table{
    width:100% !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
    table-layout:auto !important;
    overflow:hidden !important;
    border:1px solid rgba(148,163,184,.34) !important;
    border-radius:7px !important;
    background:rgba(15,23,42,.68) !important;
    color:#ffffff !important;
    font-size:11px !important;
    line-height:1.18 !important;
}

.vehicle-card-due-table th,
.vehicle-card-due-table td{
    padding:3px 4px !important;
    border-bottom:1px solid rgba(148,163,184,.22) !important;
    text-align:left !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

.vehicle-card-due-table th{
    color:#bfdbfe !important;
    background:rgba(30,41,59,.86) !important;
    font-size:10px !important;
    font-weight:900 !important;
}

.vehicle-card-due-table td{
    font-weight:850 !important;
}

.vehicle-card-due-table tr:last-child td{
    border-bottom:0 !important;
}

.vehicle-card-due-table th:nth-child(1),
.vehicle-card-due-table td:nth-child(1){
    width:66px !important;
    min-width:66px !important;
    max-width:none !important;
    overflow:visible !important;
    text-overflow:clip !important;
}

.vehicle-card-due-table th:nth-child(2),
.vehicle-card-due-table td:nth-child(2){
    width:38px !important;
    min-width:38px !important;
}

.vehicle-card-due-table th:nth-child(3),
.vehicle-card-due-table td:nth-child(3){
    width:auto !important;
}

body:not(.darkMode) .vehicle-card-due-table{
    background:#f8fafc !important;
    color:#0f172a !important;
    border-color:#cbd5e1 !important;
}

body:not(.darkMode) .vehicle-card-due-table th{
    background:#e8eef8 !important;
    color:#1e3a8a !important;
}

body:not(.darkMode) .vehicle-card-due-table td{
    color:#0f172a !important;
}

.vehicle-card-due-list{
    display:grid !important;
    gap:4px !important;
    width:100% !important;
    min-width:0 !important;
}

.vehicle-card-due-item{
    display:grid !important;
    grid-template-columns:minmax(64px,max-content) minmax(0,1fr) !important;
    grid-template-areas:"date kind" "time kind" !important;
    column-gap:8px !important;
    row-gap:1px !important;
    min-width:0 !important;
    padding:5px 7px !important;
    border:1px solid rgba(148,163,184,.34) !important;
    border-left:4px solid var(--frist-bfa) !important;
    border-radius:7px !important;
    background:rgba(15,23,42,.68) !important;
    color:#ffffff !important;
    text-align:left !important;
}

.vehicle-card-due-date{
    grid-area:date !important;
    white-space:nowrap !important;
    font-size:11px !important;
    font-weight:950 !important;
    line-height:1.1 !important;
}

.vehicle-card-due-time{
    grid-area:time !important;
    min-height:10px !important;
    white-space:normal !important;
    color:#bfdbfe !important;
    font-size:10px !important;
    font-weight:850 !important;
    line-height:1.1 !important;
}

.vehicle-card-due-kind{
    grid-area:kind !important;
    min-width:0 !important;
    align-self:center !important;
    justify-self:end !important;
    color:#ffffff !important;
    font-size:11px !important;
    font-weight:950 !important;
    line-height:1.15 !important;
    overflow-wrap:anywhere !important;
    text-align:right !important;
}

@media(max-width:1180px){
    .vehicle-card-due-item{
        grid-template-columns:1fr !important;
        grid-template-areas:"date" "time" "kind" !important;
    }
    .vehicle-card-due-kind{
        justify-self:start !important;
        text-align:left !important;
    }
}


/* Fahrzeugnummer bleibt vor Kuppelnummern sichtbar */
.veh{
  overflow:visible !important;
}
.veh .vehicle-main-number{
  position:relative !important;
  z-index:80 !important;
  pointer-events:none !important;
  display:inline-block !important;
  line-height:1 !important;
}
.veh .couple-tag{
  z-index:30 !important;
}
.veh .frist-badge,
.veh .cleaning-badge{
  position:relative !important;
  z-index:90 !important;
}


/* GH walkway markers like Farmsen */
.walk{
  width:10px !important;
  background:repeating-linear-gradient(
    45deg,
    #f5d000 0px,
    #f5d000 6px,
    #111 6px,
    #111 12px
  ) !important;
  border-left:1px solid #fff;
  border-right:1px solid #fff;
}
