/* ══════════════════════════════════════════════════════
   KVB Lehrfahrer-Portal – Mobile-first CSS
   Apple Design System mit clamp() Responsive-Werten
   ══════════════════════════════════════════════════════ */

/* ── RESET ───────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Arial,sans-serif;background:#f2f2f7;color:#1c1c1e;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
button{cursor:pointer;font-family:inherit;font-size:14px;}
input,textarea,select{font-family:inherit;font-size:16px !important;}
a{color:#E30613;text-decoration:none;}

/* ── VARIABLEN ───────────────────────────────────────── */
:root{
  --red:#E30613;--red-dark:#b5040f;--red-light:#fdecea;
  --white:#fff;--grey-50:#f8f9fa;--grey-100:#f2f2f7;
  --grey-200:#e5e5ea;--grey-300:#d1d1d6;--grey-400:#aeaeb2;
  --grey-500:#8e8e93;--grey-600:#636366;--grey-700:#48484a;
  --grey-800:#3a3a3c;--black:#1c1c1e;
  --green:#198754;--green-light:#d1e7dd;--green-text:#0f5132;
  --orange:#fd7e14;--orange-light:#fff3cd;--orange-text:#664d03;
  --shadow:0 1px 4px rgba(0,0,0,.08);--shadow-md:0 2px 12px rgba(0,0,0,.10);
  --radius:10px;--radius-lg:14px;--header-h:52px;--sidebar-w:240px;
}

/* ── HEADER ──────────────────────────────────────────── */
.header{background:var(--red);color:#fff;height:calc(var(--header-h) + env(safe-area-inset-top,0px));display:flex;align-items:center;padding:env(safe-area-inset-top,0px) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));gap:10px;box-shadow:0 2px 8px rgba(0,0,0,.25);position:fixed;top:0;left:0;right:0;z-index:300;}
.hamburger{background:none;border:none;color:#fff;font-size:22px;padding:4px 6px;line-height:1;display:flex;align-items:center;flex-shrink:0;}
.header-logo{font-size:18px;font-weight:900;letter-spacing:1px;display:flex;align-items:center;gap:6px;flex-shrink:0;}
.header-logo .logo-box{background:#fff;color:var(--red);padding:2px 7px;border-radius:4px;font-weight:900;font-size:16px;}
.header-title{font-size:13px;opacity:.9;font-weight:500;display:none;}
.header-spacer{flex:1;}
.header-user{display:flex;align-items:center;gap:8px;font-size:12px;}
.user-avatar{width:32px;height:32px;background:rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0;}
.user-name-text{display:none;}

/* ── SIDEBAR ─────────────────────────────────────────── */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199;}
.sidebar-overlay.visible{display:block;}
.sidebar{width:var(--sidebar-w);background:#fff;box-shadow:3px 0 12px rgba(0,0,0,.15);position:fixed;top:calc(var(--header-h) + env(safe-area-inset-top,0px));bottom:0;left:0;overflow-y:auto;display:flex;flex-direction:column;z-index:200;transform:translateX(-100%);transition:transform .25s ease;}
.sidebar.open{transform:translateX(0);}
.sidebar-section-title{font-size:10px;font-weight:700;color:var(--grey-500);text-transform:uppercase;letter-spacing:1px;padding:16px 20px 6px;}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:12px 20px;color:var(--grey-700);font-weight:500;font-size:14px;transition:background .15s;cursor:pointer;text-decoration:none;}
.sidebar-item:hover{background:var(--grey-50);}
.sidebar-item.active{background:var(--red-light);color:var(--red);font-weight:700;}
.sidebar-item .icon{font-size:18px;width:24px;text-align:center;}
.sidebar-bottom{margin-top:auto;padding:20px;border-top:1px solid var(--grey-200);}

/* ── MAIN ────────────────────────────────────────────── */
.main{margin-top:calc(var(--header-h) + env(safe-area-inset-top,0px));padding:clamp(16px,4.5vw,24px);min-height:calc(100vh - var(--header-h) - env(safe-area-inset-top,0px));padding-bottom:calc(clamp(20px,5vw,32px) + env(safe-area-inset-bottom,0px));}

/* ── CARDS ────────────────────────────────────────────── */
.card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:clamp(12px,3vw,16px);overflow:hidden;}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:clamp(12px,3.5vw,16px);border-bottom:1px solid var(--grey-100);}
.card-title{font-weight:700;font-size:clamp(15px,4vw,17px);color:var(--black);}
.card-body{padding:clamp(12px,3.5vw,16px);}

