/* _content/CalendarBlazor/Components/Calendar/CalendarBubble.razor.rz.scp.css */
/* CalendarBubble scoped styles — hover popover (replaces DayPilotBubble). */

.cal-bubble[b-398k3b9emd] {
    position: fixed;
    z-index: 3000;
    max-width: 320px;
    pointer-events: none; /* don't steal the mouse so the underlying chip keeps hover */
    background-color: #ffffff;
    color: #222;
    border: 1px solid #5b9bd5;
    border-radius: 8px;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.22);
    padding: 10px 12px;
    font-size: 0.8rem;
    line-height: 1.35;
}

.cal-bubble b[b-398k3b9emd],
.cal-bubble strong[b-398k3b9emd] {
    color: #5b9bd5;
}

.cal-bubble u[b-398k3b9emd] {
    text-decoration-color: #5b9bd5;
}
/* _content/CalendarBlazor/Components/Calendar/CalendarContextMenu.razor.rz.scp.css */
/* CalendarContextMenu scoped styles — right-click menu (replaces DayPilotMenu). */

.cal-menu-backdrop[b-0orgh8x3cu] {
    position: fixed;
    inset: 0;
    z-index: 3500;
    background: transparent;
}

.cal-menu[b-0orgh8x3cu] {
    position: fixed;
    z-index: 3600;
    min-width: 180px;
    background-color: #ffffff;
    border: 1px solid #5b9bd5;
    border-radius: 8px;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.25);
    padding: 4px;
    overflow: hidden;
}

.cal-menu-title[b-0orgh8x3cu] {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #ffd54a;
    background: linear-gradient(135deg, #5b9bd5 0%, #4a8ac4 100%);
    border-radius: 5px;
    padding: 6px 10px;
    margin-bottom: 4px;
}

.cal-menu-item[b-0orgh8x3cu] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    border-radius: 5px;
    padding: 7px 10px;
    font-size: 0.82rem;
    color: #333;
    cursor: pointer;
}

.cal-menu-item:hover:not(:disabled)[b-0orgh8x3cu] {
    background-color: #f3e6e8;
    color: #5b9bd5;
}

.cal-menu-item-disabled[b-0orgh8x3cu],
.cal-menu-item:disabled[b-0orgh8x3cu] {
    color: #bbb;
    cursor: default;
}

.cal-menu-icon[b-0orgh8x3cu] {
    width: 16px;
    text-align: center;
    color: #5b9bd5;
}

.cal-menu-item-disabled .cal-menu-icon[b-0orgh8x3cu],
.cal-menu-item:disabled .cal-menu-icon[b-0orgh8x3cu] {
    color: #ccc;
}
/* _content/CalendarBlazor/Components/Calendar/CalendarMonth.razor.rz.scp.css */
/* CalendarMonth scoped styles — modern casino/Praxis look (maroon + gold accents). */

.cal-month[b-r4mxodj4sd] {
    --cal-maroon: #5b9bd5;
    --cal-maroon-dark: #4a8ac4;
    --cal-gold: #ffd54a;
    --cal-border: #d8d8d8;
    --cal-outside-bg: #f5f5f5;
    --cal-today-bg: #fff8e1;
    width: 100%;
    font-family: Arial, Helvetica, sans-serif;
    border: 1px solid var(--cal-border);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    background-color: #fff;
}

/* Toolbar */
.cal-toolbar[b-r4mxodj4sd] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(135deg, var(--cal-maroon) 0%, #4a8ac4 100%);
    color: var(--cal-gold);
}

.cal-title-area[b-r4mxodj4sd] {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cal-title[b-r4mxodj4sd] {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    color: var(--cal-gold);
}

.cal-nav-btn[b-r4mxodj4sd] {
    background-color: rgba(255, 255, 255, 0.12);
    color: var(--cal-gold);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 6px;
    min-width: 34px;
    height: 32px;
    padding: 0 10px;
    cursor: pointer;
    font-weight: 700;
    line-height: 1;
}

.cal-nav-btn:hover[b-r4mxodj4sd] {
    background-color: rgba(255, 255, 255, 0.25);
}

.cal-today-btn[b-r4mxodj4sd] {
    font-size: 0.8rem;
}

/* Grid */
.cal-grid[b-r4mxodj4sd] {
    display: flex;
    flex-direction: column;
}

.cal-weekdays[b-r4mxodj4sd],
.cal-week[b-r4mxodj4sd] {
    display: grid;
    /* minmax(0, 1fr) (NOT plain 1fr = minmax(auto,1fr)) so a column can shrink below its content's
       min-content width. Otherwise long event/financial tile text forces columns wider than 1/7 of
       the calendar, the 7 columns overflow the container, and the right column(s) get clipped. */
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.cal-weekday[b-r4mxodj4sd] {
    text-align: center;
    padding: 6px 0;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #fff;
    background-color: var(--cal-maroon-dark);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.cal-weekday:last-child[b-r4mxodj4sd] {
    border-right: none;
}

.cal-day[b-r4mxodj4sd] {
    min-height: 86px;
    /* Allow the cell to shrink within its grid column (pairs with minmax(0,1fr) above) so its content
       never forces the column — and the whole calendar — wider than the container. */
    min-width: 0;
    overflow: hidden;
    border-right: 1px solid var(--cal-border);
    border-bottom: 1px solid var(--cal-border);
    padding: 3px 4px 4px;
    cursor: pointer;
    position: relative;
    background-color: #fff;
    transition: background-color 0.1s ease-in-out;
}

.cal-week .cal-day:last-child[b-r4mxodj4sd] {
    border-right: none;
}

.cal-day-outside[b-r4mxodj4sd] {
    color: #aaa;
}

.cal-day-outside .cal-day-number[b-r4mxodj4sd] {
    color: #b0b0b0;
}

.cal-day-today[b-r4mxodj4sd] {
    background-color: var(--cal-today-bg);
}

/* Drop-target highlight while a chip is dragged over a day cell (replaces DayPilot EventMove cue). */
.cal-day-dragover[b-r4mxodj4sd] {
    background-color: #e3f0fb;
    box-shadow: inset 0 0 0 2px var(--cal-maroon);
}

/* Day-cell header: the circled day number (+ optional weekday abbreviation in single-day view). */
.cal-day-head[b-r4mxodj4sd] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}

/* Every day number is drawn inside a circle. Non-today days get an OUTLINED circle; today keeps a
   distinct FILLED circle (see .cal-day-today override below). */
.cal-day-number[b-r4mxodj4sd] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #444;
    border: 1px solid #bbb;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    cursor: pointer;
}

.cal-day-today .cal-day-number[b-r4mxodj4sd] {
    background-color: var(--cal-maroon);
    color: #fff;
    border-color: var(--cal-maroon);
}

.cal-day-outside .cal-day-number[b-r4mxodj4sd] {
    border-color: #ddd;
}

/* Weekday abbreviation shown beside the day number in the single-day (Prior Year) view. */
.cal-day-weekday[b-r4mxodj4sd] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #666;
    text-transform: uppercase;
}

/* 4-digit year shown after the weekday abbreviation in the single-day (Prior Year) view, so each
   accumulated prior-year tile shows which year it represents. Pushed to the right of the header. */
.cal-day-year[b-r4mxodj4sd] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #444;
    margin-left: auto;
}

.cal-day-events[b-r4mxodj4sd] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* The event chips and the financial tiles are each wrapped in their own bordered group so the two
   groups are clearly distinguished within the day cell:
     - events    -> SOLID maroon border
     - financials -> DASHED gold/amber border
   A group border is only drawn when that group has at least one tile (the wrappers are not rendered
   when empty). */
.cal-events-group[b-r4mxodj4sd],
.cal-fin-group[b-r4mxodj4sd] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-radius: 5px;
    padding: 2px;
}

.cal-events-group[b-r4mxodj4sd] {
    border: 1px solid var(--cal-maroon);
}

.cal-fin-group[b-r4mxodj4sd] {
    border: 1px dashed #d99b00;
}

/* Event chips */
.cal-event[b-r4mxodj4sd] {
    /* Default (uncolored) event background; category-colored events override this inline.
       Black text matches the WebForms DayPilot rendering. Font matches the WebForms
       amount/event blocks (App_Themes/StyleSheet.css #MAIN): Arial 10pt bold, 19px line-height. */
    background-color: #e6ecf5;
    color: #000;
    border-radius: 4px;
    padding: 2px 5px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    font-weight: bold;
    line-height: 19px;
    cursor: pointer;
    overflow: hidden;
    /* Wrap long event names / financial figures within the (now equal-width) cell instead of letting
       them set a wide min-content that overflows the column. */
    overflow-wrap: anywhere;
    word-break: break-word;
    display: flex;
    flex-direction: column;
    text-align: center;
    border: 1px solid #000;
}

.cal-event:hover[b-r4mxodj4sd] {
    filter: brightness(0.92);
}

/* Draggable chips show a grab cursor (HTML5 drag-and-drop move, replaces DayPilot EventMove). */
.cal-event-draggable[b-r4mxodj4sd] {
    cursor: grab;
}

.cal-event-draggable:active[b-r4mxodj4sd] {
    cursor: grabbing;
}

/* Gap separating the financial amount tiles from the event chips above them. */
.cal-fin-sep[b-r4mxodj4sd] {
    height: 6px;
}

/* Financial amount tiles are not draggable (default cursor). */
.cal-event-financial[b-r4mxodj4sd] {
    cursor: default;
}

