/* =====================================
   GRUNDLAYOUT
===================================== */

body {

    margin:0;

    font-family:Arial, sans-serif;

    background:#f2f5f8;

    color:#333;

}


/* =====================================
   KOPFBEREICH
===================================== */

header {

    text-align:center;

    padding:20px;

    position:relative;

    margin-bottom:20px;

}


h1 {

    font-size:40px;

    margin:10px 0;

}


h2 {

    margin:10px 0;

}


/* =====================================
   UHR UND WETTER
===================================== */

.weather-box,
.clock-box {

    position:absolute;

    top:30px;

    width:260px;

    height:140px;

    background:white;

    padding:20px 30px;

    box-sizing:border-box;

    border-radius:20px;

    box-shadow:
        0 5px 15px rgba(0,0,0,.15);

    text-align:center;

    font-size:36px;

    font-weight:bold;

}


.weather-box {

    right:30px;

}


.clock-box {

    left:30px;

}


.clock {

    font-size:40px;

    font-weight:bold;

    line-height:1.1;

    margin-bottom:12px;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:8px;

}


.clock-icon {

    font-size:32px;

}


#datum {

    font-size:18px;

    color:#333;

    font-weight:normal;

    margin-top:8px;

}


.weather-box small {

    font-size:18px;

    font-weight:normal;

}


/* =====================================
   INDEX HAUPTBEREICH
===================================== */

.container {

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(260px,1fr));

    gap:20px;

    padding:
        40px 30px 60px 30px;

    margin-top:20px;

}


/* =====================================
   START BUTTONS
===================================== */

.start-aktionen {

    display:flex;

    justify-content:center;

    gap:12px;

    margin-top:8px;

}


.start-button {

    background:
        rgba(255,255,255,.65);

    backdrop-filter:blur(5px);

    padding:8px 18px;

    border-radius:12px;

    text-decoration:none;

    color:#555;

    font-size:17px;

    font-weight:bold;

    box-shadow:
        0 2px 6px rgba(0,0,0,.10);

    border:1px solid rgba(255,255,255,.8);

}


.start-button:hover {

    transform:scale(1.03);

}


/* =====================================
   MITARBEITERKARTEN
===================================== */

.card {

    background:white;

    border-radius:25px;

    padding:25px;

    text-align:center;

    box-shadow:
        0 5px 15px rgba(0,0,0,.15);

    cursor:pointer;

    position:relative;

    z-index:0;

    isolation:isolate;

    transition:.2s;

}


.card:hover {

    transform:scale(1.03);

}


.emoji {

    font-size:70px;

}


.name {

    font-size:28px;

    font-weight:bold;

}


.status {

    font-size:22px;

    margin-top:10px;

}


.time {

    color:#777;

    margin-top:10px;

}


/* =====================================
   BESPRECHUNG
===================================== */

/*
   Die Besprechung verändert ausschließlich
   die Hintergrundfarbe einer normalen Karte.

   Größe, Position, Grid, Padding und
   Abstände bleiben unverändert.
*/

.card.besprechung-card {

    background:#eeeeee;

}


/*
   Besprechung bei besonderen Ereigniskarten.

   Die vorhandene Gestaltung von Geburtstag
   und Ereignis bleibt erhalten.
*/

.card.geburtstag-card.besprechung-card {

    background:
        linear-gradient(
            145deg,
            #fffdf0 0%,
            #fff4b8 22%,
            #f5d76e 50%,
            #d9a928 78%,
            #f8e79b 100%
        );

    box-shadow:
        0 8px 20px rgba(170,125,20,.25),
        0 0 0 3px rgba(120,120,120,.12) inset,
        0 0 22px rgba(255,210,70,.20);

}


.card.ereignis-card.besprechung-card {

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #f1f1f1 25%,
            #d8d8d8 50%,
            #eeeeee 75%,
            #c8c8c8 100%
        );

    box-shadow:
        0 8px 20px rgba(80,80,80,.20),
        0 0 0 3px rgba(80,80,80,.12) inset,
        0 0 20px rgba(180,180,180,.18);

}


/* =====================================
   AUTO / SCHLÜSSEL ICON AUF KARTE
===================================== */

.leihe-auto,
.leihe-schluessel {

    position:absolute;

    right:15px;

    font-size:22px;

    background:#f2f5f8;

    border-radius:50%;

    width:35px;

    height:35px;

    display:flex;

    align-items:center;

    justify-content:center;

}


.leihe-auto {

    top:15px;

}


.leihe-schluessel {

    top:55px;

}