/* ── STATS ────────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(8px,2.5vw,12px);margin-bottom:clamp(14px,4vw,20px);}
.stat-card{background:#fff;border-radius:var(--radius);padding:clamp(12px,3.5vw,16px);box-shadow:var(--shadow);text-align:center;border-top:3px solid var(--red);}
.stat-card.green{border-top-color:var(--green);}
.stat-card.grey{border-top-color:var(--grey-400);}
.stat-value{font-size:clamp(22px,6vw,28px);font-weight:800;color:var(--black);}
.stat-label{font-size:clamp(10px,2.8vw,12px);color:var(--grey-500);font-weight:500;margin-top:2px;}

/* ── SCHUELER-KARTEN ─────────────────────────────────── */
.schueler-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:none;border-radius:14px;cursor:pointer;background:#fff;margin-bottom:8px;box-shadow:var(--shadow);transition:box-shadow .15s;text-decoration:none;color:inherit;}
.schueler-card:focus{outline:none;}
.schueler-card:active{background:var(--grey-50);}
.schueler-avatar{width:44px;height:44px;background:var(--grey-100);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.schueler-info{flex:1;min-width:0;}
.schueler-name{font-weight:700;font-size:15px;color:#1c1c1e;}
.schueler-meta{font-size:12px;color:var(--grey-500);margin-top:2px;line-height:1.4;}
.schueler-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}

/* ── BADGES ──────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;}
.badge-green{background:var(--green-light);color:var(--green-text);}
.badge-red{background:var(--red-light);color:var(--red-dark);}
.badge-orange{background:var(--orange-light);color:var(--orange-text);}
.badge-grey{background:var(--grey-200);color:var(--grey-600);}

/* ── PROGRESS BAR ────────────────────────────────────── */
.progress-bar{width:60px;height:4px;background:var(--grey-200);border-radius:2px;overflow:hidden;}
.progress-fill{height:100%;background:var(--green);border-radius:2px;transition:width .3s;}

/* ── AZUBI FORTSCHRITT (Dashboard + Azubis) ──────── */
.azubi-prog{margin-top:6px;width:clamp(140px,30vw,200px);}
.azubi-prog-row{display:flex;align-items:center;gap:6px;margin-bottom:3px;}
.azubi-prog-label{font-size:10px;color:var(--grey-500);width:50px;flex-shrink:0;}
.azubi-prog-count{font-size:10px;color:var(--grey-600);font-weight:600;width:36px;text-align:right;flex-shrink:0;}
.azubi-bar{flex:1;width:auto;}

/* ── DASHBOARD QUICKLINKS (Admin) ────────────────── */
.dash-quicklinks{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,2.5vw,14px);margin-bottom:20px;}
.dash-ql-card{background:#fff;border-radius:16px;padding:clamp(16px,4vw,24px);box-shadow:var(--shadow);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;transition:box-shadow .15s;border:1px solid rgba(0,0,0,.06);}
.dash-ql-card:active{box-shadow:0 0 0 2px var(--red);}
.dash-ql-icon{font-size:28px;}
.dash-ql-title{font-weight:700;font-size:clamp(14px,3.5vw,16px);color:#1c1c1e;}
.dash-ql-sub{font-size:12px;color:var(--grey-500);}

/* ── AZUBI FILTER ─────────────────────────────────── */
.azubi-filter{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap;}
.azubi-filter .form-control{flex:1;min-width:140px;max-width:260px;margin:0;}

/* ── BUTTONS ─────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 clamp(14px,4vw,20px);border:none;border-radius:10px;font-weight:600;font-size:clamp(13px,3.6vw,15px);transition:opacity .15s,background .15s;white-space:nowrap;min-height:clamp(40px,11vw,48px);cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none;}
.btn-primary{background:var(--red);color:#fff;}
.btn-primary:hover{background:var(--red-dark);}
.btn-secondary{background:var(--grey-200);color:var(--grey-700);}
.btn-ghost{background:transparent;border:1.5px solid var(--grey-300);color:var(--grey-700);}
.btn-danger{background:var(--red-light);color:var(--red-dark);}
.btn-sm{padding:0 clamp(12px,3.5vw,14px);font-size:clamp(13px,3.5vw,14px);min-height:clamp(38px,10vw,44px);border-radius:8px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* ── FORM ────────────────────────────────────────────── */
.form-group{margin-bottom:clamp(10px,3vw,14px);}
.form-label{font-size:clamp(11px,3vw,12px);font-weight:600;color:var(--grey-600);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;}
.form-control{width:100%;padding:clamp(8px,2.2vw,12px) clamp(10px,3vw,14px);border:1.5px solid #e0e0e5;border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s;outline:none;font-size:16px !important;color:#1c1c1e;line-height:1.35;box-sizing:border-box;min-height:clamp(42px,11vw,48px);}
.form-control:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(227,6,19,.12);}
input[type="date"].form-control,input[type="time"].form-control,select.form-control{-webkit-appearance:none;appearance:none;}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,2.5vw,14px);align-items:start;}
.form-row-2>*{min-width:0;overflow:hidden;}
@media(max-width:320px){.form-row-2{grid-template-columns:1fr;}}
.input-addon-wrap{display:flex;align-items:center;gap:0;}
.input-addon{background:var(--grey-100);border:1.5px solid #e0e0e5;border-right:none;border-radius:10px 0 0 10px;padding:0 10px;min-height:clamp(42px,11vw,48px);display:flex;align-items:center;font-size:13px;color:var(--grey-600);white-space:nowrap;flex-shrink:0;}
.input-addon + .form-control{border-radius:0 10px 10px 0;}

/* ── TABS ────────────────────────────────────────────── */
.tabs{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:clamp(12px,3vw,16px) 0;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{display:flex;align-items:center;gap:5px;padding:8px 14px;border-radius:20px;font-size:13px;font-weight:600;border:1.5px solid var(--grey-200);background:#fff;color:var(--grey-600);white-space:nowrap;transition:all .15s;cursor:pointer;text-decoration:none;}
.tab.active{background:var(--red);color:#fff;border-color:var(--red);}
.tab-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.tab-toolbar-btn{font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;border:1.5px solid var(--grey-300);background:#fff;color:var(--grey-600);cursor:pointer;white-space:nowrap;transition:all .15s;}
.tab-toolbar-btn.active{background:var(--grey-800);color:#fff;border-color:var(--grey-800);}
.tab-icon{font-size:14px;}

/* ── STAMMDATEN-KARTE ────────────────────────────────── */
.stammdaten-karte{background:#fff;border-radius:16px;box-shadow:var(--shadow-md);padding:16px;margin-bottom:14px;border:1px solid rgba(0,0,0,.06);}
.stamm-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.stamm-name-block{flex:1;min-width:0;}
.stamm-name{font-size:clamp(17px,4.5vw,20px);font-weight:800;color:var(--black);}
.stamm-meta{font-size:clamp(12px,3.2vw,13px);color:var(--grey-500);margin-top:3px;}
.stamm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.stamm-item{padding:8px 0;}
.stamm-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--grey-500);font-weight:600;}
.stamm-value{font-size:13px;font-weight:600;color:var(--black);margin-top:2px;}
.stamm-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.stamm-actions .btn{font-size:clamp(13px,3.5vw,14px);padding:clamp(8px,2.5vw,10px) clamp(10px,3vw,12px);min-height:clamp(40px,11vw,46px);}
.stamm-actions .btn-delete{margin-left:auto;}

/* ── BESTANDEN TOGGLE ────────────────────────────────── */
.bestanden-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.bestanden-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 10px;border-radius:14px;cursor:pointer;text-align:center;transition:all .2s;border:2px solid transparent;background:#f2f2f7;}
.bestanden-btn:active{transform:scale(.97);}
.bestanden-btn .btn-icon{font-size:24px;margin-bottom:4px;}
.bestanden-btn .btn-label{font-weight:700;font-size:13px;}
.bestanden-btn .btn-sub{font-size:10px;color:var(--grey-500);margin-top:2px;}
.bestanden-btn.active-green{border-color:transparent;background:var(--green-light);color:var(--green-text);}
.bestanden-btn.active-red{border-color:transparent;background:var(--red-light);color:var(--red-dark);}
.bestanden-current{font-size:12px;color:var(--grey-500);margin:-8px 0 14px;font-weight:600;}

/* ── TABLES ──────────────────────────────────────────── */
.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;font-size:clamp(12px,3.2vw,13px);}
th{background:var(--grey-50);padding:10px 8px;text-align:left;font-weight:600;color:var(--grey-600);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--grey-200);}
td{padding:10px 8px;border-bottom:1px solid var(--grey-100);color:var(--grey-700);}
tr:hover td{background:var(--grey-50);}
tr[data-href]{cursor:pointer;}
/* Aktion-Spalte (Mülltonne) – gleiche Abstände oben/unten */
td.no-print{padding:6px 8px;vertical-align:middle;}

/* ── CHECKLISTE (Anlage 4) ───────────────────────────── */
.check-section-title{font-size:13px;font-weight:700;padding:8px 0;border-bottom:2px solid var(--red);margin-bottom:0;display:flex;align-items:center;justify-content:space-between;}
.check-item{display:flex;align-items:center;gap:clamp(8px,2.5vw,10px);padding:clamp(11px,3vw,14px) clamp(10px,2.5vw,12px);border-bottom:1px solid var(--grey-100);cursor:pointer;min-height:clamp(44px,12vw,52px);}
.check-item:active{background:var(--grey-50);}
.check-item.confirmed{background:var(--green-light);}
.check-box{width:22px;height:22px;border:2px solid var(--grey-300);border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s;}
.check-item.confirmed .check-box{background:var(--green);border-color:var(--green);color:#fff;}
.check-label{flex:1;font-size:13px;color:var(--grey-700);line-height:1.4;}
.check-date{font-size:11px;font-weight:600;color:var(--green-text);white-space:nowrap;margin-left:auto;}

/* ── LINIEN GRID (Anlage 3) ──────────────────────────── */
.linien-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding:10px 0;}
.linie-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:clamp(10px,3vw,14px);border:1.5px solid var(--grey-200);border-radius:var(--radius);cursor:pointer;min-height:clamp(56px,14vw,64px);transition:all .15s;}
.linie-item:active{transform:scale(.98);}
.linie-item.confirmed{background:var(--green-light);border-color:var(--green);}
.linie-badge{background:var(--red);color:#fff;padding:3px 8px;border-radius:4px;font-weight:700;font-size:12px;flex-shrink:0;}
.linie-item.confirmed .linie-badge{background:var(--green);}
.linie-info{font-size:12px;line-height:1.4;}
.linie-status{color:var(--green-text);font-weight:600;}
.linie-date{font-size:11px;color:var(--grey-500);padding-left:14px;margin-top:2px;}
.linie-item.confirmed .linie-date{color:var(--green-text);font-weight:600;}
.linie-tap{color:var(--grey-400);font-size:11px;}

/* ── ALERTS ──────────────────────────────────────────── */
.alert{padding:12px 16px;border-radius:var(--radius);margin-bottom:14px;font-size:13px;line-height:1.5;}
.alert-success{background:var(--green-light);color:var(--green-text);border-left:4px solid var(--green);}
.alert-error{background:var(--red-light);color:var(--red-dark);border-left:4px solid var(--red);}
.info-box{background:#e8f4f8;border-left:4px solid #0d6efd;padding:10px 14px;border-radius:0 var(--radius) var(--radius) 0;font-size:12px;color:#0a3d62;margin-bottom:14px;line-height:1.5;}

/* ── MODALS ──────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:500;padding:0;}
.modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:500px;padding:8px clamp(14px,4vw,24px) calc(clamp(20px,5vw,32px) + env(safe-area-inset-bottom,0px));max-height:90vh;overflow-y:auto;animation:slideUp .25s ease;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-title{font-size:clamp(17px,4.5vw,20px);font-weight:800;color:var(--black);margin-bottom:16px;padding-top:8px;}
.modal-actions{display:flex;gap:8px;margin-top:16px;}
.modal-actions .btn{flex:1;min-height:clamp(40px,11vw,48px);font-size:clamp(14px,3.8vw,16px);border-radius:12px;font-weight:600;}

/* ── PWA HELP ────────────────────────────────────────── */
.pwa-steps{display:flex;flex-direction:column;gap:12px;}
.pwa-step{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--grey-50);border-radius:var(--radius);font-size:14px;line-height:1.5;}
.pwa-step-nr{background:var(--red);color:#fff;min-width:28px;height:28px;border-radius:14px;padding:0 8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0;white-space:nowrap;}

/* ── EMPTY STATE ─────────────────────────────────────── */
.empty-state{text-align:center;padding:40px 20px;}
.empty-state .icon{font-size:48px;margin-bottom:12px;}
.empty-state h3{font-size:18px;margin-bottom:6px;}
.empty-state p{color:var(--grey-500);font-size:13px;margin-bottom:20px;}

/* ── PAGE TITLES ─────────────────────────────────────── */
.page-title{font-size:clamp(20px,5.5vw,26px);font-weight:800;color:var(--black);margin-bottom:4px;}
.page-subtitle{font-size:clamp(12px,3.2vw,14px);color:var(--grey-500);margin-bottom:clamp(14px,4vw,20px);}

/* ── BACK BUTTON ─────────────────────────────────────── */
.back-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border:1.5px solid var(--grey-200);border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--grey-700);margin-bottom:14px;cursor:pointer;text-decoration:none;}
.back-btn:active{background:var(--grey-50);}

/* ── LF CARD (Admin) ────────────────────────────────── */
.lf-card{padding:14px;border-bottom:1px solid var(--grey-100);}
.lf-card:last-child{border-bottom:none;}
.lf-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.lf-avatar{width:40px;height:40px;background:var(--red-light);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--red);flex-shrink:0;}
.lf-info{flex:1;min-width:0;}
.lf-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lf-meta{font-size:11px;color:var(--grey-500);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lf-badges{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;}
.lf-grid{display:grid;grid-template-columns:1fr;}
.lf-btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.lf-btn-grid form{display:contents;}
.lf-grid-btn{width:100%;font-size:12px !important;min-height:36px !important;padding:0 8px !important;}

/* ── PROFIL SETTINGS ─────────────────────────────────── */
.profile-hero{display:flex;align-items:center;gap:16px;padding:18px;}
.profile-avatar{width:56px;height:56px;background:var(--red);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;flex-shrink:0;}
.profile-name{font-weight:700;font-size:17px;color:#1c1c1e;}
.profile-email{font-size:13px;color:var(--grey-500);margin-top:3px;}
.settings-row{display:flex;align-items:center;gap:14px;padding:14px 18px;background:none;border:none;border-bottom:1px solid var(--grey-100);cursor:pointer;width:100%;text-align:left;color:inherit;transition:background .15s;}
.settings-row:last-child{border-bottom:none;}
.settings-row:hover{background:var(--grey-50);}
.settings-row-icon{font-size:20px;width:28px;text-align:center;}
.settings-row-text{flex:1;}
.settings-row-title{font-weight:600;font-size:14px;color:#1c1c1e;}
.settings-row-sub{font-size:12px;color:var(--grey-500);margin-top:2px;}
.settings-row-arrow{color:var(--grey-400);font-size:18px;font-weight:300;}

/* ── FILTER PILLS ────────────────────────────────────── */
.filter-section{margin-bottom:14px;}
.filter-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--grey-500);margin-bottom:6px;}
.filter-pills{display:flex;flex-wrap:wrap;gap:6px;}
.filter-pill{display:inline-flex;align-items:center;padding:5px 12px;border-radius:20px;font-size:13px;font-weight:500;color:var(--grey-700);background:#fff;border:1px solid var(--grey-200);cursor:pointer;text-decoration:none;transition:all .15s;white-space:nowrap;}
.filter-pill:hover{border-color:var(--red);color:var(--red);}
.filter-pill.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:700;}
.filter-bar{background:#fff;border:1px solid var(--grey-100);border-radius:14px;padding:14px 16px;margin-bottom:14px;}

/* ── DESKTOP LAYOUT ──────────────────────────────────── */
@media(min-width:768px){
  .header-title{display:block;}
  .user-name-text{display:inline;}
  .hamburger{display:none;}
  .sidebar-overlay{display:none !important;}
  .sidebar{transform:translateX(0);box-shadow:1px 0 4px rgba(0,0,0,.06);}
  .main{margin-left:var(--sidebar-w);}
  .stats-grid{grid-template-columns:repeat(4,1fr);}
  .stamm-grid{grid-template-columns:repeat(4,1fr);}
  .sidebar-mobile-only{display:none;}
  /* Modals zentriert auf Desktop */
  .modal-overlay{align-items:center;padding:24px;}
  .modal{border-radius:20px;max-height:88vh;animation:fadeScaleIn .2s ease;}
}
@keyframes fadeScaleIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@media(min-width:1024px){
  .lf-grid{grid-template-columns:1fr 1fr;}
  .lf-btn-grid{grid-template-columns:repeat(4,1fr);}
}

/* ── DARK MODE ───────────────────────────────────────── */
[data-theme="dark"] {
  color-scheme:dark;
  --white:#1c1c1e;--grey-50:#2c2c2e;--grey-100:#3a3a3c;
  --grey-200:#48484a;--grey-300:#636366;--grey-400:#8e8e93;
  --grey-500:#aeaeb2;--grey-600:#c7c7cc;--grey-700:#e5e5ea;
  --grey-800:#f2f2f7;--black:#fff;
  --red-light:#3d0a10;--green-light:#0d3320;--green-text:#6fdc9f;
  --orange-light:#3d2a00;--orange-text:#ffd60a;
  --shadow:0 1px 4px rgba(0,0,0,.45);--shadow-md:0 2px 12px rgba(0,0,0,.6);
}
[data-theme="dark"] body{background:#000;color:#fff;}
/* Alles innerhalb der Haupt-Containern erbt Weiß */
[data-theme="dark"] .card *,[data-theme="dark"] .stammdaten-karte *,
[data-theme="dark"] .stat-card *,[data-theme="dark"] .dash-ql-card *,
[data-theme="dark"] .schueler-card *,[data-theme="dark"] .modal *,
[data-theme="dark"] .sidebar *,[data-theme="dark"] .main>*{color:inherit;}
[data-theme="dark"] a{color:#ff6b6b;}
/* Weiß-Hintergrund-Elemente */
[data-theme="dark"] .card,
[data-theme="dark"] .modal,
[data-theme="dark"] .stammdaten-karte,
[data-theme="dark"] .sidebar,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .dash-ql-card,
[data-theme="dark"] .schueler-card,
[data-theme="dark"] .filter-bar{background:#1c1c1e;color:#fff;}
/* Formular-Felder */
[data-theme="dark"] .form-control{background:#2c2c2e;color:#fff;border-color:#48484a;}
[data-theme="dark"] .input-addon{background:#2c2c2e;border-color:#48484a;color:#aeaeb2;}
/* Tabs & Chips */
[data-theme="dark"] .tab{background:#2c2c2e;color:#e5e5ea;border-color:#48484a;}
[data-theme="dark"] .tab-toolbar-btn{background:#2c2c2e;color:#e5e5ea;border-color:#48484a;}
[data-theme="dark"] .filter-pill{background:#2c2c2e;color:#e5e5ea;border-color:#48484a;}
[data-theme="dark"] .filter-pill:hover{border-color:var(--red);color:var(--red);}
/* Buttons */
[data-theme="dark"] .btn-secondary{background:#3a3a3c;color:#fff;}
[data-theme="dark"] .btn-ghost{border-color:#48484a;color:#e5e5ea;}
[data-theme="dark"] .back-btn{background:#1c1c1e;border-color:#48484a;color:#e5e5ea;}
/* Sonstige Elemente */
[data-theme="dark"] .bestanden-btn{background:#2c2c2e;color:#fff;}
[data-theme="dark"] .pwa-step{background:#2c2c2e;color:#fff;}
[data-theme="dark"] .info-box{background:#0a2035;color:#7eb8f7;border-color:#1d4ed8;}
[data-theme="dark"] .linie-item{border-color:#48484a;}
[data-theme="dark"] th{background:#2c2c2e;color:#aeaeb2;}
[data-theme="dark"] td{color:#e5e5ea;}
[data-theme="dark"] tr:hover td{background:#2c2c2e;}
[data-theme="dark"] .sidebar-item{color:#e5e5ea;}
[data-theme="dark"] .sidebar-item:hover{background:#2c2c2e;}
[data-theme="dark"] .settings-row:hover{background:#2c2c2e;}
[data-theme="dark"] .sidebar-bottom{border-color:#3a3a3c;}
[data-theme="dark"] .check-item{border-color:#3a3a3c;}
[data-theme="dark"] .check-item:active{background:#2c2c2e;}
[data-theme="dark"] .lf-avatar{background:#2c2c2e;}
[data-theme="dark"] .azubi-item{background:#1c1c1e !important;color:#fff;}
/* Badges – eigene Farben behalten */
[data-theme="dark"] .badge-green{background:var(--green-light);color:var(--green-text);}
[data-theme="dark"] .badge-red{background:var(--red-light);color:#ff6b6b;}
[data-theme="dark"] .badge-orange{background:var(--orange-light);color:var(--orange-text);}
[data-theme="dark"] .badge-grey{background:#3a3a3c;color:#aeaeb2;}

/* ── PRINT ───────────────────────────────────────────── */
@media print{
  .header,.sidebar,.sidebar-overlay,.no-print,.stamm-actions,.modal-overlay{display:none !important;}
  .main{margin:0;padding:10mm;}
  body{background:#fff;}
}
