.admin-list { margin: 1.5rem 0 3rem; text-align: left; }
.admin-search { display: block; max-width: 30rem; font-weight: bold; }
.admin-search input { display: block; width: 100%; margin-top: .5rem; padding: .75rem 1rem; border: 1px solid #aebfc0; border-radius: .5rem; font: inherit; }
.admin-count { font-size: 1rem; color: #526466; }
.admin-table-scroll { overflow-x: auto; border: 1px solid #d5e1e1; border-radius: .6rem; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 1.05rem; text-align: left; }
.admin-table th { background: #eaf4f3; color: #274e50; white-space: nowrap; }
.admin-table th, .admin-table td { padding: 1rem; border-bottom: 1px solid #e1e9e9; vertical-align: top; }
.admin-table tbody tr:nth-child(even) { background: #f7faf9; }
.admin-table tbody tr:hover { background: #edf6f5; }
.admin-table small { display: block; margin-top: .35rem; }
.admin-table td { min-width: 8rem; overflow-wrap: anywhere; }
.admin-table td:last-child { min-width: 10rem; }
.admin-table a, .admin-table button { color: #17666b; text-decoration: underline; font: inherit; }
.admin-table button { display: block; background: none; border: 0; padding: .5rem 0; cursor: pointer; color: #9b3434; }
.admin-badge { display: inline-block; padding: .2rem .6rem; border-radius: 1rem; font-size: .95rem; white-space: nowrap; }
.admin-badge.is-positive { background: #dcefe4; color: #23583e; }
.admin-badge.is-muted { background: #f5e9d3; color: #74501e; }
.admin-empty { padding: 1rem; background: #f3f7f7; }
#ui-notices { position: fixed; bottom: 1rem; right: 1rem; width: min(32rem, calc(100% - 2rem)); max-height: 65vh; overflow: auto; z-index: 10000; }
.ui-notice { display: flex; align-items: start; gap: 1rem; padding: 1rem; margin-top: .5rem; background: #fff; color: #274e50; border: 1px solid #a8c6c6; border-left: 5px solid #27848a; border-radius: .5rem; box-shadow: 0 4px 24px #0002; white-space: pre-line; }
.ui-notice span { flex: 1; overflow-wrap: anywhere; }
.ui-notice button, .ui-dialog button { font: inherit; padding: .5rem .8rem; cursor: pointer; border: 1px solid #8caeae; border-radius: .35rem; background: #edf5f4; color: #274e50; }
.ui-dialog { width: min(32rem, calc(100% - 2rem)); border: 0; border-radius: .8rem; padding: 1.5rem; color: #274e50; }
.ui-dialog::backdrop { background: #16373788; }
.ui-dialog h2 { margin-top: 0; }
.ui-dialog input { display: block; width: 100%; padding: .7rem; margin-top: .75rem; font: inherit; }
.ui-dialog-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; }
.admin-list :focus-visible, .ui-dialog :focus-visible, .ui-notice :focus-visible { outline: 3px solid #23777d; outline-offset: 3px; }
.admin-table tr[hidden], .admin-empty[hidden] { display: none; }
.admin-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; }
.admin-toolbar label { font-weight: bold; }
.admin-toolbar .admin-search { flex: 1 1 18rem; }
.admin-toolbar select { display: block; margin-top: .5rem; padding: .75rem; border: 1px solid #aebfc0; border-radius: .5rem; font: inherit; background: white; color: #274e50; }
.admin-reset { padding: .75rem; border: 1px solid #aebfc0; border-radius: .5rem; font: inherit; background: #f5f9f8; cursor: pointer; color: #274e50; }
.admin-table .admin-sort { display: inline; color: inherit; text-decoration: none; font-weight: bold; padding: 0; text-align: left; }
.admin-sort::after { content: ' ↕'; color: #526466; }
th[aria-sort="ascending"] .admin-sort::after { content: ' ↑'; }
th[aria-sort="descending"] .admin-sort::after { content: ' ↓'; }
.admin-dashboard { margin: 0 0 3rem; text-align: left; }
.admin-dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.admin-dashboard-heading h2 { margin: 0; }
.admin-dashboard-heading p { margin: .4rem 0; }
.admin-dashboard a.admin-primary { background: #236f74; color: white; padding: .75rem 1rem; border-radius: .5rem; text-decoration: none; }
.admin-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.admin-metrics a { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem; border: 1px solid #cddfdf; border-radius: .75rem; background: #f0f7f6; color: #274e50; text-decoration: none; }
.admin-metrics strong { font-size: 2.5rem; line-height: 1.2; }
.admin-metrics small { font-size: 1rem; }
.admin-dashboard-note { font-size: 1rem; }
.admin-dashboard-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.admin-dashboard-panels section { border: 1px solid #d5e1e1; border-radius: .75rem; padding: 1.25rem; }
.admin-dashboard-panels h3 { margin: 0 0 .75rem; }
.admin-dashboard-panels a { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid #e1e9e9; color: #17666b; text-decoration: none; }
.admin-dashboard a:hover { text-decoration: underline; }
.admin-dashboard :focus-visible { outline: 3px solid #23777d; outline-offset: 3px; }
.booking-detail { text-align: left; padding-bottom: 3rem; }
.booking-detail .booking-back { display: inline-block; margin-bottom: 1.5rem; color: #17666b; }
.booking-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.booking-heading h2 { margin: .25rem 0; color: #274e50; }
.booking-heading p { margin: .5rem 0; }
.booking-eyebrow { font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; color: #17666b; }
.booking-badges { display: flex; gap: .5rem; flex-wrap: wrap; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.5rem; }
.booking-main, .booking-sidebar { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
.booking-panel { border: 1px solid #d5e1e1; border-radius: .75rem; padding: 1.5rem; background: #fff; }
.booking-panel h3 { margin: 0 0 1rem; color: #274e50; }
.booking-panel p { font-size: 1.05rem; line-height: 1.5; }
.booking-panel label { display: block; font-weight: bold; }
.booking-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.booking-message { margin-top: 1rem; }
#buchung-bearbeiten-bereich.booking-detail input, #buchung-bearbeiten-bereich.booking-detail select, #buchung-bearbeiten-bereich.booking-detail textarea { display: block; width: 100%; min-width: 0; border: 1px solid #aebfc0; border-radius: .45rem; padding: .7rem .8rem; margin-top: .4rem; font: inherit; font-weight: normal; color: #274e50; background: white; }
#buchung-bearbeiten-bereich.booking-detail :disabled { opacity: 1; color: #526466; background: #f3f7f6; border-color: #dbe5e4; -webkit-text-fill-color: #526466; }
#buchung-bearbeiten-bereich.booking-detail textarea { min-height: 7rem; resize: vertical; }
.booking-panel .booking-toggle { display: flex; align-items: center; gap: .8rem; padding: 1rem; margin: .75rem 0; border: 1px solid #d5e1e1; border-radius: .5rem; cursor: pointer; }
#buchung-bearbeiten-bereich.booking-detail .booking-toggle input { width: 1.25rem; height: 1.25rem; margin: 0; flex-shrink: 0; accent-color: #236f74; }
.booking-toggle small { display: block; font-weight: normal; margin-top: .25rem; }
.booking-toggle:has(input:checked) { background: #edf7f1; border-color: #8ab5a0; }
.booking-dates { grid-template-columns: 1fr; margin-top: 1.25rem; }
.booking-payment { background: #f5f9f8; overflow-wrap: anywhere; }
.booking-payment aside + aside { border-top: 1px solid #d5e1e1; padding-top: 1rem; margin-top: 1rem; }
.booking-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; padding: 1.25rem; border-radius: .75rem; background: #edf5f4; }
.booking-actions span { flex: 1 1 15rem; font-size: 1rem; }
.booking-actions button { background: #236f74; color: #fff; border: 0; border-radius: .5rem; padding: .9rem 1.25rem; cursor: pointer; font: inherit; }
.booking-detail :focus-visible { outline: 3px solid #23777d; outline-offset: 3px; }
.admin-edit .booking-panel > label + label { margin-top: 1rem; }
.admin-field-space { margin-top: 1rem; }
section.admin-edit input, section.admin-edit select, section.admin-edit textarea,
.cms-admin.admin-settings-page input:not([type=hidden]), .cms-admin.admin-settings-page select, .cms-admin.admin-settings-page textarea {
    width: 100%; max-width: 100%; min-width: 0; margin: .4rem 0 0; padding: .7rem .8rem; border: 1px solid #aebfc0; border-radius: .45rem; font: inherit; font-weight: normal; color: #274e50; background: white;
}
#kurs-bearbeiten-bereich.admin-edit input, #kurs-bearbeiten-bereich.admin-edit select,
#kurs-art-bearbeiten-bereich.admin-edit input, #kurs-art-bearbeiten-bereich.admin-edit textarea {
    margin-top: .4rem; border-color: #aebfc0; border-radius: .45rem; padding: .7rem .8rem; font: inherit; font-weight: normal;
}
.admin-edit textarea { display: block; resize: vertical; }
.admin-edit input[readonly] { background: #f3f7f6; color: #526466; }
#kurs-bearbeiten-bereich.admin-edit .booking-toggle input, #kurs-art-bearbeiten-bereich.admin-edit .booking-toggle input { width: 1.25rem; height: 1.25rem; margin: 0; flex-shrink: 0; accent-color: #236f74; }
.admin-weekdays { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.admin-weekdays .booking-toggle { margin: 0; padding: .65rem; }
.admin-weekdays small:empty { display: none; }
.admin-settings-page { text-align: left; padding-bottom: 2rem; }
.admin-settings-page .booking-back, .admin-account .booking-back { color: #17666b; display: inline-block; margin-bottom: .75rem; }
.admin-settings-page h1, .admin-settings-page h2, .admin-settings-page h3 { color: #274e50; }
.admin-settings-page .cms-editor { padding: 1.5rem; border-radius: .75rem; border-color: #d5e1e1; background: #fff; margin: 1.5rem 0; }
.admin-settings-page .cms-editor h2:first-child { margin-top: 0; }
.admin-settings-page .cms-editor summary { font-weight: bold; color: #274e50; }
.admin-settings-page .cms-editor[open] summary { padding-bottom: 1rem; border-bottom: 1px solid #d5e1e1; }
.admin-settings-page .cms-toolbar { padding: 1.25rem; background: #edf5f4; border-radius: .75rem; }
.admin-settings-page .cms-status:not(:empty) { padding: .75rem 1rem; background: #edf5f4; border-left: 3px solid #236f74; border-radius: .35rem; }
.admin-settings-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1.25rem; }
.admin-settings-fields label { min-width: 0; }
.admin-settings-page button.btn-typ-00, .admin-settings-page button.btn-typ-01 { font: inherit; padding: .8rem 1.2rem; margin-top: 1rem; border-radius: .5rem; border: 1px solid #236f74; background: #236f74; color: white; cursor: pointer; }
.admin-settings-page button.btn-typ-01 { background: white; color: #943434; border-color: #c5a2a2; }
.admin-panel-divider { border: 0; border-top: 1px solid #d5e1e1; margin: 1.5rem 0; }
.admin-settings-page :focus-visible { outline: 3px solid #23777d; outline-offset: 3px; }
#admin-konto-bereich.admin-account { max-width: 1100px; width: 85%; margin: 2rem auto 3rem; text-align: left; }
#admin-konto-bereich.admin-account > .row { padding: 1.5rem; margin: 1.5rem 0; border: 1px solid #d5e1e1; border-radius: .75rem; background: white; }
#admin-konto-bereich.admin-account > .row:first-of-type { background: #edf5f4; }
#admin-konto-bereich.admin-account .col-8 { width: 100%; padding: .35rem 0; text-align: left; }
#admin-konto-bereich.admin-account h2 { margin: 0 0 .75rem; color: #274e50; }
#admin-konto-bereich.admin-account input:not(.d-none) { display: block; width: 100%; max-width: 34rem; padding: .75rem; border: 1px solid #aebfc0; border-radius: .45rem; font: inherit; }
#admin-konto-bereich.admin-account button { margin: .35rem .5rem .35rem 0; padding: .8rem 1.2rem; border-radius: .5rem; border: 1px solid #236f74; background: #236f74; color: white; font: inherit; cursor: pointer; max-width: 100%; }
#admin-konto-bereich.admin-account button.btn-typ-01 { color: #236f74; background: white; }
#admin-konto-bereich.admin-account :focus-visible { outline: 3px solid #23777d; outline-offset: 3px; }
@media (max-width: 550px) { .admin-settings-fields { grid-template-columns: 1fr; } .admin-settings-page .cms-editor { padding: 1rem; } }
@media (max-width: 850px) { .booking-layout { grid-template-columns: 1fr; } }
@media (max-width: 550px) { .booking-fields { grid-template-columns: 1fr; } .booking-panel { padding: 1rem; } .booking-actions button { width: 100%; } }
@media (max-width: 900px) { .admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 550px) {
    .admin-dashboard-panels, .admin-metrics { grid-template-columns: 1fr; }
    .admin-toolbar > label, .admin-toolbar select { width: 100%; }
}
