/* Shared administration chrome. Scoreboards and print documents use other layouts. */
.admin-search-result { display: block; padding: 12px 16px; color: #39445c; border-bottom: 1px solid #edf0f5; white-space: normal; }
.admin-search-result:hover, .admin-search-result:focus { background: #edf2ff; color: #2547a3; }
#kt_quick_search_inline { position: relative; }
#kt_quick_search_inline > .dropdown-menu.show { display: block; top: 100%; width: 100%; }
.admin-shell { --admin-border: #e4e7ed; --admin-muted: #647084; background: #f5f6f9; }
.admin-shell #kt_wrapper > .d-flex > .container { padding-top: 20px; padding-bottom: 24px; }
.admin-shell #kt_wrapper .card.card-custom { border: 1px solid var(--admin-border); border-radius: 10px; box-shadow: 0 2px 8px rgba(24,28,50,.03); }
.admin-shell #kt_wrapper .card.card-custom > .card-header { gap: 12px; align-items: center; padding: 18px 24px; min-height: 72px; }
.admin-shell #kt_wrapper .card.card-custom > .card-header .card-title { margin: 0; }
.admin-shell #kt_wrapper .card.card-custom > .card-header .card-toolbar { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-shell #kt_wrapper .card.card-custom > .card-body { padding: 24px; }
/* overflow stays visible so select/datepicker dropdowns inside a modal are not clipped at its edge;
   the header/footer round their own corners instead. The .modal itself scrolls when content is tall. */
.admin-shell .modal-content { border: 1px solid var(--admin-border); border-radius: 10px; overflow: visible; }
.admin-shell .modal-content > .modal-header:first-child, .admin-shell .modal-content > form > .modal-header:first-child { border-radius: 9px 9px 0 0; }
.admin-shell .modal-content > .modal-footer:last-child, .admin-shell .modal-content > form > .modal-footer:last-child { border-radius: 0 0 9px 9px; }
.admin-shell .modal-content .bootstrap-select > .dropdown-menu { max-width: 100%; }
.admin-shell .modal-header, .admin-shell .modal-footer { padding: 16px 24px; gap: 8px; }
.admin-shell .modal-footer { flex-wrap: wrap; border-top: 1px solid var(--admin-border); }
.admin-shell .modal-title { line-height: 1.5; font-weight: 600; }
.admin-shell .modal .form-group { margin-bottom: 20px; }
.admin-shell .form-control:focus { border-color: #6993ff; box-shadow: 0 0 0 3px rgba(105,147,255,.12); }
.admin-shell .btn:focus-visible, .admin-shell a:focus-visible { outline: 3px solid #6993ff; outline-offset: 2px; }
.admin-shell #kt_wrapper .table thead th { white-space: normal; vertical-align: middle; line-height: 1.5; }
.admin-shell #kt_wrapper .table td { vertical-align: middle; }
.admin-shell #kt_wrapper .dataTables_wrapper .dataTables_paginate { margin-top: 12px; }
.admin-shell .admin-nav-search { padding: 16px 18px 0; }
.admin-shell .admin-nav-search label { display: block; font-weight: 600; margin-bottom: 6px; }
.admin-shell #kt_aside_menu .menu-link[aria-current="page"] { background: #edf2ff; border-left: 3px solid #4263c7; }
.admin-shell #kt_aside_menu .menu-link[aria-current="page"] .menu-text { color: #2547a3; font-weight: 600; }
.admin-shell #kt_aside_menu .admin-nav-hidden { display: none !important; }
.admin-shell .admin-nav-empty { padding: 12px 18px; color: var(--admin-muted); }
.admin-shell #kt_wrapper .event-registration-card > .event-registration-card-header { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
.event-registration-status { align-self: flex-start; padding: 4px 10px; border-radius: 5px; color: #fff; font-size: 12px; font-weight: 600; }
.event-registration-heading { width: 100%; gap: 12px; align-items: flex-start !important; }
.event-registration-heading > .symbol:empty { display: none; }
.event-registration-title { min-width: 0; flex: 1; }
.event-registration-title .card-title { overflow-wrap: anywhere; line-height: 1.5; }
.event-registration-heading > .card-toolbar { flex-shrink: 0; margin: 0; }
.event-actions-toggle { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.event-actions-menu { width: 260px; max-width: calc(100vw - 32px); max-height: min(380px, calc(100vh - 120px)); overflow-y: auto; overscroll-behavior: contain; padding: 8px 0; border: 1px solid #e4e7ed; border-radius: 8px; box-shadow: 0 8px 24px rgba(24,28,50,.12); }
.event-actions-menu .navi .navi-item .navi-link { padding: 9px 16px; }
.event-actions-menu .navi .navi-header { padding: 8px 16px; }
.event-actions-menu .navi-text { white-space: normal; }
@media (max-width: 575px) {
    .event-registration-heading { flex-wrap: wrap; }
    .event-registration-title { flex-basis: calc(100% - 100px); }
    .event-registration-heading > .card-toolbar { margin-left: auto; }
}
@media (max-width: 767px) {
    .admin-shell #kt_wrapper .card.card-custom > .card-header,
    .admin-shell #kt_wrapper .card.card-custom > .card-body { padding: 16px; }
    .admin-shell .modal-header, .admin-shell .modal-footer { padding: 14px 16px; }
    .admin-shell .modal .col-form-label.text-right { text-align: left !important; }
    .admin-shell .modal-dialog { margin: 8px; }
}

/* Sticky footer: wrapper fills the viewport, content grows, footer sits at the bottom. */
.admin-shell #kt_wrapper { min-height: 100vh; }
.admin-shell #kt_wrapper > main.content { flex: 1 0 auto; }
.admin-shell #kt_wrapper > .footer { flex-shrink: 0; margin-top: auto; }

/* Event page header: breadcrumb (small, muted) > event name (title) > page label (subtitle). */
.event-page-header { padding: 26px 0 16px; }
.event-page-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; color: #98a2b3; margin-bottom: 6px; }
.event-page-crumbs a { color: #657187; }
.event-page-crumbs a:hover, .event-page-crumbs a:focus-visible { color: #187de4; text-decoration: underline; }
.event-page-title { font-size: 26px; font-weight: 700; line-height: 1.3; color: #181c32; margin: 0; overflow-wrap: anywhere; }
.event-page-subtitle { font-size: 13px; color: #7b879b; margin: 4px 0 0; }

/* Body is a fixed-height flex row (theme: height:100%), so #kt_wrapper was stretched to the viewport height and long pages overflowed it — background and footer ended mid-page. Let the body grow with its content. */
body.admin-shell { height: auto; min-height: 100%; }
body.admin-shell #kt_wrapper { min-width: 0; }

/* CRUD list pages (toolbar, row actions) */
.crud-empty { color: #b5bdca; }
/* .crud-actions (row action buttons) moved to crud-list.css with the rest of the list styles. */
.admin-shell .dataTable tbody td { vertical-align: middle; }
/* Header quick search: section headings, event date, loading spinner */
.admin-search-heading { padding: 10px 16px 6px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #8a93a9; background: #fafbfc; border-bottom: 1px solid #edf0f5; }
.admin-search-result { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.admin-search-result small { flex-shrink: 0; color: #8a93a9; font-size: 11.5px; }
.quick-search .admin-search-busy .input-group-append .input-group-text::before { content: ""; width: 16px; height: 16px; border: 2px solid #f1c0c7; border-top-color: #F64E60; border-radius: 50%; animation: admin-search-spin .7s linear infinite; }
.quick-search .admin-search-busy .quick-search-close { display: none !important; }
@keyframes admin-search-spin { to { transform: rotate(360deg); } }
