/* Tagespflege Dispo – Premium Redesign */
/* v2.0 – kompakter Header, Fahrer-Handzeichen, Multi-Fahrer */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--primary:#0d9488;--primary-dark:#0f766e;--primary-light:#ccfbf1;--primary-bg:#f0fdfa;--accent:#6366f1;--success:#22c55e;--success-bg:#f0fdf4;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#ef4444;--danger-bg:#fef2f2;--bg:#f8fafc;--surface:#fff;--text:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--border:#e2e8f0;--border-hover:#cbd5e1;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow:0 1px 3px rgba(0,0,0,.07),0 4px 12px rgba(0,0,0,.03);--shadow-lg:0 4px 12px rgba(0,0,0,.08),0 12px 32px rgba(0,0,0,.06);--radius-sm:0px;--radius:0px;--radius-lg:0px;--font:'Inter',system-ui,-apple-system,sans-serif;--font-mono:'SF Mono','Consolas',monospace}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.main-content{flex:1}

/* Header */
.header{background:linear-gradient(135deg,#0f766e 0%,#0d9488 50%,#14b8a6 100%);padding:0 .75rem;height:42px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 1px 6px rgba(13,148,136,.2)}
.header-logo{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.95rem;color:#fff;text-decoration:none}
.header-logo:hover{text-decoration:none}
.header-nav{display:flex;align-items:center;gap:.15rem}
.nav-link{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500;color:rgba(255,255,255,.75);text-decoration:none;transition:all .15s;border:none;background:none}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.12);text-decoration:none}
.nav-link.active{color:#fff;background:rgba(255,255,255,.18);font-weight:600}
.nav-divider{width:1px;height:18px;background:rgba(255,255,255,.2);margin:0 .25rem}
.user-info{display:flex;align-items:center;gap:.35rem;margin-right:.15rem}
.user-name{font-size:.78rem;color:rgba(255,255,255,.85);font-weight:500}
.user-role-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:20px;background:rgba(255,255,255,.18);color:#fff}
.nav-logout{opacity:.7}.nav-logout:hover{opacity:1}
.mobile-menu-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:6px}
.mobile-menu-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:all .2s}

/* Footer */
.footer{background:var(--surface);border-top:1px solid var(--border);padding:.75rem 1.5rem;text-align:center;font-size:.78rem;color:var(--text-muted)}
.footer-inner{display:flex;align-items:center;justify-content:center;gap:.5rem}
.footer-sep{opacity:.4}

