:root{--mint:#60d6c7;--mint2:#d9fff8;--blue:#72b8f2;--blue2:#e8f5ff;--ink:#173042;--muted:#607787;--bg:#f4fbfb;--card:#fff;--line:#dbe9ed;--red:#ef4444;--yellow:#f59e0b;--green:#22c55e;--shadow:0 18px 45px rgba(23,48,66,.10);--radius:24px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg,#f6fffc,#eef7ff);color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;background:linear-gradient(135deg,var(--mint),var(--blue));color:#07303a;font-weight:800;padding:.8rem 1rem;cursor:pointer;box-shadow:0 10px 25px rgba(96,214,199,.25)}button.secondary,.ghost{background:#eef8fb;color:var(--ink);box-shadow:none;border:1px solid var(--line)}button.small{padding:.5rem .7rem;font-size:.85rem}button:hover{filter:brightness(.98)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:.85rem;background:#fff;color:var(--ink)}textarea{resize:vertical}.hidden{display:none!important}.app-shell{display:grid;grid-template-columns:290px 1fr;min-height:100vh}.sidebar{background:rgba(255,255,255,.82);backdrop-filter:blur(16px);border-right:1px solid var(--line);padding:1.2rem;display:flex;flex-direction:column;gap:1.3rem;position:sticky;top:0;height:100vh}.brand{display:flex;gap:.8rem;align-items:center;padding:.7rem}.brand img{width:64px;height:64px;object-fit:contain}.brand strong{display:block;font-size:1.15rem}.brand span{display:block;color:var(--muted);font-size:.9rem}.nav{display:flex;flex-direction:column;gap:.45rem}.nav button,.nav a{text-align:left;text-decoration:none;border-radius:16px;padding:.85rem 1rem;background:transparent;color:var(--ink);box-shadow:none;border:1px solid transparent;font-weight:800}.nav button.active,.nav button:hover,.nav a:hover{background:linear-gradient(135deg,var(--mint2),var(--blue2));border-color:var(--line)}.sidebar-footer{margin-top:auto;padding:.8rem;color:var(--muted);font-size:.9rem}.sidebar-footer button{margin-top:.6rem;width:100%}.main{padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;background:linear-gradient(135deg,var(--mint),var(--blue));border-radius:var(--radius);padding:1.4rem 1.6rem;color:#05313b;box-shadow:var(--shadow)}.topbar h1{margin:.1rem 0 0;font-size:2rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:rgba(5,49,59,.72);font-size:.78rem;margin:0}.top-meta{text-align:right;font-weight:800;display:grid;gap:.25rem}.top-meta #clockLabel{font-size:1.45rem}.login-card,.card,.hero-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.login-card{display:grid;grid-template-columns:1fr 2fr;gap:1rem;align-items:end}.login-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:.75rem}.hint{color:var(--muted);margin-top:.5rem}.datebar{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin:1rem 0}.datebar label{display:flex;gap:.5rem;align-items:center;font-weight:800;color:var(--muted)}.datebar input{width:auto}.view{display:none}.view.active{display:block}.hero-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:linear-gradient(135deg,#fff,#f2fffd)}.hero-card h2{margin:.2rem 0;font-size:1.8rem}.hero-actions,.button-row{display:flex;gap:.6rem;flex-wrap:wrap}.stats-grid,.now-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0}.stats-grid article,.now-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1rem;box-shadow:0 12px 30px rgba(23,48,66,.07)}.stats-grid strong{display:block;font-size:2rem}.stats-grid span,.now-card span{color:var(--muted);font-weight:800}.now-grid{grid-template-columns:repeat(2,1fr)}.now-card strong{display:block;margin-top:.4rem;font-size:1.2rem}.content-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;margin:1rem 0}.card{margin-bottom:1rem}.card-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.card h3,.section-title h2{margin-top:0}.daily-info{font-size:1.1rem;line-height:1.5}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin:.8rem 0}.form-grid.two{grid-template-columns:1fr auto}.wide{grid-column:1/-1}.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.75rem;margin-bottom:1rem}.entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem}.entry-card{border:1px solid var(--line);border-radius:22px;padding:1rem;background:#fff;box-shadow:0 12px 30px rgba(23,48,66,.07);position:relative;overflow:hidden}.entry-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--mint)}.entry-card.type-aufsicht:before{background:var(--yellow)}.entry-card.type-entfall:before{background:var(--red)}.entry-card h4{margin:.2rem 0 .8rem;font-size:1.15rem}.entry-meta{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;font-size:.95rem}.entry-meta span{color:var(--muted);display:block;font-size:.8rem;font-weight:800}.entry-actions{display:flex;gap:.5rem;margin-top:1rem}.entry-actions button{padding:.55rem .7rem}.absence-list{display:grid;gap:.75rem}.absence-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:1rem}.absence-card.green{border-left:8px solid var(--green)}.absence-card.yellow{border-left:8px solid var(--yellow)}.absence-card.red{border-left:8px solid var(--red)}.progress{height:10px;background:#e7eff2;border-radius:999px;overflow:hidden;margin:.5rem 0}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--blue));border-radius:999px}.slot-checks{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.slot-checks label{background:#f0fafc;border:1px solid var(--line);border-radius:999px;padding:.55rem .75rem}.slot-checks input{width:auto;margin-right:.3rem}.master-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{background:#eef9fb;border:1px solid var(--line);border-radius:999px;padding:.45rem .65rem;font-weight:700;color:#315466}.section-title{margin:1rem 0}.admin-only{}@media print{.sidebar,.topbar,.datebar,.admin-only,.filters,.entry-actions{display:none!important}.app-shell{display:block}.main{padding:0}.card,.entry-card{box-shadow:none}}


/* v1.7.7 – Lehrkraft-Tagesansicht */
body.role-teacher .admin-only,
body.role-teacher .stats-grid,
body.role-teacher #view-dashboard,
body.role-teacher #view-masterdata,
body.role-teacher #view-absences,
body.role-teacher #view-monitor,
body.role-teacher #completionText,
body.role-teacher #absenceStatusList,
body.role-teacher #dashboardEntries {
  display: none !important;
}

