:root{font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;color:#192741;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:#3659c8;text-decoration:none}.hidden{display:none!important}.layout{min-height:100vh;display:flex}.sidebar{width:270px;background:#15213a;color:white;padding:25px 16px;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{display:flex;align-items:center;gap:13px;padding:0 12px 26px;border-bottom:1px solid #33435f;margin-bottom:18px}.brandmark{background:linear-gradient(135deg,#7885fa,#38baae);border-radius:14px;width:48px;height:48px;display:grid;place-items:center;font-size:26px}.brand strong{display:block;font-size:18px}.brand small{color:#b2c0d7}.nav{display:grid;gap:5px}.nav button{width:100%;border:0;background:transparent;color:#bbc7db;border-radius:10px;text-align:left;padding:12px 14px;font-weight:600;display:flex;gap:11px;align-items:center}.nav button:hover,.nav button.active{background:#35476c;color:white}.nav button span{font-size:19px;width:25px;text-align:center}.sidefoot{position:absolute;bottom:20px;left:25px;color:#8b9db7;font-size:12px}.main{flex:1;min-width:0;padding:28px 34px;max-width:1600px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.topbar h1{margin:0;font-size:27px;letter-spacing:-.8px}.subtitle{color:#77849b;font-size:14px;margin-top:5px}.userbar{display:flex;align-items:center;gap:15px}.avatar{background:#dfe7ff;color:#3155b8;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-weight:700}.btn{border:0;border-radius:10px;padding:10px 16px;background:#e9edf6;color:#27395c;font-weight:650}.btn:hover{filter:brightness(.96)}.btn.primary{background:#4764d9;color:white}.btn.danger{background:#fff0f1;color:#a72d40}.btn.small{padding:7px 10px;font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:17px;margin-bottom:22px}.card,.panel{background:white;border:1px solid #e9edf5;border-radius:17px;box-shadow:0 3px 16px #1c294208}.card{padding:19px}.card .emoji{font-size:25px}.card .metric{font-size:31px;font-weight:750;margin:12px 0 4px}.muted{color:#75819a}.panel{padding:21px;margin-bottom:18px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px;flex-wrap:wrap}.panelhead h2{margin:0;font-size:18px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:580px}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #edf0f5;vertical-align:middle;font-size:14px}th{color:#74819b;font-size:12px;text-transform:uppercase;letter-spacing:.5px}td strong{font-weight:650}td .detail{display:block;color:#7b87a1;font-size:12px;max-width:350px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;background:#eef1fa;color:#4b5874;border-radius:18px;padding:5px 10px;font-size:12px}.badge.done{background:#e0f6ef;color:#10826a}.actions{display:flex;gap:7px;justify-content:flex-end}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:16px}.search{border:1px solid #e0e6f1;border-radius:10px;background:white;padding:10px 13px;min-width:220px}.empty{padding:38px 15px;color:#7c8aa0;text-align:center}.columns{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.loginwrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#dce5ff,transparent 55%),#f6f8fc;padding:16px}.login{background:white;border:1px solid #e3e8f2;border-radius:20px;box-shadow:0 15px 70px #25375e15;width:min(430px,100%);padding:36px}.login h1{margin:15px 0 4px;font-size:26px}.login p{color:#7a869c}.field{display:grid;gap:7px;margin-bottom:14px;font-size:13px;color:#56657b;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #dce3ef;background:#fff;border-radius:10px;padding:11px;color:#1e2b45}.field textarea{min-height:100px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #a7b6fa}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 15px}.full{grid-column:1/-1}.error{color:#a92340;background:#fff0f3;padding:10px;border-radius:8px;margin:10px 0}.modalback{position:fixed;inset:0;background:#0d193d85;display:grid;place-items:center;padding:14px;z-index:10;overflow:auto}.modal{width:min(640px,100%);max-height:94vh;overflow-y:auto;background:white;border-radius:20px;padding:25px;box-shadow:0 20px 60px #15213a55}.modal h2{margin:0 0 22px}.modalbuttons{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}.calendargrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{min-height:94px;background:#f7f9fd;border:1px solid #edf0f6;border-radius:9px;padding:7px;font-size:13px;overflow:hidden}.day.other{opacity:.35}.day.today{border:2px solid #566add}.daynum{font-weight:700;margin-bottom:6px}.calitem{font-size:11px;background:#e2e9ff;color:#3653a0;padding:3px 5px;border-radius:4px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daytitle{padding:10px;text-align:center;font-weight:700;color:#7c889f}.check{accent-color:#4c6add;width:18px;height:18px}.pill{border-radius:20px;padding:5px 8px;background:#f0f3fb;font-size:12px}.cash{font-size:24px;font-weight:750}.cash.negative{color:#bb425d}.cash.positive{color:#12836b}.footer{color:#99a3b6;font-size:12px;text-align:center;padding:16px}.mobilemenu{display:none}@media(max-width:980px){.sidebar{width:77px;padding:23px 10px}.brand{padding:0 2px 18px;justify-content:center}.brand strong,.brand small,.nav button .navtext,.sidefoot{display:none}.nav button{justify-content:center;padding:12px}.main{padding:22px}.cards{grid-template-columns:repeat(2,1fr)}.columns{grid-template-columns:1fr}}@media(max-width:600px){.layout{display:block}.sidebar{width:100%;height:auto;position:sticky;top:0;z-index:5;padding:7px 10px;display:flex;gap:8px;overflow-x:auto}.brand{border:0;margin:0;padding:3px}.brandmark{width:38px;height:38px;font-size:21px}.nav{display:flex;flex-shrink:0}.nav button{width:46px;padding:9px;flex-shrink:0}.main{padding:19px 12px}.topbar h1{font-size:22px}.topbar{align-items:start}.userbar{gap:5px}.cards{gap:9px}.card{padding:14px}.card .metric{font-size:24px}.panel{padding:14px}.formgrid{grid-template-columns:1fr}.calendargrid{gap:2px}.day{min-height:69px;padding:3px;font-size:11px}.calitem{font-size:9px}.daytitle{padding:4px;font-size:11px}.search{min-width:130px;width:100%}}

@media(max-width:600px){.userbar{flex-wrap:wrap;justify-content:flex-end}.userbar .avatar{display:none}.userbar .btn.small{padding:6px 7px;font-size:11px}}
/* V1.3 – Mamas Dienstplan */
.shiftcontrols{display:flex;gap:8px;align-items:center}.shiftcontrols input{border:1px solid #dce3ef;border-radius:10px;padding:7px 8px;max-width:170px;color:#27395c;background:white}
.shiftweekdays,.shiftcalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.shiftweekdays{margin:15px 0 6px;color:#77849b;text-align:center;font-size:12px;font-weight:700}
.shiftday{min-height:103px;border-radius:12px;border:1px solid #e6eaf2;padding:9px 8px;display:flex;flex-direction:column;gap:4px;overflow:hidden;background:#f8f9fc}
.shiftday.placeholder{border-color:transparent;background:transparent}.shiftdate{font-size:12px;font-weight:700;color:#526079}.shiftcode{font-size:25px;font-weight:800;line-height:1.1}.shiftname{font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.shift-X{background:#e5f8ed;color:#17643c;border-color:#c8ead5}.shift-T{background:#fff5db;color:#795713;border-color:#f5e7bd}.shift-W{background:#e8f1ff;color:#23549b;border-color:#d5e4fb}.shift-M{background:#ecf3ff;color:#3653a0;border-color:#d9e5fa}.shift-S{background:#fff0e6;color:#8b4a1e;border-color:#f5decc}.shift-N{background:#eee9ff;color:#6543a4;border-color:#e1d7fc}.shift-missing{background:#f7f8fa;color:#8994a7}
.shiftlegends{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.shiftlegend{border:1px solid #e6eaf2;padding:6px 9px;border-radius:8px;font-size:12px}.shiftlegend strong{margin-right:4px}.shiftstats{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px;color:#66758c;font-size:12px}.shiftstats span{padding:4px 0}.shiftstats strong{font-size:17px;color:#27395c}
.shiftupload{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.shiftupload input[type=file]{max-width:100%;flex:1;min-width:220px;border:1px solid #dce3ef;border-radius:9px;padding:10px;background:#f8faff}.shifttable select{width:100%;max-width:340px;border:1px solid #dce3ef;border-radius:9px;padding:8px;background:white}.shiftalert{background:#fff4e0;border:1px solid #f1d7a1;padding:11px 13px;border-radius:9px;color:#75500e;margin-bottom:14px}
@media(max-width:600px){.shiftcalendar,.shiftweekdays{gap:3px}.shiftday{min-height:82px;padding:5px 3px;border-radius:7px}.shiftdate{font-size:9px}.shiftcode{font-size:19px}.shiftname{font-size:9px;line-height:1.2}.shiftcontrols input{max-width:140px}.shiftweekdays{font-size:10px}}

/* V1.3 – Geburtstage */
.calitem[title^="🎂"]{background:#fff0e5;color:#98531e}

/* V1.3: Dashboard-Kacheln mit barrierearmer Navigation */
.dashboard-card{display:block;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.dashboard-card:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 8px 24px #1c294218;border-color:#c4d0fa}
.dashboard-card:not(:disabled):focus-visible{outline:3px solid #4764d9;outline-offset:3px}
.dashboard-card:disabled{cursor:not-allowed;opacity:.55}
@media(prefers-reduced-motion:reduce){.dashboard-card{transition:none}.dashboard-card:not(:disabled):hover{transform:none}}

.untis-week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.untis-day{min-width:0;background:#f5f7fb;border-radius:12px;padding:8px}.untis-day-title{font-weight:700;margin-bottom:10px}.untis-lesson{background:white;border-left:4px solid #6483c8;border-radius:8px;padding:9px;margin-bottom:8px;display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere}.untis-lesson small{color:#59677d}.untis-cancel{border-left-color:#db5b5b;text-decoration:line-through}@media(max-width:850px){.untis-week{grid-template-columns:1fr}.untis-day{display:block}}

/* V1.4.12: Seitenleiste durchgehend dunkel und unabhängig scrollbar. */
@media (min-width: 601px) {
  .sidebar {
    height: 100vh;
    min-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #526487 #15213a;
  }
  .sidebar .sidefoot {
    position: static;
    margin: 22px 8px 0;
    padding-bottom: 8px;
  }
}
