.fd-wrap{max-width:1000px;margin:20px auto;font-family:inherit}.fd-main-title{margin-bottom:6px}.fd-intro{margin-top:0;color:#555}.fd-date{margin:30px 0 10px;padding-bottom:8px;border-bottom:2px solid #c62828}.fd-day{display:grid;gap:14px}.fd-shift{border:1px solid #ddd;border-radius:10px;padding:16px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.05)}.fd-shift-head{display:flex;gap:20px;justify-content:space-between;align-items:flex-start}.fd-shift-title{font-size:1.2rem;font-weight:700}.fd-shift-time{margin-top:3px;color:#555}.fd-shift-notes{margin-top:8px}.fd-status{text-align:right;white-space:nowrap;padding:8px 10px;border-radius:8px}.fd-open{background:#eef8ef;color:#236b2b}.fd-full{background:#f7eeee;color:#8c2626}.fd-progress{height:8px;background:#eee;border-radius:99px;margin:12px 0;overflow:hidden}.fd-progress span{display:block;height:100%;background:#c62828}.fd-people ul{margin:6px 0 0 18px}.fd-muted{color:#777}.fd-toggle,.fd-submit{margin-top:14px;border:0;border-radius:7px;padding:10px 14px;background:#c62828;color:#fff;font-weight:600;cursor:pointer}.fd-toggle:hover,.fd-submit:hover{filter:brightness(.92)}.fd-form{margin-top:14px;padding-top:14px;border-top:1px solid #eee}.fd-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fd-grid label{display:flex;flex-direction:column;gap:4px;font-weight:600}.fd-grid input{padding:9px;border:1px solid #ccc;border-radius:6px;font-weight:400}.fd-consent{display:block;margin-top:12px;font-size:.92rem}.fd-message{display:none;padding:10px 12px;border-radius:7px;margin:12px 0}.fd-message.ok{display:block;background:#edf8ef;color:#226b2b}.fd-message.err{display:block;background:#faeeee;color:#8b2020}.fd-empty{padding:15px;border:1px solid #ddd;border-radius:8px;background:#fafafa}@media(max-width:650px){.fd-grid{grid-template-columns:1fr}.fd-shift-head{flex-direction:column}.fd-status{text-align:left}.fd-wrap{margin:10px}.fd-date{font-size:1.1rem}}
.fd-signup{margin-top:14px}.fd-signup>summary{display:inline-block;border:0;border-radius:7px;padding:10px 14px;background:#c62828;color:#fff;font-weight:600;cursor:pointer;list-style:none}.fd-signup>summary::-webkit-details-marker{display:none}.fd-signup>summary:hover{filter:brightness(.92)}.fd-signup[open]>summary{margin-bottom:2px}

/* v1.2: Namenseintragung + tabellarische Übersicht */
.fd-grid-name-only { grid-template-columns: minmax(240px, 520px) !important; }
.fd-name-hint { margin:.55rem 0 .85rem; font-size:.9em; opacity:.72; }
.fd-table-day { margin:0 0 28px; }
.fd-table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.fd-service-table { width:100%; border-collapse:collapse; min-width:680px; background:#fff; }
.fd-service-table th, .fd-service-table td { padding:12px 14px; border:1px solid #ddd; text-align:left; vertical-align:top; }
.fd-service-table th { background:#f3f3f3; font-weight:700; }
.fd-service-table tbody tr:nth-child(even) { background:#fafafa; }
.fd-table-note { margin-top:4px; font-size:.9em; opacity:.72; }
@media (max-width:700px) {
  .fd-service-table { min-width:620px; }
  .fd-service-table th, .fd-service-table td { padding:10px; }
}


/* v1.3: kompaktere Typografie + Kommentare */
.fd-wrap { font-size:.94rem; }
.fd-main-title { font-size:1.45rem; }
.fd-date { font-size:1.08rem; margin:24px 0 8px; }
.fd-shift { padding:13px 14px; }
.fd-shift-title { font-size:1.05rem; }
.fd-shift-time, .fd-shift-notes, .fd-people, .fd-status { font-size:.92rem; }
.fd-toggle, .fd-submit, .fd-signup>summary { padding:8px 12px; font-size:.92rem; }
.fd-grid label { font-size:.92rem; }
.fd-grid input, .fd-grid textarea { padding:8px; border:1px solid #ccc; border-radius:6px; font:inherit; font-weight:400; }
.fd-grid textarea { resize:vertical; }
.fd-optional { font-weight:400; opacity:.68; }
.fd-person-comment { font-weight:400; color:#666; }
.fd-service-table { font-size:.9rem; }
.fd-service-table th, .fd-service-table td { padding:9px 11px; }
.fd-table-people { display:flex; flex-direction:column; gap:3px; }
.fd-table-person { line-height:1.35; }
@media (max-width:700px) {
  .fd-wrap { font-size:.91rem; }
  .fd-main-title { font-size:1.3rem; }
  .fd-service-table { font-size:.87rem; }
}


/* v1.4: Dienste als kompakte Aufklapp-Dropdowns */
.fd-shift-dropdown {
  padding:0;
  overflow:hidden;
}
.fd-shift-dropdown > summary {
  list-style:none;
}
.fd-shift-dropdown > summary::-webkit-details-marker {
  display:none;
}
.fd-shift-summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  cursor:pointer;
  user-select:none;
}
.fd-shift-summary:hover {
  background:rgba(0,0,0,.025);
}
.fd-shift-summary::after {
  content:"▾";
  font-size:.95rem;
  opacity:.6;
  margin-left:2px;
  transition:transform .18s ease;
}
.fd-shift-dropdown[open] > .fd-shift-summary::after {
  transform:rotate(180deg);
}
.fd-shift-summary-main {
  display:flex;
  flex-direction:column;
  min-width:0;
  flex:1;
}
.fd-shift-summary .fd-shift-title {
  line-height:1.25;
}
.fd-shift-summary .fd-shift-time {
  margin-top:2px;
  opacity:.78;
}
.fd-shift-summary .fd-status {
  min-width:86px;
  text-align:right;
  line-height:1.15;
}
.fd-shift-summary .fd-status span {
  display:block;
  font-size:.78rem;
  margin-top:2px;
}
.fd-shift-body {
  border-top:1px solid rgba(0,0,0,.08);
  padding:10px 13px 13px;
}
.fd-shift-body .fd-progress {
  margin-top:8px;
}
.fd-shift-body .fd-people {
  margin-top:10px;
}
@media (max-width:600px) {
  .fd-shift-summary {
    gap:8px;
    padding:10px 11px;
  }
  .fd-shift-summary .fd-status {
    min-width:72px;
  }
}


/* v1.5: Reminder- und ICS-Aktionen pro Person */
.fd-person-actions {
  display:inline-flex;
  gap:5px;
  margin-left:7px;
  vertical-align:middle;
}
.fd-person-action {
  display:inline-block;
  padding:2px 6px;
  border:1px solid rgba(0,0,0,.18);
  border-radius:4px;
  text-decoration:none !important;
  font-size:.72rem;
  line-height:1.35;
  white-space:nowrap;
  background:#fff;
}
.fd-person-action:hover {
  background:#f4f4f4;
}
@media (max-width:600px) {
  .fd-person-actions {
    margin-left:4px;
    gap:3px;
  }
  .fd-person-action {
    font-size:.69rem;
    padding:2px 5px;
  }
}


/* v1.6: identische Spaltenbreiten für alle Tages-Tabellen */
.fd-service-table {
  width:100%;
  table-layout:fixed;
}
.fd-service-table .fd-col-service { width:28%; }
.fd-service-table .fd-col-time { width:18%; }
.fd-service-table .fd-col-occupancy { width:14%; }
.fd-service-table .fd-col-people { width:40%; }

.fd-service-table th,
.fd-service-table td {
  vertical-align:top;
  word-wrap:break-word;
  overflow-wrap:anywhere;
}

@media (max-width:700px) {
  .fd-service-table {
    min-width:720px;
  }
}


/* v1.7: optionaler Verantwortlicher pro Dienst */
.fd-responsible {
  margin-top:7px;
  font-size:.9rem;
}
.fd-service-table .fd-col-service { width:24%; }
.fd-service-table .fd-col-time { width:15%; }
.fd-service-table .fd-col-responsible { width:18%; }
.fd-service-table .fd-col-occupancy { width:12%; }
.fd-service-table .fd-col-people { width:31%; }


/* v1.8: Namensauswahl aus importierter Benutzerliste */
.fd-grid select {
  width:100%;
  max-width:100%;
  padding:8px;
  border:1px solid #ccc;
  border-radius:6px;
  background:#fff;
  font:inherit;
}


/* v1.9: freie Namenseingabe */
.fd-other-name-wrap {
  margin-top:2px;
}
.fd-other-name-wrap input {
  width:100%;
}


/* v1.13: eigene Frontend-Anmeldung */
.fd-login-wrap {
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
}
.fd-login-card {
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
  padding:22px;
  background:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.fd-login-form {
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fd-login-form label {
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:.92rem;
  font-weight:600;
}
.fd-login-form input[type="email"],
.fd-login-form input[type="password"] {
  width:100%;
  padding:10px;
  border:1px solid #ccc;
  border-radius:6px;
  font:inherit;
  font-weight:400;
}
.fd-login-remember {
  flex-direction:row !important;
  align-items:center;
  gap:7px !important;
  font-weight:400 !important;
}
.fd-login-button {
  display:inline-block;
  border:0;
  border-radius:6px;
  padding:10px 15px;
  cursor:pointer;
  text-decoration:none !important;
  font:inherit;
  font-weight:600;
  background:#b32025;
  color:#fff !important;
}
.fd-login-button:hover {
  opacity:.92;
}
.fd-login-button-secondary {
  background:#555;
}
.fd-login-help {
  margin-top:16px;
  font-size:.9rem;
}
.fd-login-user {
  padding:14px;
  background:#f6f6f6;
  border-radius:7px;
}
.fd-login-user p {
  margin:0 0 3px;
  color:#666;
}
.fd-login-mail {
  margin-top:3px;
  color:#666;
  font-size:.9rem;
}
.fd-login-actions {
  margin-top:14px;
}


/* v1.15: Meine Dienste + Ampel */
.fd-my-services {
  margin:18px 0 26px;
  padding:16px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
  background:#fff;
}
.fd-my-services-embedded {
  background:#fafafa;
}
.fd-my-services-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:12px;
}
.fd-my-services h2 {
  margin:2px 0 0;
  font-size:1.22rem;
}
.fd-my-kicker {
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:.7rem;
  font-weight:700;
  opacity:.65;
}
.fd-my-user {
  margin-top:2px;
  font-size:.85rem;
  color:#666;
}
.fd-my-actions {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.fd-my-button {
  display:inline-block;
  padding:6px 9px;
  border-radius:5px;
  text-decoration:none !important;
  font-size:.78rem;
  font-weight:600;
  background:#b32025;
  color:#fff !important;
}
.fd-my-button-secondary {
  background:#555;
}
.fd-my-list {
  display:flex;
  flex-direction:column;
  gap:7px;
}
.fd-my-item {
  display:grid;
  grid-template-columns:minmax(210px,.9fr) minmax(150px,.8fr) minmax(0,1.4fr);
  gap:12px;
  padding:9px 10px;
  border:1px solid #e4e4e4;
  border-radius:7px;
  background:#fff;
  font-size:.86rem;
}
.fd-my-date,
.fd-my-date-time {
  font-weight:700;
}
.fd-my-date-time {
  display:flex;
  align-items:baseline;
  gap:6px;
  white-space:nowrap;
}
.fd-my-date-time-separator {
  color:#999;
}
.fd-my-main,
.fd-my-meta {
  display:flex;
  flex-direction:column;
  gap:2px;
}
.fd-my-main span,
.fd-my-meta {
  color:#606060;
}
.fd-my-empty {
  padding:10px;
  border-radius:6px;
  background:#f3f3f3;
  color:#666;
  font-size:.88rem;
}

/* Ampelfarben */
.fd-traffic-dot {
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  margin-right:5px;
  vertical-align:middle;
  background:currentColor;
}
.fd-light-green { color:#16752b !important; }
.fd-light-yellow { color:#9a6a00 !important; }
.fd-light-red { color:#b42318 !important; }

.fd-status.fd-light-green,
.fd-status.fd-light-yellow,
.fd-status.fd-light-red {
  background:transparent;
}
.fd-table-occupancy {
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:3px;
}
.fd-table-occupancy small {
  flex-basis:100%;
  margin-left:14px;
  font-size:.7rem;
  font-weight:400;
}
.fd-traffic-legend {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:.78rem;
  margin:6px 0 12px;
  color:#666;
}

@media (max-width:700px) {
  .fd-my-services-head {
    flex-direction:column;
  }
  .fd-my-actions {
    justify-content:flex-start;
  }
  .fd-my-item {
    grid-template-columns:1fr;
    gap:3px;
  }
}


/* v1.16: geschützter Dokumentenbereich */
.fd-docs {
  max-width:1000px;
  width:auto;
}
.fd-docs-head {
  margin-bottom:18px;
}
.fd-docs-head h2 {
  margin:2px 0 0;
  font-size:1.4rem;
}
.fd-doc-category {
  margin:22px 0 8px;
  font-size:1.05rem;
}
.fd-doc-list {
  display:flex;
  flex-direction:column;
  gap:7px;
}
.fd-doc-item {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:11px 12px;
  border:1px solid #e1e1e1;
  border-radius:7px;
  background:#fff;
}
.fd-doc-main {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.fd-doc-main strong {
  font-size:.92rem;
}
.fd-doc-main span {
  color:#555;
  font-size:.84rem;
}
.fd-doc-main small {
  color:#777;
  font-size:.75rem;
}
.fd-doc-download {
  flex:0 0 auto;
  display:inline-block;
  padding:6px 9px;
  border-radius:5px;
  background:#b32025;
  color:#fff !important;
  text-decoration:none !important;
  font-size:.78rem;
  font-weight:600;
}
@media (max-width:650px) {
  .fd-doc-item {
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v1.18: internes Portal + Gesamtplan */
.fd-internal-head,
.fd-print-shortcode-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:16px;
}
.fd-internal-head h2,
.fd-print-shortcode-head h2 {
  margin:2px 0 0;
}
.fd-internal-section {
  margin-top:28px;
}
.fd-internal-section > h2 {
  margin-bottom:10px;
}
.fd-internal-portal .fd-table-wrap,
.fd-internal-portal .fd-docs {
  margin-left:0;
  margin-right:0;
}
.fd-print-table {
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
}
.fd-print-table th,
.fd-print-table td {
  border:1px solid #ddd;
  padding:7px;
  vertical-align:top;
  text-align:left;
}
.fd-print-table th {
  background:#f1f1f1;
}
.fd-print-note {
  margin-top:3px;
  color:#666;
  font-size:.75rem;
}
.fd-print-person {
  margin-bottom:2px;
}
@media (max-width:700px) {
  .fd-internal-head,
  .fd-print-shortcode-head {
    flex-direction:column;
  }
  .fd-print-shortcode {
    overflow-x:auto;
  }
}


/* v1.19: Dashboard */
.fd-dashboard {
  margin:8px 0 26px;
}
.fd-dashboard-greeting {
  margin-bottom:14px;
}
.fd-dashboard-greeting h2 {
  margin:2px 0 0;
  font-size:1.7rem;
}
.fd-dashboard-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.fd-dashboard-card {
  min-width:0;
  padding:14px;
  border:1px solid #dedede;
  border-radius:9px;
  background:#fff;
}
.fd-dashboard-card h3 {
  margin:0 0 10px;
  font-size:1rem;
}
.fd-dashboard-list {
  display:flex;
  flex-direction:column;
  gap:7px;
}
.fd-dashboard-row {
  padding:7px 0;
  border-bottom:1px solid #eee;
  display:flex;
  flex-direction:column;
  gap:1px;
  font-size:.82rem;
}
.fd-dashboard-row:last-child {
  border-bottom:0;
}
.fd-dashboard-row > span,
.fd-dashboard-row > small {
  color:#666;
}
.fd-dashboard-open-title {
  display:flex;
  align-items:center;
  gap:2px;
}
.fd-dashboard-empty {
  color:#777;
  font-size:.84rem;
  padding:6px 0;
}
.fd-dashboard-calendar .lz6-wrap {
  margin:0 !important;
  max-width:none !important;
}
.fd-dashboard-calendar .lz6-card {
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.fd-dashboard-calendar .lz6-compact {
  font-size:.76rem !important;
}
.fd-dashboard-calendar .lz6-compact-row {
  grid-template-columns:1fr !important;
  gap:1px !important;
  padding:5px 0 !important;
}
.fd-dashboard-calendar .lz6-compact-title {
  font-size:.8rem !important;
}
.fd-dashboard-calendar .lz6-compact-date,
.fd-dashboard-calendar .lz6-compact-location {
  font-size:.73rem !important;
}

/* v1.19: Backend Statistik */
.fd-admin-stat-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
  gap:12px;
  max-width:1100px;
  margin:18px 0 28px;
}
.fd-admin-stat-card {
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:6px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.fd-admin-stat-card strong {
  font-size:1.65rem;
  line-height:1;
}
.fd-admin-stat-card span {
  color:#646970;
  font-size:.82rem;
}

@media (max-width:900px) {
  .fd-dashboard-grid {
    grid-template-columns:1fr;
  }
}
