/* /Components/GlobalControls/AccountDropDown.razor.rz.scp.css */
.account-selector[b-6ov95sfl4w] {
    position: relative;
    width: 100%;
    max-width: 360px;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    /* Flex item of the header's left group: the default min-width:auto floored it at
       its content width, so on phones it spilled out of the group and painted UNDER
       the theme/notification buttons. With 0 it shrinks and the trigger truncates. */
    min-width: 0;
}

.account-selector-trigger[b-6ov95sfl4w] {
    cursor: pointer;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Super-admin copy-account-name button */
.account-copy-btn[b-6ov95sfl4w] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
    font-size: 0.95rem;
}

.account-copy-btn:hover[b-6ov95sfl4w] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
    color: var(--bs-body-color);
}

.account-selector-backdrop[b-6ov95sfl4w] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.account-selector-panel[b-6ov95sfl4w] {
    position: fixed;
    z-index: 1050;
    max-height: 400px;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 280px;
}

.account-selector-search[b-6ov95sfl4w] {
    border: 0;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0;
    padding: 0.625rem 0.875rem;
}

.account-selector-search:focus[b-6ov95sfl4w] {
    box-shadow: none;
    border-color: var(--bs-border-color, #dee2e6);
    border-bottom-color: var(--bs-primary, #0d6efd);
}

.account-selector-list[b-6ov95sfl4w] {
    max-height: 320px;
    min-height: 36px;
    overflow-y: auto;
}

.account-selector-item[b-6ov95sfl4w] {
    padding: 8px 12px;
    height: 66px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
    line-height: 1.25;
}

.account-selector-item:hover[b-6ov95sfl4w] {
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.08);
}

.account-selector-item.selected[b-6ov95sfl4w] {
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.14);
    font-weight: 500;
}

/* Keyboard highlight (arrow keys / first search match). The inset bar distinguishes it
   from the mouse :hover tint and marks the row that Enter will select. */
.account-selector-item.active[b-6ov95sfl4w] {
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.18);
    box-shadow: inset 3px 0 0 var(--bs-primary, #0d6efd);
}

.account-selector-name[b-6ov95sfl4w] {
    font-size: 0.9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-selector-realm[b-6ov95sfl4w] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6c757d);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-selector-empty[b-6ov95sfl4w] {
    padding: 1rem;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.85rem;
}

.account-selector-footer[b-6ov95sfl4w] {
    padding: 4px 12px;
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #6c757d);
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    background: rgba(0, 0, 0, 0.02);
    text-align: right;
}

/* ---- phones ---- */
/* Must stay AFTER the .account-copy-btn base rule above: same specificity, so file
   order decides, and an earlier display:none would lose to the base display:flex. */
@media (max-width: 575.98px) {
    /* Drop the copy-name convenience so its ~40px go to the account name, which is
       fighting for every character at this width. */
    .account-copy-btn[b-6ov95sfl4w] {
        display: none;
    }
}
/* /Components/Home.razor.rz.scp.css */
/* Quick-action tiles: subtle lift on hover, icon in a rounded tinted square. */
.dash-action[b-aon71y96uz] {
    transition: transform .12s ease, box-shadow .15s ease;
    color: inherit;
}

.dash-action:hover[b-aon71y96uz] {
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12) !important;
}

.dash-action-icon[b-aon71y96uz] {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    /* Tinted neutral square; the icon itself is colored via Bootstrap text-* classes. */
    background: var(--bs-secondary-bg, rgba(0, 0, 0, .06));
}

/* Keep long action titles/descriptions from pushing the tile wider. */
.min-w-0[b-aon71y96uz] {
    min-width: 0;
}

.min-w-0 > div[b-aon71y96uz] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-0htsge5e66] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-0htsge5e66] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/Account/AccountManager.razor.rz.scp.css */
.ac-page h4[b-b1cfzuni73] {
    font-weight: 600;
}

.ac-card[b-b1cfzuni73] {
    border: none;
    border-radius: 0.75rem;
}

.ac-card-head[b-b1cfzuni73] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.fs-nano[b-b1cfzuni73] {
    font-size: 0.72rem;
}

.ac-field[b-b1cfzuni73] {
    margin-bottom: 0.9rem;
}

.ac-switch-row[b-b1cfzuni73] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}

.ac-switch-row:last-child[b-b1cfzuni73] {
    border-bottom: none;
}

.ac-table-wrap[b-b1cfzuni73] {
    max-height: 24rem;
    overflow-y: auto;
}

.ac-table-wrap thead th[b-b1cfzuni73] {
    position: sticky;
    top: 0;
    background: var(--bs-body-bg);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color);
}

.ac-table-wrap td[b-b1cfzuni73],
.ac-table-wrap th[b-b1cfzuni73] {
    padding: 0.45rem 1rem;
}

/* Staged hold-music upload — the file sits here while its name is edited, set off
   from the settings fields so it reads as a pending action rather than a saved value. */
.ac-moh-staged[b-b1cfzuni73] {
    padding: 0.65rem 0.75rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
    max-width: 34rem;
}

/* Reporting: each report is a small block — switch, its shared recipient list, add picker. */
.ac-report[b-b1cfzuni73] {
    padding: 0.5rem 0 0.75rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.ac-report:last-of-type[b-b1cfzuni73] {
    border-bottom: 0;
}

.ac-recipients[b-b1cfzuni73] {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
}

.ac-recipients li[b-b1cfzuni73] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.15rem 0;
    font-size: 0.84rem;
    max-width: 26rem;
}

.ac-recipients li > span[b-b1cfzuni73] {
    flex: 1;
    min-width: 0;
}
/* /Components/Pages/Admin/PresenceDashboard.razor.rz.scp.css */
.pp-page h4[b-9lkuh0l32j] {
    font-weight: 600;
}

.pp-card[b-9lkuh0l32j] {
    border: none;
    border-radius: 0.75rem;
}

/* Headline numbers */
.pp-tiles[b-9lkuh0l32j] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.75rem;
}

.pp-tile[b-9lkuh0l32j] {
    background: var(--bs-tertiary-bg);
    border-radius: 0.75rem;
    padding: 0.85rem 1rem;
}

.pp-tile-n[b-9lkuh0l32j] {
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.pp-tile-l[b-9lkuh0l32j] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.pp-tile-warn .pp-tile-n[b-9lkuh0l32j] {
    color: #d39e00;
}

.pp-table thead th[b-9lkuh0l32j] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color);
    border-bottom-width: 1px;
    padding: 0.6rem 1rem;
}

.pp-table tbody td[b-9lkuh0l32j] {
    padding: 0.55rem 1rem;
}

.pp-row-dim[b-9lkuh0l32j] {
    opacity: 0.6;
}

.pp-time[b-9lkuh0l32j] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fs-nano[b-9lkuh0l32j] {
    font-size: 0.72rem;
}

.pp-slot[b-9lkuh0l32j] {
    width: auto;
}
/* /Components/Pages/Blocklists/BlocklistManager.razor.rz.scp.css */
.bl-page h4[b-fwz9xt45ck] {
    font-weight: 600;
}

.bl-card[b-fwz9xt45ck] {
    border: none;
    border-radius: 0.75rem;
}

