/* _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;
}

/* Events calendar only: chips shrink to fit their text (dynamic-sized block),
   instead of stretching to the full day-cell width. The financial calendar keeps
   its full-width colored day tiles. */
.cal-month.cal-events .cal-event[b-r4mxodj4sd] {
    align-self: flex-start;
    max-width: 100%;
    line-height: 1.4;
    padding: 1px 6px;
}
/* _content/CalendarBlazor/Components/Calendar/MonthPicker.razor.rz.scp.css */
/* MonthPicker scoped styles — month + year dropdowns (replaces DayPilot MonthPicker). */

.cal-monthpicker[b-wvn83sbozt] {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.cal-monthpicker .cal-mp-month[b-wvn83sbozt] {
    min-width: 130px;
    width: auto;
}

.cal-monthpicker .cal-mp-year[b-wvn83sbozt] {
    min-width: 90px;
    width: auto;
}

.cal-monthpicker .form-select[b-wvn83sbozt] {
    font-size: 0.9rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}
/* _content/CalendarBlazor/Components/Dashboard/ColumnFilterModal.razor.rz.scp.css */
/* ============================================================================
   COLUMN FILTER MODAL — SCOPED STYLES
   ============================================================================
   Ported from the Praxis ColumnFilterModal styles. The value-list dropdown is
   click-anchored to the filter button (top/left supplied inline); the Custom
   AutoFilter modal is centered/fixed.
   ============================================================================ */

.column-filter-backdrop[b-0afh856w8u] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 200000;
}

.column-filter-valuelist[b-0afh856w8u] {
    /* Click-anchored: the top/left are supplied inline from the clicked filter
       button's coordinates (faithful Praxis parity — no CSS centering). */
    position: fixed;
    background: #fff;
    border: 1px solid #999;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    z-index: 200001;
    min-width: 240px;
    max-width: 360px;
    max-height: 60vh;
    overflow-y: auto;
    font-size: 0.8rem;
    padding-bottom: 4px;
}

.filter-valuelist-title[b-0afh856w8u] {
    padding: 6px 12px;
    font-weight: 700;
    color: #2c3e50;
    background: #fafbfc;
    border-bottom: 1px solid #eee;
    border-radius: 6px 6px 0 0;
    position: sticky;
    top: 0;
}

.filter-valuelist-item[b-0afh856w8u] {
    padding: 5px 12px;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.filter-valuelist-item:hover[b-0afh856w8u] {
    background-color: #f1ecfb;
}

.filter-valuelist-item.filter-custom[b-0afh856w8u] {
    color: #6f42c1;
    border-bottom: 1px solid #eee;
    padding-bottom: 6px;
    margin-bottom: 2px;
}

.filter-valuelist-item.filter-clear[b-0afh856w8u] {
    color: #dc3545;
    border-bottom: 1px solid #eee;
    padding-bottom: 6px;
    margin-bottom: 2px;
}

.column-filter-modal[b-0afh856w8u] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border: 1px solid #999;
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.3);
    z-index: 200001;
    width: 440px;
    max-width: 94vw;
    font-size: 0.82rem;
}

.column-filter-header[b-0afh856w8u] {
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    padding: 8px 12px;
    font-weight: 700;
    color: #2c3e50;
    border-radius: 8px 8px 0 0;
}

.column-filter-body[b-0afh856w8u] {
    padding: 14px 16px;
}

.filter-description[b-0afh856w8u] {
    margin-bottom: 6px;
    color: #495057;
}

.filter-column-name[b-0afh856w8u] {
    font-weight: 700;
    margin-bottom: 10px;
    color: #2c3e50;
}

.filter-row[b-0afh856w8u] {
    display: flex;
    gap: 6px;
    margin-bottom: 4px;
}

.filter-operator[b-0afh856w8u],
.filter-value[b-0afh856w8u] {
    flex: 1;
    padding: 4px 6px;
    border: 1px solid #ced4da;
    border-radius: 5px;
    background: #fff;
    font-size: 0.82rem;
}

.filter-value[b-0afh856w8u]::placeholder {
    color: #aaa;
    font-style: italic;
}

.filter-combiner[b-0afh856w8u] {
    display: flex;
    gap: 16px;
    margin: 6px 0;
    padding-left: 4px;
}

.filter-radio[b-0afh856w8u] {
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.filter-radio input[type="radio"][b-0afh856w8u] {
    margin: 0;
}

.column-filter-footer[b-0afh856w8u] {
    display: flex;
    justify-content: space-between;
    padding: 10px 16px 14px;
    border-top: 1px solid #eef0f2;
}

.column-filter-footer-right[b-0afh856w8u] {
    display: flex;
    gap: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/CompanySelectorPanel.razor.rz.scp.css */
/* Floating panel for the super-user per-widget company scope selector. */

/* "All companies" scope toggle (gap 1) */
.company-panel-allscope[b-tmbz15cmjl] {
    padding: 8px 12px;
    border-bottom: 1px solid #eef0f2;
    background: #faf8ff;
}

.company-allscope-toggle[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    cursor: pointer;
    font-size: 0.85rem;
}

.company-allscope-toggle input[b-tmbz15cmjl] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.company-panel-body.disabled[b-tmbz15cmjl] {
    opacity: 0.55;
    pointer-events: none;
}

.company-panel-backdrop[b-tmbz15cmjl] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.25);
    z-index: 100000;
}

/* Centered floating panel — works both for the per-widget scope selector and the
   dashboard header global company selector (both render at a component root, so a
   fixed/centered position is reliable in either context). Mirrors the Praxis panel. */
.company-panel[b-tmbz15cmjl] {
    position: fixed;
    top: 90px;
    left: 50%;
    transform: translateX(-50%);
    width: 350px;
    max-width: 95vw;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.22);
    z-index: 100001;
}

.company-panel-header[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    background: #fafbfc;
}

.company-panel-search[b-tmbz15cmjl] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
}

.company-panel-actions[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid #eef0f2;
    font-size: 0.78rem;
}

.company-panel-count[b-tmbz15cmjl] {
    margin-left: auto;
    color: #868e96;
}

.company-panel-body[b-tmbz15cmjl] {
    flex: 1;
    overflow-y: auto;
    padding: 0.25rem 0.5rem;
}

.company-panel-item[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.3rem 0.4rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.82rem;
    margin: 0;
}

.company-panel-item:hover[b-tmbz15cmjl] {
    background: #f5f3fb;
}

.company-panel-item.selected[b-tmbz15cmjl] {
    background: #f1ecfb;
}

.company-panel-name[b-tmbz15cmjl] {
    font-weight: 500;
    color: #2c3e50;
}

.company-panel-number[b-tmbz15cmjl] {
    font-size: 0.72rem;
}

.company-panel-footer[b-tmbz15cmjl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-top: 1px solid #eef0f2;
}

.widget-icon-btn[b-tmbz15cmjl] {
    border: none;
    background: transparent;
    color: #868e96;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.25rem 0.4rem;
    font-size: 0.8rem;
}

.widget-icon-btn:hover[b-tmbz15cmjl] {
    background: #eef0f2;
    color: #495057;
}

.dashboard-btn[b-tmbz15cmjl] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
    cursor: pointer;
}

.dashboard-btn-primary[b-tmbz15cmjl] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-tmbz15cmjl] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/DashboardDateRangePicker.razor.rz.scp.css */
/* Global header date-range picker. */

.ddrp[b-bm3f7y46ln] {
    position: relative;
    display: inline-block;
}

.ddrp-trigger[b-bm3f7y46ln] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.4rem 0.7rem;
    font-size: 0.82rem;
    cursor: pointer;
    transition: all 0.15s ease;
}

.ddrp-trigger:hover[b-bm3f7y46ln] {
    background: #f1f3f5;
}

.ddrp-trigger.active[b-bm3f7y46ln] {
    background: #e7d9fb;
    border-color: #6f42c1;
    color: #6f42c1;
}

.ddrp-trigger > .fa-calendar-day[b-bm3f7y46ln] {
    color: #6f42c1;
}

.ddrp-trigger.active > .fa-calendar-day[b-bm3f7y46ln] {
    color: #6f42c1;
}

