
:root{--sdns-bg:#08111f;--sdns-bg-2:#111c31;--sdns-card:#0f1728;--sdns-line:rgba(148,163,184,.16);--sdns-text:#e5eefc;--sdns-muted:#93a4bf;--sdns-cyan:#49d7ff;--sdns-purple:#8667ff;}
body.sdns-body{min-height:100vh;background:radial-gradient(circle at top right, rgba(73,215,255,.12), transparent 20%),radial-gradient(circle at top left, rgba(134,103,255,.12), transparent 24%),linear-gradient(180deg,var(--sdns-bg-2),var(--sdns-bg));color:var(--sdns-text)}
.sdns-shell{max-width:1800px;margin:0 auto;padding:24px}
.sdns-topbar,.sdns-card,.sdns-stat-card{background:rgba(15,23,40,.92);border:1px solid var(--sdns-line);box-shadow:0 20px 60px rgba(0,0,0,.28);backdrop-filter:blur(16px)}
.sdns-topbar{border-radius:28px;padding:24px 28px;display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:20px}
.sdns-kicker{font-size:12px;letter-spacing:.28em;color:var(--sdns-cyan);font-weight:800;text-transform:uppercase}
.sdns-title{font-size:clamp(28px,4vw,42px);font-weight:800;margin:8px 0 8px}
.sdns-subtitle{margin:0;color:var(--sdns-muted);max-width:900px}
.sdns-top-actions{display:flex;gap:12px;flex-wrap:wrap}
.sdns-card,.sdns-stat-card{border-radius:24px;padding:20px}
.sdns-card-title{font-size:1.1rem;font-weight:700;color:#fff}
.sdns-card-note{font-size:.92rem;color:var(--sdns-muted)}
.sdns-stat-card span{display:block;color:var(--sdns-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.sdns-stat-card strong{display:block;margin-top:8px;font-size:1.15rem;color:#fff}
.form-control,.form-select{background:#0b1322;border-color:#22304b;color:#eef4ff}
.form-control:focus,.form-select:focus{background:#0b1322;color:#fff;border-color:rgba(73,215,255,.5);box-shadow:0 0 0 .25rem rgba(73,215,255,.12)}
.list-group-item{background:transparent;border-color:rgba(148,163,184,.08);color:#e5eefc}
.dienstplan-wrap {max-height: calc(100vh - 280px);overflow: auto;border-radius:18px}
.dienstplan-table{--bs-table-bg:transparent;--bs-table-color:#e5eefc;--bs-border-color:rgba(148,163,184,.16)}
.dienstplan-table thead th {position: sticky;top: 0;z-index: 2;background: #0f1728;}
.dienstplan-table th.name-col {position: sticky;left: 0;z-index: 3;background: #0f1728;min-width: 220px;}
.dienstplan-table td.name-col {position: sticky;left: 0;z-index: 1;background: #0f1728;min-width: 220px;font-weight: 600;}
.dienstplan-table td.cell {min-width: 78px;padding: 0;}
.dienstplan-table input.cell-input {width:100%;border:0;padding:.45rem .45rem;background:transparent;outline:none;color:#f8fbff}
.dienstplan-table input.cell-input:focus {box-shadow: inset 0 0 0 2px rgba(73,215,255,.25);background: rgba(73,215,255,.08);}
.dienstplan-table th:last-child,.dienstplan-table td:last-child {min-width: 95px;background: rgba(255,255,255,.03);}
.dienstplan-table td.cell {padding: .15rem;}
.cell-wrap {display:flex;flex-direction:column;gap:.1rem}
.cell-hours {line-height:1;color:#9fb0cc}
.dienstplan-table th.holiday-day,.dienstplan-table td.holiday-day {background: rgba(255,193,7,.14)}
.holiday-label{font-size:.7rem;line-height:1.1;color:#ffd666;font-weight:700;margin-top:.15rem}
.person-hours-group{min-width:140px}
.modal-content{box-shadow:0 20px 60px rgba(0,0,0,.3)}
@media (max-width: 991px){.sdns-shell{padding:14px}.sdns-topbar{padding:18px;flex-direction:column;align-items:flex-start}.dienstplan-wrap{max-height:none}}


.sdns-footer {
  margin-top: 24px;
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(7, 12, 20, .92);
  color: rgba(255,255,255,.78);
}

.sdns-footer-inner {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 8px;
  font-size: .92rem;
}

@media (max-width: 768px) {
  .sdns-footer-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

.locked-ribbon{position:absolute;top:22px;right:-58px;transform:rotate(35deg);z-index:5;background:rgba(220,53,69,.92);color:#fff;padding:10px 70px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 25px rgba(0,0,0,.25);pointer-events:none}.dienstplan-board{overflow:hidden;border-radius:18px}.mobile-plan-card{background:rgba(255,255,255,.03);border:1px solid rgba(148,163,184,.16);border-radius:18px;padding:14px 16px;margin-bottom:12px}.mobile-plan-card.holiday-day{background:rgba(255,193,7,.12);border-color:rgba(255,193,7,.32)}.mobile-plan-date{font-weight:700;color:#fff}.mobile-plan-meta{font-size:.85rem;color:var(--sdns-muted)}.mobile-plan-shift{font-size:1rem;font-weight:700;color:#e5eefc}.mobile-plan-empty{color:var(--sdns-muted);font-style:italic}.mobile-plan-toolbar{max-width:340px}.locked-note{color:#ffb3bd} @media (max-width: 991px){.desktop-plan{display:none}.mobile-plan{display:block !important}.locked-ribbon{top:18px;right:-68px;font-size:.78rem;padding:8px 82px}}
.mobile-plan-summary{margin-top:16px;background:rgba(255,255,255,.04);border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:16px}.mobile-plan-summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0}.mobile-plan-summary-row + .mobile-plan-summary-row{border-top:1px solid rgba(148,163,184,.12)}.mobile-plan-summary-label{color:var(--sdns-muted);font-size:.92rem}.mobile-plan-summary-value{font-size:1.05rem;color:#fff}.mobile-plan-summary-plus .mobile-plan-summary-label,.mobile-plan-summary-plus .mobile-plan-summary-value{color:#31d17c}


.mobile-shift-input {
  background: rgba(255,255,255,0.95);
  border: 1px solid rgba(255,255,255,0.18);
  color: #111827;
  font-weight: 600;
}
.mobile-shift-input:focus {
  box-shadow: none;
  border-color: rgba(13,202,240,0.8);
}
.mobile-plan-shift-wrap {
  margin-top: .35rem;
}

.cell-input-row{display:flex;align-items:center;gap:.32rem;min-height:32px}
.cell-change-dot{display:inline-block;flex:0 0 auto;width:10px;height:10px;border-radius:999px;background:#ff9f1a;box-shadow:0 0 0 2px rgba(255,159,26,.22);cursor:help}
.cell-change-dot:hover{transform:scale(1.08)}
@media (max-width: 991px){.cell-change-dot{display:none}}
