:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#172033;background:#f3f6fb;line-height:1.5;
  --primary:#ef6c23;--primary-dark:#c95012;--navy:#173b63;--blue:#2377b9;
  --green:#2f9e62;--yellow:#d99b18;--orange:#ef6c23;--red:#d94747;--neutral:#8290a3;
  --border:#dfe6ef;--muted:#66758a;--shadow:0 14px 40px rgba(20,45,80,.09)
}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#edf5fb 0,#f6f7fa 360px);min-height:100vh}button,input,textarea{font:inherit}a{color:var(--blue)}
.shell{width:min(1080px,calc(100% - 28px));margin:24px auto 60px}.admin-shell{width:min(1160px,calc(100% - 24px))}.public-shell{padding-top:8px}
.card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:24px}.narrow{max-width:520px;margin:40px auto}.hidden{display:none!important}
h1,h2{margin:0 0 8px;line-height:1.15;color:var(--navy)}h1{font-size:clamp(1.9rem,5vw,3rem)}h2{font-size:clamp(1.3rem,3vw,1.9rem)}p{margin:0 0 10px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-weight:800;font-size:.76rem;color:var(--primary)}.muted,.header-subtitle,.portal-subtitle{color:var(--muted)}.large-text{font-size:1.08rem;font-weight:650}.message{font-weight:650;color:#34465e}.footer-line{text-align:center;color:var(--muted);font-size:.88rem;margin-top:22px}
.hero{display:flex;align-items:center;gap:20px;margin-bottom:20px}.brand-card{border-top:6px solid var(--primary)}.brand-mark{display:grid;place-items:center;flex:0 0 68px;height:68px;border-radius:20px;background:linear-gradient(145deg,var(--primary),#ffb129);color:#fff;font-size:2rem;font-weight:900;box-shadow:0 12px 24px rgba(239,108,35,.25)}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.summary-card{min-height:190px;display:flex;flex-direction:column;justify-content:center}.badge{display:inline-flex;width:max-content;padding:7px 12px;border-radius:999px;font-weight:800;margin:8px 0 14px}.badge.green{background:#e5f6ed;color:#187344}.badge.red{background:#fdeaea;color:#a72929}.badge.neutral{background:#eef1f5;color:#637083}
.status-line,.widget-main{display:flex;align-items:center;gap:12px}.status-dot{width:18px;height:18px;border-radius:50%;display:inline-block;flex:none;box-shadow:0 0 0 5px rgba(130,144,163,.15)}.status-dot.green{background:var(--green);box-shadow:0 0 0 5px rgba(47,158,98,.15)}.status-dot.yellow{background:var(--yellow);box-shadow:0 0 0 5px rgba(217,155,24,.15)}.status-dot.orange{background:var(--orange);box-shadow:0 0 0 5px rgba(239,108,35,.15)}.status-dot.red{background:var(--red);box-shadow:0 0 0 5px rgba(217,71,71,.15)}.status-dot.neutral{background:var(--neutral)}
.info-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;font-size:.93rem}
.admin-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.tabs{display:flex;gap:8px;overflow:auto;padding:5px;margin:0 0 16px}.tab{border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:999px;padding:10px 16px;font-weight:750;white-space:nowrap;cursor:pointer}.tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}.tab-panel{display:none}.tab-panel.active{display:block}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.pill{background:#eef4fa;color:var(--navy);border-radius:999px;padding:7px 12px;font-size:.85rem;font-weight:750}
.form-grid{display:grid;gap:18px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:grid;gap:7px;font-weight:700;color:#34465e}input,textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;background:#fff;color:#172033}input:focus,textarea:focus{outline:3px solid rgba(35,119,185,.16);border-color:var(--blue)}fieldset{border:0;padding:0;margin:0}legend{font-weight:800;margin-bottom:10px}.status-buttons,.quick-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.status-choice input{position:absolute;opacity:0}.status-choice > span,.quick-status{display:flex;align-items:center;justify-content:center;min-height:54px;text-align:center;border:2px solid var(--border);border-radius:14px;background:#fff;font-weight:800;cursor:pointer;padding:10px}.status-choice input:checked + span{border-color:var(--primary);background:#fff3eb;color:var(--primary-dark)}.quick-status{gap:9px}.quick-status:hover{border-color:var(--primary);transform:translateY(-1px)}
.button-row{display:flex;flex-wrap:wrap;gap:10px}.button{border:0;border-radius:12px;background:var(--primary);color:#fff;padding:12px 18px;font-weight:800;cursor:pointer;box-shadow:0 8px 16px rgba(239,108,35,.18)}.button:hover{background:var(--primary-dark)}.button.secondary{background:#edf1f6;color:#33465e;box-shadow:none}.button.danger{background:#fff0f0;color:#a72929;box-shadow:none}.error{color:#b42318;font-weight:700}.success{color:#187344;font-weight:700;min-height:1.4em}
.hours-list{display:grid;gap:10px}.rule-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;border:1px solid var(--border);border-radius:16px;padding:15px}
.collapsible-settings{border:1px solid var(--border);border-radius:16px;background:var(--card);overflow:hidden}
.collapsible-settings summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;cursor:pointer;list-style:none;user-select:none}
.collapsible-settings summary::-webkit-details-marker{display:none}
.collapsible-settings summary>span:first-child{display:grid;gap:4px}
.collapsible-settings summary small{color:var(--muted);font-weight:500}
.collapsible-settings-chevron{font-size:1.35rem;line-height:1;transition:transform .18s ease}
.collapsible-settings[open] .collapsible-settings-chevron{transform:rotate(180deg)}
.collapsible-settings-content{display:grid;gap:14px;padding:0 15px 15px;border-top:1px solid var(--border)}
.collapsible-settings-content>.muted{margin-top:14px}
.inline-time{display:flex;align-items:center;gap:8px}.inline-time input{min-width:120px}.special-form{display:grid;grid-template-columns:1fr 2fr auto auto auto;gap:12px;align-items:end;margin-bottom:18px}.checkbox-label{display:flex;align-items:center;gap:8px;padding-bottom:12px}.checkbox-label input{width:auto}.special-days-list{display:grid;gap:10px}.special-day{display:grid;grid-template-columns:130px 1fr auto auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:14px;padding:12px 14px}.annual-note{margin-top:18px;padding:14px;border-radius:14px;background:#f5f7fa;color:#4a5a6f}
.widget-body{margin:0;background:transparent}.widget{display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:14px;padding:14px 16px;box-shadow:none;min-height:94px}.widget-opening{text-align:right;display:grid;gap:2px}.widget-details{color:#44556d;font-size:.92rem}
@media(max-width:800px){.dashboard-grid{grid-template-columns:1fr}.status-buttons,.quick-status-grid{grid-template-columns:1fr 1fr}.special-form{grid-template-columns:1fr 1fr}.special-form .button{grid-column:1/-1}.special-day{grid-template-columns:1fr auto}.special-day>:nth-child(2){grid-column:1/-1;grid-row:2}.rule-card{grid-template-columns:1fr}.inline-time{flex-wrap:wrap}}
@media(max-width:560px){.shell{width:min(100% - 18px,1080px);margin-top:10px}.card{padding:18px;border-radius:16px}.hero{align-items:flex-start}.brand-mark{flex-basis:52px;height:52px;border-radius:15px}.admin-header{align-items:flex-start}.two-columns{grid-template-columns:1fr}.status-buttons,.quick-status-grid{grid-template-columns:1fr}.info-strip,.widget{align-items:flex-start;flex-direction:column}.widget-opening{text-align:left}.special-form{grid-template-columns:1fr}.special-day{grid-template-columns:1fr}.special-day>:nth-child(2){grid-row:auto}.inline-time input{min-width:0}}

.application-grid{display:grid;gap:12px}.application-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;border:1px solid var(--border);border-radius:16px;padding:18px;background:linear-gradient(135deg,#fff 0,#f8fbfe 100%)}.application-card h3{margin:0;color:var(--navy);font-size:1.18rem}.application-card p{margin:7px 0 0;color:var(--muted)}.application-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill.warning{background:#fff2df;color:#9b540c}.application-link{text-decoration:none;text-align:center;white-space:nowrap}
@media(max-width:640px){.application-card{grid-template-columns:1fr}.application-link{width:100%}}

/* Erweiterte Besucherstatus-Auswahl */
.quick-status > span:last-child,
.status-choice > span > span:last-child {
  display: grid;
  gap: .2rem;
  text-align: left;
}
.quick-status small,
.status-choice small {
  display: block;
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.3;
  opacity: .76;
}

/* Pulsierende Besucherstatus-Punkte */
.status-dot.green,
.status-dot.yellow,
.status-dot.orange,
.status-dot.red {
  animation: visitor-status-pulse 1.8s ease-out infinite;
}

@keyframes visitor-status-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.14); }
}

@media (prefers-reduced-motion: reduce) {
  .status-dot.green,
  .status-dot.yellow,
  .status-dot.orange,
  .status-dot.red {
    animation: none;
  }
}
.automation-info{margin-top:.75rem;padding:1rem;border-radius:14px;background:rgba(15,118,110,.08);border:1px solid rgba(15,118,110,.18)}

.brand-mark-image{overflow:hidden;padding:0}.brand-mark-image img{width:100%;height:100%;object-fit:cover;display:block}
.user-row,.audit-row{display:grid;gap:.75rem;align-items:center;padding:1rem;border:1px solid var(--line,#d9dee7);border-radius:14px;background:var(--surface,#fff)}
.user-row{grid-template-columns:minmax(140px,1.2fr) minmax(130px,1fr) auto minmax(180px,1fr) auto}
.user-row input,.user-row select{width:100%}.user-meta small{display:block;color:var(--muted,#667085)}
.audit-row{grid-template-columns:170px minmax(130px,.8fr) minmax(180px,1fr) 2fr}.audit-row code{white-space:normal;overflow-wrap:anywhere}
@media(max-width:850px){.user-row,.audit-row{grid-template-columns:1fr}.user-row .button{width:100%}}

.widget-fallback{margin:0;line-height:1.5;color:inherit}


/* Öffentlicher Footer und rechtliche Seiten */
.public-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:15px 20px;font-size:.92rem;color:var(--muted)}
.public-footer nav,.public-footer{flex-wrap:wrap}.public-footer nav{display:flex;gap:16px}.public-footer a{font-weight:700;text-decoration:none}.public-footer a:hover{text-decoration:underline}
.legal-shell{max-width:900px}.legal-card{padding:clamp(20px,4vw,40px)}.legal-card h1{margin-bottom:24px}.legal-card h2{font-size:1.25rem;margin-top:28px}.legal-card p{max-width:74ch}.legal-warning{padding:16px 18px;margin:18px 0 26px;border-radius:14px;background:#fff6e8;border:1px solid #f2c77d;color:#70420d}.legal-note{margin-top:32px;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}
@media(max-width:560px){.public-footer{align-items:flex-start;flex-direction:column}.public-footer nav{gap:12px}}

.service-grid{display:grid;gap:18px;margin:0 0 18px}.service-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;text-decoration:none;color:var(--navy);transition:transform .15s ease,border-color .15s ease}.service-card:hover{transform:translateY(-2px);border-color:var(--primary)}.service-card strong{display:block;font-size:1.12rem}.service-card small{display:block;color:var(--muted);margin-top:3px}.service-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#fff3eb;font-size:1.6rem}.booking-card{min-height:340px}.external-content-notice{max-width:780px;margin:auto;padding:24px;border:1px solid var(--border);border-radius:16px;background:#f8fafc}.booking-widget-area{min-height:400px}.booking-loading{text-align:center;padding:40px 12px;color:var(--muted);font-weight:700}.booking-error{text-align:center;padding:40px 16px}.booking-shell .public-footer{margin-top:18px}.public-footer{display:flex;justify-content:space-between;align-items:center;gap:16px}.public-footer nav{display:flex;gap:16px;flex-wrap:wrap}
@media(max-width:560px){.service-card{grid-template-columns:auto 1fr}.service-card>:last-child{display:none}.external-content-notice{padding:18px}.public-footer{align-items:flex-start;flex-direction:column}}


/* Kontakt und Social Media */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.contact-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;text-decoration:none;color:var(--navy);transition:transform .15s ease,border-color .15s ease}.contact-card:hover{transform:translateY(-2px);border-color:var(--primary)}.contact-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#fff3eb;font-size:1.7rem}.contact-content{display:grid;min-width:0}.contact-content strong{font-size:1.08rem;overflow-wrap:anywhere}.contact-content small{color:var(--muted);margin-top:3px}.contact-label{text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:.72rem;color:var(--primary)}.contact-arrow{font-size:1.3rem}.social-section{margin-bottom:18px}.contact-heading{margin-bottom:18px}.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:16px;text-decoration:none;color:var(--navy);background:#f8fafc}.social-link:hover{border-color:var(--primary);background:var(--surface)}.social-link span:nth-child(2){display:grid}.social-link small{color:var(--muted);overflow-wrap:anywhere}.social-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--navy);color:#fff;font-size:1.35rem;font-weight:900}.external-link-note{margin:16px 0 0;color:var(--muted);font-size:.88rem}
@media(max-width:720px){.contact-grid,.social-grid{grid-template-columns:1fr}}
@media(max-width:440px){.contact-card{grid-template-columns:auto minmax(0,1fr)}.contact-arrow{display:none}}


/* Home-Assistant Mitarbeitersteuerung für die Auslastung */
.occupancy-control-body{margin:0;min-height:100vh;background:transparent;padding:10px}
.occupancy-control{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.occupancy-control header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.occupancy-control h1{font-size:clamp(1.35rem,4vw,2rem)}
.control-connection{font-size:.78rem;font-weight:800;color:var(--muted);background:#eef1f5;border-radius:999px;padding:6px 10px;white-space:nowrap}.control-connection.online{color:#187344;background:#e5f6ed}
.control-current{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#f6f8fb;margin:0 0 12px}
.occupancy-button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.occupancy-control-button{display:flex;align-items:center;gap:12px;min-height:84px;padding:14px;border:2px solid var(--border);border-radius:15px;background:#fff;color:var(--navy);text-align:left;cursor:pointer;transition:.15s ease}
.occupancy-control-button:hover,.occupancy-control-button:focus-visible{border-color:var(--primary);transform:translateY(-1px)}
.occupancy-control-button.active{border-color:var(--primary);background:#fff3eb;box-shadow:0 0 0 3px rgba(239,108,35,.12)}
.occupancy-control-button:disabled{opacity:.65;cursor:wait;transform:none}.occupancy-control-button strong{display:block;font-size:1rem}.occupancy-control-button small{display:block;color:var(--muted);line-height:1.25;margin-top:3px}
.control-result{min-height:1.4em;margin:12px 0 0;font-weight:750;color:#187344}.control-note{margin:5px 0 0;color:var(--muted);font-size:.82rem}
@media(max-width:560px){.occupancy-control-body{padding:6px}.occupancy-control{padding:14px;border-radius:14px}.occupancy-button-grid{grid-template-columns:1fr}.occupancy-control-button{min-height:70px}}

/* Anfahrt & Parken */
.directions-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}.address-card address{font-style:normal;font-size:1.16rem;line-height:1.65;margin:12px 0 20px}.direction-actions{display:flex;gap:12px;flex-wrap:wrap}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 17px;border-radius:14px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.primary-action{background:var(--primary);color:#fff;border:1px solid var(--primary)}.secondary-action{background:#fff;color:var(--navy);border:1px solid var(--border)}.primary-action:hover,.secondary-action:hover{transform:translateY(-1px)}.copy-feedback{min-height:1.4em;margin:10px 0 0;color:var(--primary);font-weight:700}.arrival-note p{line-height:1.6}.parking-section,.map-section{margin-bottom:18px}.parking-map{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 120px;grid-template-rows:auto auto auto auto;gap:10px;min-height:420px;padding:24px;border-radius:18px;overflow:hidden;background:linear-gradient(#dcefcf 0 20%,#cbd5df 20% 70%,#c7e2b6 70%);border:1px solid var(--border)}.parking-trees{grid-column:1/3;text-align:center;font-size:2rem;letter-spacing:.35rem}.parking-area{grid-column:1;display:grid;place-items:center;align-content:center;gap:18px;padding:30px;border:3px dashed rgba(47,94,170,.55);border-radius:24px;background:#e5e9ee;box-shadow:inset 0 0 0 8px rgba(255,255,255,.35)}.parking-area strong{font-size:1.3rem}.parking-cars{font-size:1.55rem;word-spacing:.55rem}.parking-road{grid-column:2;grid-row:2/5;display:grid;place-items:center;padding:12px;background:#8d939b;color:#fff;border-left:3px dashed #f6e27d;border-right:3px dashed #f6e27d;text-align:center;font-weight:800;writing-mode:vertical-rl}.parking-path{grid-column:1;font-size:2rem;text-align:center}.parking-entrance{grid-column:1;text-align:center;font-weight:900;font-size:1.1rem}.parking-building{grid-column:1;padding:24px;border-radius:12px;background:var(--navy);color:#fff;text-align:center;font-size:1.25rem;font-weight:900}.map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.map-links{display:flex;gap:10px;flex-wrap:wrap}.map-links a{padding:9px 12px;border:1px solid var(--border);border-radius:12px;text-decoration:none;font-weight:800;background:var(--surface)}.map-frame-wrap{overflow:hidden;border-radius:16px;border:1px solid var(--border);background:#eef2f6}.map-frame{display:block;width:100%;height:460px;border:0}.external-link-note{margin:12px 0 0;color:var(--muted);font-size:.88rem}@media(max-width:760px){.directions-grid{grid-template-columns:1fr}.parking-map{grid-template-columns:minmax(0,1fr) 82px;min-height:360px;padding:14px}.parking-cars{font-size:1.15rem;word-spacing:.1rem}.map-heading{display:block}.map-links{margin-top:12px}.map-frame{height:380px}}@media(max-width:440px){.direction-actions>*{width:100%}.parking-area{padding:20px 8px}.parking-area strong{font-size:1.05rem}.parking-cars{font-size:1rem}.parking-road{font-size:.8rem}.parking-building{font-size:1rem;padding:18px 8px}}

/* Kindergeburtstag */
.birthday-page{display:grid;gap:18px}
.birthday-page .hero,.birthday-page .card{margin-bottom:0}
.birthday-heading{align-items:flex-end}
.birthday-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.birthday-benefit{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--border);border-radius:16px;padding:18px;background:linear-gradient(145deg,#fff,#fff9f3)}
.birthday-benefit-wide{grid-column:1/-1}
.birthday-benefit-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:14px;background:#fff0e5;font-size:1.55rem}
.birthday-benefit h3{margin:0 0 6px;color:var(--navy);font-size:1.05rem}
.birthday-benefit p{margin:0;color:#4a5a6f;line-height:1.55}
.birthday-two-column{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:18px}
.birthday-price-card,.birthday-reservation-info{height:100%}
.birthday-price-list{display:grid;gap:0;margin-top:20px;border:1px solid var(--border);border-radius:16px;overflow:hidden}
.birthday-price-row{display:flex;justify-content:space-between;gap:18px;padding:16px 18px;background:#fff;border-bottom:1px solid var(--border)}
.birthday-price-row:last-child{border-bottom:0}
.birthday-price-row strong{white-space:nowrap;color:var(--navy)}
.birthday-price-free{background:#edf9f1}
.birthday-price-free strong{color:#187344}
.birthday-footnote{margin-top:12px;color:var(--muted);font-size:.9rem}
.birthday-check-list{list-style:none;padding:0;margin:18px 0;display:grid;gap:12px}
.birthday-check-list li{position:relative;padding-left:30px;line-height:1.5}
.birthday-check-list li::before{content:"✓";position:absolute;left:0;top:0;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e5f6ed;color:#187344;font-size:.78rem;font-weight:900}
.birthday-booking-card{scroll-margin-top:18px}
.birthday-jump{text-decoration:none;text-align:center}
@media (max-width:760px){
  .birthday-heading{align-items:stretch;flex-direction:column}
  .birthday-jump{width:100%}
  .birthday-benefit-grid,.birthday-two-column{grid-template-columns:1fr}
  .birthday-benefit-wide{grid-column:auto}
}
@media (max-width:480px){
  .birthday-benefit{padding:15px}
  .birthday-benefit-icon{flex-basis:42px;height:42px;font-size:1.3rem}
  .birthday-price-row{padding:14px;align-items:flex-start}
}



/* Buchungsmodul */
.booking-toolbar{display:flex;gap:1rem;align-items:end;flex-wrap:wrap}.booking-toolbar label{min-width:150px;flex:1}.booking-list{margin-top:.75rem}.booking-table-wrap{overflow-x:auto;border:1px solid var(--border,#d9e1ec);border-radius:12px}.booking-table{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}.booking-table th,.booking-table td{padding:.48rem .62rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border,#e4e9f0)}.booking-table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.035em;color:#657084;background:#f7f9fc;white-space:nowrap}.booking-table tbody tr:last-child td{border-bottom:0}.booking-table tbody tr:hover{background:#f8fafc}.booking-table tr.blocked{background:#fff5f5}.booking-table tr.duplicate{background:#fff8df}.booking-table tr.blocked.duplicate{background:#fff0dc}.pill.warning{background:#fff0b8;color:#7a5200}.booking-table td small{display:block;margin-top:.08rem;color:#657084;white-space:nowrap}.booking-table-time,.booking-table-numbers,.booking-table-action{white-space:nowrap}.booking-table-numbers span{display:block}.booking-table-numbers span+span{margin-left:0;margin-top:.08rem}.booking-table-details{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.booking-note{font-size:.76rem;font-weight:700;color:#526174;background:#eef2f7;border-radius:999px;padding:.16rem .45rem}.compact-button{padding:.36rem .62rem;font-size:.8rem}.readonly-field,.readonly-field:focus{background:#e5e7eb!important;color:#5f6670!important;cursor:not-allowed;border-color:#c7ccd3;box-shadow:none}.booking-dialog{width:min(720px,calc(100% - 2rem));border:0;border-radius:18px;padding:1.5rem;box-shadow:0 24px 80px rgba(0,0,0,.3)}.booking-dialog::backdrop{background:rgba(10,20,35,.55)}.pill.danger{background:#ffe3e3;color:#9d1c1c}.booking-blocks{margin-top:1rem}.booking-summary-grid{margin-bottom:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:780px){.booking-toolbar>*{width:100%}.booking-table{min-width:680px}}

/* Buchungsmodul 1.23.0 */
.booking-status-card{margin-bottom:1rem}.booking-status-line{display:flex;align-items:center;justify-content:space-between;gap:1rem}.booking-status-line h2{margin-bottom:0}.booking-week-overview{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:.5rem}.booking-week-day{appearance:none;border:1px solid var(--border);border-radius:14px;background:#f7f9fc;color:var(--navy);padding:.85rem .5rem;cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:.2rem}.booking-week-day:hover,.booking-week-day.active{border-color:var(--primary);background:#fff3eb}.booking-week-day span{font-weight:700}.booking-week-day strong{font-size:1.8rem}.booking-week-day small{color:var(--muted)}.compact-toolbar label{flex:0 1 240px}.booking-block-summary{cursor:pointer}.booking-block-summary:focus{outline:3px solid rgba(230,105,39,.25)}.booking-block-count{display:flex;align-items:baseline;gap:.4rem}.booking-block-count strong{font-size:2rem}.booking-block-details{padding-top:1rem;border-top:1px solid var(--border);cursor:default}.hidden{display:none!important}@media(max-width:900px){.booking-week-overview{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.booking-week-overview{grid-template-columns:repeat(2,1fr)}.booking-status-line{align-items:flex-start;flex-direction:column}}

.booking-dialog-meta{padding:.75rem 1rem;border:1px solid var(--border);border-radius:12px;background:#f7f9fc;overflow-wrap:anywhere}.booking-dialog-meta code{font-size:.9rem}.booking-main small:empty{display:none}


/* Darstellung: Auto / Hell / Dunkel */
:root{
  color-scheme:light;
  --page-bg-start:#edf5fb;
  --page-bg-end:#f6f7fa;
  --surface:#ffffff;
  --surface-soft:#f7f9fc;
  --text:#172033;
  --heading:#173b63;
  --field-bg:#ffffff;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --page-bg-start:#111827;
  --page-bg-end:#182233;
  --surface:#1f2937;
  --surface-soft:#273449;
  --text:#eef3f8;
  --heading:#f7fafc;
  --border:#3b4b61;
  --muted:#aab7c8;
  --blue:#73b8ed;
  --navy:#f1f5f9;
  --field-bg:#182233;
  --shadow:0 14px 40px rgba(0,0,0,.24);
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{
    color-scheme:dark;
    --page-bg-start:#111827;
    --page-bg-end:#182233;
    --surface:#1f2937;
    --surface-soft:#273449;
    --text:#eef3f8;
    --heading:#f7fafc;
    --border:#3b4b61;
    --muted:#aab7c8;
    --blue:#73b8ed;
    --navy:#f1f5f9;
    --field-bg:#182233;
    --shadow:0 14px 40px rgba(0,0,0,.24);
  }
}
body{color:var(--text);background:linear-gradient(180deg,var(--page-bg-start) 0,var(--page-bg-end) 360px)}
.card,.tab,.status-choice > span,.quick-status,.booking-table,.application-card{background:var(--surface);color:var(--text)}
h1,h2,.application-card h3{color:var(--heading)}
label,.message{color:var(--text)}
input,textarea,select{background:var(--field-bg);color:var(--text);border-color:var(--border)}
.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}
.rule-card,.special-day,.booking-table-wrap,.booking-dialog-meta{background:var(--surface);border-color:var(--border)}
.annual-note,.booking-table th,.booking-week-day,.booking-widget-day-button{background:var(--surface-soft);color:var(--text)}
.booking-table tbody tr:hover{background:var(--surface-soft)}
.booking-dialog{background:var(--surface);color:var(--text)}
.button.secondary{background:var(--surface-soft);color:var(--text);border:1px solid var(--border)}
.pill{background:var(--surface-soft);color:var(--text);border:1px solid var(--border)}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.theme-control{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:750;color:var(--muted)}
.theme-control select{width:auto;min-width:92px;border-radius:12px;padding:10px 34px 10px 12px;cursor:pointer}
@media(max-width:560px){.header-actions{width:100%;justify-content:space-between}.theme-control{flex:1}.theme-control select{flex:1}}

/* Kundenportal v1.25.2 */
.connection-fallback{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-bottom:18px;border:2px solid #e0a53a;background:#fff9ec}.fallback-icon{font-size:2.2rem}.fallback-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.retry-status{margin-top:10px}.portal-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.price-grid,.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.price-card{position:relative}.price-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#fff3eb;font-size:1.6rem;margin-bottom:12px}.price-list{margin:18px 0;display:grid;gap:12px}.price-list div{display:flex;justify-content:space-between;gap:18px;padding-bottom:10px;border-bottom:1px solid var(--border)}.price-list dt{font-weight:700}.price-list dd{margin:0;font-size:1.12rem;font-weight:900;color:var(--heading);white-space:nowrap}.featured-price{border-top:6px solid var(--primary)}.price-highlight{padding:13px;border-radius:12px;background:#fff3eb;font-weight:800}.big-price{font-size:clamp(2.2rem,7vw,3.5rem);font-weight:900;color:var(--primary);margin:18px 0}.group-card{display:grid;grid-template-columns:auto 1fr;gap:18px;margin-bottom:18px}.price-note,.cash-note{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.menu-card img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--border);margin:14px 0}.menu-card .secondary-action{width:100%}.cash-note{background:#fff8df;border-color:#e8c46b}.brand-mark-image img{width:100%;height:100%;object-fit:cover;border-radius:inherit}@media(max-width:720px){.portal-tiles,.price-grid,.menu-grid{grid-template-columns:1fr}.connection-fallback,.group-card{grid-template-columns:1fr}.price-note{align-items:flex-start;flex-direction:column}}


/* Spielregeln v1.25.3 */
.rules-page{display:grid;gap:18px}.rules-page>*{margin:0}.rules-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;background:linear-gradient(135deg,var(--surface),#eef6ff);border-top:6px solid var(--primary)}.rules-hero-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:#e9f3ff;font-size:2.3rem}.rules-hero h1{margin-bottom:8px}.rules-hero p:last-child{margin:0;max-width:760px;line-height:1.6}.rules-intro{display:flex;gap:16px;align-items:flex-start;border-color:#e4b84d;background:#fff9e8}.rules-intro>span{font-size:2rem}.rules-intro strong{display:block;color:#744d00;font-size:1.05rem}.rules-intro p{margin:5px 0 0;line-height:1.55}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.rule-tile{position:relative;display:grid;grid-template-columns:auto 1fr;gap:14px 18px;align-items:start;padding:22px;overflow:hidden;border-left:6px solid var(--primary)}.rule-tile.rule-danger{border-left-color:#d73535}.rule-number{position:absolute;right:14px;top:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;font-weight:900}.rule-danger .rule-number{background:#d73535}.rule-symbol{display:grid;place-items:center;width:66px;height:66px;border-radius:18px;background:#eef6ff;font-size:2rem}.rule-danger .rule-symbol{background:#fff0f0}.rule-tile h2{margin:4px 38px 8px 0;font-size:1.18rem}.rule-tile p{margin:0;color:var(--muted);line-height:1.6}.rules-closing{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#173b63,#245987);color:#fff}.rules-closing>div:first-child{font-size:2.4rem}.rules-closing h2{color:#fff;margin-bottom:5px}.rules-closing p{margin:0;color:#e8f2fb;line-height:1.55}@media(max-width:760px){.rules-hero{grid-template-columns:auto 1fr}.rules-hero .secondary-action{grid-column:1/-1;width:100%}.rules-grid{grid-template-columns:1fr}}@media(max-width:480px){.rules-hero{grid-template-columns:1fr;text-align:center}.rules-hero-icon{margin:auto}.rule-tile{grid-template-columns:1fr}.rule-symbol{width:56px;height:56px}.rules-intro,.rules-closing{align-items:flex-start}}

/* Google-Bewertungen v1.26.1 */
.reviews-section{margin-bottom:18px;border-top:6px solid #4285f4}.reviews-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.reviews-heading h2{margin-bottom:0}.reviews-summary{display:flex;align-items:center;gap:12px;text-align:right}.reviews-summary>strong{font-size:2.5rem;line-height:1;color:var(--heading)}.reviews-summary>span{display:grid;gap:2px}.reviews-summary small,.review-author small{display:block;color:var(--muted)}.review-stars{color:#f4b400;font-size:1.16rem;letter-spacing:.04em;white-space:nowrap}.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.review-card{display:flex;flex-direction:column;gap:10px;padding:17px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.review-card p{margin:0;line-height:1.55;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.review-card>a{font-size:.86rem;font-weight:750;margin-top:auto}.review-author{display:flex;align-items:center;gap:10px}.review-author img,.review-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover}.review-avatar{display:grid;place-items:center;background:var(--surface);font-size:1.2rem}.reviews-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}.google-attribution{text-align:right;margin:12px 0 0;font-size:.78rem;color:var(--muted)}@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.reviews-heading{align-items:flex-start;flex-direction:column}.reviews-summary{text-align:left}.reviews-grid{grid-template-columns:1fr}.reviews-actions>a{width:100%;text-align:center}}


/* FAQ v2.0.1 */
.faq-page{display:grid;gap:18px}.faq-page>*{margin:0}.faq-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;background:linear-gradient(135deg,var(--surface),#eef6ff);border-top:6px solid var(--primary)}.faq-filter-card{border-left:6px solid var(--primary)}.faq-search-label{display:block;margin-bottom:10px;font-weight:850;color:var(--heading)}.faq-search-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.faq-search-icon{font-size:1.35rem}.faq-search-row input{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}.faq-search-row input:focus{outline:3px solid rgba(47,94,170,.2);border-color:var(--primary)}.faq-result-count{margin:10px 0 0}.faq-list{display:grid;gap:12px}.faq-item{padding:0;overflow:hidden}.faq-item summary{position:relative;padding:20px 54px 20px 22px;cursor:pointer;font-weight:850;color:var(--heading);list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:'+';position:absolute;right:22px;top:50%;translate:0 -50%;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf4ff;color:var(--primary);font-size:1.35rem}.faq-item[open] summary::after{content:'−'}.faq-item[open] summary{border-bottom:1px solid var(--border);background:var(--surface-soft)}.faq-answer{padding:18px 22px}.faq-answer p{margin:0;line-height:1.65}.faq-empty,.faq-contact{display:flex;align-items:center;justify-content:space-between;gap:18px}.faq-empty>span{font-size:2.2rem}.faq-empty h2,.faq-contact h2{margin-bottom:6px}.faq-empty p,.faq-contact p{margin:0}.faq-reset{white-space:nowrap}@media(max-width:720px){.faq-hero{grid-template-columns:auto 1fr}.faq-hero>.secondary-action{grid-column:1/-1;width:100%}.faq-search-row{grid-template-columns:auto minmax(0,1fr)}.faq-reset{grid-column:1/-1;width:100%}.faq-contact{align-items:flex-start;flex-direction:column}.faq-contact .primary-action{width:100%;text-align:center}}@media(max-width:480px){.faq-hero{grid-template-columns:1fr;text-align:center}.faq-hero .brand-mark{margin:auto}.faq-search-icon{display:none}.faq-search-row{grid-template-columns:1fr}.faq-item summary{padding-left:18px}.faq-answer{padding:16px 18px}}


/* Einheitliche Kundennavigation und Offline-Modus v2.0.3 */
.page-back-nav{margin:0 0 14px}.page-back-button{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--heading);font-weight:800;text-decoration:none;box-shadow:0 4px 14px rgba(22,51,84,.08)}.page-back-button:hover{transform:translateY(-1px);border-color:var(--primary)}
.page-topic-icon{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border-radius:20px;background:var(--surface-soft);font-size:2rem}.public-footer .footer-greeting{font-weight:800;color:var(--heading)}
.offline-global-banner{position:sticky;top:8px;z-index:50;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 auto 14px;padding:10px 15px;border:1px solid #e0b34d;border-radius:12px;background:#fff8df;color:#704d00;font-weight:750;box-shadow:0 8px 22px rgba(0,0,0,.12)}.offline-booking-notice{display:grid;grid-template-columns:auto 1fr;gap:16px;border-left:6px solid #d89b17}.offline-booking-notice>span{font-size:2rem}.offline-booking-notice h2{margin-bottom:6px}.offline-booking-notice p{line-height:1.55}.is-offline [data-online-only],.is-offline #bookingForm{display:none!important}
@media(max-width:620px){.page-back-button{width:100%;justify-content:center}.page-topic-icon{width:54px;height:54px;flex-basis:54px}.public-footer{align-items:flex-start;flex-direction:column}.offline-booking-notice{grid-template-columns:1fr}}

/* Buchungs- und Druckkonfiguration v2.0.10 */
.booking-table tr.canceled{background:rgba(180,45,45,.10);opacity:.82}.booking-table tr.canceled td:first-child{border-left:4px solid #b52d2d}.canceled-toggle{margin-left:auto;align-self:end}.booking-table tr.canceled strong{text-decoration:line-through}.booking-table tr.canceled .pill strong{text-decoration:none}@media(max-width:720px){.canceled-toggle{margin-left:0;width:100%}}

/* Zentrale Einstellungen v2.0.11 */
.settings-intro{margin-bottom:1rem}.tab-panel[data-panel="settings"]>.card+article.card{margin-top:1rem}.tab-panel[data-panel="settings"]>article[data-permission].hidden{display:none}


/* Einstellungs-Untermenü v2.0.19 */
.settings-submenu{margin-top:18px;margin-bottom:0}.settings-submenu-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.settings-submenu-link:hover,.settings-submenu-link:focus-visible{border-color:var(--primary);outline:none}.settings-submenu-link>span{font-size:1rem}.settings-section{scroll-margin-top:16px}.settings-section.settings-target{outline:3px solid rgba(47,94,170,.2);border-color:var(--primary)}

.booking-cancel-section{display:grid;gap:12px;margin-top:8px;padding:16px;border:1px solid #f0c2c2;border-radius:14px;background:#fff8f8}.booking-cancel-section h3{margin:0}.booking-cancel-section .button.danger{justify-self:start;background:#b42318;color:#fff}.booking-cancel-section .button.danger:hover{background:#8f1c13}


/* Einstellungsnavigation v2.0.24 */
.settings-submenu{margin:0 0 1rem}.settings-view-panel{display:none}.settings-view-panel.active{display:block}.settings-view-tab{white-space:nowrap}

/* Benutzerrechte-Dialog v2.1.2 */
.user-row{grid-template-columns:minmax(180px,1.25fr) minmax(170px,.9fr) minmax(135px,.65fr) minmax(220px,1.1fr);align-items:end}
.user-meta{align-self:center}.user-meta .pill{display:inline-flex;margin-top:.45rem}.user-field{display:grid;gap:.4rem}.user-field>span{font-size:.82rem;font-weight:800;color:var(--muted)}.user-active{align-self:center}.user-actions{grid-column:1/-1;display:flex;gap:.65rem;justify-content:flex-end;flex-wrap:wrap;padding-top:.2rem;border-top:1px solid var(--border)}
.permission-dialog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.permission-option{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft);cursor:pointer}.permission-option:hover{border-color:var(--primary)}.permission-option input{margin-top:.2rem;flex:0 0 auto}.permission-option span{display:grid;gap:.15rem}.permission-option strong{color:var(--heading)}.permission-option small{color:var(--muted);font-size:.74rem}.permission-option:has(input:checked){border-color:var(--primary);background:rgba(47,94,170,.08)}.permission-option:has(input:disabled){cursor:default;opacity:.78}
@media(max-width:1050px){.user-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.user-row{grid-template-columns:1fr}.user-actions{justify-content:stretch}.user-actions .button{width:100%}.permission-dialog-list{grid-template-columns:1fr}}

/* Automatische Druckpläne */
.auto-print-schedule{grid-template-columns:minmax(120px,.8fr) minmax(150px,1fr) minmax(120px,.75fr) minmax(140px,.8fr) minmax(140px,.8fr);align-items:end}
.auto-print-schedule label{min-width:0}
.auto-print-schedule select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;background:#fff;color:#172033;font:inherit}
@media(max-width:980px){.auto-print-schedule{grid-template-columns:repeat(2,minmax(0,1fr))}.auto-print-schedule .checkbox-label{grid-column:1/-1}}
@media(max-width:560px){.auto-print-schedule{grid-template-columns:1fr}}

/* v2.6.10 Medien / Impressionen */
.media-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.media-tile{position:relative;border:0;padding:0;border-radius:18px;overflow:hidden;min-height:190px;background:#e8edf3;cursor:pointer;text-align:left}
.media-tile.featured{grid-column:span 2;grid-row:span 2;min-height:392px}
.media-tile img,.media-tile video{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.media-overlay{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;color:white;background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;flex-direction:column}
.media-overlay small{color:inherit;opacity:.9}
.media-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;color:#162840;font-size:22px}
.media-lightbox{width:min(1100px,94vw);max-width:none;border:0;border-radius:20px;padding:12px;background:#111;color:white}
.media-lightbox::backdrop{background:rgba(0,0,0,.78)}
.media-lightbox img,.media-lightbox video{display:block;max-width:100%;max-height:80vh;margin:auto;border-radius:12px}
.media-lightbox-close{position:absolute;right:20px;top:18px;z-index:2;border:0;border-radius:50%;width:40px;height:40px;font-size:26px;cursor:pointer}
#mediaLightboxCaption{text-align:center;margin:12px}
.media-admin-list{display:grid;gap:12px;margin-top:20px}
.media-admin-item{display:grid;grid-template-columns:150px 1fr auto;gap:16px;align-items:start;border:1px solid #dfe6ef;border-radius:16px;padding:12px}
.media-admin-preview{width:150px;height:110px;border-radius:12px;overflow:hidden;background:#eef2f6}
.media-admin-preview img,.media-admin-preview video{width:100%;height:100%;object-fit:cover}
.media-admin-fields{display:grid;gap:8px}.media-admin-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:760px){.media-gallery{grid-template-columns:1fr 1fr}.media-tile.featured{grid-column:span 2;min-height:300px}.media-admin-item{grid-template-columns:1fr}.media-admin-preview{width:100%;height:190px}}
/* v2.6.10 Kontrastoptimierung Hell/Dunkel */
:root[data-theme="light"],:root:not([data-theme]){
  --page-bg-start:#edf4fa;--page-bg-end:#f7f9fc;--surface:#ffffff;--surface-soft:#f2f5f9;
  --text:#172235;--heading:#12385f;--border:#cbd5e1;--muted:#56657a;--field-bg:#ffffff;
}
:root[data-theme="dark"]{
  --page-bg-start:#0e1623;--page-bg-end:#162234;--surface:#182434;--surface-soft:#223146;
  --text:#f4f7fb;--heading:#ffffff;--border:#506177;--muted:#c3cfdb;--field-bg:#111b29;
}
:root[data-theme="dark"] .card,:root[data-theme="dark"] .rule-card,:root[data-theme="dark"] .special-day,
:root[data-theme="dark"] .booking-table-wrap,:root[data-theme="dark"] .booking-dialog-meta{box-shadow:0 10px 30px rgba(0,0,0,.22)}
:root[data-theme="dark"] a{color:#8bc9f5}
:root[data-theme="dark"] .muted{color:var(--muted)!important}
:root[data-theme="dark"] input,:root[data-theme="dark"] textarea,:root[data-theme="dark"] select{border-color:#607188}
:root[data-theme="dark"] .tab:not(.active){border-color:#52647a}
.public-toolbar{display:flex;justify-content:flex-end;margin:0 0 .6rem}
.theme-toggle{min-width:110px;font-weight:750}
:root[data-theme="dark"] .secondary-action{background:var(--surface-soft);color:var(--text);border-color:var(--border)}

/* v2.6.10 Mitarbeiterportal – Dark-Mode-Kontrast */
:root[data-theme="dark"] .booking-table,
:root[data-theme="dark"] .booking-table tbody,
:root[data-theme="dark"] .booking-table tr,
:root[data-theme="dark"] .booking-table td{
  background:var(--surface)!important;
  color:var(--text)!important;
}
:root[data-theme="dark"] .booking-table th{
  background:var(--surface-soft)!important;
  color:#f4f7fb!important;
  border-color:var(--border)!important;
}
:root[data-theme="dark"] .booking-table td strong,
:root[data-theme="dark"] .booking-table td small,
:root[data-theme="dark"] .booking-table td span{
  color:var(--text)!important;
}
:root[data-theme="dark"] .booking-table tbody tr:hover{background:#2a3a50!important}
:root[data-theme="dark"] .booking-table tr.duplicate{background:#554718!important}
:root[data-theme="dark"] .booking-table tr.blocked{background:#572a32!important}
:root[data-theme="dark"] .booking-table tr.canceled{opacity:.82}
:root[data-theme="dark"] .media-admin-item,
:root[data-theme="dark"] .media-admin-fields input,
:root[data-theme="dark"] .media-admin-fields textarea{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
.theme-control{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.theme-control select{min-width:140px}

/* v2.6.10 – Mitarbeiterportal Buchungstabelle */
:root[data-theme="dark"] .booking-table-wrap{
  background:#182434!important;
  border-color:#607188!important;
}
:root[data-theme="dark"] .booking-table{
  background:#182434!important;
  color:#f8fafc!important;
}
:root[data-theme="dark"] .booking-table thead th{
  background:#24344a!important;
  color:#ffffff!important;
  border-bottom:1px solid #607188!important;
}
:root[data-theme="dark"] .booking-table tbody tr{
  background:#182434!important;
  color:#f8fafc!important;
}
:root[data-theme="dark"] .booking-table tbody tr:nth-child(even){
  background:#1d2a3c!important;
}
:root[data-theme="dark"] .booking-table tbody td{
  color:#f8fafc!important;
  border-bottom:1px solid #405169!important;
}
:root[data-theme="dark"] .booking-table tbody td strong{
  color:#ffffff!important;
}
:root[data-theme="dark"] .booking-table tbody td small{
  color:#c7d2df!important;
}
:root[data-theme="dark"] .booking-table tbody tr:hover{
  background:#2a3d57!important;
}
:root[data-theme="dark"] .booking-table tbody tr.duplicate{
  background:#5b491a!important;
}
:root[data-theme="dark"] .booking-table tbody tr.blocked{
  background:#5b2d35!important;
}

/* v2.6.10 Medienverwaltung */
.media-admin-fields textarea{
  min-height:120px;
  resize:vertical;
  line-height:1.45;
  overflow:auto;
}
.media-admin-fields input,
.media-admin-fields textarea{
  width:100%;
  box-sizing:border-box;
}
.media-admin-fields label{
  display:grid;
  gap:.35rem;
}

/* v2.6.10 – gemeinsame dynamische 7-Tage-Karten */
.booking-week-day{
  background:var(--surface-soft)!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
.booking-week-day span,.booking-week-day strong{color:var(--text)!important}
.booking-week-day small{color:var(--muted)!important}
.booking-week-day:hover{
  border-color:var(--primary)!important;
}
.booking-week-day.active{
  background:#fff1e7!important;
  color:#3b1c0d!important;
  border:2px solid var(--primary)!important;
}
.booking-week-day.active span,
.booking-week-day.active strong,
.booking-week-day.active small{color:#3b1c0d!important}
:root[data-theme="dark"] .booking-week-day.active{
  background:#6a351c!important;
  color:#ffffff!important;
  border:2px solid #ff8a4b!important;
  box-shadow:0 0 0 2px rgba(255,138,75,.16)!important;
}
:root[data-theme="dark"] .booking-week-day.active span,
:root[data-theme="dark"] .booking-week-day.active strong,
:root[data-theme="dark"] .booking-week-day.active small{
  color:#ffffff!important;
}

/* v2.6.10 Einlassstopp-Regelverwaltung */
.admission-toolbar{display:flex;gap:.65rem;flex-wrap:wrap;margin:1rem 0}
.admission-rules-list{display:grid;gap:1rem;margin:1rem 0}
.admission-rule{display:grid;gap:1rem}
.admission-rule-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.admission-rule-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.admission-rule-grid .wide{grid-column:1/-1}
.mini-check-grid{display:flex;gap:.35rem;flex-wrap:wrap;margin:.45rem 0}
.mini-check{display:inline-flex;align-items:center;gap:.2rem;border:1px solid var(--border);border-radius:10px;padding:.35rem .48rem;background:var(--surface-soft)}
.mini-check input{width:auto}
@media(max-width:850px){.admission-rule-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.admission-rule-grid{grid-template-columns:1fr}.admission-rule-head{align-items:flex-start;flex-direction:column}}

/* Aufklappbare Gruppen für Wartelisten-Mailvorlagen */
.mail-template-groups{display:grid;gap:.75rem;margin:1rem 0}
.settings-disclosure{border:1px solid var(--border,#d8dee8);border-radius:12px;background:var(--surface,#fff);overflow:hidden}
.settings-disclosure summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;list-style:none}
.settings-disclosure summary::-webkit-details-marker{display:none}
.settings-disclosure summary::after{content:"›";font-size:1.5rem;line-height:1;transform:rotate(90deg);transition:transform .15s ease}
.settings-disclosure[open] summary::after{transform:rotate(-90deg)}
.settings-disclosure summary .muted{margin-left:auto;font-size:.9rem;text-align:right}
.settings-disclosure-content{padding:0 1rem 1rem;border-top:1px solid var(--border,#d8dee8)}
.settings-disclosure-content.form-grid{padding-top:1rem}
.mail-variable-list{display:flex;flex-wrap:wrap;gap:.5rem}
.mail-variable-list code{padding:.35rem .55rem;border-radius:7px;background:rgba(127,127,127,.12)}
@media(max-width:640px){.settings-disclosure summary{align-items:flex-start}.settings-disclosure summary .muted{display:none}}


.insights-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.insight-metric{border:1px solid var(--border);border-radius:16px;padding:18px;background:var(--surface);display:grid;gap:8px}
.insight-metric span{font-size:.82rem;font-weight:800;color:#657084;text-transform:uppercase;letter-spacing:.035em}
.insight-metric strong{font-size:2rem;line-height:1;color:var(--navy)}
.insights-device-list{display:grid;gap:10px}
.insights-device-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) minmax(170px,1.2fr) auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:var(--surface)}
.insights-device-row small{display:block;color:#657084;margin-top:3px}
@media(max-width:800px){.insights-grid{grid-template-columns:1fr 1fr}.insights-device-row{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.insights-grid{grid-template-columns:1fr}.insights-device-row{grid-template-columns:1fr}}

.insight-metric small{color:#657084;font-weight:700}
.insights-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.insights-split>div{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:12px 14px}
.insights-split span{color:#657084;font-weight:700}.insights-split strong{font-size:1.35rem}
.insights-chart{height:220px;display:flex;align-items:flex-end;gap:4px;padding:18px 4px 28px;border-bottom:1px solid var(--border);overflow:hidden}
.insights-bar{flex:1;min-width:3px;position:relative;border-radius:5px 5px 0 0;background:currentColor;opacity:.7}
.insights-bar:hover{opacity:1}.insights-bar span{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);font-size:.65rem;color:#657084;white-space:nowrap}
.insights-page-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:12px 14px}
.insights-page-row small{display:block;color:#657084;margin-top:3px}
@media(max-width:560px){.insights-split{grid-template-columns:1fr}.insights-chart{gap:2px}.insights-page-row{grid-template-columns:1fr auto}}

.settings-combined-divider{height:1px;background:var(--border);margin:28px 0}.settings-combined-section{display:block}

html[data-theme="dark"] .insight-metric,
html[data-theme="dark"] .insights-device-row,
html[data-theme="dark"] .insights-page-row,
html[data-theme="dark"] .insights-split>div{background:#172438;border-color:#3a4b61;color:#f3f7fb}
html[data-theme="dark"] .insight-metric strong,
html[data-theme="dark"] .insights-device-row strong,
html[data-theme="dark"] .insights-page-row strong,
html[data-theme="dark"] .insights-split strong{color:#f3f7fb}
html[data-theme="dark"] .insight-metric span,
html[data-theme="dark"] .insight-metric small,
html[data-theme="dark"] .insights-device-row small,
html[data-theme="dark"] .insights-page-row small,
html[data-theme="dark"] .insights-split span{color:#b9c5d5}

.parking-overview-figure{margin:0;overflow:hidden;border-radius:18px;border:1px solid var(--border);background:var(--surface)}
.parking-overview-image{display:block;width:100%;height:auto;object-fit:contain}

.combined-park-status{display:block}
.combined-park-status-heading{align-items:center;margin-bottom:18px}
.combined-park-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--border)}
.combined-park-status-part{padding:20px 22px 4px 0;min-width:0}
.combined-park-status-part+ .combined-park-status-part{border-left:1px solid var(--border);padding-left:22px;padding-right:0}
.combined-park-status-part h3{margin:6px 0 8px;font-size:1.35rem}
@media (max-width:720px){
  .combined-park-status-heading{align-items:flex-start}
  .combined-park-status-grid{grid-template-columns:1fr}
  .combined-park-status-part{padding:18px 0}
  .combined-park-status-part+ .combined-park-status-part{border-left:0;border-top:1px solid var(--border);padding-left:0}
}



/* Benutzerverwaltung & Rechte – responsive Neuordnung v2.6.47 */
#usersList{display:grid;gap:14px}
.user-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(210px,1.1fr) minmax(180px,.85fr) minmax(160px,.7fr);gap:14px;align-items:end;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.user-meta{display:grid;gap:4px;min-width:0}.user-meta strong{font-size:1.05rem;overflow-wrap:anywhere}.user-meta small{overflow-wrap:anywhere}.user-meta .pill{justify-self:start}
.user-field{min-width:0}.user-field input,.user-field select{width:100%;min-width:0}
.user-active{align-self:end;min-height:46px;padding:0 4px}.user-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}
#permissionDialog{width:min(860px,calc(100vw - 32px));max-width:860px;max-height:88vh;padding:0;border:0;border-radius:20px;overflow:hidden}
#permissionDialog::backdrop{background:rgba(15,23,42,.58)}
#permissionDialog form{display:flex;flex-direction:column;max-height:88vh;padding:20px;box-sizing:border-box}
#permissionDialogList{overflow:auto;padding:2px 4px 8px 2px}
.permission-dialog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.permission-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);box-sizing:border-box}
.permission-option input{margin:3px 0 0}.permission-option span{display:block;min-width:0}.permission-option strong,.permission-option small{display:block;overflow-wrap:anywhere;word-break:normal}.permission-option strong{line-height:1.25}.permission-option small{margin-top:4px;font-size:.76rem;line-height:1.25}
@media(max-width:900px){.user-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){#permissionDialog{width:calc(100vw - 20px);max-height:92vh}#permissionDialog form{max-height:92vh;padding:14px}.permission-dialog-list{grid-template-columns:1fr}.permission-option{padding:12px}.user-row{grid-template-columns:1fr;padding:14px}.user-actions{justify-content:stretch}.user-actions .button{width:100%}.user-active{align-self:start}.user-meta .pill{margin-top:2px}}

/* v2.6.48 – Benutzerverwaltung Desktop-Korrektur */
@media(min-width:901px){
  #usersList{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .user-row{grid-template-columns:1fr 1fr;align-items:end}
  .user-meta{grid-column:1/-1}
  .user-actions{grid-column:1/-1;justify-content:flex-start}
}
.permission-option input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  flex:0 0 18px!important;
  accent-color:#f36b21;
  opacity:1!important;
  visibility:visible!important;
}
.permission-option input[type="checkbox"]:disabled{opacity:.75!important}
@media(max-width:900px){#usersList{grid-template-columns:1fr}}

/* v2.6.49 – Benutzerkarten & erzwungener Passwortwechsel */
@media(min-width:901px){
  .user-row{grid-template-columns:minmax(0,1fr);align-items:stretch}
  .user-meta,.user-field,.user-active,.user-actions{grid-column:1}
  .user-active{min-height:auto;padding:4px 0}
  .user-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .user-actions .button{width:100%}
}

/* v2.6.50 – Zugang-aktiv-Zeile sauber ausrichten */
.user-active{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:100%!important;
  padding:6px 0!important;
  min-height:36px!important;
  box-sizing:border-box;
}
.user-active input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  margin:0!important;
  flex:0 0 18px!important;
}
.user-active span{display:inline!important;margin:0!important;white-space:normal}


/* v2.6.65 – kompakte Wartelistenkarten im Mitarbeiterportal */
.waitlist-admin-list{display:grid;gap:.75rem}
.waitlist-admin-entry{display:grid;gap:.7rem}
.waitlist-entry-head{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.waitlist-entry-name{font-size:1.05rem}
.waitlist-entry-details{display:flex;align-items:center;gap:.45rem 1.1rem;flex-wrap:wrap}
.waitlist-entry-details span{overflow-wrap:anywhere}
.waitlist-entry-meta{display:block;line-height:1.55}
.waitlist-entry-actions{display:flex;justify-content:flex-end}
.waitlist-entry-actions .button{width:auto;min-width:140px}
@media(max-width:700px){
  .waitlist-entry-details{display:grid;grid-template-columns:1fr;gap:.35rem}
  .waitlist-entry-actions{justify-content:stretch}
  .waitlist-entry-actions .button{width:100%}
}