/* Week Nav */
.week-nav{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.9rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}
.week-nav button:not(.btn-today):not(.btn-copy-week){display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:1rem;color:var(--text-muted);transition:all .15s;font-family:var(--font)}
.week-nav button:not(.btn-today):not(.btn-copy-week):hover{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}
.week-nav .current-week{font-weight:700;font-size:.95rem;color:var(--text);min-width:220px;text-align:center}
.week-nav .btn-today{width:auto;padding:.4rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font)}
.week-nav .btn-today:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}
.week-nav .btn-copy-week{margin-left:auto;display:inline-flex;align-items:center;gap:0.4rem;background:var(--primary);color:#ffffff;border:none;padding:0.4rem 0.8rem;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;font-size:0.85rem;font-family:var(--font);transition:all 0.15s;width:auto;height:auto}
.week-nav .btn-copy-week:hover{background:var(--primary-dark);color:#ffffff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(13,148,136,.3)}

/* Board */
.board-container{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:.75rem 1rem}
.day-column{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-height:300px;display:flex;flex-direction:column;border:1.5px solid var(--border);transition:all .2s}
.day-column.drag-over{border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,148,136,.15)}
.day-header{padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;text-align:center}
.day-header .day-name{font-weight:700;font-size:.82rem;color:var(--text)}
.day-header .day-date{font-size:.7rem;color:var(--text-muted)}
.day-header.today{background:var(--primary-bg);border-bottom-color:var(--primary-light)}
.day-header.today .day-name{color:var(--primary)}
.day-content{flex:1;padding:.35rem;min-height:80px;overflow-y:auto}
.day-placements{display:flex;flex-direction:column;gap:.25rem;min-height:30px}

/* Placement Cards */
.placement-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem;cursor:grab;transition:all .15s;position:relative;font-size:.78rem;user-select:none;line-height:1.3}
.placement-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}
.placement-card:active{cursor:grabbing}
.placement-card.dragging{opacity:.4;border-style:dashed}
.placement-card .patient-name{font-weight:600;color:var(--text);font-size:.78rem}
.placement-card .patient-address{font-size:.65rem;color:var(--text-muted);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.placement-card .patient-meta{display:flex;align-items:center;gap:.3rem;font-size:.7rem;color:var(--text-muted);flex-wrap:wrap;margin-top:.15rem}
.placement-card .meta-badge{display:inline-flex;align-items:center;gap:.15rem;background:var(--bg);padding:.1rem .3rem;border-radius:3px;font-size:.62rem;font-weight:500}
.placement-card .meta-badge.wheelchair{background:var(--warning-bg);color:#92400e}
.placement-card .meta-badge.time{background:var(--primary-bg);color:var(--primary-dark)}
.placement-card .meta-badge.care{background:#ede9fe;color:#5b21b6}
.placement-card .meta-badge.return-active{background:var(--success-bg);color:#166534}
.placement-card .meta-badge.return-inactive{background:var(--bg);color:var(--text-light);opacity:.6}
.placement-card .driver-label{font-size:.62rem;color:var(--primary);font-weight:500;margin-top:.1rem}
.placement-card .card-actions{position:absolute;top:.2rem;right:.2rem;display:flex;gap:.15rem;opacity:0;transition:opacity .15s}
.placement-card:hover .card-actions{opacity:1}
.card-actions button{width:18px;height:18px;border-radius:3px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .15s}
.card-actions button:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}
.placement-card select{font-size:.65rem;padding:.12rem .2rem;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text);font-family:var(--font);margin-top:.12rem;width:100%}
.placement-card .time-input{font-size: .65rem;padding: .12rem .2rem;border: 1px solid var(--border);border-radius: 3px;width: 70px;height: 17px;font-family: var(--font-mono);color: var(--text);}
.placement-card .return-toggle{display:inline-flex;align-items:center;gap:.15rem;cursor:pointer;font-size:.62rem;padding:.08rem .3rem;border-radius:3px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);transition:all .15s;font-family:var(--font)}
.placement-card .return-toggle:hover{border-color:var(--primary)}
.placement-card .return-toggle.active{background:var(--success-bg);color:#166534;border-color:#86efac}

/* Pool */
.pool-section{padding:.75rem 1rem}
.pool-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.pool-header h2{font-size:1rem;font-weight:700;color:var(--text)}
.pool-search input{padding:.45rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font);width:220px;transition:border-color .15s}
.pool-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,148,136,.1)}
.pool-container{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}
.pool-day{background:var(--surface);border:1.5px dashed var(--border);border-radius:var(--radius);min-height:80px;padding:.5rem}
.pool-day-header{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;padding:0 .25rem}
.pool-list{display:flex;flex-direction:column;gap:.25rem}
.pool-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.1rem .6rem;cursor:grab;font-size:.8rem;transition:all .15s;user-select:none}
.pool-card:hover{border-color:var(--primary);background:var(--primary-bg);transform:translateY(-1px)}
.pool-card:active{cursor:grabbing}
.pool-card.dragging{opacity:.3}
.pool-card .pool-name{font-weight:600}
.pool-card .pool-meta{font-size:.68rem;color:var(--text-muted);margin-top:.1rem}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;animation:fadeIn .15s ease}
.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2rem;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}
.modal h2{font-size:1.15rem;margin-bottom:1.25rem;color:var(--text)}
.modal .form-group{margin-bottom:1rem}
.modal label{display:block;font-weight:600;font-size:.83rem;margin-bottom:.3rem;color:var(--text)}
.modal input,.modal select,.modal textarea{width:100%;padding:.55rem .7rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;font-family:var(--font);transition:all .15s}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,148,136,.1)}
.modal textarea{resize:vertical;min-height:70px}
.modal .checkbox-group{display:flex;align-items:center;gap:.5rem;font-size:.85rem}
.modal .checkbox-group input[type="checkbox"]{width:auto}
.modal .day-checkboxes{display:flex;gap:.4rem;flex-wrap:wrap}
.modal .day-checkboxes label{display:flex;align-items:center;gap:.25rem;font-weight:400;font-size:.8rem;cursor:pointer;padding:.3rem .6rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);transition:all .15s}
.modal .day-checkboxes label:has(input:checked){background:var(--primary-bg);border-color:var(--primary);color:var(--primary);font-weight:600}
.modal .day-checkboxes input[type="checkbox"]{width:auto;margin:0}
.modal .btn-row{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1.1rem;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font)}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 2px 8px rgba(13,148,136,.3)}
.btn-secondary{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.btn-secondary:hover{color:var(--text);border-color:var(--border-hover)}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}
.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#d97706}
.btn-sm{padding:.3rem .6rem;font-size:.76rem}