.ddrp-trigger-label[b-bm3f7y46ln] {
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ddrp-caret[b-bm3f7y46ln] {
    font-size: 0.65rem;
    opacity: 0.7;
}

.ddrp-backdrop[b-bm3f7y46ln] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.ddrp-panel[b-bm3f7y46ln] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1050;
    width: 320px;
    max-width: 92vw;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    overflow: hidden;
}

.ddrp-header[b-bm3f7y46ln] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    font-size: 0.85rem;
}

.ddrp-close[b-bm3f7y46ln] {
    border: none;
    background: transparent;
    color: #868e96;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.2rem 0.35rem;
    font-size: 0.8rem;
}

.ddrp-close:hover[b-bm3f7y46ln] {
    background: #eef0f2;
    color: #495057;
}

.ddrp-body[b-bm3f7y46ln] {
    padding: 0.75rem;
}

.ddrp-presets[b-bm3f7y46ln] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.6rem;
}

.ddrp-preset[b-bm3f7y46ln] {
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 16px;
    padding: 0.18rem 0.6rem;
    font-size: 0.72rem;
    cursor: pointer;
    transition: all 0.12s ease;
}

.ddrp-preset:hover[b-bm3f7y46ln] {
    background: #f1f3f5;
}

.ddrp-preset.active[b-bm3f7y46ln] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.ddrp-explicit[b-bm3f7y46ln] {
    display: flex;
    gap: 0.5rem;
}

.ddrp-field[b-bm3f7y46ln] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ddrp-field-label[b-bm3f7y46ln] {
    font-size: 0.7rem;
    color: #868e96;
}

.ddrp-resolved[b-bm3f7y46ln] {
    margin-top: 0.4rem;
    font-size: 0.72rem;
    color: #6f42c1;
}

.ddrp-footer[b-bm3f7y46ln] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}

.dashboard-btn[b-bm3f7y46ln] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.dashboard-btn-primary[b-bm3f7y46ln] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-bm3f7y46ln] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/DashboardViewer.razor.rz.scp.css */
/* ============================================================================
   DASHBOARD VIEWER — SCOPED STYLES
   ============================================================================
   The viewer surface, header (title + actions), full-page width, grid row
   height, header buttons and badges now live in the GLOBAL
   wwwroot/css/dashboard.css (ported from Praxis) so the dashboard matches Praxis
   and fills the full page width.

   This scoped file keeps ONLY the parts that are specific to the Calendar viewer
   and not part of the shared Praxis chrome:
     - the per-widget grid-item column/row span helpers (driven by markup classes)
     - edit-mode affordances + the inline resize buttons (Calendar adds explicit
       resize buttons instead of Praxis's drag handles)
     - the remove-all confirmation modal
   ============================================================================ */

/* ----- Save/clone confirmation toast (bottom-right) -----
   Properties moved here from the inline style on the .dashboard-toast div. */
.dashboard-toast[b-42wgbr0j83] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1080;
    background: #198754;
    color: #fff;
    padding: 10px 16px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    font-weight: 600;
}

/* ----- Grid item span helpers (widths 1-12, heights in 110px rows) ----- */

.dashboard-grid-item[b-42wgbr0j83] {
    position: relative;
    grid-column: span 4;
    grid-row: span 4;
    min-width: 0;
}

.grid-w-2[b-42wgbr0j83] { grid-column: span 2; }
.grid-w-3[b-42wgbr0j83] { grid-column: span 3; }
.grid-w-4[b-42wgbr0j83] { grid-column: span 4; }
.grid-w-5[b-42wgbr0j83] { grid-column: span 5; }
.grid-w-6[b-42wgbr0j83] { grid-column: span 6; }
.grid-w-7[b-42wgbr0j83] { grid-column: span 7; }
.grid-w-8[b-42wgbr0j83] { grid-column: span 8; }
.grid-w-9[b-42wgbr0j83] { grid-column: span 9; }
.grid-w-10[b-42wgbr0j83] { grid-column: span 10; }
.grid-w-11[b-42wgbr0j83] { grid-column: span 11; }
.grid-w-12[b-42wgbr0j83] { grid-column: span 12; }

.grid-h-2[b-42wgbr0j83] { grid-row: span 2; }
.grid-h-3[b-42wgbr0j83] { grid-row: span 3; }
.grid-h-4[b-42wgbr0j83] { grid-row: span 4; }
.grid-h-5[b-42wgbr0j83] { grid-row: span 5; }
.grid-h-6[b-42wgbr0j83] { grid-row: span 6; }
.grid-h-7[b-42wgbr0j83] { grid-row: span 7; }
.grid-h-8[b-42wgbr0j83] { grid-row: span 8; }
.grid-h-9[b-42wgbr0j83] { grid-row: span 9; }
.grid-h-10[b-42wgbr0j83] { grid-row: span 10; }

/* ----- Edit mode + drag affordances ----- */

.dashboard-grid.edit-mode .dashboard-grid-item[b-42wgbr0j83] {
    outline: 1px dashed #b9a4e0;
    outline-offset: 3px;
    border-radius: 12px;
}

.dashboard-grid-item.dragging[b-42wgbr0j83] {
    opacity: 0.5;
}

.dashboard-grid-item.drop-target[b-42wgbr0j83] {
    outline: 2px dashed #6f42c1;
    outline-offset: 3px;
    border-radius: 12px;
    background: #f5f3fb;
}

/* While a drag is in progress, hint that other widgets are drop targets. */
.dashboard-grid.is-dragging .dashboard-grid-item:not(.dragging)[b-42wgbr0j83] {
    cursor: pointer;
}

/* Resize is now via drag handles rendered by WidgetContainer (see WidgetContainer.razor.css);
   the old +/- resize buttons have been removed. */

/* ----- Remove-all confirmation modal ----- */

.dashboard-confirm-backdrop[b-42wgbr0j83] {
    position: fixed;
    inset: 0;
    z-index: 100001;
    background: rgba(33, 37, 41, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.dashboard-confirm[b-42wgbr0j83] {
    width: min(440px, 92vw);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0,0,0,0.3);
    overflow: hidden;
}

.dashboard-confirm-header[b-42wgbr0j83] {
    display: flex;
    align-items: center;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #eef0f2;
    background: #fafbfc;
    font-weight: 600;
    color: #2c3e50;
}

.dashboard-confirm-body[b-42wgbr0j83] {
    padding: 1rem;
    color: #495057;
    font-size: 0.9rem;
}

.dashboard-confirm-footer[b-42wgbr0j83] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}
/* _content/CalendarBlazor/Components/Dashboard/DrillDownModal.razor.rz.scp.css */
/* ============================================================================
   DRILL-DOWN MODAL
   ============================================================================
   Component-scoped styles, ported from the Praxis DrillDownModal.razor.css and
   dashboard drill-down rules. */

.drill-down-backdrop[b-f3cet10ntt] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 99998;
    animation: ddFadeIn-b-f3cet10ntt 0.15s ease-out;
}

.drill-down-modal[b-f3cet10ntt] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 1200px;
    max-height: 85vh;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1);
    z-index: 99999;
    display: flex;
    flex-direction: column;
    animation: ddSlideIn-b-f3cet10ntt 0.2s ease-out;
}

@keyframes ddFadeIn-b-f3cet10ntt {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ddSlideIn-b-f3cet10ntt {
    from { opacity: 0; transform: translate(-50%, -48%); }
    to { opacity: 1; transform: translate(-50%, -50%); }
}

.drill-down-header[b-f3cet10ntt] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 16px 20px;
    border-bottom: 1px solid #e0e0e0;
    background: #f8f9fa;
    border-radius: 12px 12px 0 0;
}

.drill-down-title h5[b-f3cet10ntt] {
    margin: 0;
    font-weight: 600;
}

.drill-down-breadcrumb[b-f3cet10ntt] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.breadcrumb-item[b-f3cet10ntt] {
    background: none;
    border: none;
    color: #0d6efd;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 4px;
}

.breadcrumb-item:hover:not(.current):not(:disabled)[b-f3cet10ntt] {
    background: #e7f1ff;
    text-decoration: underline;
}

.breadcrumb-item.current[b-f3cet10ntt] {
    color: #6c757d;
    cursor: default;
}