/* =====================================
   STATUSSEITE BEREICHE
===================================== */

.status-bereich {

    background:white;

    border-radius:20px;

    padding:15px;

    margin:15px auto;

    max-width:600px;

    box-shadow:
        0 4px 12px rgba(0,0,0,.15);

}


.status-bereich h2 {

    margin-top:0;

    margin-bottom:12px;

    text-align:center;

    font-size:22px;

}


/* =====================================
   STATUS AKTIONEN
===================================== */

.status-aktionen {

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:8px;

}


.status-icon {

    display:flex;

    align-items:center;

    justify-content:center;

    gap:6px;

    background:#f2f5f8;

    color:#333;

    text-decoration:none;

    border-radius:12px;

    padding:8px 12px;

    font-size:18px;

    font-weight:bold;

    box-shadow:
        0 2px 6px rgba(0,0,0,.15);

}


.status-icon:hover {

    transform:scale(1.05);

}


/* =====================================
   SCHNELLSTATUS ICONS
===================================== */

.status-buttons {

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:6px;

}


.status-icon-button {

    width:50px;

    height:50px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#f2f5f8;

    border-radius:12px;

    font-size:28px;

    text-decoration:none;

    box-shadow:
        0 2px 6px rgba(0,0,0,.15);

}


.status-icon-button:hover {

    transform:scale(1.1);

}


/* =====================================
   URLAUB / KRANK
===================================== */

.kurz-status {

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    margin-top:10px;

}


.kurz-status div {

    background:#f5f5f5;

    border-radius:8px;

    padding:6px 8px;

    white-space:nowrap;

}


.kurz-status input {

    width:115px;

    font-size:14px;

    padding:4px;

    border-radius:8px;

    border:1px solid #ccc;

}


.kurz-status button {

    font-size:14px;

    padding:5px 8px;

}


/* =====================================
   AUSGABE
===================================== */

.ausgabe-kurz {

    margin-top:12px;

    padding:8px 10px;

    background:#edf4ff;

    border-radius:8px;

    text-align:center;

}


.ausgabe-titel {

    font-size:28px;

    font-weight:bold;

    margin-bottom:5px;

}


.ausgabe-buttons {

    display:flex;

    justify-content:center;

    gap:8px;

}


/* =====================================
   STATUS FORMULARE
===================================== */

.status-form input {

    font-size:18px;

    padding:8px;

    border-radius:8px;

    border:1px solid #ccc;

}


.status-form-button {

    font-size:16px;

    padding:8px 15px;

    border-radius:10px;

}


/* =====================================
   STATUS FARBEN
===================================== */

.status-anwesend {

    color:#1b8f3a;

}


.status-pause {

    color:#c47a00;

    font-weight:bold;

}


.status-dienstgang {

    color:#1976d2;

}


.status-homeoffice {

    color:#6a1b9a;

}


.status-urlaub {

    color:#00897b;

}


.status-krank {

    color:#d32f2f;

}


.status-abwesend {

    color:#777;

}


/* =====================================
   FAHRZEUG / SCHLÜSSEL ZUWEISUNG
===================================== */

.zuweisung-liste {

    width:100%;

    max-width:700px;

    margin:15px auto;

}


.zuweisung-zeile {

    display:flex;

    align-items:center;

    gap:8px;

    background:white;

    padding:8px 10px;

    margin-bottom:6px;

    border-radius:10px;

    box-shadow:
        0 2px 6px rgba(0,0,0,.12);

}


.zuweisung-symbol {

    width:32px;

    text-align:center;

    font-size:22px;

}


.zuweisung-statuspunkt {

    width:12px;

    height:12px;

    border-radius:50%;

    flex-shrink:0;

}


.status-frei {

    background:#4caf50;

}


.status-belegt {

    background:#ffb300;

}


.zuweisung-info {

    flex:1;

    text-align:left;

}


.zuweisung-name {

    font-size:17px;

    font-weight:bold;

}


.zuweisung-besitzer {

    font-size:13px;

    color:#777;

}


.zuweisung-aktionen {

    display:flex;

    gap:5px;

    white-space:nowrap;

}


/* =====================================
   AKTUELLES FAHRZEUG /
   MEINE SCHLÜSSEL
===================================== */

.aktuelles-fahrzeug {

    background:#edf4ff;

    border-radius:12px;

    padding:10px 15px;

    max-width:700px;

    margin:15px auto;

    box-shadow:
        0 2px 8px rgba(0,0,0,.12);

    font-size:17px;

}


.aktuelles-fahrzeug b {

    font-size:19px;

}