/* Toast */
#toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:2000}
.toast{background:var(--text);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .25s ease;max-width:400px}
.toast.success{background:#166534}.toast.error{background:#991b1b}

/* Data Tables */
.master-data-page{max-width:100%;margin:0 auto;padding:1.5rem}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.page-header h1{font-size:1.35rem;font-weight:800}
.data-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.data-table th,.data-table td{padding:.7rem 1rem;text-align:left;font-size:.83rem;border-bottom:1px solid var(--border)}
.data-table th{background:var(--bg);font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.data-table tr:last-child td{border-bottom:none}
.data-table tbody tr:nth-child(even) td{background:var(--bg)}
.data-table tbody tr:hover td{background:var(--primary-bg)}
.data-table .actions{display:flex;gap:.35rem}
.data-table .badge{display:inline-block;padding:.12rem .5rem;border-radius:12px;font-size:.7rem;font-weight:600}
.badge.active{background:var(--success-bg);color:#166534}
.badge.inactive{background:var(--danger-bg);color:#991b1b}
.badge.days{background:var(--primary-bg);color:var(--primary-dark);font-family:var(--font-mono)}
.magic-link-group{display:flex;gap:.3rem;align-items:center}
.magic-link-input{font-size:.72rem!important;padding:.3rem .5rem!important;flex:1;min-width:0}

/* Auth Pages (Login/Install/Update) */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(135deg,#f0fdfa 0%,#ccfbf1 30%,#e0e7ff 70%,#f8fafc 100%)}
.auth-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2.5rem;width:100%;max-width:440px}
.auth-card h1{font-size:1.5rem;color:var(--primary);text-align:center;margin-bottom:.25rem}
.auth-card .subtitle{color:var(--text-muted);font-size:.88rem;text-align:center;margin-bottom:1.75rem}
.auth-card .form-group{margin-bottom:1.25rem}
.auth-card label{display:block;font-weight:600;margin-bottom:.4rem;font-size:.88rem}
.auth-card input{width:100%;padding:.7rem .9rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;font-family:var(--font);transition:all .15s}
.auth-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.auth-card .btn-submit{width:100%;padding:.8rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font)}
.auth-card .btn-submit:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(13,148,136,.25)}
.auth-card .error-msg{background:var(--danger-bg);border:1px solid #fecaca;color:var(--danger);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1.25rem;font-size:.88rem}
.auth-card .success-msg{background:var(--success-bg);border:1px solid #bbf7d0;color:#166534;padding:1.25rem;border-radius:var(--radius-sm);text-align:center}
.auth-card .info-box{background:var(--primary-bg);border:1px solid #99f6e4;padding:1rem;border-radius:var(--radius-sm);margin-bottom:1.5rem;font-size:.83rem;color:var(--primary-dark)}

/* Driver Mobile Page */
.driver-page{max-width:500px;margin:0 auto;min-height:100vh;background:var(--surface)}
.driver-header{background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;padding:.6rem .75rem;text-align:center}
.driver-header h1{font-size:.95rem;font-weight:700}
.driver-header .date{font-size:.75rem;opacity:.85;margin-top:.05rem}
.driver-tabs{display:flex;border-bottom:2px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:50}
.driver-tab{flex:1;padding:.55rem;text-align:center;font-weight:600;font-size:.8rem;color:var(--text-muted);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;font-family:var(--font)}
.driver-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.driver-day-nav{display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.4rem;background:var(--bg);border-bottom:1px solid var(--border)}
.driver-day-btn{padding:.25rem .5rem;border-radius:4px;border:1px solid var(--border);background:var(--surface);font-size:.72rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:var(--font);color:var(--text-muted)}
.driver-day-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.driver-day-btn:hover:not(.active){border-color:var(--primary);color:var(--primary)}
.driver-list{padding:.4rem;display:flex;flex-direction:column;gap:.3rem}
.driver-stop{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem;cursor:pointer;transition:all .15s;position:relative;display:flex;align-items:flex-start;gap:.5rem}
.driver-stop:active{background:var(--bg)}
.driver-stop .stop-number{width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;margin-top:.1rem}
.driver-stop .stop-number.return{background:var(--warning)}
.driver-stop .stop-info{flex:1;min-width:0}
.driver-stop .stop-name{font-weight:600;font-size:.82rem}
.driver-stop .stop-address{font-size:.72rem;color:var(--text-muted);margin-top:.05rem}
.driver-stop .stop-meta-line{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin-top:.15rem}
.driver-stop .stop-time{font-size:.72rem;color:var(--primary);font-weight:600}
.driver-stop .stop-badge{display:inline-block;font-size:.62rem;padding:.05rem .35rem;border-radius:3px;font-weight:500}
.driver-stop .stop-badge.wheelchair{background:var(--warning-bg);color:#92400e}
.driver-stop .stop-badge.care{background:#ede9fe;color:#5b21b6}
.driver-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted)}
.driver-empty .icon{font-size:2.5rem;margin-bottom:.5rem}

/* Nav Sheet */
.nav-sheet{position:fixed;bottom:0;left:0;right:0;max-width:500px;margin:0 auto;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.15);padding:1.25rem;z-index:1000;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);max-height:70vh;overflow-y:auto}
.nav-sheet.open{transform:translateY(0)}
.nav-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:999;opacity:0;pointer-events:none;transition:opacity .3s}
.nav-sheet-backdrop.open{opacity:1;pointer-events:auto}
.nav-sheet h3{font-size:1.05rem;margin-bottom:.15rem}
.nav-sheet .patient-detail{color:var(--text-muted);font-size:.83rem;margin-bottom:1rem}
.nav-sheet .close-sheet{position:absolute;top:.75rem;right:1rem;width:36px;height:36px;border-radius:50%;border:none;background:#f1f5f9;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}
.nav-sheet .nav-link{display:flex;align-items:center;gap:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;color:var(--text);text-decoration:none;transition:all .15s;padding:.45rem .75rem;margin-bottom:.5rem;background:#fff}
.nav-sheet .nav-link:hover{background:var(--bg);color:var(--primary);border-color:var(--border-hover);text-decoration:none}
.nav-sheet .nav-link .nav-icon{font-size:1.3rem}
.nav-sheet .nav-link.google{border-left:4px solid #4285F4}
.nav-sheet .nav-link.apple{border-left:4px solid #000}
.nav-sheet .nav-link.waze{border-left:4px solid #33CCFF}
.nav-sheet .nav-link.phone{border-left:4px solid var(--success)}
.nav-sheet .nav-link.profile{border-left:4px solid var(--accent)}

/* Animations */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideIn{from{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}

/* Responsive */
@media(max-width:1100px){.board-container,.pool-container{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){
.board-container,.pool-container{grid-template-columns:1fr;padding:.75rem}
.header{padding:0 .5rem;height:auto;flex-wrap:wrap;gap:0;padding-top:.35rem;padding-bottom:.35rem}
.mobile-menu-toggle{display:flex}
.header-nav{display:none;width:100%;flex-direction:column;padding:.3rem 0;gap:.1rem}
.header-nav.open{display:flex}
.nav-divider{display:none}
.nav-link{padding:.4rem .6rem;width:100%;justify-content:flex-start}
.user-info{padding:.3rem .6rem;width:100%}
.data-table{font-size:.75rem}
.data-table th,.data-table td{padding:.45rem .5rem}
.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}
}




/* Driver Badge Buttons (Board) */
.driver-badges{display:flex;gap:.2rem;flex-wrap:wrap;margin-top:.15rem}
.driver-badge-btn, .return-driver-badge-btn{display:inline-flex;align-items:center;justify-content:center;padding:.1rem .3rem;border-radius:3px;font-size:.6rem;font-weight:700;cursor:pointer;border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);transition:all .12s;font-family:var(--font);letter-spacing:.03em;line-height:1.2;text-transform:uppercase}
.driver-badge-btn:hover, .return-driver-badge-btn:hover{border-color:var(--text-light);transform:scale(1.05)}
.driver-badge-btn.active, .return-driver-badge-btn.active{color:#fff;border-color:transparent}

/* Schedule */
.schedule-page{max-width:100%;margin:0 auto;padding:1.5rem}
.schedule-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.schedule-controls select{padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font)}
.schedule-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border);font-size:.8rem}
.schedule-table th,.schedule-table td{padding:.5rem .6rem;text-align:left;border:1px solid var(--border)}
.schedule-table th{background:var(--bg);font-weight:600;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.schedule-table .schedule-time{font-family:var(--font-mono);font-size:.75rem;color:var(--primary);font-weight:600}
.schedule-table .schedule-patient{font-weight:500}
.schedule-table .schedule-meta{font-size:.68rem;color:var(--text-muted)}
.schedule-driver-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:4px;font-weight:700;font-size:.8rem;color:#fff;margin-bottom:.5rem}
.btn-print{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.82rem;font-weight:500;cursor:pointer;font-family:var(--font);transition:all .15s}
.btn-print:hover{border-color:var(--primary);color:var(--primary)}

/* Settings */
.settings-page{max-width:800px;margin:0 auto;padding:1.5rem}
.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}
.settings-section h3{font-size:.9rem;font-weight:700;margin-bottom:.5rem;color:var(--text)}
.settings-section p{font-size:.83rem;color:var(--text-muted)}
.settings-coming-soon{display:inline-block;padding:.15rem .5rem;border-radius:4px;background:var(--warning-bg);color:#92400e;font-size:.7rem;font-weight:600;margin-left:.5rem}

/* Shortcode badge in tables */
.driver-shortcode-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .4rem;border-radius:4px;font-size:.72rem;font-weight:700;color:#fff;letter-spacing:.04em;min-width:32px;text-align:center}

/* Color picker in modal */
.color-preview-row{display:flex;align-items:center;gap:.5rem}
.color-preview-row input[type="color"]{width:36px;height:30px;border:1px solid var(--border);border-radius:4px;padding:0;cursor:pointer}
.color-preview-row .shortcode-display{font-weight:700;font-size:.85rem;letter-spacing:.04em}

@media print{
.header,.footer,.week-nav,.pool-section,.card-actions,.btn,.btn-print,#toast-container,.nav-sheet,.nav-sheet-backdrop,.schedule-controls,.page-header .btn{display:none!important}
.main-content{padding:0}
.schedule-page{padding:0}
.schedule-table{box-shadow:none;border:1px solid #ccc}
.schedule-driver-badge{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* Utility */
.text-muted{color:var(--text-muted)}.text-sm{font-size:.85rem}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}

/* ============================================================
   DIENSTPLANER (ROTA / SHIFT SCHEDULER) STYLES
   ============================================================ */
.dienstplan-page {
    max-width: 100%;
    margin: 0 auto;
    padding: 1.5rem;
}
.dienstplan-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    gap: 1rem;
}
.dienstplan-nav {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.dienstplan-nav select {
    padding: 0.4rem 0.8rem;
    border: 1.5px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 0.88rem;
    font-weight: 600;
    font-family: var(--font);
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
    transition: all 0.15s;
}
.dienstplan-nav select:focus {
    border-color: var(--primary);
    outline: none;
}
.dienstplan-grid-container {
    overflow-x: auto;
    background: var(--surface);
    border-radius: 8px;
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
    position: relative;
    max-height: calc(100vh - 280px);
}
.dienstplan-table {
    width: max-content;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8rem;
}
.dienstplan-table th:not(.employee-col),
.dienstplan-table td:not(.employee-col) {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
}
.dienstplan-table th, .dienstplan-table td {
    padding: 0.4rem;
    text-align: center;
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    min-width: 40px;
    height: 46px;
    vertical-align: middle;
}
.dienstplan-table th {
    background: var(--bg);
    font-weight: 600;
    color: var(--text-muted);
    font-size: 0.72rem;
    position: sticky;
    top: 0;
    z-index: 10;
    border-bottom: 2px solid var(--border);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.dienstplan-table th.employee-col, .dienstplan-table td.employee-col {
    position: sticky;
    left: 0;
    z-index: 20;
    background: var(--surface);
    text-align: left;
    min-width: 250px;
    max-width: 250px;
    font-weight: 600;
    border-right: 2px solid var(--border);
    padding-left: 0.75rem;
}
.dienstplan-table th.employee-col {
    z-index: 30;
    background: var(--bg);
}
.dienstplan-table td.weekend {
    background: #f1f5f9;
}
.dienstplan-table th.weekend {
    background: #e2e8f0;
}
.dienstplan-table tr:hover td {
    background: var(--primary-bg) !important;
}
.dienstplan-table tr:hover td.employee-col {
    background: var(--primary-bg) !important;
}
.dienstplan-table td.highlight-col {
    background: #f0fdfa !important;
}
.dienstplan-table td.highlight-col.weekend {
    background: #cbd5e1 !important;
}
.dienstplan-cell {
    cursor: pointer;
    transition: all 0.12s ease;
    user-select: none;
    position: relative;
}
.dienstplan-cell:hover {
    background: var(--primary-light) !important;
    box-shadow: inset 0 0 0 2px var(--primary) !important;
    z-index: 5;
}
.shift-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.75rem;
    color: white;
    text-shadow: 0 1px 1px rgba(0,0,0,0.15);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.employee-meta-info {
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--text-muted);
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.15rem;
}
.employee-meta-hours {
    font-weight: 700;
    color: var(--primary-dark);
    background: var(--primary-light);
    padding: 0.05rem 0.35rem;
    border-radius: 4px;
    font-size: 0.7rem;
    border: 1px solid var(--primary-light);
}

/* Floating Popover */
.shift-popover {
    position: absolute;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1.5px solid var(--border);
    box-shadow: var(--shadow-lg), 0 10px 25px rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    padding: 0.5rem;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 180px;
    transform: scale(0.95);
    opacity: 0;
    pointer-events: none;
    transform-origin: top left;
    transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);
}
.shift-popover.open {
    transform: scale(1);
    opacity: 1;
    pointer-events: auto;
}
.popover-header {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--text-muted);
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.3rem;
    margin-bottom: 0.2rem;
    text-align: left;
}
.popover-shift-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    border-radius: 6px;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-family: var(--font);
    font-size: 0.78rem;
    font-weight: 500;
    transition: all 0.12s;
    width: 100%;
    color: var(--text);
}
.popover-shift-btn:hover {
    background: var(--bg);
}
.popover-shift-btn .btn-pill {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 0.62rem;
}
.popover-shift-btn.delete-btn {
    color: var(--danger);
    border-top: 1px solid var(--border);
    margin-top: 0.2rem;
    padding-top: 0.4rem;
    font-weight: 600;
}
.popover-shift-btn.delete-btn:hover {
    background: var(--danger-bg);
}

/* Legend section */
.dienstplan-legend {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
    padding: 0.85rem;
    background: var(--surface);
    border-radius: 8px;
    border: 1px solid var(--border);
}
.legend-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--text);
}
.legend-pill {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 0.65rem;
}

/* Settings Modal Shifts Manage */
.shift-manage-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 0.25rem;
}
.shift-manage-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.6rem;
    background: var(--bg);
    border-radius: 6px;
    border: 1px solid var(--border);
}
.shift-manage-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.shift-manage-pill {
    width: 26px;
    height: 26px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 0.68rem;
}
.shift-manage-actions {
    display: flex;
    gap: 0.25rem;
}
.shift-manage-actions button {
    padding: 0.25rem 0.5rem;
    font-size: 0.72rem;
}

/* Tool Palette & Selection Styles */
.dienstplan-palette-container {
    margin-bottom: 1.25rem;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    box-shadow: var(--shadow-sm);
}
.palette-title {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--text-muted);
}
.palette-tools {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}
.palette-tool {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    border-radius: 6px;
    border: 1.5px solid var(--border);
    background: var(--surface);
    color: var(--text);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    font-family: var(--font);
    user-select: none;
}
.palette-tool:hover {
    border-color: var(--primary);
    background: var(--bg);
}
.palette-tool.active {
    background: var(--primary-light);
    border-color: var(--primary);
    color: var(--primary-dark);
    box-shadow: 0 0 0 3px rgba(13,148,136,0.15);
    transform: scale(1.02);
}
.palette-tool.tool-selection {
    border-color: #0284c7;
    color: #0284c7;
}
.palette-tool.tool-selection.active {
    background: #e0f2fe;
    border-color: #0284c7;
    color: #0369a1;
}
.palette-tool.tool-delete {
    border-color: var(--danger);
    color: var(--danger);
}
.palette-tool.tool-delete.active {
    background: var(--danger-bg);
    border-color: var(--danger);
    color: #b91c1c;
}
.dienstplan-cell.selected-cell {
    background: #e0f2fe !important;
    box-shadow: inset 0 0 0 2px #0284c7 !important;
}