.breadcrumb-separator[b-f3cet10ntt] {
    color: #adb5bd;
}

.drill-down-header-actions[b-f3cet10ntt] {
    display: flex;
    align-items: center;
}

.drill-down-body[b-f3cet10ntt] {
    flex: 1;
    overflow: auto;
    padding: 0;
    min-height: 200px;
}

.drill-down-loading[b-f3cet10ntt],
.drill-down-error[b-f3cet10ntt],
.drill-down-no-data[b-f3cet10ntt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
}

.drill-down-loading p[b-f3cet10ntt],
.drill-down-error p[b-f3cet10ntt],
.drill-down-no-data p[b-f3cet10ntt] {
    margin-top: 16px;
    color: #6c757d;
}

.drill-down-error i[b-f3cet10ntt],
.drill-down-no-data i[b-f3cet10ntt] {
    font-size: 3rem;
}

.drill-down-table-container[b-f3cet10ntt] {
    max-height: calc(85vh - 180px);
    overflow: auto;
}

.drill-down-table[b-f3cet10ntt] {
    margin: 0;
    font-size: 0.85rem;
}

.drill-down-table th[b-f3cet10ntt],
.drill-down-table td[b-f3cet10ntt] {
    padding: 0.5rem 0.65rem;
}

.drill-down-table thead th[b-f3cet10ntt] {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
    z-index: 1;
    font-size: 0.8rem;
}

.drill-down-table th.sorted[b-f3cet10ntt] {
    background: #f3effb;
}

.column-header-text[b-f3cet10ntt] {
    cursor: pointer;
    user-select: none;
}

.column-filter-btn[b-f3cet10ntt] {
    background: none;
    border: none;
    padding: 0 2px;
    margin-left: 4px;
    cursor: pointer;
    color: #aaa;
    font-size: 0.7rem;
    vertical-align: middle;
    line-height: 1;
}

.column-filter-btn:hover[b-f3cet10ntt] {
    color: #333;
}

.column-filter-btn.filtered[b-f3cet10ntt] {
    color: #6f42c1;
}

.column-filter-row th[b-f3cet10ntt] {
    background: #fcfbff;
    padding: 0.3rem 0.5rem;
}

.column-filter-input[b-f3cet10ntt] {
    font-size: 0.78rem;
}

.drill-down-footer-info[b-f3cet10ntt] {
    padding: 8px 16px;
    font-size: 0.875rem;
    color: #6c757d;
    border-top: 1px solid #e0e0e0;
    background: #f8f9fa;
}

.drill-down-actions[b-f3cet10ntt] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid #e0e0e0;
    background: #f8f9fa;
    border-radius: 0 0 12px 12px;
}

/* SQL debug modal (SuperUser only) */
.sql-debug-modal-backdrop[b-f3cet10ntt] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sql-debug-modal[b-f3cet10ntt] {
    width: 90%;
    max-width: 640px;
    background: #1e1e1e;
    color: #d4d4d4;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.sql-modal-header[b-f3cet10ntt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: #252526;
    font-weight: 600;
}

.sql-modal-close[b-f3cet10ntt] {
    background: none;
    border: none;
    color: #d4d4d4;
    cursor: pointer;
}

.sql-modal-body[b-f3cet10ntt] {
    padding: 16px;
}

.sql-section[b-f3cet10ntt] {
    margin-bottom: 14px;
}

.sql-section label[b-f3cet10ntt] {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #9cdcfe;
    margin-bottom: 4px;
}

.sql-query-text[b-f3cet10ntt] {
    margin: 0;
    padding: 12px;
    background: #2d2d2d;
    border-radius: 4px;
    color: #d4d4d4;
    font-size: 0.78rem;
    font-family: 'Consolas', 'Monaco', monospace;
    white-space: pre-wrap;
    word-wrap: break-word;
    max-height: 220px;
    overflow-y: auto;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/ChartConfigEditor.razor.rz.scp.css */
/* ChartConfigEditor — palettes and series rows. */

.config-editor[b-3xkktqqsgk] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-3xkktqqsgk] {
    margin-bottom: 0.25rem;
}

.form-text[b-3xkktqqsgk] {
    font-size: 0.78rem;
    color: #6c757d;
}

.palette-presets[b-3xkktqqsgk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.palette-btn[b-3xkktqqsgk] {
    display: inline-flex;
    border: 1px solid #ced4da;
    border-radius: 6px;
    overflow: hidden;
    padding: 0;
    cursor: pointer;
    background: #fff;
}

.palette-btn:hover[b-3xkktqqsgk] {
    border-color: #6f42c1;
}

.palette-color[b-3xkktqqsgk] {
    width: 18px;
    height: 24px;
    display: inline-block;
}

.series-list[b-3xkktqqsgk] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.series-item[b-3xkktqqsgk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.series-item .form-control-color[b-3xkktqqsgk] {
    width: 46px;
    padding: 2px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/ColorPickerList.razor.rz.scp.css */
/* ColorPickerList — colour chips + hex inputs. */

.color-picker-list[b-63idlosyxn] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.color-chips[b-63idlosyxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.color-chip[b-63idlosyxn] {
    position: relative;
    display: inline-flex;
}

.color-chip input[type="color"][b-63idlosyxn] {
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #ced4da;
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
}

.color-chip .remove-btn[b-63idlosyxn] {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 16px;
    height: 16px;
    border: none;
    border-radius: 50%;
    background: #dc3545;
    color: #fff;
    font-size: 0.55rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}

.add-color-btn[b-63idlosyxn] {
    width: 38px;
    height: 38px;
    border: 1px dashed #adb5bd;
    border-radius: 6px;
    background: #f8f9fa;
    color: #6c757d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.add-color-btn:hover[b-63idlosyxn] {
    border-color: #6f42c1;
    color: #6f42c1;
}

.color-hex-list[b-63idlosyxn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.color-hex-input[b-63idlosyxn] {
    width: 88px;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    text-transform: uppercase;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/DrillDownConfigEditor.razor.rz.scp.css */
/* DrillDownConfigEditor — filter fields, levels, detail columns. */

.config-editor[b-aom8076r6r] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-aom8076r6r] {
    margin-bottom: 0.25rem;
}

.form-text[b-aom8076r6r] {
    font-size: 0.78rem;
    color: #6c757d;
}

.form-section-title[b-aom8076r6r] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.level-config .card-header[b-aom8076r6r] {
    background: #f3eefb;
    font-weight: 600;
    color: #4b2e83;
    padding: 0.45rem 0.75rem;
}

.column-list[b-aom8076r6r] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.column-header[b-aom8076r6r],
.column-item[b-aom8076r6r] {
    display: grid;
    grid-template-columns: 1fr 1fr 120px 96px;
    gap: 0.4rem;
    align-items: center;
}

.column-header[b-aom8076r6r] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.column-actions[b-aom8076r6r] {
    display: flex;
    gap: 0.1rem;
    justify-content: flex-end;
}

.column-actions .btn-link[b-aom8076r6r] {
    padding: 0.1rem 0.25rem;
    line-height: 1;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/GaugeConfigEditor.razor.rz.scp.css */
/* GaugeConfigEditor — zones + SVG preview. */

.config-editor[b-f24er3dvx2] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-f24er3dvx2] {
    margin-bottom: 0.25rem;
}

.form-text[b-f24er3dvx2] {
    font-size: 0.78rem;
    color: #6c757d;
}

.zone-list[b-f24er3dvx2] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.zone-item[b-f24er3dvx2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.zone-label[b-f24er3dvx2] {
    font-size: 0.8rem;
    color: #495057;
    white-space: nowrap;
}

.zone-value[b-f24er3dvx2] {
    max-width: 90px;
}

.zone-color[b-f24er3dvx2] {
    width: 46px;
    padding: 2px;
}

.gauge-preview-container[b-f24er3dvx2] {
    display: flex;
    justify-content: center;
}

.gauge-preview[b-f24er3dvx2] {
    position: relative;
    width: 180px;
}

.gauge-svg[b-f24er3dvx2] {
    width: 100%;
    height: auto;
}

.gauge-preview-value[b-f24er3dvx2] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 1.25rem;
    font-weight: 600;
    color: #2c3e50;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/KpiConfigEditor.razor.rz.scp.css */
/* KpiConfigEditor — icon picker, thresholds, metric rows. */

.config-editor[b-zjmpyv66hv] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-zjmpyv66hv] {
    margin-bottom: 0.25rem;
}

.form-text[b-zjmpyv66hv] {
    font-size: 0.78rem;
    color: #6c757d;
}

.kpi-icon-picker[b-zjmpyv66hv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
    gap: 0.4rem;
}

.kpi-icon-picker-btn[b-zjmpyv66hv] {
    height: 44px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    color: #495057;
    font-size: 1.05rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
}

.kpi-icon-picker-btn:hover[b-zjmpyv66hv] {
    border-color: #6f42c1;
    color: #6f42c1;
}

.kpi-icon-picker-btn.selected[b-zjmpyv66hv] {
    border-color: #6f42c1;
    background: #6f42c1;
    color: #fff;
}

.threshold-list[b-zjmpyv66hv],
.metrics-config-list[b-zjmpyv66hv] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.4rem;
}

.threshold-item[b-zjmpyv66hv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.threshold-label[b-zjmpyv66hv] {
    font-size: 0.8rem;
    color: #495057;
    white-space: nowrap;
}

.threshold-value[b-zjmpyv66hv] {
    max-width: 110px;
}

.threshold-color[b-zjmpyv66hv] {
    width: 46px;
    padding: 2px;
}

.metric-config-item[b-zjmpyv66hv] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.4rem 0.5rem;
    background: #fcfcfd;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/ConfigEditors/TableConfigEditor.razor.rz.scp.css */
/* TableConfigEditor — column config table + preview. */

.config-editor[b-zblhkbqkbw] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-group[b-zblhkbqkbw] {
    margin-bottom: 0.25rem;
}

.form-text[b-zblhkbqkbw] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-zblhkbqkbw] {
    color: #dc3545;
    font-size: 0.78rem;
}

.column-config-container[b-zblhkbqkbw] {
    overflow-x: auto;
}

.column-config-table[b-zblhkbqkbw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.column-config-table th[b-zblhkbqkbw] {
    font-weight: 600;
    color: #495057;
    padding: 0.3rem 0.4rem;
    text-align: left;
    border-bottom: 2px solid #e9ecef;
    white-space: nowrap;
}

.column-config-table td[b-zblhkbqkbw] {
    padding: 0.3rem 0.4rem;
    vertical-align: middle;
}

.column-config-table .w-40[b-zblhkbqkbw] {
    width: 40px;
}

.column-config-table .w-80[b-zblhkbqkbw] {
    width: 80px;
}

.drag-handle .btn-link[b-zblhkbqkbw] {
    line-height: 1;
    color: #adb5bd;
}

.drag-handle .btn-link:hover:not(:disabled)[b-zblhkbqkbw] {
    color: #6f42c1;
}

.table-preview[b-zblhkbqkbw] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/DataSourceEditorModal.razor.rz.scp.css */
/* DataSourceEditorModal — right slide-out panel. */

.ds-editor-backdrop[b-jik9t8pgot] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1090;
}

.ds-editor-panel[b-jik9t8pgot] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(720px, 96vw);
    background: #fff;
    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.25);
    z-index: 1095;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.2s ease;
}

.ds-editor-panel.open[b-jik9t8pgot] {
    transform: translateX(0);
}

.ds-editor-header[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.1rem;
    background: #6f42c1;
    color: #fff;
}

.ds-editor-content[b-jik9t8pgot] {
    flex: 1;
    overflow-y: auto;
    padding: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.form-section[b-jik9t8pgot] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-jik9t8pgot] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-jik9t8pgot] {
    margin-bottom: 0;
}

.form-text[b-jik9t8pgot] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-jik9t8pgot] {
    color: #dc3545;
    font-size: 0.78rem;
}