/* =====================================
   AKTIONSBUTTONS
===================================== */

.aktion-button {

    padding:6px 10px;

    border-radius:8px;

    text-decoration:none;

    color:white;

    font-size:14px;

    font-weight:bold;

    display:inline-block;

}


.aktion-button:hover {

    opacity:.85;

}


.aktion-gruen {

    background:#4caf50;

}


.aktion-orange {

    background:#ff9800;

}


.aktion-grau {

    background:#777;

}


/* =====================================
   HINWEISBOX
===================================== */

.hinweis-box {

    background:#ffe5e5;

    color:#b30000;

    border-radius:12px;

    padding:12px 15px;

    max-width:600px;

    margin:15px auto;

    text-align:center;

    font-weight:bold;

    box-shadow:
        0 2px 8px rgba(0,0,0,.12);

}


/* =====================================
   SCHLÜSSEL LISTE
===================================== */

.schluessel-liste {

    background:white;

    border-radius:12px;

    padding:15px;

    box-shadow:
        0 3px 10px rgba(0,0,0,.12);

}


.schluessel-zeile {

    display:flex;

    align-items:center;

    gap:10px;

    padding:8px 0;

    border-bottom:1px solid #ddd;

}


.schluessel-zeile:last-child {

    border-bottom:none;

}


/* =====================================
   AUSWAHLBOXEN
===================================== */

.schluessel-box {

    max-height:200px;

    overflow-y:auto;

    background:#f2f5f8;

    padding:10px;

    border-radius:12px;

}


.schluessel-item {

    display:block;

    font-size:16px;

    padding:4px;

}


/* =====================================
   ADMIN BEREICH
===================================== */

.admin-container {

    padding:30px;

}


.admin-menu {

    display:flex;

    flex-direction:column;

    gap:15px;

    margin-top:25px;

}


.admin-button {

    display:block;

    padding:18px;

    font-size:22px;

    text-align:center;

    border-radius:15px;

    background:#eeeeee;

    color:#222;

    text-decoration:none;

}


.admin-button:hover {

    transform:scale(1.02);

}


/* =====================================
   ADMIN MITARBEITER
===================================== */

.admin-user-grid {

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(350px,1fr));

    gap:20px;

    width:100%;

    margin-top:25px;

}


.admin-card {

    background:white;

    border-radius:20px;

    padding:20px;

    box-shadow:
        0 4px 12px rgba(0,0,0,.15);

    text-align:center;

}


.admin-card h2 {

    margin-top:0;

}


.admin-card input,
.admin-card select {

    max-width:100%;

    padding:8px;

    border-radius:8px;

    border:1px solid #ccc;

}


/* =====================================
   BENUTZERRECHTE
===================================== */

.rechte-bereich {

    background:white;

    border-radius:12px;

    padding:15px;

    margin-top:15px;

    box-shadow:
        0 2px 8px rgba(0,0,0,.08);

}


.rechte-zeile {

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:15px;

    padding:8px;

    border-bottom:1px solid #eee;

}


.rechte-zeile:last-child {

    border-bottom:none;

}


/* =====================================
   LAUFSCHRIFT
===================================== */

.ticker {

    position:fixed;

    bottom:0;

    left:0;

    width:100%;

    height:55px;

    z-index:100;

    background:#333;

    color:white;

    overflow:hidden;

    display:flex;

    align-items:center;

    font-size:32px;

    font-weight:bold;

}


.ticker-text {

    white-space:nowrap;

    padding-left:100%;

    animation:
        laufen 40s linear infinite;

}


@keyframes laufen {

    from {

        transform:translateX(0);

    }

    to {

        transform:translateX(-100%);

    }

}


/* =====================================
   VERSION
===================================== */

.version {

    position:fixed;

    top:5px;

    right:10px;

    font-size:12px;

    color:#999;

    z-index:999;

}


.version-admin {

    font-size:14px;

    color:#999;

    margin-bottom:10px;

}


/* =====================================
   EVENT BADGE
===================================== */

.event-badge {

    position:absolute;

    top:10px;

    left:10px;

    background:white;

    border-radius:20px;

    padding:5px 10px;

    font-size:16px;

}


/* =====================================
   FEUERWERK
===================================== */

.firework-overlay {

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:100%;

    pointer-events:none;

    z-index:9999;

}


/* =====================================
   MOBILE
===================================== */