/* ============================================================
   THEME SYSTEM (THEME VARIABLES)
   ============================================================ */
/* Sleek Blue Theme */
.theme-blue {
    --primary: #0284c7;
    --primary-dark: #0369a1;
    --primary-light: #e0f2fe;
    --primary-bg: #f0f9ff;
    --accent: #4f46e5;
}
.theme-blue .header {
    background: linear-gradient(135deg, #0369a1 0%, #0284c7 50%, #38bdf8 100%) !important;
    box-shadow: 0 1px 6px rgba(2, 132, 199, 0.2) !important;
}
.theme-blue a { color: var(--primary); }

/* Vibrant Amber Theme */
.theme-amber {
    --primary: #d97706;
    --primary-dark: #b45309;
    --primary-light: #fef3c7;
    --primary-bg: #fffbeb;
    --accent: #3b82f6;
}
.theme-amber .header {
    background: linear-gradient(135deg, #b45309 0%, #d97706 50%, #fbbf24 100%) !important;
    box-shadow: 0 1px 6px rgba(217, 119, 6, 0.2) !important;
}
.theme-amber a { color: var(--primary); }

/* Full Premium Dark Mode Theme */
.theme-dark {
    --bg: #0f172a;
    --surface: #1e293b;
    --text: #f8fafc;
    --text-muted: #94a3b8;
    --text-light: #64748b;
    --border: #334155;
    --border-hover: #475569;
    --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
    --shadow: 0 4px 12px rgba(0,0,0,.4);
    --shadow-lg: 0 12px 32px rgba(0,0,0,.5);
    
    --primary: #2dd4bf;
    --primary-dark: #0f766e;
    --primary-light: #0d9488;
    --primary-bg: rgba(45, 212, 191, 0.1);
    
    --success: #4ade80;
    --success-bg: rgba(74, 222, 128, 0.1);
    --warning: #facc15;
    --warning-bg: rgba(250, 204, 21, 0.1);
    --danger: #f87171;
    --danger-bg: rgba(248, 113, 113, 0.1);
}
.theme-dark .header {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%) !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.4) !important;
    border-bottom: 1px solid var(--border);
}
.theme-dark input, .theme-dark select, .theme-dark textarea {
    background: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}