.cal-event-title[b-r4mxodj4sd] {
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cal-event-subtitle[b-r4mxodj4sd] {
    font-size: 0.66rem;
    opacity: 0.9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Events calendar only: chips shrink to fit their text (dynamic-sized block),
   instead of stretching to the full day-cell width. The financial calendar keeps
   its full-width colored day tiles. */
.cal-month.cal-events .cal-event[b-r4mxodj4sd] {
    align-self: flex-start;
    max-width: 100%;
    line-height: 1.4;
    padding: 1px 6px;
}

/* Single-day view (Prior Year panel): one full-width cell, no grid columns. */
.cal-month-single[b-r4mxodj4sd] {
    box-shadow: none;
}

.cal-grid-single .cal-week[b-r4mxodj4sd] {
    display: block;
}

.cal-grid-single .cal-day[b-r4mxodj4sd] {
    min-height: 120px;
    border-right: none;
}

/* Event chips in the single-day view shrink to fit (matching the events calendar look). */
.cal-month-single .cal-events-group .cal-event[b-r4mxodj4sd] {
    align-self: flex-start;
    max-width: 100%;
    line-height: 1.4;
    padding: 1px 6px;
}
/* _content/CalendarBlazor/Components/Calendar/MonthPicker.razor.rz.scp.css */
/* MonthPicker scoped styles — month + year dropdowns (replaces DayPilot MonthPicker). */

.cal-monthpicker[b-wvn83sbozt] {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.cal-monthpicker .cal-mp-month[b-wvn83sbozt] {
    min-width: 130px;
    width: auto;
}

.cal-monthpicker .cal-mp-year[b-wvn83sbozt] {
    min-width: 90px;
    width: auto;
}

.cal-monthpicker .form-select[b-wvn83sbozt] {
    font-size: 0.9rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
/* _content/CalendarBlazor/Components/Dashboard/ColumnFilterModal.razor.rz.scp.css */
/* ============================================================================
   COLUMN FILTER MODAL — SCOPED STYLES
   ============================================================================
   Ported from the Praxis ColumnFilterModal styles. The value-list dropdown is
   click-anchored to the filter button (top/left supplied inline); the Custom
   AutoFilter modal is centered/fixed.
   ============================================================================ */

.column-filter-backdrop[b-0afh856w8u] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 200000;
}

.column-filter-valuelist[b-0afh856w8u] {
    /* Click-anchored: the top/left are supplied inline from the clicked filter
       button's coordinates (faithful Praxis parity — no CSS centering). */
    position: fixed;
    background: #fff;
    border: 1px solid #999;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    z-index: 200001;
    min-width: 240px;
    max-width: 360px;
    max-height: 60vh;
    overflow-y: auto;
    font-size: 0.8rem;
    padding-bottom: 4px;
}

.filter-valuelist-title[b-0afh856w8u] {
    padding: 6px 12px;
    font-weight: 700;
    color: #2c3e50;
    background: #fafbfc;
    border-bottom: 1px solid #eee;
    border-radius: 6px 6px 0 0;
    position: sticky;
    top: 0;
}

.filter-valuelist-item[b-0afh856w8u] {
    padding: 5px 12px;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.filter-valuelist-item:hover[b-0afh856w8u] {
    background-color: #f1ecfb;
}

.filter-valuelist-item.filter-custom[b-0afh856w8u] {
    color: #6f42c1;
    border-bottom: 1px solid #eee;
    padding-bottom: 6px;
    margin-bottom: 2px;
}

.filter-valuelist-item.filter-clear[b-0afh856w8u] {
    color: #dc3545;
    border-bottom: 1px solid #eee;
    padding-bottom: 6px;
    margin-bottom: 2px;
}

.column-filter-modal[b-0afh856w8u] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border: 1px solid #999;
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.3);
    z-index: 200001;
    width: 440px;
    max-width: 94vw;
    font-size: 0.82rem;
}

.column-filter-header[b-0afh856w8u] {
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    padding: 8px 12px;
    font-weight: 700;
    color: #2c3e50;
    border-radius: 8px 8px 0 0;
}

.column-filter-body[b-0afh856w8u] {
    padding: 14px 16px;
}

.filter-description[b-0afh856w8u] {
    margin-bottom: 6px;
    color: #495057;
}

.filter-column-name[b-0afh856w8u] {
    font-weight: 700;
    margin-bottom: 10px;
    color: #2c3e50;
}

.filter-row[b-0afh856w8u] {
    display: flex;
    gap: 6px;
    margin-bottom: 4px;
}

.filter-operator[b-0afh856w8u],
.filter-value[b-0afh856w8u] {
    flex: 1;
    padding: 4px 6px;
    border: 1px solid #ced4da;
    border-radius: 5px;
    background: #fff;
    font-size: 0.82rem;
}

.filter-value[b-0afh856w8u]::placeholder {
    color: #aaa;
    font-style: italic;
}

.filter-combiner[b-0afh856w8u] {
    display: flex;
    gap: 16px;
    margin: 6px 0;
    padding-left: 4px;
}

.filter-radio[b-0afh856w8u] {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.filter-radio input[type="radio"][b-0afh856w8u] {
    margin: 0;
}

.column-filter-footer[b-0afh856w8u] {
    display: flex;
    justify-content: space-between;
    padding: 10px 16px 14px;
    border-top: 1px solid #eef0f2;
}

.column-filter-footer-right[b-0afh856w8u] {
    display: flex;
    gap: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/CompanySelectorPanel.razor.rz.scp.css */
/* Floating panel for the super-user per-widget company scope selector. */

/* "All companies" scope toggle (gap 1) */
.company-panel-allscope[b-tmbz15cmjl] {
    padding: 8px 12px;
    border-bottom: 1px solid #eef0f2;
    background: #faf8ff;
}

.company-allscope-toggle[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    cursor: pointer;
    font-size: 0.85rem;
}

.company-allscope-toggle input[b-tmbz15cmjl] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.company-panel-body.disabled[b-tmbz15cmjl] {
    opacity: 0.55;
    pointer-events: none;
}

.company-panel-backdrop[b-tmbz15cmjl] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.25);
    z-index: 100000;
}

/* Centered floating panel — works both for the per-widget scope selector and the
   dashboard header global company selector (both render at a component root, so a
   fixed/centered position is reliable in either context). Mirrors the Praxis panel. */
.company-panel[b-tmbz15cmjl] {
    position: fixed;
    top: 90px;
    left: 50%;
    transform: translateX(-50%);
    width: 350px;
    max-width: 95vw;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.22);
    z-index: 100001;
}

.company-panel-header[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    background: #fafbfc;
}

.company-panel-search[b-tmbz15cmjl] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
}

.company-panel-actions[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
    font-size: 0.78rem;
}

.company-panel-count[b-tmbz15cmjl] {
    margin-left: auto;
    color: #868e96;
}

.company-panel-body[b-tmbz15cmjl] {
    flex: 1;
    overflow-y: auto;
    padding: 0.25rem 0.5rem;
}

.company-panel-item[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.3rem 0.4rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.82rem;
    margin: 0;
}

.company-panel-item:hover[b-tmbz15cmjl] {
    background: #f5f3fb;
}

.company-panel-item.selected[b-tmbz15cmjl] {
    background: #f1ecfb;
}

.company-panel-name[b-tmbz15cmjl] {
    font-weight: 500;
    color: #2c3e50;
}

.company-panel-number[b-tmbz15cmjl] {
    font-size: 0.72rem;
}

.company-panel-footer[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-top: 1px solid #eef0f2;
}

.widget-icon-btn[b-tmbz15cmjl] {
    border: none;
    background: transparent;
    color: #868e96;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.25rem 0.4rem;
    font-size: 0.8rem;
}

.widget-icon-btn:hover[b-tmbz15cmjl] {
    background: #eef0f2;
    color: #495057;
}

.dashboard-btn[b-tmbz15cmjl] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
    cursor: pointer;
}

.dashboard-btn-primary[b-tmbz15cmjl] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-tmbz15cmjl] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/DashboardDateRangePicker.razor.rz.scp.css */
/* Global header date-range picker. */

.ddrp[b-bm3f7y46ln] {
    position: relative;
    display: inline-block;
}

.ddrp-trigger[b-bm3f7y46ln] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.4rem 0.7rem;
    font-size: 0.82rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.ddrp-trigger:hover[b-bm3f7y46ln] {
    background: #f1f3f5;
}

.ddrp-trigger.active[b-bm3f7y46ln] {
    background: #e7d9fb;
    border-color: #6f42c1;
    color: #6f42c1;
}

.ddrp-trigger > .fa-calendar-day[b-bm3f7y46ln] {
    color: #6f42c1;
}

.ddrp-trigger.active > .fa-calendar-day[b-bm3f7y46ln] {
    color: #6f42c1;
}

.ddrp-trigger-label[b-bm3f7y46ln] {
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ddrp-caret[b-bm3f7y46ln] {
    font-size: 0.65rem;
    opacity: 0.7;
}

.ddrp-backdrop[b-bm3f7y46ln] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.ddrp-panel[b-bm3f7y46ln] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1050;
    width: 320px;
    max-width: 92vw;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    overflow: hidden;
}

.ddrp-header[b-bm3f7y46ln] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    font-size: 0.85rem;
}

.ddrp-close[b-bm3f7y46ln] {
    border: none;
    background: transparent;
    color: #868e96;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.2rem 0.35rem;
    font-size: 0.8rem;
}

.ddrp-close:hover[b-bm3f7y46ln] {
    background: #eef0f2;
    color: #495057;
}

.ddrp-body[b-bm3f7y46ln] {
    padding: 0.75rem;
}

.ddrp-presets[b-bm3f7y46ln] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.6rem;
}

.ddrp-preset[b-bm3f7y46ln] {
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 16px;
    padding: 0.18rem 0.6rem;
    font-size: 0.72rem;
    cursor: pointer;
    transition: all 0.12s ease;
}

.ddrp-preset:hover[b-bm3f7y46ln] {
    background: #f1f3f5;
}

.ddrp-preset.active[b-bm3f7y46ln] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.ddrp-explicit[b-bm3f7y46ln] {
    display: flex;
    gap: 0.5rem;
}

.ddrp-field[b-bm3f7y46ln] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ddrp-field-label[b-bm3f7y46ln] {
    font-size: 0.7rem;
    color: #868e96;
}

.ddrp-resolved[b-bm3f7y46ln] {
    margin-top: 0.4rem;
    font-size: 0.72rem;
    color: #6f42c1;
}

.ddrp-footer[b-bm3f7y46ln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}

.dashboard-btn[b-bm3f7y46ln] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.dashboard-btn-primary[b-bm3f7y46ln] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-bm3f7y46ln] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/DashboardViewer.razor.rz.scp.css */
/* ============================================================================
   DASHBOARD VIEWER — SCOPED STYLES
   ============================================================================
   The viewer surface, header (title + actions), full-page width, grid row
   height, header buttons and badges now live in the GLOBAL
   wwwroot/css/dashboard.css (ported from Praxis) so the dashboard matches Praxis
   and fills the full page width.

   This scoped file keeps ONLY the parts that are specific to the Calendar viewer
   and not part of the shared Praxis chrome:
     - the per-widget grid-item column/row span helpers (driven by markup classes)
     - edit-mode affordances + the inline resize buttons (Calendar adds explicit
       resize buttons instead of Praxis's drag handles)
     - the remove-all confirmation modal
   ============================================================================ */

/* ----- Save/clone confirmation toast (bottom-right) -----
   Properties moved here from the inline style on the .dashboard-toast div. */
.dashboard-toast[b-42wgbr0j83] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1080;
    background: #198754;
    color: #fff;
    padding: 10px 16px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    font-weight: 600;
}

/* ----- Grid item span helpers (widths 1-12, heights in 110px rows) ----- */

.dashboard-grid-item[b-42wgbr0j83] {
    position: relative;
    grid-column: span 4;
    grid-row: span 4;
    min-width: 0;
}

.grid-w-2[b-42wgbr0j83] { grid-column: span 2; }
.grid-w-3[b-42wgbr0j83] { grid-column: span 3; }
.grid-w-4[b-42wgbr0j83] { grid-column: span 4; }
.grid-w-5[b-42wgbr0j83] { grid-column: span 5; }
.grid-w-6[b-42wgbr0j83] { grid-column: span 6; }
.grid-w-7[b-42wgbr0j83] { grid-column: span 7; }
.grid-w-8[b-42wgbr0j83] { grid-column: span 8; }
.grid-w-9[b-42wgbr0j83] { grid-column: span 9; }
.grid-w-10[b-42wgbr0j83] { grid-column: span 10; }
.grid-w-11[b-42wgbr0j83] { grid-column: span 11; }
.grid-w-12[b-42wgbr0j83] { grid-column: span 12; }

.grid-h-2[b-42wgbr0j83] { grid-row: span 2; }
.grid-h-3[b-42wgbr0j83] { grid-row: span 3; }
.grid-h-4[b-42wgbr0j83] { grid-row: span 4; }
.grid-h-5[b-42wgbr0j83] { grid-row: span 5; }
.grid-h-6[b-42wgbr0j83] { grid-row: span 6; }
.grid-h-7[b-42wgbr0j83] { grid-row: span 7; }
.grid-h-8[b-42wgbr0j83] { grid-row: span 8; }
.grid-h-9[b-42wgbr0j83] { grid-row: span 9; }
.grid-h-10[b-42wgbr0j83] { grid-row: span 10; }

/* ----- Edit mode + drag affordances ----- */

.dashboard-grid.edit-mode .dashboard-grid-item[b-42wgbr0j83] {
    outline: 1px dashed #b9a4e0;
    outline-offset: 3px;
    border-radius: 12px;
}

.dashboard-grid-item.dragging[b-42wgbr0j83] {
    opacity: 0.5;
}