.bl-tabs .nav-link[b-fwz9xt45ck] {
    color: var(--bs-body-color);
    font-weight: 500;
    padding: 0.4rem 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.bl-tabs .nav-link.active[b-fwz9xt45ck] {
    background: var(--bs-primary);
    color: #fff;
}

.bl-tab-count[b-fwz9xt45ck] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

.bl-tabs .nav-link.active .bl-tab-count[b-fwz9xt45ck] {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.bl-card-head[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.bl-row[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.bl-row:last-child[b-fwz9xt45ck] {
    border-bottom: none;
}

.bl-row:hover[b-fwz9xt45ck] {
    background: var(--bs-tertiary-bg);
}

.bl-row-active[b-fwz9xt45ck] {
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.bl-row-main[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    background: transparent;
    padding: 0.25rem 0;
    text-align: left;
    cursor: pointer;
}

.bl-row-static[b-fwz9xt45ck] {
    cursor: default;
}

.bl-row-actions[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex: 0 0 auto;
}

.bl-sms-add[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.bl-num-row[b-fwz9xt45ck] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.bl-num-input[b-fwz9xt45ck] {
    max-width: 11rem;
    flex: 0 0 auto;
}
/* /Components/Pages/ButtonManager/ButtonManager.razor.rz.scp.css */
.bm-device-select[b-qda7wviiub] {
    min-width: 16rem;
    max-width: 20rem;
}

/* ---- family tab chips ---- */

.bm-family-tabs[b-qda7wviiub] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.bm-chip[b-qda7wviiub] {
    padding: 0.25rem 0.7rem;
    border: 1px solid var(--bs-border-color, #d9d9d9);
    border-radius: 2rem;
    background: transparent;
    color: var(--bs-body-color);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.bm-chip:hover[b-qda7wviiub] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.05));
}

.bm-chip.active[b-qda7wviiub] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

/* ---- assignment grid ---- */

.bm-grid-head[b-qda7wviiub],
.bm-grid-row[b-qda7wviiub] {
    display: grid;
    grid-template-columns: 1.3rem 2.6rem 8.5rem minmax(9rem, 1.2fr) minmax(7rem, 1fr);
    gap: 0.5rem;
    align-items: start;
    padding: 0.3rem 0.6rem;
}

.bm-grid-head[b-qda7wviiub] {
    border-bottom: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-tertiary-bg, #f6f7f9);
    border-radius: 0.375rem 0.375rem 0 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
}

.bm-table-scroll[b-qda7wviiub] {
    max-height: 30rem;
    overflow-y: auto;
    border: 1px solid var(--bs-border-color, #ececec);
    border-top: 0;
    border-radius: 0 0 0.375rem 0.375rem;
}

.bm-grid-row[b-qda7wviiub] {
    border-bottom: 1px solid var(--bs-border-color, #f0f0f0);
    cursor: pointer;
    transition: background-color 0.1s ease;
}

.bm-grid-row:last-child[b-qda7wviiub] {
    border-bottom: 0;
}

.bm-grid-row:hover[b-qda7wviiub] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.03));
}

.bm-grid-row.bm-row-sel[b-qda7wviiub] {
    background: color-mix(in srgb, var(--bs-primary) 14%, transparent);
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

/* ---- drag to reorder ---- */

.bm-drag-handle[b-qda7wviiub] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0.35rem;
    color: var(--bs-secondary-color, #999);
    cursor: grab;
    opacity: 0.55;
    transition: opacity 0.1s ease;
}

.bm-grid-row:hover .bm-drag-handle[b-qda7wviiub] {
    opacity: 1;
}

.bm-drag-handle:active[b-qda7wviiub] {
    cursor: grabbing;
}

.bm-grid-row.bm-row-dragging[b-qda7wviiub] {
    opacity: 0.4;
}

.bm-grid-row.bm-row-dragover[b-qda7wviiub] {
    box-shadow: inset 0 2px 0 var(--bs-primary);
}

.bm-keynum[b-qda7wviiub] {
    font-weight: 700;
    font-size: 0.85rem;
    padding-top: 0.35rem;
    text-align: center;
    color: var(--bs-secondary-color, #666);
}

.bm-row-sel .bm-keynum[b-qda7wviiub] {
    color: var(--bs-primary);
}

/* ---- misc switches ---- */

.bm-switch-grid[b-qda7wviiub] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.25rem 1rem;
}

.bm-switch-grid .form-check-label[b-qda7wviiub] {
    font-size: 0.85rem;
}

@media (max-width: 575px) {
    .bm-grid-head[b-qda7wviiub],
    .bm-grid-row[b-qda7wviiub] {
        grid-template-columns: 1.1rem 2rem 7rem minmax(6rem, 1fr) minmax(5rem, 1fr);
        gap: 0.35rem;
        padding: 0.3rem 0.4rem;
    }
}
/* /Components/Pages/ButtonManager/PhoneDiagram.razor.rz.scp.css */
.pd-shell[b-smqt04ezc8] {
    width: 100%;
    max-width: 26rem;
    margin: 0 auto;
}

.pd-shell svg[b-smqt04ezc8] {
    display: block;
    width: 100%;
    height: auto;
    font-family: inherit;
}

/* Phones are dark hardware in both themes; only the accents follow the theme. */
.pd-body[b-smqt04ezc8] {
    fill: #2c3038;
    stroke: #1d2026;
    stroke-width: 1;
}

.pd-screen.pd-color[b-smqt04ezc8] {
    fill: #10151f;
    stroke: #000;
    stroke-width: 1;
}

.pd-screen.pd-grey[b-smqt04ezc8] {
    fill: #b9c4b5;
    stroke: #7d8a79;
    stroke-width: 1;
}

.pd-screen-tint[b-smqt04ezc8] {
    fill: rgba(8, 10, 16, 0.28);
    pointer-events: none;
}

/* Soft keys / touch strip: part of the faceplate, not programmable, so they stay quiet. */
.pd-decor[b-smqt04ezc8] {
    fill: #353a44;
    stroke: #23262c;
    stroke-width: 0.5;
    pointer-events: none;
}

.pd-key[b-smqt04ezc8] {
    cursor: pointer;
}

.pd-keycap[b-smqt04ezc8] {
    fill: #454b56;
    stroke: #23262c;
    stroke-width: 0.75;
    transition: fill 0.1s ease;
}

.pd-key:hover .pd-keycap[b-smqt04ezc8] {
    fill: #5a6270;
}

.pd-key.pd-sel .pd-keycap[b-smqt04ezc8] {
    fill: var(--bs-primary, #886ab5);
    stroke: var(--bs-primary, #886ab5);
}

.pd-pagekey .pd-keycap[b-smqt04ezc8] {
    fill: #383e48;
    stroke-dasharray: 2 1.5;
}

.pd-led[b-smqt04ezc8] {
    fill: #3fe07c;
    pointer-events: none;
}

/* On-screen label strips beside physical keys */
.pd-strip[b-smqt04ezc8] {
    fill: rgba(12, 16, 24, 0.55);
}

.pd-key.pd-sel .pd-strip[b-smqt04ezc8] {
    fill: var(--bs-primary, #886ab5);
}

/* Grey LCDs get darker, ink-style strips */
.pd-grey ~ g .pd-strip[b-smqt04ezc8] {
    fill: rgba(28, 36, 26, 0.75);
}

.pd-home[b-smqt04ezc8] {
    fill: #1f242c;
    stroke: #4a515c;
    stroke-width: 1;
}

/* ---- SVG <text> elements ----------------------------------------------------------
   Emitted as raw markup (Razor reserves the <text> tag) so they carry no CSS-isolation
   scope attribute — style them through ::deep from the scoped .pd-shell root. */

.pd-shell[b-smqt04ezc8]  .pd-keynum {
    fill: #cfd4dc;
    font-size: 7px;
    font-weight: 600;
    pointer-events: none;
    user-select: none;
}

.pd-shell[b-smqt04ezc8]  .pd-key.pd-sel .pd-keynum {
    fill: #fff;
}

.pd-shell[b-smqt04ezc8]  .pd-chipnum {
    fill: rgba(255, 255, 255, 0.55);
    font-size: 5.5px;
    pointer-events: none;
    user-select: none;
}

.pd-shell[b-smqt04ezc8]  .pd-chiplabel {
    fill: #f2f4f8;
    font-size: 6.8px;
    pointer-events: none;
    user-select: none;
}

.pd-shell[b-smqt04ezc8]  .pd-striplabel {
    fill: #eef1f6;
    font-size: 6.5px;
    pointer-events: none;
    user-select: none;
}

.pd-shell[b-smqt04ezc8]  .pd-page-ind {
    fill: #aeb6c2;
    font-size: 7px;
    font-weight: 600;
    pointer-events: none;
    user-select: none;
}
/* /Components/Pages/CallForwarding/ForwardEditorPanel.razor.rz.scp.css */
.fw-switch-row[b-bjsv01bxmh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}

.fw-switch-row:last-child[b-bjsv01bxmh] {
    border-bottom: none;
}

.fw-switch-primary[b-bjsv01bxmh] {
    border: 1.5px solid var(--bs-border-color);
    border-radius: 0.6rem;
    padding: 0.7rem 0.9rem;
    background: var(--bs-tertiary-bg);
}

.fw-switch-label[b-bjsv01bxmh] {
    font-weight: 500;
}

.fw-switch-sub[b-bjsv01bxmh] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
}

.fw-config[b-bjsv01bxmh] {
    margin-top: 0.85rem;
}
/* /Components/Pages/CallForwarding/ForwardPhone.razor.rz.scp.css */
.fw-page h4[b-ipra4adzvf] {
    font-weight: 600;
}

.fw-card[b-ipra4adzvf] {
    border: none;
    border-radius: 0.75rem;
}

.fw-toolbar[b-ipra4adzvf] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.fs-nano[b-ipra4adzvf] {
    font-size: 0.72rem;
}

.fw-user-row[b-ipra4adzvf] {
    border-bottom: 1px solid var(--bs-border-color);
}

.fw-user-row:last-child[b-ipra4adzvf] {
    border-bottom: none;
}

.fw-user-row.expanded[b-ipra4adzvf] {
    background: var(--bs-tertiary-bg);
}

.fw-user-main[b-ipra4adzvf] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.6rem 1rem;
    cursor: pointer;
}

.fw-user-main:hover[b-ipra4adzvf] {
    background: var(--bs-tertiary-bg);
}

.fw-avatar[b-ipra4adzvf] {
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-weight: 600;
    font-size: 0.8rem;
}

.fw-user-names[b-ipra4adzvf] {
    display: flex;
    flex-direction: column;
    min-width: 10rem;
}

.fw-user-status[b-ipra4adzvf] {
    margin-left: auto;
}

.fw-user-editor[b-ipra4adzvf] {
    padding: 0.25rem 1rem 1rem 3.95rem;
}

@media (max-width: 575.98px) {
    .fw-user-editor[b-ipra4adzvf] {
        padding-left: 1rem;
    }
}
/* /Components/Pages/CallLogs/CallLogList.razor.rz.scp.css */
/* ---- range chips + filters ---- */

.cl-chips[b-py9ha74qzn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.cl-chip[b-py9ha74qzn] {
    padding: 0.3rem 0.85rem;
    border: 1px solid var(--bs-border-color, #d9d9d9);
    border-radius: 2rem;
    background: transparent;
    color: var(--bs-body-color);
    font-size: 0.82rem;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.cl-chip:hover[b-py9ha74qzn] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.05));
}

.cl-chip.active[b-py9ha74qzn] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.cl-custom[b-py9ha74qzn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.cl-custom > div[b-py9ha74qzn] {
    min-width: 13rem;
}

.cl-filters[b-py9ha74qzn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

/* ---- stat tiles ---- */

.cl-stats[b-py9ha74qzn] {
    display: grid;
    grid-template-columns: repeat(4, minmax(8rem, 1fr));
    gap: 0.75rem;
}

.cl-stat[b-py9ha74qzn] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.cl-stat-value[b-py9ha74qzn] {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
}

.cl-stat-label[b-py9ha74qzn] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--bs-secondary-color, #888);
}

/* ---- tabs ---- */

.cl-tabs .nav-link[b-py9ha74qzn] {
    font-size: 0.85rem;
    padding: 0.35rem 0.9rem;
    cursor: pointer;
}

/* ---- view bar: Call Logs + report picker ---- */

.cl-viewbar[b-py9ha74qzn] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.cl-viewtab[b-py9ha74qzn] {
    padding: 0.35rem 1rem;
    border: 1px solid var(--bs-primary);
    border-radius: 2rem;
    background: transparent;
    color: var(--bs-primary);
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease;
}

.cl-viewtab:hover[b-py9ha74qzn] {
    background: rgba(var(--bs-primary-rgb), 0.08);
}

.cl-viewtab.active[b-py9ha74qzn] {
    background: var(--bs-primary);
    color: #fff;
}

.cl-report-picker[b-py9ha74qzn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cl-report-picker select[b-py9ha74qzn] {
    min-width: 14rem;
}

/* ---- log grid ---- */

.cl-card[b-py9ha74qzn] {
    overflow: visible; /* the quick-call popover must escape the card */
}

.cl-thead[b-py9ha74qzn],
.cl-row[b-py9ha74qzn],
.cl-leg[b-py9ha74qzn] {
    display: grid;
    grid-template-columns: 2.2rem 6.8rem minmax(9rem, 1.2fr) minmax(9rem, 1.2fr) minmax(8rem, 1fr) 4.6rem minmax(7.5rem, 0.9fr) 8.2rem;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.9rem;
}

.cl-thead[b-py9ha74qzn] {
    border-bottom: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-tertiary-bg, #f6f7f9);
    border-radius: 0.375rem 0.375rem 0 0;
}

.cl-th[b-py9ha74qzn] {
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
    white-space: nowrap;
}

.cl-th:hover[b-py9ha74qzn] {
    color: var(--bs-body-color);
}

.cl-th-center[b-py9ha74qzn] {
    text-align: center;
}

.cl-row-wrap[b-py9ha74qzn] {
    border-bottom: 1px solid var(--bs-border-color, #efefef);
}

.cl-row-wrap:last-of-type[b-py9ha74qzn] {
    border-bottom: 0;
}

.cl-row.has-legs[b-py9ha74qzn] {
    cursor: pointer;
}

.cl-row:hover[b-py9ha74qzn] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.03));
}

.cl-col-dir[b-py9ha74qzn] {
    text-align: center;
}

.cl-dir-in[b-py9ha74qzn] {
    color: var(--bs-warning, #f0ad4e);
}

.cl-dir-out[b-py9ha74qzn] {
    color: var(--bs-success, #1dc9b7);
}

.cl-cell[b-py9ha74qzn] {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.cl-main[b-py9ha74qzn] {
    font-size: 0.87rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cl-sub[b-py9ha74qzn] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cl-cause[b-py9ha74qzn] {
    display: inline-block;
    max-width: 100%;
    padding: 0.15rem 0.5rem;
    border-radius: 1rem;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cl-cause.is-ok[b-py9ha74qzn] {
    background: rgba(var(--bs-success-rgb, 25, 135, 84), 0.12);
    color: var(--bs-success, #198754);
}

.cl-cause.is-warn[b-py9ha74qzn] {
    background: rgba(var(--bs-warning-rgb, 255, 193, 7), 0.18);
    color: #a07800;
}

.cl-cause.is-info[b-py9ha74qzn] {
    background: rgba(var(--bs-info-rgb, 13, 202, 240), 0.14);
    color: var(--bs-info-text-emphasis, #087990);
}

.cl-cause.is-bad[b-py9ha74qzn] {
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.12);
    color: var(--bs-danger, #dc3545);
}

.cl-actions[b-py9ha74qzn] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.1rem;
}

.cl-icon-btn[b-py9ha74qzn] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
    font-size: 0.85rem;
}

.cl-icon-btn:hover[b-py9ha74qzn] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
    color: var(--bs-body-color);
}

/* Empty stand-in for the expand caret on rows with no legs, so action icons align. */
.cl-expander-spacer[b-py9ha74qzn] {
    background: transparent;
    pointer-events: none;
}

.cl-expander i[b-py9ha74qzn] {
    transition: transform 0.15s ease;
}

.cl-expander.open i[b-py9ha74qzn] {
    transform: rotate(180deg);
}

.cl-mini-btn[b-py9ha74qzn] {
    border: 0;
    background: transparent;
    padding: 0 0.2rem;
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #999);
    cursor: pointer;
}

.cl-mini-btn:hover[b-py9ha74qzn] {
    color: var(--bs-primary);
}

/* ---- b-leg drill-down ---- */

.cl-legs[b-py9ha74qzn] {
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-top: 1px dashed var(--bs-border-color, #e5e5e5);
}

.cl-leg[b-py9ha74qzn] {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
    border-left: 3px solid rgba(var(--bs-primary-rgb), 0.35);
}

.cl-leg .cl-main[b-py9ha74qzn] {
    font-weight: 400;
    font-size: 0.82rem;
}

/* ---- pager ---- */

.cl-pager[b-py9ha74qzn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.6rem 0.9rem;
    border-top: 1px solid var(--bs-border-color, #e5e5e5);
}

/* ---- conference report ---- */

.cl-conf-table[b-py9ha74qzn] {
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    overflow: hidden;
}

.cl-conf-head[b-py9ha74qzn],
.cl-conf-row[b-py9ha74qzn] {
    display: grid;
    grid-template-columns: 2fr 1.2fr 0.6fr;
    gap: 0.5rem;
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
}

.cl-conf-head[b-py9ha74qzn] {
    background: var(--bs-tertiary-bg, #f6f7f9);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
}

.cl-conf-row[b-py9ha74qzn] {
    border-top: 1px solid var(--bs-border-color, #efefef);
}

/* ---- missed call report ---- */

.cl-stat-btn[b-py9ha74qzn] {
    cursor: pointer;
    text-align: left;
    font: inherit;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.cl-stat-btn:hover[b-py9ha74qzn] {
    border-color: var(--bs-danger);
    box-shadow: 0 2px 6px rgba(var(--bs-danger-rgb), 0.18);
}

.cl-missed-table[b-py9ha74qzn] {
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    overflow: hidden;
}

.cl-missed-head[b-py9ha74qzn],
.cl-missed-row[b-py9ha74qzn] {
    display: grid;
    /* Fixed last column so rows stay aligned whether or not the add-contact button shows. */
    grid-template-columns: 2fr 0.7fr 1.1fr 1.1fr 4.75rem;
    gap: 0.5rem;
    align-items: center;
    padding: 0.45rem 0.75rem;
    font-size: 0.85rem;
}

/* Keep the callback button in the same spot regardless of the add-contact button. */
.cl-missed-row .cl-actions[b-py9ha74qzn] {
    justify-content: flex-start;
}

.cl-attempt-badge[b-py9ha74qzn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: 0.2rem 0.6rem;
    border-radius: 1rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.1;
    /* Deep rose, fixed in both themes: white text ~5.6:1 either way, versus the light
       theme --bs-danger pink that was only ~3.4:1. Saturated enough to read clearly on
       dark surfaces too. */
    background: #c81e4a;
    color: #fff;
}

.cl-missed-head[b-py9ha74qzn] {
    background: var(--bs-tertiary-bg, #f6f7f9);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
}

.cl-missed-row[b-py9ha74qzn] {
    border-top: 1px solid var(--bs-border-color, #efefef);
}

.cl-missed-row:hover[b-py9ha74qzn] {
    background: var(--bs-tertiary-bg, #f6f7f9);
}

.cl-missed-caller[b-py9ha74qzn] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cl-missed-caller .cl-main[b-py9ha74qzn] {
    font-weight: 600;
}

.cl-missed-caller .cl-sub[b-py9ha74qzn] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #888);
}

.cl-missed-when[b-py9ha74qzn] {
    color: var(--bs-secondary-color, #666);
}

@media (max-width: 767px) {
    .cl-missed-head[b-py9ha74qzn],
    .cl-missed-row[b-py9ha74qzn] {
        grid-template-columns: 1.6fr 0.6fr 1fr 4.75rem;
    }
    .cl-missed-head span:nth-child(3)[b-py9ha74qzn],
    .cl-missed-row .cl-missed-when:first-of-type[b-py9ha74qzn] {
        display: none;
    }
}

/* ---- shared ---- */

.cl-modal-backdrop[b-py9ha74qzn] {
    background-color: rgba(0, 0, 0, 0.5);
}

.cl-code[b-py9ha74qzn] {
    display: inline-block;
    max-width: 100%;
    word-break: break-all;
    font-size: 0.75rem;
}

/* Super-admin raw CDR dump in the details modal */
.cl-raw-json[b-py9ha74qzn] {
    max-height: 20rem;
    overflow: auto;
    margin: 0;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg, #f6f7f9);
    font-size: 0.72rem;
    line-height: 1.45;
}

/* ---- responsive ---- */

@media (max-width: 1199.98px) {
    .cl-thead[b-py9ha74qzn],
    .cl-row[b-py9ha74qzn],
    .cl-leg[b-py9ha74qzn] {
        grid-template-columns: 2.2rem 6.8rem minmax(9rem, 1.2fr) minmax(9rem, 1.2fr) 4.6rem 8.2rem;
    }

    .cl-col-cause[b-py9ha74qzn],
    .cl-col-ans[b-py9ha74qzn] {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .cl-thead[b-py9ha74qzn],
    .cl-row[b-py9ha74qzn],
    .cl-leg[b-py9ha74qzn] {
        grid-template-columns: 1.6rem 6.4rem minmax(7rem, 1fr) 7.4rem;
        gap: 0.35rem;
        padding: 0.45rem 0.6rem;
    }

    /* keep direction, time, from, actions; hide to + duration */
    .cl-thead > :nth-child(4)[b-py9ha74qzn],
    .cl-row > :nth-child(4)[b-py9ha74qzn],
    .cl-leg > :nth-child(4)[b-py9ha74qzn],
    .cl-thead > :nth-child(6)[b-py9ha74qzn],
    .cl-row > :nth-child(6)[b-py9ha74qzn],
    .cl-leg > :nth-child(6)[b-py9ha74qzn] {
        display: none;
    }

    .cl-stats[b-py9ha74qzn] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /Components/Pages/CallLogs/ConcurrencyPanel.razor.rz.scp.css */
/* ---- concurrency report ---- */

.cc-headline[b-2tvzhz1hfs] {
    display: grid;
    grid-template-columns: repeat(5, minmax(7rem, 1fr));
    gap: 0.75rem;
}

.cc-kpi[b-2tvzhz1hfs] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
}

.cc-kpi-value[b-2tvzhz1hfs] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.15;
}

.cc-kpi-of[b-2tvzhz1hfs] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #888);
}

.cc-kpi-label[b-2tvzhz1hfs] {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
}

/* The defensible figure under the headline one — see the verdict note in the panel. */
.cc-kpi-sub[b-2tvzhz1hfs] {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #888);
}

.cc-h[b-2tvzhz1hfs] {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.cc-split[b-2tvzhz1hfs] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.cc-levels[b-2tvzhz1hfs] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.cc-level-row[b-2tvzhz1hfs] {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr) 4.5rem 3.5rem;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.82rem;
}

.cc-level-name[b-2tvzhz1hfs] {
    font-weight: 600;
}

.cc-bar[b-2tvzhz1hfs] {
    display: block;
    height: 0.6rem;
    border-radius: 0.3rem;
    background: var(--bs-tertiary-bg, #f0f1f4);
    overflow: hidden;
}

.cc-bar-fill[b-2tvzhz1hfs] {
    display: block;
    height: 100%;
    border-radius: 0.3rem;
    background: rgba(var(--bs-primary-rgb), 0.55);
}

.cc-bar-fill.cc-bar-hot[b-2tvzhz1hfs] {
    background: rgba(var(--bs-danger-rgb), 0.65);
}

.cc-level-val[b-2tvzhz1hfs],
.cc-level-pct[b-2tvzhz1hfs] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--bs-secondary-color, #777);
}

.cc-table[b-2tvzhz1hfs] {
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    overflow: hidden;
}

.cc-head[b-2tvzhz1hfs],
.cc-row[b-2tvzhz1hfs] {
    display: grid;
    gap: 0.5rem;
    align-items: center;
    padding: 0.42rem 0.75rem;
    font-size: 0.83rem;
}

.cc-head[b-2tvzhz1hfs] {
    background: var(--bs-tertiary-bg, #f6f7f9);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
}

.cc-row[b-2tvzhz1hfs] {
    border-top: 1px solid var(--bs-border-color, #efefef);
}

/* Provisioned but never used in the range — the "paying for shelfware" rows. */
.cc-row-idle[b-2tvzhz1hfs] {
    color: var(--bs-secondary-color, #888);
}

.cc-table-dev .cc-head[b-2tvzhz1hfs],
.cc-table-dev .cc-row[b-2tvzhz1hfs] {
    grid-template-columns: minmax(8rem, 1.6fr) 7rem minmax(6rem, 1fr) 4rem 5.5rem 5rem 5rem 8.5rem;
}

.cc-table-ep .cc-head[b-2tvzhz1hfs],
.cc-table-ep .cc-row[b-2tvzhz1hfs] {
    grid-template-columns: 11rem 5rem 4rem minmax(0, 1fr);
}

.cc-table-day .cc-head[b-2tvzhz1hfs],
.cc-table-day .cc-row[b-2tvzhz1hfs] {
    grid-template-columns: minmax(7rem, 1fr) 6.5rem 6rem 5rem 6rem;
}

.cc-num[b-2tvzhz1hfs] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cc-strong[b-2tvzhz1hfs] {
    font-weight: 600;
}

.cc-devs[b-2tvzhz1hfs] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #777);
    overflow-wrap: anywhere;
}

.cc-peak-badge[b-2tvzhz1hfs] {
    display: inline-block;
    min-width: 1.5rem;
    padding: 0.05rem 0.35rem;
    border-radius: 0.75rem;
    background: rgba(var(--bs-primary-rgb), 0.14);
    color: var(--bs-primary);
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
}

.cc-peak-badge.cc-peak-hot[b-2tvzhz1hfs] {
    background: rgba(var(--bs-danger-rgb), 0.16);
    color: var(--bs-danger);
}

/* Paper-only masthead — see the print block at the bottom of this file. */
.cc-print-head[b-2tvzhz1hfs] {
    display: none;
}

/* Episodes past the on-screen limit: rendered, but only revealed when printing. */
.cc-row-overflow[b-2tvzhz1hfs] {
    display: none;
}

/* ---- responsive ---- */

@media (max-width: 1199.98px) {
    .cc-headline[b-2tvzhz1hfs] {
        grid-template-columns: repeat(3, minmax(7rem, 1fr));
    }

    .cc-split[b-2tvzhz1hfs] {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
    }

    /* Drop "Assigned to" and "Last used" before the numbers that carry the finding. */
    .cc-table-dev .cc-head[b-2tvzhz1hfs],
    .cc-table-dev .cc-row[b-2tvzhz1hfs] {
        grid-template-columns: minmax(7rem, 1.6fr) 6.5rem 4rem 5.5rem 4.5rem 4.5rem;
    }

    .cc-table-dev .cc-head > :nth-child(3)[b-2tvzhz1hfs],
    .cc-table-dev .cc-row > :nth-child(3)[b-2tvzhz1hfs],
    .cc-table-dev .cc-head > :nth-child(8)[b-2tvzhz1hfs],
    .cc-table-dev .cc-row > :nth-child(8)[b-2tvzhz1hfs] {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .cc-headline[b-2tvzhz1hfs] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cc-level-row[b-2tvzhz1hfs] {
        grid-template-columns: 4.5rem minmax(0, 1fr) 4rem 3rem;
        font-size: 0.78rem;
    }

    /* Device / talk time / days only — the rest is unreadable at this width. */
    .cc-table-dev .cc-head[b-2tvzhz1hfs],
    .cc-table-dev .cc-row[b-2tvzhz1hfs] {
        grid-template-columns: minmax(0, 1fr) 5rem 4rem;
    }

    .cc-table-dev .cc-head > :nth-child(2)[b-2tvzhz1hfs],
    .cc-table-dev .cc-row > :nth-child(2)[b-2tvzhz1hfs],
    .cc-table-dev .cc-head > :nth-child(4)[b-2tvzhz1hfs],
    .cc-table-dev .cc-row > :nth-child(4)[b-2tvzhz1hfs],
    .cc-table-dev .cc-head > :nth-child(7)[b-2tvzhz1hfs],
    .cc-table-dev .cc-row > :nth-child(7)[b-2tvzhz1hfs] {
        display: none;
    }

    .cc-table-ep .cc-head[b-2tvzhz1hfs],
    .cc-table-ep .cc-row[b-2tvzhz1hfs] {
        grid-template-columns: 8.5rem 4rem 3rem;
    }

    .cc-table-ep .cc-head > :nth-child(4)[b-2tvzhz1hfs],
    .cc-table-ep .cc-row > :nth-child(4)[b-2tvzhz1hfs] {
        grid-column: 1 / -1;
        text-align: left;
    }

    .cc-table-day .cc-head[b-2tvzhz1hfs],
    .cc-table-day .cc-row[b-2tvzhz1hfs] {
        grid-template-columns: minmax(0, 1fr) 4.5rem 4.5rem;
    }

    .cc-table-day .cc-head > :nth-child(4)[b-2tvzhz1hfs],
    .cc-table-day .cc-row > :nth-child(4)[b-2tvzhz1hfs],
    .cc-table-day .cc-head > :nth-child(5)[b-2tvzhz1hfs],
    .cc-table-day .cc-row > :nth-child(5)[b-2tvzhz1hfs] {
        display: none;
    }
}

/* ---- print / save as PDF ---- */

@media print {
    /* Controls are not part of the report. */
    .cc-noprint[b-2tvzhz1hfs] {
        display: none !important;
    }

    .cc-print-head[b-2tvzhz1hfs] {
        display: block !important;
        margin-bottom: 0.9rem;
        padding-bottom: 0.6rem;
        border-bottom: 2px solid #222;
    }

    .cc-print-title[b-2tvzhz1hfs] {
        font-size: 1.35rem;
        font-weight: 700;
        line-height: 1.2;
    }

    .cc-print-account[b-2tvzhz1hfs] {
        font-size: 1rem;
        font-weight: 600;
    }

    .cc-print-meta[b-2tvzhz1hfs] {
        font-size: 0.8rem;
        color: #444 !important;
    }

    /* Every overlap episode belongs in the document, including the ones the screen pages away. */
    .cc-row-overflow[b-2tvzhz1hfs] {
        display: grid !important;
    }

    /*
        Paper is white even when the viewer is in dark mode. The theme flips Bootstrap's
        variables on <html>, so the fix is to re-point those variables inside the report
        rather than chase every class that reads them — otherwise dark mode prints pale
        grey body text (--bs-secondary-color becomes a light tint) onto white paper.
    */
    .cc-print-area[b-2tvzhz1hfs] {
        --bs-body-bg: #fff;
        --bs-body-color: #000;
        --bs-body-color-rgb: 0, 0, 0;
        --bs-emphasis-color: #000;
        --bs-secondary-color: #444;
        --bs-secondary-bg: #f2f2f2;
        --bs-tertiary-bg: #ececec;
        --bs-border-color: #bbb;
        background: #fff !important;
        color: #000 !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    /* Bootstrap utility classes set colour directly, so they need saying explicitly. */
    .cc-print-area .text-muted[b-2tvzhz1hfs] {
        color: #444 !important;
    }

    /*
        Alerts carry their own theme variables, so in dark mode they print as muddy olive
        and slate blocks — and the warning one is the report's headline finding.
    */
    .cc-print-area .alert-warning[b-2tvzhz1hfs] {
        background: #fdf3dd !important;
        border-color: #e3c684 !important;
        color: #6b4c00 !important;
    }

    .cc-print-area .alert-success[b-2tvzhz1hfs] {
        background: #e9f7ef !important;
        border-color: #9dd3b0 !important;
        color: #14532d !important;
    }

    .cc-print-area .alert-info[b-2tvzhz1hfs] {
        background: #e8f2fb !important;
        border-color: #a8cbea !important;
        color: #0b3d63 !important;
    }

    .cc-print-area .card-body[b-2tvzhz1hfs] {
        padding: 0 !important;
    }

    .cc-kpi[b-2tvzhz1hfs],
    .cc-table[b-2tvzhz1hfs],
    .cc-row[b-2tvzhz1hfs],
    .cc-head[b-2tvzhz1hfs] {
        border-color: #bbb !important;
        color: #000 !important;
    }

    .cc-kpi[b-2tvzhz1hfs] {
        background: #fff !important;
    }

    .cc-head[b-2tvzhz1hfs] {
        background: #ececec !important;
        color: #222 !important;
    }

    .cc-kpi-label[b-2tvzhz1hfs],
    .cc-kpi-sub[b-2tvzhz1hfs],
    .cc-level-val[b-2tvzhz1hfs],
    .cc-level-pct[b-2tvzhz1hfs],
    .cc-devs[b-2tvzhz1hfs],
    .cc-kpi-of[b-2tvzhz1hfs] {
        color: #444 !important;
    }

    .cc-row-idle[b-2tvzhz1hfs] {
        color: #777 !important;
    }

    /* Browsers drop backgrounds when printing unless told otherwise; without this the
       usage bars and peak badges vanish and the charts read as empty rows. */
    .cc-bar[b-2tvzhz1hfs],
    .cc-bar-fill[b-2tvzhz1hfs],
    .cc-peak-badge[b-2tvzhz1hfs],
    .cc-head[b-2tvzhz1hfs] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .cc-bar[b-2tvzhz1hfs] {
        background: #e4e4e4 !important;
    }

    .cc-bar-fill[b-2tvzhz1hfs] {
        background: #6c6c6c !important;
    }

    .cc-bar-fill.cc-bar-hot[b-2tvzhz1hfs] {
        background: #a4123a !important;
    }

    .cc-peak-badge[b-2tvzhz1hfs] {
        background: #e4e4e4 !important;
        color: #222 !important;
    }

    .cc-peak-badge.cc-peak-hot[b-2tvzhz1hfs] {
        background: #f4d0da !important;
        color: #7d0d2b !important;
    }

    /* Keep the two level charts side by side on paper — there is room at letter width. */
    .cc-split[b-2tvzhz1hfs] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* Don't split a row, a tile or a heading across a page boundary. */
    .cc-row[b-2tvzhz1hfs],
    .cc-head[b-2tvzhz1hfs],
    .cc-kpi[b-2tvzhz1hfs],
    .cc-level-row[b-2tvzhz1hfs] {
        break-inside: avoid;
    }

    .cc-h[b-2tvzhz1hfs] {
        break-after: avoid;
    }

    .cc-table[b-2tvzhz1hfs] {
        break-inside: auto;
    }
}
/* /Components/Pages/CallLogs/UsageReportPanel.razor.rz.scp.css */
.ur-tiles[b-ei3c0viv9k] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem;
}

.ur-tile[b-ei3c0viv9k] {
    background: var(--bs-tertiary-bg, #f8fafc);
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.5rem;
    padding: 0.85rem 0.5rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.ur-tile-value[b-ei3c0viv9k] {
    font-size: 1.35rem;
    font-weight: 700;
}

.ur-tile-label[b-ei3c0viv9k] {
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #6b7280);
}

.ur-heading[b-ei3c0viv9k] {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #6b7280);
    font-weight: 600;
    margin: 1rem 0 0.5rem;
}

.ur-user-name[b-ei3c0viv9k] {
    font-weight: 600;
    font-size: 0.9rem;
    margin: 0.85rem 0 0.3rem;
}

.ur-table th[b-ei3c0viv9k] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6b7280);
    background: var(--bs-tertiary-bg, #f8fafc);
    font-weight: 600;
}

.ur-table td[b-ei3c0viv9k] {
    font-size: 0.875rem;
}

.ur-inactive td[b-ei3c0viv9k] {
    color: var(--bs-secondary-color, #9ca3af);
}
/* /Components/Pages/Conferences/ConferenceEditModal.razor.rz.scp.css */
.cf-modal-backdrop[b-w0r9ryjrpb] {
    background: rgba(15, 23, 42, 0.55);
}

.cf-party[b-w0r9ryjrpb] {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.6rem;
    padding: 0.75rem 0.9rem;
    background: var(--bs-tertiary-bg);
    height: 100%;
}

.cf-party-title[b-w0r9ryjrpb] {
    font-size: 0.9rem;
    margin-bottom: 0.6rem;
}
/* /Components/Pages/Conferences/ConferenceList.razor.rz.scp.css */
.cf-page h4[b-y5q55hmqey] {
    font-weight: 600;
}

.cf-card[b-y5q55hmqey] {
    border: none;
    border-radius: 0.75rem;
}

.cf-table thead th[b-y5q55hmqey] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color);
    border-bottom-width: 1px;
    padding: 0.65rem 1rem;
}

.cf-table tbody td[b-y5q55hmqey] {
    padding: 0.65rem 1rem;
    cursor: pointer;
}

.cf-row-active[b-y5q55hmqey] {
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.fs-nano[b-y5q55hmqey] {
    font-size: 0.72rem;
}

.cf-badge-live[b-y5q55hmqey] {
    background: rgba(25, 135, 84, 0.15);
    color: #198754;
}

.cf-badge-live i[b-y5q55hmqey] {
    font-size: 0.5rem;
    vertical-align: middle;
    animation: cf-pulse-b-y5q55hmqey 1.6s ease-in-out infinite;
}

/* Settings summary: label column + value */
.cf-dialin-row[b-y5q55hmqey] {
    display: flex;
    align-items: center;
    padding: 0.3rem 0.5rem 0.3rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    margin-bottom: 0.35rem;
    max-width: 24rem;
}

.cf-dialin-pick[b-y5q55hmqey] {
    min-width: 14rem;
    flex: 0 1 18rem;
}

.cf-dialin-spin[b-y5q55hmqey] {
    width: 0.8rem;
    height: 0.8rem;
}

.cf-summary[b-y5q55hmqey] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.25rem 1rem;
    font-size: 0.85rem;
}

.cf-summary > div[b-y5q55hmqey] {
    display: contents;
}

.cf-k[b-y5q55hmqey] {
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding-top: 0.15rem;
}

/* People in the room */
.cf-people td[b-y5q55hmqey] {
    padding: 0.5rem 0.5rem;
    border-color: var(--bs-border-color);
}

.cf-p-state[b-y5q55hmqey] {
    width: 3rem;
    text-align: center;
    font-size: 1rem;
}

.cf-p-name[b-y5q55hmqey] {
    font-size: 0.92rem;
}

.cf-p-role[b-y5q55hmqey] {
    width: 7rem;
}

.cf-p-time[b-y5q55hmqey] {
    width: 4.5rem;
    font-variant-numeric: tabular-nums;
}

.cf-p-actions[b-y5q55hmqey] {
    white-space: nowrap;
}

.cf-talking[b-y5q55hmqey] {
    animation: cf-pulse-b-y5q55hmqey 0.9s ease-in-out infinite;
}

@keyframes cf-pulse-b-y5q55hmqey {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.cf-raw pre[b-y5q55hmqey] {
    max-height: 18rem;
    overflow: auto;
    background: var(--bs-tertiary-bg);
    padding: 0.6rem;
    border-radius: 0.4rem;
}

/* Live indicator (same look as the switchboard) */
.cf-live[b-y5q55hmqey] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: var(--bs-secondary-color);
    white-space: nowrap;
}

.cf-live-dot[b-y5q55hmqey] {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #adb5bd;
}

.cf-ok .cf-live-dot[b-y5q55hmqey] {
    background: #198754;
    box-shadow: 0 0 0 3px rgba(25, 135, 84, 0.2);
}

.cf-stale .cf-live-dot[b-y5q55hmqey] {
    background: #ffc107;
}

.cf-paused .cf-live-dot[b-y5q55hmqey] {
    background: #adb5bd;
}

/* Phone width: selecting a room swaps the list for the detail pane (same as ring groups). */
@media (max-width: 991.98px) {
    .cf-row-wrap.has-selection .cf-col-list[b-y5q55hmqey] {
        display: none;
    }
}
/* /Components/Pages/Contacts/ContactImportModal.razor.rz.scp.css */
.cim-backdrop[b-wtzelqkru6] {
    background: rgba(0, 0, 0, 0.5);
}

.cim-preview[b-wtzelqkru6] {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color) !important;
    max-height: 18rem;
    overflow-y: auto;
}

/* The "replace existing" explanation: boxed and amber so the destructive option reads as one. */
.cim-replace[b-wtzelqkru6] {
    border: 1px solid var(--bs-warning-border-subtle, #ffe69c);
    background: var(--bs-warning-bg-subtle, #fff3cd);
    border-radius: 0.375rem;
    padding: 0.5rem 0.65rem;
}
/* /Components/Pages/Contacts/ContactList.razor.rz.scp.css */
.ct-page h4[b-51jrz39krx] {
    font-weight: 600;
}

.ct-card[b-51jrz39krx] {
    border: none;
    border-radius: 0.75rem;
}

.ct-toolbar[b-51jrz39krx] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.fs-nano[b-51jrz39krx] {
    font-size: 0.72rem;
}

.ct-bulkbar[b-51jrz39krx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.5rem 1rem;
    background: rgba(var(--bs-primary-rgb), 0.08);
    border-bottom: 1px solid var(--bs-border-color);
}

.ct-check[b-51jrz39krx] {
    flex: 0 0 auto;
    margin-top: 0;
    cursor: pointer;
}

.ct-row[b-51jrz39krx] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
    padding: 0.6rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.ct-row.selected[b-51jrz39krx] {
    background: rgba(var(--bs-primary-rgb), 0.06);
}

.ct-row:last-child[b-51jrz39krx] {
    border-bottom: none;
}

.ct-row:hover[b-51jrz39krx] {
    background: var(--bs-tertiary-bg);
}

.ct-row.editing[b-51jrz39krx] {
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.ct-avatar[b-51jrz39krx] {
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-weight: 600;
    font-size: 0.8rem;
}

.ct-names[b-51jrz39krx] {
    display: flex;
    flex-direction: column;
    min-width: 11rem;
    flex: 1 1 11rem;
}

.ct-names .fs-nano[b-51jrz39krx] {
    font-size: 0.8rem;
}

.ct-share[b-51jrz39krx] {
    flex: 0 1 auto;
    margin-left: auto;
}

.ct-share .form-check[b-51jrz39krx] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.ct-actions[b-51jrz39krx] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.ct-edit-fields[b-51jrz39krx] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    flex: 1 1 24rem;
}

.ct-edit-fields input[b-51jrz39krx] {
    flex: 1 1 8rem;
    max-width: 12rem;
}
/* /Components/Pages/Developer/DeveloperDocs.razor.rz.scp.css */
.dev-account-id[b-bqntulzlpo] {
    display: inline-block;
    font-size: 1rem;
    padding: .35rem .6rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .375rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    word-break: break-all;
}

.dev-keys th[b-bqntulzlpo] {
    font-weight: 600;
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.dev-tabs .nav-link[b-bqntulzlpo] {
    cursor: pointer;
}

.dev-guide[b-bqntulzlpo] {
    display: block;
    width: 100%;
    height: calc(100vh - 250px);
    min-height: 640px;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    background: #fff;
}

.dev-send-backdrop[b-bqntulzlpo] {
    background: rgba(0, 0, 0, 0.5);
}

.dev-tiers td[b-bqntulzlpo], .dev-tiers th[b-bqntulzlpo] {
    padding: .25rem .6rem;
    font-size: .85rem;
}

.dev-tiers th[b-bqntulzlpo] {
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.dev-plan[b-bqntulzlpo] {
    font-size: .9rem;
}
/* /Components/Pages/Devices/BillingDesktopPanel.razor.rz.scp.css */
.bdp-lines[b-4yl11p6579] {
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.4rem;
    overflow: hidden;
}

.bdp-line[b-4yl11p6579] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.875rem;
    margin: 0;
}
/* /Components/Pages/Devices/DeviceEditModal.razor.rz.scp.css */
.dem-backdrop[b-1u3fudrd9e] {
    background: rgba(0, 0, 0, 0.5);
}

.dem-inline-select[b-1u3fudrd9e] {
    width: auto;
    min-width: 8rem;
}

.dem-tabs .nav-link[b-1u3fudrd9e] {
    font-size: 0.85rem;
    padding: 0.35rem 0.9rem;
    cursor: pointer;
}

.dem-static[b-1u3fudrd9e] {
    background: var(--bs-tertiary-bg, #f6f7f9);
    min-height: calc(1.5em + 0.5rem + 2px);
}

.dem-cloud[b-1u3fudrd9e] {
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    padding: 0.75rem;
}

.dem-cred[b-1u3fudrd9e] {
    background: var(--bs-tertiary-bg, #f6f7f9);
    border-radius: 0.375rem;
    padding: 0.4rem 0.6rem;
    margin-bottom: 0.5rem;
    font-size: 0.85rem;
    white-space: pre-wrap;
    word-break: break-all;
}

.dem-qr[b-1u3fudrd9e] {
    width: 300px;
    max-width: 100%;
    image-rendering: pixelated;
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.5rem;
}

.dem-codec-card .card-body[b-1u3fudrd9e] {
    max-height: 20rem;
    overflow-y: auto;
}

.dem-codec[b-1u3fudrd9e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--bs-border-color, #f0f0f0);
    font-size: 0.85rem;
}

.dem-codec:last-child[b-1u3fudrd9e] {
    border-bottom: 0;
}

.dem-codec-btn[b-1u3fudrd9e] {
    padding: 0.1rem 0.45rem;
    font-size: 0.7rem;
}

.dem-restriction-grid[b-1u3fudrd9e] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 0.5rem 1.5rem;
    max-width: 40rem;
}

.dem-restriction[b-1u3fudrd9e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
/* /Components/Pages/Devices/DeviceList.razor.rz.scp.css */
.dl-search[b-r5ovlqj89r] {
    min-width: 14rem;
}

.dl-card[b-r5ovlqj89r] {
    overflow: visible; /* action dropdowns must escape the card */
}

.dl-table thead th[b-r5ovlqj89r] {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #777);
    background: var(--bs-tertiary-bg, #f6f7f9);
    white-space: nowrap;
}

/* Blazor-controlled dropdowns: an invisible backdrop closes the menu on any
   outside click without needing document-level JS listeners. */
.dl-menu-backdrop[b-r5ovlqj89r] {
    position: fixed;
    inset: 0;
    z-index: 1049;
}

/* Base positioning for the header "Add Device" menu, which sits outside the table and
   isn't clipped. The row "Actions" menus override this with an inline position:fixed
   style (nexusUi.menuPosition) so they escape the .table-responsive overflow clip —
   whose overflow-x:auto also clips the y-axis — and flip up when short on room below.
   The max-height keeps a tall menu on-screen (it scrolls internally). */
.dl-menu[b-r5ovlqj89r] {
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 1050;
    min-width: 13rem;
    max-height: min(70vh, 22rem);
    overflow-y: auto;
}

.dl-reg-table td:first-child[b-r5ovlqj89r] {
    white-space: nowrap;
}

.dl-backdrop[b-r5ovlqj89r] {
    background: rgba(0, 0, 0, 0.5);
}

/* ---- multi-select delete ---- */

.dl-check-col[b-r5ovlqj89r] {
    width: 2.5rem;
    text-align: center;
}

.dl-row-sel[b-r5ovlqj89r] {
    background: color-mix(in srgb, var(--bs-danger) 8%, transparent);
}

.dl-bulkbar[b-r5ovlqj89r] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.85rem;
    border: 1px solid color-mix(in srgb, var(--bs-danger) 35%, var(--bs-border-color));
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bs-danger) 8%, transparent);
}

.dl-bulk-list[b-r5ovlqj89r] {
    max-height: 14rem;
    overflow-y: auto;
    margin: 0;
    padding: 0.5rem 0.75rem;
    list-style: none;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    background: var(--bs-tertiary-bg);
}

.dl-bulk-list li[b-r5ovlqj89r] {
    padding: 0.15rem 0;
}

@media (max-width: 767px) {
    .dl-search[b-r5ovlqj89r] {
        min-width: 9rem;
    }
}

/* ---- phones: table rows become cards ---- */

/* Below md only three of the eight columns fit and the rest sat behind a sideways
   scroll nobody discovers. Keep the same markup but re-lay each row as a small
   card grid: type + status + Actions on top, then name, then the detail lines.
   Cells whose value is just "-" (dl-na) disappear instead of showing labeled
   dashes. Desktop rendering is untouched. */
@media (max-width: 767.98px) {
    .dl-table thead[b-r5ovlqj89r] {
        display: none;
    }

    .dl-table[b-r5ovlqj89r],
    .dl-table tbody[b-r5ovlqj89r] {
        display: block;
    }

    .dl-table tr[b-r5ovlqj89r] {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto auto;
        grid-template-areas:
            "check type    enabled actions"
            "check name    name    name"
            "check mac     mac     mac"
            "check owner   owner   owner"
            "check ip      ip      ip";
        align-items: center;
        gap: 0.1rem 0.6rem;
        padding: 0.65rem 0.75rem;
        border-bottom: 1px solid var(--bs-border-color);
    }

    .dl-table td[b-r5ovlqj89r] {
        display: block;
        border: 0;
        padding: 0;
        min-width: 0;
    }

    .dl-table .dl-check-col[b-r5ovlqj89r] { grid-area: check; }
    .dl-table .dl-c-type[b-r5ovlqj89r]    { grid-area: type; }
    .dl-table .dl-c-name[b-r5ovlqj89r]    { grid-area: name; }
    .dl-table .dl-c-mac[b-r5ovlqj89r]     { grid-area: mac; }
    .dl-table .dl-c-owner[b-r5ovlqj89r]   { grid-area: owner; }
    .dl-table .dl-c-enabled[b-r5ovlqj89r] { grid-area: enabled; }
    .dl-table .dl-c-ip[b-r5ovlqj89r]      { grid-area: ip; }
    .dl-table .dl-c-actions[b-r5ovlqj89r] { grid-area: actions; }

    .dl-table .dl-na[b-r5ovlqj89r] {
        display: none;
    }

    /* Touch-scrolling runs the finger over rows and mobile browsers treat that as
       :hover + tap-highlight, flashing whole cards mid-scroll. The rows aren't
       clickable (actions live in the dropdown), so hover feedback means nothing
       here — kill both. Desktop keeps its normal table-hover. */
    .dl-table tr[b-r5ovlqj89r] {
        -webkit-tap-highlight-color: transparent;
    }

    .dl-table > tbody > tr:hover > *[b-r5ovlqj89r] {
        --bs-table-bg-state: transparent;
        --bs-table-accent-bg: transparent;
        --bs-table-color-state: inherit;
    }

    .dl-table .dl-c-mac[b-r5ovlqj89r],
    .dl-table .dl-c-owner[b-r5ovlqj89r] {
        font-size: 0.82rem;
        color: var(--bs-secondary-color);
    }

    .dl-table .dl-c-mac[b-r5ovlqj89r]::before {
        content: "MAC ";
        color: var(--bs-tertiary-color);
    }

    .dl-table .dl-c-owner[b-r5ovlqj89r]::before {
        content: "Owner ";
        color: var(--bs-tertiary-color);
    }
}
/* /Components/Pages/Help/HelpArticle.razor.rz.scp.css */
/* Imported/authored HTML lives inside .kb-body; ::deep reaches it through scoping. */
.kb-body[b-mur26zpdqn] {
    line-height: 1.65;
    max-width: 46rem;
}

/* Anchor targets land below the fixed header when jumped to from a table of contents. */
.kb-body[b-mur26zpdqn]  [id] {
    scroll-margin-top: 5.5rem;
}

.kb-body[b-mur26zpdqn]  img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    margin: 0.5rem 0;
}

.kb-body[b-mur26zpdqn]  h1,
.kb-body[b-mur26zpdqn]  h2,
.kb-body[b-mur26zpdqn]  h3 {
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.kb-body[b-mur26zpdqn]  h1 { font-size: 1.5rem; }
.kb-body[b-mur26zpdqn]  h2 { font-size: 1.3rem; }
.kb-body[b-mur26zpdqn]  h3 { font-size: 1.1rem; }

.kb-body[b-mur26zpdqn]  p {
    margin: 0 0 0.9rem;
}

.kb-body[b-mur26zpdqn]  ul,
.kb-body[b-mur26zpdqn]  ol {
    margin: 0 0 0.9rem;
    padding-left: 1.4rem;
}

.kb-body[b-mur26zpdqn]  pre {
    background: var(--bs-tertiary-bg, #f1f3f5);
    padding: 0.75rem 1rem;
    border-radius: 6px;
    overflow-x: auto;
}

.kb-body[b-mur26zpdqn]  table {
    border-collapse: collapse;
    margin: 0 0 1rem;
    max-width: 100%;
}

.kb-body[b-mur26zpdqn]  td,
.kb-body[b-mur26zpdqn]  th {
    border: 1px solid var(--bs-border-color, #e5e7eb);
    padding: 0.35rem 0.6rem;
    vertical-align: top;
}

.kb-body[b-mur26zpdqn]  blockquote {
    border-left: 3px solid var(--bs-primary, #667eea);
    padding-left: 0.9rem;
    color: var(--bs-secondary-color, #6c757d);
    margin: 0 0 0.9rem;
}

.kb-feedback[b-mur26zpdqn] {
    border-top: 1px solid var(--bs-border-color, #e5e7eb);
    padding-top: 1rem;
}
/* /Components/Pages/Help/HelpCenter.razor.rz.scp.css */
.kb-search[b-yjt3w92eu1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 40rem;
    position: relative;
}

.kb-search > i[b-yjt3w92eu1] {
    position: absolute;
    left: 0.9rem;
    color: var(--bs-secondary-color, #6c757d);
    pointer-events: none;
}

.kb-search input[b-yjt3w92eu1] {
    padding-left: 2.4rem;
}

.kb-section[b-yjt3w92eu1] {
    margin-top: 0.75rem;
}

.kb-section-name[b-yjt3w92eu1] {
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.kb-articles[b-yjt3w92eu1] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.kb-articles li[b-yjt3w92eu1] {
    padding: 0.3rem 0.25rem;
    border-top: 1px solid var(--bs-border-color, #e5e7eb);
}

.kb-articles li:first-child[b-yjt3w92eu1] {
    border-top: 0;
}

.kb-articles a[b-yjt3w92eu1] {
    text-decoration: none;
}

.kb-articles a:hover[b-yjt3w92eu1] {
    text-decoration: underline;
}
/* /Components/Pages/MainNumbers/MainNumbersBasic.razor.rz.scp.css */
.mn-page h4[b-iece8zfyud] {
    font-weight: 600;
}

.mn-tabs .nav-link[b-iece8zfyud] {
    color: var(--bs-body-color);
    font-weight: 500;
    padding: 0.4rem 1rem;
}

.mn-tabs .nav-link.active[b-iece8zfyud] {
    background: var(--bs-primary);
    color: #fff;
}

.mn-subtabs .nav-link[b-iece8zfyud] {
    color: var(--bs-body-color);
    font-size: 0.875rem;
    padding: 0.3rem 0.85rem;
}

.mn-subtabs .nav-link.active[b-iece8zfyud] {
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-weight: 600;
}

.mn-card[b-iece8zfyud] {
    border: none;
    border-radius: 0.75rem;
}

/* ---- numbers ---- */

.mn-number-row[b-iece8zfyud] {
    display: flex;
    align-items: center;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    background: var(--bs-tertiary-bg);
}

/* ---- hours mode choice + routing option cards ---- */

.mn-choice-row[b-iece8zfyud] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.mn-choice[b-iece8zfyud],
.mn-route-option[b-iece8zfyud] {
    flex: 1 1 16rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    border: 1.5px solid var(--bs-border-color);
    border-radius: 0.6rem;
    padding: 0.7rem 0.9rem;
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
    margin-bottom: 0;
}

.mn-choice:hover[b-iece8zfyud],
.mn-route-option:hover[b-iece8zfyud] {
    border-color: rgba(var(--bs-primary-rgb), 0.4);
}

.mn-choice.active[b-iece8zfyud],
.mn-route-option.active[b-iece8zfyud] {
    border-color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.mn-choice input[b-iece8zfyud],
.mn-route-option input[b-iece8zfyud] {
    display: none;
}

.mn-choice-title[b-iece8zfyud],
.mn-route-title[b-iece8zfyud] {
    font-weight: 600;
    font-size: 0.925rem;
}

.mn-choice-sub[b-iece8zfyud],
.mn-route-sub[b-iece8zfyud] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}

.mn-route-options[b-iece8zfyud] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.6rem;
}

.mn-route-config[b-iece8zfyud] {
    max-width: 30rem;
}

.mn-dest[b-iece8zfyud] {
    max-width: 30rem;
}

/* ---- per-day hour rows ---- */

.mn-day-row[b-iece8zfyud] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.45rem 0.75rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.mn-day-row.is-off[b-iece8zfyud] {
    background: var(--bs-tertiary-bg);
}

.mn-day-name[b-iece8zfyud] {
    width: 11rem;
    font-weight: 500;
    margin-bottom: 0;
    cursor: pointer;
}

.mn-day-times[b-iece8zfyud] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.mn-day-times input[type="time"][b-iece8zfyud] {
    width: 8rem;
}

.mn-day-state[b-iece8zfyud] {
    margin-left: auto;
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}

.mn-lunch-row[b-iece8zfyud] {
    margin-top: 0.5rem;
    border-top: 2px solid var(--bs-border-color);
}

/* Phones: the row is wider than the screen (11rem label + two 8rem time inputs),
   which left the closing time unreachable. Wrap instead — day + Open/Closed on the
   first line, the time window on its own line below. */
@media (max-width: 575.98px) {
    .mn-day-row[b-iece8zfyud] {
        flex-wrap: wrap;
        gap: 0.35rem 0.75rem;
    }

    .mn-day-name[b-iece8zfyud] {
        width: auto;
    }

    .mn-day-state[b-iece8zfyud] {
        order: 1;
        margin-left: auto;
    }

    .mn-day-times[b-iece8zfyud] {
        order: 2;
        flex-basis: 100%;
        min-width: 0; /* it's a flex item too — without this its intrinsic width (two
                         native time inputs) beats flex-basis and overflows the row */
        padding-left: 1.65rem; /* line the times up under the day name, past the checkbox */
    }

    .mn-day-times input[type="time"][b-iece8zfyud] {
        width: auto;
        flex: 1 1 6rem;
        min-width: 0;
    }
}

/* ---- holidays ---- */

.mn-holiday-row[b-iece8zfyud] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.mn-holiday-name[b-iece8zfyud] {
    flex: 1 1 11rem;
    min-width: 9rem;
}

.mn-holiday-month[b-iece8zfyud] {
    width: 8.5rem;
    flex: 0 0 auto;
}

.mn-holiday-day[b-iece8zfyud],
.mn-holiday-ordinal[b-iece8zfyud] {
    width: 6rem;
    flex: 0 0 auto;
}

.mn-holiday-wday[b-iece8zfyud] {
    width: 8rem;
    flex: 0 0 auto;
}

.mn-holiday-time[b-iece8zfyud] {
    width: 7.5rem;
    flex: 0 0 auto;
}

/* ---- call path selector ---- */

.mn-paths[b-iece8zfyud] {
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.mn-path-pill[b-iece8zfyud] {
    padding: 0.25rem 0.8rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 2rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: 0.82rem;
    cursor: pointer;
    transition: background-color 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.mn-path-pill:hover[b-iece8zfyud] {
    background: var(--bs-secondary-bg);
}

.mn-path-pill.active[b-iece8zfyud] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.mn-holiday-row > .form-check[b-iece8zfyud] {
    padding-top: 0.3rem;
    margin-left: 0.25rem;
}

.mn-holiday-off > *:not(.form-check):not(button)[b-iece8zfyud] {
    opacity: 0.55;
}
/* /Components/Pages/MainNumbers/MenuEditModal.razor.rz.scp.css */
.menu-backdrop[b-o27mfsyd1m] {
    background: rgba(15, 23, 42, 0.55);
}

.menu-route-row[b-o27mfsyd1m] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.45rem;
    background: var(--bs-tertiary-bg);
}

.menu-route-press[b-o27mfsyd1m] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
    flex: 0 0 auto;
}

.menu-route-key[b-o27mfsyd1m] {
    flex: 0 0 auto;
    min-width: 4.25rem;
    text-align: center;
    font-weight: 700;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    border-radius: 0.4rem;
    padding: 0.2rem 0.5rem;
}

.menu-route-dest[b-o27mfsyd1m] {
    flex: 1 1 auto;
}

.menu-accordion[b-o27mfsyd1m] {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.menu-accordion summary[b-o27mfsyd1m] {
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    user-select: none;
}

.menu-accordion[open] summary[b-o27mfsyd1m] {
    border-bottom: 1px solid var(--bs-border-color);
}
/* /Components/Pages/Messaging/ConversationListPanel.razor.rz.scp.css */
.convo-list-wrap[b-4p88x58sdc] {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.convo-row[b-4p88x58sdc] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.6rem 0.85rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: var(--bs-body-color);
    transition: background-color 0.12s ease;
}

.convo-row:hover[b-4p88x58sdc] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.05));
}

.convo-row.active[b-4p88x58sdc] {
    background: rgba(var(--bs-primary-rgb), 0.12);
}

.convo-avatar[b-4p88x58sdc] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    font-size: 0.85rem;
    font-weight: 600;
    color: #fff;
    background: hsl(var(--avatar-hue, 210), 42%, 48%);
    user-select: none;
}

.convo-avatar .sa-icon[b-4p88x58sdc] {
    width: 1.1rem;
    height: 1.1rem;
    fill: rgba(255, 255, 255, 0.9);
}

.convo-main[b-4p88x58sdc] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.convo-top[b-4p88x58sdc] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.convo-name[b-4p88x58sdc] {
    font-weight: 600;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.convo-age[b-4p88x58sdc] {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #888);
}

.convo-bottom[b-4p88x58sdc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.convo-preview[b-4p88x58sdc] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.convo-you[b-4p88x58sdc] {
    opacity: 0.8;
}

.convo-unread[b-4p88x58sdc] {
    flex-shrink: 0;
    min-width: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 1rem;
    background: var(--bs-primary);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.25rem;
    text-align: center;
}
/* /Components/Pages/Messaging/DeliveryReport.razor.rz.scp.css */
.dlv-back[b-m6xxbgp4ha] {
    font-size: 0.8rem;
    text-decoration: none;
}

.dlv-number[b-m6xxbgp4ha] {
    width: auto;
    min-width: 11rem;
}

/* Refetch holds the previous render, dimmed, instead of flashing a spinner. */
.dlv-stale[b-m6xxbgp4ha] {
    opacity: 0.55;
    transition: opacity 0.15s ease;
    pointer-events: none;
}
/* /Components/Pages/Messaging/DeliveryReportView.razor.rz.scp.css */
/* Chart roles. The three reason hues are categorical slots 1-3 of the validated
   palette (blue / orange / aqua), stepped separately for the dark surface; "Other"
   and the volume columns are deliberately quiet. Text never wears a series colour —
   identity comes from the swatch beside it. */
.dlv-root[b-igryq2on85] {
    --dlv-spam: #2a78d6;
    --dlv-optout: #eb6834;
    --dlv-nottextable: #1baf7a;
    --dlv-other: #898781;
    --dlv-volume: #2a78d6;
    --dlv-grid: #e1e0d9;
    --dlv-axis: #c3c2b7;
    --dlv-muted: #898781;
    --dlv-surface: var(--bs-body-bg, #fff);
}

[data-bs-theme=dark] .dlv-root[b-igryq2on85] {
    --dlv-spam: #3987e5;
    --dlv-optout: #d95926;
    --dlv-nottextable: #199e70;
    --dlv-other: #898781;
    --dlv-volume: #3987e5;
    --dlv-grid: #2c2c2a;
    --dlv-axis: #45453f;
    --dlv-muted: #9c9a92;
}

/* ---- headline figures ---- */
.dlv-tiles[b-igryq2on85] {
    display: grid;
    grid-template-columns: minmax(12rem, 1.4fr) repeat(4, minmax(8.5rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

@media (max-width: 991.98px) {
    .dlv-tiles[b-igryq2on85] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dlv-tile-hero[b-igryq2on85] {
        grid-column: 1 / -1;
    }
}

.dlv-tile[b-igryq2on85] {
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--dlv-surface);
}

.dlv-tile-label[b-igryq2on85] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.dlv-tile-value[b-igryq2on85] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
}

.dlv-hero[b-igryq2on85] {
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.1;
}

.dlv-tile-sub[b-igryq2on85] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

/* ---- day charts ---- */
.dlv-chart-title[b-igryq2on85] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
    margin-bottom: 0.25rem;
}

.dlv-chart[b-igryq2on85] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.dlv-grid[b-igryq2on85] {
    stroke: var(--dlv-grid);
    stroke-width: 1;
}

.dlv-axis[b-igryq2on85] {
    stroke: var(--dlv-axis);
    stroke-width: 1;
}

.dlv-tick[b-igryq2on85] {
    fill: var(--dlv-muted);
    font-size: 10.5px;
    font-variant-numeric: tabular-nums;
}

/* The whole day band is the hover target, not just the (thin) column. */
.dlv-hit[b-igryq2on85] {
    fill: transparent;
}

.dlv-col:hover .dlv-hit[b-igryq2on85] {
    fill: rgba(128, 128, 128, 0.12);
}

.dlv-fill-volume[b-igryq2on85] {
    fill: var(--dlv-volume);
    background-color: var(--dlv-volume);
}

.dlv-fill-spam[b-igryq2on85] {
    fill: var(--dlv-spam);
    background-color: var(--dlv-spam);
}

.dlv-fill-optout[b-igryq2on85] {
    fill: var(--dlv-optout);
    background-color: var(--dlv-optout);
}

.dlv-fill-nottextable[b-igryq2on85] {
    fill: var(--dlv-nottextable);
    background-color: var(--dlv-nottextable);
}

.dlv-fill-other[b-igryq2on85] {
    fill: var(--dlv-other);
    background-color: var(--dlv-other);
}

.dlv-legend[b-igryq2on85] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #6c757d);
}

.dlv-swatch[b-igryq2on85] {
    display: inline-block;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 2px;
    margin-right: 0.4rem;
    vertical-align: baseline;
}

/* ---- reasons ---- */
.dlv-reasons[b-igryq2on85] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 1rem 2rem;
}

.dlv-reason-head[b-igryq2on85] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.9rem;
}

.dlv-reason-name[b-igryq2on85] {
    font-weight: 600;
}

.dlv-reason-value[b-igryq2on85] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.dlv-reason-track[b-igryq2on85] {
    height: 8px;
    margin: 0.35rem 0;
}

.dlv-reason-bar[b-igryq2on85] {
    height: 100%;
    min-width: 2px;
    border-radius: 0 4px 4px 0;
}

.dlv-reason-note[b-igryq2on85] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6c757d);
}

.dlv-other[b-igryq2on85] {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--bs-border-color, #eee);
}

/* ---- tables ---- */
.dlv-table th[b-igryq2on85] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
}

.dlv-table td[b-igryq2on85] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dlv-table td.dlv-wording[b-igryq2on85] {
    white-space: normal;
    min-width: 16rem;
    max-width: 34rem;
    font-size: 0.85rem;
}

.dlv-meter-col[b-igryq2on85] {
    width: 11rem;
}

.dlv-meter[b-igryq2on85] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.dlv-meter-track[b-igryq2on85] {
    display: block;
    height: 6px;
    border-radius: 3px;
    background: rgba(128, 128, 128, 0.16);
    overflow: hidden;
}

.dlv-meter-fill[b-igryq2on85] {
    display: block;
    height: 100%;
    border-radius: 3px;
}

.dlv-list-head[b-igryq2on85] {
    font-weight: 600;
    font-size: 0.9rem;
}

.dlv-footnote[b-igryq2on85] {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #999);
}
/* /Components/Pages/Messaging/MessageComposer.razor.rz.scp.css */
.composer[b-0jw6r1hf0x] {
    flex-shrink: 0;
    border-top: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
    padding: 0.6rem 1rem;
}

.composer-bar[b-0jw6r1hf0x] {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
}

.composer-input[b-0jw6r1hf0x] {
    flex: 1;
    min-height: 2.4rem;
    max-height: 8rem;
    resize: none;
    field-sizing: content; /* auto-grow on modern browsers; harmless elsewhere */
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--bs-border-color, #ddd);
    border-radius: 1.2rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-size: 0.92rem;
    line-height: 1.35;
    outline: none;
}

.composer-input:focus[b-0jw6r1hf0x] {
    border-color: rgba(var(--bs-primary-rgb), 0.55);
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
}

.composer-btn[b-0jw6r1hf0x] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    margin: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
}

.composer-btn:hover[b-0jw6r1hf0x] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
}

.composer-btn.is-disabled[b-0jw6r1hf0x] {
    opacity: 0.45;
    pointer-events: none;
}

.composer-btn .sa-icon[b-0jw6r1hf0x] {
    width: 1.15rem;
    height: 1.15rem;
}

.composer-send[b-0jw6r1hf0x] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    border: 0;
    border-radius: 50%;
    background: var(--bs-primary);
    color: #fff;
    cursor: pointer;
    transition: opacity 0.12s ease, transform 0.12s ease;
}

.composer-send:hover:not(:disabled)[b-0jw6r1hf0x] {
    transform: scale(1.05);
}

.composer-send:disabled[b-0jw6r1hf0x] {
    opacity: 0.45;
    cursor: default;
}

.composer-send .sa-icon[b-0jw6r1hf0x] {
    width: 1.05rem;
    height: 1.05rem;
    fill: #fff;
}

.composer-attachment[b-0jw6r1hf0x] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.03));
}

.composer-thumb[b-0jw6r1hf0x] {
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: 0.4rem;
}

.composer-file-icon[b-0jw6r1hf0x] {
    font-size: 1.8rem;
    color: var(--bs-danger, #d33);
}

.composer-attachment-info[b-0jw6r1hf0x] {
    flex: 1;
    min-width: 0;
}

.composer-attachment-name[b-0jw6r1hf0x] {
    font-size: 0.82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.composer-attachment-size[b-0jw6r1hf0x] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #888);
}

.composer-error[b-0jw6r1hf0x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.4rem;
    padding: 0.3rem 0.6rem;
    border-radius: 0.4rem;
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.1);
    color: var(--bs-danger, #c33);
    font-size: 0.8rem;
}
/* /Components/Pages/Messaging/MessageThread.razor.rz.scp.css */
.msg-thread[b-0ocyqx25up] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
    background: var(--bs-tertiary-bg, #f6f7f9);
}

.msg-thread-empty[b-0ocyqx25up] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    text-align: center;
}

.msg-day[b-0ocyqx25up] {
    display: flex;
    justify-content: center;
    margin: 0.9rem 0 0.5rem;
}

.msg-day span[b-0ocyqx25up] {
    padding: 0.15rem 0.7rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
    color: var(--bs-secondary-color, #777);
    font-size: 0.72rem;
    font-weight: 600;
}

.msg-row[b-0ocyqx25up] {
    display: flex;
    flex-direction: column;
    margin-top: 0.12rem;
}

.msg-row.grp-start[b-0ocyqx25up] {
    margin-top: 0.6rem;
}

.msg-bubble[b-0ocyqx25up] {
    max-width: min(70%, 34rem);
    width: fit-content;
    padding: 0.45rem 0.8rem;
    border-radius: 1.05rem;
    font-size: 0.92rem;
    line-height: 1.35;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.msg-bubble-media[b-0ocyqx25up] {
    padding: 0.25rem;
    background: transparent !important;
}

/* Inbound: left, neutral */
.msg-in .msg-bubble[b-0ocyqx25up] {
    align-self: flex-start;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-bottom-left-radius: 0.35rem;
}

.msg-in.grp-end .msg-bubble[b-0ocyqx25up] {
    border-bottom-left-radius: 1.05rem;
}

.msg-in.grp-start .msg-bubble[b-0ocyqx25up] {
    border-top-left-radius: 1.05rem;
}

.msg-in:not(.grp-start) .msg-bubble[b-0ocyqx25up] {
    border-top-left-radius: 0.35rem;
}

/* Outbound: right, primary */
.msg-out .msg-bubble[b-0ocyqx25up] {
    align-self: flex-end;
    background: var(--bs-primary);
    color: #fff;
    border-bottom-right-radius: 0.35rem;
}

.msg-out.grp-end .msg-bubble[b-0ocyqx25up] {
    border-bottom-right-radius: 1.05rem;
}

.msg-out:not(.grp-start) .msg-bubble[b-0ocyqx25up] {
    border-top-right-radius: 0.35rem;
}

/* Bubble + its info button ride one flex line; the bubble's old align-self job
   (left for inbound, right for outbound) moves to the line's justify-content.
   Outbound reverses so the button sits on the bubble's inner side both ways. */
.msg-line[b-0ocyqx25up] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    min-width: 0;
}

.msg-out .msg-line[b-0ocyqx25up] {
    flex-direction: row-reverse;
}

/* Inconspicuous per-message metadata trigger: invisible until the row is hovered
   (desktop) — touch has no hover, so there it idles at low opacity instead. */
.msg-info[b-0ocyqx25up] {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    padding: 0.15rem 0.3rem;
    font-size: 0.78rem;
    line-height: 1;
    color: var(--bs-secondary-color, #999);
    opacity: 0;
    transition: opacity 0.15s ease;
    cursor: pointer;
}

.msg-row:hover .msg-info[b-0ocyqx25up],
.msg-info:focus-visible[b-0ocyqx25up] {
    opacity: 0.55;
}

.msg-info:hover[b-0ocyqx25up] {
    opacity: 1;
}

@media (pointer: coarse) {
    .msg-info[b-0ocyqx25up] {
        opacity: 0.3;
        position: relative;
    }

    /* Same invisible hit-area extension the app's other small icons use. */
    .msg-info[b-0ocyqx25up]::before {
        content: "";
        position: absolute;
        inset: -8px;
    }
}

.msg-time[b-0ocyqx25up] {
    margin-top: 0.15rem;
    font-size: 0.68rem;
    color: var(--bs-secondary-color, #999);
}

.msg-in .msg-time[b-0ocyqx25up] {
    align-self: flex-start;
    padding-left: 0.4rem;
}

.msg-out .msg-time[b-0ocyqx25up] {
    align-self: flex-end;
    padding-right: 0.4rem;
}

/* MMS images inside bubbles */
.msg-bubble[b-0ocyqx25up]  .mms-image,
.msg-bubble[b-0ocyqx25up]  .mms-placeholder {
    max-width: 16rem;
    border-radius: 0.8rem;
}

.msg-bubble[b-0ocyqx25up]  .mms-image {
    display: block;
    max-height: 20rem;
    object-fit: cover;
}

/* Who sent an outbound text, beside the group's time. */
.msg-sentby[b-0ocyqx25up] {
    margin-left: 0.3rem;
    opacity: 0.85;
}
/* /Components/Pages/Messaging/Messaging.razor.rz.scp.css */
.msgr-shell[b-qy9x97da0g] {
    display: flex;
    width: 100%;
    height: calc(100vh - (var(--app-header-height, 4.125rem) + 56px));
    min-height: 24rem;
    overflow: hidden;
}

/* ---- side panel ---- */

.msgr-side[b-qy9x97da0g] {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    /* smartapp's slide-on-mobile hides the panel by shifting it left by
       --sidepanel-width (default 15rem) — it MUST match the real width, or the
       difference stays on-screen as a clipped sliver over the thread. */
    --sidepanel-width: 24rem;
    width: var(--sidepanel-width);
    max-width: 100%;
    border-right: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
}

.msgr-side-head[b-qy9x97da0g] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0.9rem 0.9rem 0.6rem;
    border-bottom: 1px solid var(--bs-border-color, #eee);
}

.msgr-side-title[b-qy9x97da0g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.msgr-side-list[b-qy9x97da0g] {
    flex: 1;
    overflow-y: auto;
    padding: 0.4rem;
}

.msgr-side-older[b-qy9x97da0g] {
    padding: 0.6rem 0.25rem 0.4rem;
}

.msgr-side-older-hint[b-qy9x97da0g] {
    margin-top: 0.3rem;
    text-align: center;
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6c757d);
}

.msgr-single-number[b-qy9x97da0g] {
    padding: 0 0.1rem;
}

.msgr-search-clear[b-qy9x97da0g] {
    position: absolute;
    top: 50%;
    right: 0.5rem;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--bs-secondary-color, #999);
    cursor: pointer;
}

/* ---- new message ---- */

/* Full-width labelled button under the number picker. The old inline search
   strip lived here and customers didn't recognise it as a field at all; the
   picker itself now lives in NewMessageModal. */
.msgr-newmsg-btn[b-qy9x97da0g] {
    flex-shrink: 0;
}

/* ---- thread column ---- */

.msgr-main[b-qy9x97da0g] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    background: var(--bs-tertiary-bg, #f6f7f9);
}

/* Takes the thread's flex slot so the "new message" pill can float over it. */
.msgr-thread-wrap[b-qy9x97da0g] {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.msgr-thread-wrap[b-qy9x97da0g]  .msg-thread {
    flex: 1;
    min-height: 0;
}

/* "Load older messages" — floats over the top of the thread, counterpart to the
   new-message pill at the bottom. Muted styling: it's a history control, not an alert. */
.msgr-loadolder[b-qy9x97da0g] {
    position: absolute;
    top: 0.6rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 2rem;
    padding: 0.3rem 0.9rem;
    background: var(--bs-body-bg, #fff);
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.8rem;
    font-weight: 600;
    box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.12);
}

.msgr-loadolder:hover:not(:disabled)[b-qy9x97da0g] {
    color: var(--bs-body-color, #212529);
    border-color: var(--bs-secondary-color, #6c757d);
}

/* Opted-out contact: sits between the thread and the (disabled) composer. */
.msgr-optout[b-qy9x97da0g] {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
    margin: 0 0.75rem 0.5rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid rgba(var(--bs-danger-rgb), 0.35);
    border-radius: 0.5rem;
    background: rgba(var(--bs-danger-rgb), 0.06);
    color: var(--bs-body-color);
    font-size: 0.82rem;
}

.msgr-optout i[b-qy9x97da0g] {
    color: var(--bs-danger);
    margin-top: 0.15rem;
}

.msgr-newmsg-pill[b-qy9x97da0g] {
    position: absolute;
    bottom: 0.9rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    border: none;
    border-radius: 2rem;
    padding: 0.35rem 0.95rem;
    background: #0d6efd;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    box-shadow: 0 0.25rem 0.75rem rgba(13, 110, 253, 0.35);
    animation: msgr-pill-in-b-qy9x97da0g 0.18s ease-out;
}

.msgr-newmsg-pill:hover[b-qy9x97da0g] {
    background: #0b5ed7;
}

@keyframes msgr-pill-in-b-qy9x97da0g {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(0.5rem);
    }

    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

.msgr-empty[b-qy9x97da0g] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    text-align: center;
    padding: 2rem;
}

.msgr-thread-head[b-qy9x97da0g] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-shrink: 0;
    padding: 0.55rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
}

.msgr-head-avatar[b-qy9x97da0g] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 600;
    color: #fff;
    background: hsl(var(--avatar-hue, 210), 42%, 48%);
    user-select: none;
}

.msgr-head-avatar .sa-icon[b-qy9x97da0g] {
    width: 1.05rem;
    height: 1.05rem;
    fill: rgba(255, 255, 255, 0.9);
}

.msgr-head-info[b-qy9x97da0g] {
    min-width: 0;
}

.msgr-head-name[b-qy9x97da0g] {
    font-weight: 600;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.msgr-head-sub[b-qy9x97da0g] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
}

.msgr-addcontact[b-qy9x97da0g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.5rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
}

.msgr-addcontact .form-control[b-qy9x97da0g] {
    width: 10rem;
    flex: 0 1 auto;
}

/* ---- shared bits ---- */

.msgr-icon-btn[b-qy9x97da0g] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
}

.msgr-icon-btn:hover[b-qy9x97da0g],
.msgr-icon-btn.is-open[b-qy9x97da0g] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
    color: var(--bs-body-color);
}

/* ---- header menus: one "more" button instead of a row of icons ---- */

.msgr-tools[b-qy9x97da0g] {
    position: relative;
}

.msgr-menu[b-qy9x97da0g] {
    position: absolute;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 1050;
    min-width: 13.5rem;
    max-height: min(70vh, 24rem);
    overflow-y: auto;
    font-size: 0.9rem;
}

.msgr-menu .dropdown-header[b-qy9x97da0g] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Invisible full-screen layer: any click outside the menu closes it. */
.msgr-menu-backdrop[b-qy9x97da0g] {
    position: fixed;
    inset: 0;
    z-index: 1049;
}

/* Mobile: the side panel becomes the SmartAdmin off-canvas slide (classes handled globally). */
@media (max-width: 991.98px) {
    .msgr-side[b-qy9x97da0g] {
        --sidepanel-width: 20rem;
    }
}

/* ---- message-details modal ---- */

.msgr-info-backdrop[b-qy9x97da0g] {
    background: rgba(15, 23, 42, 0.55);
}

.msgr-info-list dt[b-qy9x97da0g] {
    font-weight: 500;
    color: var(--bs-secondary-color);
}

.msgr-info-list dd[b-qy9x97da0g] {
    overflow-wrap: anywhere;
}

/* GUID / row id — mono so it reads as an identifier, wraps rather than clips. */
.msgr-info-guid[b-qy9x97da0g] {
    font-family: var(--bs-font-monospace, monospace);
    font-size: 0.82rem;
}

.msgr-info-copy[b-qy9x97da0g] {
    border: 0;
    background: transparent;
    padding: 0 0.25rem;
    color: var(--bs-secondary-color);
    cursor: pointer;
}

.msgr-info-copy:hover[b-qy9x97da0g] {
    color: var(--bs-primary);
}
/* /Components/Pages/Messaging/NewMessageModal.razor.rz.scp.css */
.newmsg-backdrop[b-x8xkjs9bc2] {
    background-color: rgba(0, 0, 0, 0.5);
}

/* Search affordance inside the field: the icon is what makes it read as a
   place to type rather than a label, which is what customers were missing. */
.newmsg-inputwrap[b-x8xkjs9bc2] {
    position: relative;
}

.newmsg-inputicon[b-x8xkjs9bc2] {
    position: absolute;
    top: 50%;
    left: 0.9rem;
    transform: translateY(-50%);
    color: var(--bs-secondary-color, #9aa0a6);
    pointer-events: none;
}

.newmsg-input[b-x8xkjs9bc2] {
    padding-left: 2.5rem;
}

.newmsg-results[b-x8xkjs9bc2] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-top: 0.85rem;
    max-height: 20rem;
    overflow-y: auto;
}

.newmsg-row[b-x8xkjs9bc2] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    padding: 0.55rem 0.65rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--bs-body-color);
    text-align: left;
    cursor: pointer;
}

.newmsg-row:hover[b-x8xkjs9bc2],
.newmsg-row:focus-visible[b-x8xkjs9bc2] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.05));
    outline: none;
}

/* The "text this new number" row sits above contacts and is tinted so it reads
   as the deliberate action it is, not another contact. */
.newmsg-row-new[b-x8xkjs9bc2] {
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.07);
}

.newmsg-row-new:hover[b-x8xkjs9bc2],
.newmsg-row-new:focus-visible[b-x8xkjs9bc2] {
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.14);
}

.newmsg-row-body[b-x8xkjs9bc2] {
    flex: 1;
    min-width: 0;
}

.newmsg-row-avatar[b-x8xkjs9bc2] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    font-size: 0.78rem;
    font-weight: 600;
    color: #fff;
    background: hsl(var(--avatar-hue, 210), 55%, 52%);
}

.newmsg-row-icon[b-x8xkjs9bc2] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    color: var(--bs-primary, #0d6efd);
    background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.15);
}

.newmsg-empty[b-x8xkjs9bc2] {
    padding: 0.9rem 0.65rem;
    font-size: 0.85rem;
}
/* /Components/Pages/Messaging/OptOuts.razor.rz.scp.css */
.opt-back[b-178wc5eqw8] {
    font-size: 0.8rem;
    text-decoration: none;
}

.opt-tiles[b-178wc5eqw8] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.opt-tile[b-178wc5eqw8] {
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
}

.opt-tile-primary[b-178wc5eqw8] {
    border-color: rgba(var(--bs-danger-rgb), 0.35);
    background: rgba(var(--bs-danger-rgb), 0.05);
}

.opt-tile-label[b-178wc5eqw8] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.opt-tile-value[b-178wc5eqw8] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
}

.opt-tile-sub[b-178wc5eqw8] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

.opt-search[b-178wc5eqw8] {
    max-width: 16rem;
}

.opt-search-icon[b-178wc5eqw8] {
    left: 0.6rem;
    top: 0.55rem;
    font-size: 0.75rem;
}

.opt-table th[b-178wc5eqw8] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
}

.opt-row-ended td[b-178wc5eqw8] {
    color: var(--bs-secondary-color, #6c757d);
}

.opt-footnote[b-178wc5eqw8] {
    margin-top: 0.9rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--bs-border-color, #eee);
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #999);
}
/* /Components/Pages/Messaging/SmsAccessModal.razor.rz.scp.css */
.smsacc-backdrop[b-o9xq5n9osz] {
    background-color: rgba(0, 0, 0, 0.5);
}

.smsacc-row[b-o9xq5n9osz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.25rem;
    border-bottom: 1px solid var(--bs-border-color, #eee);
}

.smsacc-row:last-child[b-o9xq5n9osz] {
    border-bottom: 0;
}

.smsacc-info[b-o9xq5n9osz] {
    min-width: 0;
}

.smsacc-name[b-o9xq5n9osz] {
    font-weight: 600;
    font-size: 0.9rem;
}

.smsacc-sub[b-o9xq5n9osz] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
}
/* /Components/Pages/Messaging/SmsSignatureModal.razor.rz.scp.css */
.sig-backdrop[b-e6fv80fwao] {
    background-color: rgba(0, 0, 0, 0.5);
}

/* The preview renders the signature the way a bubble would — whitespace kept —
   so what you type is visibly what recipients get. */
.sig-preview[b-e6fv80fwao] {
    padding: 0.6rem 0.75rem;
    border: 1px dashed var(--bs-border-color, #d5d5d5);
    border-radius: 0.5rem;
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.03));
}

.sig-preview-label[b-e6fv80fwao] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    margin-bottom: 0.25rem;
}

.sig-preview-text[b-e6fv80fwao] {
    white-space: pre-wrap;
    font-size: 0.88rem;
}
/* /Components/Pages/Messaging/SmsUsageModal.razor.rz.scp.css */
.usage-backdrop[b-zu2297f5rq] {
    background-color: rgba(0, 0, 0, 0.5);
}

.usage-period-label[b-zu2297f5rq] {
    display: flex;
    align-items: center;
    font-size: 0.85rem;
    color: var(--bs-secondary-color, #777);
    margin-bottom: 0.75rem;
}

.usage-tiles[b-zu2297f5rq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.1rem;
}

.usage-tile[b-zu2297f5rq] {
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
}

.usage-tile-primary[b-zu2297f5rq] {
    border-color: rgba(var(--bs-primary-rgb), 0.35);
    background: rgba(var(--bs-primary-rgb), 0.06);
}

.usage-tile-value[b-zu2297f5rq] {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.2;
}

.usage-tile-primary .usage-tile-value[b-zu2297f5rq] {
    color: var(--bs-primary);
}

.usage-tile-label[b-zu2297f5rq] {
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0.15rem;
}

.usage-tile-sub[b-zu2297f5rq] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

.usage-table th[b-zu2297f5rq] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
}

.usage-table td[b-zu2297f5rq] {
    white-space: nowrap;
}

.usage-row-current[b-zu2297f5rq] {
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.usage-footnote[b-zu2297f5rq] {
    margin-top: 0.9rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--bs-border-color, #eee);
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #999);
}
/* /Components/Pages/Messaging/TextConsent.razor.rz.scp.css */
.tc-back[b-q81k4r9w1r] {
    font-size: 0.8rem;
    text-decoration: none;
}

.tc-tiles[b-q81k4r9w1r] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.tc-tile[b-q81k4r9w1r] {
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
}

.tc-tile-primary[b-q81k4r9w1r] {
    border-color: rgba(var(--bs-success-rgb), 0.35);
    background: rgba(var(--bs-success-rgb), 0.05);
}

.tc-tile-label[b-q81k4r9w1r] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.tc-tile-value[b-q81k4r9w1r] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
}

.tc-tile-sub[b-q81k4r9w1r] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

.tc-link-card[b-q81k4r9w1r] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
}

.tc-qr[b-q81k4r9w1r] {
    width: 7.5rem;
    height: 7.5rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.25rem;
    flex-shrink: 0;
}

.tc-url[b-q81k4r9w1r] {
    font-family: var(--bs-font-monospace);
    font-size: 0.85rem;
    word-break: break-all;
}

.tc-script[b-q81k4r9w1r] {
    white-space: pre-wrap;
    font-size: 0.9rem;
    line-height: 1.5;
    padding: 0.75rem 1rem;
    border-left: 3px solid rgba(var(--bs-success-rgb), 0.6);
    background: rgba(var(--bs-success-rgb), 0.04);
    border-radius: 0 0.4rem 0.4rem 0;
}

.tc-search[b-q81k4r9w1r] {
    max-width: 16rem;
}

.tc-search-icon[b-q81k4r9w1r] {
    left: 0.6rem;
    top: 0.55rem;
    font-size: 0.75rem;
}

.tc-table th[b-q81k4r9w1r] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    white-space: nowrap;
}

.tc-footnote[b-q81k4r9w1r] {
    margin-top: 0.9rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--bs-border-color, #eee);
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #999);
}
/* /Components/Pages/Messaging/ThreadBlockButton.razor.rz.scp.css */
.blockbtn-wrap[b-1o8r7sfoti] {
    position: relative;
}

/* Self-styled like .callbtn-trigger next to it: the shared .msgr-icon-btn rules
   are scoped to Messaging.razor and don't reach into this component. Muted until
   hover so a destructive action doesn't shout from the header; solid red once the
   number IS blocked, which is the state worth noticing. */
.blockbtn-trigger[b-1o8r7sfoti] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    outline: none;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #888);
    font-size: 1.05rem;
    cursor: pointer;
}

.blockbtn-trigger:hover[b-1o8r7sfoti] {
    color: var(--bs-danger, #dc3545);
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.12);
}

.blockbtn-trigger:focus-visible[b-1o8r7sfoti] {
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-danger-rgb, 220, 53, 69), 0.35);
}

.blockbtn-trigger:disabled[b-1o8r7sfoti] {
    opacity: 0.45;
    cursor: default;
}

.blockbtn-trigger.is-blocked[b-1o8r7sfoti] {
    color: var(--bs-danger, #dc3545);
}

.blockbtn-panel[b-1o8r7sfoti] {
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 0;
    z-index: 1055;
    width: 17rem;
    padding: 0.85rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.blockbtn-title[b-1o8r7sfoti] {
    font-weight: 600;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.blockbtn-sub[b-1o8r7sfoti] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #888);
    margin-bottom: 0.2rem;
}

.blockbtn-label[b-1o8r7sfoti] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    margin-top: 0.35rem;
}

.blockbtn-hint[b-1o8r7sfoti] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

.blockbtn-status[b-1o8r7sfoti] {
    margin-top: 0.4rem;
    padding: 0.35rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.8rem;
}

.blockbtn-status.is-ok[b-1o8r7sfoti] {
    background: rgba(var(--bs-success-rgb, 25, 135, 84), 0.1);
    color: var(--bs-success, #198754);
}

.blockbtn-status.is-error[b-1o8r7sfoti] {
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.1);
    color: var(--bs-danger, #dc3545);
}

.blockbtn-actions[b-1o8r7sfoti] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.6rem;
}
/* /Components/Pages/Messaging/ThreadCallButton.razor.rz.scp.css */
.callbtn-wrap[b-esqaqzhxx0] {
    position: relative;
}

/* Green call trigger in the thread header. Fully self-styled — the shared
   .msgr-icon-btn styles are scoped to Messaging.razor and don't reach in here,
   which is what left the browser's default button border showing. */
.callbtn-trigger[b-esqaqzhxx0] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    outline: none;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-success, #1dc9b7);
    font-size: 1.05rem;
    cursor: pointer;
}

.callbtn-trigger:hover[b-esqaqzhxx0] {
    color: var(--bs-success, #1dc9b7);
    background: rgba(var(--bs-success-rgb, 29, 201, 183), 0.12);
}

.callbtn-trigger:focus-visible[b-esqaqzhxx0] {
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-success-rgb, 29, 201, 183), 0.35);
}