.theme-dark select option {
    background: #1e293b !important;
    color: #f8fafc !important;
}
.theme-dark .badge, .theme-dark .badge-patient, .theme-dark .badge-date {
    background: #334155 !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
}
.theme-dark .day-header {
    background: #1e293b !important;
}
.theme-dark .day-header.today {
    background: var(--primary-bg) !important;
}
.theme-dark .day-column {
    background: #1e293b !important;
}
.theme-dark .dienstplan-table th {
    background: #0f172a !important;
}
.theme-dark .dienstplan-table td.weekend {
    background: rgba(30, 41, 59, 0.5) !important;
}
.theme-dark .dienstplan-table th.weekend {
    background: rgba(15, 23, 42, 0.8) !important;
}
.theme-dark .modal {
    background: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid #334155 !important;
}
.theme-dark .info-box {
    background: rgba(30, 41, 59, 0.5) !important;
    border-color: #334155 !important;
}
.theme-dark .week-nav, .theme-dark .footer, .theme-dark .patient-card, .theme-dark .dienstplan-grid-container {
    background: #1e293b !important;
    border-color: #334155 !important;
}
.theme-dark .week-nav button:not(.btn-today):not(.btn-copy-week), .theme-dark .btn-today {
    background: #0f172a !important;
    color: #94a3b8 !important;
    border-color: #334155 !important;
}
.theme-dark .week-nav button:not(.btn-today):not(.btn-copy-week):hover, .theme-dark .btn-today:hover {
    border-color: var(--primary) !important;
    color: var(--primary) !important;
}
.theme-dark .current-week {
    color: #f8fafc !important;
}
.theme-dark .dienstplan-table th.employee-col, .theme-dark .dienstplan-table td.employee-col {
    background: #1e293b !important;
    border-right-color: #334155 !important;
}
.theme-dark .dienstplan-table th.employee-col {
    background: #0f172a !important;
}

