/* _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;
    grid-template-columns: repeat(7, 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;
    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:hover[b-r4mxodj4sd] {
    background-color: #fafafa;
}

.cal-day-outside[b-r4mxodj4sd] {
    background-color: var(--cal-outside-bg);
    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);
}

.cal-day-today .cal-day-number[b-r4mxodj4sd] {
    background-color: var(--cal-maroon);
    color: #fff;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cal-day-number[b-r4mxodj4sd] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #444;
    margin-bottom: 2px;
}

.cal-day-events[b-r4mxodj4sd] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* 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;
    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;
}

.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;
}
/* _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
   ============================================================================ */

/* ----- 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.
   ============================================================================ */

/* ----- Expand modal (in-page; NOT a new tab) ----- */

.widget-expand-backdrop[b-8cil4w1m7q] {
    position: fixed;
    inset: 0;
    z-index: 1060;
    background: rgba(33, 37, 41, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.widget-expand-modal[b-8cil4w1m7q] {
    width: min(960px, 94vw);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0,0,0,0.3);
    overflow: hidden;
}

.widget-expand-header[b-8cil4w1m7q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #eef0f2;
    background: #fafbfc;
}

.widget-expand-title[b-8cil4w1m7q] {
    font-size: 1rem;
    font-weight: 600;
    color: #2c3e50;
}

.widget-expand-subtitle[b-8cil4w1m7q] {
    font-size: 0.78rem;
    color: #6f42c1;
}

.widget-expand-body[b-8cil4w1m7q] {
    flex: 1;
    padding: 1rem;
    overflow: auto;
    min-height: 280px;
}

/* The expand modal's small toolbar buttons reuse the global widget-action look,
   but the modal markup is scoped here so give them a local fallback. */
.widget-expand-header .widget-action-btn[b-8cil4w1m7q] {
    border: none;
    background: transparent;
    color: #6c757d;
    cursor: pointer;
    border-radius: 4px;
    padding: 0.25rem 0.45rem;
    font-size: 0.9rem;
}

.widget-expand-header .widget-action-btn:hover[b-8cil4w1m7q] {
    background: #eef0f2;
    color: #343a40;
}

/* ----- 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: 0.95rem;
}

.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: 0.82rem;
    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;
    }
}
/* _content/CalendarBlazor/Components/Pages/Calendar.razor.rz.scp.css */
/* Calendar page scoped styles. */

/* 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;
}
/* _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/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/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;
}

.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-content[b-08vnrv0l7q] {
    padding: 8px 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    outline: none;
    overflow-y: auto;
    max-height: 50vh;
}
