.wsp-wrap { --wsp-brand:#6f1732; --wsp-green:#2f6b55; --wsp-line:#d9d2c2; --wsp-bg:#fffdf8; color:#1f1f1f; }
.wsp-wrap h1 { margin-bottom:12px; }
.wsp-event-title-wrap { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.wsp-event-title-wrap h2 { cursor:pointer; margin-right:8px; }
.wsp-event-title-form { display:none; gap:6px; align-items:center; margin:6px 0; }
.wsp-event-title-form input { min-width:260px; max-width:100%; }
.wsp-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:10px 0; }
.wsp-panel { background:#fffdf8; border:1px solid var(--wsp-line); border-radius:8px; padding:14px; margin:12px 0; }
.wsp-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.wsp-grid label, .wsp-panel label { display:block; font-weight:600; margin:8px 0 4px; }
.wsp-grid input, .wsp-grid select, .wsp-panel textarea, .wsp-panel input, .wsp-panel select { width:100%; max-width:100%; }
.wsp-tabs { display:flex; gap:0; overflow-x:auto; margin:10px 0 16px; border-bottom:1px solid var(--wsp-line); }
.wsp-tab { display:block; padding:10px 14px; border:1px solid var(--wsp-line); border-bottom:0; background:#eee8dc; text-decoration:none; font-weight:700; color:#222; }
.wsp-tab.active { background:#fffdf8; color:var(--wsp-brand); }
.wsp-plan { width:100%; border-collapse:collapse; table-layout:fixed; background:#fff; }
.wsp-plan th, .wsp-plan td { border:1px solid #777; vertical-align:top; padding:0; }
.wsp-plan th { background:#f4f4f4; text-align:center; font-style:italic; padding:8px 5px; }
.wsp-plan th .wsp-day-title { display:inline-block; vertical-align:middle; margin-right:8px; }
.wsp-day-date-form { display:none; gap:5px; justify-content:center; align-items:center; margin:0 0 6px; }
.wsp-day-date-form input { max-width:150px; }
.wsp-plan .wsp-row-head { width:170px; background:#fafafa; padding:8px; }
.wsp-row-head input { width:100%; margin-bottom:5px; }
.wsp-time-row { display:grid; grid-template-columns:1fr 1fr; gap:5px; }
.wsp-time-row label { margin-top:0; }
.wsp-cell { min-height:82px; padding:8px; }
.wsp-plan td.wsp-no-shift-cell {
  background:#e9e6de;
}
.wsp-plan td.wsp-no-shift-cell .wsp-cell {
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.wsp-plan td.wsp-no-shift-cell .button {
  background:#fff;
}
.wsp-cell-tools { display:flex; gap:5px; align-items:center; margin-bottom:6px; }
.wsp-cell-tools select { flex:1; min-width:0; }
.wsp-helper { margin:5px 0; padding:6px 8px; border-left:4px solid var(--wsp-green); background:#dff1e7; font-weight:700; }
.wsp-helper.requested { background:#fff0cf; border-left-color:#d49a16; }
.wsp-helper.declined { background:#f3dada; border-left-color:#9b1c31; color:#701421; }
.wsp-helper .wsp-actions { margin:5px 0 0; }
.wsp-day-total-row td { background:#f7f4ee; text-align:center; }
.wsp-button, .wsp-wrap .button.wsp-button { background:var(--wsp-brand); border-color:var(--wsp-brand); color:#fff; }
.wsp-button.secondary { background:var(--wsp-green); border-color:var(--wsp-green); }
.wsp-button.danger { background:#fff; border-color:#b8b0a0; color:#222; }
.wsp-wrap .button.wsp-icon-button,
.wsp-portal .button.wsp-icon-button {
  min-width:34px;
  min-height:34px;
  padding:4px 11px;
  background:#fff;
  border-color:#b8b0a0;
  color:#222;
  font-weight:700;
}
.wsp-wrap .button.wsp-icon-button:hover,
.wsp-wrap .button.wsp-icon-button:focus {
  background:#f7f4ee;
  border-color:#8f8778;
  color:#111;
}
.wsp-checks { border:1px solid var(--wsp-line); border-radius:8px; padding:10px 12px; margin-top:12px; }
.wsp-checks legend { font-weight:700; padding:0 6px; }
.wsp-checks label { display:inline-flex; gap:6px; align-items:center; margin:6px 14px 6px 0; }
.wsp-checks input { width:auto; }
.wsp-check-list { margin-top:8px; }
.wsp-check-list label { display:flex; width:max-content; max-width:100%; }
.wsp-mail-body { max-width:520px; white-space:pre-wrap; font-family:ui-monospace, SFMono-Regular, Consolas, monospace; font-size:12px; }
.wsp-dialog-backdrop {
  position:fixed;
  inset:0;
  z-index:100000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.28);
}
.wsp-dialog {
  width:min(460px,100%);
  background:#fffdf8;
  border:1px solid var(--wsp-line);
  border-radius:8px;
  box-shadow:0 14px 40px rgba(0,0,0,.22);
  padding:20px;
}
.wsp-dialog p { margin:0 0 16px; font-size:16px; line-height:1.45; }
.wsp-dialog-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.wsp-portal table { width:100%; border-collapse:collapse; }
.wsp-portal th, .wsp-portal td { border-bottom:1px solid var(--wsp-line); padding:10px; text-align:left; }
.wsp-portal h2 {
  font-size:32px;
  font-weight:700;
  margin:0 0 14px;
  line-height:1.2;
}
.wsp-portal-heading { display:flex; gap:12px; align-items:center; margin:0 0 14px; }
.wsp-portal-heading img { max-width:110px; max-height:80px; width:auto; height:auto; object-fit:contain; }
.wsp-portal-heading .wsp-portal-title { margin:0; }
.wsp-portal-section {
  border:1px solid var(--wsp-line);
  border-radius:8px;
  background:#fffdf8;
  margin:14px 0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.wsp-portal-section summary {
  cursor:pointer;
  padding:15px 18px;
  font-size:22px;
  font-weight:700;
  background:#f7f4ee;
  line-height:1.25;
}
.wsp-portal-section table { margin:0; }
.wsp-portal-plan { overflow-x:auto; }
.wsp-portal-plan-event { padding:14px; min-width:720px; }
.wsp-portal-plan-event h3 { margin:0 0 4px; font-size:20px; }
.wsp-portal-plan-event p { margin:0 0 10px; }
.wsp-portal-plan .wsp-plan th { font-size:13px; }
.wsp-portal-plan .wsp-plan .wsp-row-head { width:120px; }
.wsp-portal-plan .wsp-cell { min-height:54px; padding:5px; }
.wsp-portal-plan .wsp-helper { margin:3px 0; padding:4px 6px; font-size:13px; }
.wsp-portal .wsp-panel { padding:20px; }
.wsp-portal .wsp-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }
.wsp-portal input { font-size:20px; padding:14px; min-height:52px; }
.wsp-portal button, .wsp-portal .wsp-button { font-size:18px; padding:13px 18px; border-radius:7px; border:0; cursor:pointer; }
.wsp-portal button.wsp-button:not(.danger),
.wsp-portal .wsp-button:not(.danger) {
  background:var(--wsp-brand);
  color:#fff;
}
.wsp-portal button.wsp-button:not(.danger):hover,
.wsp-portal .wsp-button:not(.danger):hover {
  background:#5f1029;
  color:#fff;
}
.wsp-portal .wsp-button.danger {
  background:#9b1c31;
  border:1px solid #9b1c31;
  color:#fff;
}
.wsp-portal .wsp-button.danger:hover {
  background:#7d1426;
  color:#fff;
}
.wsp-portal-info { font-size:18px; line-height:1.45; }
.wsp-helper-name { font-size:18px; }
.wsp-section-text { padding:12px 18px; border-bottom:1px solid var(--wsp-line); font-size:16px; line-height:1.45; background:#fffaf0; }
.wsp-section-actions { padding:12px 18px 16px; }
.wsp-hours-input { max-width:110px; }
.wsp-print-view { max-width:none; }
.wsp-print-logo { max-width:120px; max-height:70px; width:auto; height:auto; object-fit:contain; margin:0 0 8px; display:block; }
.wsp-print-view .wsp-plan .wsp-row-head { width:150px; }
.wsp-print-view .wsp-plan tbody tr:not(.wsp-day-total-row) { height:18mm; }
.wsp-print-view .wsp-plan tbody tr.wsp-day-total-row { height:8mm; }
.wsp-print-view .wsp-cell { min-height:0; height:100%; box-sizing:border-box; }
.wsp-print-view .wsp-plan td { height:18mm; }
.wsp-print-view .wsp-day-total-row td { height:8mm; }
.wsp-print-view .wsp-no-shift-cell {
  background-color:#d0cbc0 !important;
  background-image:repeating-linear-gradient(135deg, rgba(0,0,0,.10) 0, rgba(0,0,0,.10) 4px, transparent 4px, transparent 10px) !important;
  color:#333;
  box-shadow:inset 0 0 0 2px #8f8778;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
.wsp-status { display:inline-block; padding:3px 8px; border-radius:999px; background:#eee; }
.wsp-status.confirmed { background:#dff1e7; color:#165333; }
.wsp-status.requested { background:#fff0cf; color:#6b4300; }
.wsp-status.declined { background:#f3dada; color:#842626; }
@media (max-width:700px) {
  .wsp-wrap.wsp-portal {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    padding:0 10px;
    overflow-x:hidden;
  }
  .wsp-portal h2 {
    font-size:26px;
  }
  .wsp-portal .wsp-panel {
    padding:14px;
  }
  .wsp-portal .wsp-grid {
    grid-template-columns:1fr;
    gap:10px;
  }
  .wsp-portal input {
    font-size:18px;
    padding:11px;
    min-height:46px;
  }
  .wsp-portal-section summary {
    font-size:19px;
    padding:13px 14px;
  }
  .wsp-portal-section {
    overflow-x:visible;
    overflow-y:visible;
  }
  .wsp-portal-plan {
    overflow-x:auto;
  }
  .wsp-portal-plan .wsp-plan,
  .wsp-portal-plan .wsp-plan thead,
  .wsp-portal-plan .wsp-plan tbody,
  .wsp-portal-plan .wsp-plan tr,
  .wsp-portal-plan .wsp-plan th,
  .wsp-portal-plan .wsp-plan td {
    display:revert;
    width:auto;
  }
  .wsp-portal-plan .wsp-plan {
    min-width:720px;
    font-size:13px;
  }
  .wsp-portal-plan .wsp-plan thead {
    display:table-header-group;
  }
  .wsp-portal-plan .wsp-plan tr {
    display:table-row;
    padding:0;
  }
  .wsp-portal-plan .wsp-plan th,
  .wsp-portal-plan .wsp-plan td {
    display:table-cell;
    padding:0;
    border:1px solid #777;
  }
  .wsp-portal-plan .wsp-plan td::before {
    content:none !important;
  }
  .wsp-portal table,
  .wsp-portal thead,
  .wsp-portal tbody,
  .wsp-portal tr,
  .wsp-portal th,
  .wsp-portal td {
    display:block;
    width:100%;
    box-sizing:border-box;
  }
  .wsp-portal table {
    min-width:0;
    font-size:15px;
  }
  .wsp-portal thead {
    display:none;
  }
  .wsp-portal tr {
    border-bottom:1px solid var(--wsp-line);
    padding:10px 12px;
  }
  .wsp-portal td {
    border:0;
    padding:5px 0;
    display:grid;
    grid-template-columns:76px minmax(0,1fr);
    gap:8px;
    align-items:start;
  }
  .wsp-portal td::before {
    font-weight:700;
    color:#5d5548;
  }
  .wsp-portal-section[data-wsp-section="confirmed"] td:nth-child(1)::before,
  .wsp-portal-section[data-wsp-section="available"] td:nth-child(1)::before,
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(1)::before { content:"Event"; }
  .wsp-portal-section[data-wsp-section="confirmed"] td:nth-child(2)::before,
  .wsp-portal-section[data-wsp-section="available"] td:nth-child(2)::before,
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(2)::before { content:"Datum"; }
  .wsp-portal-section[data-wsp-section="confirmed"] td:nth-child(3)::before,
  .wsp-portal-section[data-wsp-section="available"] td:nth-child(3)::before,
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(3)::before { content:"Zeit"; }
  .wsp-portal-section[data-wsp-section="confirmed"] td:nth-child(4)::before { content:"Status"; }
  .wsp-portal-section[data-wsp-section="available"] td:nth-child(4)::before,
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(4)::before { content:"Aufgabe"; }
  .wsp-portal-section[data-wsp-section="available"] td:nth-child(5)::before { content:""; }
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(5)::before { content:"Stunden"; }
  .wsp-portal-section[data-wsp-section="hours"] td:nth-child(6)::before { content:"Betrag"; }
  .wsp-portal tfoot {
    display:block;
    padding:10px 12px;
  }
  .wsp-portal tfoot tr,
  .wsp-portal tfoot th {
    display:block;
    border:0;
    padding:4px 0;
    text-align:left;
  }
  .wsp-portal button,
  .wsp-portal .wsp-button {
    font-size:16px;
    padding:10px 12px;
    white-space:nowrap;
  }
  .wsp-helper-name,
  .wsp-portal-info {
    font-size:16px;
  }
}
@media print {
  #adminmenumain, #wpadminbar, #wpfooter, .notice, .wsp-actions, .wsp-cell-tools, .wsp-row-head form, .wsp-tabs { display:none !important; }
  #wpcontent { margin-left:0 !important; }
  .wsp-wrap { margin:0; }
  .wsp-plan th, .wsp-plan td { border-color:#333; }
  .wsp-print-view .wsp-plan tbody tr:not(.wsp-day-total-row) { height:16mm; }
  .wsp-print-view .wsp-plan tbody tr.wsp-day-total-row { height:7mm; }
  .wsp-print-view .wsp-plan td { height:16mm; }
  .wsp-print-view .wsp-day-total-row td { height:7mm; }
  .wsp-print-view .wsp-cell { min-height:0 !important; height:100%; box-sizing:border-box; overflow:hidden; }
  .wsp-print-view .wsp-no-shift-cell,
  .wsp-print-view .wsp-no-shift-cell .wsp-cell {
    background-color:#d0cbc0 !important;
    background-image:repeating-linear-gradient(135deg, rgba(0,0,0,.14) 0, rgba(0,0,0,.14) 5px, transparent 5px, transparent 11px) !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  @page { margin:10mm; }
  body[data-wsp-print-section="confirmed"] #adminmenumain,
  body[data-wsp-print-section="confirmed"] #wpadminbar,
  body[data-wsp-print-section="confirmed"] #wpfooter,
  body[data-wsp-print-section="confirmed"] .notice,
  body[data-wsp-print-section="confirmed"] .wsp-actions,
  body[data-wsp-print-section="confirmed"] .wsp-section-actions,
  body[data-wsp-print-section="confirmed"] .wsp-portal-info,
  body[data-wsp-print-section="confirmed"] .wsp-helper-name,
  body[data-wsp-print-section="confirmed"] .wsp-wrap.wsp-portal > :not(.wsp-portal-heading):not([data-wsp-section="confirmed"]),
  body[data-wsp-print-section="confirmed"] .wsp-portal-section:not([data-wsp-section="confirmed"]) { display:none !important; }
  body[data-wsp-print-section="confirmed"] .wsp-portal-section[data-wsp-section="confirmed"] { display:block !important; }
  body[data-wsp-print-section="confirmed"] .wsp-portal-heading { display:flex !important; }
}