.parameters-list[b-jik9t8pgot] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.parameter-card[b-jik9t8pgot] {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 0.5rem 0.65rem;
    background: #fcfcfd;
}

.parameter-header[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.parameter-name[b-jik9t8pgot] {
    color: #6f42c1;
}

.parameter-actions[b-jik9t8pgot] {
    display: flex;
    gap: 0.25rem;
}

.parameter-edit[b-jik9t8pgot] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed #e9ecef;
}

.ds-results[b-jik9t8pgot] {
    max-height: 220px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}

.ds-editor-footer[b-jik9t8pgot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.ds-editor-footer .footer-actions[b-jik9t8pgot] {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/QueryBuilderModal.razor.rz.scp.css */
/* QueryBuilderModal — centered slide-up panel. */

.qb-backdrop[b-a8aolvuxe7] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1080;
}

/* Schema browser (gap 14) */
.qb-schema[b-a8aolvuxe7] {
    border: 1px solid #e3e6ea;
    border-radius: 6px;
    padding: 6px;
    max-height: 220px;
    overflow-y: auto;
    background: #fbfcfd;
}

.qb-schema-list[b-a8aolvuxe7],
.qb-schema-columns[b-a8aolvuxe7] {
    list-style: none;
    margin: 0;
    padding-left: 0;
}

.qb-schema-columns[b-a8aolvuxe7] {
    padding-left: 18px;
}

.qb-schema-table-name[b-a8aolvuxe7] {
    cursor: pointer;
    display: block;
    padding: 2px 0;
    font-size: 0.82rem;
}

.qb-table-insert[b-a8aolvuxe7] {
    cursor: pointer;
    color: #6f42c1;
}

.qb-table-insert:hover[b-a8aolvuxe7] {
    text-decoration: underline;
}

.qb-schema-columns li[b-a8aolvuxe7] {
    cursor: pointer;
    padding: 1px 0;
    font-size: 0.78rem;
}

.qb-schema-columns li:hover[b-a8aolvuxe7] {
    background: #f1f3f5;
}

.qb-panel[b-a8aolvuxe7] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -48%);
    width: min(820px, 94vw);
    max-height: 90vh;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    z-index: 1085;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.qb-header[b-a8aolvuxe7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1.1rem;
    background: #6f42c1;
    color: #fff;
}

.qb-content[b-a8aolvuxe7] {
    padding: 1.1rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.qb-footer[b-a8aolvuxe7] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.form-text[b-a8aolvuxe7] {
    font-size: 0.78rem;
    color: #6c757d;
}

.qb-results[b-a8aolvuxe7] {
    max-height: 260px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/BasicInfoSection.razor.rz.scp.css */
/* BasicInfoSection. */

.form-section[b-4hmc2xsh7i] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.form-section-title[b-4hmc2xsh7i] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0 0 0.25rem;
}

.form-group[b-4hmc2xsh7i] {
    margin-bottom: 0;
}

.form-text[b-4hmc2xsh7i] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-4hmc2xsh7i] {
    color: #dc3545;
    font-size: 0.78rem;
}

.selected-category-preview[b-4hmc2xsh7i] {
    border: 1px solid #e9ecef;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/DataSourceSection.razor.rz.scp.css */
/* DataSourceSection. */

.form-section[b-hba09uwqqu] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.form-section-title[b-hba09uwqqu] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-hba09uwqqu] {
    margin-bottom: 0;
}

.form-text[b-hba09uwqqu] {
    font-size: 0.78rem;
    color: #6c757d;
}

.validation-error[b-hba09uwqqu] {
    color: #dc3545;
    font-size: 0.78rem;
}

.test-results[b-hba09uwqqu] {
    max-height: 220px;
    overflow: auto;
    border: 1px solid #e9ecef;
    border-radius: 6px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/DrillDownSection.razor.rz.scp.css */
/* DrillDownSection. */

.form-section[b-7dhl0eep5b] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-7dhl0eep5b] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/SizeAndRefreshSection.razor.rz.scp.css */
/* SizeAndRefreshSection. */

.form-section[b-982q4hbugl] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.form-section-title[b-982q4hbugl] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.form-group[b-982q4hbugl] {
    margin-bottom: 0;
}

.form-text[b-982q4hbugl] {
    font-size: 0.78rem;
    color: #6c757d;
}

.max-w-120[b-982q4hbugl] {
    max-width: 120px;
}

.size-preview[b-982q4hbugl] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 3px;
    margin: 0.4rem 0;
}