.dashboard-grid-item.drop-target[b-42wgbr0j83] {
    outline: 2px dashed #6f42c1;
    outline-offset: 3px;
    border-radius: 12px;
    background: #f5f3fb;
}

/* While a drag is in progress, hint that other widgets are drop targets. */
.dashboard-grid.is-dragging .dashboard-grid-item:not(.dragging)[b-42wgbr0j83] {
    cursor: pointer;
}

/* Resize is now via drag handles rendered by WidgetContainer (see WidgetContainer.razor.css);
   the old +/- resize buttons have been removed. */

/* ----- Remove-all confirmation modal ----- */

.dashboard-confirm-backdrop[b-42wgbr0j83] {
    position: fixed;
    inset: 0;
    z-index: 100001;
    background: rgba(33, 37, 41, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.dashboard-confirm[b-42wgbr0j83] {
    width: min(440px, 92vw);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0,0,0,0.3);
    overflow: hidden;
}

.dashboard-confirm-header[b-42wgbr0j83] {
    display: flex;
    align-items: center;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #eef0f2;
    background: #fafbfc;
    font-weight: 600;
    color: #2c3e50;
}

.dashboard-confirm-body[b-42wgbr0j83] {
    padding: 1rem;
    color: #495057;
    font-size: 0.9rem;
}

.dashboard-confirm-footer[b-42wgbr0j83] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}
/* _content/CalendarBlazor/Components/Dashboard/DrillDownModal.razor.rz.scp.css */
/* ============================================================================
   DRILL-DOWN MODAL
   ============================================================================
   Component-scoped styles, ported from the Praxis DrillDownModal.razor.css and
   dashboard drill-down rules. */

.drill-down-backdrop[b-f3cet10ntt] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 99998;
    animation: ddFadeIn-b-f3cet10ntt 0.15s ease-out;
}

.drill-down-modal[b-f3cet10ntt] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1200px;
    max-height: 85vh;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
    z-index: 99999;
    display: flex;
    flex-direction: column;
    animation: ddSlideIn-b-f3cet10ntt 0.2s ease-out;
}

@keyframes ddFadeIn-b-f3cet10ntt {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ddSlideIn-b-f3cet10ntt {
    from { opacity: 0; transform: translate(-50%, -48%); }
    to { opacity: 1; transform: translate(-50%, -50%); }
}

.drill-down-header[b-f3cet10ntt] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 16px 20px;
    border-bottom: 1px solid #e0e0e0;
    background: #f8f9fa;
    border-radius: 12px 12px 0 0;
}

.drill-down-title h5[b-f3cet10ntt] {
    margin: 0;
    font-weight: 600;
}

.drill-down-breadcrumb[b-f3cet10ntt] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.breadcrumb-item[b-f3cet10ntt] {
    background: none;
    border: none;
    color: #0d6efd;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 4px;
}

.breadcrumb-item:hover:not(.current):not(:disabled)[b-f3cet10ntt] {
    background: #e7f1ff;
    text-decoration: underline;
}

.breadcrumb-item.current[b-f3cet10ntt] {
    color: #6c757d;
    cursor: default;
}

.breadcrumb-separator[b-f3cet10ntt] {
    color: #adb5bd;
}

.drill-down-header-actions[b-f3cet10ntt] {
    display: flex;
    align-items: center;
}

.drill-down-body[b-f3cet10ntt] {
    flex: 1;
    overflow: auto;
    padding: 0;
    min-height: 200px;
}

.drill-down-loading[b-f3cet10ntt],
.drill-down-error[b-f3cet10ntt],
.drill-down-no-data[b-f3cet10ntt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
}

.drill-down-loading p[b-f3cet10ntt],
.drill-down-error p[b-f3cet10ntt],
.drill-down-no-data p[b-f3cet10ntt] {
    margin-top: 16px;
    color: #6c757d;
}

.drill-down-error i[b-f3cet10ntt],
.drill-down-no-data i[b-f3cet10ntt] {
    font-size: 3rem;
}

.drill-down-table-container[b-f3cet10ntt] {
    max-height: calc(85vh - 180px);
    overflow: auto;
}

.drill-down-table[b-f3cet10ntt] {
    margin: 0;
    font-size: 0.85rem;
}

.drill-down-table th[b-f3cet10ntt],
.drill-down-table td[b-f3cet10ntt] {
    padding: 0.5rem 0.65rem;
}

.drill-down-table thead th[b-f3cet10ntt] {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
    z-index: 1;
    font-size: 0.8rem;
}

.drill-down-table th.sorted[b-f3cet10ntt] {
    background: #f3effb;
}

.column-header-text[b-f3cet10ntt] {
    cursor: pointer;
    user-select: none;
}

.column-filter-btn[b-f3cet10ntt] {
    background: none;
    border: none;
    padding: 0 2px;
    margin-left: 4px;
    cursor: pointer;
    color: #aaa;
    font-size: 0.7rem;
    vertical-align: middle;
    line-height: 1;
}

.column-filter-btn:hover[b-f3cet10ntt] {
    color: #333;
}

.column-filter-btn.filtered[b-f3cet10ntt] {
    color: #6f42c1;
}

.column-filter-row th[b-f3cet10ntt] {
    background: #fcfbff;
    padding: 0.3rem 0.5rem;
}

.column-filter-input[b-f3cet10ntt] {
    font-size: 0.78rem;
}

.drill-down-footer-info[b-f3cet10ntt] {
    padding: 8px 16px;
    font-size: 0.875rem;
    color: #6c757d;
    border-top: 1px solid #e0e0e0;
    background: #f8f9fa;
}

.drill-down-actions[b-f3cet10ntt] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid #e0e0e0;
    background: #f8f9fa;
    border-radius: 0 0 12px 12px;
}

/* SQL debug modal (SuperUser only) */
.sql-debug-modal-backdrop[b-f3cet10ntt] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sql-debug-modal[b-f3cet10ntt] {
    width: 90%;
    max-width: 640px;
    background: #1e1e1e;
    color: #d4d4d4;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.sql-modal-header[b-f3cet10ntt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: #252526;
    font-weight: 600;
}

.sql-modal-close[b-f3cet10ntt] {
    background: none;
    border: none;
    color: #d4d4d4;
    cursor: pointer;
}

.sql-modal-body[b-f3cet10ntt] {
    padding: 16px;
}

.sql-section[b-f3cet10ntt] {
    margin-bottom: 14px;
}

.sql-section label[b-f3cet10ntt] {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #9cdcfe;
    margin-bottom: 4px;
}

.sql-query-text[b-f3cet10ntt] {
    margin: 0;
    padding: 12px;
    background: #2d2d2d;
    border-radius: 4px;
    color: #d4d4d4;
    font-size: 0.78rem;
    font-family: 'Consolas', 'Monaco', monospace;
    white-space: pre-wrap;
    word-wrap: break-word;
    max-height: 220px;
    overflow-y: auto;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/ChartConfigEditor.razor.rz.scp.css */
/* ChartConfigEditor — palettes and series rows. */

.config-editor[b-3xkktqqsgk] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-3xkktqqsgk] {
    margin-bottom: 0.25rem;
}

.form-text[b-3xkktqqsgk] {
    font-size: 0.78rem;
    color: #6c757d;
}

.palette-presets[b-3xkktqqsgk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.palette-btn[b-3xkktqqsgk] {
    display: inline-flex;
    border: 1px solid #ced4da;
    border-radius: 6px;
    overflow: hidden;
    padding: 0;
    cursor: pointer;
    background: #fff;
}

.palette-btn:hover[b-3xkktqqsgk] {
    border-color: #6f42c1;
}

.palette-color[b-3xkktqqsgk] {
    width: 18px;
    height: 24px;
    display: inline-block;
}

.series-list[b-3xkktqqsgk] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.series-item[b-3xkktqqsgk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.series-item .form-control-color[b-3xkktqqsgk] {
    width: 46px;
    padding: 2px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/ColorPickerList.razor.rz.scp.css */
/* ColorPickerList — colour chips + hex inputs. */

.color-picker-list[b-63idlosyxn] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.color-chips[b-63idlosyxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.color-chip[b-63idlosyxn] {
    position: relative;
    display: inline-flex;
}

.color-chip input[type="color"][b-63idlosyxn] {
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #ced4da;
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
}

.color-chip .remove-btn[b-63idlosyxn] {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 16px;
    height: 16px;
    border: none;
    border-radius: 50%;
    background: #dc3545;
    color: #fff;
    font-size: 0.55rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

.add-color-btn[b-63idlosyxn] {
    width: 38px;
    height: 38px;
    border: 1px dashed #adb5bd;
    border-radius: 6px;
    background: #f8f9fa;
    color: #6c757d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.add-color-btn:hover[b-63idlosyxn] {
    border-color: #6f42c1;
    color: #6f42c1;
}

.color-hex-list[b-63idlosyxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.color-hex-input[b-63idlosyxn] {
    width: 88px;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    text-transform: uppercase;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/DrillDownConfigEditor.razor.rz.scp.css */
/* DrillDownConfigEditor — filter fields, levels, detail columns. */

.config-editor[b-aom8076r6r] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-aom8076r6r] {
    margin-bottom: 0.25rem;
}

.form-text[b-aom8076r6r] {
    font-size: 0.78rem;
    color: #6c757d;
}

.form-section-title[b-aom8076r6r] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.level-config .card-header[b-aom8076r6r] {
    background: #f3eefb;
    font-weight: 600;
    color: #4b2e83;
    padding: 0.45rem 0.75rem;
}

.column-list[b-aom8076r6r] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.column-header[b-aom8076r6r],
.column-item[b-aom8076r6r] {
    display: grid;
    grid-template-columns: 1fr 1fr 120px 96px;
    gap: 0.4rem;
    align-items: center;
}

.column-header[b-aom8076r6r] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.column-actions[b-aom8076r6r] {
    display: flex;
    gap: 0.1rem;
    justify-content: flex-end;
}

.column-actions .btn-link[b-aom8076r6r] {
    padding: 0.1rem 0.25rem;
    line-height: 1;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/GaugeConfigEditor.razor.rz.scp.css */
/* GaugeConfigEditor — zones + SVG preview. */

.config-editor[b-f24er3dvx2] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-f24er3dvx2] {
    margin-bottom: 0.25rem;
}

.form-text[b-f24er3dvx2] {
    font-size: 0.78rem;
    color: #6c757d;
}

.zone-list[b-f24er3dvx2] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.zone-item[b-f24er3dvx2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.zone-label[b-f24er3dvx2] {
    font-size: 0.8rem;
    color: #495057;
    white-space: nowrap;
}

.zone-value[b-f24er3dvx2] {
    max-width: 90px;
}

.zone-color[b-f24er3dvx2] {
    width: 46px;
    padding: 2px;
}

.gauge-preview-container[b-f24er3dvx2] {
    display: flex;
    justify-content: center;
}

.gauge-preview[b-f24er3dvx2] {
    position: relative;
    width: 180px;
}

.gauge-svg[b-f24er3dvx2] {
    width: 100%;
    height: auto;
}

.gauge-preview-value[b-f24er3dvx2] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 600;
    color: #2c3e50;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/KpiConfigEditor.razor.rz.scp.css */
/* KpiConfigEditor — icon picker, thresholds, metric rows. */

.config-editor[b-zjmpyv66hv] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-zjmpyv66hv] {
    margin-bottom: 0.25rem;
}

.form-text[b-zjmpyv66hv] {
    font-size: 0.78rem;
    color: #6c757d;
}

.kpi-icon-picker[b-zjmpyv66hv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
    gap: 0.4rem;
}

.kpi-icon-picker-btn[b-zjmpyv66hv] {
    height: 44px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    color: #495057;
    font-size: 1.05rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
}

.kpi-icon-picker-btn:hover[b-zjmpyv66hv] {
    border-color: #6f42c1;
    color: #6f42c1;
}

.kpi-icon-picker-btn.selected[b-zjmpyv66hv] {
    border-color: #6f42c1;
    background: #6f42c1;
    color: #fff;
}

.threshold-list[b-zjmpyv66hv],
.metrics-config-list[b-zjmpyv66hv] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.threshold-item[b-zjmpyv66hv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.threshold-label[b-zjmpyv66hv] {
    font-size: 0.8rem;
    color: #495057;
    white-space: nowrap;
}

.threshold-value[b-zjmpyv66hv] {
    max-width: 110px;
}

.threshold-color[b-zjmpyv66hv] {
    width: 46px;
    padding: 2px;
}

.metric-config-item[b-zjmpyv66hv] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.4rem 0.5rem;
    background: #fcfcfd;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/TableConfigEditor.razor.rz.scp.css */
/* TableConfigEditor — column config table + preview. */

.config-editor[b-zblhkbqkbw] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-zblhkbqkbw] {
    margin-bottom: 0.25rem;
}

.form-text[b-zblhkbqkbw] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-zblhkbqkbw] {
    color: #dc3545;
    font-size: 0.78rem;
}

.column-config-container[b-zblhkbqkbw] {
    overflow-x: auto;
}

.column-config-table[b-zblhkbqkbw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.column-config-table th[b-zblhkbqkbw] {
    font-weight: 600;
    color: #495057;
    padding: 0.3rem 0.4rem;
    text-align: left;
    border-bottom: 2px solid #e9ecef;
    white-space: nowrap;
}

.column-config-table td[b-zblhkbqkbw] {
    padding: 0.3rem 0.4rem;
    vertical-align: middle;
}

.column-config-table .w-40[b-zblhkbqkbw] {
    width: 40px;
}

.column-config-table .w-80[b-zblhkbqkbw] {
    width: 80px;
}

.drag-handle .btn-link[b-zblhkbqkbw] {
    line-height: 1;
    color: #adb5bd;
}

.drag-handle .btn-link:hover:not(:disabled)[b-zblhkbqkbw] {
    color: #6f42c1;
}

.table-preview[b-zblhkbqkbw] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/DataSourceEditorModal.razor.rz.scp.css */
/* DataSourceEditorModal — right slide-out panel. */

.ds-editor-backdrop[b-jik9t8pgot] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1090;
}

.ds-editor-panel[b-jik9t8pgot] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(720px, 96vw);
    background: #fff;
    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.25);
    z-index: 1095;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.2s ease;
}

.ds-editor-panel.open[b-jik9t8pgot] {
    transform: translateX(0);
}

.ds-editor-header[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.1rem;
    background: #6f42c1;
    color: #fff;
}

.ds-editor-content[b-jik9t8pgot] {
    flex: 1;
    overflow-y: auto;
    padding: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.form-section[b-jik9t8pgot] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-jik9t8pgot] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-jik9t8pgot] {
    margin-bottom: 0;
}

.form-text[b-jik9t8pgot] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-jik9t8pgot] {
    color: #dc3545;
    font-size: 0.78rem;
}

.parameters-list[b-jik9t8pgot] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.parameter-card[b-jik9t8pgot] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.5rem 0.65rem;
    background: #fcfcfd;
}