.callbtn-panel[b-esqaqzhxx0] {
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 0;
    z-index: 1055;
    width: 17rem;
    padding: 0.85rem;
    border: 1px solid var(--bs-border-color, #e5e5e5);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.callbtn-title[b-esqaqzhxx0] {
    font-weight: 600;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.callbtn-sub[b-esqaqzhxx0] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #888);
    margin-bottom: 0.2rem;
}

.callbtn-label[b-esqaqzhxx0] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color, #888);
    margin-top: 0.35rem;
}

.callbtn-single[b-esqaqzhxx0] {
    font-size: 0.88rem;
    padding: 0.25rem 0;
}

.callbtn-hint[b-esqaqzhxx0] {
    font-size: 0.72rem;
    color: var(--bs-secondary-color, #999);
}

.callbtn-status[b-esqaqzhxx0] {
    margin-top: 0.4rem;
    padding: 0.35rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.8rem;
}

.callbtn-status.is-ok[b-esqaqzhxx0] {
    background: rgba(var(--bs-success-rgb, 25, 135, 84), 0.1);
    color: var(--bs-success, #198754);
}

.callbtn-status.is-error[b-esqaqzhxx0] {
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.1);
    color: var(--bs-danger, #dc3545);
}

.callbtn-actions[b-esqaqzhxx0] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.6rem;
}
/* /Components/Pages/RingGroups/AddRingGroupModal.razor.rz.scp.css */
.rg-add-backdrop[b-mstu7kt0rs] {
    background: rgba(15, 23, 42, 0.55);
}

.fs-nano[b-mstu7kt0rs] {
    font-size: 0.72rem;
}

.rg-add-select[b-mstu7kt0rs] {
    min-width: 13rem;
}

/* ---- member rows (duplicated from RingGroupList.razor.css — scoped styles
   don't reach child components) ---- */

.rg-member-row[b-mstu7kt0rs] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.rg-member-name[b-mstu7kt0rs] {
    flex: 1 1 11rem;
    font-weight: 500;
    min-width: 10rem;
}

.rg-member-window[b-mstu7kt0rs] {
    display: flex;
    align-items: flex-end;
    gap: 0.6rem;
    flex: 2 1 16rem;
}

.rg-member-window input[type="number"][b-mstu7kt0rs] {
    width: 5.25rem;
}

.rg-window-bar[b-mstu7kt0rs] {
    position: relative;
    flex: 1 1 6rem;
    height: 0.45rem;
    margin-bottom: 0.85rem;
    background: var(--bs-border-color);
    border-radius: 1rem;
    min-width: 4rem;
}

.rg-window-fill[b-mstu7kt0rs] {
    position: absolute;
    top: 0;
    bottom: 0;
    background: var(--bs-primary);
    border-radius: 1rem;
}

.rg-member-actions[b-mstu7kt0rs] {
    display: flex;
    gap: 0.35rem;
}
/* /Components/Pages/RingGroups/RingGroupList.razor.rz.scp.css */
.rg-page h4[b-rwap1jxz5s] {
    font-weight: 600;
}

.rg-card[b-rwap1jxz5s] {
    border: none;
    border-radius: 0.75rem;
}

.rg-table thead th[b-rwap1jxz5s] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color);
    border-bottom-width: 1px;
    padding: 0.65rem 1rem;
}