.size-preview-cell[b-982q4hbugl] {
    height: 10px;
    border-radius: 2px;
    background: #e9ecef;
}

.size-preview-cell.active[b-982q4hbugl] {
    background: #6f42c1;
}

.grid-size-selector[b-982q4hbugl] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 3px;
    max-width: 360px;
}

.grid-cell[b-982q4hbugl] {
    aspect-ratio: 1;
    border-radius: 2px;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/VisualizationSection.razor.rz.scp.css */
/* VisualizationSection. */

.form-section[b-5bj0ay3lfr] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.form-section-title[b-5bj0ay3lfr] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/Sections/WidgetTypeSection.razor.rz.scp.css */
/* WidgetTypeSection — visual type grid. */

.form-section[b-el7q4c6dkf] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.form-section-title[b-el7q4c6dkf] {
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
}

.widget-type-grid[b-el7q4c6dkf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0.6rem;
}

.widget-type-card[b-el7q4c6dkf] {
    border: 1px solid #ced4da;
    border-radius: 10px;
    padding: 0.9rem 0.5rem;
    text-align: center;
    cursor: pointer;
    background: #fff;
    transition: all 0.12s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
}

.widget-type-card i[b-el7q4c6dkf] {
    font-size: 1.5rem;
    color: #6c757d;
}

.widget-type-card span[b-el7q4c6dkf] {
    font-size: 0.8rem;
    font-weight: 500;
    color: #495057;
}

.widget-type-card:hover[b-el7q4c6dkf] {
    border-color: #6f42c1;
}

.widget-type-card.selected[b-el7q4c6dkf] {
    border-color: #6f42c1;
    background: #f3eefb;
    box-shadow: 0 0 0 2px rgba(111, 66, 193, 0.2);
}

.widget-type-card.selected i[b-el7q4c6dkf],
.widget-type-card.selected span[b-el7q4c6dkf] {
    color: #6f42c1;
}
/* _content/CalendarBlazor/Components/Dashboard/Editor/WidgetEditorModal.razor.rz.scp.css */
/* WidgetEditorModal — large right slide-out panel with tabs + preview. */

.widget-editor-backdrop[b-sn43u0yjar] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1060;
}

.widget-editor-panel[b-sn43u0yjar] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(1080px, 98vw);
    background: #fff;
    box-shadow: -10px 0 40px rgba(0, 0, 0, 0.28);
    z-index: 1065;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.22s ease;
}

.widget-editor-panel.open[b-sn43u0yjar] {
    transform: translateX(0);
}

.widget-editor-header[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.95rem 1.2rem;
    background: #6f42c1;
    color: #fff;
}

.widget-editor-tabs[b-sn43u0yjar] {
    padding: 0 1rem;
    border-bottom: 1px solid #e9ecef;
    flex-wrap: nowrap;
    overflow-x: auto;
}

.widget-editor-tabs .nav-link[b-sn43u0yjar] {
    border: none;
    color: #6c757d;
    font-size: 0.85rem;
    white-space: nowrap;
    padding: 0.6rem 0.85rem;
    background: transparent;
    border-bottom: 2px solid transparent;
}

.widget-editor-tabs .nav-link:hover[b-sn43u0yjar] {
    color: #495057;
}

.widget-editor-tabs .nav-link.active[b-sn43u0yjar] {
    color: #6f42c1;
    border-bottom-color: #6f42c1;
    font-weight: 600;
    background: transparent;
}

.widget-editor-tabs .nav-link.has-error[b-sn43u0yjar] {
    color: #dc3545;
}

.widget-editor-tabs .nav-link.has-error[b-sn43u0yjar]::after {
    content: "\f06a"; /* fa exclamation-circle */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-left: 0.35rem;
    font-size: 0.72rem;
}

.widget-editor-content[b-sn43u0yjar] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 300px;
    min-height: 0;
}

.widget-editor-form[b-sn43u0yjar] {
    overflow-y: auto;
    padding: 1.1rem 1.2rem;
}

.widget-editor-preview[b-sn43u0yjar] {
    border-left: 1px solid #e9ecef;
    background: #f8f9fa;
    padding: 1rem;
    overflow-y: auto;
}

.preview-header[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    color: #495057;
}

.preview-content[b-sn43u0yjar] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.preview-widget-frame[b-sn43u0yjar] {
    border: 1px solid #d8c8f3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.preview-widget-header[b-sn43u0yjar] {
    background: #f3eefb;
    color: #4b2e83;
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid #e9d9f7;
}

.preview-widget-body[b-sn43u0yjar] {
    padding: 1.1rem 0.6rem;
    text-align: center;
    font-size: 0.85rem;
}

.widget-editor-footer[b-sn43u0yjar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.2rem;
    border-top: 1px solid #e9ecef;
    background: #fff;
}

.widget-editor-footer .footer-actions[b-sn43u0yjar] {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
}

/* Inline new-category dialog */
.we-cat-backdrop[b-sn43u0yjar] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1100;
}

.we-cat-dialog[b-sn43u0yjar] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(420px, 92vw);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
    z-index: 1105;
    padding: 1.2rem;
}

@media (max-width: 900px) {
    .widget-editor-content[b-sn43u0yjar] {
        grid-template-columns: 1fr;
    }

    .widget-editor-preview[b-sn43u0yjar] {
        display: none;
    }
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetContainer.razor.rz.scp.css */
/* ============================================================================
   WIDGET CONTAINER — SCOPED STYLES
   ============================================================================
   The structural chrome for a placed widget (card, header, toolbar icons, drag
   grip, popovers, body/footer, the SQL debug modal and the grid sizing) now
   lives in the GLOBAL wwwroot/css/dashboard.css (ported from Praxis) so it is
   not clipped by scoped overflow and matches Praxis exactly.

   This scoped file keeps ONLY:
     - the in-page Expand modal (component-specific; not part of Praxis chrome)
     - the ::deep rules that reach the inner widget components' markup
       (KPI / table / chart / gauge), which a scoped sheet must own.
   ============================================================================ */

/* ----- Inner widget styling (::deep reaches child component markup) ----- */

[b-8cil4w1m7q] .kpi-card {
    display: grid;
    gap: 0.5rem 1rem;
    height: 100%;
    align-content: center;
}

[b-8cil4w1m7q] .kpi-card.layout-4-column {
    grid-template-columns: repeat(2, 1fr);
}

[b-8cil4w1m7q] .kpi-value-row {
    display: flex;
    flex-direction: column;
}

[b-8cil4w1m7q] .kpi-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #2c3e50;
    line-height: 1.1;
}

[b-8cil4w1m7q] .kpi-label {
    font-size: 0.75rem;
    color: #868e96;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

[b-8cil4w1m7q] .kpi-empty {
    font-size: 2rem;
    color: #ced4da;
    text-align: center;
}

[b-8cil4w1m7q] .no-data-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #adb5bd;
    gap: 0.4rem;
}

[b-8cil4w1m7q] .no-data-message i {
    font-size: 1.75rem;
}

[b-8cil4w1m7q] .dashboard-data-table {
    font-size: 0.8rem;
    margin: 0;
}

[b-8cil4w1m7q] .dashboard-data-table th {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}

[b-8cil4w1m7q] .chart-widget,
[b-8cil4w1m7q] .gauge-widget {
    height: 100%;
}

/* Interactive series legend (gap 6) — custom legend above multi-series charts. */
[b-8cil4w1m7q] .custom-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-bottom: 6px;
    font-size: 0.78rem;
}

[b-8cil4w1m7q] .legend-controls {
    display: inline-flex;
    gap: 6px;
    margin-right: 4px;
}

[b-8cil4w1m7q] .legend-select-all,
[b-8cil4w1m7q] .legend-deselect-all {
    cursor: pointer;
    color: #6c757d;
}

[b-8cil4w1m7q] .legend-select-all:hover,
[b-8cil4w1m7q] .legend-deselect-all:hover {
    color: #6f42c1;
}

[b-8cil4w1m7q] .legend-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    user-select: none;
    padding: 1px 4px;
    border-radius: 4px;
}

[b-8cil4w1m7q] .legend-item:hover {
    background: #f1f3f5;
}