.parameter-header[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.parameter-name[b-jik9t8pgot] {
    color: #6f42c1;
}

.parameter-actions[b-jik9t8pgot] {
    display: flex;
    gap: 0.25rem;
}

.parameter-edit[b-jik9t8pgot] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed #e9ecef;
}

.ds-results[b-jik9t8pgot] {
    max-height: 220px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}

.ds-editor-footer[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.ds-editor-footer .footer-actions[b-jik9t8pgot] {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/QueryBuilderModal.razor.rz.scp.css */
/* QueryBuilderModal — centered slide-up panel. */

.qb-backdrop[b-a8aolvuxe7] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1080;
}

/* Schema browser (gap 14) */
.qb-schema[b-a8aolvuxe7] {
    border: 1px solid #e3e6ea;
    border-radius: 6px;
    padding: 6px;
    max-height: 220px;
    overflow-y: auto;
    background: #fbfcfd;
}

.qb-schema-list[b-a8aolvuxe7],
.qb-schema-columns[b-a8aolvuxe7] {
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.qb-schema-columns[b-a8aolvuxe7] {
    padding-left: 18px;
}

.qb-schema-table-name[b-a8aolvuxe7] {
    cursor: pointer;
    display: block;
    padding: 2px 0;
    font-size: 0.82rem;
}

.qb-table-insert[b-a8aolvuxe7] {
    cursor: pointer;
    color: #6f42c1;
}

.qb-table-insert:hover[b-a8aolvuxe7] {
    text-decoration: underline;
}

.qb-schema-columns li[b-a8aolvuxe7] {
    cursor: pointer;
    padding: 1px 0;
    font-size: 0.78rem;
}

.qb-schema-columns li:hover[b-a8aolvuxe7] {
    background: #f1f3f5;
}

.qb-panel[b-a8aolvuxe7] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -48%);
    width: min(820px, 94vw);
    max-height: 90vh;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    z-index: 1085;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.qb-header[b-a8aolvuxe7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1.1rem;
    background: #6f42c1;
    color: #fff;
}

.qb-content[b-a8aolvuxe7] {
    padding: 1.1rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.qb-footer[b-a8aolvuxe7] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.form-text[b-a8aolvuxe7] {
    font-size: 0.78rem;
    color: #6c757d;
}

.qb-results[b-a8aolvuxe7] {
    max-height: 260px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/BasicInfoSection.razor.rz.scp.css */
/* BasicInfoSection. */

.form-section[b-4hmc2xsh7i] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.form-section-title[b-4hmc2xsh7i] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0 0 0.25rem;
}

.form-group[b-4hmc2xsh7i] {
    margin-bottom: 0;
}

.form-text[b-4hmc2xsh7i] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-4hmc2xsh7i] {
    color: #dc3545;
    font-size: 0.78rem;
}

.selected-category-preview[b-4hmc2xsh7i] {
    border: 1px solid #e9ecef;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/DataSourceSection.razor.rz.scp.css */
/* DataSourceSection. */

.form-section[b-hba09uwqqu] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.form-section-title[b-hba09uwqqu] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-hba09uwqqu] {
    margin-bottom: 0;
}

.form-text[b-hba09uwqqu] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-hba09uwqqu] {
    color: #dc3545;
    font-size: 0.78rem;
}

.test-results[b-hba09uwqqu] {
    max-height: 220px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/DrillDownSection.razor.rz.scp.css */
/* DrillDownSection. */

.form-section[b-7dhl0eep5b] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-7dhl0eep5b] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/SizeAndRefreshSection.razor.rz.scp.css */
/* SizeAndRefreshSection. */

.form-section[b-982q4hbugl] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-section-title[b-982q4hbugl] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-982q4hbugl] {
    margin-bottom: 0;
}

.form-text[b-982q4hbugl] {
    font-size: 0.78rem;
    color: #6c757d;
}

.max-w-120[b-982q4hbugl] {
    max-width: 120px;
}

.size-preview[b-982q4hbugl] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 3px;
    margin: 0.4rem 0;
}

.size-preview-cell[b-982q4hbugl] {
    height: 10px;
    border-radius: 2px;
    background: #e9ecef;
}

.size-preview-cell.active[b-982q4hbugl] {
    background: #6f42c1;
}

.grid-size-selector[b-982q4hbugl] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 3px;
    max-width: 360px;
}

.grid-cell[b-982q4hbugl] {
    aspect-ratio: 1;
    border-radius: 2px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/VisualizationSection.razor.rz.scp.css */
/* VisualizationSection. */

.form-section[b-5bj0ay3lfr] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-5bj0ay3lfr] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/WidgetTypeSection.razor.rz.scp.css */
/* WidgetTypeSection — visual type grid. */

.form-section[b-el7q4c6dkf] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.form-section-title[b-el7q4c6dkf] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.widget-type-grid[b-el7q4c6dkf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0.6rem;
}

.widget-type-card[b-el7q4c6dkf] {
    border: 1px solid #ced4da;
    border-radius: 10px;
    padding: 0.9rem 0.5rem;
    text-align: center;
    cursor: pointer;
    background: #fff;
    transition: all 0.12s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
}

.widget-type-card i[b-el7q4c6dkf] {
    font-size: 1.5rem;
    color: #6c757d;
}

.widget-type-card span[b-el7q4c6dkf] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #495057;
}

.widget-type-card:hover[b-el7q4c6dkf] {
    border-color: #6f42c1;
}

.widget-type-card.selected[b-el7q4c6dkf] {
    border-color: #6f42c1;
    background: #f3eefb;
    box-shadow: 0 0 0 2px rgba(111, 66, 193, 0.2);
}

.widget-type-card.selected i[b-el7q4c6dkf],
.widget-type-card.selected span[b-el7q4c6dkf] {
    color: #6f42c1;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/WidgetEditorModal.razor.rz.scp.css */
/* WidgetEditorModal — large right slide-out panel with tabs + preview. */

.widget-editor-backdrop[b-sn43u0yjar] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1060;
}

.widget-editor-panel[b-sn43u0yjar] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(1080px, 98vw);
    background: #fff;
    box-shadow: -10px 0 40px rgba(0, 0, 0, 0.28);
    z-index: 1065;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.22s ease;
}

.widget-editor-panel.open[b-sn43u0yjar] {
    transform: translateX(0);
}

.widget-editor-header[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.95rem 1.2rem;
    background: #6f42c1;
    color: #fff;
}

.widget-editor-tabs[b-sn43u0yjar] {
    padding: 0 1rem;
    border-bottom: 1px solid #e9ecef;
    flex-wrap: nowrap;
    overflow-x: auto;
}

.widget-editor-tabs .nav-link[b-sn43u0yjar] {
    border: none;
    color: #6c757d;
    font-size: 0.85rem;
    white-space: nowrap;
    padding: 0.6rem 0.85rem;
    background: transparent;
    border-bottom: 2px solid transparent;
}

.widget-editor-tabs .nav-link:hover[b-sn43u0yjar] {
    color: #495057;
}

.widget-editor-tabs .nav-link.active[b-sn43u0yjar] {
    color: #6f42c1;
    border-bottom-color: #6f42c1;
    font-weight: 600;
    background: transparent;
}

.widget-editor-tabs .nav-link.has-error[b-sn43u0yjar] {
    color: #dc3545;
}

.widget-editor-tabs .nav-link.has-error[b-sn43u0yjar]::after {
    content: "\f06a"; /* fa exclamation-circle */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-left: 0.35rem;
    font-size: 0.72rem;
}

.widget-editor-content[b-sn43u0yjar] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 300px;
    min-height: 0;
}

.widget-editor-form[b-sn43u0yjar] {
    overflow-y: auto;
    padding: 1.1rem 1.2rem;
}

.widget-editor-preview[b-sn43u0yjar] {
    border-left: 1px solid #e9ecef;
    background: #f8f9fa;
    padding: 1rem;
    overflow-y: auto;
}

.preview-header[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    color: #495057;
}

.preview-content[b-sn43u0yjar] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.preview-widget-frame[b-sn43u0yjar] {
    border: 1px solid #d8c8f3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.preview-widget-header[b-sn43u0yjar] {
    background: #f3eefb;
    color: #4b2e83;
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid #e9d9f7;
}

.preview-widget-body[b-sn43u0yjar] {
    padding: 1.1rem 0.6rem;
    text-align: center;
    font-size: 0.85rem;
}

