@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
:root{--rr-red:#b52118;--rr-ink:#242529;--rr-muted:#656870;--rr-line:#e4e5e8;--bs-primary:#b52118;--bs-primary-rgb:181,33,24;--dxbl-primary:#b52118;--dxbl-primary-hover:#941a14;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--rr-ink);background:#f5f6f8}
*{box-sizing:border-box}body{margin:0;background:#f5f6f8;color:var(--rr-ink);font-family:Segoe UI,Arial,sans-serif;font-size:14px}a{color:var(--rr-red);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}:focus-visible{outline:3px solid #b52118;outline-offset:3px}.material-icons{font-size:22px;vertical-align:middle;flex-shrink:0}.rr-shell{display:flex;min-height:100vh}.rr-sidebar{width:246px;flex-shrink:0;background:#252629;color:#fff;display:flex;flex-direction:column;padding:28px 18px;position:sticky;top:0;height:100vh}.rr-brand{display:flex;align-items:center;gap:13px;color:#fff;font-size:18px;font-weight:750;letter-spacing:1px;padding:0 4px 36px}.rr-brand img{width:62px;height:54px;object-fit:contain}.rr-brand small{display:block;font-size:11px;font-weight:400;color:#c7c7c9;letter-spacing:1.5px;margin-top:5px;text-transform:uppercase}.rr-nav-label{font-size:10px;letter-spacing:1.7px;color:#a6a7ad;padding:12px}.rr-sidebar nav{display:grid;gap:6px}.rr-sidebar nav a{display:flex;gap:13px;align-items:center;padding:13px 15px;color:#dddfe3;border-radius:7px}.rr-sidebar nav a.active{background:#b52118;color:#fff}.rr-sidebar nav a:hover{background:#393a3e;text-decoration:none}.rr-sidebar nav a.active:hover{background:#941a14}.rr-sidebar-foot{margin-top:auto;padding:24px 12px 0;border-top:1px solid #424347;font-size:13px}.rr-sidebar-foot small{display:block;color:#aeb0b5;font-size:11px;margin-top:7px;line-height:1.6}.rr-workspace{flex:1;min-width:0;display:flex;flex-direction:column}.rr-topbar{min-height:74px;background:#fff;border-bottom:1px solid var(--rr-line);display:flex;align-items:center;justify-content:space-between;padding:16px 36px;gap:18px}.rr-topbar>span{font-weight:600}.rr-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.rr-actions a{display:flex;align-items:center;gap:8px;color:#555860}.rr-main{padding:38px;max-width:1500px;width:100%;margin:auto;flex:1}.rr-eyebrow{color:var(--rr-red);font-size:11px;letter-spacing:1.8px;font-weight:700;text-transform:uppercase;margin-bottom:10px}h1{font-size:30px;font-weight:650;letter-spacing:-.7px;margin:0 0 10px}h2{font-size:19px;font-weight:600;margin:0 0 12px}p{line-height:1.65}.rr-subtitle{color:var(--rr-muted);margin:0 0 28px}.rr-card{background:white;border:1px solid var(--rr-line);border-radius:10px;padding:25px;margin-bottom:22px}.rr-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.rr-card .material-icons{color:var(--rr-red);margin-bottom:15px}.rr-card p{color:var(--rr-muted)}.rr-hero{background:#fff;border:1px solid var(--rr-line);border-left:4px solid var(--rr-red);border-radius:10px;padding:30px;margin-bottom:26px}.rr-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.rr-form{max-width:650px}.rr-field{margin-bottom:18px}.rr-field label{display:block;font-weight:600;margin-bottom:7px}.rr-status{padding:14px 18px;background:#f0f3f5;border-left:3px solid var(--rr-red);margin:0 0 20px;white-space:pre-line}.rr-danger{border-color:#b52118;background:#fff9f8}.rr-footer{padding:18px 38px;border-top:1px solid var(--rr-line);font-size:10px;letter-spacing:1px;color:#75777e}.rr-footer span{float:right;letter-spacing:0}.rr-skip{position:absolute;top:-80px;left:20px;background:white;padding:15px;z-index:1000}.rr-skip:focus{top:10px}.rr-muted{color:var(--rr-muted)}.rr-button,.btn-primary{display:inline-block;background:#b52118;color:white;padding:10px 18px;border:1px solid #b52118;border-radius:5px}.rr-button:hover{color:white;background:#941a14}.main-content{max-width:470px;margin:35px auto}.block-content{background:#fff;border:1px solid var(--rr-line);border-radius:10px;padding:32px}.title-header-text{font-size:28px;font-weight:650;margin-bottom:10px}.title-content-text{color:var(--rr-muted);margin-bottom:24px}.links-container{display:flex;justify-content:space-between;gap:16px;margin:20px 0}.form-control{width:100%;padding:10px;border:1px solid #b8bbc2;border-radius:5px}.mb-3{margin-bottom:18px}.w-100{width:100%}.text-danger,.validation-message{color:#a71d16}.validation-summary-errors{color:#a71d16}#blazor-error-ui{display:none;position:fixed;bottom:0;background:#fff0cc;padding:15px;width:100%;z-index:1000}#blazor-error-ui .dismiss{margin-left:20px;cursor:pointer}
@media(max-width:1000px){.rr-cards{grid-template-columns:1fr}.rr-main{padding:25px}.rr-sidebar{width:205px}.rr-brand{font-size:15px;gap:8px}.rr-brand img{width:48px}}
@media(max-width:650px){.rr-shell{display:block}.rr-sidebar{position:static;width:100%;height:auto;padding:14px 18px}.rr-brand{padding:0 0 14px}.rr-brand img{height:40px}.rr-nav-label,.rr-sidebar-foot{display:none}.rr-sidebar nav{display:flex;flex-wrap:wrap}.rr-sidebar nav a{padding:10px 14px}.rr-topbar{padding:14px 20px;align-items:flex-start}.rr-topbar>span{display:none}.rr-main{padding:24px 18px}.rr-card,.rr-hero{padding:20px}.rr-toolbar{align-items:flex-start;flex-wrap:wrap}h1{font-size:26px}.rr-footer{padding:18px}.block-content{padding:24px}}

.alert{padding:14px;margin-bottom:20px;border-radius:5px}.alert-danger{background:#fff0ee;color:#a71d16}.alert-success{background:#eff6ee;color:#295326}

/* Shared user directory actions and full-height editor. */
.rr-row-actions { display: flex; align-items: center; gap: 6px; }
.rr-icon-button { min-width: 36px; min-height: 36px; padding: 6px; }
.rr-row-actions .material-icons { margin: 0; color: inherit; font-size: 20px; }
.rr-user-window { border-radius: 0 !important; margin: 0 !important; animation: rr-user-window-enter 220ms ease-out; }
.rr-user-window-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; width: 100%; padding: 12px 8px; }
.rr-user-window-header h2 { margin: 0; font-size: 20px; }
.rr-user-window-header .rr-actions { gap: 8px; }
.rr-form-action:not(:disabled):not([aria-disabled="true"]):hover { cursor: pointer; }
.rr-user-window-body { padding: 24px; overscroll-behavior: contain; }
@keyframes rr-user-window-enter { from { translate: 100% 0; } to { translate: 0 0; } }
@media (prefers-reduced-motion: reduce) { .rr-user-window { animation: none; } }

.rr-user-grid { max-width: 100%; overflow-x: auto; }
.rr-user-window-body .rr-field > .dxbl-text-edit { width: 100%; }

.rr-user-details-header { display: block; }
.rr-user-details-header .rr-toolbar { margin-bottom: 16px; }
.rr-user-information dt { color: var(--rr-muted); font-size: 12px; margin-top: 22px; }
.rr-user-information dd { margin: 6px 0 0; overflow-wrap: anywhere; }
.rr-material-edit, .rr-material-key, .rr-material-block, .rr-material-person-off, .rr-material-delete, .rr-material-close, .rr-material-add {
    display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px;
}
.rr-material-edit::before, .rr-material-key::before, .rr-material-block::before,
.rr-material-person-off::before, .rr-material-delete::before, .rr-material-close::before, .rr-material-add::before {
    font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal;
    line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap;
    font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased;
}
.rr-material-edit::before { content: 'edit'; }
.rr-material-key::before { content: 'key'; }
.rr-material-block::before { content: 'block'; }
.rr-material-person-off::before { content: 'person_off'; }
.rr-material-delete::before { content: 'delete'; }
.rr-material-close::before { content: 'close'; }
.rr-material-add::before { content: 'add'; }
.rr-user-grid, .rr-user-grid table, .rr-user-grid td, .rr-user-grid th { cursor: pointer; }
.rr-user-grid input { cursor: text; }


.dxbl-modal-root:has(> .rr-user-window) { overflow: hidden; }

.rr-user-window { --dxbl-popup-margin: 0px; --dxbl-popup-scrollable-max-height: 100dvh; --dxbl-popup-border-radius: 0px; }

/* Use an in-page scrollbar on Reservations so the fixed flyout can cover it.
   Keeping the scroll container in place when the flyout closes avoids jumps. */
html:has(.rr-reservations-page),
body:has(.rr-reservations-page) {
    height: 100%;
    overflow: hidden;
    scrollbar-gutter: auto;
}
.rr-shell:has(.rr-reservations-page) {
    height: 100dvh;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Keep the nonmodal reservation flyout anchored while the page scrolls.
   Override the window host's document-relative coordinates, leaving DevExpress
   in charge of stacking so confirmation dialogs still appear above the flyout. */
.dxbl-window.rr-reservation-window,
.dxbl-window:has(> .rr-reservation-window) {
    position: fixed !important;
    inset: 0 0 0 auto !important;
    transform: none !important;
    width: min(900px, calc(100vw - 24px)) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
}
.dxbl-window.rr-reservation-window > .dxbl-window-dialog,
.dxbl-window > .dxbl-window-dialog.rr-reservation-window {
    height: 100% !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden;
}
.rr-reservation-window-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
}
.rr-reservation-header-separator {
    display: block;
    width: 100%;
    height: 1px;
    margin: 12px 0 0;
    border: 0;
    background-color: #ced4da;
    opacity: 1;
}

/* User selection and detail actions share the RiverRun hover treatment. */
.rr-user-table .dxbl-grid-table > tbody > tr:not(.dxbl-grid-empty-row):hover {
    --dxbl-grid-hover-bg: var(--dxbl-grid-selection-bg);
    --dxbl-grid-hover-color: var(--dxbl-grid-selection-color);
    --dxbl-grid-selected-hover-bg: var(--dxbl-grid-selection-bg);
    --dxbl-grid-selection-focus-dark-hover-bg: var(--dxbl-grid-selection-bg);
    --dxbl-grid-focus-color: var(--dxbl-grid-selection-color);
}
.rr-user-details-header .rr-user-details-actions {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 3px;
}
.rr-user-details-actions > * { flex-shrink: 0; white-space: nowrap; }
.rr-user-details-header .rr-detail-action,
.rr-site-card-header .rr-detail-action,
.rr-user-toolbar .rr-detail-action {
    --dxbl-btn-bg: transparent;
    --dxbl-btn-color: #000;
    --dxbl-btn-hover-bg: var(--rr-red);
    --dxbl-btn-hover-color: #fff;
    background-color: transparent;
    border-color: transparent;
    color: #000;
}
.rr-user-details-header .rr-detail-action:not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible),
.rr-site-card-header .rr-detail-action:not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible),
.rr-user-toolbar .rr-detail-action:not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible) {
    background-color: var(--rr-red);
    border-color: var(--rr-red);
    color: #fff;
    cursor: pointer;
}