/* ============================================================
   COMPACT MODE (KOMPAKTMODUS OVERRIDES)
   ============================================================ */
.compact-mode .header {
    height: 34px !important;
}
.compact-mode .week-nav {
    padding: 0.4rem 1rem !important;
}
.compact-mode .week-nav button:not(.btn-today):not(.btn-copy-week) {
    width: 30px !important;
    height: 30px !important;
}
.compact-mode .board-container {
    gap: 0.35rem !important;
    padding: 0.4rem 0.5rem !important;
}
.compact-mode .day-column {
    min-height: 200px !important;
}
.compact-mode .day-header {
    padding: 0.3rem 0.5rem !important;
}
.compact-mode .day-content {
    padding: 0.2rem !important;
}
.compact-mode .patient-card {
    margin-bottom: 0.25rem !important;
    padding: 0.3rem 0.4rem !important;
    font-size: 0.75rem !important;
}
.compact-mode .dienstplan-table th, .compact-mode .dienstplan-table td {
    padding: 0.25rem !important;
    height: 38px !important;
}
.compact-mode .shift-pill {
    width: 26px !important;
    height: 26px !important;
    font-size: 0.72rem !important;
    border-radius: 4px !important;
}
.compact-mode .footer {
    padding: 0.4rem 1rem !important;
}