.widget-editor-footer[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.2rem;
    border-top: 1px solid #e9ecef;
    background: #fff;
}

.widget-editor-footer .footer-actions[b-sn43u0yjar] {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}

/* Inline new-category dialog */
.we-cat-backdrop[b-sn43u0yjar] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1100;
}

.we-cat-dialog[b-sn43u0yjar] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(420px, 92vw);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    z-index: 1105;
    padding: 1.2rem;
}

@media (max-width: 900px) {
    .widget-editor-content[b-sn43u0yjar] {
        grid-template-columns: 1fr;
    }

    .widget-editor-preview[b-sn43u0yjar] {
        display: none;
    }
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetContainer.razor.rz.scp.css */
/* ============================================================================
   WIDGET CONTAINER — SCOPED STYLES
   ============================================================================
   The structural chrome for a placed widget (card, header, toolbar icons, drag
   grip, popovers, body/footer, the SQL debug modal and the grid sizing) now
   lives in the GLOBAL wwwroot/css/dashboard.css (ported from Praxis) so it is
   not clipped by scoped overflow and matches Praxis exactly.

   This scoped file keeps ONLY:
     - the in-page Expand modal (component-specific; not part of Praxis chrome)
     - the ::deep rules that reach the inner widget components' markup
       (KPI / table / chart / gauge), which a scoped sheet must own.
   ============================================================================ */

/* ----- Inner widget styling (::deep reaches child component markup) ----- */

[b-8cil4w1m7q] .kpi-card {
    display: grid;
    gap: 0.5rem 1rem;
    height: 100%;
    align-content: center;
}

[b-8cil4w1m7q] .kpi-card.layout-4-column {
    grid-template-columns: repeat(2, 1fr);
}

[b-8cil4w1m7q] .kpi-value-row {
    display: flex;
    flex-direction: column;
}

[b-8cil4w1m7q] .kpi-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2c3e50;
    line-height: 1.1;
}

[b-8cil4w1m7q] .kpi-label {
    font-size: 0.75rem;
    color: #868e96;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

[b-8cil4w1m7q] .kpi-empty {
    font-size: 2rem;
    color: #ced4da;
    text-align: center;
}

[b-8cil4w1m7q] .no-data-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #adb5bd;
    gap: 0.4rem;
}

[b-8cil4w1m7q] .no-data-message i {
    font-size: 1.75rem;
}

[b-8cil4w1m7q] .dashboard-data-table {
    font-size: 0.8rem;
    margin: 0;
}

[b-8cil4w1m7q] .dashboard-data-table th {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}

[b-8cil4w1m7q] .chart-widget,
[b-8cil4w1m7q] .gauge-widget {
    height: 100%;
}

/* Interactive series legend (gap 6) — custom legend above multi-series charts. */
[b-8cil4w1m7q] .custom-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-bottom: 6px;
    font-size: 0.78rem;
}

[b-8cil4w1m7q] .legend-controls {
    display: inline-flex;
    gap: 6px;
    margin-right: 4px;
}

[b-8cil4w1m7q] .legend-select-all,
[b-8cil4w1m7q] .legend-deselect-all {
    cursor: pointer;
    color: #6c757d;
}

[b-8cil4w1m7q] .legend-select-all:hover,
[b-8cil4w1m7q] .legend-deselect-all:hover {
    color: #6f42c1;
}

[b-8cil4w1m7q] .legend-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    user-select: none;
    padding: 1px 4px;
    border-radius: 4px;
}

[b-8cil4w1m7q] .legend-item:hover {
    background: #f1f3f5;
}

[b-8cil4w1m7q] .legend-marker {
    width: 11px;
    height: 11px;
    border-radius: 2px;
    display: inline-block;
}

[b-8cil4w1m7q] .legend-item .legend-dimmed {
    color: #adb5bd;
    text-decoration: line-through;
}

[b-8cil4w1m7q] .legend-item:not(.selected) .legend-marker {
    opacity: 0.35;
}

/* Pie/donut backup drill-down table (gap 7). */
[b-8cil4w1m7q] .drilldown-table-container {
    margin-top: 8px;
    max-height: 180px;
    overflow-y: auto;
}

[b-8cil4w1m7q] .drilldown-table {
    width: 100%;
    font-size: 0.78rem;
    border-collapse: collapse;
}

[b-8cil4w1m7q] .drilldown-table th {
    text-align: left;
    font-weight: 600;
    color: #6c757d;
    border-bottom: 1px solid #e9ecef;
    padding: 3px 6px;
}

[b-8cil4w1m7q] .drilldown-table th.value-column,
[b-8cil4w1m7q] .drilldown-table th.percent-column,
[b-8cil4w1m7q] .drilldown-table td.value-column,
[b-8cil4w1m7q] .drilldown-table td.percent-column {
    text-align: right;
}

[b-8cil4w1m7q] .drilldown-table td {
    padding: 3px 6px;
    border-bottom: 1px solid #f1f3f5;
}

[b-8cil4w1m7q] .drilldown-table .drilldown-row {
    cursor: pointer;
}

[b-8cil4w1m7q] .drilldown-table .drilldown-row:hover {
    background: #f5f3fb;
}

[b-8cil4w1m7q] .drilldown-table .color-indicator {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 6px;
    vertical-align: middle;
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetParameterPanel.razor.rz.scp.css */
/* ============================================================================
   WIDGET PARAMETER PANEL — SCOPED STYLES
   ============================================================================
   Per-widget parameter/filter popover, anchored under the filter button in the
   widget header. Ported from the Praxis parameter-panel styles (Calendar purple
   accent). The card uses overflow:visible so the panel is not clipped (gap 2);
   this popover anchors below the header button.
   ============================================================================ */

.parameter-panel-backdrop[b-xxzaj9qo2j] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: transparent;
}

.parameter-panel[b-xxzaj9qo2j] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1001;
    width: 320px;
    max-width: 92vw;
    max-height: 420px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.parameter-panel.upward[b-xxzaj9qo2j] {
    top: auto;
    bottom: calc(100% + 6px);
}

.parameter-panel-header[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    padding: 0.6rem 0.8rem;
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    font-size: 0.85rem;
    border-radius: 10px 10px 0 0;
}

.parameter-panel-body[b-xxzaj9qo2j] {
    flex: 1;
    overflow-y: auto;
    padding: 0.85rem;
}

.parameter-item[b-xxzaj9qo2j] {
    margin-bottom: 0.9rem;
}

.parameter-item:last-child[b-xxzaj9qo2j] {
    margin-bottom: 0;
}

.parameter-label[b-xxzaj9qo2j] {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #495057;
    margin-bottom: 0.25rem;
}

.parameter-input-group[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
}

.parameter-input-group .form-control[b-xxzaj9qo2j],
.parameter-input-group .form-select[b-xxzaj9qo2j] {
    flex: 1;
}

.parameter-info[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.parameter-info .badge[b-xxzaj9qo2j] {
    font-size: 0.66rem;
    font-weight: 500;
}

.parameter-panel-footer[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.8rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
    border-radius: 0 0 10px 10px;
}

/* Mini icon button (matches the global widget header buttons). */
.widget-action-btn[b-xxzaj9qo2j] {
    border: none;
    background: transparent;
    color: #6c757d;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.2rem 0.4rem;
    font-size: 0.9rem;
}

.widget-action-btn:hover[b-xxzaj9qo2j] {
    background: #eef0f2;
    color: #343a40;
}

.dashboard-btn[b-xxzaj9qo2j] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.dashboard-btn:disabled[b-xxzaj9qo2j] {
    opacity: 0.55;
    cursor: default;
}

.dashboard-btn-primary[b-xxzaj9qo2j] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-xxzaj9qo2j] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetSelector.razor.rz.scp.css */
/* ============================================================================
   WIDGET SELECTOR (Add-widget gallery modal)
   ============================================================================
   Component-scoped styles for the two-column add-widget dialog. Ported from the
   Praxis dashboard.css widget-selector rules. */

.widget-selector-backdrop[b-7oln49sgre] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
}

.widget-selector-dialog[b-7oln49sgre] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 900px;
    max-height: 82vh;
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.widget-selector-header[b-7oln49sgre] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
}

.widget-selector-header h5[b-7oln49sgre] {
    margin: 0;
    font-weight: 600;
    color: #2c3e50;
}

/* Search row */
.widget-search-row[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 10px 20px;
    border-bottom: 1px solid #eee;
    background: #fafafa;
}

.widget-search-box[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    flex: 1;
    max-width: 460px;
}

.widget-search-box i[b-7oln49sgre] {
    color: #999;
}

.widget-search-box input[b-7oln49sgre] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 0.9rem;
}

.widget-search-box input[b-7oln49sgre]::placeholder {
    color: #aaa;
}

.btn-clear-search[b-7oln49sgre] {
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-clear-search:hover[b-7oln49sgre] {
    color: #666;
}

.multi-level-filter[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    color: #555;
    cursor: pointer;
    white-space: nowrap;
    padding: 6px 10px;
    border-radius: 6px;
    transition: background 0.2s ease;
}

.multi-level-filter:hover[b-7oln49sgre] {
    background: #e8e8e8;
}

.multi-level-filter input[type="checkbox"][b-7oln49sgre] {
    cursor: pointer;
}

.multi-level-filter i[b-7oln49sgre] {
    color: #28a745;
}

/* Body: two columns */
.widget-selector-body[b-7oln49sgre] {
    display: flex;
    flex: 1;
    overflow: hidden;
}

.widget-selector-categories[b-7oln49sgre] {
    width: 210px;
    border-right: 1px solid #eee;
    padding: 15px;
    overflow-y: auto;
    flex-shrink: 0;
}

.category-btn[b-7oln49sgre] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    text-align: left;
    color: #555;
    margin-bottom: 2px;
}

.category-btn:hover[b-7oln49sgre] {
    background: #f5f5f5;
}

.category-btn.active[b-7oln49sgre] {
    background: #f3effb;
    color: #6f42c1;
    font-weight: 600;
}

.category-btn .badge[b-7oln49sgre] {
    margin-left: auto;
    background: #eee;
    color: #666;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 0.75rem;
}

.category-btn.active .badge[b-7oln49sgre] {
    background: #6f42c1;
    color: white;
}

/* Widget cards grid */
.widget-selector-widgets[b-7oln49sgre] {
    flex: 1;
    padding: 15px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 15px;
    align-content: start;
}

.widget-card[b-7oln49sgre] {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 15px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.widget-card:hover[b-7oln49sgre] {
    border-color: #6f42c1;
    box-shadow: 0 2px 8px rgba(111, 66, 193, 0.15);
}

.widget-card.selected[b-7oln49sgre] {
    border-color: #6f42c1;
    background: #f3effb;
}

.widget-card-header[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.widget-card-icon[b-7oln49sgre] {
    color: #6f42c1;
}

.widget-card-name[b-7oln49sgre] {
    font-weight: 600;
    color: #333;
    flex: 1;
}

.widget-type-badge[b-7oln49sgre] {
    font-size: 0.7rem;
    padding: 2px 6px;
    background: #f5f5f5;
    color: #666;
    border-radius: 4px;
    text-transform: uppercase;
}

.drill-down-indicator[b-7oln49sgre] {
    font-size: 0.9rem;
    margin-left: 4px;
    cursor: help;
    opacity: 0.9;
}

.drill-down-indicator:hover[b-7oln49sgre] {
    opacity: 1;
    transform: scale(1.1);
}

.multi-level-indicator[b-7oln49sgre] {
    font-size: 0.85rem;
    margin-left: 4px;
    cursor: help;
    opacity: 0.9;
}

.multi-level-indicator:hover[b-7oln49sgre] {
    opacity: 1;
    transform: scale(1.1);
}

.widget-card-description[b-7oln49sgre] {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 10px;
    line-height: 1.4;
}

.widget-card-meta[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.75rem;
    color: #999;
}

.widget-category i[b-7oln49sgre] {
    margin-right: 4px;
}

.system-widget-badge[b-7oln49sgre] {
    background: #e8f5e9;
    color: #4CAF50;
    padding: 2px 6px;
    border-radius: 4px;
}

.no-widgets-message[b-7oln49sgre] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: #999;
}

.no-widgets-message i[b-7oln49sgre] {
    font-size: 3rem;
    margin-bottom: 15px;
    opacity: 0.3;
}

/* Footer */
.widget-selector-footer[b-7oln49sgre] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 15px 20px;
    border-top: 1px solid #eee;
}

