
:root{
  --nav:#0c2340;
  --nav2:#12385f;
  --accent:#9acd32;
  --accent-dark:#82b026;
  --bar:#17355b;
  --bg:#eef2f7;
  --card:#ffffff;
  --line:#d7dde7;
  --text:#172033;
  --muted:#667085;
  --red:#b42318;
  --green:#4f9a10;
  --blue:#2a82c9;
  --soft-blue:#e7f1ff;
  --soft-green:#edfbe7;
  --soft-red:#fdeceb;
  --soft-warn:#fff6df;
  --shadow:0 8px 24px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Arial,Helvetica,sans-serif;
  font-size:14px;
  line-height:1.35;
}
a{color:#2468a8;text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- Login im Pro-Style ---------- */
.login-screen{
  min-height:100vh;
  background:
    radial-gradient(circle at 24% 10%, rgba(154,205,50,.35), transparent 12rem),
    radial-gradient(circle at 80% 25%, rgba(42,130,201,.28), transparent 20rem),
    linear-gradient(135deg,#0c2340 0%,#102d4b 42%,#17355b 100%);
  display:grid;
  place-items:center;
  padding:28px;
}
.login-wrap{
  width:min(100%,980px);
  display:grid;
  grid-template-columns:1fr 390px;
  gap:28px;
  align-items:center;
}
.login-logo{
  color:#dce8f7;
  font-size:48px;
  line-height:.95;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-shadow:0 12px 28px rgba(0,0,0,.24);
}
.login-logo small{
  display:block;
  margin-top:12px;
  color:#a5bed6;
  font-size:14px;
  letter-spacing:.22em;
  font-weight:700;
}
.login-hero{
  color:white;
  padding:28px 0;
}
.login-hero h1{
  margin:28px 0 16px;
  max-width:520px;
  font-size:clamp(38px,5vw,68px);
  line-height:.92;
  letter-spacing:-.045em;
}
.login-hero p{
  color:#cfe1f4;
  max-width:520px;
  font-size:17px;
  line-height:1.6;
}
.login-badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}
.login-badge{
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.18);
  color:#f2f8ff;
  border-radius:6px;
  padding:12px 14px;
  min-width:120px;
}
.login-badge b{display:block;font-size:22px;color:white}
.login-badge span{display:block;color:#a5bed6;font-size:12px;margin-top:3px}
.login-box{
  background:#f4f7fb;
  border:1px solid rgba(255,255,255,.65);
  border-radius:10px;
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  padding:26px;
}
.login-box h1{
  margin:0 0 20px;
  color:#46638a;
  text-align:center;
  font-size:27px;
}
.login-box label{
  display:block;
  margin:12px 0 6px;
  font-weight:900;
  color:#203040;
}
.login-box input,
.login-box select{
  width:100%;
  padding:10px 12px;
  border:1px solid #bdc7d5;
  border-radius:4px;
  background:#fff;
  font:inherit;
}
.login-box input:focus,
.login-box select:focus{
  outline:3px solid rgba(42,130,201,.16);
  border-color:#2a82c9;
}
.login-help{
  text-align:center;
  color:#667085;
  font-size:12px;
  margin:14px 0 0;
}
.password-field{position:relative;display:block}
.password-field input{padding-right:104px}
.toggle-password{
  position:absolute;
  right:6px;
  top:6px;
  height:29px;
  border-radius:4px;
  padding:0 10px;
  font-size:12px;
  background:#e7f1ff;
  color:#154c82;
  border:1px solid #b6d7f7;
}
.login-alert{
  margin:0 0 16px;
  padding:12px 14px;
  border-radius:5px;
  font-weight:900;
}
.login-alert.error{background:#fdeceb;color:#b42318;border:1px solid #f4b4b0}
.login-alert.success{background:#edfbe7;color:#326a04;border:1px solid #b7df97}
.login-alert.warning{background:#fff6df;color:#855600;border:1px solid #f0d48b}

/* ---------- App Shell ---------- */
.app-shell{min-height:100vh}
.sidebar{
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  width:276px;
  background:linear-gradient(180deg,var(--nav),#102d4b);
  color:#dce8f7;
  box-shadow:8px 0 28px #0002;
  z-index:10;
}
.side-brand{
  height:72px;
  display:flex;
  gap:14px;
  align-items:center;
  padding:0 22px;
  border-bottom:1px solid rgba(255,255,255,.1);
  font-size:22px;
  letter-spacing:.2px;
}
.side-brand b{text-transform:lowercase}
.side-brand small{display:block;color:#a5bed6;font-size:12px;margin-top:2px}
.hamb{font-size:24px;color:var(--accent)}
.side-nav{padding:16px 0 24px;display:grid}
.side-nav a,
.nav-group,
.nav-menu summary{
  display:flex;
  align-items:center;
  gap:14px;
  color:#dce8f7;
  padding:12px 22px;
  font-weight:800;
  text-transform:uppercase;
  font-size:13px;
  letter-spacing:.2px;
  cursor:pointer;
  list-style:none;
}
.nav-menu summary::-webkit-details-marker{display:none}
.side-nav a span,
.nav-group span,
.nav-menu summary span{color:var(--accent);min-width:20px;text-align:center}
.side-nav a:hover,
.nav-menu summary:hover{background:#1c5581;text-decoration:none}
.nav-menu .sub{
  background:rgba(46,141,191,.25);
  padding-left:48px;
  text-transform:none;
  font-weight:700;
  color:#d5eafc;
}
.nav-menu .sub:hover{background:#2c8cc1;color:#fff}
.nav-menu[open] summary{background:rgba(255,255,255,.08)}
.logout-link{margin-top:10px;background:rgba(0,0,0,.12)}

.topline{
  position:sticky;
  top:0;
  margin-left:276px;
  min-height:58px;
  background:#f7f9fc;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 20px;
  z-index:8;
}
.crumb{font-weight:800;color:#3d4b5e}
.crumb span{color:#6d7d91;margin:0 6px}
.user-green{color:#63a30c!important}
.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.profile-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 10px;
  color:#17355b;
  font-weight:900;
  text-decoration:none;
}
.profile-link:hover{background:#edf4ff;text-decoration:none}
.top-login{
  border-radius:999px;
  padding:7px 12px;
  background:#17355b;
  color:#fff!important;
  border-color:#17355b;
}
.print{
  background:#fff;
  border:1px solid var(--line);
  width:34px;
  height:34px;
  border-radius:10px;
  display:grid;
  place-items:center;
  cursor:pointer;
}
.activity{
  padding:7px 10px;
  border-radius:999px;
  border:1px solid #b7d89c;
  background:#effbe7;
  color:#3d7b04;
  font-size:12px;
  font-weight:900;
}
.tz-pill{
  padding:7px 10px;
  border-radius:999px;
  border:1px solid #c8d3e3;
  background:#fff;
  color:#17355b;
  font-size:12px;
  font-weight:900;
}
.main{
  margin-left:276px;
  padding:22px 24px 60px;
}
.container{max-width:1200px;margin:0 auto;padding:22px 24px 60px}
.footer{
  margin-left:276px;
  padding:22px;
  color:#667085;
  font-size:12px;
  text-align:center;
}

/* ---------- Cards / Forms / Tables ---------- */
.card,
.table-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:var(--shadow);
  margin:0 0 18px;
  overflow:hidden;
}
.card>h1,
.card>h2,
.section-title{
  background:var(--bar);
  color:#fff;
  padding:12px 16px;
  margin:0;
  font-size:17px;
  font-weight:900;
}
.card-body,
.card form,
.card .inner{padding:16px}
.card:not(:has(>h1)):not(:has(>h2)){padding:16px}
.page-title{
  background:var(--bar);
  color:#fff;
  border-radius:6px 6px 0 0;
  padding:14px 18px;
  font-size:18px;
  font-weight:900;
  display:flex;
  align-items:center;
  gap:12px;
}
.section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0;
}
.section-head h1,.section-head h2{margin:0}
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:1fr 1fr}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.four{grid-template-columns:repeat(4,1fr)}
.small-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.small-grid.four{grid-template-columns:repeat(4,1fr)}
h1,h2,h3{margin:0 0 12px}
.hint,.muted{color:var(--muted)}
label{display:block;font-weight:800;margin:10px 0 6px}
input,select,textarea{
  width:100%;
  padding:9px 10px;
  border:1px solid #bdc7d5;
  border-radius:3px;
  background:#fff;
  font:inherit;
}
textarea{min-height:95px}
button,
.btn,
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:9px 14px;
  border:1px solid #bdc7d5;
  border-radius:3px;
  background:#f5f7fa;
  color:#203040;
  font-weight:900;
  cursor:pointer;
  text-decoration:none;
  font:inherit;
}
button:hover,.btn:hover,.button:hover{text-decoration:none;filter:brightness(.98)}
.primary{background:var(--accent);border-color:#89ba20;color:#203000}
.secondary,.soft{background:#e7f1ff;color:#154c82;border-color:#b6d7f7}
.danger{background:#b42318;color:white;border-color:#b42318}
.large{font-size:16px;padding:12px 16px}
.row,.button-row,.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.msg,
.err,
.flash,
.alert{
  padding:12px 14px;
  border-radius:4px;
  margin:0 0 14px;
  font-weight:900;
}
.flash-success,.alert.success,.msg{background:#edfbe7;color:#3f7e09;border:1px solid #b7df97}
.flash-error,.alert.error,.err{background:#fdeceb;color:#b42318;border:1px solid #f4b4b0}
.flash-warning,.alert.warning{background:#fff6df;color:#855600;border:1px solid #f0d48b}
.status-card,.status{
  padding:14px 16px;
  background:#f6f8fb;
  border:1px solid var(--line);
  margin:12px 0;
  border-radius:4px;
}
.status-card.active,.status.active{background:#edfbe7;color:#326a04;border-color:#b7df97}
.status-card.break,.status.break{background:#fff6df;color:#855600;border-color:#f0d48b}
.status-card.idle,.status.idle{background:#f7f9fc;color:#44546a}
.status-card strong{display:block;font-size:18px}
.status-card span{display:block;margin-top:5px}
.metric,.mini,.stat{
  background:#f7f9fc;
  border:1px solid var(--line);
  border-radius:4px;
  padding:12px;
}
.metric span,.mini span,.stat span{display:block;color:#667085;font-size:12px}
.metric strong,.mini strong,.stat strong{display:block;font-size:22px;color:#17355b;margin-top:4px}
.divider{height:1px;background:var(--line);margin:16px 0}

.table-wrap{overflow:auto}
table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}
th,td{
  border:1px solid var(--line);
  padding:9px 10px;
  text-align:left;
  vertical-align:top;
}
th{
  background:#eef3f8;
  color:#35465a;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.02em;
}
tr:nth-child(even) td{background:#fbfcfe}
.pill,.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:999px;
  background:#e7f1ff;
  color:#154c82;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.pill.ok,.badge.ok{background:#edfbe7;color:#3f7e09}
.pill.off,.badge.off,.badge.muted{background:#f2f4f7;color:#667085}
.pill.warn,.badge.warning{background:#fff6df;color:#855600}
.clock-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.clock-actions form{padding:0}
.narrow{max-width:900px}
.brand-line{display:flex;gap:10px;align-items:center}
.logo-mark-small{
  width:42px;
  height:42px;
  border-radius:8px;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  background:#17355b;
}
.system-note{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  background:#edfbe7;
  color:#3f7e09;
  font-weight:900;
  font-size:12px;
}
.system-note:before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:currentColor;
}

/* ---------- Dashboard Module ---------- */
.module-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-bottom:18px;
}
.module-tile{
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:var(--shadow);
  padding:16px;
  min-height:100px;
}
.module-tile b{
  display:block;
  color:#17355b;
  font-size:17px;
  margin-bottom:5px;
}
.module-tile span{color:#667085;font-size:13px}
.module-icon{
  width:34px;
  height:34px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#e7f1ff;
  color:#17355b;
  margin-bottom:10px;
  font-weight:900;
}
.module-tile.accent .module-icon{background:#edfbe7;color:#3f7e09}

@media (max-width:980px){
  .login-wrap{grid-template-columns:1fr}
  .login-hero{padding:0}
  .login-logo{font-size:38px}
  .sidebar{position:relative;width:auto;min-height:auto}
  .side-nav{grid-template-columns:repeat(2,1fr)}
  .topline,.main,.footer{margin-left:0}
  .topline{position:relative}
  .grid.two,.grid.three,.grid.four,.small-grid,.small-grid.four,.module-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  body{font-size:14px}
  .login-screen{padding:14px}
  .login-box{padding:20px}
  .side-nav{grid-template-columns:1fr}
  .topline{align-items:flex-start;flex-direction:column}
  .main{padding:14px}
  .card form{padding:12px}
  .row,.button-row,.filter-row,.clock-actions{display:grid}
}


/* Complete Suite Module Additions */
.module-tile{color:inherit;text-decoration:none}
.module-tile:hover{transform:translateY(-1px);text-decoration:none;box-shadow:0 12px 28px rgba(15,23,42,.12)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.calendar-day{min-height:110px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px}
.calendar-day .daynum{font-weight:900;color:#17355b;margin-bottom:6px}
.event-chip{display:block;border-radius:5px;padding:4px 6px;margin:4px 0;font-size:12px;background:#e7f1ff;color:#154c82}
.event-chip.shift{background:#edfbe7;color:#3f7e09}
.event-chip.sick{background:#fdeceb;color:#b42318}
.event-chip.info{background:#fff6df;color:#855600}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.form-grid .full{grid-column:1/-1}
.inline-actions{display:flex;gap:8px;flex-wrap:wrap}
.notice-list{display:grid;gap:12px}
.notice{border:1px solid var(--line);border-radius:6px;background:#fff;padding:14px}
.notice.pinned{border-color:#b7df97;background:#fbfff7}
.notice h3{margin:0 0 8px;color:#17355b}
.message-row.unread td{font-weight:900;background:#f5fbff}
.agent-box{background:#0c2340;color:#dce8f7;border-radius:6px;padding:16px}
.agent-box code{display:block;white-space:pre-wrap;background:#08192e;color:#cde8ff;padding:12px;border-radius:6px;margin-top:10px}
@media(max-width:900px){.form-grid,.calendar-grid{grid-template-columns:1fr}.calendar-day{min-height:auto}}

/* Admin-Full Ergänzungen */
.avatar{width:42px;height:42px;border-radius:999px;object-fit:cover;background:#e7f1ff;border:2px solid #d7dde7}
.avatar.big{width:96px;height:96px}
.avatar-placeholder{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:#17355b;color:#fff;font-weight:900}
.user-line{display:flex;align-items:center;gap:10px}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.admin-tabs a{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:900;color:#17355b}
.admin-tabs a.active{background:#17355b;color:#fff}
.danger-zone{border:1px solid #f4b4b0;background:#fff7f7;border-radius:6px;padding:14px}
.management-note{background:#fff6df;border:1px solid #f0d48b;color:#855600;border-radius:6px;padding:12px;margin:10px 0}
.select-multi{min-height:120px}
.shift-assigned{display:flex;gap:6px;flex-wrap:wrap}

/* Planer- und Konfliktschutz-Ergänzungen */
.planner-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.planner-table th.sticky-left,.planner-table td.sticky-left{position:sticky;left:0;background:#fff;z-index:2}
.planner-table th.sticky-left{background:#eef3f8}
.conflict-warning{background:#fff6df;border:1px solid #f0d48b;color:#855600;border-radius:6px;padding:12px;margin:10px 0;font-weight:900}
.allocation-card{border:1px solid var(--line);border-radius:6px;background:#fff;padding:12px;margin-bottom:10px}
.allocation-card strong{color:#17355b}
.workspace-color{width:10px;height:10px;border-radius:999px;display:inline-block;background:#17355b;margin-right:6px}
.action-mini{display:inline-flex;gap:6px;flex-wrap:wrap}
.lock-note{font-size:12px;color:#667085;margin-top:4px}


/* Mehrere Arbeitsbereiche je Mitarbeiter */
.workspace-multi-note{background:#eef8ff;border:1px solid #b6d7f7;color:#154c82;border-radius:6px;padding:12px;margin:10px 0;font-weight:800}