.rg-table tbody td[b-rwap1jxz5s] {
    padding: 0.65rem 1rem;
    cursor: pointer;
}

.rg-row-active[b-rwap1jxz5s] {
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.rg-ringback-select[b-rwap1jxz5s] {
    max-width: 18rem;
}

.rg-ringback-staged[b-rwap1jxz5s] {
    padding: 0.65rem 0.75rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
    max-width: 34rem;
}

.rg-subtabs .nav-link[b-rwap1jxz5s] {
    color: var(--bs-body-color);
    font-size: 0.875rem;
    padding: 0.3rem 0.85rem;
}

.rg-subtabs .nav-link.active[b-rwap1jxz5s] {
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-weight: 600;
}

.fs-nano[b-rwap1jxz5s] {
    font-size: 0.72rem;
}

.rg-ext-input[b-rwap1jxz5s] {
    width: 6.5rem;
    text-align: center;
}

.rg-add-select[b-rwap1jxz5s] {
    min-width: 13rem;
}

/* ---- member rows (duplicated in AddRingGroupModal.razor.css — scoped styles
   don't reach child components) ---- */

.rg-member-row[b-rwap1jxz5s] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.rg-member-name[b-rwap1jxz5s] {
    flex: 1 1 11rem;
    font-weight: 500;
    min-width: 10rem;
}

.rg-member-window[b-rwap1jxz5s] {
    display: flex;
    align-items: flex-end;
    gap: 0.6rem;
    flex: 2 1 16rem;
}

.rg-member-window input[type="number"][b-rwap1jxz5s] {
    width: 5.25rem;
}

.rg-window-bar[b-rwap1jxz5s] {
    position: relative;
    flex: 1 1 6rem;
    height: 0.45rem;
    margin-bottom: 0.85rem;
    background: var(--bs-border-color);
    border-radius: 1rem;
    min-width: 4rem;
}

.rg-window-fill[b-rwap1jxz5s] {
    position: absolute;
    top: 0;
    bottom: 0;
    background: var(--bs-primary);
    border-radius: 1rem;
}

.rg-member-actions[b-rwap1jxz5s] {
    display: flex;
    gap: 0.35rem;
}

/* ---- phones: master/detail swap (same pattern as the Users page) ---- */

/* Below lg the columns stack, burying the editor below the whole group list —
   tapping a group looked like it did nothing. Show one pane at a time instead;
   the editor brings its own "All groups" back button (hidden on desktop). */
@media (max-width: 991.98px) {
    .rg-row-wrap.has-selection .rg-col-list[b-rwap1jxz5s] {
        display: none;
    }
}

.rg-back[b-rwap1jxz5s] {
    text-decoration: none;
    font-weight: 500;
}
/* /Components/Pages/SmsRegistration/SmsRegistration.razor.rz.scp.css */
.sr-page h4[b-bpd5b4n4xc] {
    font-weight: 600;
}

.sr-card[b-bpd5b4n4xc] {
    border: none;
    border-radius: 0.75rem;
}

.sr-hint[b-bpd5b4n4xc] {
    font-size: 0.72rem;
    line-height: 1.35;
}

/* required-field marker: every field but Sample message 2 */
.sr-req[b-bpd5b4n4xc] {
    color: var(--bs-danger);
    font-weight: 600;
    margin-left: 0.15rem;
}

.sr-req-note[b-bpd5b4n4xc] {
    font-size: 0.78rem;
}

/* ---- pinned help-guide banner ---- */

.sr-guide-banner[b-bpd5b4n4xc] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding: 0.9rem 1.1rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, var(--bs-primary), #3b8bfd);
    color: #fff;
    box-shadow: 0 0.25rem 0.75rem rgba(13, 110, 253, 0.25);
}