[b-8cil4w1m7q] .legend-marker {
    width: 11px;
    height: 11px;
    border-radius: 2px;
    display: inline-block;
}

[b-8cil4w1m7q] .legend-item .legend-dimmed {
    color: #adb5bd;
    text-decoration: line-through;
}

[b-8cil4w1m7q] .legend-item:not(.selected) .legend-marker {
    opacity: 0.35;
}

/* Pie/donut backup drill-down table (gap 7). */
[b-8cil4w1m7q] .drilldown-table-container {
    margin-top: 8px;
    max-height: 180px;
    overflow-y: auto;
}

[b-8cil4w1m7q] .drilldown-table {
    width: 100%;
    font-size: 0.78rem;
    border-collapse: collapse;
}

[b-8cil4w1m7q] .drilldown-table th {
    text-align: left;
    font-weight: 600;
    color: #6c757d;
    border-bottom: 1px solid #e9ecef;
    padding: 3px 6px;
}

[b-8cil4w1m7q] .drilldown-table th.value-column,
[b-8cil4w1m7q] .drilldown-table th.percent-column,
[b-8cil4w1m7q] .drilldown-table td.value-column,
[b-8cil4w1m7q] .drilldown-table td.percent-column {
    text-align: right;
}

[b-8cil4w1m7q] .drilldown-table td {
    padding: 3px 6px;
    border-bottom: 1px solid #f1f3f5;
}

[b-8cil4w1m7q] .drilldown-table .drilldown-row {
    cursor: pointer;
}

[b-8cil4w1m7q] .drilldown-table .drilldown-row:hover {
    background: #f5f3fb;
}

[b-8cil4w1m7q] .drilldown-table .color-indicator {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 6px;
    vertical-align: middle;
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetParameterPanel.razor.rz.scp.css */
/* ============================================================================
   WIDGET PARAMETER PANEL — SCOPED STYLES
   ============================================================================
   Per-widget parameter/filter popover, anchored under the filter button in the
   widget header. Ported from the Praxis parameter-panel styles (Calendar purple
   accent). The card uses overflow:visible so the panel is not clipped (gap 2);
   this popover anchors below the header button.
   ============================================================================ */

.parameter-panel-backdrop[b-xxzaj9qo2j] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: transparent;
}

.parameter-panel[b-xxzaj9qo2j] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1001;
    width: 320px;
    max-width: 92vw;
    max-height: 420px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.parameter-panel.upward[b-xxzaj9qo2j] {
    top: auto;
    bottom: calc(100% + 6px);
}

.parameter-panel-header[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    padding: 0.6rem 0.8rem;
    background: #fafbfc;
    border-bottom: 1px solid #eef0f2;
    font-weight: 600;
    color: #2c3e50;
    font-size: 0.85rem;
    border-radius: 10px 10px 0 0;
}

.parameter-panel-body[b-xxzaj9qo2j] {
    flex: 1;
    overflow-y: auto;
    padding: 0.85rem;
}

.parameter-item[b-xxzaj9qo2j] {
    margin-bottom: 0.9rem;
}

.parameter-item:last-child[b-xxzaj9qo2j] {
    margin-bottom: 0;
}

.parameter-label[b-xxzaj9qo2j] {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: #495057;
    margin-bottom: 0.25rem;
}

.parameter-input-group[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
}

.parameter-input-group .form-control[b-xxzaj9qo2j],
.parameter-input-group .form-select[b-xxzaj9qo2j] {
    flex: 1;
}

.parameter-info[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.parameter-info .badge[b-xxzaj9qo2j] {
    font-size: 0.66rem;
    font-weight: 500;
}

.parameter-panel-footer[b-xxzaj9qo2j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.8rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
    border-radius: 0 0 10px 10px;
}

/* Mini icon button (matches the global widget header buttons). */
.widget-action-btn[b-xxzaj9qo2j] {
    border: none;
    background: transparent;
    color: #6c757d;
    cursor: pointer;
    border-radius: 5px;
    padding: 0.2rem 0.4rem;
    font-size: 0.9rem;
}

.widget-action-btn:hover[b-xxzaj9qo2j] {
    background: #eef0f2;
    color: #343a40;
}

.dashboard-btn[b-xxzaj9qo2j] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid #ced4da;
    background: #fff;
    color: #495057;
    border-radius: 8px;
    padding: 0.3rem 0.7rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.dashboard-btn:disabled[b-xxzaj9qo2j] {
    opacity: 0.55;
    cursor: default;
}

.dashboard-btn-primary[b-xxzaj9qo2j] {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.dashboard-btn-primary:hover[b-xxzaj9qo2j] {
    background: #5a32a3;
}
/* _content/CalendarBlazor/Components/Dashboard/WidgetSelector.razor.rz.scp.css */
/* ============================================================================
   WIDGET SELECTOR (Add-widget gallery modal)
   ============================================================================
   Component-scoped styles for the two-column add-widget dialog. Ported from the
   Praxis dashboard.css widget-selector rules. */

.widget-selector-backdrop[b-7oln49sgre] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
}

.widget-selector-dialog[b-7oln49sgre] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 900px;
    max-height: 82vh;
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.widget-selector-header[b-7oln49sgre] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
}

.widget-selector-header h5[b-7oln49sgre] {
    margin: 0;
    font-weight: 600;
    color: #2c3e50;
}

/* Search row */
.widget-search-row[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 10px 20px;
    border-bottom: 1px solid #eee;
    background: #fafafa;
}

.widget-search-box[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    flex: 1;
    max-width: 460px;
}

.widget-search-box i[b-7oln49sgre] {
    color: #999;
}

.widget-search-box input[b-7oln49sgre] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 0.9rem;
}

.widget-search-box input[b-7oln49sgre]::placeholder {
    color: #aaa;
}

.btn-clear-search[b-7oln49sgre] {
    background: none;
    border: none;
    padding: 4px;
    cursor: pointer;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-clear-search:hover[b-7oln49sgre] {
    color: #666;
}

.multi-level-filter[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    color: #555;
    cursor: pointer;
    white-space: nowrap;
    padding: 6px 10px;
    border-radius: 6px;
    transition: background 0.2s ease;
}

.multi-level-filter:hover[b-7oln49sgre] {
    background: #e8e8e8;
}

.multi-level-filter input[type="checkbox"][b-7oln49sgre] {
    cursor: pointer;
}

.multi-level-filter i[b-7oln49sgre] {
    color: #28a745;
}

/* Body: two columns */
.widget-selector-body[b-7oln49sgre] {
    display: flex;
    flex: 1;
    overflow: hidden;
}

.widget-selector-categories[b-7oln49sgre] {
    width: 210px;
    border-right: 1px solid #eee;
    padding: 15px;
    overflow-y: auto;
    flex-shrink: 0;
}

.category-btn[b-7oln49sgre] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    text-align: left;
    color: #555;
    margin-bottom: 2px;
}

.category-btn:hover[b-7oln49sgre] {
    background: #f5f5f5;
}

.category-btn.active[b-7oln49sgre] {
    background: #f3effb;
    color: #6f42c1;
    font-weight: 600;
}

.category-btn .badge[b-7oln49sgre] {
    margin-left: auto;
    background: #eee;
    color: #666;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 0.75rem;
}

.category-btn.active .badge[b-7oln49sgre] {
    background: #6f42c1;
    color: white;
}

/* Widget cards grid */
.widget-selector-widgets[b-7oln49sgre] {
    flex: 1;
    padding: 15px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 15px;
    align-content: start;
}

