/* ========================= WARTEZIMMER MONITOR ========================= */ .waiting-monitor { border: 3px solid #343a40; border-radius: 10px; padding: 15px; min-height: 45vh; /* untere Hälfte */ background-color: #f8f9fa; } .waiting-grid { display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(3, 1fr); gap: 10px; height: 100%; } .waiting-slot { border: 2px dashed #adb5bd; border-radius: 6px; padding: 10px; background-color: #ffffff; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; } .waiting-slot.occupied { border-style: solid; border-color: #198754; background-color: #e9f7ef; } .waiting-slot .name { font-weight: bold; } .waiting-slot .birthdate { font-size: 0.8rem; color: #6c757d; } .waiting-slot .placeholder { color: #adb5bd; font-style: italic; } .waiting-slot.empty { display: flex; align-items: center; justify-content: center; background: #f8f9fa; } .chair-icon { width: 48px; opacity: 0.4; } /* ✅ Wartezimmer: Slots klickbar machen (wenn benutzt wird) */ .waiting-slot.clickable { cursor: pointer; transition: 0.15s ease; text-decoration: none; /* ❌ kein Link-Unterstrich */ color: inherit; /* ✅ Textfarbe wie normal */ } /* ✅ Hover Effekt */ .waiting-slot.clickable:hover { transform: scale(1.03); box-shadow: 0 0 0 2px #2563eb; } /* ✅ damit der Link wirklich den ganzen Block klickbar macht */ a.waiting-slot { display: flex; } .auto-hide-flash { animation: flashFadeOut 3s forwards; } @keyframes flashFadeOut { 0% { opacity: 1; } 70% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } } /* ========================================================= ✅ PAGE HEADER (global) - Höhe ca. 4cm - Hintergrund schwarz - Text in der Mitte - Button + Datum/Uhrzeit rechts ========================================================= */ /* ✅ Der komplette Header-Container */ .page-header { height: 150px; /* ca. 4cm */ background: #000; /* Schwarz */ color: #fff; /* Weiße Schrift */ /* Wir nutzen Grid, damit Center wirklich immer mittig bleibt */ display: grid; /* 3 Spalten: 1) links = leer/optional 2) mitte = Text (center) 3) rechts = Dashboard + Uhrzeit */ grid-template-columns: 1fr 2fr 1fr; align-items: center; /* vertikal mittig */ padding: 0 20px; /* links/rechts Abstand */ box-sizing: border-box; } /* ✅ Linke Header-Spalte (kann leer bleiben oder später Logo) */ .page-header-left { justify-self: start; /* ganz links */ } /* ✅ Mittlere Header-Spalte (Text zentriert) */ .page-header-center { justify-self: center; /* wirklich zentriert in der Mitte */ text-align: center; display: flex; flex-direction: column; /* Username oben, Titel darunter */ gap: 6px; /* Abstand zwischen den Zeilen */ } /* ✅ Rechte Header-Spalte (Button + Uhrzeit rechts) */ .page-header-right { justify-self: end; /* ganz rechts */ display: flex; flex-direction: column; /* Button oben, Uhrzeit unten */ align-items: flex-end; /* alles rechts ausrichten */ gap: 10px; /* Abstand Button / Uhrzeit */ } /* ✅ Username-Zeile (z.B. Willkommen, admin) */ .page-header-username { font-size: 22px; font-weight: 600; margin: 0; } /* ✅ Titel-Zeile (z.B. Seriennummer) */ .page-header-title { font-size: 18px; opacity: 0.9; } /* ✅ Subtitle Bereich (optional) */ .page-header-subtitle { opacity: 0.75; } /* ✅ Uhrzeit (oben rechts unter dem Button) */ .page-header-datetime { font-size: 14px; opacity: 0.85; } /* ✅ Dashboard Button (weißer Rahmen) */ .page-header .btn-outline-light { border-color: #fff !important; color: #fff !important; } /* ✅ Dashboard Button: keine Unterstreichung + Rahmen + rund */ .page-header a.btn { text-decoration: none !important; /* keine Unterstreichung */ border: 2px solid #fff !important; /* Rahmen */ border-radius: 12px; /* abgerundete Ecken */ padding: 6px 12px; /* schöner Innenabstand */ display: inline-block; /* saubere Button-Form */ } /* ✅ Dashboard Button (Hovereffekt) */ .page-header a.btn:hover { background: #fff !important; color: #000 !important; } /* ✅ Sidebar Lock: verhindert Klick ohne Inline-JS (Helmet CSP safe) */ .nav-item.locked { opacity: 0.5; cursor: not-allowed; pointer-events: none; /* verhindert klicken komplett */ } /* ========================================================= ✅ Admin Sidebar - Hintergrund schwarz ========================================================= */ .layout { display: flex; min-height: 100vh; } .sidebar { width: 260px; background: #111; color: #fff; padding: 20px; } .nav-item { display: flex; gap: 10px; padding: 10px; text-decoration: none; color: #ddd; } .nav-item:hover { background: #222; color: #fff; } .nav-item.active { background: #0d6efd; color: #fff; } .main { flex: 1; } /* ========================================================= ✅ Leere Sidebar - Hintergrund schwarz ========================================================= */ /* ✅ Leere Sidebar (nur schwarzer Balken) */ .sidebar-empty { background: #000; width: 260px; /* gleiche Breite wie normale Sidebar */ padding: 0; } /* ========================================================= ✅ Logo Sidebar - links oben ========================================================= */ .logo { font-size: 18px; font-weight: 700; color: #fff; margin-bottom: 15px; }