.teacher-day-view {
  max-width: 980px;
  margin: 0 auto;
}

.teacher-day-view .teacher-hero {
  background: linear-gradient(135deg, var(--mint2), var(--blue2));
}

.teacher-day-view .teacher-hero h2 {
  margin: .25rem 0;
  font-size: 2rem;
}

.teacher-card h3 {
  margin-top: 0;
}

.teacher-absence-list,
.teacher-entry-list {
  display: grid;
  gap: .85rem;
}

.teacher-absence {
  border: 1px solid var(--line);
  border-left: 8px solid var(--blue);
  border-radius: 18px;
  padding: .85rem 1rem;
  background: #fff;
}

.teacher-absence strong,
.teacher-absence span,
.teacher-absence small {
  display: block;
}

.teacher-absence span,
.teacher-absence small {
  color: var(--muted);
  margin-top: .2rem;
}

.teacher-entry {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 8px solid var(--mint);
  border-radius: 22px;
  padding: 1rem;
  box-shadow: 0 12px 30px rgba(23,48,66,.07);
}

.teacher-entry.is-current {
  border-left-color: var(--green);
  outline: 3px solid rgba(34,197,94,.18);
  background: linear-gradient(135deg,#ffffff,#f1fff7);
}

.teacher-entry-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .75rem;
}

.teacher-entry-top strong {
  font-size: 1.35rem;
}

.teacher-entry-top span {
  font-weight: 800;
  color: var(--muted);
}

.current-badge {
  display: inline-block;
  margin-bottom: .75rem;
  padding: .4rem .65rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #14532d;
  font-weight: 900;
}

.teacher-entry-main {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .65rem;
}

.teacher-entry-main div {
  background: #f7fcfd;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .65rem;
  font-weight: 800;
}

.teacher-entry-main span {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .15rem;
}

.teacher-entry-main .wide {
  grid-column: 1/-1;
}


/* v1.7.8 – Praxistest: Aufteilen/Ausfall/Sonstiges */
.entry-card.type-aufteilen:before,
.teacher-entry.type-aufteilen:before { background: var(--blue); }
.entry-card.type-sonstiges:before,
.teacher-entry.type-sonstiges:before { background: var(--muted); }
.entry-card.type-entfall:before { background: var(--red); }


/* v1.8.1 – Lehrkraftansicht kompakt */
body.role-teacher .teacher-hero {
  display: none !important;
}

.teacher-current {
  border-left: 8px solid var(--green);
  background: linear-gradient(135deg,#ffffff,#f1fff7);
}

.teacher-current h3 {
  color: #14532d;
}

.teacher-current .teacher-entry {
  border-left-color: var(--green);
  outline: 3px solid rgba(34,197,94,.14);
}

body.role-teacher #mobileLogoutBtn {
  width: auto !important;
  min-width: 0 !important;
  right: 16px !important;
  left: auto !important;
  bottom: 18px !important;
  padding: .65rem .9rem !important;
  font-size: .95rem !important;
  border-radius: 999px !important;
}