.widget-card[b-7oln49sgre] {
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 15px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.widget-card:hover[b-7oln49sgre] {
    border-color: #6f42c1;
    box-shadow: 0 2px 8px rgba(111, 66, 193, 0.15);
}

.widget-card.selected[b-7oln49sgre] {
    border-color: #6f42c1;
    background: #f3effb;
}

.widget-card-header[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.widget-card-icon[b-7oln49sgre] {
    color: #6f42c1;
}

.widget-card-name[b-7oln49sgre] {
    font-weight: 600;
    color: #333;
    flex: 1;
}

.widget-type-badge[b-7oln49sgre] {
    font-size: 0.7rem;
    padding: 2px 6px;
    background: #f5f5f5;
    color: #666;
    border-radius: 4px;
    text-transform: uppercase;
}

.drill-down-indicator[b-7oln49sgre] {
    font-size: 0.9rem;
    margin-left: 4px;
    cursor: help;
    opacity: 0.9;
}

.drill-down-indicator:hover[b-7oln49sgre] {
    opacity: 1;
    transform: scale(1.1);
}

.multi-level-indicator[b-7oln49sgre] {
    font-size: 0.85rem;
    margin-left: 4px;
    cursor: help;
    opacity: 0.9;
}

.multi-level-indicator:hover[b-7oln49sgre] {
    opacity: 1;
    transform: scale(1.1);
}

.widget-card-description[b-7oln49sgre] {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 10px;
    line-height: 1.4;
}

.widget-card-meta[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.75rem;
    color: #999;
}

.widget-category i[b-7oln49sgre] {
    margin-right: 4px;
}

.system-widget-badge[b-7oln49sgre] {
    background: #e8f5e9;
    color: #4CAF50;
    padding: 2px 6px;
    border-radius: 4px;
}

.no-widgets-message[b-7oln49sgre] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: #999;
}

.no-widgets-message i[b-7oln49sgre] {
    font-size: 3rem;
    margin-bottom: 15px;
    opacity: 0.3;
}

/* Footer */
.widget-selector-footer[b-7oln49sgre] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 15px 20px;
    border-top: 1px solid #eee;
}

.selection-actions[b-7oln49sgre] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.selection-actions button[b-7oln49sgre] {
    white-space: nowrap;
}

.selection-info[b-7oln49sgre] {
    font-size: 0.85rem;
    color: #666;
}

.footer-buttons[b-7oln49sgre] {
    display: flex;
    gap: 10px;
}

@media (max-width: 768px) {
    .widget-selector-body[b-7oln49sgre] {
        flex-direction: column;
    }

    .widget-selector-categories[b-7oln49sgre] {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #eee;
        display: flex;
        overflow-x: auto;
        padding: 10px;
    }

    .category-btn[b-7oln49sgre] {
        flex-shrink: 0;
        margin-bottom: 0;
        margin-right: 5px;
    }
}
/* _content/CalendarBlazor/Components/Dashboard/Widgets/DataTableWidget.razor.rz.scp.css */
/* Data-table widget: drill-down affordance, sortable headers, per-column filter
   button and the row-count footer. Mirrors the Praxis table widget styling. */

.data-table-widget[b-3ybguegru0] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.table-container[b-3ybguegru0] {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.dashboard-data-table th[b-3ybguegru0] {
    white-space: nowrap;
}

.dashboard-data-table th.sorted[b-3ybguegru0] {
    background: #f1ecfb;
    color: #6f42c1;
}

.column-header-text[b-3ybguegru0] {
    cursor: pointer;
    user-select: none;
}

.sort-icon[b-3ybguegru0] {
    font-size: 0.75rem;
}

/* Per-column Excel-style filter button in the header */
.column-filter-btn[b-3ybguegru0] {
    background: none;
    border: none;
    padding: 0 2px;
    margin-left: 4px;
    cursor: pointer;
    color: #adb5bd;
    font-size: 0.7rem;
    vertical-align: middle;
    line-height: 1;
}

.column-filter-btn:hover[b-3ybguegru0] {
    color: #495057;
}

.column-filter-btn.filtered[b-3ybguegru0] {
    color: #6f42c1;
}

/* Footer row count / clear-filters */
.table-footer[b-3ybguegru0] {
    padding: 4px 2px 0;
    font-size: 0.72rem;
    color: #999;
    border-top: 1px solid #eef0f2;
    flex-shrink: 0;
}

.table-footer-clear[b-3ybguegru0] {
    font-size: 0.72rem;
    color: #6f42c1;
    text-decoration: none;
}

.table-footer-clear:hover[b-3ybguegru0] {
    text-decoration: underline;
}

/* Drill-down affordance for data-table rows. */
.data-table-widget.drilldown-enabled tbody tr.clickable-row[b-3ybguegru0] {
    cursor: pointer;
}

.data-table-widget.drilldown-enabled tbody tr.clickable-row:hover[b-3ybguegru0] {
    background: #f3effb;
}
/* _content/CalendarBlazor/Components/Dashboard/Widgets/KpiCardWidget.razor.rz.scp.css */
/* Drill-down affordance for KPI metric rows. */

.kpi-card.drilldown-enabled .kpi-value-row.clickable[b-0pbsfgcbjy] {
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.15s ease;
}

.kpi-card.drilldown-enabled .kpi-value-row.clickable:hover[b-0pbsfgcbjy] {
    background: #f3effb;
}
/* _content/CalendarBlazor/Components/Layout/BlankLayout.razor.rz.scp.css */
/* BlankLayout (standalone new-tab pages) — masthead mirrors the main TabLayout header. */
.blank-layout[b-4r9blc4rfe] {
    min-height: 100vh;
    background-color: #f4f5f7;
}

.blank-header[b-4r9blc4rfe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 22px;
    margin: 0 14px;
    background: #ffffff;
}

.blank-header-left[b-4r9blc4rfe] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.blank-header-logo[b-4r9blc4rfe] {
    /* Parity with WebForms SetCasinoLogo/SetHeaderLogos: render at natural size, bounded only by
       the upload caps (MaxLogoHeight 90 / MaxLogoWidth 336) — matching the main TabLayout header. */
    max-height: 90px;
    max-width: 336px;
    height: auto;
    width: auto;
    display: block;
}

.blank-header-right[b-4r9blc4rfe] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.blank-header-copyright[b-4r9blc4rfe] {
    font-size: 0.72rem;
    color: #666;
    line-height: 1.4;
}

/* Maroon underline (matches the WebForms MenuBackground #8b0000 + navy rule). */
.blank-header-accent[b-4r9blc4rfe] {
    height: 6px;
    margin: 0 14px;
    background-color: #8b0000;
    border-bottom: 2px solid #000080;
}

.blank-content[b-4r9blc4rfe] {
    background-color: #ffffff;
    border: 1px solid #ccc;
    border-top: none;
    margin: 0 14px;
    padding: 22px;
    min-height: 420px;
}

/* Center page content with slight side spacing (like the WebForms centered table). */
.blank-content-inner[b-4r9blc4rfe] {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}
/* _content/CalendarBlazor/Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-5veautnela],
.components-reconnect-repeated-attempt-visible[b-5veautnela],
.components-reconnect-failed-visible[b-5veautnela],
.components-pause-visible[b-5veautnela],
.components-resume-failed-visible[b-5veautnela],
.components-rejoining-animation[b-5veautnela] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-5veautnela],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-5veautnela],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-5veautnela],
#components-reconnect-modal.components-reconnect-failed[b-5veautnela],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-5veautnela] {
    display: block;
}


#components-reconnect-modal[b-5veautnela] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-5veautnela 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-5veautnela 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-5veautnela 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-5veautnela]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-5veautnela 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-5veautnela {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-5veautnela {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-5veautnela {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-5veautnela] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-5veautnela] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-5veautnela] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-5veautnela] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-5veautnela] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-5veautnela] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-5veautnela] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-5veautnela 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-5veautnela] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-5veautnela {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* _content/CalendarBlazor/Components/Layout/TabLayout.razor.rz.scp.css */
/* TabLayout.razor.css - modern tab-based navigation (casino theme).
   Ported/restyled from the Praxis TabLayout. */

.tab-layout[b-eahtnhp8ia] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #f4f5f7;
}

/* Header (white, matches the legacy layout: logo left, Terms center, address right;
   centered with slight spacing on each side like the WebForms masthead). */
.tab-header[b-eahtnhp8ia] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 22px;
    margin: 0 14px;
    background: #ffffff;
    color: #333;
}

.tab-header-left[b-eahtnhp8ia] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.tab-header-logo-link[b-eahtnhp8ia] {
    display: inline-flex;
}

.tab-header-logo[b-eahtnhp8ia] {
    /* Parity with WebForms SetCasinoLogo/SetHeaderLogos: the logo renders at its NATURAL size,
       bounded only by the upload caps (MaxLogoHeight 90 / MaxLogoWidth 336). Forcing a fixed
       height shrank taller company logos vs. the legacy masthead. */
    max-height: 90px;
    max-width: 336px;
    height: auto;
    width: auto;
    display: block;
}

