.sp-wrap{max-width:1100px;margin:20px auto;font-family:inherit}.sp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.sp-nav{font-size:24px;line-height:1;width:42px;height:42px;cursor:pointer}.sp-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin:10px 0 18px}.sp-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;background:#777}.sp-free{background:#2e9b4b}.sp-booked{background:#d83b3b}.sp-resp{background:#7a55c7}.sp-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.sp-weekday{text-align:center;font-weight:700;padding:8px}.sp-empty,.sp-day{min-height:92px}.sp-day{border:1px solid #ddd;background:#fff;text-align:left;padding:9px;cursor:pointer;border-radius:6px;position:relative}.sp-day:hover{box-shadow:0 2px 9px rgba(0,0,0,.12)}.sp-day-number{font-size:18px;font-weight:700;display:block}.sp-shift-count{display:inline-block;margin-top:14px;padding:4px 7px;border-radius:4px;font-size:12px}.sp-shift-count.is-free{background:#dff4e4;color:#176b2c}.sp-shift-count.is-booked{background:#f9dddd;color:#9a2020}.sp-resp-mark{position:absolute;right:7px;top:7px;background:#eadfff;color:#5a3798;padding:3px 5px;border-radius:4px;font-size:11px}.sp-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}.sp-modal[hidden]{display:none}.sp-modal-inner{background:#fff;max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:24px;border-radius:10px;position:relative}.sp-close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:28px;cursor:pointer}.sp-shift{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #eee}.sp-shift.free{background:#eefaf0}.sp-shift.booked{background:#fff0f0}.sp-shift button,.sp-responsible-btn,.sp-contact-form button,.sp-account button{padding:8px 12px;cursor:pointer}.sp-contact-form label,.sp-account label{display:block;margin:10px 0}.sp-contact-form input,.sp-account input{display:block;width:100%;box-sizing:border-box;padding:9px}.sp-message,.sp-form-msg{margin-top:12px}.sp-account{max-width:500px}.sp-account button{margin-top:8px}@media(max-width:650px){.sp-calendar{gap:3px}.sp-empty,.sp-day{min-height:70px}.sp-day{padding:5px}.sp-shift-count{margin-top:8px}.sp-shift{grid-template-columns:1fr auto}.sp-shift button{grid-column:1/-1}}