.selection-actions[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.selection-actions button[b-7oln49sgre] {
    white-space: nowrap;
}

.selection-info[b-7oln49sgre] {
    font-size: 0.85rem;
    color: #666;
}

.footer-buttons[b-7oln49sgre] {
    display: flex;
    gap: 10px;
}

@media (max-width: 768px) {
    .widget-selector-body[b-7oln49sgre] {
        flex-direction: column;
    }

    .widget-selector-categories[b-7oln49sgre] {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #eee;
        display: flex;
        overflow-x: auto;
        padding: 10px;
    }

    .category-btn[b-7oln49sgre] {
        flex-shrink: 0;
        margin-bottom: 0;
        margin-right: 5px;
    }
}
/* _content/CalendarBlazor/Components/Dashboard/Widgets/DataTableWidget.razor.rz.scp.css */
/* Data-table widget: drill-down affordance, sortable headers, per-column filter
   button and the row-count footer. Mirrors the Praxis table widget styling. */

.data-table-widget[b-3ybguegru0] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.table-container[b-3ybguegru0] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.dashboard-data-table th[b-3ybguegru0] {
    white-space: nowrap;
}

.dashboard-data-table th.sorted[b-3ybguegru0] {
    background: #f1ecfb;
    color: #6f42c1;
}

.column-header-text[b-3ybguegru0] {
    cursor: pointer;
    user-select: none;
}

.sort-icon[b-3ybguegru0] {
    font-size: 0.75rem;
}

/* Per-column Excel-style filter button in the header */
.column-filter-btn[b-3ybguegru0] {
    background: none;
    border: none;
    padding: 0 2px;
    margin-left: 4px;
    cursor: pointer;
    color: #adb5bd;
    font-size: 0.7rem;
    vertical-align: middle;
    line-height: 1;
}

.column-filter-btn:hover[b-3ybguegru0] {
    color: #495057;
}

.column-filter-btn.filtered[b-3ybguegru0] {
    color: #6f42c1;
}

/* Footer row count / clear-filters */
.table-footer[b-3ybguegru0] {
    padding: 4px 2px 0;
    font-size: 0.72rem;
    color: #999;
    border-top: 1px solid #eef0f2;
    flex-shrink: 0;
}

.table-footer-clear[b-3ybguegru0] {
    font-size: 0.72rem;
    color: #6f42c1;
    text-decoration: none;
}

.table-footer-clear:hover[b-3ybguegru0] {
    text-decoration: underline;
}

/* Drill-down affordance for data-table rows. */
.data-table-widget.drilldown-enabled tbody tr.clickable-row[b-3ybguegru0] {
    cursor: pointer;
}

.data-table-widget.drilldown-enabled tbody tr.clickable-row:hover[b-3ybguegru0] {
    background: #f3effb;
}
/* _content/CalendarBlazor/Components/Dashboard/Widgets/KpiCardWidget.razor.rz.scp.css */
/* Drill-down affordance for KPI metric rows. */

.kpi-card.drilldown-enabled .kpi-value-row.clickable[b-0pbsfgcbjy] {
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.15s ease;
}

.kpi-card.drilldown-enabled .kpi-value-row.clickable:hover[b-0pbsfgcbjy] {
    background: #f3effb;
}
/* _content/CalendarBlazor/Components/Layout/BlankLayout.razor.rz.scp.css */
/* BlankLayout (standalone new-tab pages) — masthead mirrors the main TabLayout header. */
.blank-layout[b-4r9blc4rfe] {
    min-height: 100vh;
    background-color: #f4f5f7;
}

.blank-header[b-4r9blc4rfe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 22px;
    margin: 0 14px;
    background: #ffffff;
}

.blank-header-left[b-4r9blc4rfe] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.blank-header-logo[b-4r9blc4rfe] {
    /* Parity with WebForms SetCasinoLogo/SetHeaderLogos: render at natural size, bounded only by
       the upload caps (MaxLogoHeight 90 / MaxLogoWidth 336) — matching the main TabLayout header. */
    max-height: 90px;
    max-width: 336px;
    height: auto;
    width: auto;
    display: block;
}

.blank-header-right[b-4r9blc4rfe] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.blank-header-copyright[b-4r9blc4rfe] {
    font-size: 0.72rem;
    color: #666;
    line-height: 1.4;
}

/* Maroon underline (matches the WebForms MenuBackground #8b0000 + navy rule). */
.blank-header-accent[b-4r9blc4rfe] {
    height: 6px;
    margin: 0 14px;
    background-color: #8b0000;
    border-bottom: 2px solid #000080;
}

.blank-content[b-4r9blc4rfe] {
    background-color: #ffffff;
    border: 1px solid #ccc;
    border-top: none;
    margin: 0 14px;
    padding: 22px;
    min-height: 420px;
}

/* Center page content with slight side spacing (like the WebForms centered table). */
.blank-content-inner[b-4r9blc4rfe] {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}
/* _content/CalendarBlazor/Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-5veautnela],
.components-reconnect-repeated-attempt-visible[b-5veautnela],
.components-reconnect-failed-visible[b-5veautnela],
.components-pause-visible[b-5veautnela],
.components-resume-failed-visible[b-5veautnela],
.components-rejoining-animation[b-5veautnela] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-5veautnela],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-5veautnela],
#components-reconnect-modal.components-reconnect-failed[b-5veautnela],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-5veautnela] {
    display: block;
}


#components-reconnect-modal[b-5veautnela] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-5veautnela 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-5veautnela 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-5veautnela 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-5veautnela]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-5veautnela 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-5veautnela {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-5veautnela {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-5veautnela {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-5veautnela] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-5veautnela] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-5veautnela] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-5veautnela] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-5veautnela] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-5veautnela] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-5veautnela] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-5veautnela 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-5veautnela] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-5veautnela {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* _content/CalendarBlazor/Components/Layout/TabLayout.razor.rz.scp.css */
/* TabLayout.razor.css - modern tab-based navigation (casino theme).
   Ported/restyled from the Praxis TabLayout. */

.tab-layout[b-eahtnhp8ia] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #f4f5f7;
}

/* Header (white, matches the legacy layout: logo left, Terms center, address right;
   centered with slight spacing on each side like the WebForms masthead). */
.tab-header[b-eahtnhp8ia] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 22px;
    margin: 0 14px;
    background: #ffffff;
    color: #333;
}

.tab-header-left[b-eahtnhp8ia] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.tab-header-logo-link[b-eahtnhp8ia] {
    display: inline-flex;
}

.tab-header-logo[b-eahtnhp8ia] {
    /* Parity with WebForms SetCasinoLogo/SetHeaderLogos: the logo renders at its NATURAL size,
       bounded only by the upload caps (MaxLogoHeight 90 / MaxLogoWidth 336). Forcing a fixed
       height shrank taller company logos vs. the legacy masthead. */
    max-height: 90px;
    max-width: 336px;
    height: auto;
    width: auto;
    display: block;
}

.tab-header-center[b-eahtnhp8ia] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.tab-header-terms[b-eahtnhp8ia] {
    color: #1a5fb4;
    font-weight: bold;
    text-decoration: underline;
    font-size: 12px;
}

.tab-header-terms:hover[b-eahtnhp8ia] {
    color: #0d3c78;
}

.tab-header-user-row[b-eahtnhp8ia] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.tab-header-user[b-eahtnhp8ia] {
    font-size: 0.85rem;
    font-weight: bold;
    color: #2980b9;
    white-space: nowrap;
}

.tab-header-right[b-eahtnhp8ia] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.tab-header-copyright[b-eahtnhp8ia] {
    font-size: 0.72rem;
    color: #666;
    line-height: 1.4;
}

/* Maroon underline bar (matches the WebForms MenuBackground #8b0000 + navy rule),
   inset slightly on each side to align with the centered content. */
.tab-header-accent[b-eahtnhp8ia] {
    height: 6px;
    margin: 0 14px;
    background-color: #8b0000;
    border-bottom: 2px solid #000080;
}

/* Tab strip - modern card tabs (a fresh take on the Praxis blue palette) */
.tab-container[b-eahtnhp8ia] {
    background: #f7f9fc;
    border-bottom: 2px solid #0d6efd;
    padding: 8px 14px 0 14px;
}

.tab-list[b-eahtnhp8ia] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
}

.tab-item[b-eahtnhp8ia] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background-color: #e9eef5;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #5a6b7b;
    white-space: nowrap;
    position: relative;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.tab-item-icon[b-eahtnhp8ia] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.tab-item:hover:not(.disabled):not(.selected)[b-eahtnhp8ia] {
    background-color: #dce8f7;
    color: #1a5fb4;
    transform: translateY(-2px);
}

.tab-item.selected[b-eahtnhp8ia] {
    background-color: #ffffff;
    color: #0d6efd;
    box-shadow: 0 -2px 8px rgba(13, 110, 253, 0.15);
    z-index: 2;
}

/* Blue accent bar across the top of the active tab */
.tab-item.selected[b-eahtnhp8ia]::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #0d6efd, #4aa3df);
    border-radius: 10px 10px 0 0;
}

.tab-item.selected .tab-item-icon[b-eahtnhp8ia] {
    opacity: 1;
}

.tab-item.disabled[b-eahtnhp8ia] {
    background-color: #f0f0f0;
    color: #b3b3b3;
    cursor: not-allowed;
}

/* Content */
.tab-content[b-eahtnhp8ia] {
    flex: 1;
    background-color: #fff;
    padding: 22px;
    border: 1px solid #ccc;
    border-top: none;
    margin: 0 14px;
    min-height: 420px;
    position: relative;
}

/* Center page content (mirrors the centered WebForms MainTable) with a capped width. */
.tab-content-inner[b-eahtnhp8ia] {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}

/* Footer */
.tab-footer[b-eahtnhp8ia] {
    text-align: center;
    padding: 12px 0;
    margin-top: auto;
    background-color: #f0eaec;
    border-top: 1px solid #e0d6d9;
}

.copyright-footer[b-eahtnhp8ia] {
    font-size: 0.72rem;
    color: #6c8194;
}

/* Responsive */
@media (max-width: 1100px) {
    .tab-item[b-eahtnhp8ia] {
        padding: 9px 12px;
        font-size: 0.74rem;
    }
}

@media (max-width: 768px) {
    .tab-header-user[b-eahtnhp8ia] {
        display: none;
    }

    .tab-item[b-eahtnhp8ia] {
        padding: 7px 9px;
        font-size: 0.7rem;
    }

    .tab-item span[b-eahtnhp8ia] {
        display: none;
    }
}

/* ---- Ace floating launcher + slide-over chat (end-user) ---- */
.ace-fab[b-eahtnhp8ia] {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    background: #262261;
    color: #fff;
    font-size: 22px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
    cursor: pointer;
    z-index: 1050;
    transition: transform .12s ease, background .12s ease;
}