.sr-guide-icon[b-bpd5b4n4xc] {
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    font-size: 1.15rem;
}

.sr-guide-text[b-bpd5b4n4xc] {
    flex: 1 1 18rem;
}

.sr-guide-text .small[b-bpd5b4n4xc] {
    opacity: 0.9;
}

.sr-guide-actions[b-bpd5b4n4xc] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sr-state-icon[b-bpd5b4n4xc] {
    width: 4rem;
    height: 4rem;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1.6rem;
}

.sr-fact-row[b-bpd5b4n4xc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.sr-fact[b-bpd5b4n4xc] {
    flex: 1 1 11rem;
    min-width: 10rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.6rem;
    padding: 0.6rem 0.8rem;
    background: var(--bs-tertiary-bg);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sr-fact-label[b-bpd5b4n4xc] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--bs-secondary-color);
}

.sr-fact-value[b-bpd5b4n4xc] {
    font-weight: 600;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Support/GetHelp.razor.rz.scp.css */
.gh-depts[b-rt52d3wh7d] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 0.6rem;
}

.gh-dept[b-rt52d3wh7d] {
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: start;
    gap: 0.6rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.5rem;
    cursor: pointer;
    margin: 0;
    transition: border-color 0.12s ease, background-color 0.12s ease;
}