@media(max-width:700px){

    h1 {

        font-size:32px;

    }


    .container {

        padding:20px;

        margin-top:10px;

    }


    .clock-box,
    .weather-box {

        position:relative;

        top:auto;

        left:auto;

        right:auto;

        width:100%;

        margin-bottom:15px;

    }


    .admin-user-grid {

        grid-template-columns:1fr;

    }


    .kurz-status {

        flex-direction:column;

    }


    .zuweisung-zeile {

        flex-wrap:wrap;

    }


    .zuweisung-aktionen {

        width:100%;

        justify-content:flex-end;

    }


    .ausgabe-titel {

        font-size:24px;

    }

}


/* =====================================
   ALLGEMEINE ÜBERGÄNGE
===================================== */

a {

    transition:.2s;

}


button {

    transition:.2s;

}


/* =====================================
   STATUS.PHP KORREKTUR
===================================== */

.modal-box {

    padding:15px;

}


.modal-box h1 {

    margin:8px 0 12px 0;

    font-size:28px;

}


.modal-box h2 {

    margin:10px 0;

    font-size:22px;

}


/* =====================================
   STATUS BUTTONS KOMPAKT
===================================== */

.status-buttons {

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:6px;

}


.status-buttons button {

    padding:8px 12px;

    font-size:17px;

}


/* =====================================
   URLAUB / KRANK
===================================== */

.kurz-status {

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    margin-top:12px;

}


.kurz-status div {

    background:#f5f5f5;

    border-radius:8px;

    padding:6px 8px;

}


.kurz-status input {

    width:115px;

    font-size:14px;

    padding:4px;

}


.kurz-status button {

    font-size:14px;

    padding:5px 8px;

}


/* =====================================
   AUSGABE BEREICH
===================================== */

.ausgabe-kurz {

    margin-top:12px;

    padding:8px 10px;

    background:#edf4ff;

    border-radius:8px;

    text-align:center;

}


.ausgabe-titel {

    font-size:28px;

    font-weight:bold;

    margin-bottom:5px;

}


.ausgabe-buttons {

    display:flex;

    justify-content:center;

    gap:8px;

}


.ausgabe-kurz .back-button {

    padding:6px 10px;

    font-size:15px;

    margin-left:5px;

}


/* =====================================
   STATUSSEITE FORMULARE
===================================== */

.status-form input {

    font-size:18px;

    padding:8px;

    border-radius:8px;

}


.status-form-button {

    font-size:16px;

    padding:8px 15px;

    border-radius:10px;

}


/* =====================================
   STATUSSEITE NEU
===================================== */

.status-seite {

    background:white;

    border-radius:25px;

    padding:25px;

    max-width:700px;

    margin:30px auto;

    box-shadow:
        0 5px 15px rgba(0,0,0,.15);

    text-align:center;

}


.status-seite h1 {

    font-size:40px;

    margin:10px 0 25px 0;

}


/* =====================================
   STATUS AUSWAHL
===================================== */

.status-buttons {

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:8px;

}


.status-buttons button {

    font-size:18px;

    padding:10px 14px;

    border-radius:10px;

}


/* =====================================
   URLAUB / KRANK
===================================== */

.kurz-status {

    display:flex;

    justify-content:center;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    margin-top:15px;

}


.kurz-status div {

    background:#f5f5f5;

    border-radius:10px;

    padding:8px 10px;

    white-space:nowrap;

}


.kurz-status input {

    width:115px;

    font-size:14px;

    padding:5px;

}


.kurz-status button {

    font-size:14px;

    padding:6px 10px;

}


/* =====================================
   AUSGABE
===================================== */

.ausgabe-kurz {

    margin-top:18px;

    padding:12px;

    background:#edf4ff;

    border-radius:12px;

}


.ausgabe-titel {

    font-size:30px;

    font-weight:bold;

    margin-bottom:10px;

}


.ausgabe-buttons {

    display:flex;

    justify-content:center;

    gap:10px;

}


/* =====================================
   MOBILE STATUSSEITE
===================================== */

@media(max-width:700px){

    .status-seite {

        margin:15px;

        padding:15px;

    }


    .status-seite h1 {

        font-size:32px;

    }


    .status-buttons button {

        font-size:16px;

    }

}


/* =====================================
   STATUS AUSGABE BUTTONS
===================================== */

.status-ausgabe-button {

    display:flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    background:#f2f5f8;

    color:#333;

    text-decoration:none;

    border-radius:10px;

    padding:10px 16px;

    font-size:18px;

    font-weight:bold;

    box-shadow:
        0 2px 6px rgba(0,0,0,.15);

    transition:.2s;

}