.ace-fab:hover[b-eahtnhp8ia] {
    background: #0069d9;
    transform: translateY(-2px);
}

/* Disabled state: the error guard turned the chat off app-wide. Muted, non-interactive,
   and the title attribute shows the "temporarily unavailable" message on hover. */
.ace-fab.disabled[b-eahtnhp8ia],
.ace-fab:disabled[b-eahtnhp8ia] {
    background: #9a9a9a;
    cursor: not-allowed;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
}

.ace-fab.disabled:hover[b-eahtnhp8ia],
.ace-fab:disabled:hover[b-eahtnhp8ia] {
    background: #9a9a9a;
    transform: none;
}

.ace-slideover[b-eahtnhp8ia] {
    position: fixed;
    right: 22px;
    bottom: 88px;
    width: 420px;
    min-width: 320px;
    max-width: calc(100vw - 44px);
    height: 560px;
    min-height: 360px;
    max-height: calc(100vh - 130px);
    background: #fff;
    border: 1px solid #d9d9e3;
    border-radius: .7rem;
    box-shadow: 0 10px 34px rgba(0, 0, 0, .25);
    overflow: hidden;
    z-index: 1050;
}

/* Top-left drag handle: the panel is pinned bottom-right, so it resizes from this corner. */
.ace-resize-grip[b-eahtnhp8ia] {
    position: absolute;
    top: 0;
    left: 0;
    width: 18px;
    height: 18px;
    cursor: nwse-resize;
    z-index: 2;
    border-top-left-radius: .7rem;
    background: linear-gradient(135deg, rgba(38, 34, 97, .55) 0 38%, transparent 38%);
    touch-action: none;
}

.ace-resize-grip:hover[b-eahtnhp8ia] {
    background: linear-gradient(135deg, rgba(38, 34, 97, .9) 0 42%, transparent 42%);
}
/* _content/CalendarBlazor/Components/Pages/Calendar.razor.rz.scp.css */
/* Calendar page scoped styles. */

/* Monthly Totals panel — mirrors the Prior Year panel container (black-bordered box + gray header bar) so
   the two sit side by side in the filter row. The table itself uses the system-standard .Grid style (navy
   headings, striped rows, Arial 12px). */
.monthly-totals-panel[b-qh2fx1pscl] {
    border: 1px solid #000000;
    border-radius: 8px;
    background-color: #fff;
    align-self: stretch;
}

.monthly-totals-head[b-qh2fx1pscl] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-bottom: 1px solid #000000;
    background-color: #f3f3f3;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

/* Small "show" chip shown in place of a closed Monthly Totals / Event Expense panel (reopens it). */
.panel-show-chip[b-qh2fx1pscl] {
    margin: 4px;
    align-self: flex-start;
}

.monthly-totals-title[b-qh2fx1pscl] {
    font-weight: 700;
}

.monthly-totals-body[b-qh2fx1pscl] {
    padding: 6px;
}

/* Size the grid to its content (the shared .Grid defaults to width:100%) and keep numbers on one line. */
.monthly-totals-table[b-qh2fx1pscl] {
    width: auto;
}

    .monthly-totals-table td[b-qh2fx1pscl],
    .monthly-totals-table th[b-qh2fx1pscl] {
        white-space: nowrap;
    }

/* White hover tooltip for the Account(s) multi-select filter button (lists the selected accounts).
   The base .acct-tip (app.css) renders dark; here we give the FILTER tooltip a white background with
   readable dark text and a subtle border/shadow. Scoped to the .dropdown wrapper so ONLY the filter
   tooltip is affected (the top-right header tooltip uses .acct-tip-light separately). */
.dropdown.acct-tip-wrap .acct-tip[b-qh2fx1pscl] {
    background: #fff;
    color: #222;
    border: 1px solid #d9d9e3;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
}

/* Collapsible month-grid card headers (click to open/close, bold +/- indicator). */
.calendar-collapse-header[b-qh2fx1pscl] {
    cursor: pointer;
    user-select: none;
    /* Match the standard app accordion header (calendar-grid .collapsible-group-header) =
       WebForms .accordionHeader: light-blue bar, black text, black border. */
    background-color: #bfdbff;
    color: #000000;
    border-color: #000000;
}

.calendar-collapse-header:hover[b-qh2fx1pscl] {
    background-color: #a9cdf5;
}

.calendar-collapse-sign[b-qh2fx1pscl] {
    font-weight: bold;
    font-size: 1.1rem;
    line-height: 1;
    margin-right: 8px;
    display: inline-block;
    width: 14px;
    text-align: center;
}

/* Prior Year panel: a BLACK-bordered box, top-right of the filter row, holding a HORIZONTAL series of
   prior-year day cells (one per click, building left-to-right). Hidden until a day is clicked; the X
   button closes it and clears the series. */
.prior-year-panel[b-qh2fx1pscl] {
    border: 1px solid #000000;
    border-radius: 8px;
    background-color: #fff;
    min-width: 260px;
    max-width: 100%;
    align-self: stretch;
}

.prior-year-head[b-qh2fx1pscl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    border-bottom: 1px solid #000000;
    background-color: #f3f3f3;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.prior-year-title[b-qh2fx1pscl] {
    font-weight: 700;
}

.prior-year-close[b-qh2fx1pscl] {
    margin: 0;
}

/* The body lays the accumulated prior-year tiles out left-to-right, scrolling horizontally when the
   series outgrows the panel width. */
.prior-year-body[b-qh2fx1pscl] {
    padding: 6px;
    display: flex;
    flex-direction: row;
    gap: 6px;
    overflow-x: auto;
}

/* Each prior-year tile holds one single-day CalendarMonth; keep a fixed, readable width so the series
   reads as discrete year columns. */
.prior-year-tile[b-qh2fx1pscl] {
    flex: 0 0 auto;
    width: 240px;
}
/* _content/CalendarBlazor/Components/Pages/DashboardAdmin.razor.rz.scp.css */
/* Dashboard administration page. */

/* Widget list: search box, sortable headers, active toggle, delete confirm (gap: admin list). */
.admin-search[b-62scijoi93] {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 1 1 260px;
    max-width: 320px;
}

.admin-search-icon[b-62scijoi93] {
    position: absolute;
    left: 8px;
    color: #adb5bd;
    font-size: 0.8rem;
    pointer-events: none;
}

.admin-search-input[b-62scijoi93] {
    padding-left: 26px;
    padding-right: 26px;
}

.admin-search-clear[b-62scijoi93] {
    position: absolute;
    right: 6px;
    border: none;
    background: transparent;
    color: #adb5bd;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.admin-search-clear:hover[b-62scijoi93] {
    color: #6c757d;
}

.admin-count[b-62scijoi93] {
    color: #6c757d;
    font-size: 0.85rem;
    white-space: nowrap;
}

.admin-table th.sortable[b-62scijoi93] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.admin-table th.sortable:hover[b-62scijoi93] {
    color: #6f42c1;
}

.admin-desc-cell[b-62scijoi93] {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #6c757d;
}

.admin-toggle[b-62scijoi93] {
    border: none;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.85rem;
}

.admin-toggle.on[b-62scijoi93] {
    color: #198754;
}

.admin-toggle.off[b-62scijoi93] {
    color: #adb5bd;
}

.admin-toggle:disabled[b-62scijoi93] {
    cursor: not-allowed;
    opacity: 0.6;
}

.admin-toggle i[b-62scijoi93] {
    font-size: 1.05rem;
}

/* Delete confirmation dialog */
.admin-confirm-backdrop[b-62scijoi93] {
    position: fixed;
    inset: 0;
    z-index: 100001;
    background: rgba(33, 37, 41, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.admin-confirm[b-62scijoi93] {
    width: min(440px, 92vw);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.admin-confirm-header[b-62scijoi93] {
    display: flex;
    align-items: center;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
}

.admin-confirm-body[b-62scijoi93] {
    padding: 1rem;
    font-size: 0.9rem;
    color: #495057;
}

.admin-confirm-footer[b-62scijoi93] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 0.75rem 1rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}

.admin-header[b-62scijoi93] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.admin-header-left[b-62scijoi93] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.admin-header-icon[b-62scijoi93] {
    color: #6f42c1;
    font-size: 1.3rem;
}

.admin-header-title[b-62scijoi93] {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2c3e50;
}

.admin-back[b-62scijoi93] {
    font-size: 0.85rem;
    color: #6f42c1;
    text-decoration: none;
}

.admin-back:hover[b-62scijoi93] {
    text-decoration: underline;
}

.admin-tabs[b-62scijoi93] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 2px solid #e3e6ea;
    margin-bottom: 1rem;
}

.admin-tab[b-62scijoi93] {
    border: none;
    background: transparent;
    padding: 0.55rem 1rem;
    font-size: 0.9rem;
    color: #6c757d;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
}

.admin-tab:hover[b-62scijoi93] {
    color: #495057;
}

.admin-tab.active[b-62scijoi93] {
    color: #6f42c1;
    border-bottom-color: #6f42c1;
    font-weight: 600;
}

.admin-panel[b-62scijoi93] {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.admin-panel-toolbar[b-62scijoi93] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    color: #6c757d;
    font-size: 0.85rem;
}

.admin-table[b-62scijoi93] {
    font-size: 0.85rem;
}

.admin-editor[b-62scijoi93] {
    background: #fff;
    border: 1px solid #d8c8f3;
    border-radius: 10px;
    padding: 1rem;
    margin-top: 1rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.admin-editor h5[b-62scijoi93] {
    color: #2c3e50;
    margin-bottom: 0.75rem;
}

.admin-form-grid[b-62scijoi93] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem;
}

.admin-form-grid label[b-62scijoi93] {
    display: flex;
    flex-direction: column;
    font-size: 0.78rem;
    font-weight: 600;
    color: #495057;
    gap: 0.25rem;
}

.admin-form-wide[b-62scijoi93] {
    grid-column: 1 / -1;
}

.admin-form-check[b-62scijoi93] {
    flex-direction: row !important;
    align-items: center;
    gap: 0.4rem !important;
}

.admin-editor-actions[b-62scijoi93] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.admin-code[b-62scijoi93] {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.78rem;
    white-space: pre;
    overflow-wrap: normal;
    overflow-x: auto;
}
/* _content/CalendarBlazor/Components/Pages/DataCleanup.razor.rz.scp.css */
/* ============================================================================
   Data Cleanup wizard — polished, modern multi-step UI.
   ============================================================================ */
.cleanup-wizard[b-pimnwrg7fp] {
    max-width: 60rem;
    margin: 0 auto;
    padding: 1.25rem 1.25rem 0;
}

/* ---- Step rail -------------------------------------------------------- */
.wiz-steps[b-pimnwrg7fp] {
    display: flex;
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    counter-reset: step;
}

.wiz-step[b-pimnwrg7fp] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    gap: .4rem;
    font-size: .85rem;
}

/* connector line */
.wiz-step[b-pimnwrg7fp]::before {
    content: "";
    position: absolute;
    top: 1rem;
    left: -50%;
    width: 100%;
    height: 2px;
    background: #dee2e6;
    z-index: 0;
}

.wiz-step:first-child[b-pimnwrg7fp]::before { display: none; }