/* ============================================================
   PRINT SUPPORT (DRUCKOPTIMIERUNG)
   ============================================================ */
@media print {
    @page {
        size: landscape;
        margin: 1cm;
    }
    body {
        background: #ffffff !important;
        color: #000 !important;
    }
    /* Hide all layout elements that are not part of the print view */
    .sidebar, .topbar, .header, .btn-row, .btn, .dienstplan-nav, .dienstplan-palette-container, .modal-overlay, .toast, .dienstplan-header-row {
        display: none !important;
    }
    .print-only-header {
        display: block !important;
        border-bottom: 2px solid #000000 !important;
        padding-bottom: 0.5rem !important;
        margin-bottom: 1.5rem !important;
    }
    .print-only-header h1 {
        font-size: 1.6rem !important;
        font-weight: 800 !important;
        color: #000000 !important;
        margin: 0 !important;
    }
    /* Bypasses Chromium print bug for scroll containers where borders disappear */
    .dienstplan-grid-container {
        display: contents !important;
        max-height: none !important;
        overflow: visible !important;
        box-shadow: none !important;
        border: none !important;
        background: transparent !important;
    }
    .dienstplan-table {
        width: 100% !important;
        table-layout: fixed !important;
        page-break-inside: avoid;
        border-collapse: separate !important; /* Bypasses Chrome print bugs with collapsed borders */
        border-spacing: 0 !important;
        border-top: 1px solid #1e293b !important; /* Table top outer border */
        border-left: 1px solid #1e293b !important; /* Table left outer border */
        border-bottom: none !important;
        border-right: none !important;
        margin-bottom: 1.5rem !important;
    }
    .dienstplan-table th, .dienstplan-table td {
        border-top: none !important;
        border-left: none !important;
        border-bottom: 1px solid #1e293b !important; /* Elegant slate gridlines */
        border-right: 1px solid #1e293b !important; /* Elegant slate gridlines */
        color: #000 !important;
        padding: 5px 2px !important; /* slightly taller padding for better vertical spacing */
        height: auto !important;
        font-size: 0.8rem !important;
        vertical-align: middle !important;
        text-align: center !important;
        background-color: #ffffff !important; background-clip: padding-box !important; /* Set explicit white background for uniform border rendering */
    }
    /* High contrast background for headers */
    .dienstplan-table th {
        background-color: #f1f5f9 !important;
        font-weight: 700 !important;
        color: #000 !important;
        background-clip: padding-box !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }
    /* Style the employee name column specifically */
    .dienstplan-table th.employee-col, .dienstplan-table td.employee-col {
        position: static !important;
        background: #ffffff !important;
        background-clip: padding-box !important;
        border-top: none !important;
        border-left: none !important;
        border-bottom: 1px solid #1e293b !important;
        border-right: 1px solid #1e293b !important;
        width: 160px !important;
        min-width: 160px !important;
        max-width: 160px !important;
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow: visible !important;
        text-align: left !important;
        padding: 5px 6px !important; /* slightly more padding for readability */
    }
    /* Let the day columns have a perfect compact width with zero padding to prevent stretching */
    .dienstplan-table th:not(.employee-col),
    .dienstplan-table td:not(.employee-col) {
        width: 26px !important;
        min-width: 26px !important;
        max-width: 26px !important;
        padding: 0px !important; /* REMOVE PADDING ENTIRELY to let the colored shift pills fit perfectly without stretching cells */
    }
    .compact-mode .dienstplan-table th, .compact-mode .dienstplan-table td {
        padding: 0rem !important;
        height: auto !important;
    }
    .compact-mode .shift-pill {
        width: auto !important;
        height: auto !important;
        font-size: 0.72rem !important;
        border-radius: 0px !important;
    }
    /* Visual shading for weekend columns in print */
    .dienstplan-table th.weekend, .dienstplan-table td.weekend {
        background-color: #f1f5f9 !important;
        background-clip: padding-box !important;
        border-top: none !important;
        border-left: none !important;
        border-bottom: 1px solid #1e293b !important;
        border-right: 1px solid #1e293b !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }
    .employee-position-label {
        color: #475569 !important; /* dark slate position label */
        font-weight: 600 !important;
        font-size: 0.75rem !important;
        margin-top: 0px !important;
        margin-bottom: 0px !important;
    }
    .employee-meta-info {
        display: flex !important;
        flex-direction: row;
        gap: 1px !important;
        margin-top: 3px !important;
        opacity: 1 !important;
        color: #000 !important;
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center;
    }
    .employee-meta-info span {
        color: #000 !important;
        font-size: 0.6rem !important;
    }
    /* Print-optimized shift pills: perfect squares fitting inside 26px columns with dynamic background colors */
    .shift-pill {
        width: 20px !important;
        height: 30px !important;
        line-height: 24px !important;
        font-size: 0.65rem !important; /* Clean font size for standard 2-letter labels */
        border-radius: 4px !important;
        margin: 1px auto !important; /* Centered in standard day cells */
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
        border: none !important;
        color: #ffffff !important; /* Clear white high-contrast text on colored backgrounds */
        font-weight: 800 !important;
        text-shadow: none !important;
        box-shadow: none !important;
    }
    /* Legend pills print optimized */
    .legend-pill {
        width: 24px !important;
        height: 24px !important;
        line-height: 24px !important;
        font-size: 0.65rem !important;
        border-radius: 4px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
        border: none !important;
        color: #ffffff !important;
        font-weight: 800 !important;
        text-shadow: none !important;
        box-shadow: none !important;
    }
    .dienstplan-legend {
        display: flex !important;
        gap: 1.5rem !important;
        flex-wrap: wrap !important;
        margin-top: 1.5rem !important;
        padding: 0.2rem !important;
        background: #f8fafc !important;
        border-radius: 0px !important;
        border: 1px solid #1e293b !important;
        page-break-inside: avoid;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }
}
/* ============================================================
   HEADER CONTRAST THEME BUG FIX (UNREADABLE LINKS CORRECTED)
   ============================================================ */
.header a.header-logo {
    color: #ffffff !important;
}
.header a.nav-link {
    color: rgba(255, 255, 255, 0.75) !important;
}
.header a.nav-link:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
}
.header a.nav-link.active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.18) !important;
}
.header .user-name {
    color: rgba(255, 255, 255, 0.85) !important;
}