.tab-header-center[b-eahtnhp8ia] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.tab-header-terms[b-eahtnhp8ia] {
    color: #1a5fb4;
    font-weight: bold;
    text-decoration: underline;
    font-size: 12px;
}

.tab-header-terms:hover[b-eahtnhp8ia] {
    color: #0d3c78;
}

.tab-header-user-row[b-eahtnhp8ia] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.tab-header-user[b-eahtnhp8ia] {
    font-size: 0.85rem;
    font-weight: bold;
    color: #2980b9;
    white-space: nowrap;
}

.tab-header-right[b-eahtnhp8ia] {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
}

.tab-header-copyright[b-eahtnhp8ia] {
    font-size: 0.72rem;
    color: #666;
    line-height: 1.4;
}

/* Maroon underline bar (matches the WebForms MenuBackground #8b0000 + navy rule),
   inset slightly on each side to align with the centered content. */
.tab-header-accent[b-eahtnhp8ia] {
    height: 6px;
    margin: 0 14px;
    background-color: #8b0000;
    border-bottom: 2px solid #000080;
}

/* Tab strip - modern card tabs (a fresh take on the Praxis blue palette) */
.tab-container[b-eahtnhp8ia] {
    background: #f7f9fc;
    border-bottom: 2px solid #0d6efd;
    padding: 8px 14px 0 14px;
}

.tab-list[b-eahtnhp8ia] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
}

.tab-item[b-eahtnhp8ia] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background-color: #e9eef5;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #5a6b7b;
    white-space: nowrap;
    position: relative;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.tab-item-icon[b-eahtnhp8ia] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.tab-item:hover:not(.disabled):not(.selected)[b-eahtnhp8ia] {
    background-color: #dce8f7;
    color: #1a5fb4;
    transform: translateY(-2px);
}

.tab-item.selected[b-eahtnhp8ia] {
    background-color: #ffffff;
    color: #0d6efd;
    box-shadow: 0 -2px 8px rgba(13, 110, 253, 0.15);
    z-index: 2;
}

/* Blue accent bar across the top of the active tab */
.tab-item.selected[b-eahtnhp8ia]::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #0d6efd, #4aa3df);
    border-radius: 10px 10px 0 0;
}

.tab-item.selected .tab-item-icon[b-eahtnhp8ia] {
    opacity: 1;
}

.tab-item.disabled[b-eahtnhp8ia] {
    background-color: #f0f0f0;
    color: #b3b3b3;
    cursor: not-allowed;
}

/* Content */
.tab-content[b-eahtnhp8ia] {
    flex: 1;
    background-color: #fff;
    padding: 22px;
    border: 1px solid #ccc;
    border-top: none;
    margin: 0 14px;
    min-height: 420px;
    position: relative;
}

/* Center page content (mirrors the centered WebForms MainTable) with a capped width. */
.tab-content-inner[b-eahtnhp8ia] {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
}

/* Footer */
.tab-footer[b-eahtnhp8ia] {
    text-align: center;
    padding: 12px 0;
    margin-top: auto;
    background-color: #f0eaec;
    border-top: 1px solid #e0d6d9;
}

.copyright-footer[b-eahtnhp8ia] {
    font-size: 0.72rem;
    color: #6c8194;
}

/* Responsive */
@media (max-width: 1100px) {
    .tab-item[b-eahtnhp8ia] {
        padding: 9px 12px;
        font-size: 0.74rem;
    }
}

@media (max-width: 768px) {
    .tab-header-user[b-eahtnhp8ia] {
        display: none;
    }

    .tab-item[b-eahtnhp8ia] {
        padding: 7px 9px;
        font-size: 0.7rem;
    }

    .tab-item span[b-eahtnhp8ia] {
        display: none;
    }
}
/* _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/EventSchedule.razor.rz.scp.css */
/* EventSchedule page scoped styles. */

/* Hover-activated info popover (replaces the WebForms ComputeEventTotal RadToolTip). */
.assignment-info-wrap[b-zrrvyef9pt] {
    position: relative;
    display: inline-block;
}

.assignment-info-icon[b-zrrvyef9pt] {
    color: #2cace2;
    font-size: 1.6rem;
    cursor: help;
}

    .assignment-info-icon:hover[b-zrrvyef9pt] {
        color: #1a9ad1;
    }

.assignment-info-popover[b-zrrvyef9pt] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1080;
    width: 340px;
    max-height: 420px;
    overflow-y: auto;
    margin-top: 6px;
    padding: 14px 16px;
    background-color: #ffffff;
    border: 1px solid #1a9ad1;
    border-radius: 6px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.22);
    text-align: left;
    font-size: 0.85rem;
    cursor: default;
}

.assignment-info-title[b-zrrvyef9pt] {
    font-weight: bold;
    color: #1a9ad1;
    border-bottom: 1px solid #d5e8f3;
    padding-bottom: 6px;
    margin-bottom: 8px;
}
/* _content/CalendarBlazor/Components/Pages/FinancialsDaily.razor.rz.scp.css */
/* Daily Financials scoped styles. */

/* Keep the in-grid amount entry boxes compact (parity with the 75px WebForms textboxes). */
.financials-amount[b-x248yur0mm] {
    max-width: 90px;
    display: inline-block;
}

/* Expense/Revenue/Profit total rows stand out above the alternating row colors.
   Higher specificity than the global .Grid tbody tr:nth-child(even) rule so totals win. */
.Grid tbody tr.table-total-row[b-x248yur0mm] {
    background-color: #fff3cd;
    font-weight: bold;
}
/* _content/CalendarBlazor/Components/Shared/CheckboxSelectList.razor.rz.scp.css */
/* CheckboxSelectList — WebForms-style multi-select checkbox dropdown. */
.msdd-wrap[b-lk2hryw4ft] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* The combo box (relative anchor for the dropdown panel). */
.msdd[b-lk2hryw4ft] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

/* Closed combo: looks like a <select>; comma-joined text truncates with an ellipsis. */
.msdd-toggle[b-lk2hryw4ft] {
    width: 100%;
    cursor: pointer;
    font-size: 12px;
}

.msdd-toggle > span[b-lk2hryw4ft] {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Full-screen catcher so an outside click closes the dropdown (no JS needed). */
.msdd-backdrop[b-lk2hryw4ft] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

/* The open checkbox panel, overlaying just below the combo. */
.msdd-panel[b-lk2hryw4ft] {
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 2px;
    max-height: 230px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    padding: 6px 10px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.msdd-panel .form-check[b-lk2hryw4ft] {
    margin-bottom: 2px;
}

/* "Select All" toggle beside the combo. */
.msdd-selectall[b-lk2hryw4ft] {
    flex: 0 0 auto;
    white-space: nowrap;
    margin: 0;
}
/* _content/CalendarBlazor/Components/Shared/ReportRunner.razor.rz.scp.css */
/* ReportRunner layout lives in the global stylesheet (wwwroot/app.css, the .rp-* rules) so the
   /reports hub can share the exact same compact horizontal report-parameter layout. */
/* _content/CalendarBlazor/Components/Shared/RichTextEditor.razor.rz.scp.css */
/* RichTextEditor scoped styles — simple toolbar + contenteditable surface. */
.rte[b-08vnrv0l7q] {
    border: 1px solid #000000;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
}

.rte-toolbar[b-08vnrv0l7q] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: wrap;
    padding: 4px 6px;
    background-color: #bfdbff;
    border-bottom: 1px solid #000000;
}

.rte-toolbar button[b-08vnrv0l7q] {
    min-width: 30px;
    height: 28px;
    border: 1px solid #8aa9d6;
    background: #fff;
    border-radius: 3px;
    cursor: pointer;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1;
}

.rte-toolbar button:hover[b-08vnrv0l7q] {
    background: #e8f0fc;
}

.rte-sep[b-08vnrv0l7q] {
    width: 1px;
    height: 20px;
    background: #8aa9d6;
    margin: 0 4px;
}

.rte-content[b-08vnrv0l7q] {
    padding: 8px 10px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    outline: none;
    overflow-y: auto;
    max-height: 50vh;
}