.rr-user-details-header .rr-detail-action:is(:disabled, [aria-disabled="true"], .dxbl-disabled),
.rr-site-card-header .rr-detail-action:is(:disabled, [aria-disabled="true"], .dxbl-disabled),
.rr-user-toolbar .rr-detail-action:is(:disabled, [aria-disabled="true"], .dxbl-disabled) {
    --dxbl-btn-color: #6c757d;
    --dxbl-btn-disabled-color: #6c757d;
    background-color: transparent;
    border-color: transparent;
    color: #6c757d;
    opacity: .55;
    cursor: default;
}

.rr-user-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.rr-user-toolbar > .rr-detail-action { flex-shrink: 0; white-space: nowrap; }
.rr-user-search { width: 280px; max-width: 55%; min-width: 0; margin: 0 0 0 auto; }
.rr-reservation-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rr-reservation-filters .dxbl-text-edit { width: 100%; }
@media (max-width: 1100px) { .rr-reservation-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rr-reservation-filters { grid-template-columns: 1fr; } }

.dxbl-toast.rr-success-toast {
    --dxbl-toast-background-color: #198754;
    --dxbl-toast-accent-line-color: #198754;
    --dxbl-toast-front-color: #fff;
    --dxbl-toast-header-font-color: #fff;
    --dxbl-toast-text-font-color: #fff;
    --dxbl-toast-close-button-color: #fff;
    --dxbl-toast-close-button-hover-color: #fff;
    --dxbl-toast-close-button-hover-bg: rgba(255, 255, 255, .15);
    background-color: #198754;
    color: #fff;
}