.gh-dept:hover[b-rt52d3wh7d] {
    border-color: var(--bs-primary, #667eea);
}

.gh-dept.active[b-rt52d3wh7d] {
    border-color: var(--bs-primary, #667eea);
    background: rgba(102, 126, 234, 0.08);
}

.gh-dept .form-check-input[b-rt52d3wh7d] {
    margin-top: 0.25rem;
}

.gh-dept > i[b-rt52d3wh7d] {
    margin-top: 0.2rem;
    color: var(--bs-primary, #667eea);
    width: 1.1rem;
    text-align: center;
}

.gh-details[b-rt52d3wh7d] {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.9rem;
    row-gap: 0.35rem;
    font-size: 0.9rem;
}

.gh-details dt[b-rt52d3wh7d] {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 500;
    white-space: nowrap;
}

.gh-details dd[b-rt52d3wh7d] {
    margin: 0;
    overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
    .gh-dept[b-rt52d3wh7d] { transition: none; }
}

.gh-suggest[b-rt52d3wh7d] {
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.5rem;
    padding: 0.6rem 0.75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.gh-suggest-item[b-rt52d3wh7d] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.25rem 0;
    text-decoration: none;
    font-size: 0.9rem;
}

.gh-suggest-item:hover span:first-child[b-rt52d3wh7d] {
    text-decoration: underline;
}
/* /Components/Pages/Support/TicketDetail.razor.rz.scp.css */
.tk-timeline[b-3ta0meccsh] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tk-msg[b-3ta0meccsh] {
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.6rem;
    padding: 0.75rem 1rem;
    background: var(--bs-body-bg, #fff);
    max-width: 92%;
}

.tk-customer[b-3ta0meccsh] {
    align-self: flex-end;
    border-color: rgba(102, 126, 234, 0.35);
    background: rgba(102, 126, 234, 0.07);
}

.tk-staff[b-3ta0meccsh] {
    align-self: flex-start;
}

.tk-meta[b-3ta0meccsh] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.35rem;
}

.tk-body[b-3ta0meccsh] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.5;
}

.tk-files[b-3ta0meccsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
}

.tk-file[b-3ta0meccsh] {
    font-size: 0.85rem;
    text-decoration: none;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
}

.tk-file:hover[b-3ta0meccsh] {
    border-color: var(--bs-primary, #667eea);
}
/* /Components/Pages/Switchboard/Switchboard.razor.rz.scp.css */
/* State colours: green = free, amber = ringing, red = on a call — the BLF convention
   people already know from the keys on their desk phone. */
.sb-toolbar[b-ht48393nzh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.sb-counts[b-ht48393nzh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sb-count[b-ht48393nzh] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff);
    color: var(--bs-body-color, #212529);
    border-radius: 999px;
    padding: 0.25rem 0.8rem;
    font-size: 0.85rem;
    line-height: 1.4;
}

.sb-count.active[b-ht48393nzh] {
    border-color: var(--bs-primary, #667eea);
    box-shadow: 0 0 0 1px var(--bs-primary, #667eea) inset;
}

.sb-count-n[b-ht48393nzh] {
    font-weight: 700;
    margin-right: 0.3rem;
    font-variant-numeric: tabular-nums;
}

.sb-c-oncall .sb-count-n[b-ht48393nzh] { color: var(--bs-danger, #dc3545); }
.sb-c-ringing .sb-count-n[b-ht48393nzh] { color: #d98e00; }
.sb-c-idle .sb-count-n[b-ht48393nzh] { color: var(--bs-success, #198754); }

.sb-search[b-ht48393nzh] {
    max-width: 18rem;
    margin-left: auto;
}

.sb-grid[b-ht48393nzh] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
    gap: 0.75rem;
}

.sb-tile[b-ht48393nzh] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-left: 4px solid var(--bs-success, #198754);
    border-radius: 0.6rem;
    background: var(--bs-body-bg, #fff);
    padding: 0.7rem 0.8rem;
    min-height: 4.2rem;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.sb-tile.sb-oncall[b-ht48393nzh] {
    border-left-color: var(--bs-danger, #dc3545);
    background: rgba(220, 53, 69, 0.05);
}

.sb-tile.sb-ringing[b-ht48393nzh] {
    border-left-color: #f0ad1d;
    background: rgba(240, 173, 29, 0.08);
    animation: sb-ring-b-ht48393nzh 1.2s ease-in-out infinite;
}

@keyframes sb-ring-b-ht48393nzh {
    0%, 100% { box-shadow: 0 0 0 0 rgba(240, 173, 29, 0); }
    50% { box-shadow: 0 0 0 3px rgba(240, 173, 29, 0.28); }
}

.sb-head[b-ht48393nzh] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.sb-avatar[b-ht48393nzh] {
    flex: 0 0 auto;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.78rem;
    font-weight: 700;
    color: #fff;
    background: var(--bs-success, #198754);
}

.sb-oncall .sb-avatar[b-ht48393nzh] { background: var(--bs-danger, #dc3545); }
.sb-ringing .sb-avatar[b-ht48393nzh] { background: #d98e00; }

.sb-who[b-ht48393nzh] {
    flex: 1 1 auto;
    min-width: 0;
}

.sb-name[b-ht48393nzh] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sb-ext[b-ht48393nzh] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sb-state[b-ht48393nzh] {
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--bs-success, #198754);
}

.sb-oncall .sb-state[b-ht48393nzh] { color: var(--bs-danger, #dc3545); }
.sb-ringing .sb-state[b-ht48393nzh] { color: #d98e00; }

.sb-call[b-ht48393nzh] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.6rem;
    padding-top: 0.55rem;
    border-top: 1px dashed var(--bs-border-color, #dee2e6);
}

.sb-dir[b-ht48393nzh] {
    flex: 0 0 auto;
    width: 1rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
}

.sb-party[b-ht48393nzh] {
    flex: 1 1 auto;
    min-width: 0;
}

.sb-party-name[b-ht48393nzh] {
    font-size: 0.92rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Marks a name that came from the carrier's caller ID rather than the contact list. */
.sb-cnam[b-ht48393nzh] {
    margin-right: 0.35rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--bs-secondary-color, #6c757d);
}

.sb-party-sub[b-ht48393nzh] {
    font-size: 0.76rem;
    color: var(--bs-secondary-color, #6c757d);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sb-timer[b-ht48393nzh] {
    flex: 0 0 auto;
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    color: var(--bs-secondary-color, #6c757d);
}

.sb-more[b-ht48393nzh] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: 0.3rem;
}

.sb-live[b-ht48393nzh] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #6c757d);
    font-variant-numeric: tabular-nums;
}

.sb-live-dot[b-ht48393nzh] {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--bs-success, #198754);
}

.sb-live.sb-ok .sb-live-dot[b-ht48393nzh] { animation: sb-beat-b-ht48393nzh 2s ease-in-out infinite; }
.sb-live.sb-paused .sb-live-dot[b-ht48393nzh] { background: var(--bs-secondary-color, #6c757d); }
.sb-live.sb-stale .sb-live-dot[b-ht48393nzh] { background: #d98e00; }

@keyframes sb-beat-b-ht48393nzh {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

@media (prefers-reduced-motion: reduce) {
    .sb-tile.sb-ringing[b-ht48393nzh],
    .sb-live.sb-ok .sb-live-dot[b-ht48393nzh] { animation: none; }
}
/* /Components/Pages/Users/AddUserModal.razor.rz.scp.css */
.aum-backdrop[b-lc0sy0p8s7] {
    background: rgba(0, 0, 0, 0.5);
}
/* /Components/Pages/Users/BillingSeatPanel.razor.rz.scp.css */
.bsp-lines[b-d7aihfjojr] {
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: 0.4rem;
    overflow: hidden;
}

.bsp-line[b-d7aihfjojr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.875rem;
    margin: 0;
    cursor: default;
}

label.bsp-line[b-d7aihfjojr] {
    cursor: pointer;
}

.bsp-line + .bsp-line[b-d7aihfjojr] {
    border-top: 1px solid var(--bs-border-color, #e5e7eb);
}

.bsp-line .form-check-input[b-d7aihfjojr] {
    margin: 0;
}

/* The "add the part-time line" row: a small price box beside the quantity, and a
   one-line note under it (default-price hint, invalid price, or the manual path). */
.bsp-price[b-d7aihfjojr] {
    width: 12rem;
    flex: 0 0 auto;
}

.bsp-price input[b-d7aihfjojr] {
    text-align: right;
}

.bsp-note[b-d7aihfjojr] {
    padding: 0 0.65rem 0.45rem 2.2rem;
    font-size: 0.8rem;
}

.bsp-note + .bsp-line[b-d7aihfjojr] {
    border-top: 1px solid var(--bs-border-color, #e5e7eb);
}
/* /Components/Pages/Users/UserList.razor.rz.scp.css */
/* Colors use Bootstrap theme variables throughout — the portal's dark mode flips
   data-bs-theme on the root, and hard-coded light hexes turn white-on-white. */

.um-search[b-6bbh2onsnp] {
    width: 15rem;
}

.um-card[b-6bbh2onsnp] {
    border: none;
    border-radius: 0.75rem;
}

.um-purple[b-6bbh2onsnp] {
    color: #6f42c1;
}

/* ---- directory ---- */

.um-dir-head[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.um-dir[b-6bbh2onsnp] {
    max-height: calc(100vh - 16rem);
    overflow-y: auto;
}

.um-dir-row[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.55rem 1rem;
    border: none;
    border-bottom: 1px solid var(--bs-border-color);
    background: transparent;
    color: var(--bs-body-color);
    text-align: left;
    cursor: pointer;
}

.um-dir-row:last-child[b-6bbh2onsnp] {
    border-bottom: none;
}

.um-dir-row:hover[b-6bbh2onsnp] {
    background: var(--bs-tertiary-bg);
}

.um-dir-row.selected[b-6bbh2onsnp] {
    background: rgba(var(--bs-primary-rgb), 0.1);
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

.um-avatar[b-6bbh2onsnp] {
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-weight: 600;
    font-size: 0.8rem;
}

.um-avatar-lg[b-6bbh2onsnp] {
    width: 3rem;
    height: 3rem;
    font-size: 1.05rem;
}

.um-dir-names[b-6bbh2onsnp] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.um-dir-sub[b-6bbh2onsnp] {
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Icon strip wraps into tidy right-aligned rows instead of squishing the name —
   capped at roughly four icons per row. */
.um-dir-icons[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    flex: 0 0 auto;
    max-width: 5.9rem;
    font-size: 0.8rem;
}

/* Icon + count sit side by side as a small chip — an overlaid corner badge
   covered the glyph and read poorly at this size. */
.um-dev-icon[b-6bbh2onsnp] {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
}

.um-dev-count[b-6bbh2onsnp] {
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.14rem 0.32rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

/* ---- detail panel ---- */

.um-detail-head[b-6bbh2onsnp] {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    margin-bottom: 1rem;
}

.um-detail-names[b-6bbh2onsnp] {
    min-width: 0;
    flex: 1 1 auto;
}

.um-detail-names h5[b-6bbh2onsnp] {
    font-weight: 600;
}

.um-detail-chips[b-6bbh2onsnp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.um-detail-actions[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.um-tabs[b-6bbh2onsnp] {
    gap: 0.25rem;
}

.um-tabs .nav-link[b-6bbh2onsnp] {
    color: var(--bs-body-color);
    font-size: 0.875rem;
    padding: 0.35rem 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.um-tabs .nav-link.active[b-6bbh2onsnp] {
    background: var(--bs-primary);
    color: #fff;
}

.um-dot[b-6bbh2onsnp] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--bs-success);
    display: inline-block;
}

.um-tabs .nav-link.active .um-dot[b-6bbh2onsnp] {
    background: #fff;
}

/* ---- features accordion ---- */

.um-feature-row[b-6bbh2onsnp] {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.6rem;
    margin-bottom: 0.55rem;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
}

.um-feature-row.open[b-6bbh2onsnp] {
    border-color: rgba(var(--bs-primary-rgb), 0.4);
}

.um-feature-head[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.65rem 0.9rem;
    border: none;
    background: transparent;
    color: var(--bs-body-color);
    text-align: left;
    cursor: pointer;
}

.um-feature-head:hover[b-6bbh2onsnp] {
    background: var(--bs-secondary-bg);
}

.um-feature-icon[b-6bbh2onsnp] {
    width: 1.4rem;
    text-align: center;
    color: var(--bs-primary);
}

.um-feature-label[b-6bbh2onsnp] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.um-feature-sub[b-6bbh2onsnp] {
    font-size: 0.75rem;
}

.um-feature-body[b-6bbh2onsnp] {
    padding: 0.35rem 0.9rem 0.9rem;
    border-top: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}

/* ---- find me follow me rows ---- */

.um-fmfm-row[b-6bbh2onsnp] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    margin-bottom: 0.5rem;
}

.um-fmfm-row.silent[b-6bbh2onsnp] {
    background: var(--bs-tertiary-bg);
    opacity: 0.75;
}

.um-fmfm-name[b-6bbh2onsnp] {
    flex: 1 1 10rem;
    font-weight: 500;
    min-width: 9rem;
}

.um-fmfm-timing[b-6bbh2onsnp] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
}

.um-fmfm-timing input[b-6bbh2onsnp] {
    width: 5rem;
}

/* ---- misc ---- */

.um-ext-input[b-6bbh2onsnp] {
    max-width: 10rem;
}

.um-backdrop[b-6bbh2onsnp] {
    background: rgba(15, 23, 42, 0.55);
}

/* ---- phones: master/detail swap ---- */

/* Below lg the two columns stack, which buried the detail panel underneath the whole
   directory — tapping a user appeared to do nothing (the panel rendered ~950px down).
   Instead show ONE pane at a time: the directory until a user is picked, then the
   detail full-width with its own "All users" back button (hidden on desktop). */
@media (max-width: 991.98px) {
    .um-row.has-selection .um-col-dir[b-6bbh2onsnp] {
        display: none;
    }

    .um-row:not(.has-selection) .um-col-detail[b-6bbh2onsnp] {
        display: none;
    }

    /* The header row (avatar · name · 3 action buttons) doesn't fit — the buttons
       squeezed the name to one letter per line. Let the actions wrap onto their
       own line under the name instead. */
    .um-detail-head[b-6bbh2onsnp] {
        flex-wrap: wrap;
    }

    .um-detail-names[b-6bbh2onsnp] {
        flex: 1 1 min(14rem, 60%);
    }

    .um-detail-actions[b-6bbh2onsnp] {
        flex-basis: 100%;
        justify-content: flex-end;
    }
}

.um-back[b-6bbh2onsnp] {
    text-decoration: none;
    font-weight: 500;
}
/* /Components/Pages/Voicemail/VoicemailAccessModal.razor.rz.scp.css */
.vmacc-backdrop[b-hebytiitk8] {
    background-color: rgba(0, 0, 0, 0.5);
}

.vmacc-row[b-hebytiitk8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.25rem;
    border-bottom: 1px solid var(--bs-border-color, #eee);
}

.vmacc-row:last-child[b-hebytiitk8] {
    border-bottom: 0;
}

.vmacc-info[b-hebytiitk8] {
    min-width: 0;
}

.vmacc-name[b-hebytiitk8] {
    font-weight: 600;
    font-size: 0.9rem;
}

.vmacc-sub[b-hebytiitk8] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
}
/* /Components/Pages/Voicemail/VoicemailList.razor.rz.scp.css */
.vm-shell[b-4gyoy1rxl8] {
    display: flex;
    width: 100%;
    height: calc(100vh - (var(--app-header-height, 4.125rem) + 56px));
    min-height: 24rem;
    overflow: hidden;
}

/* ---- mailbox side panel ---- */

.vm-side[b-4gyoy1rxl8] {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    /* smartapp's slide-on-mobile hides the panel by shifting it left by
       --sidepanel-width (default 15rem) — it MUST match the real width, or the
       difference stays on-screen as a clipped sliver over the messages. */
    --sidepanel-width: 22rem;
    width: var(--sidepanel-width);
    max-width: 100%;
    border-right: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
}

.vm-side-head[b-4gyoy1rxl8] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0.9rem 0.9rem 0.6rem;
    border-bottom: 1px solid var(--bs-border-color, #eee);
}

.vm-side-title[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.vm-side-list[b-4gyoy1rxl8] {
    flex: 1;
    overflow-y: auto;
    padding: 0.4rem;
}

.vm-box-row[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.6rem 0.85rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: var(--bs-body-color);
    transition: background-color 0.12s ease;
}

.vm-box-row:hover[b-4gyoy1rxl8] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.05));
}

.vm-box-row.active[b-4gyoy1rxl8] {
    background: rgba(var(--bs-primary-rgb), 0.12);
}

.vm-box-avatar[b-4gyoy1rxl8] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    font-size: 0.9rem;
}

.vm-box-main[b-4gyoy1rxl8] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.vm-box-name[b-4gyoy1rxl8] {
    font-weight: 600;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vm-box-sub[b-4gyoy1rxl8] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
}

.vm-box-count[b-4gyoy1rxl8] {
    flex-shrink: 0;
    min-width: 1.4rem;
    padding: 0 0.4rem;
    border-radius: 1rem;
    background: var(--bs-primary);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.4rem;
    text-align: center;
}

/* ---- messages column ---- */

.vm-main[b-4gyoy1rxl8] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    background: var(--bs-tertiary-bg, #f6f7f9);
}

.vm-empty[b-4gyoy1rxl8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    text-align: center;
    padding: 2rem;
}

.vm-head[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-shrink: 0;
    padding: 0.55rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #e5e5e5);
    background: var(--bs-body-bg);
}

.vm-head-info[b-4gyoy1rxl8] {
    min-width: 0;
}

.vm-head-name[b-4gyoy1rxl8] {
    font-weight: 600;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vm-head-sub[b-4gyoy1rxl8] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color, #888);
}

.vm-notice[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 1rem;
    font-size: 0.82rem;
}

.vm-notice.is-ok[b-4gyoy1rxl8] {
    background: rgba(var(--bs-success-rgb, 25, 135, 84), 0.1);
    color: var(--bs-success, #198754);
}

.vm-notice.is-error[b-4gyoy1rxl8] {
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.1);
    color: var(--bs-danger, #dc3545);
}

.vm-toolbar[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
    padding: 0.55rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #eee);
    background: var(--bs-body-bg);
}

.vm-messages[b-4gyoy1rxl8] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem 1rem 1rem;
}

.vm-select-all[b-4gyoy1rxl8] {
    padding: 0.35rem 0.25rem;
}

.vm-msg[b-4gyoy1rxl8] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.7rem 0.75rem;
    margin-bottom: 0.4rem;
    border: 1px solid var(--bs-border-color, #e6e6e6);
    border-radius: 0.6rem;
    background: var(--bs-body-bg);
}

.vm-msg.is-new[b-4gyoy1rxl8] {
    border-left: 3px solid var(--bs-primary);
}

.vm-msg-check[b-4gyoy1rxl8] {
    margin-top: 0.55rem;
    flex-shrink: 0;
}

.vm-play[b-4gyoy1rxl8] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border: 0;
    border-radius: 50%;
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
    cursor: pointer;
    transition: transform 0.1s ease, background-color 0.12s ease;
}

.vm-play:hover[b-4gyoy1rxl8] {
    background: var(--bs-primary);
    color: #fff;
    transform: scale(1.05);
}

.vm-msg-main[b-4gyoy1rxl8] {
    flex: 1;
    min-width: 0;
}

.vm-msg-top[b-4gyoy1rxl8] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.vm-msg-caller[b-4gyoy1rxl8] {
    font-weight: 600;
    font-size: 0.92rem;
}

.vm-msg-number[b-4gyoy1rxl8] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color, #888);
}

.vm-badge-new[b-4gyoy1rxl8] {
    padding: 0.05rem 0.45rem;
    border-radius: 1rem;
    background: var(--bs-primary);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
}

.vm-badge-deleted[b-4gyoy1rxl8] {
    padding: 0.05rem 0.45rem;
    border-radius: 1rem;
    background: var(--bs-secondary-bg, #e5e5e5);
    color: var(--bs-secondary-color, #777);
    font-size: 0.68rem;
    font-weight: 700;
}

.vm-msg.is-deleted[b-4gyoy1rxl8] {
    opacity: 0.65;
    border-style: dashed;
}

.vm-msg-restore[b-4gyoy1rxl8] {
    color: var(--bs-success, #198754);
}

.vm-msg-restore:hover[b-4gyoy1rxl8] {
    background: rgba(var(--bs-success-rgb, 25, 135, 84), 0.12);
    color: var(--bs-success, #198754);
}

.vm-deleted-toggle[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
    cursor: pointer;
}

.vm-msg-sub[b-4gyoy1rxl8] {
    font-size: 0.78rem;
    color: var(--bs-secondary-color, #888);
    margin-top: 0.1rem;
}

.vm-transcript[b-4gyoy1rxl8] {
    margin-top: 0.45rem;
    padding: 0.5rem 0.7rem;
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg, rgba(0, 0, 0, 0.03));
    color: var(--bs-body-color);
    font-size: 0.85rem;
    line-height: 1.4;
    font-style: italic;
}

.vm-msg-actions[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    align-self: center;
    flex-shrink: 0;
}

.vm-msg-delete[b-4gyoy1rxl8] {
    align-self: center;
    color: var(--bs-secondary-color, #999);
}

.vm-msg-delete:hover[b-4gyoy1rxl8] {
    color: var(--bs-danger, #dc3545);
}

/* ---- shared bits ---- */

.vm-icon-btn[b-4gyoy1rxl8] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #777);
    cursor: pointer;
}

.vm-icon-btn:hover[b-4gyoy1rxl8] {
    background: var(--bs-secondary-bg, rgba(0, 0, 0, 0.06));
    color: var(--bs-body-color);
}

.vm-modal-backdrop[b-4gyoy1rxl8] {
    background-color: rgba(0, 0, 0, 0.5);
}

@media (max-width: 991.98px) {
    .vm-side[b-4gyoy1rxl8] {
        --sidepanel-width: 20rem;
    }
}
/* /Components/Pages/Voicemail/VoicemailSettingsModal.razor.rz.scp.css */
.vmset-backdrop[b-1owfxwtk65] {
    background-color: rgba(0, 0, 0, 0.5);
}

.vmset-options[b-1owfxwtk65] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.35rem 1rem;
    font-size: 0.85rem;
}

.vmset-options label[b-1owfxwtk65] {
    margin: 0;
    cursor: pointer;
}

.vmset-chip[b-1owfxwtk65] {
    display: inline-flex;
    align-items: center;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.3rem 0.55rem;
}
/* /Components/Shared/AnnouncementBanners.razor.rz.scp.css */
/* Announcement banners sit at the top of the page content, in normal flow, so they push the
   page down rather than cover it. Bootstrap's alert colours do the theming; this only shapes
   the row and keeps multi-line messages readable. */
.ann-banner[b-xczc9cpkes] {
    padding: 0.65rem 0.9rem;
    border-width: 1px;
    border-left-width: 4px;
    line-height: 1.45;
}

.ann-icon[b-xczc9cpkes] {
    margin-top: 0.2rem;
    font-size: 1.05rem;
}

.ann-body[b-xczc9cpkes] {
    min-width: 0;
}

/* Staff type the message as plain text; keep their line breaks. */
.ann-message[b-xczc9cpkes] {
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.ann-banner .btn-close[b-xczc9cpkes] {
    margin-top: 0.1rem;
}
/* /Components/Shared/CopyNumber.razor.rz.scp.css */
/* Subtle inline copy icon that sits next to a phone number without disturbing the line. */
.np-copy[b-y2qlrids2k] {
    border: 0;
    background: transparent;
    padding: 0 .15rem;
    margin-left: .3rem;
    font-size: .82em;
    line-height: 1;
    color: var(--bs-secondary-color, #8a909c);
    cursor: pointer;
    opacity: .6;
    vertical-align: baseline;
    transition: opacity .12s ease, color .12s ease;
}

.np-copy:hover[b-y2qlrids2k],
.np-copy:focus-visible[b-y2qlrids2k] {
    opacity: 1;
    color: var(--bs-primary, #0d6efd);
}
/* /Components/Shared/CopyValue.razor.rz.scp.css */
/* Same subtle inline treatment as CopyNumber — sits in the line without disturbing it. */
.np-copy[b-34taldxvw3] {
    border: 0;
    background: transparent;
    padding: 0 .15rem;
    margin-left: .3rem;
    font-size: .82em;
    line-height: 1;
    color: var(--bs-secondary-color, #8a909c);
    cursor: pointer;
    opacity: .6;
    vertical-align: baseline;
    transition: opacity .12s ease, color .12s ease;
}

.np-copy:hover[b-34taldxvw3],
.np-copy:focus-visible[b-34taldxvw3] {
    opacity: 1;
    color: var(--bs-primary, #0d6efd);
}
/* /Components/Shared/MmsImage.razor.rz.scp.css */
.mms-image[b-2qrbbvqmcp] {
    display: block;
    max-width: min(320px, 100%);
    max-height: 360px;
    border-radius: 12px;
    object-fit: contain;
    background-color: rgba(0, 0, 0, 0.05);
}

.mms-image-clickable[b-2qrbbvqmcp] {
    cursor: zoom-in;
    transition: filter 0.12s ease;
}

.mms-image-clickable:hover[b-2qrbbvqmcp] {
    filter: brightness(0.92);
}

/* JS-driven container: nexus-mms-image.js toggles is-loading / is-loaded / is-failed.
   The <img> only shows once loaded; the placeholder shows the state until then. */
.mms-media img[b-2qrbbvqmcp] {
    display: none;
}

.mms-media.is-loaded img[b-2qrbbvqmcp] {
    display: block;
}

.mms-media.is-loaded .mms-placeholder[b-2qrbbvqmcp] {
    display: none;
}

.mms-only-loading[b-2qrbbvqmcp],
.mms-only-failed[b-2qrbbvqmcp] {
    display: none;
}

.mms-media.is-loading .mms-only-loading[b-2qrbbvqmcp] {
    display: inline-block;
}

.mms-media.is-loading .mms-only-idle[b-2qrbbvqmcp],
.mms-media.is-failed .mms-only-idle[b-2qrbbvqmcp] {
    display: none;
}

.mms-media.is-failed .mms-only-failed[b-2qrbbvqmcp] {
    display: inline;
}

.mms-media.is-failed .mms-placeholder[b-2qrbbvqmcp] {
    cursor: pointer;
    background-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.06);
    border-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.3);
    color: var(--bs-danger, #dc3545);
}

.mms-media.is-loading .mms-placeholder[b-2qrbbvqmcp] {
    background-color: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.04);
    border-style: solid;
}

.mms-placeholder[b-2qrbbvqmcp] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    min-height: 120px;
    min-width: 220px;
    border-radius: 12px;
    border: 1px dashed var(--bs-border-color, #dee2e6);
    background-color: rgba(0, 0, 0, 0.02);
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.85rem;
}

.mms-placeholder-icon[b-2qrbbvqmcp] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    opacity: 0.6;
}

.mms-placeholder-label[b-2qrbbvqmcp] {
    flex: 1;
}
/* /Components/Shared/Partials/Header.razor.rz.scp.css */
/* Masquerade banner — deliberately loud in both themes so an impersonated session
   can never be mistaken for a normal one. Fixed bottom-left toast (it renders between
   the fixed header and sidebar, so normal flow would leave it in an awkward spot);
   sized and wrapped so long names never clip. Sits below modals/backdrops (BS ~1050). */
.masq-banner[b-ipbxrj0pcf] {
    position: fixed;
    left: 1rem;
    bottom: 1rem;
    z-index: 1040;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: min(26rem, calc(100vw - 2rem));
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: linear-gradient(135deg, #b45309, #d97706);
    color: #fff;
    font-size: 0.85rem;
    line-height: 1.4;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.masq-banner > i[b-ipbxrj0pcf] {
    margin-top: 0.15rem;
}

/* Let the text flex item shrink below its content size so it wraps instead of clipping. */
.masq-banner span[b-ipbxrj0pcf] {
    flex: 1 1 12rem;
    min-width: 0;
    overflow-wrap: break-word;
}

.masq-banner b[b-ipbxrj0pcf] {
    font-weight: 700;
}
/* /Components/Shared/Partials/Notifications.razor.rz.scp.css */
/* The theme styles .notification-header as a centered column, which overrides the
   Bootstrap utilities on the element and stacks the action buttons under the title
   (where they collide with the tab strip). Scoped selectors carry the component's
   attribute, so they out-specify the theme without needing !important. */
.notification-header[b-tb47mebk1r] {
    flex-direction: row;
    align-items: center;
    gap: .5rem;
}

.notification-header h4[b-tb47mebk1r] {
    text-align: left;
}
/* /Components/Shared/SearchableSelect.razor.rz.scp.css */
.ss-wrap[b-llj5bnehst] {
    position: relative;
}

.ss-trigger[b-llj5bnehst] {
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Transparent full-screen catcher so a click anywhere else closes the panel. */
.ss-backdrop[b-llj5bnehst] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.ss-panel[b-llj5bnehst] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    margin-top: 0.15rem;
    min-width: 16rem;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ss-search[b-llj5bnehst] {
    border: 0;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0;
}

.ss-search:focus[b-llj5bnehst] {
    box-shadow: none;
    border-color: var(--bs-border-color, #dee2e6);
    border-bottom-color: var(--bs-primary, #0d6efd);
}

.ss-list[b-llj5bnehst] {
    max-height: 15rem;
    min-height: 2rem;
    overflow-y: auto;
}

.ss-item[b-llj5bnehst] {
    padding: 0.35rem 0.75rem;
    cursor: pointer;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.875rem;
}

.ss-item:hover[b-llj5bnehst],
.ss-item.active[b-llj5bnehst] {
    background: var(--bs-tertiary-bg, rgba(0, 0, 0, 0.05));
}

.ss-item.selected .ss-label[b-llj5bnehst] {
    font-weight: 600;
}

.ss-hint[b-llj5bnehst] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.75rem;
    white-space: nowrap;
}

.ss-empty[b-llj5bnehst] {
    padding: 0.5rem 0.75rem;
}
/* /Components/Shared/SessionReauthModal.razor.rz.scp.css */
.reauth-backdrop[b-0fnejruqjr] {
    background-color: rgba(0, 0, 0, 0.55);
    z-index: 12000; /* above drawers, lightbox stays below the login ask */
}

.reauth-dialog[b-0fnejruqjr] {
    max-width: 24rem;
}
/* /Components/Shared/TtsGreetingModal.razor.rz.scp.css */
/* Sits above the opener's modal (Bootstrap .modal is 1055). */
.tts-backdrop[b-nya84ews13] {
    background: rgba(0, 0, 0, 0.55);
    z-index: 1065;
}

.tts-backdrop textarea[b-nya84ews13] {
    resize: vertical;
}
