/* Steinbreche · gemeinsames Anwendungsdesign
   Grundlage: public-site.css. Alle Regeln sind auf .app-site begrenzt.
   Kein globales Überschreiben der öffentlichen Startseite/Buchungsanfrage. */

body.app-site {
    --bs-body-color: #112d3b;
    --bs-body-bg: #f5f3ef;
    --bs-primary: #21586c;
    --bs-primary-rgb: 33, 88, 108;
    --bs-link-color: #21586c;
    --bs-link-hover-color: #153e4f;
    --bs-border-color: #dce3e4;
    --bs-success-rgb: 42, 100, 78;
    --bs-danger-rgb: 154, 46, 61;
    --bs-info-rgb: 33, 88, 108;
    --bs-warning-rgb: 237, 189, 120;
    --bs-secondary-rgb: 89, 109, 119;
    --app-radius: .65rem;
    --app-pad: clamp(1rem, 2.1vw, 2rem);
    --app-header-height: 84px;
    margin: 0;
    padding: 0;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    background: var(--paper);
    color: var(--ink);
    font-size: 1rem;
    line-height: 1.55;
}
.app-site .app-shell {
    width: 100%;
    max-width: 1560px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 3.2vw, 3.25rem);
    min-width: 0;
}
.app-site .app-header { flex: 0 0 auto; border-bottom: 1px solid #dce3e4; }
.app-site .app-header .navbar { padding-block: 1rem; }
.app-site .app-nav-container { display: flex; align-items: center; gap: 1.15rem; flex-wrap: nowrap; }
.app-site .public-brand img { width: 188px; height: auto; }
.app-site .app-area-label {
    font-size: .72rem; font-weight: 650; letter-spacing: .08em;
    color: #5a6f79; border-left: 1px solid #dce3e4;
    padding-left: 1.1rem; line-height: 2;
}
.app-site .app-menu { --bs-offcanvas-bg:#fff; flex: 1 1 auto; min-width: 0; }
.app-site .navbar-nav { gap: .7rem; }
.app-site .navbar .nav-link { padding: .65rem .65rem; border-radius: .3rem; font-size: .91rem; }
.app-site .navbar .nav-link.is-active { background: #edf3f4; color: var(--brand); text-decoration: none; }
.app-site .navbar .nav-link:hover { background: #f2f5f5; text-decoration: none; }
.app-site .navbar .dropdown-menu { min-width: 220px; font-size: .9rem; }
.app-site .dropdown-item { color: var(--ink); }
.app-site .dropdown-item:hover, .app-site .dropdown-item:focus { background: #edf3f4; color: var(--brand); }
.app-site .app-calendar-link { min-height: 42px; padding: .65rem 1rem; font-size: .86rem; white-space: nowrap; }
.app-site .app-calendar-link svg { flex: 0 0 auto; }
.app-site .app-main { flex: 1 0 auto; padding-block: 1.25rem 2.75rem; }
.app-site .app-context { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.35rem; min-width: 0; }
.app-site .app-breadcrumb { display: flex; flex-wrap: wrap; gap: .7rem; color: #5b717c; font-size: .79rem; }
.app-site .app-breadcrumb a { color: #536c78; text-decoration: none; }
.app-site .app-breadcrumb a:hover { text-decoration: underline; }
.app-site .app-breadcrumb > span:last-child { color: #253f4c; font-weight: 600; }
.app-site .app-session-label { display: inline-flex; align-items: center; gap: .45rem; color: #5c6e76; font-size: .74rem; white-space: nowrap; }
.app-site .app-session-dot { width: 6px; height: 6px; background: #54836e; border-radius: 50%; }

/* Arbeitsfläche. Kein Container-in-Container mit zusätzlichen Bootstrap-Maximalbreiten. */
.app-site .app-page {
    min-width: 0; background: #fff; border: 1px solid #dde3e4;
    border-radius: var(--app-radius); padding: var(--app-pad);
    box-shadow: 0 5px 18px #112d3b04;
}
.app-site .app-page > :last-child { margin-bottom: 0; }
.app-site .app-page > h1, .app-site .app-page > h2,
.app-site .app-page > header > h1, .app-site .app-page > header > h2 {
    font-size: clamp(1.55rem, 2.3vw, 2.2rem); line-height: 1.2;
    font-weight: 650; letter-spacing: -.035em; color: var(--ink);
    margin-bottom: 1.5rem !important;
}
.app-site .app-page h3 { font-size: 1.2rem; line-height: 1.45; }
.app-site .app-page h4 { font-size: 1.2rem; margin-block: 0 1rem; font-weight: 650; }
.app-site .app-page h5 { font-size: 1.05rem; font-weight: 650; }
.app-site .app-page hr { border-color: #d8e1e3; margin-block: 1.5rem; }
.app-site .text-muted { color: var(--muted) !important; }
.app-site .text-primary { color: var(--brand) !important; }
.app-site .text-danger { color: #9a2e3d !important; }
.app-site .infotext { white-space: pre-line; }

/* Gleiche Formensprache wie auf der öffentlichen Anfrage. Semantische Farben bleiben. */
.app-site .btn { min-height: 42px; padding: .65rem 1rem; font-size: .9rem; text-decoration: none; white-space: normal; }
.app-site .btn-sm { min-height: 34px; padding: .38rem .75rem; font-size: .8rem; gap: .35rem; border-radius: .3rem; }
.app-site .btn-lg { min-height: 46px; padding: .75rem 1.25rem; font-size: 1rem; }
.app-site .btn-primary { color: #fff; }
.app-site .btn-success { --bs-btn-color:#fff; --bs-btn-bg:#2a644e; --bs-btn-border-color:#2a644e; --bs-btn-hover-bg:#1c4d3a; --bs-btn-hover-border-color:#1c4d3a; --bs-btn-active-bg:#1c4d3a; --bs-btn-active-border-color:#1c4d3a; color:#fff; }
.app-site .btn-danger { --bs-btn-color:#fff; --bs-btn-bg:#9a2e3d; --bs-btn-border-color:#9a2e3d; --bs-btn-hover-bg:#7c2330; --bs-btn-hover-border-color:#7c2330; --bs-btn-active-bg:#7c2330; --bs-btn-active-border-color:#7c2330; color:#fff; }
.app-site .btn-info { --bs-btn-bg:#e8f0f3; --bs-btn-border-color:#cbdce2; --bs-btn-color:#21586c; --bs-btn-hover-bg:#d8e8ee; --bs-btn-hover-border-color:#9dbdcb; color:#21586c; }
.app-site .btn-warning { --bs-btn-bg:#edbd78; --bs-btn-border-color:#edbd78; --bs-btn-color:#3f321e; --bs-btn-hover-bg:#e5ab59; --bs-btn-hover-border-color:#e5ab59; color:#3f321e; }
.app-site .btn-outline-secondary { --bs-btn-color:#48606c; --bs-btn-border-color:#cbd5d9; --bs-btn-hover-bg:#edf2f3; --bs-btn-hover-border-color:#9bb0ba; --bs-btn-hover-color:#112d3b; --bs-btn-active-bg:#e0e9ec; --bs-btn-active-color:#112d3b; }
.app-site .btn-outline-primary { color:var(--brand); }
.app-site .btn-outline-primary:hover { color:#fff; }
.app-site .btn-outline-info { --bs-btn-color:#21586c; --bs-btn-border-color:#c4d9e2; --bs-btn-hover-bg:#e8f0f3; --bs-btn-hover-border-color:#91b4c2; --bs-btn-hover-color:#153e4f; }
.app-site .btn-outline-danger { --bs-btn-color:#9a2e3d; --bs-btn-border-color:#dec5ca; --bs-btn-hover-bg:#9a2e3d; --bs-btn-hover-border-color:#9a2e3d; --bs-btn-hover-color:#fff; }
.app-site .btn-outline-danger:hover { color:#fff; }
.app-site .btn-link { color:var(--brand); background:transparent; border:0; box-shadow:none; text-decoration:underline; }
.app-site .btn:disabled, .app-site .btn.disabled { opacity:.55; }
.app-site .btn:focus-visible { outline-offset: 2px; }
.app-site .app-page .d-flex.gap-2 { flex-wrap: wrap; }

/* Eingaben, Dropdowns, Checkboxen, Validierung */
.app-site .app-page .form-label { display: block; font-size:.84rem; font-weight:600; color:#344f5b; margin-bottom:.32rem; line-height:1.4; }
.app-site .form-label.required::after { content:" *"; color:#9a2e3d; font-weight:700; }
.app-site .form-control, .app-site .form-select {
    color:#173e50; background-color:#fff; border-color:#cfdadd;
    border-radius:.35rem; min-height:44px; font-size:.92rem;
    line-height:1.5; padding:.62rem .8rem; max-width:100%;
    transition:border-color .18s, box-shadow .18s;
}
.app-site .form-select { padding-right:2.4rem; }
.app-site .form-control::placeholder { color:#788d97; opacity:1; }
.app-site .form-control:focus, .app-site .form-select:focus { border-color:#618a9a; box-shadow:0 0 0 3px #21586c19; background-color:#fff; }
.app-site .form-control[readonly], .app-site .form-control:disabled,
.app-site .form-select:disabled { background:#f1f4f5; color:#607985; border-color:#d8e1e4; }
.app-site textarea.form-control { min-height:110px; resize:vertical; }
.app-site input[type="date"], .app-site input[type="time"], .app-site input[type="datetime-local"] { min-width:0; }
.app-site input[type="number"] { font-variant-numeric:tabular-nums; }
.app-site .form-control.mandatory, .app-site .form-select.mandatory { border-left:3px solid #c7a578; }
.app-site .form-control.input-validation-error, .app-site .form-select.input-validation-error { border-color:#ad3a49; }
.app-site .field-validation-error { color:#9a2e3d; font-size:.8rem; line-height:1.5; display:block; margin-top:.35rem; }
.app-site .field-validation-valid { display:none; }
.app-site .validation-summary-errors { padding:1rem 1.15rem; margin-bottom:1.25rem; border:1px solid #e3c3c9; background:#fbf0f2; border-radius:.45rem; font-size:.9rem; }
.app-site .validation-summary-errors ul { margin:0; padding-left:1.15rem; }
.app-site .validation-summary-valid { display:none; }
.app-site .form-text { color:var(--muted); font-size:.79rem; margin-top:.35rem; }
.app-site .app-page .row.g-3 { --bs-gutter-y:1.05rem; --bs-gutter-x:1.35rem; }
.app-site .app-page .row.g-3 + .row.g-3 { margin-top:.2rem; }
.app-site .app-page .row.g-3 + .mb-3 { margin-top:1.25rem; }
.app-site .app-page .row > [class*="col"] { min-width:0; }
.app-site .app-page .form-check { padding-left:1.6rem; min-height:1.5rem; }
.app-site .form-check-input { width:1.05rem; height:1.05rem; margin-top:.2em; border-color:#99aebb; flex-shrink:0; cursor:pointer; }
.app-site .form-check .form-check-input { margin-left:-1.6rem; }
.app-site .form-check-input:checked { background-color:var(--brand); border-color:var(--brand); }
.app-site .form-check-input:focus { box-shadow:0 0 0 3px #21586c20; border-color:#618a9a; }
.app-site .form-check-input:disabled { cursor:default; }
.app-site .form-check-label { color:#344f5b; font-size:.9rem; line-height:1.5; cursor:pointer; }
.app-site .form-switch { padding-left:2.7rem; }
.app-site .form-switch .form-check-input { width:2rem; margin-left:-2.7rem; }
.app-site .app-page .row > [class*="col"]:has(> .form-check-input) { align-self:center; }
.app-site .app-page .row > [class*="col"] > .form-check-input { float:none; margin-left:0; margin-top:0; vertical-align:middle; }
.app-site .app-page .row > [class*="col"] > .form-label + .form-check { min-height:44px; display:flex; align-items:center; padding-left:0; margin-top:0 !important; }
.app-site .app-page .row > [class*="col"] > .form-label + .form-check .form-check-input { float:none; margin:0 .55rem 0 0; }
.app-site .form-floating > .form-control { min-height:58px; }
.app-site .form-floating > .form-label { margin:0; padding:1rem .8rem; }
.app-site .form-floating > .form-control:focus, .app-site .form-floating > .form-control:not(:placeholder-shown) { padding-top:1.625rem; padding-bottom:.625rem; }

/* Bestehende Cards, Dialoge, Filter. */
.app-site .card { --bs-card-bg:#fff; background-color:#fff; border-color:#dce3e4; border-radius:var(--app-radius); box-shadow:0 4px 15px #112d3b04; }
.app-site .card-body { padding:1.5rem; }
.app-site .card-footer { padding:1rem 1.5rem; border-color:#e1e7e8; background:#f7f8f8; border-radius:0 0 var(--app-radius) var(--app-radius); display:flex; flex-wrap:wrap; gap:.6rem; }
.app-site .app-page > form.card { box-shadow:none !important; border:0; }
.app-site .app-page > form.card > .card-body { padding:0 0 1.5rem; }
.app-site .app-page > form.card > .card-footer { padding:1.1rem 0 0; background:transparent; }
.app-site .app-page > form.card.card-body { padding:0; }
.app-site .app-page > form[method="get"] {
    background:#f3f5f5; border:1px solid #e2e7e8; border-radius:.5rem;
    padding:1.1rem; margin:1.25rem 0 1.5rem !important;
    align-items:flex-end; --bs-gutter-x:.9rem; --bs-gutter-y:.8rem;
}
.app-site .app-page > form[method="get"] > .col-auto { min-width:145px; }
.app-site .app-page > form[method="get"] > .col-auto:has(button) { min-width:0; display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.app-site .app-page > form[method="get"] > .col-auto > br { display:none; }
.app-site .app-page > form[method="get"] .form-control, .app-site .app-page > form[method="get"] .form-select { min-height:42px; }
.app-site .alert { border-radius:.5rem; padding:1.05rem 1.2rem; font-size:.94rem; }
.app-site .alert-warning { --bs-alert-color:#735021; --bs-alert-bg:#f7f0e4; --bs-alert-border-color:#ead9b9; }
.app-site .alert-info { --bs-alert-color:#21586c; --bs-alert-bg:#eef4f6; --bs-alert-border-color:#d0e1e6; }
.app-site .alert-success { --bs-alert-color:#24563f; --bs-alert-bg:#edf5f0; --bs-alert-border-color:#c9dfd1; }
.app-site .alert-danger { --bs-alert-color:#872938; --bs-alert-bg:#fbf0f2; --bs-alert-border-color:#e8c8cf; }
.app-site .modal-content { --bs-modal-bg:#fff; background-color:#fff; border-radius:.75rem; border-color:#dce3e4; box-shadow:0 20px 80px #112d3b30; }
.app-site .modal-header, .app-site .modal-footer { border-color:#dce3e4; padding:1.1rem 1.4rem; }
.app-site .modal-body { padding:1.4rem; }
.app-site .modal-title { font-size:1.25rem; letter-spacing:-.02em; }
.app-site .modal-body h2 { font-size:1.25rem; }
.app-site .list-group-item { border-color:#dde5e7; }

/* Buchungseditor: dieselben ruhigen Abschnittskarten wie die Anfrage. */
.app-site .app-page:has(.app-booking-edit) { padding:0; background:transparent; border:0; box-shadow:none; }
.app-site .app-page:has(.app-booking-edit) > h3 { padding:.85rem 1rem; border:1px solid #ead9b9; border-radius:.5rem; background:#f7f0e4; color:#735021; font-size:.95rem; }
.app-site .app-total-summary { background:#fff; border:1px solid #dce3e4; border-left:4px solid #21586c; padding:1.2rem 1.5rem; margin-bottom:1.5rem; }
.app-site .app-total-summary #totalPrice { color:#112d3b; font-size:2rem; font-weight:700; line-height:1.3; font-variant-numeric:tabular-nums; }
.app-site .app-total-summary .small { color:#5e7480 !important; font-size:.8rem; }
.app-site .app-form-section { background:#fff; border:1px solid #dce3e4; border-radius:var(--app-radius); padding:var(--app-pad); margin-bottom:1.5rem; counter-increment:form-section; }
.app-site .app-booking-edit { counter-reset:form-section; }
.app-site .app-form-section > h4 { display:flex; align-items:center; gap:.75rem; color:#112d3b !important; margin-bottom:1.1rem; }
.app-site .app-form-section > h4::before { content:counter(form-section, decimal-leading-zero); display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; background:#edf3f4; color:#21586c; font-size:.73rem; border-radius:.3rem; letter-spacing:0; }
.app-site .app-form-section > p { font-size:.86rem; color:var(--muted) !important; }
.app-site .app-form-section > .row.mt-1 > .col { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.app-site .app-form-actions { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; padding:1.2rem 1.4rem; background:#fff; border:1px solid #dce3e4; border-radius:var(--app-radius); }
.app-site .app-booking-edit .list-group { gap:.55rem; max-width:740px; }
.app-site .app-booking-edit .list-group > .form-check { display:flex; align-items:center; padding:.75rem .9rem; gap:.55rem; border:1px solid #d9e3e6; border-radius:.35rem; margin:0; }
.app-site .app-booking-edit .list-group .form-check-input { margin:0; float:none; }
.app-site .app-booking-edit .list-group .form-check-label { flex:1; }
.app-site .app-booking-edit .list-group .form-check-label .text-muted { float:right; margin-left:1rem; font-variant-numeric:tabular-nums; font-weight:600; }
.app-site .app-booking-edit .list-group > .form-check:has(.form-check-input:checked) { background:#f0f6f6; border-color:#9ebabf; }

/* Tom Select: vorhandene Funktion bleibt unverändert. */
.app-site .ts-wrapper { min-width:0; max-width:100%; }
.app-site .ts-wrapper.single .ts-control { min-height:44px; border-color:#cfdadd; border-radius:.35rem; padding:.62rem 2.4rem .62rem .8rem; font-size:.92rem; color:#173e50; line-height:1.5; }
.app-site .ts-wrapper.focus .ts-control { border-color:#618a9a; box-shadow:0 0 0 3px #21586c19; }
.app-site .ts-dropdown { border-color:#d3dfe3; border-radius:.35rem; box-shadow:0 12px 24px #112d3b16; color:#173e50; font-size:.9rem; }
.app-site .ts-dropdown .active { background:#e9f1f4; color:#173e50; }
.app-site .ts-dropdown .option { padding:.55rem .8rem; }
.app-site .ts-control > input { font-size:.92rem; min-width:0; }

/* Tabellen bleiben Tabellen: keine Flex-/Block-Umbauten an tr/td. */
.app-site .app-table-scroll { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid #dde5e7; border-radius:.45rem; margin-block:1rem; }
.app-site .app-table-scroll.has-overflow { border-bottom:3px solid #c6d9df; }
.app-site .app-table-scroll.has-overflow::before { content:"Tabelle seitlich verschieben ↔"; display:block; width:max-content; max-width:100%; padding:.45rem .8rem; color:#526e7a; font-size:.74rem; }
.app-site .app-table-scroll:focus-visible { outline:2px solid #a96000; outline-offset:3px; }
.app-site .table { --bs-table-color:#263f4c; --bs-table-bg:#fff; --bs-table-border-color:#e2e8ea; --bs-table-striped-bg:#f7f9f9; --bs-table-hover-bg:#f0f5f6; --bs-table-hover-color:#112d3b; margin:0; font-size:.88rem; line-height:1.5; }
.app-site .table > :not(caption) > * > * { padding:.85rem .9rem; box-shadow:none; color:var(--bs-table-color); background-color:var(--bs-table-bg); }
.app-site .table thead { --bs-table-bg:#edf2f3; --bs-table-color:#365260; }
.app-site .table thead th { font-size:.76rem; font-weight:650; letter-spacing:.025em; white-space:nowrap; border-bottom:1px solid #d4e0e3; }
.app-site .table tbody tr:hover > td { background-color:#f5f8f9; }
.app-site .table td { overflow-wrap:break-word; min-width:90px; }
.app-site .table td.text-end { font-variant-numeric:tabular-nums; white-space:nowrap; }
.app-site .table td:has(> .btn) { white-space:nowrap; }
.app-site .table td > .btn { margin-block:.12rem; white-space:nowrap; }
.app-site .table td:has(> .btn + .btn) { min-width:200px; }
.app-site [data-page="/Admin/Bookings/Index"] .table td:nth-child(2),
.app-site [data-page="/Admin/Bookings/Index"] .table td:last-child { white-space:nowrap; }
.app-site .table .table-secondary { --bs-table-bg:#eaf1f3; --bs-table-color:#143d4e; }
.app-site .table .table-dark { --bs-table-bg:#112d3b; --bs-table-color:#fff; }
.app-site .table tr.table-secondary:hover > td { background:#eaf1f3; }
.app-site .table tr.table-dark:hover > td { background:#112d3b; color:#fff; }
.app-site .table.table-striped tbody tr:nth-of-type(odd):not(.table-dark):not(.table-secondary) > td { background:#f8fafa; }
.app-site .app-status { display:inline-block; font-size:.75rem; line-height:1.4; border-radius:.3rem; padding:.3rem .6rem; font-weight:600; background:#eff2f3; color:#405b67; white-space:nowrap; border:1px solid transparent; }
.app-site .app-status[data-status="Anfrage"] { background:#faf0df; color:#785024; border-color:#f0ddba; }
.app-site .app-status[data-status="Gebucht"] { background:#eaf4ee; color:#286044; border-color:#cfe4d8; }
.app-site .app-status[data-status="Geblockt"], .app-site .app-status[data-status="InternGeblockt"] { background:#f8e9ed; color:#97374a; border-color:#ebd1d9; }
.app-site .app-status[data-status="Vorgemerkt"] { background:#eaf0f7; color:#345a7d; }
.app-site .app-status[data-status="Abgelehnt"], .app-site .app-status[data-status="Storniert"] { background:#f0f0ef; color:#626c6e; }
.app-site .progress { background:#edf1f1; border-radius:8px; }
.app-site .progress-bar { background:#21586c; }
.app-site .badge.text-bg-danger { background:#f7e8ec !important; color:#933749 !important; }
.app-site .badge.text-bg-success { background:#e7f2eb !important; color:#285e43 !important; }

/* Kompakte Kalenderdarstellung, gleiche Spaltenbreiten, alle Daten/Links erhalten. */
.app-site .app-schedule-toolbar { border:1px solid #dce5e8; border-radius:.5rem; padding:1rem; background:#f3f6f6; }
.app-site .app-schedule-toolbar .btn { min-height:38px; padding:.5rem .85rem; }
.app-site .app-period-controls { min-width:0; row-gap:.7rem; }
.app-site .app-period-controls .form-select { min-width:170px; max-width:260px; min-height:40px; }
.app-site .app-period-controls .form-label { display:inline; font-size:.8rem; white-space:nowrap; }
.app-site .app-toolbar-spacer { width:.65rem; }
.app-site .month-view > div:first-child h5 { margin:1rem 0 .7rem; font-size:1.25rem; letter-spacing:-.02em; }
.app-site .month-view table { table-layout:fixed; width:100%; height:auto; }
.app-site .month-view table th { text-align:center; font-size:.78rem; background:#edf2f3; color:#365260; padding:.7rem .3rem; }
.app-site .month-view td { vertical-align:top; min-width:0; height:105px; padding:.55rem .5rem; background:#fff; font-size:.85rem; border-color:#e0e7e9; }
.app-site .month-view td.bg-light { background:#f3f4f3 !important; }
.app-site .month-view td.empty { background:#f8f9f8; }
.app-site .month-view .app-day-heading { color:#284652 !important; margin-bottom:.4rem; font-variant-numeric:tabular-nums; }
.app-site .month-view .app-cal-free, .app-site .month-view .app-cal-booked,
.app-site .month-view .app-cal-request, .app-site .month-view .app-cal-event, .app-site .month-view .app-cal-series { padding:.25rem .35rem !important; border-radius:.2rem; font-size:.73rem; line-height:1.4; overflow-wrap:anywhere; }
.app-site .month-view .app-cal-free { background:#e8f3ec; color:#285e43 !important; }
.app-site .month-view .app-cal-booked { background:#f7e8ec; color:#953448 !important; }
.app-site .month-view .app-cal-request { background:#faf0df; color:#785024 !important; }
.app-site .month-view .app-cal-event { background:#eaf1f5; color:#244f63 !important; border-left:3px solid #507f94; }
.app-site .month-view .app-cal-series { background:#f6f0e5 !important; color:#77562b !important; border-left:3px solid #c49c5e; }
.app-site .month-view .month-request-btn { display:block; width:100%; height:auto; min-height:25px; padding:.15rem .2rem; margin:.3rem 0 0; border:1px solid transparent; border-radius:.25rem; color:#57727e; background:transparent; font-size:.71rem; line-height:1.35; text-align:center; text-decoration:none !important; }
.app-site .month-view .month-request-btn:hover, .app-site .month-view .month-request-btn:focus-visible { color:#fff; background:#21586c; border-color:#21586c; }
.app-site .month-view td br { line-height:1; }
.app-site .week-view.table-responsive { overflow:visible; }
.app-site .week-view table { min-width:800px; table-layout:fixed; }
.app-site .week-view td, .app-site .week-view th { padding:0 !important; margin:0 !important; text-align:center; vertical-align:middle; border-color:#dbe5e8; min-width:0; }
.app-site .week-view thead th { background:#edf2f3; color:#365260; padding:.65rem .3rem !important; }
.app-site .week-view tr.time-row { height:25px; }
.app-site .week-view tbody th { background:#f4f6f6; color:#637984; font-size:.7rem; width:70px; }
.app-site .week-view td.timeslot.can-request { background:#f1f7f3; color:#34674b; }
.app-site .week-view td.timeslot.not-available { background:#f6e6eb; color:#823246; }
.app-site .week-view td.timeslot a { display:block; width:100%; min-height:24px; line-height:24px; padding:0 .3rem; color:inherit; text-decoration:none; font-size:.71rem; white-space:normal; }
.app-site .week-view td.timeslot a:hover, .app-site .week-view td.timeslot a:focus-visible { background:#21586c; color:#fff; }
.app-site .week-view td.timeslot span.text-white { color:#823246 !important; }
.app-site .app-calendar-page .app-table-scroll { margin-bottom:0; }
.app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid { grid-template-columns:repeat(7,minmax(0,1fr)) !important; }
.app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid > div { min-width:0; }
.app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid .d-flex { flex-wrap:wrap; gap:.25rem; }
.app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid .small { font-size:.68rem; overflow-wrap:anywhere; }

/* Benutzerkonto: dasselbe Design, schmaler Formularbereich. */
.app-site.app-account-page .app-main { max-width:700px; padding-top:2rem; padding-bottom:4rem; }
.app-site.app-account-page .app-page { padding:clamp(1.35rem,4vw,2.75rem); }
.app-site.app-account-page .app-page > .row > .col-md-4 { width:100%; }
.app-site.app-account-page .app-page h2 { font-size:1rem; font-weight:400; line-height:1.5; color:var(--muted); letter-spacing:0; }
.app-site .app-login-card { border:0; box-shadow:none; }
.app-site .app-login-card > .card-body { padding:0; }
.app-site .app-login-card h1 { font-size:2rem; margin-bottom:1.6rem !important; color:var(--ink); letter-spacing:-.035em; }
.app-site .app-form-eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; font-weight:700; color:#526f7d; margin-bottom:.75rem; }

/* Kompakter Footer im Dokumentfluss: verdeckt keine Felder/Aktionen. */
.app-site .app-footer { background:#0c2431; color:#c8d6dc; margin-top:auto; flex:0 0 auto; }
.app-site .app-footer-inner { padding-block:1.2rem; display:flex; align-items:center; flex-wrap:wrap; gap:1.5rem; }
.app-site .app-footer-brand { letter-spacing:.13em; font-size:.83rem; color:#edf2f4; font-weight:650; line-height:1.6; }
.app-site .app-footer-brand span { display:block; font-size:.58rem; letter-spacing:.23em; color:#b2c7d0; }
.app-site .app-footer small { font-size:.72rem; }
.app-site .app-footer-links { margin-left:auto; display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:1rem; }
.app-site .app-footer-links a, .app-site .app-footer-button { color:#d8e2e6; font-size:.77rem; padding:.45rem 0; text-decoration:none; min-height:32px; }
.app-site .app-footer-links a:hover, .app-site .app-footer-button:hover { color:#fff; text-decoration:underline; }
.app-site .app-footer-links form { margin:0; }
.app-site .app-footer-button, .app-site .app-footer-links .app-login-link { border:1px solid #587281; border-radius:.3rem; background:transparent; padding:.35rem .85rem; }

@media (min-width:1600px) {
    .app-site .app-shell { max-width:1760px; }
}
@media (max-width:1199.98px) {
    .app-site .app-nav-container { flex-wrap:nowrap; gap:1rem; }
    .app-site .public-header-actions { margin-left:auto; }
    .app-site .app-menu { width:min(360px,92vw); }
    .app-site .offcanvas-header { padding:1.4rem; border-bottom:1px solid #dce3e4; }
    .app-site .offcanvas-title { margin:0; font-size:1.25rem; }
    .app-site .app-menu .offcanvas-body { padding:1rem 1.25rem; }
    .app-site .app-menu .navbar-nav { align-items:stretch; gap:.35rem; width:100%; }
    .app-site .app-menu .nav-link { width:100%; text-align:left; min-height:44px; }
    .app-site .app-menu .dropdown-menu { box-shadow:none; border:0; background:#f4f7f7; margin:0 0 .7rem; }
    .app-site .app-menu .dropdown-item { min-height:44px; display:flex; align-items:center; }
}
@media (max-width:767.98px) {
    body.app-site { --app-pad:1.2rem; }
    .app-site .app-shell { padding-inline:1rem; }
    .app-site .public-brand img { width:153px; }
    .app-site .app-area-label { display:none; }
    .app-site .app-main { padding-top:1rem; }
    .app-site .app-context { margin-bottom:1rem; }
    .app-site .app-session-label { font-size:.68rem; }
    .app-site .app-page > form[method="get"] { padding:.7rem .7rem 1rem; }
    .app-site .app-page > form[method="get"] > [class*="col"] { width:50%; flex:0 0 50%; min-width:0; }
    .app-site .app-page > form[method="get"] > [class*="col"]:has(button) { width:100%; flex-basis:100%; }
    .app-site .app-page > form[method="get"] > [class*="col"]:has(button) .btn { flex:1; }
    .app-site .table { font-size:.82rem; }
    .app-site .table > :not(caption) > * > * { padding:.75rem .7rem; }
    .app-site .app-table-scroll:not(.app-calendar-scroll) > table { min-width:620px; }
    .app-site .btn-sm { min-height:38px; }
    .app-site .app-schedule-toolbar { align-items:flex-start !important; }
    .app-site .app-period-controls { width:100%; }
    .app-site .app-period-controls .app-toolbar-spacer { display:none; }
    .app-site .app-period-controls .form-select { flex:1; min-width:140px; max-width:none; width:auto !important; }
    .app-site .app-period-controls .form-label { margin:0 !important; }
    .app-site.app-authenticated .month-view table { min-width:650px; }
    .app-site .month-view td { height:84px; padding:.3rem .25rem; }
    .app-site .month-view .app-cal-free, .app-site .month-view .app-cal-booked, .app-site .month-view .app-cal-request { padding:.2rem .06rem !important; text-align:center; font-size:.65rem; }
    .app-site.app-guest .month-view .month-request-btn { font-size:.62rem; padding:.2rem 0; white-space:nowrap; letter-spacing:-.025em; }
    .app-site .app-footer-inner { gap:.7rem 1.4rem; }
    .app-site .app-footer-links { width:100%; margin-left:0; justify-content:flex-start; gap:.7rem 1rem; }
}
@media (max-width:479.98px) {
    .app-site .public-brand img { width:125px; }
    .app-site .app-header .navbar { padding-block:.85rem; }
    .app-site .app-nav-container { gap:.7rem; }
    .app-site .public-header-actions { gap:.5rem; }
    .app-site .app-calendar-link { font-size:.76rem; padding:.55rem .65rem; min-height:40px; }
    .app-site .app-calendar-link svg { display:none; }
    .app-site .navbar-toggler { width:40px; height:40px; }
    .app-site .app-page { padding:1rem; }
    .app-site .app-page .row.g-3 { --bs-gutter-x:1rem; }
    .app-site .app-page > form[method="get"] > [class*="col"] { width:100%; flex-basis:100%; }
    .app-site .app-form-section { padding:1rem; }
    .app-site .app-form-actions { padding:1rem; gap:.5rem; }
    .app-site .app-form-actions .btn { flex:1 1 calc(50% - .5rem); }
    .app-site .app-schedule-toolbar { padding:.65rem; }
    .app-site .app-period-controls .form-label { width:100%; }
    .app-site.app-guest .app-calendar-page, .app-site.app-guest.app-calendar-page .app-page { min-width:0; }
    .app-site.app-guest.app-calendar-page .app-page { padding:.6rem; }
    .app-site.app-guest .month-view td { padding:.3rem .1rem; height:72px; }
    .app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid .badge { font-size:.56rem; padding:.25rem .12rem; }
    .app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid > div[style] { padding:.2rem !important; }
    .app-site [data-page="/Admin/Reports/Occupancy"] > .d-grid .small { font-size:.55rem; }
    .app-site.app-account-page .app-main { padding-top:1rem; }
}
@media (prefers-reduced-motion:reduce) {
    .app-site *, .app-site *::before, .app-site *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
@media print {
    .app-site .app-header, .app-site .app-footer, .app-site .app-context, .app-site .skip-link { display:none; }
    .app-site { background:#fff; }
    .app-site .app-shell { max-width:none; padding:0; }
    .app-site .app-page, .app-site .app-form-section { box-shadow:none; border-color:#aaa; }
    .app-site .app-table-scroll { overflow:visible; border:0; }
    .app-site .app-table-scroll::before { display:none !important; }
    .app-site .table { font-size:9pt; }
    .app-site .table thead { display:table-header-group; }
    .app-site .table tr { break-inside:avoid; }
    .app-site.app-authenticated .month-view table, .app-site .week-view table { min-width:0; }
}

.app-site .app-calendar-action-icon { display:none; }
@media (max-width:359.98px) {
    .app-site.app-guest .app-calendar-action-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
    .app-site.app-guest .app-calendar-action-icon { display:inline; font-size:1rem; }
}