.rr-reservation-presets { margin-bottom: 18px; gap: 8px; }
.rr-reservation-search { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-bottom: 18px; }
.rr-reservation-search .rr-field { flex: 1; max-width: 420px; min-width: 220px; margin: 0; }
.rr-reservation-search .dxbl-text-edit { width: 100%; }

.rr-reservation-filters { align-items: start; }
.rr-date-range-summary { display: block; margin-top: 8px; }
.rr-custom-date-range { margin-top: 8px; width: 100%; }
.rr-date-range-calendar .dxbl-calendar-week-number { display: none !important; }

.rr-reservation-details { container-type: inline-size; width: 100%; min-width: 0; flex: 1 1 100%; align-self: stretch; }
.rr-reservation-detail-grid, .rr-reservation-site-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.rr-reservation-site-grid { grid-template-columns: minmax(0, 1fr); width: 100%; }
.rr-reservation-fields.rr-reservation-site-fields { grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); }
.rr-reservation-section { min-width: 0; padding: 20px; border: 1px solid var(--rr-line); border-radius: 8px; background: #fff; }
.rr-reservation-section-wide { grid-column: 1 / -1; }
.rr-reservation-section h2 { font-size: 16px; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid var(--rr-line); }
.rr-reservation-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; margin: 0; }
.rr-reservation-fields > div { min-width: 0; }
.rr-reservation-fields dt { font-size: 12px; color: var(--rr-muted); margin: 0 0 5px; }
.rr-reservation-fields dd { margin: 0; line-height: 1.5; overflow-wrap: anywhere; font-weight: 500; }
.rr-reservation-field-wide { grid-column: 1 / -1; }
.rr-reservation-payment-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-detail-title { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-width: 0; }
.rr-detail-title h2 { margin: 0; }
.rr-status-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; color: #fff; }
.rr-status-badge-success { background: #198754; }
.rr-reservation-table-loading-area { min-height: 220px; }
.rr-status-badge-danger { background: var(--rr-red); }
.rr-site-card-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--rr-line); }
.rr-reservation-site .rr-site-card-header h3 { margin: 0; }
.rr-site-card-header > .rr-detail-action { margin-left: auto; }
.rr-material-cancel::before { font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; content: 'cancel'; }
.rr-reservation-site { min-width: 0; background: #f5f6f8; padding: 16px; border-radius: 6px; }
.rr-reservation-site h3 { margin: 0 0 16px; font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.rr-material-edit-calendar::before { font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; content: 'edit_calendar'; }
.rr-material-event-busy::before { font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; content: 'event_busy'; }
@container (max-width: 620px) {
    .rr-reservation-detail-grid, .rr-reservation-site-grid { grid-template-columns: 1fr; }
}
@container (max-width: 360px) {
    .rr-reservation-fields { grid-template-columns: 1fr; }
    .rr-reservation-section { padding: 16px; }
}

.rr-material-lock-open::before { font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; content: 'lock_open'; }
.rr-block-note { white-space: pre-wrap; overflow-wrap: anywhere; }
.rr-report-actions { margin-top: 16px; }
.rr-report-actions .rr-detail-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 6px 12px; border: 1px solid transparent; border-radius: 4px; font-family: inherit; font-size: 14px; font-weight: 400; line-height: 22px; white-space: nowrap; }
.rr-report-actions .rr-report-link, .rr-report-actions .rr-report-link:hover { text-decoration: none; }
.rr-report-actions .rr-report-link .material-icons { font-size: 20px; margin: 0; color: inherit; line-height: 1; }
.rr-report-grid-scroll { overflow-x: auto; }
.rr-report-table { min-width: 1450px; }
.rr-report-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.rr-report-summary strong { display: block; font-size: 1.6rem; margin-top: 8px; }
.rr-material-play::before, .rr-material-reset::before, .rr-material-download::before, .rr-material-print::before {
    font-family: 'Material Icons'; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1;
    letter-spacing: normal; text-transform: none; white-space: nowrap; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased;
}
.rr-material-play::before { content: 'play_arrow'; }
.rr-material-reset::before { content: 'restart_alt'; }
.rr-material-download::before { content: 'download'; }
.rr-material-print::before { content: 'print'; }
@media (max-width: 800px) { .rr-report-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .rr-report-summary { grid-template-columns: 1fr; } }