.wiz-step.done[b-pimnwrg7fp]::before,
.wiz-step.active[b-pimnwrg7fp]::before { background: var(--bs-primary, #0d6efd); }

.wiz-step-marker[b-pimnwrg7fp] {
    position: relative;
    z-index: 1;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    background: #fff;
    border: 2px solid #dee2e6;
    color: #adb5bd;
    transition: all .2s ease;
}

.wiz-step.active .wiz-step-marker[b-pimnwrg7fp] {
    border-color: var(--bs-primary, #0d6efd);
    color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 4px rgba(13,110,253,.15);
}

.wiz-step.done .wiz-step-marker[b-pimnwrg7fp] {
    background: var(--bs-primary, #0d6efd);
    border-color: var(--bs-primary, #0d6efd);
    color: #fff;
}

.wiz-step-label[b-pimnwrg7fp] { color: #6c757d; }
.wiz-step.active .wiz-step-label[b-pimnwrg7fp] { color: #212529; font-weight: 600; }

/* ---- Body ------------------------------------------------------------- */
.wiz-body[b-pimnwrg7fp] {
    min-height: 18rem;
    border: 1px solid #e9ecef;
    border-radius: .6rem;
    padding: 1.25rem 1.5rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

.wiz-title[b-pimnwrg7fp] { margin: 0 0 .25rem; font-weight: 600; }
.wiz-help[b-pimnwrg7fp] { color: #6c757d; margin-bottom: 1.1rem; }
.wiz-field[b-pimnwrg7fp] { margin-bottom: 1.1rem; }

/* ---- Mode cards ------------------------------------------------------- */
.wiz-mode-cards[b-pimnwrg7fp] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.wiz-mode-card[b-pimnwrg7fp] {
    text-align: left;
    border: 2px solid #e9ecef;
    border-radius: .6rem;
    padding: 1.1rem 1.2rem;
    background: #fff;
    cursor: pointer;
    transition: all .15s ease;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.wiz-mode-card:hover[b-pimnwrg7fp] { border-color: #adb5bd; box-shadow: 0 2px 8px rgba(0,0,0,.06); }

.wiz-mode-card.selected[b-pimnwrg7fp] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 3px rgba(13,110,253,.12);
}

.wiz-mode-card > i[b-pimnwrg7fp] { font-size: 1.5rem; color: var(--bs-primary, #0d6efd); }
.wiz-mode-title[b-pimnwrg7fp] { font-weight: 600; font-size: 1.05rem; }
.wiz-mode-desc[b-pimnwrg7fp] { color: #6c757d; font-size: .88rem; }

.wiz-keep-note[b-pimnwrg7fp] { margin-top: .25rem; }

/* ---- Area selection list --------------------------------------------- */
.wiz-selectall[b-pimnwrg7fp] { margin-bottom: .5rem; font-size: .85rem; }

.wiz-areas[b-pimnwrg7fp] {
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    overflow: hidden;
}

.wiz-area[b-pimnwrg7fp] {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .65rem .9rem;
    border-bottom: 1px solid #f1f3f5;
}

.wiz-area:last-child[b-pimnwrg7fp] { border-bottom: none; }
.wiz-area.chosen[b-pimnwrg7fp] { background: rgba(13,110,253,.05); }
.wiz-area.forced[b-pimnwrg7fp] { background: rgba(255,193,7,.07); }
.wiz-area.empty[b-pimnwrg7fp] { opacity: .55; }

.wiz-area-check[b-pimnwrg7fp] { width: 1.5rem; text-align: center; }
.wiz-area-icon[b-pimnwrg7fp] { width: 1.75rem; text-align: center; color: #495057; font-size: 1.05rem; }
.wiz-area-main[b-pimnwrg7fp] { flex: 1 1 auto; min-width: 0; }
.wiz-area-name[b-pimnwrg7fp] { font-weight: 600; }
.wiz-area-desc[b-pimnwrg7fp] { color: #6c757d; font-size: .82rem; }
.wiz-area-counts[b-pimnwrg7fp] { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }

.wiz-badge[b-pimnwrg7fp] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    padding: .15rem .5rem;
    border-radius: 1rem;
    white-space: nowrap;
}

.del-badge[b-pimnwrg7fp]   { background: #f8d7da; color: #842029; }
.keep-badge[b-pimnwrg7fp]  { background: #e2e3e5; color: #41464b; }
.none-badge[b-pimnwrg7fp]  { background: #f1f3f5; color: #868e96; }
.forced-badge[b-pimnwrg7fp]{ background: #fff3cd; color: #664d03; margin-left: .4rem; }

.wiz-runningtotal[b-pimnwrg7fp] {
    margin-top: 1rem;
    padding: .7rem .9rem;
    background: #f8f9fa;
    border-radius: .5rem;
    color: #343a40;
}

/* ---- Review ----------------------------------------------------------- */
.wiz-review[b-pimnwrg7fp] { margin-bottom: 1rem; }
.wiz-review thead th[b-pimnwrg7fp] { border-top: none; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; color: #868e96; }

/* ---- Done ------------------------------------------------------------- */
.wiz-done[b-pimnwrg7fp] { text-align: center; padding: 1rem 0 1.25rem; }
.wiz-done > i[b-pimnwrg7fp] { font-size: 3rem; }

/* ---- Footer ----------------------------------------------------------- */
.wiz-footer[b-pimnwrg7fp] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem .25rem 1.25rem;
}

.wiz-footer-right[b-pimnwrg7fp] { display: flex; gap: .6rem; }

@media (max-width: 640px) {
    .wiz-mode-cards[b-pimnwrg7fp] { grid-template-columns: 1fr; }
    .wiz-step-label[b-pimnwrg7fp] { display: none; }
}

/* Danger mode card: "Delete everything and the casino". */
.wiz-mode-danger > i[b-pimnwrg7fp] { color: #c0392b; }
.wiz-mode-danger.selected[b-pimnwrg7fp] { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192, 57, 43, .12); }

/* Inline "view the data that will be deleted" rows panel. */
.wiz-area-rows[b-pimnwrg7fp] { width: 100%; max-height: 320px; overflow: auto; margin-top: .25rem; }
.wiz-rows-table[b-pimnwrg7fp] { font-size: .8rem; }
.wiz-rows-table th[b-pimnwrg7fp] { white-space: nowrap; position: sticky; top: 0; background: #f1f3f5; }
/* _content/CalendarBlazor/Components/Pages/EventDetails.razor.rz.scp.css */
/* EventDetails page scoped styles. */

/* Hover-activated info popover (replaces the WebForms Information.jpg RadToolTip). */
.assignment-info-wrap[b-g7bnssw2af] {
    position: relative;
    display: inline-block;
}

.assignment-info-icon[b-g7bnssw2af] {
    color: #2cace2;
    font-size: 1.6rem;
    cursor: help;
}

    .assignment-info-icon:hover[b-g7bnssw2af] {
        color: #1a9ad1;
    }

.assignment-info-popover[b-g7bnssw2af] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1080;
    width: 340px;
    max-height: 420px;
    overflow-y: auto;
    margin-top: 6px;
    padding: 14px 16px;
    background-color: #ffffff;
    border: 1px solid #1a9ad1;
    border-radius: 6px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
    text-align: left;
    font-size: 0.85rem;
    cursor: default;
}

.assignment-info-title[b-g7bnssw2af] {
    font-weight: bold;
    color: #1a9ad1;
    border-bottom: 1px solid #d5e8f3;
    padding-bottom: 6px;
    margin-bottom: 8px;
}
/* _content/CalendarBlazor/Components/Pages/EventSchedule.razor.rz.scp.css */
/* EventSchedule page scoped styles. */

/* Hover-activated info popover (replaces the WebForms ComputeEventTotal RadToolTip). */
.assignment-info-wrap[b-zrrvyef9pt] {
    position: relative;
    display: inline-block;
}

.assignment-info-icon[b-zrrvyef9pt] {
    color: #2cace2;
    font-size: 1.6rem;
    cursor: help;
}

    .assignment-info-icon:hover[b-zrrvyef9pt] {
        color: #1a9ad1;
    }

.assignment-info-popover[b-zrrvyef9pt] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1080;
    width: 340px;
    max-height: 420px;
    overflow-y: auto;
    margin-top: 6px;
    padding: 14px 16px;
    background-color: #ffffff;
    border: 1px solid #1a9ad1;
    border-radius: 6px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
    text-align: left;
    font-size: 0.85rem;
    cursor: default;
}

.assignment-info-title[b-zrrvyef9pt] {
    font-weight: bold;
    color: #1a9ad1;
    border-bottom: 1px solid #d5e8f3;
    padding-bottom: 6px;
    margin-bottom: 8px;
}
/* _content/CalendarBlazor/Components/Pages/FinancialsDaily.razor.rz.scp.css */
/* Daily Financials scoped styles. */

/* Keep the in-grid amount entry boxes compact (parity with the 75px WebForms textboxes). */
.financials-amount[b-x248yur0mm] {
    max-width: 90px;
    display: inline-block;
}

/* Expense/Revenue/Profit total rows stand out above the alternating row colors.
   Higher specificity than the global .Grid tbody tr:nth-child(even) rule so totals win. */
.Grid tbody tr.table-total-row[b-x248yur0mm] {
    background-color: #fff3cd;
    font-weight: bold;
}
/* _content/CalendarBlazor/Components/Shared/CheckboxSelectList.razor.rz.scp.css */
/* CheckboxSelectList — WebForms-style multi-select checkbox dropdown. */
.msdd-wrap[b-lk2hryw4ft] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* The combo box (relative anchor for the dropdown panel). */
.msdd[b-lk2hryw4ft] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

/* Closed combo: looks like a <select>; comma-joined text truncates with an ellipsis. */
.msdd-toggle[b-lk2hryw4ft] {
    width: 100%;
    cursor: pointer;
    font-size: 12px;
}

.msdd-toggle > span[b-lk2hryw4ft] {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Full-screen catcher so an outside click closes the dropdown (no JS needed). */
.msdd-backdrop[b-lk2hryw4ft] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

/* The open checkbox panel, overlaying just below the combo. */
.msdd-panel[b-lk2hryw4ft] {
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 2px;
    max-height: 230px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    padding: 6px 10px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.msdd-panel .form-check[b-lk2hryw4ft] {
    margin-bottom: 2px;
}

/* "Select All" toggle beside the combo. */
.msdd-selectall[b-lk2hryw4ft] {
    flex: 0 0 auto;
    white-space: nowrap;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Shared/ReportRunner.razor.rz.scp.css */
/* ReportRunner layout lives in the global stylesheet (wwwroot/app.css, the .rp-* rules) so the
   /reports hub can share the exact same compact horizontal report-parameter layout. */
/* _content/CalendarBlazor/Components/Shared/RichTextEditor.razor.rz.scp.css */
/* RichTextEditor scoped styles — simple toolbar + contenteditable surface. */
.rte[b-08vnrv0l7q] {
    border: 1px solid #000000;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
}

.rte-toolbar[b-08vnrv0l7q] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: wrap;
    padding: 4px 6px;
    background-color: #bfdbff;
    border-bottom: 1px solid #000000;
}

.rte-toolbar button[b-08vnrv0l7q] {
    min-width: 30px;
    height: 28px;
    border: 1px solid #8aa9d6;
    background: #fff;
    border-radius: 3px;
    cursor: pointer;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1;
}

.rte-toolbar button:hover[b-08vnrv0l7q] {
    background: #e8f0fc;
}

.rte-sep[b-08vnrv0l7q] {
    width: 1px;
    height: 20px;
    background: #8aa9d6;
    margin: 0 4px;
}

.rte-color-label[b-08vnrv0l7q] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    font-size: 13px;
    color: #333;
}

.rte-color-input[b-08vnrv0l7q] {
    width: 30px;
    height: 28px;
    border: 1px solid #8aa9d6;
    border-radius: 3px;
    cursor: pointer;
    padding: 2px;
}

.rte-content[b-08vnrv0l7q] {
    padding: 8px 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    outline: none;
    overflow-y: auto;
    max-height: 50vh;
}