.sp-cancel-btn{padding:8px 12px;cursor:pointer;background:#fff;border:1px solid #c33;color:#a00}

/* Tagesansicht direkt im Monatskalender */
.sp-day{min-height:175px;display:block;width:100%;overflow:hidden}.sp-day-label{display:block;margin-top:2px;padding-right:26px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-day-shifts{display:flex;flex-direction:column;gap:4px;margin-top:8px}.sp-day-shift{display:flex;justify-content:space-between;gap:5px;padding:4px 5px;border-radius:4px;font-size:11px;line-height:1.2}.sp-day-shift b{font-weight:600}.sp-day-shift em{font-style:normal}.sp-day-shift.is-free{background:#dff4e4;color:#176b2c}.sp-day-shift.is-booked{background:#f9dddd;color:#9a2020}.sp-day-shift.is-mine{outline:2px solid currentColor}.sp-shift-count{margin-top:6px}
@media(max-width:800px){.sp-calendar{grid-template-columns:repeat(7,minmax(105px,1fr));overflow-x:auto;padding-bottom:8px}.sp-weekday{min-width:105px}.sp-day{min-width:105px;min-height:165px}.sp-day-shift{display:block}.sp-day-shift em{display:block;margin-top:2px}}


/* Login / Registrierung – nutzt Logo und Akzentfarbe des aktiven WordPress-/Divi-Themes */
.sp-auth-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px;font-size:14px}.sp-auth-link{appearance:none;border:0;background:none;padding:0;color:var(--sp-auth-link,#2ea3f2);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.sp-auth-link:hover{text-decoration:none}.sp-auth-modal{position:fixed;inset:0;z-index:100000;background:rgba(18,22,27,.66);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}.sp-auth-modal[hidden]{display:none}.sp-auth-card{position:relative;width:min(100%,500px);max-height:92vh;overflow:auto;background:var(--sp-auth-bg,#fff);color:#222;border-radius:14px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.sp-auth-close{position:absolute;right:12px;top:8px;width:38px;height:38px;border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer;color:inherit}.sp-auth-brand{text-align:center;margin:2px 38px 22px}.sp-auth-brand img{display:inline-block;max-width:220px;max-height:90px;width:auto;height:auto}.sp-auth-brand strong{font-size:22px}.sp-auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:24px;border-bottom:1px solid rgba(0,0,0,.14)}.sp-auth-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:11px 8px;font:inherit;font-weight:700;cursor:pointer;color:inherit}.sp-auth-tabs button.is-active{border-bottom-color:var(--sp-auth-accent,#2ea3f2);color:var(--sp-auth-accent,#2ea3f2)}.sp-auth-card h3{margin:0 0 18px;text-align:center}.sp-auth-card label{display:block;margin:12px 0;font-weight:600}.sp-auth-card input[type=text],.sp-auth-card input[type=email],.sp-auth-card input[type=password],.sp-auth-card input:not([type]){display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:11px 12px;border:1px solid rgba(0,0,0,.22);border-radius:6px;background:#fff;color:#222;font:inherit}.sp-auth-card input:focus{outline:2px solid color-mix(in srgb,var(--sp-auth-accent,#2ea3f2) 45%,transparent);border-color:var(--sp-auth-accent,#2ea3f2)}.sp-auth-check{display:flex!important;gap:8px;align-items:center;font-weight:400!important}.sp-auth-check input{margin:0}.sp-auth-submit{display:block;width:100%;margin:18px 0 8px;padding:12px 16px;border:0;border-radius:6px;background:var(--sp-auth-accent,#2ea3f2);color:#fff;font:inherit;font-weight:700;cursor:pointer}.sp-auth-submit:hover{filter:brightness(.92)}.sp-auth-text-link{color:var(--sp-auth-link,#2ea3f2);font-weight:600}.sp-auth-message{min-height:1.4em;margin:10px 0 0;text-align:center;font-weight:600}.sp-auth-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sp-auth-open{overflow:hidden}@media(max-width:540px){.sp-auth-card{padding:24px 18px}.sp-auth-two{grid-template-columns:1fr}.sp-auth-actions{justify-content:center}}


/* Konto-Seite – an die klare EA-Esslingen-/Divi-Optik angelehnt */
.sp-account-page{--sp-account-accent:var(--sp-auth-accent,#2ea3f2);--sp-account-link:var(--sp-auth-link,#2ea3f2);max-width:1050px;margin:28px auto;display:grid;gap:28px;color:#222}
.sp-account-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:28px;box-shadow:0 10px 32px rgba(0,0,0,.07)}
.sp-account-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;padding-bottom:14px;border-bottom:3px solid var(--sp-account-accent)}
.sp-account-heading h2{margin:2px 0 0;font-size:clamp(24px,3vw,34px);line-height:1.15}
.sp-account-kicker{display:block;color:var(--sp-account-accent);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.sp-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.sp-account-grid label{display:block;margin:0;font-weight:700}
.sp-account-grid input{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:12px 13px;border:1px solid rgba(0,0,0,.2);border-radius:6px;background:#fff;color:#222;font:inherit}
.sp-account-grid input:focus{outline:2px solid color-mix(in srgb,var(--sp-account-accent) 35%,transparent);border-color:var(--sp-account-accent)}
.sp-account-wide{grid-column:1/-1}
.sp-account-save{margin-top:20px!important;padding:12px 20px!important;border:0!important;border-radius:6px!important;background:var(--sp-account-accent)!important;color:#fff!important;font-weight:800!important;cursor:pointer}
.sp-account-save:hover{filter:brightness(.93)}
.sp-account-message{margin:10px 0 0;font-weight:600}
.sp-account-table-wrap{overflow-x:auto}
.sp-account-table{width:100%;border-collapse:collapse;background:#fff}
.sp-account-table th{padding:13px 14px;text-align:left;background:color-mix(in srgb,var(--sp-account-accent) 10%,#fff);border-bottom:2px solid var(--sp-account-accent);font-weight:800}
.sp-account-table td{padding:14px;border-bottom:1px solid rgba(0,0,0,.09);vertical-align:middle}
.sp-account-table tbody tr:hover{background:rgba(0,0,0,.018)}
.sp-account-badge{display:inline-block;min-width:42px;padding:5px 9px;border-radius:999px;background:#eee;text-align:center;font-size:12px;font-weight:800}
.sp-account-badge.is-responsible{background:color-mix(in srgb,var(--sp-account-accent) 18%,#fff);color:var(--sp-account-accent)}
.sp-account-empty{padding:22px;border-radius:8px;background:rgba(0,0,0,.035);text-align:center}
@media(max-width:700px){
  .sp-account-page{margin:16px auto;gap:18px}
  .sp-account-card{padding:20px 16px}
  .sp-account-grid{grid-template-columns:1fr}
  .sp-account-wide{grid-column:auto}
  .sp-account-table,.sp-account-table tbody,.sp-account-table tr,.sp-account-table td{display:block;width:100%}
  .sp-account-table thead{display:none}
  .sp-account-table tr{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.12)}
  .sp-account-table td{display:grid;grid-template-columns:140px 1fr;gap:10px;padding:7px 0;border:0}
  .sp-account-table td:before{content:attr(data-label);font-weight:800;color:#555}
}

/* Benutzerseiten-Button oberhalb des Kalenders – passend zur EA-Esslingen-Optik */
.sp-calendar-account-link{display:flex;justify-content:flex-end;margin:0 0 18px}
.sp-userdata-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border:2px solid var(--sp-auth-accent,#2ea3f2);border-radius:6px;background:var(--sp-auth-accent,#2ea3f2);color:#fff!important;font:inherit;font-weight:800;line-height:1.2;text-decoration:none!important;box-shadow:0 5px 14px rgba(0,0,0,.10);transition:filter .18s ease,transform .18s ease,box-shadow .18s ease}
.sp-userdata-button:hover,.sp-userdata-button:focus{color:#fff!important;text-decoration:none!important;filter:brightness(.92);transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.14)}
.sp-userdata-button:focus{outline:3px solid color-mix(in srgb,var(--sp-auth-accent,#2ea3f2) 35%,transparent);outline-offset:2px}
@media(max-width:540px){.sp-calendar-account-link{justify-content:stretch}.sp-userdata-button{width:100%;box-sizing:border-box}}

.sp-ics-button{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:6px;background:var(--sp-account-accent,var(--sp-auth-accent,#2ea3f2));color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:800;white-space:nowrap}
.sp-ics-button:hover,.sp-ics-button:focus{color:#fff!important;filter:brightness(.92);text-decoration:none!important}

.sp-calendar-account-link{gap:10px;flex-wrap:wrap}
.sp-logout-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border:2px solid var(--sp-auth-accent,#2ea3f2);border-radius:6px;background:#fff;color:var(--sp-auth-accent,#2ea3f2)!important;font:inherit;font-weight:800;text-decoration:none!important;transition:.18s ease}
.sp-logout-button:hover,.sp-logout-button:focus{background:var(--sp-auth-accent,#2ea3f2);color:#fff!important;text-decoration:none!important}
.sp-account-top-actions{display:flex;justify-content:flex-end}
.sp-account-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.sp-account-cancel{padding:7px 10px;border:1px solid #b42b2b;border-radius:6px;background:#fff;color:#9d2020;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.sp-account-cancel:hover{background:#b42b2b;color:#fff}
@media(max-width:540px){.sp-calendar-account-link .sp-logout-button{width:100%;box-sizing:border-box}.sp-account-top-actions{justify-content:stretch}.sp-account-top-actions .sp-logout-button{width:100%;box-sizing:border-box}}

.sp-auth-privacy{display:flex!important;align-items:flex-start;gap:9px;font-weight:400!important;line-height:1.45;margin-top:16px!important}
.sp-auth-privacy input[type=checkbox]{width:auto!important;flex:0 0 auto;margin:3px 0 0!important}
.sp-auth-privacy a{color:var(--sp-auth-link,#2ea3f2);font-weight:700;text-decoration:underline}
.sp-auth-privacy a:hover{text-decoration:none}

.sp-day-shift.is-partial{background:#ffe0ad;color:#8a4b00}.sp-shift.partial{background:#fff1d6}

/* Teilbelegte Schichten: orange, aber weiterhin frei */
.sp-day-shift.is-partial{background:#f5a623!important;color:#5f3300!important}
.sp-shift.partial{background:#ffe2b3!important;border-left:4px solid #f5a623}

/* Teilbelegte Schichten im Übersichtskalender: orange */
.sp-day-shift.is-partial{background:#f5a623!important;color:#5b3200!important}
.sp-shift.partial{background:#ffe0ad!important;border-left:4px solid #f5a623}

/* Tagesübersicht: Tagesverantwortlicher und freigegebene Kontaktdaten */
.sp-responsible-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 16px;margin:0 0 12px;border-radius:8px;background:#f6f3fa}
.sp-responsible-top strong{width:100%}
.sp-responsible-name{display:inline-block;padding:5px 10px;border-radius:5px;background:#7b4aa8;color:#fff;font-weight:700}
.sp-responsible-top a,.sp-day-contact a{font-weight:600;text-decoration:none}
.sp-day-contacts{margin:18px 0;padding:16px;border:1px solid #ddd;border-radius:8px}
.sp-day-contacts h3{margin:0 0 12px}
.sp-day-contact{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:9px 0;border-top:1px solid #eee}
.sp-day-contact:first-of-type{border-top:0}
.sp-day-contact span{display:flex;flex-direction:column}
.sp-day-contact small{opacity:.72;margin-top:2px}

/* Passwort anzeigen/ausblenden */
.sp-password-wrap{position:relative;display:block}
.sp-password-wrap input{width:100%;box-sizing:border-box;padding-right:44px!important}
.sp-password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;padding:0;border:0;background:transparent;cursor:pointer;font-size:20px;line-height:1}
.sp-password-toggle:hover,.sp-password-toggle:focus{background:rgba(0,0,0,.06);border-radius:50%}