.status-ausgabe-button:hover {

    transform:scale(1.05);

    background:#e7edf3;

}


/* =====================================
   BESONDERE EREIGNISKARTEN
===================================== */


/* -------------------------------------
   GEBURTSTAG
------------------------------------- */

.card.geburtstag-card {

    background:

        linear-gradient(

            145deg,

            #fffdf0 0%,

            #fff4b8 22%,

            #f5d76e 50%,

            #d9a928 78%,

            #f8e79b 100%

        );

    border:1px solid rgba(190,145,35,.55);

    box-shadow:

        0 8px 20px rgba(170,125,20,.25),

        0 0 0 1px rgba(255,235,150,.5) inset,

        0 0 22px rgba(255,210,70,.20);

    overflow:hidden;

    animation:
        geburtstag-glanz 3.5s ease-in-out infinite;

}


/* -------------------------------------
   SONSTIGES EREIGNIS
------------------------------------- */

.card.ereignis-card {

    background:

        linear-gradient(

            145deg,

            #ffffff 0%,

            #f1f1f1 25%,

            #d8d8d8 50%,

            #eeeeee 75%,

            #c8c8c8 100%

        );

    border:1px solid rgba(130,130,130,.45);

    box-shadow:

        0 8px 20px rgba(80,80,80,.20),

        0 0 0 1px rgba(255,255,255,.75) inset,

        0 0 20px rgba(180,180,180,.18);

    overflow:hidden;

}


/* =====================================
   EREIGNISTEXT OBEN AUF DER KACHEL
===================================== */

.personal-event {

    position:relative;

    width:100%;

    box-sizing:border-box;

    margin-bottom:14px;

    padding:2px 10px 8px 10px;

    text-align:center;

    z-index:2;

}


.personal-event-title {

    font-size:19px;

    font-weight:bold;

    line-height:1.25;

    letter-spacing:.3px;

    white-space:normal;

    overflow:visible;

    word-break:break-word;

}


/* =====================================
   GEBURTSTAG TEXT
===================================== */

.personal-event-gold .personal-event-title {

    color:#765500;

    text-shadow:

        0 1px 0 rgba(255,255,255,.8),

        0 0 8px rgba(255,255,255,.45);

}


/* =====================================
   SONSTIGES EREIGNIS TEXT
===================================== */

.personal-event-silver .personal-event-title {

    color:#444;

    text-shadow:

        0 1px 0 rgba(255,255,255,.9);

}


/* =====================================
   GOLDENER GLANZ
===================================== */

.card.geburtstag-card::before {

    content:"";

    position:absolute;

    top:-60%;

    left:-45%;

    width:45%;

    height:220%;

    background:

        linear-gradient(

            90deg,

            transparent,

            rgba(255,255,255,.45),

            transparent

        );

    transform:rotate(20deg);

    animation:
        gold-glanz 5s ease-in-out infinite;

    pointer-events:none;

}


/* =====================================
   LEICHTES GOLD-PULSIEREN
===================================== */

@keyframes geburtstag-glanz {

    0% {

        box-shadow:

            0 8px 20px rgba(170,125,20,.25),

            0 0 0 1px rgba(255,235,150,.5) inset,

            0 0 18px rgba(255,210,70,.15);

    }


    50% {

        box-shadow:

            0 10px 25px rgba(170,125,20,.32),

            0 0 0 1px rgba(255,240,160,.65) inset,

            0 0 30px rgba(255,210,70,.30);

    }


    100% {

        box-shadow:

            0 8px 20px rgba(170,125,20,.25),

            0 0 0 1px rgba(255,235,150,.5) inset,

            0 0 18px rgba(255,210,70,.15);

    }

}


/* =====================================
   GLANZBEWEGUNG
===================================== */

@keyframes gold-glanz {

    0% {

        left:-55%;

        opacity:0;

    }


    15% {

        opacity:0;

    }


    35% {

        opacity:1;

    }


    60% {

        left:120%;

        opacity:0;

    }


    100% {

        left:120%;

        opacity:0;

    }

}


/* =====================================
   ZURÜCK-BUTTON NICHT UNTERSTREICHEN
===================================== */

.back-button {

    text-decoration:none;

}


/*
 * MOBILE: Laufschrift beim Scrollen kurz ausblenden.
 *
 * Die Kachelgrößen und die Position der Laufschrift bleiben unverändert.
 * Gilt für beide Ticker-Varianten, da beide .ticker verwenden.
 */
@media(max-width:700px){

    .ticker.is-scrolling {

        opacity:0;

        pointer-events:none;

    }

}
