/* /Pages/Admin/Announcements/AddAnnouncementDialog.razor.rz.scp.css */
.add-announcement-dialog__form[b-q0359xx43f] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.add-announcement-dialog__field[b-q0359xx43f] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.add-announcement-dialog__field--wide[b-q0359xx43f] {
    grid-column: 1 / -1;
}

.add-announcement-dialog__roles[b-q0359xx43f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    padding-top: 0.25rem;
}

.add-announcement-dialog__general-error[b-q0359xx43f] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Admin/Announcements/Announcements.razor.rz.scp.css */
.announcements[b-geeodsl4t2] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.announcements__header[b-geeodsl4t2] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.announcements__title[b-geeodsl4t2] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.announcements__subtitle[b-geeodsl4t2] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.announcements__toolbar[b-geeodsl4t2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
}

/* Icon-led loading / empty states, matching the SMS admin pages' treatment. */
.announcements__state[b-geeodsl4t2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.announcements__grid[b-geeodsl4t2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
    gap: 1rem;
}

.announcements__card[b-geeodsl4t2] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
}

.announcements__card-header[b-geeodsl4t2] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.announcements__card-header h3[b-geeodsl4t2] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    flex: 1 1 auto;
}

.announcements__body[b-geeodsl4t2] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--text);
    white-space: pre-wrap;
}

.announcements__meta[b-geeodsl4t2] {
    font-size: 0.78rem;
    color: var(--secondary-text);
}

/* Tinted background + darkened same-hue text (color-mix) keeps every severity badge readable at
   WCAG AA - plain white/black text directly on the raw --warning/--error/--info tokens fails contrast. */
.announcements__badge[b-geeodsl4t2] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
    border: 1px solid transparent;
}

.announcements__badge--info[b-geeodsl4t2] {
    background: var(--primary-hover);
    color: color-mix(in srgb, var(--primary) 65%, var(--text));
    border-color: var(--primary);
}
.announcements__badge--warning[b-geeodsl4t2] {
    background: var(--warning-hover);
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
    border-color: var(--warning);
}
.announcements__badge--maintenance[b-geeodsl4t2] {
    background: var(--secondary-hover);
    color: color-mix(in srgb, var(--secondary) 65%, var(--text));
    border-color: var(--secondary);
}
.announcements__badge--critical[b-geeodsl4t2] {
    background: var(--error-hover);
    color: color-mix(in srgb, var(--error) 65%, var(--text));
    border-color: var(--error);
}
.announcements__badge--inactive[b-geeodsl4t2] {
    background: var(--background-adornment);
    color: var(--secondary-text);
}

.announcements__actions[b-geeodsl4t2] {
    display: flex;
    justify-content: flex-end;
    gap: 0.25rem;
    margin-top: 0.25rem;
}

.announcements__actions[b-geeodsl4t2]  button {
    min-width: 44px;
    min-height: 44px;
}
/* /Pages/Admin/Email/AddEditChannelDialog.razor.rz.scp.css */
.add-channel-dialog__form[b-nsvz9fkdie] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.875rem;
    min-width: min(420px, 100%);
}

.add-channel-dialog__field[b-nsvz9fkdie] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.add-channel-dialog__field--wide[b-nsvz9fkdie] {
    grid-column: 1 / -1;
}

.add-channel-dialog__field--checkbox[b-nsvz9fkdie] {
    flex-direction: row;
}

.add-channel-dialog__label[b-nsvz9fkdie] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.add-channel-dialog__required[b-nsvz9fkdie] {
    color: var(--error);
}

.add-channel-dialog__input[b-nsvz9fkdie] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.add-channel-dialog__checkbox-label[b-nsvz9fkdie] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.825rem;
    color: var(--text);
    cursor: pointer;
}

.add-channel-dialog__form[b-nsvz9fkdie]  .add-channel-dialog__general-error {
    grid-column: 1 / -1;
}
/* /Pages/Admin/Email/AddEditThemeDialog.razor.rz.scp.css */
.add-theme-dialog__form[b-4vfi8x516y] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: min(420px, 100%);
}

.add-theme-dialog__field[b-4vfi8x516y] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.add-theme-dialog__field--wide[b-4vfi8x516y] {
    grid-column: 1 / -1;
}

.add-theme-dialog__label[b-4vfi8x516y] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.add-theme-dialog__required[b-4vfi8x516y] {
    color: var(--error);
}

.add-theme-dialog__input[b-4vfi8x516y] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.add-theme-dialog__form[b-4vfi8x516y]  .add-theme-dialog__general-error {
    grid-column: 1 / -1;
}

@media (max-width: 600px) {
    .add-theme-dialog__form[b-4vfi8x516y] {
        grid-template-columns: 1fr;
        min-width: 0;
    }
}
/* /Pages/Admin/Email/EmailChannels.razor.rz.scp.css */
.email-channels[b-zhb8uo7y77] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.email-channels__header[b-zhb8uo7y77] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.email-channels[b-zhb8uo7y77]  .email-channels__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.email-channels[b-zhb8uo7y77]  .email-channels__subtitle {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.email-channels[b-zhb8uo7y77]  .email-channels__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
}

.email-channels__state[b-zhb8uo7y77] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.email-channels__grid[b-zhb8uo7y77] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
    gap: 1rem;
}

.email-channels[b-zhb8uo7y77]  .email-channels__card {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem;
}

.email-channels__card-header[b-zhb8uo7y77] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.email-channels__card-header[b-zhb8uo7y77]  h3 {
    margin: 0;
}

.email-channels__key[b-zhb8uo7y77] {
    font-family: monospace;
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.email-channels[b-zhb8uo7y77]  .email-channels__description {
    font-size: 0.8rem;
    color: var(--secondary-text);
    margin: 0;
}

.email-channels__actions[b-zhb8uo7y77] {
    display: flex;
    justify-content: flex-end;
    gap: 0.25rem;
}

.email-channels__actions[b-zhb8uo7y77]  button {
    min-width: 44px;
    min-height: 44px;
}

@media (max-width: 600px) {
    .email-channels[b-zhb8uo7y77] {
        padding: 0.75rem;
    }
}
/* /Pages/Admin/Email/EmailSuppressionList.razor.rz.scp.css */
.suppression-list[b-ls38bf1b7b] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.suppression-list__header[b-ls38bf1b7b] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__subtitle {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__input {
    flex: 1 1 14rem;
    min-width: 0;
}

.suppression-list__state[b-ls38bf1b7b] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__table-wrap {
    overflow-x: auto;
    padding: 0;
}

.suppression-list[b-ls38bf1b7b]  .suppression-list__table-wrap button {
    min-width: 44px;
    min-height: 44px;
}


@media (max-width: 600px) {
    .suppression-list[b-ls38bf1b7b] {
        padding: 0.75rem;
    }
}
/* /Pages/Admin/Email/EmailThemes.razor.rz.scp.css */
.email-themes[b-pjeg1sf6zv] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.email-themes__header[b-pjeg1sf6zv] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.email-themes[b-pjeg1sf6zv]  .email-themes__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.email-themes[b-pjeg1sf6zv]  .email-themes__subtitle {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.email-themes[b-pjeg1sf6zv]  .email-themes__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
}

.email-themes__state[b-pjeg1sf6zv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.email-themes__grid[b-pjeg1sf6zv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: 1rem;
}

.email-themes[b-pjeg1sf6zv]  .email-themes__card {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem;
}

.email-themes__swatch[b-pjeg1sf6zv] {
    width: 100%;
    height: 40px;
    border-radius: 6px;
}

.email-themes__font[b-pjeg1sf6zv] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.email-themes__actions[b-pjeg1sf6zv] {
    display: flex;
    justify-content: flex-end;
    gap: 0.25rem;
}

.email-themes__actions[b-pjeg1sf6zv]  button {
    min-width: 44px;
    min-height: 44px;
}

@media (max-width: 600px) {
    .email-themes[b-pjeg1sf6zv] {
        padding: 0.75rem;
    }
}
/* /Pages/Admin/MessagingAbuse/MessagingAbuseOverview.razor.rz.scp.css */
.msg-abuse[b-hamsquw0dh] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.msg-abuse__header[b-hamsquw0dh] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 1rem;
}

.msg-abuse__title[b-hamsquw0dh] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.msg-abuse__subtitle[b-hamsquw0dh], .msg-abuse__muted[b-hamsquw0dh] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.msg-abuse__actions[b-hamsquw0dh] {
    display: flex;
    gap: 0.5rem;
}

.msg-abuse__state[b-hamsquw0dh] {
    padding: 2rem;
    text-align: center;
}

.msg-abuse__state--error[b-hamsquw0dh] {
    color: var(--error);
}

[b-hamsquw0dh] .msg-abuse__card {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    overflow-x: auto;
}

.msg-abuse__section-title[b-hamsquw0dh] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text);
}

.msg-abuse__warning[b-hamsquw0dh] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0;
    font-size: 0.875rem;
    color: var(--warning);
}

.msg-abuse__table[b-hamsquw0dh] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.msg-abuse__table th[b-hamsquw0dh], .msg-abuse__table td[b-hamsquw0dh] {
    text-align: left;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid var(--divider);
}

.msg-abuse__row--exhausted td[b-hamsquw0dh] {
    color: var(--error);
    font-weight: 600;
}

.msg-abuse__list[b-hamsquw0dh] {
    margin: 0;
    padding-left: 1.25rem;
    font-size: 0.875rem;
    color: var(--text);
}
/* /Pages/Admin/Security/Operator/SecurityShell.razor.rz.scp.css */
/* F18 security area: one stylesheet for the three entry points and the case page. Scoped to the shell,
   reaching page content through ::deep. Every state colour is paired with a symbol and a word in the
   markup, so nothing here is the only carrier of meaning. */

.sop[b-8pii1y7pry] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    max-width: 100%;
}

.sop-header[b-8pii1y7pry] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.sop-header__title[b-8pii1y7pry] {
    margin: 0;
}

.sop-header__subtitle[b-8pii1y7pry] {
    margin: 0.25rem 0 0;
    opacity: 0.8;
    max-width: 75rem;
}

.sop-header__actions[b-8pii1y7pry] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sop-content[b-8pii1y7pry] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.sop[b-8pii1y7pry]  a:focus-visible,
.sop[b-8pii1y7pry]  button:focus-visible,
.sop[b-8pii1y7pry]  select:focus-visible,
.sop[b-8pii1y7pry]  input:focus-visible,
.sop[b-8pii1y7pry]  textarea:focus-visible,
.sop[b-8pii1y7pry]  summary:focus-visible,
.sop[b-8pii1y7pry]  [tabindex]:focus-visible {
    outline: 3px solid #4c8dff;
    outline-offset: 2px;
}

/* --- cards and grids ------------------------------------------------------------------------------- */

.sop[b-8pii1y7pry]  .sop-card {
    padding: 1rem;
    border: 1px solid rgba(127, 127, 127, 0.3);
    border-radius: 0.5rem;
    min-width: 0;
}

.sop[b-8pii1y7pry]  .sop-card--primary {
    border-width: 2px;
}

.sop[b-8pii1y7pry]  .sop-card--unknown {
    border-style: dashed;
}

.sop[b-8pii1y7pry]  .sop-card__title {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
}

.sop[b-8pii1y7pry]  .sop-card__title + .sop-card__title,
.sop[b-8pii1y7pry]  .sop-lines + .sop-card__title,
.sop[b-8pii1y7pry]  p + .sop-card__title {
    margin-top: 1rem;
}

.sop[b-8pii1y7pry]  .sop-grid-2,
.sop[b-8pii1y7pry]  .sop-grid-3 {
    display: grid;
    gap: 1rem;
}

.sop[b-8pii1y7pry]  .sop-grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr));
}

.sop[b-8pii1y7pry]  .sop-grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.sop[b-8pii1y7pry]  .sop-muted {
    opacity: 0.72;
    font-size: 0.88rem;
    margin: 0.15rem 0 0.4rem;
}

.sop[b-8pii1y7pry]  .sop-state {
    padding: 1rem 0;
}

.sop[b-8pii1y7pry]  .sop-warning {
    margin: 0.5rem 0 0;
    font-weight: 600;
}

.sop[b-8pii1y7pry]  .sop-count {
    font-size: 0.85rem;
    font-weight: 400;
    opacity: 0.75;
    margin-left: 0.35rem;
}

.sop[b-8pii1y7pry]  .sop-plain-list,
.sop[b-8pii1y7pry]  .sop-lines {
    margin: 0;
    padding-left: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.sop[b-8pii1y7pry]  ol.sop-lines {
    list-style: decimal inside;
}

.sop[b-8pii1y7pry]  .sop-line-link {
    margin-left: 0.35rem;
    white-space: nowrap;
}

.sop[b-8pii1y7pry]  .sop-case-line {
    padding: 0.4rem 0;
    border-bottom: 1px solid rgba(127, 127, 127, 0.2);
}

.sop[b-8pii1y7pry]  .sop-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.25rem;
}

.sop[b-8pii1y7pry]  .sop-facts {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.2rem 0.75rem;
    margin: 0.5rem 0;
}

.sop[b-8pii1y7pry]  .sop-facts dt {
    font-weight: 600;
    opacity: 0.8;
}

.sop[b-8pii1y7pry]  .sop-facts dd {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.sop[b-8pii1y7pry]  .sop-display__summary {
    font-weight: 600;
}

/* --- tone: colour + symbol ------------------------------------------------------------------------- */

.sop[b-8pii1y7pry]  .sop-badge {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.1rem 0.55rem;
    border-radius:  0.6rem;
    line-height: 1.35;
    border: 1px solid transparent;
    font-size: 0.82rem;
    font-weight: 600;
    max-width: 100%;
}

.sop[b-8pii1y7pry]  .sop-badge__symbol,
.sop[b-8pii1y7pry]  .sop-four__symbol {
    display: inline-block;
    min-width: 1em;
    text-align: center;
    font-weight: 700;
}

.sop[b-8pii1y7pry]  .sop-badge--ok { background: rgba(46, 160, 67, 0.16); color: color-mix(in srgb, #2ea043 60%, var(--text)); border-color: rgba(46, 160, 67, 0.45); }
.sop[b-8pii1y7pry]  .sop-badge--attention { background: rgba(210, 153, 34, 0.18); color: color-mix(in srgb, #d29922 60%, var(--text)); border-color: rgba(210, 153, 34, 0.5); }
.sop[b-8pii1y7pry]  .sop-badge--bad { background: rgba(218, 54, 51, 0.15); color: color-mix(in srgb, #da3633 60%, var(--text)); border-color: rgba(218, 54, 51, 0.5); }
.sop[b-8pii1y7pry]  .sop-badge--unknown { background: transparent; color: inherit; border: 1px dashed rgba(127, 127, 127, 0.8); }
.sop[b-8pii1y7pry]  .sop-badge--neutral { background: rgba(127, 127, 127, 0.15); color: inherit; }

.sop[b-8pii1y7pry]  .sop-tone--ok > .sop-four__symbol, .sop[b-8pii1y7pry]  .sop-four__symbol.sop-tone--ok { color: color-mix(in srgb, #2ea043 60%, var(--text)); }
.sop[b-8pii1y7pry]  .sop-tone--attention > .sop-four__symbol, .sop[b-8pii1y7pry]  .sop-four__symbol.sop-tone--attention { color: color-mix(in srgb, #d29922 60%, var(--text)); }
.sop[b-8pii1y7pry]  .sop-tone--bad > .sop-four__symbol, .sop[b-8pii1y7pry]  .sop-four__symbol.sop-tone--bad { color: color-mix(in srgb, #da3633 60%, var(--text)); }
.sop[b-8pii1y7pry]  .sop-tone--unknown > .sop-four__symbol, .sop[b-8pii1y7pry]  .sop-four__symbol.sop-tone--unknown { opacity: 0.8; }

/* --- the four fields ------------------------------------------------------------------------------- */

.sop[b-8pii1y7pry]  .sop-four {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 0.75rem;
}

.sop[b-8pii1y7pry]  .sop-four__field {
    padding: 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(127, 127, 127, 0.3);
    border-top-width: 4px;
    min-width: 0;
}

.sop[b-8pii1y7pry]  .sop-four__field--established { border-top-color: color-mix(in srgb, #da3633 60%, var(--text)); }
.sop[b-8pii1y7pry]  .sop-four__field--unclear { border-top-style: dashed; border-top-color: rgba(127, 127, 127, 0.9); }
.sop[b-8pii1y7pry]  .sop-four__field--ineffect { border-top-color: color-mix(in srgb, #2ea043 60%, var(--text)); }
.sop[b-8pii1y7pry]  .sop-four__field--next { border-top-color: #4c8dff; }

.sop[b-8pii1y7pry]  .sop-four__title {
    margin: 0;
    font-size: 1rem;
}

.sop[b-8pii1y7pry]  .sop-four__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.sop[b-8pii1y7pry]  .sop-four__item {
    display: flex;
    gap: 0.35rem;
    overflow-wrap: anywhere;
}

.sop[b-8pii1y7pry]  .sop-refs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-left: 0.25rem;
}

.sop[b-8pii1y7pry]  .sop-ref {
    font-size: 0.78rem;
    padding: 0 0.35rem;
    border: 1px solid rgba(127, 127, 127, 0.45);
    border-radius: 0.3rem;
    white-space: nowrap;
}

/* --- tables ---------------------------------------------------------------------------------------- */

.sop[b-8pii1y7pry]  .sop-table-wrap {
    overflow-x: auto;
    max-width: 100%;
}

.sop[b-8pii1y7pry]  .sop-table {
    width: 100%;
    min-width: 52rem;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.sop[b-8pii1y7pry]  .sop-table th,
.sop[b-8pii1y7pry]  .sop-table td {
    min-width: 6.5rem;
    text-align: left;
    vertical-align: top;
    padding: 0.45rem 0.5rem;
    border-bottom: 1px solid rgba(127, 127, 127, 0.25);
}

/* Free-text columns (what happened, next action, limits) get room to read as sentences instead of one
   word per line; the table scrolls sideways rather than squeezing them. */
.sop[b-8pii1y7pry]  .sop-table td.sop-col--text {
    min-width: 18rem;
    max-width: 34rem;
}

.sop[b-8pii1y7pry]  .sop-table thead th {
    font-weight: 700;
    white-space: nowrap;
}

.sop[b-8pii1y7pry]  .sop-table tbody th {
    font-weight: 600;
}

.sop[b-8pii1y7pry]  .sop-row--closed {
    opacity: 0.65;
}

.sop[b-8pii1y7pry]  .sop-row--simulation td:first-child,
.sop[b-8pii1y7pry]  .sop-row--simulation th:first-child {
    border-left: 3px dashed rgba(127, 127, 127, 0.8);
}

/* --- filters, forms ---------------------------------------------------------------------------------- */

.sop[b-8pii1y7pry]  .sop-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 0.5rem;
    padding: 0;
    border: 0;
}

.sop[b-8pii1y7pry]  .sop-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 0.75rem;
    align-items: end;
}

.sop[b-8pii1y7pry]  .sop-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sop[b-8pii1y7pry]  .sop-field label {
    font-weight: 600;
    font-size: 0.88rem;
}

.sop[b-8pii1y7pry]  .sop-field select,
.sop[b-8pii1y7pry]  .sop-field input,
.sop[b-8pii1y7pry]  .sop-field textarea {
    padding: 0.35rem 0.5rem;
    border-radius: 0.35rem;
    border: 1px solid rgba(127, 127, 127, 0.6);
    background: transparent;
    color: inherit;
    font: inherit;
}

.sop[b-8pii1y7pry]  .sop-field select option {
    color: #000;
}

.sop[b-8pii1y7pry]  .sop-field--wide {
    grid-column: 1 / -1;
}

.sop[b-8pii1y7pry]  .sop-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.sop[b-8pii1y7pry]  .sop-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 2px solid rgba(127, 127, 127, 0.4);
}

.sop[b-8pii1y7pry]  .sop-timeline li {
    position: relative;
    padding: 0.3rem 0 0.3rem 1rem;
}

.sop[b-8pii1y7pry]  .sop-timeline time {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    margin-right: 0.5rem;
}

.sop[b-8pii1y7pry]  .sop-tiers {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    gap: 0.75rem;
}

.sop[b-8pii1y7pry]  .sop-tier {
    padding: 0.75rem;
    border: 1px solid rgba(127, 127, 127, 0.3);
    border-radius: 0.5rem;
}

.sop[b-8pii1y7pry]  .sop-tier__title {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.sop[b-8pii1y7pry]  .sop-alert {
    padding: 0.4rem 0;
    border-bottom: 1px solid rgba(127, 127, 127, 0.2);
}

.sop[b-8pii1y7pry]  .sop-alert__head {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.sop[b-8pii1y7pry]  .sop-alert__deliveries {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0.3rem 0;
}

.sop[b-8pii1y7pry]  .sop-pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-height: 20rem;
    overflow: auto;
    font-size: 0.8rem;
    padding: 0.5rem;
    border: 1px solid rgba(127, 127, 127, 0.3);
    border-radius: 0.35rem;
}

.sop[b-8pii1y7pry]  .sop-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 640px) {
    .sop[b-8pii1y7pry] {
        padding: 0.5rem;
    }

    .sop[b-8pii1y7pry]  .sop-facts {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Admin/Security/SecurityAlerts.razor.rz.scp.css */
.sec-alerts[b-g6netlrr7q] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sec-alerts__header[b-g6netlrr7q] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 1rem;
}

.sec-alerts__title[b-g6netlrr7q] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sec-alerts__subtitle[b-g6netlrr7q], .sec-alerts__muted[b-g6netlrr7q] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sec-alerts__actions[b-g6netlrr7q] {
    display: flex;
    gap: 0.5rem;
}

.sec-alerts__state[b-g6netlrr7q] {
    padding: 2rem;
    text-align: center;
}

.sec-alerts__state--error[b-g6netlrr7q] {
    color: var(--error);
}

.sec-alerts__tiles[b-g6netlrr7q] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
}

[b-g6netlrr7q] .sec-alerts__tile {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.875rem 1rem;
}

[b-g6netlrr7q] .sec-alerts__tile--immediate {
    border-left: 4px solid var(--error);
}

[b-g6netlrr7q] .sec-alerts__tile--review {
    border-left: 4px solid var(--warning);
}

.sec-alerts__tile-value[b-g6netlrr7q] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
}

.sec-alerts__tile-label[b-g6netlrr7q] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

[b-g6netlrr7q] .sec-alerts__card {
    padding: 1rem;
    overflow-x: auto;
}

.sec-alerts__section-title[b-g6netlrr7q] {
    margin: 0 0 0.5rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
}

.sec-alerts__count[b-g6netlrr7q] {
    color: var(--secondary-text);
    font-weight: 400;
}

.sec-alerts__warning[b-g6netlrr7q] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0 0 0.75rem 0;
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
}

.sec-alerts__table[b-g6netlrr7q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sec-alerts__table th[b-g6netlrr7q], .sec-alerts__table td[b-g6netlrr7q] {
    text-align: left;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--background-adornment);
    vertical-align: top;
}

.sec-alerts__row--failed[b-g6netlrr7q] {
    background: var(--error-hover);
}

.sec-alerts__alert-title[b-g6netlrr7q] {
    font-weight: 600;
    color: var(--text);
}

.sec-alerts__row-actions[b-g6netlrr7q] {
    white-space: nowrap;
}

.sec-alerts__state-pill[b-g6netlrr7q] {
    display: inline-block;
    margin: 0 0.25rem 0.25rem 0;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    background: var(--background-adornment);
    color: var(--secondary-text);
}

.sec-alerts__state-pill--failed[b-g6netlrr7q] { background: var(--error-hover); color: color-mix(in srgb, var(--error) 65%, var(--text)); }
.sec-alerts__state-pill--handed[b-g6netlrr7q] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning) 65%, var(--text)); }
.sec-alerts__state-pill--ack[b-g6netlrr7q] { background: var(--success-hover); color: color-mix(in srgb, var(--success) 65%, var(--text)); }

.sec-alerts__detail-header[b-g6netlrr7q] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
/* /Pages/Admin/Security/SecurityCanaries.razor.rz.scp.css */
.canary[b-6ix2zmt1jz] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
}

.canary__header[b-6ix2zmt1jz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.canary__title[b-6ix2zmt1jz] {
    margin: 0;
}

.canary__subtitle[b-6ix2zmt1jz],
.canary__hint[b-6ix2zmt1jz] {
    color: var(--dws-text-secondary, #6c757d);
    margin: 4px 0 8px 0;
}

[b-6ix2zmt1jz] .canary__section {
    padding: 16px;
}

[b-6ix2zmt1jz] .canary__issued {
    border-left: 4px solid #b8860b;
}

.canary__section-title[b-6ix2zmt1jz] {
    margin: 0 0 8px 0;
}

.canary__table-wrap[b-6ix2zmt1jz] {
    overflow-x: auto;
}

.canary__table[b-6ix2zmt1jz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.canary__table th[b-6ix2zmt1jz],
.canary__table td[b-6ix2zmt1jz] {
    text-align: left;
    vertical-align: top;
    padding: 6px 8px;
    border-bottom: 1px solid var(--dws-border, #dee2e6);
}

.canary__mono[b-6ix2zmt1jz] {
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.8rem;
    word-break: break-all;
}

.canary__muted[b-6ix2zmt1jz] {
    color: var(--dws-text-secondary, #6c757d);
    font-size: 0.8rem;
}

.canary__ok[b-6ix2zmt1jz] {
    color: color-mix(in srgb, #198754 70%, var(--text));
    font-weight: 600;
}

.canary__warn[b-6ix2zmt1jz] {
    color: color-mix(in srgb, #b8860b 70%, var(--text));
    font-weight: 600;
}

.canary__bad[b-6ix2zmt1jz] {
    color: color-mix(in srgb, #dc3545 70%, var(--text));
    font-weight: 600;
}

.canary__row-bad td[b-6ix2zmt1jz] {
    background: rgba(220, 53, 69, 0.08);
}

.canary__row-muted td[b-6ix2zmt1jz] {
    opacity: 0.7;
}

.canary__list[b-6ix2zmt1jz] {
    margin: 0;
    padding-left: 18px;
}

.canary__form[b-6ix2zmt1jz] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 12px;
}
/* /Pages/Admin/Security/SecurityFindings.razor.rz.scp.css */
.sec-findings__table[b-gg1opydozm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
    color: var(--text);
}

.sec-findings__table th[b-gg1opydozm],
.sec-findings__table td[b-gg1opydozm] {
    text-align: left;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--border, rgba(127, 127, 127, 0.25));
}

.sec-findings__table th[b-gg1opydozm] {
    color: var(--secondary-text);
    font-weight: 600;
}

.sec-findings__head[b-gg1opydozm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}

.sec-findings__detector[b-gg1opydozm] {
    font-size: 0.8rem;
}

.sec-findings__muted[b-gg1opydozm] {
    color: var(--secondary-text);
    font-size: 0.8rem;
}

.sec-findings__case[b-gg1opydozm] {
    margin-left: auto;
    font-weight: 600;
}

.sec-findings__summary[b-gg1opydozm] {
    margin: 0.25rem 0 0.6rem;
    color: var(--text);
    font-weight: 500;
}

.sec-findings__fields[b-gg1opydozm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.5rem 1rem;
    font-size: 0.85rem;
    color: var(--text);
    margin-bottom: 0.5rem;
}

.sec-findings__fields > div[b-gg1opydozm] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.sec-findings__label[b-gg1opydozm] {
    color: var(--secondary-text);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sec-findings__list[b-gg1opydozm] {
    font-size: 0.8rem;
    color: var(--text);
    word-break: break-all;
}
/* /Pages/Admin/Security/SecurityInventory.razor.rz.scp.css */
.secinv[b-o2djmzbcdo] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
}

.secinv__header[b-o2djmzbcdo] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.secinv__title[b-o2djmzbcdo] {
    margin: 0;
}

.secinv__subtitle[b-o2djmzbcdo],
.secinv__hint[b-o2djmzbcdo] {
    color: var(--dws-text-secondary, #6c757d);
    margin: 4px 0 8px 0;
}

[b-o2djmzbcdo] .secinv__section {
    padding: 16px;
}

.secinv__section-title[b-o2djmzbcdo] {
    margin: 0 0 8px 0;
}

.secinv__sub-title[b-o2djmzbcdo] {
    margin: 16px 0 6px 0;
}

.secinv__table-wrap[b-o2djmzbcdo] {
    overflow-x: auto;
}

.secinv__table[b-o2djmzbcdo] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.secinv__table th[b-o2djmzbcdo],
.secinv__table td[b-o2djmzbcdo] {
    text-align: left;
    vertical-align: top;
    padding: 6px 8px;
    border-bottom: 1px solid var(--dws-border, #dee2e6);
}

.secinv__mono[b-o2djmzbcdo] {
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.8rem;
    word-break: break-all;
}

.secinv__muted[b-o2djmzbcdo] {
    color: var(--dws-text-secondary, #6c757d);
    font-size: 0.8rem;
}

.secinv__ok[b-o2djmzbcdo] {
    color: color-mix(in srgb, #198754 70%, var(--text));
    font-weight: 600;
}

.secinv__warn[b-o2djmzbcdo] {
    color: color-mix(in srgb, #b8860b 70%, var(--text));
    font-weight: 600;
}

.secinv__bad[b-o2djmzbcdo] {
    color: color-mix(in srgb, #dc3545 70%, var(--text));
    font-weight: 600;
}

.secinv__row-bad td[b-o2djmzbcdo] {
    background: rgba(220, 53, 69, 0.08);
}

.secinv__list[b-o2djmzbcdo] {
    margin: 0;
    padding-left: 18px;
}

.secinv__form[b-o2djmzbcdo] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-top: 12px;
}
/* /Pages/Admin/Security/SecurityJournal.razor.rz.scp.css */
.sec-journal__table[b-2kj50vabaw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    margin-bottom: 1rem;
    color: var(--text);
}

.sec-journal__table th[b-2kj50vabaw],
.sec-journal__table td[b-2kj50vabaw] {
    text-align: left;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--border, rgba(127, 127, 127, 0.25));
}

.sec-journal__table th[b-2kj50vabaw] {
    color: var(--secondary-text);
    font-weight: 600;
}

h5[b-2kj50vabaw] {
    margin: 0.75rem 0 0.4rem;
    font-size: 0.95rem;
    color: var(--text);
}
/* /Pages/Admin/Security/SecurityPolicy.razor.rz.scp.css */
.secpol[b-4mqte9pv46] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
}

.secpol__header[b-4mqte9pv46] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}

.secpol__title[b-4mqte9pv46] {
    margin: 0;
}

.secpol__subtitle[b-4mqte9pv46],
.secpol__prose[b-4mqte9pv46] {
    margin: 0.25rem 0 0.75rem 0;
    opacity: 0.85;
    max-width: 80ch;
}

[b-4mqte9pv46] .secpol__card {
    padding: 1rem;
}

.secpol__section-title[b-4mqte9pv46] {
    margin: 0 0 0.5rem 0;
}

.secpol__subsection[b-4mqte9pv46] {
    margin: 1rem 0 0.25rem 0;
}

.secpol__status[b-4mqte9pv46] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.secpol__status-item[b-4mqte9pv46] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.secpol__label[b-4mqte9pv46] {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.7;
}

.secpol__value[b-4mqte9pv46] {
    font-size: 1.1rem;
    font-weight: 600;
}

.secpol__value--ok[b-4mqte9pv46] {
    color: var(--dws-success, #2e7d32);
}

.secpol__value--bad[b-4mqte9pv46] {
    color: var(--dws-error, #c62828);
    font-weight: 600;
}

.secpol__hint[b-4mqte9pv46] {
    font-size: 0.8rem;
    opacity: 0.7;
}

.secpol__row[b-4mqte9pv46] {
    display: flex;
    gap: 0.75rem;
    align-items: flex-end;
    flex-wrap: wrap;
    margin: 0.5rem 0;
}

.secpol__form[b-4mqte9pv46] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.5rem 0.75rem;
}

.secpol__table[b-4mqte9pv46] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

.secpol__table th[b-4mqte9pv46],
.secpol__table td[b-4mqte9pv46] {
    text-align: left;
    vertical-align: top;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid rgba(127, 127, 127, 0.25);
}

.secpol__table code[b-4mqte9pv46] {
    word-break: break-all;
}

.secpol__changed[b-4mqte9pv46] {
    background: rgba(255, 193, 7, 0.12);
}

.secpol__inactive[b-4mqte9pv46] {
    opacity: 0.55;
}

.secpol__actions[b-4mqte9pv46] {
    white-space: nowrap;
}

.secpol__preview[b-4mqte9pv46] {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px dashed rgba(127, 127, 127, 0.4);
}
/* /Pages/Admin/Security/SecurityPosture.razor.rz.scp.css */
.posture[b-uyhzm9sj8g] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
}

.posture__header[b-uyhzm9sj8g] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.posture__title[b-uyhzm9sj8g] {
    margin: 0;
}

.posture__subtitle[b-uyhzm9sj8g],
.posture__question[b-uyhzm9sj8g] {
    margin: 0.25rem 0 0.5rem;
    opacity: 0.8;
    max-width: 70rem;
}

.posture__actions[b-uyhzm9sj8g] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.posture__displays[b-uyhzm9sj8g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: 1rem;
}

[b-uyhzm9sj8g] .posture__card {
    padding: 1rem;
}

.posture__card-head[b-uyhzm9sj8g] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
}

.posture__card-title[b-uyhzm9sj8g] {
    margin: 0 0 0.25rem;
}

.posture__summary[b-uyhzm9sj8g] {
    font-weight: 600;
    margin: 0.25rem 0 0.75rem;
}

.posture__facts[b-uyhzm9sj8g] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.25rem 0.75rem;
    margin: 0;
}

.posture__facts dt[b-uyhzm9sj8g] {
    font-weight: 600;
    opacity: 0.75;
}

.posture__facts dd[b-uyhzm9sj8g] {
    margin: 0;
}

.posture__details[b-uyhzm9sj8g] {
    margin-top: 0.75rem;
}

.posture__items[b-uyhzm9sj8g],
.posture__limits[b-uyhzm9sj8g] {
    margin: 0.5rem 0 0;
    padding-left: 1rem;
}

.posture__items li[b-uyhzm9sj8g] {
    margin-bottom: 0.35rem;
}

.posture__table[b-uyhzm9sj8g] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.posture__table th[b-uyhzm9sj8g],
.posture__table td[b-uyhzm9sj8g] {
    text-align: left;
    vertical-align: top;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid rgba(127, 127, 127, 0.25);
}

.posture__clickable[b-uyhzm9sj8g] {
    cursor: pointer;
}

.posture__clickable:hover[b-uyhzm9sj8g] {
    background: rgba(127, 127, 127, 0.08);
}

.posture__expanded td[b-uyhzm9sj8g] {
    background: rgba(127, 127, 127, 0.05);
}

.posture__muted[b-uyhzm9sj8g] {
    opacity: 0.65;
    font-size: 0.85em;
}

.posture__badge[b-uyhzm9sj8g] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.posture__badge--ok[b-uyhzm9sj8g] {
    background: rgba(46, 160, 67, 0.18);
    color: color-mix(in srgb, #2ea043 70%, var(--text));
}

.posture__badge--attention[b-uyhzm9sj8g] {
    background: rgba(210, 153, 34, 0.2);
    color: color-mix(in srgb, #b7791f 70%, var(--text));
}

.posture__badge--bad[b-uyhzm9sj8g] {
    background: rgba(218, 54, 51, 0.18);
    color: color-mix(in srgb, #da3633 70%, var(--text));
}

.posture__badge--unknown[b-uyhzm9sj8g] {
    background: rgba(127, 127, 127, 0.2);
    color: inherit;
}
/* /Pages/Admin/Sms/EditSmsDeviceDialog.razor.rz.scp.css */
.edit-sms-device-dialog__title[b-z01bawlrrh] {
    margin: 0 0 1rem 0;
}

.edit-sms-device-dialog__form[b-z01bawlrrh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.edit-sms-device-dialog__field[b-z01bawlrrh] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.edit-sms-device-dialog__field--wide[b-z01bawlrrh] {
    grid-column: 1 / -1;
}

.edit-sms-device-dialog__label[b-z01bawlrrh] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.edit-sms-device-dialog__required[b-z01bawlrrh] {
    color: var(--error);
}

.edit-sms-device-dialog__input[b-z01bawlrrh] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.edit-sms-device-dialog__general-error[b-z01bawlrrh] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Admin/Sms/ProposeConfigChangeDialog.razor.rz.scp.css */
.propose-config-dialog__title[b-4jb9hqaxgg] {
    margin: 0 0 0.35rem 0;
}

.propose-config-dialog__intro[b-4jb9hqaxgg] {
    margin: 0 0 1rem 0;
    font-size: 0.85rem;
    color: var(--secondary-text);
    max-width: 520px;
}

.propose-config-dialog__section[b-4jb9hqaxgg] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.1rem;
    min-width: 480px;
}

.propose-config-dialog__section h5[b-4jb9hqaxgg] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text);
}

.propose-config-dialog__grid[b-4jb9hqaxgg] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
}

.propose-config-dialog__field[b-4jb9hqaxgg] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.propose-config-dialog__hint[b-4jb9hqaxgg] {
    font-size: 0.7rem;
    color: var(--secondary-text);
}

.propose-config-dialog__warning[b-4jb9hqaxgg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--background-adornment);
    border-radius: 6px;
    font-size: 0.78rem;
    color: var(--text);
}

.propose-config-dialog__blacklist-row[b-4jb9hqaxgg] {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.5fr auto;
    gap: 0.5rem;
    align-items: end;
}

.propose-config-dialog__blacklist-row--remove[b-4jb9hqaxgg] {
    grid-template-columns: 1.5fr 1fr auto;
}

.propose-config-dialog__error[b-4jb9hqaxgg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Admin/Sms/RegisterSmsDeviceDialog.razor.rz.scp.css */
.register-sms-device-dialog__title[b-6sa5cfsmkl] {
    margin: 0 0 1rem 0;
}

.register-sms-device-dialog__form[b-6sa5cfsmkl], .register-sms-device-dialog__result[b-6sa5cfsmkl] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    min-width: 420px;
}

.register-sms-device-dialog__field[b-6sa5cfsmkl] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.register-sms-device-dialog__label[b-6sa5cfsmkl] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.register-sms-device-dialog__required[b-6sa5cfsmkl] {
    color: var(--error);
}

.register-sms-device-dialog__input[b-6sa5cfsmkl] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.register-sms-device-dialog__secret[b-6sa5cfsmkl] {
    font-family: monospace;
    flex: 1;
}

.register-sms-device-dialog__secret-row[b-6sa5cfsmkl] {
    display: flex;
    gap: 0.5rem;
}

.register-sms-device-dialog__general-error[b-6sa5cfsmkl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}

.register-sms-device-dialog__warning[b-6sa5cfsmkl] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    background: var(--background-adornment);
    border: 1px solid var(--warning);
    border-radius: 6px;
    padding: 0.75rem;
    font-size: 0.8rem;
    color: var(--text);
}

.register-sms-device-dialog__qr-wrap[b-6sa5cfsmkl] {
    display: flex;
    justify-content: center;
    padding: 0.5rem;
    /* Always white regardless of theme - a QR code needs real light-on-dark contrast to scan, not
       the app's surface color, so this is the one place --white is correct instead of --surface. */
    background: var(--white);
    border-radius: 8px;
}

.register-sms-device-dialog__qr[b-6sa5cfsmkl] {
    display: flex;
}

.register-sms-device-dialog__qr canvas[b-6sa5cfsmkl] {
    image-rendering: pixelated;
}
/* /Pages/Admin/Sms/SendAdHocSmsDialog.razor.rz.scp.css */
/* This dialog previously had no scoped stylesheet at all - its markup referenced
   "device-add-dialog__*" classes that belong to a different component and, under Blazor CSS
   isolation, never applied here. The dialog rendered with no spacing between its two inputs and no
   sizing, unlike every sibling dialog in this folder. This file brings it in line with
   EditSmsDeviceDialog.razor.css / RegisterSmsDeviceDialog.razor.css. */

.send-adhoc-sms-dialog__title[b-i7n06ch1e7] {
    margin: 0 0 1rem 0;
}

.send-adhoc-sms-dialog__form[b-i7n06ch1e7] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    min-width: 420px;
}

.send-adhoc-sms-dialog__field[b-i7n06ch1e7] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.send-adhoc-sms-dialog__field--wide[b-i7n06ch1e7] {
    width: 100%;
}
/* /Pages/Admin/Sms/SmsDeviceDetail.razor.rz.scp.css */
.sms-device-detail[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sms-device-detail__header[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-device-detail__title[b-js2a281ren] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sms-device-detail__subtitle[b-js2a281ren] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sms-device-detail__info[b-js2a281ren] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0.875rem 1rem;
    font-size: 0.85rem;
}

.sms-device-detail__toolbar[b-js2a281ren] {
    display: flex;
    justify-content: space-between;
    padding: 0.875rem 1rem;
}

.sms-device-detail__table-wrap[b-js2a281ren] {
    overflow-x: auto;
    padding: 0;
}

.sms-device-detail__table-wrap[b-js2a281ren]  button {
    min-width: 44px;
    min-height: 44px;
}

/* Loading / empty states across the four tabs - was a bare DwsLabel with no visual weight. */
.sms-device-detail__state[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.sms-device-detail__status[b-js2a281ren] {
    font-size: 0.7rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
}

/* Tinted background + color-mix-darkened text instead of white-on-solid: var(--success)/--warning/
   --error against white text falls well under the 4.5:1 WCAG AA minimum for text this size (see
   SmsDevices.razor.css for the measured ratios). This keeps every color anchored to its theme token. */
.sms-device-detail__status--pending[b-js2a281ren], .sms-device-detail__status--sending[b-js2a281ren] { background: var(--background-adornment); color: var(--secondary-text); }
.sms-device-detail__status--delivered[b-js2a281ren] { background: var(--success-hover); color: color-mix(in srgb, var(--success) 65%, var(--text)); }
.sms-device-detail__status--failed[b-js2a281ren] { background: var(--error-hover); color: color-mix(in srgb, var(--error) 65%, var(--text)); }
.sms-device-detail__status--suppressed[b-js2a281ren], .sms-device-detail__status--expired[b-js2a281ren] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning) 65%, var(--text)); }

.sms-device-detail__detail[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
}

.sms-device-detail__detail-header[b-js2a281ren] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sms-device-detail__last-error[b-js2a281ren] {
    color: var(--error);
}

/* ---- Header badges ---- */

.sms-device-detail__badge[b-js2a281ren] {
    font-size: 0.7rem;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    font-weight: 600;
}

.sms-device-detail__badge--online[b-js2a281ren], .sms-device-detail__badge--applied[b-js2a281ren] { background: var(--success-hover); color: color-mix(in srgb, var(--success) 65%, var(--text)); border: 1px solid var(--success); }
.sms-device-detail__badge--stale[b-js2a281ren], .sms-device-detail__badge--pending[b-js2a281ren] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning) 65%, var(--text)); border: 1px solid var(--warning); }
.sms-device-detail__badge--offline[b-js2a281ren], .sms-device-detail__badge--rejected[b-js2a281ren], .sms-device-detail__badge--cancelled[b-js2a281ren] { background: var(--background-adornment); color: var(--secondary-text); }
.sms-device-detail__badge--revoked[b-js2a281ren], .sms-device-detail__badge--expired[b-js2a281ren] { background: var(--error-hover); color: color-mix(in srgb, var(--error) 65%, var(--text)); border: 1px solid var(--error); }
.sms-device-detail__badge--neverpaired[b-js2a281ren], .sms-device-detail__badge--superseded[b-js2a281ren] { background: var(--background-adornment); color: var(--secondary-text); }

.sms-device-detail__live[b-js2a281ren] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    color: var(--secondary-text);
}

.sms-device-detail__live--on svg[b-js2a281ren] { color: var(--success); }
.sms-device-detail__live--off svg[b-js2a281ren] { color: var(--secondary-text); }

/* ---- Tabs ---- */

.sms-device-detail__tabs[b-js2a281ren] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

/* ---- Telemetry cards ---- */

.sms-device-detail__cards[b-js2a281ren] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.sms-device-detail__card[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1rem;
}

.sms-device-detail__card h4[b-js2a281ren] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.3rem;
    font-size: 0.9rem;
    color: var(--text);
}

.sms-device-detail__card-row[b-js2a281ren] {
    display: flex;
    justify-content: space-between;
    font-size: 0.8rem;
    color: var(--secondary-text);
    gap: 0.5rem;
}

.sms-device-detail__card-row strong[b-js2a281ren] {
    color: var(--text);
    text-align: right;
}

.sms-device-detail__flag[b-js2a281ren] {
    font-size: 0.72rem;
    padding: 0.3rem 0.5rem;
    border-radius: 6px;
    margin-top: 0.2rem;
}

.sms-device-detail__flag--warn[b-js2a281ren] { background: var(--warning); color: #000; }
/* White text on var(--error) is only ~3.7:1, under the 4.5:1 minimum for text this size; black text
   on the same background measures ~5.7:1, so black (matching the --flag--warn treatment above) is
   the accessible choice here, not white. */
.sms-device-detail__flag--error[b-js2a281ren] { background: var(--error); color: #000; }

.sms-device-detail__meter[b-js2a281ren] {
    display: block;
    height: 6px;
    border-radius: 3px;
    background: var(--background-adornment);
    overflow: hidden;
}

.sms-device-detail__meter-fill[b-js2a281ren] {
    display: block;
    height: 100%;
    border-radius: 3px;
}

.sms-device-detail__meter-fill--ok[b-js2a281ren] { background: var(--success); }
.sms-device-detail__meter-fill--warn[b-js2a281ren] { background: var(--warning); }
.sms-device-detail__meter-fill--over[b-js2a281ren] { background: var(--error); }

/* ---- Section headers / shared hints ---- */

.sms-device-detail__section-title[b-js2a281ren] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.25rem 0;
    font-size: 1rem;
    color: var(--text);
}

.sms-device-detail__hint[b-js2a281ren] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

/* ---- Effective caps ---- */

.sms-device-detail__caps[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1.25rem;
}

.sms-device-detail__caps-grid[b-js2a281ren] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
    margin-top: 0.4rem;
}

.sms-device-detail__caps-grid > div[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.sms-device-detail__caps-grid span[b-js2a281ren] {
    font-size: 0.72rem;
    color: var(--secondary-text);
}

.sms-device-detail__caps-grid strong[b-js2a281ren] {
    font-size: 0.9rem;
    color: var(--text);
}

/* ---- Config tab ---- */

.sms-device-detail__config[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.25rem;
}

.sms-device-detail__config-header[b-js2a281ren] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.sms-device-detail__blacklist[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    font-size: 0.82rem;
}

.sms-device-detail__blacklist-row[b-js2a281ren] {
    display: grid;
    grid-template-columns: 1.5fr 0.8fr 2fr;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--background-adornment);
}

.sms-device-detail__proposals[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
}

.sms-device-detail__proposal-row[b-js2a281ren] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--background-adornment);
    font-size: 0.82rem;
    flex-wrap: wrap;
}

.sms-device-detail__proposal-note[b-js2a281ren] {
    flex: 1;
    color: var(--text);
}

.sms-device-detail__proposal-meta[b-js2a281ren] {
    font-size: 0.72rem;
    color: var(--secondary-text);
}

/* ---- Logs tab ---- */

.sms-device-detail__log-toolbar[b-js2a281ren] {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    flex-wrap: wrap;
}

.sms-device-detail__log-list[b-js2a281ren] {
    display: flex;
    flex-direction: column;
    font-family: var(--font-mono, monospace);
    font-size: 0.78rem;
}

.sms-device-detail__log-row[b-js2a281ren] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--background-adornment);
    flex-wrap: wrap;
}

.sms-device-detail__log-time[b-js2a281ren] {
    color: var(--secondary-text);
    white-space: nowrap;
}

.sms-device-detail__log-level[b-js2a281ren] {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.68rem;
    padding: 0.05rem 0.4rem;
    border-radius: 4px;
    background: var(--background-adornment);
}

.sms-device-detail__log-row--error .sms-device-detail__log-level[b-js2a281ren],
.sms-device-detail__log-row--failed .sms-device-detail__log-level[b-js2a281ren] { background: var(--error); color: #000; }

.sms-device-detail__log-row--warn .sms-device-detail__log-level[b-js2a281ren],
.sms-device-detail__log-row--blocked .sms-device-detail__log-level[b-js2a281ren] { background: var(--warning); color: #000; }

.sms-device-detail__log-category[b-js2a281ren] {
    color: var(--secondary-text);
}

.sms-device-detail__log-phone[b-js2a281ren] {
    color: var(--text);
    font-weight: 500;
}

.sms-device-detail__log-message[b-js2a281ren] {
    color: var(--text);
    word-break: break-word;
}
/* /Pages/Admin/Sms/SmsDevices.razor.rz.scp.css */
.sms-devices[b-dc18miyvwq] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sms-devices__header[b-dc18miyvwq] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-devices__title[b-dc18miyvwq] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sms-devices__subtitle[b-dc18miyvwq] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sms-devices__toolbar[b-dc18miyvwq] {
    display: flex;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
}

/* Loading / empty state - was a bare DwsLabel with no visual weight. Gives it the same centered,
   icon-led treatment as the rest of the admin section's blank states. */
.sms-devices__state[b-dc18miyvwq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.sms-devices__table-wrap[b-dc18miyvwq] {
    overflow-x: auto;
    padding: 0;
}

.sms-devices__table[b-dc18miyvwq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sms-devices__table th[b-dc18miyvwq], .sms-devices__table td[b-dc18miyvwq] {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--background-adornment);
    white-space: nowrap;
}

.sms-devices__table th[b-dc18miyvwq] {
    color: var(--secondary-text);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.sms-devices__row--revoked[b-dc18miyvwq] {
    opacity: 0.6;
}

/* Status badges. White text on the raw --success/--warning/--error tokens measures well under the
   4.5:1 WCAG AA minimum for small text (success ~2.8:1, warning ~2.4:1, error ~3.7:1 against white).
   Using a tinted background with a color-mix-darkened, same-hue text color keeps every badge anchored
   to its theme token while actually being readable - the border adds a second, non-color cue so the
   state doesn't depend on color alone either. */
.sms-devices__badge[b-dc18miyvwq] {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    white-space: nowrap;
    border: 1px solid transparent;
}

.sms-devices__badge--online[b-dc18miyvwq] {
    background: var(--success-hover);
    color: color-mix(in srgb, var(--success) 65%, var(--text));
    border-color: var(--success);
}
/* Stale = past the dispatch grace window but heard from in the last few minutes. Amber rather than
   grey so it reads as "probably coming back" instead of "this phone is off" - the distinction the
   server's SmsDeviceConnectionState draws. */
.sms-devices__badge--stale[b-dc18miyvwq] {
    background: var(--warning-hover);
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
    border-color: var(--warning);
}
.sms-devices__badge--offline[b-dc18miyvwq] { background: var(--background-adornment); color: var(--secondary-text); }
.sms-devices__badge--neverpaired[b-dc18miyvwq] { background: var(--background-adornment); color: var(--secondary-text); border: 1px dashed var(--secondary-text); }
.sms-devices__badge--revoked[b-dc18miyvwq] {
    background: var(--error-hover);
    color: color-mix(in srgb, var(--error) 65%, var(--text));
    border-color: var(--error);
}

.sms-devices__actions[b-dc18miyvwq] {
    display: flex;
    gap: 0.25rem;
    justify-content: center;
}

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/revoke actions in this row get a floor without changing the visible icon size. */
.sms-devices__actions[b-dc18miyvwq]  button {
    min-width: 44px;
    min-height: 44px;
}
/* /Pages/Admin/Sms/SmsHub.razor.rz.scp.css */
.sms-hub[b-wybochkwgs] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sms-hub__header[b-wybochkwgs] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-hub__title[b-wybochkwgs] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sms-hub__subtitle[b-wybochkwgs] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sms-hub__grid[b-wybochkwgs] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.sms-hub__card[b-wybochkwgs] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
    background: var(--background-adornment);
    border: 1px solid var(--background-adornment);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.1s;
}

.sms-hub__card:hover[b-wybochkwgs] {
    border-color: var(--primary);
    transform: translateY(-2px);
}

/* Cards are keyboard-operable divs (role="button", tabindex="0" - see SmsHub.razor.cs
   OnCardKeyDown), so they need a visible focus ring of their own; a bare div has none by default. */
.sms-hub__card:focus-visible[b-wybochkwgs] {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-color: var(--primary);
}

.sms-hub__card h3[b-wybochkwgs] {
    margin: 0;
    font-size: 1.05rem;
    color: var(--text);
}

.sms-hub__card p[b-wybochkwgs] {
    margin: 0;
    font-size: 0.825rem;
    color: var(--secondary-text);
}

.sms-hub__card-stat[b-wybochkwgs] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--primary);
    margin-top: auto;
    padding-top: 0.3rem;
}

/* At-a-glance strip - the numbers an operator opens this page to check. */
.sms-hub__glance[b-wybochkwgs] {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: 0.875rem 1.25rem;
    flex-wrap: wrap;
}

.sms-hub__glance-item[b-wybochkwgs] {
    display: flex;
    flex-direction: column;
}

.sms-hub__glance-label[b-wybochkwgs] {
    font-size: 0.7rem;
    color: var(--secondary-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sms-hub__glance-value[b-wybochkwgs] {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text);
}

/* var(--warning) alone is ~2.4:1 against a white/light surface - well under the 4.5:1 text minimum.
   Darkening it toward black with color-mix (rather than introducing a new color) keeps this anchored
   to the theme token while actually being readable. */
.sms-hub__glance-value--warn[b-wybochkwgs] { color: color-mix(in srgb, var(--warning) 65%, var(--text)); }
.sms-hub__glance-value--ok[b-wybochkwgs] { color: var(--text); }
/* /Pages/Admin/Sms/SmsOutgoingHistory.razor.rz.scp.css */
.sms-history[b-33037x5ebo] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sms-history__header[b-33037x5ebo] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-history__title[b-33037x5ebo] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sms-history__subtitle[b-33037x5ebo] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sms-history__toolbar[b-33037x5ebo] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
}

.sms-history__filters[b-33037x5ebo] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.sms-history__filter[b-33037x5ebo] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-history__filter label[b-33037x5ebo] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.sms-history__select[b-33037x5ebo] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
    min-width: 160px;
}

.sms-history__state[b-33037x5ebo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.sms-history__table-wrap[b-33037x5ebo] {
    overflow-x: auto;
    padding: 0;
}

.sms-history__table-wrap[b-33037x5ebo]  button {
    min-width: 44px;
    min-height: 44px;
}

.sms-history__status[b-33037x5ebo] {
    font-size: 0.7rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
}

/* Tinted background + color-mix-darkened text instead of white-on-solid: white text on the raw
   --success/--warning/--error tokens measures under the 4.5:1 WCAG AA minimum for text this size. */
.sms-history__status--pending[b-33037x5ebo], .sms-history__status--sending[b-33037x5ebo] { background: var(--background-adornment); color: var(--secondary-text); }
.sms-history__status--delivered[b-33037x5ebo] { background: var(--success-hover); color: color-mix(in srgb, var(--success) 65%, var(--text)); }
.sms-history__status--failed[b-33037x5ebo] { background: var(--error-hover); color: color-mix(in srgb, var(--error) 65%, var(--text)); }
.sms-history__status--suppressed[b-33037x5ebo], .sms-history__status--expired[b-33037x5ebo] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning) 65%, var(--text)); }

.sms-history__detail[b-33037x5ebo] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
}

.sms-history__detail-header[b-33037x5ebo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sms-history__last-error[b-33037x5ebo] {
    color: var(--error);
}
/* /Pages/Admin/Sms/SmsSettings.razor.rz.scp.css */
.sms-settings[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

.sms-settings__header[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-settings__title[b-524z01z51z] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.sms-settings__subtitle[b-524z01z51z] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

.sms-settings__state[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    text-align: center;
}

.sms-settings__form[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.25rem;
}

.sms-settings__grid[b-524z01z51z] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.sms-settings__field[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sms-settings__field label[b-524z01z51z] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.sms-settings__hint[b-524z01z51z] {
    font-size: 0.7rem;
    color: var(--secondary-text);
}

.sms-settings__general-error[b-524z01z51z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}

.sms-settings__footer[b-524z01z51z] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sms-settings__updated[b-524z01z51z] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

/* Live usage strip - the question an operator has on opening the page. */
.sms-settings__live[b-524z01z51z] {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 0.75rem 1.25rem;
    flex-wrap: wrap;
}

.sms-settings__live-item[b-524z01z51z] {
    display: flex;
    flex-direction: column;
}

.sms-settings__live-label[b-524z01z51z] {
    font-size: 0.7rem;
    color: var(--secondary-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sms-settings__live-value[b-524z01z51z] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text);
}

.sms-settings__explainer[b-524z01z51z] {
    padding: 0.5rem 1rem;
}

.sms-settings__explainer-body[b-524z01z51z] {
    padding: 0.5rem 0.25rem 1rem;
    font-size: 0.875rem;
    color: var(--text);
}

.sms-settings__layers[b-524z01z51z] {
    margin: 0.5rem 0 0.75rem 1.1rem;
    padding: 0;
}

.sms-settings__layers li[b-524z01z51z] {
    margin-bottom: 0.35rem;
}

.sms-settings__glossary-title[b-524z01z51z] {
    margin: 1rem 0 0.5rem;
    font-size: 0.95rem;
}

.sms-settings__glossary dt[b-524z01z51z] {
    font-weight: 600;
    margin-top: 0.6rem;
}

.sms-settings__glossary dd[b-524z01z51z] {
    margin: 0.15rem 0 0 0;
    color: var(--secondary-text);
}

.sms-settings__section-title[b-524z01z51z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1.25rem 0 0.25rem;
    font-size: 1rem;
    color: var(--text);
}

.sms-settings__section-title:first-child[b-524z01z51z] {
    margin-top: 0;
}

.sms-settings__note[b-524z01z51z] {
    font-size: 0.8rem;
    color: var(--secondary-text);
    margin: 0.5rem 0 0;
}

.sms-settings__preview[b-524z01z51z] {
    font-size: 0.72rem;
    color: var(--secondary-text);
    font-style: italic;
}

/* Usage meter. Hand-rolled rather than DwsProgressBar: every use of that component in this app is
   indeterminate-only, so its determinate binding is unproven here and a div is certain to work. */
.sms-settings__meter[b-524z01z51z] {
    display: block;
    height: 6px;
    border-radius: 3px;
    background: var(--background-adornment);
    overflow: hidden;
    margin-top: 0.3rem;
}

.sms-settings__meter-fill[b-524z01z51z] {
    display: block;
    height: 100%;
    border-radius: 3px;
}

.sms-settings__meter-fill--ok[b-524z01z51z] { background: var(--success); }
/* Amber at the same 80% the server already warns at, so the bar and the alert agree. */
.sms-settings__meter-fill--warn[b-524z01z51z] { background: var(--warning); }
.sms-settings__meter-fill--over[b-524z01z51z] { background: var(--error); }

.sms-settings__usage-note[b-524z01z51z] {
    display: block;
    font-size: 0.7rem;
    color: var(--secondary-text);
    margin-top: 0.2rem;
}

.sms-settings__footer-info[b-524z01z51z] {
    display: flex;
    flex-direction: column;
}

.sms-settings__structural[b-524z01z51z],
.sms-settings__devices[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
}

.sms-settings__structural-grid[b-524z01z51z] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.85rem;
    margin-top: 0.5rem;
}

.sms-settings__structural-grid > div[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.sms-settings__structural-grid strong[b-524z01z51z] {
    font-size: 1rem;
    color: var(--text);
}

.sms-settings__structural-grid span[b-524z01z51z] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.sms-settings__device-table[b-524z01z51z] {
    display: flex;
    flex-direction: column;
    margin-top: 0.5rem;
    font-size: 0.82rem;
}

.sms-settings__device-row[b-524z01z51z] {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr 1fr 1.2fr 1fr 1fr;
    gap: 0.5rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--background-adornment);
    align-items: center;
}

.sms-settings__device-row--head[b-524z01z51z] {
    font-weight: 600;
    color: var(--secondary-text);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* The four numeric/caps columns (Server, On phone, Effective, Used) read better right-aligned -
   figures line up on their ones place instead of ragging on the left like prose. */
.sms-settings__device-row > span:nth-child(n+3)[b-524z01z51z] {
    text-align: right;
}

.sms-settings__device-state[b-524z01z51z] {
    display: inline-flex;
    align-self: start;
    justify-self: start;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid transparent;
    width: fit-content;
}

.sms-settings__device-state--online[b-524z01z51z] {
    background: var(--success-hover);
    color: color-mix(in srgb, var(--success) 65%, var(--text));
    border-color: var(--success);
}

.sms-settings__device-state--stale[b-524z01z51z] {
    background: var(--warning-hover);
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
    border-color: var(--warning);
}

.sms-settings__device-state--revoked[b-524z01z51z] {
    background: var(--error-hover);
    color: color-mix(in srgb, var(--error) 65%, var(--text));
    border-color: var(--error);
}

.sms-settings__device-state--offline[b-524z01z51z],
.sms-settings__device-state--neverpaired[b-524z01z51z] {
    background: var(--background-adornment);
    color: var(--secondary-text);
}
/* /Pages/Admin/Sms/SmsTemplates.razor.rz.scp.css */
.smt[b-62jdcms7ss] {
    --smt-muted: color-mix(in srgb, var(--text) 62%, transparent);
    --smt-line: color-mix(in srgb, var(--text) 14%, transparent);
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
    color: var(--text);
}

.smt__header[b-62jdcms7ss] { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.smt__header[b-62jdcms7ss]  .smt__back { font-size: 0.8rem; font-weight: 600; }
.smt__title[b-62jdcms7ss] { display: flex; align-items: center; gap: 0.6rem; margin: 0.25rem 0 0; font-size: 1.5rem; font-weight: 600; }
.smt__subtitle[b-62jdcms7ss] { margin: 0.25rem 0 0; color: var(--smt-muted); font-size: 0.875rem; max-width: 60rem; }
.smt__state[b-62jdcms7ss] { display: flex; align-items: center; justify-content: center; gap: 0.6rem; padding: 3rem; color: var(--smt-muted); }

.smt__layout[b-62jdcms7ss] { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: 1.25rem; align-items: start; }

/* ---- list ---- */
.smt__list[b-62jdcms7ss] { display: flex; flex-direction: column; gap: 0.4rem; }
.smt__list-group[b-62jdcms7ss] { margin: 0.5rem 0 0.1rem; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--smt-muted); }
.smt__list-group:first-child[b-62jdcms7ss] { margin-top: 0; }
.smt__list-empty[b-62jdcms7ss] { margin: 0; font-size: 0.8rem; color: var(--smt-muted); }

.smt__item[b-62jdcms7ss] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    width: 100%;
    padding: 0.7rem 0.85rem;
    text-align: left;
    border: 1px solid var(--smt-line);
    border-left: 4px solid transparent;
    border-radius: 6px;
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
}

.smt__item:hover[b-62jdcms7ss] { border-color: var(--primary); }
.smt__item--active[b-62jdcms7ss] { border-left-color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, var(--surface)); }
.smt__item-name[b-62jdcms7ss] { font-weight: 700; font-size: 0.9rem; }
.smt__item-body[b-62jdcms7ss] { font-size: 0.78rem; color: var(--smt-muted); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.smt__item-meta[b-62jdcms7ss] { display: flex; flex-wrap: wrap; gap: 0.3rem; }

.smt__chip[b-62jdcms7ss] { display: inline-flex; align-items: center; padding: 0.1rem 0.5rem; border-radius: 999px; font-size: 0.7rem; font-weight: 700; background: color-mix(in srgb, var(--text) 9%, transparent); white-space: nowrap; }
.smt__chip--warn[b-62jdcms7ss] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning-dark) 55%, var(--text)); }
.smt__chip--outline[b-62jdcms7ss] { background: transparent; border: 1px solid var(--smt-line); }

/* ---- editor ---- */
.smt__editor[b-62jdcms7ss] { border: 1px solid var(--smt-line); border-radius: 8px; background: var(--surface); overflow: hidden; }
.smt__editor-head[b-62jdcms7ss] { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 0.9rem 1.1rem; border-bottom: 1px solid var(--smt-line); }
.smt__editor-title[b-62jdcms7ss] { margin: 0; font-size: 1.15rem; font-weight: 700; }
.smt__editor-meta[b-62jdcms7ss] { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.2rem; font-size: 0.78rem; color: var(--smt-muted); }
.smt__mono[b-62jdcms7ss] { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 0.82em; }

.smt__grid[b-62jdcms7ss] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); gap: 1.5rem; padding: 1.1rem; }
.smt__form[b-62jdcms7ss] { display: flex; flex-direction: column; gap: 0.9rem; min-width: 0; }
.smt__field[b-62jdcms7ss] { display: flex; flex-direction: column; gap: 0.3rem; }
.smt__label[b-62jdcms7ss] { font-size: 0.72rem; font-weight: 700; color: var(--smt-muted); }
.smt__label-row[b-62jdcms7ss] { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }
.smt__help[b-62jdcms7ss] { font-size: 0.74rem; color: var(--smt-muted); font-weight: 400; }

.smt__counter[b-62jdcms7ss] { font-size: 0.74rem; font-weight: 700; padding: 0.1rem 0.5rem; border-radius: 999px; background: var(--success-hover); color: color-mix(in srgb, var(--success-dark) 55%, var(--text)); }
.smt__counter--warn[b-62jdcms7ss] { background: var(--warning-hover); color: color-mix(in srgb, var(--warning-dark) 55%, var(--text)); }

.smt__tokens[b-62jdcms7ss] { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.smt__tokens[b-62jdcms7ss]  .smt__token { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.smt__tokens[b-62jdcms7ss]  .smt__token--required { font-weight: 700; }

.smt__alert[b-62jdcms7ss] { padding: 0.6rem 0.85rem; border-radius: 6px; border-left: 4px solid var(--primary); font-size: 0.85rem; background: var(--surface); }
.smt__alert ul[b-62jdcms7ss] { margin: 0; padding-left: 1.1rem; }
.smt__alert--error[b-62jdcms7ss] { border-left-color: var(--error); background: color-mix(in srgb, var(--error) 8%, var(--surface)); }
.smt__alert--warn[b-62jdcms7ss] { border-left-color: var(--warning); background: color-mix(in srgb, var(--warning) 10%, var(--surface)); }

.smt__actions[b-62jdcms7ss] { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.smt__actions[b-62jdcms7ss]  .smt__danger { margin-left: auto; }

/* ---- phone preview ---- */
.smt__preview[b-62jdcms7ss] { display: flex; flex-direction: column; gap: 1rem; }

.smt__phone[b-62jdcms7ss] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 15rem;
    padding: 0.9rem 0.9rem 1.1rem;
    border: 6px solid color-mix(in srgb, var(--text) 80%, transparent);
    border-radius: 28px;
    background: #f2f3f5;
    color: #1f2328;
}

.smt__phone-top[b-62jdcms7ss] { text-align: center; font-size: 0.75rem; font-weight: 700; color: #59636e; padding-bottom: 0.5rem; border-bottom: 1px solid #dde1e5; }

.smt__bubble[b-62jdcms7ss] {
    align-self: flex-start;
    max-width: 92%;
    padding: 0.6rem 0.8rem;
    border-radius: 16px 16px 16px 4px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    font-size: 0.88rem;
    line-height: 1.4;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.smt__phone-note[b-62jdcms7ss] { margin-top: auto; text-align: center; font-size: 0.7rem; color: #7a848e; }

.smt__test[b-62jdcms7ss] { display: flex; flex-direction: column; gap: 0.35rem; }
.smt__test-row[b-62jdcms7ss] { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem; }
.smt__test-row[b-62jdcms7ss] >  :first-child { flex: 1 1 12rem; min-width: 0; }
.smt__form[b-62jdcms7ss]  .smt__mono input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }

@media (max-width: 1100px) {
    .smt__layout[b-62jdcms7ss], .smt__grid[b-62jdcms7ss] { grid-template-columns: minmax(0, 1fr); }
}
/* /Pages/Category/AddCategoryDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
.device-add-dialog__form[b-c6gplk3a59] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.875rem;
    min-width: 380px;
}

.device-add-dialog__field[b-c6gplk3a59] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-c6gplk3a59] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-c6gplk3a59],
.device-add-dialog__textarea[b-c6gplk3a59] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-c6gplk3a59] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-c6gplk3a59] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Category/CategoryList.razor.rz.scp.css */
.category-list[b-s0u2y1asp4] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

/* ─── Header ────────────────────────────────────────── */
.category-list__header[b-s0u2y1asp4] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

[b-s0u2y1asp4] .category-list__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.category-list__subtitle[b-s0u2y1asp4] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

/* ─── Toolbar ────────────────────────────────────────── */
.category-list__toolbar[b-s0u2y1asp4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
}

.category-list__toolbar-left[b-s0u2y1asp4] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}

.category-list__toolbar-right[b-s0u2y1asp4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ─── Loading / Error / Empty ────────────────────────── */
.category-list__loading[b-s0u2y1asp4],
.category-list__error[b-s0u2y1asp4],
.category-list__empty[b-s0u2y1asp4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem;
    text-align: center;
    color: var(--secondary-text);
}

/* ─── Table wrap ─────────────────────────────────────── */
.category-list__table-wrap[b-s0u2y1asp4] {
    overflow-x: auto;
    padding: 0;
}

/* ─── Row actions ────────────────────────────────────── */
.category-list__row-actions[b-s0u2y1asp4] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/delete actions in this row get a floor without changing the visible icon size. */
.category-list__row-actions[b-s0u2y1asp4]  button {
    min-width: 44px;
    min-height: 44px;
}
/* /Pages/Category/EditCategoryDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
.device-add-dialog__form[b-rapnir3f9g] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.875rem;
    min-width: 380px;
}

.device-add-dialog__field[b-rapnir3f9g] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-rapnir3f9g] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-rapnir3f9g],
.device-add-dialog__textarea[b-rapnir3f9g] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-rapnir3f9g] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-rapnir3f9g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Device/DeviceDetail.razor.rz.scp.css */
.device-detail[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.5rem;
}

/* ─── Loading / Error ────────────────────────────────── */
.device-detail__loading[b-nq1vh4kqr1],
.device-detail__error[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 4rem;
    color: var(--secondary-text);
}

/* ─── Header ────────────────────────────────────────── */
.device-detail__header[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.device-detail__header-actions[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.device-detail__title-row[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

[b-nq1vh4kqr1] .device-detail__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.device-detail__subtitle[b-nq1vh4kqr1] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

/* ─── Status badge (shared: header + history) ────────── */
/* Solid tinted background + color-mix-darkened text instead of a translucent wash of the same token
   behind full-strength text: the two sit too close in luminance to clear the 4.5:1 WCAG AA minimum
   for small text. Same fix as admin.css's .dws-status-badge and SmsDeviceDetail's .sms-device-detail__badge. */
.device-detail__status-badge[b-nq1vh4kqr1] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--background-adornment);
    color: var(--secondary-text);
}

.device-detail__status-badge--available[b-nq1vh4kqr1] {
    background: var(--success-hover);
    color: color-mix(in srgb, var(--success) 65%, var(--text));
    border: 1px solid var(--success);
}

.device-detail__status-badge--in-repair[b-nq1vh4kqr1],
.device-detail__status-badge--inrepair[b-nq1vh4kqr1] {
    background: var(--warning-hover);
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
    border: 1px solid var(--warning);
}

.device-detail__status-badge--sold[b-nq1vh4kqr1],
.device-detail__status-badge--listed[b-nq1vh4kqr1] {
    background: var(--accent-hover);
    color: color-mix(in srgb, var(--accent, var(--accent-hover)) 65%, black);
    border: 1px solid var(--accent, var(--accent-hover));
}

.device-detail__status-badge--deleted[b-nq1vh4kqr1],
.device-detail__status-badge--scrapped[b-nq1vh4kqr1] {
    background: var(--error-hover);
    color: color-mix(in srgb, var(--error) 65%, var(--text));
    border: 1px solid var(--error);
}

/* ─── Info Grid ──────────────────────────────────────── */
.device-detail__info-grid[b-nq1vh4kqr1] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.device-detail__info-card[b-nq1vh4kqr1] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.device-detail__info-card--wide[b-nq1vh4kqr1] {
    grid-column: 1 / -1;
}

[b-nq1vh4kqr1] .device-detail__card-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--secondary-text);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 0.25rem;
}

.device-detail__info-list[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.device-detail__info-row[b-nq1vh4kqr1] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--text);
}

.device-detail__info-row--emphasis[b-nq1vh4kqr1] {
    font-weight: 600;
}

.device-detail__margin--positive[b-nq1vh4kqr1] {
    color: var(--success-hover);
}

.device-detail__margin--negative[b-nq1vh4kqr1] {
    color: var(--error-hover);
}

.device-detail__info-label[b-nq1vh4kqr1] {
    color: var(--secondary-text);
    flex-shrink: 0;
}

.device-detail__barcode-section[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 0.75rem 0 0.25rem;
}

.device-detail__barcode-value[b-nq1vh4kqr1] {
    font-size: 0.78rem;
    font-family: monospace;
    color: var(--secondary-text);
    letter-spacing: 0.04em;
}

.device-detail__notes-text[b-nq1vh4kqr1] {
    font-size: 0.875rem;
    color: var(--text);
    line-height: 1.6;
    margin: 0;
    white-space: pre-wrap;
}

/* ─── Tabs Card ──────────────────────────────────────── */
.device-detail__tabs-card[b-nq1vh4kqr1] {
    padding: 0;
    overflow: hidden;
}

.device-detail__tabs[b-nq1vh4kqr1] {
    display: flex;
    border-bottom: 1px solid var(--background-adornment);
    overflow-x: auto;
    scrollbar-width: none;
}

    .device-detail__tabs[b-nq1vh4kqr1]::-webkit-scrollbar {
        display: none;
    }

.device-detail__tab[b-nq1vh4kqr1] {
    padding: 0.75rem 1.25rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--secondary-text);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
    margin-bottom: -1px;
}

    .device-detail__tab:hover[b-nq1vh4kqr1] {
        color: var(--text);
    }

    .device-detail__tab:focus-visible[b-nq1vh4kqr1] {
        outline: 2px solid var(--primary);
        outline-offset: -2px;
    }

.device-detail__tab--active[b-nq1vh4kqr1] {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

.device-detail__tab-content[b-nq1vh4kqr1] {
    padding: 1.25rem;
}

.device-detail__tab-pane[b-nq1vh4kqr1] {
    min-height: 6rem;
}

.device-detail__tab-header[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.device-detail__tab-title[b-nq1vh4kqr1] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
}

/* ─── Loading / empty states within a tab ─────────────── */
/* Was a bare <DwsLabel>/<p> with no visual weight - upgraded to an icon-led state matching
   SmsDeviceDetail's .sms-device-detail__state pattern. */
.device-detail__state[b-nq1vh4kqr1],
.device-detail__empty[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2.75rem 1.5rem;
    text-align: center;
    color: var(--secondary-text);
    margin: 0;
}

.device-detail__state-spinner[b-nq1vh4kqr1] {
    display: inline-flex;
    animation: device-detail-spin-b-nq1vh4kqr1 1.1s linear infinite;
}

@keyframes device-detail-spin-b-nq1vh4kqr1 {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ─── Row actions (grid cells) ───────────────────────── */
.device-detail__row-actions[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

/* ─── Notes ──────────────────────────────────────────── */
.device-detail__notes-list[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.device-detail__note-item[b-nq1vh4kqr1] {
    background: var(--background-adornment);
    border-radius: 6px;
    padding: 0.75rem 1rem;
}

.device-detail__note-meta[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.375rem;
}

.device-detail__note-author[b-nq1vh4kqr1] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text);
}

.device-detail__note-date[b-nq1vh4kqr1] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}

.device-detail__note-text[b-nq1vh4kqr1] {
    font-size: 0.875rem;
    color: var(--text);
    margin: 0;
    white-space: pre-wrap;
}

.device-detail__note-actions[b-nq1vh4kqr1] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.25rem;
}

/* ─── Status History ─────────────────────────────────── */
.device-detail__history-list[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.device-detail__history-item[b-nq1vh4kqr1] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.device-detail__history-meta[b-nq1vh4kqr1] {
    font-size: 0.8125rem;
    color: var(--secondary-text);
}

/* ─── Image Gallery ──────────────────────────────────── */
.device-detail__image-gallery[b-nq1vh4kqr1] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.device-detail__image-card[b-nq1vh4kqr1] {
    display: flex;
    flex-direction: column;
    width: 200px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--background-adornment);
    border: 1px solid var(--border);
}

.device-detail__image-thumb[b-nq1vh4kqr1] {
    width: 200px;
    height: 160px;
    object-fit: cover;
    display: block;
}

.device-detail__image-placeholder[b-nq1vh4kqr1] {
    width: 200px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    color: var(--secondary-text);
    background: var(--background-adornment);
}

.device-detail__image-footer[b-nq1vh4kqr1] {
    padding: 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-detail__image-date[b-nq1vh4kqr1] {
    font-size: 0.75rem;
    color: var(--secondary-text);
}
/* /Pages/Device/DeviceList.razor.rz.scp.css */
.device-list[b-r26q5oh9b3] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

/* ─── Header ────────────────────────────────────────── */
.device-list__header[b-r26q5oh9b3] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

[b-r26q5oh9b3] .device-list__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.device-list__subtitle[b-r26q5oh9b3] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

/* ─── Toolbar ────────────────────────────────────────── */
.device-list__toolbar[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
}

.device-list__toolbar-left[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}

.device-list__toolbar-right[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.device-list__search-input[b-r26q5oh9b3],
.device-list__filter-select[b-r26q5oh9b3] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.4rem 0.75rem;
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.15s;
}

.device-list__search-input[b-r26q5oh9b3] {
    min-width: 220px;
}

.device-list__filter-select[b-r26q5oh9b3] {
    min-width: 150px;
}

    .device-list__search-input:focus[b-r26q5oh9b3],
    .device-list__filter-select:focus[b-r26q5oh9b3] {
        border-color: var(--primary);
    }

/* ─── Loading / Error ────────────────────────────────── */
.device-list__loading[b-r26q5oh9b3],
.device-list__error[b-r26q5oh9b3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem;
    color: var(--secondary-text);
}

/* ─── Table wrap ─────────────────────────────────────── */
.device-list__table-wrap[b-r26q5oh9b3] {
    overflow-x: auto;
    padding: 0;
}

    .device-list__table-wrap[b-r26q5oh9b3]  button {
        min-width: 44px;
        min-height: 44px;
    }

/* ─── Cell components ────────────────────────────────── */
.device-list__model-name[b-r26q5oh9b3] {
    font-weight: 500;
    color: var(--text);
    display: block;
}

.device-list__barcode[b-r26q5oh9b3] {
    font-size: 0.75rem;
    color: var(--secondary-text);
    display: block;
}

/* ─── Status badge ───────────────────────────────────── */
/* Solid tinted background + color-mix-darkened text instead of a translucent wash of the same token
   behind full-strength text: the two sit too close in luminance to clear the 4.5:1 WCAG AA minimum
   for small text. Kept identical to DeviceDetail.razor.css's .device-detail__status-badge so the list
   and detail views read as the same status language. */
.device-list__status-badge[b-r26q5oh9b3] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--background-adornment);
    color: var(--secondary-text);
}

.device-list__status-badge--available[b-r26q5oh9b3] {
    background: var(--success-hover);
    color: color-mix(in srgb, var(--success) 65%, var(--text));
    border: 1px solid var(--success);
}

.device-list__status-badge--in-repair[b-r26q5oh9b3],
.device-list__status-badge--inrepair[b-r26q5oh9b3] {
    background: var(--warning-hover);
    color: color-mix(in srgb, var(--warning) 65%, var(--text));
    border: 1px solid var(--warning);
}

.device-list__status-badge--sold[b-r26q5oh9b3],
.device-list__status-badge--listed[b-r26q5oh9b3] {
    background: var(--accent-hover);
    color: color-mix(in srgb, var(--accent, var(--accent-hover)) 65%, black);
    border: 1px solid var(--accent, var(--accent-hover));
}

.device-list__status-badge--deleted[b-r26q5oh9b3],
.device-list__status-badge--scrapped[b-r26q5oh9b3] {
    background: var(--error-hover);
    color: color-mix(in srgb, var(--error) 65%, var(--text));
    border: 1px solid var(--error);
}

/* ─── Row actions ────────────────────────────────────── */
.device-list__row-actions[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

/* ─── Pagination ─────────────────────────────────────── */
.device-list__pagination[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.device-list__pagination-info[b-r26q5oh9b3] {
    font-size: 0.875rem;
    color: var(--secondary-text);
}

.device-list__pagination-actions[b-r26q5oh9b3] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
/* /Pages/EmailPreferences.razor.rz.scp.css */
.email-preferences__list[b-pl4a4ku5x3] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.email-preferences__row[b-pl4a4ku5x3] {
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.75rem;
}

.email-preferences__toggle[b-pl4a4ku5x3] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.email-preferences__toggle input[type="checkbox"][b-pl4a4ku5x3] {
    margin-top: 0.2rem;
}

.email-preferences__row-text[b-pl4a4ku5x3] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.email-preferences__row-name[b-pl4a4ku5x3] {
    font-weight: 600;
    color: var(--text);
}

.email-preferences__row-description[b-pl4a4ku5x3] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}
/* /Pages/Investment/AddSharedInvestmentDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
[b-r3t23p96lf] .device-add-dialog__title {
    margin: 0 0 1rem 0;
}

.device-add-dialog__form[b-r3t23p96lf] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.device-add-dialog__field[b-r3t23p96lf] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-r3t23p96lf] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-r3t23p96lf],
.device-add-dialog__textarea[b-r3t23p96lf] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-r3t23p96lf] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-r3t23p96lf] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Investment/EditSharedInvestmentDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
[b-5n9b2gbl5t] .device-add-dialog__title {
    margin: 0 0 1rem 0;
}

.device-add-dialog__form[b-5n9b2gbl5t] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.device-add-dialog__field[b-5n9b2gbl5t] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-5n9b2gbl5t] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-5n9b2gbl5t],
.device-add-dialog__textarea[b-5n9b2gbl5t] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-5n9b2gbl5t] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-5n9b2gbl5t] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/Investment/SharedInvestmentList.razor.rz.scp.css */
.investment-list[b-9t17e6nli7] { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.5rem; }
.investment-list__header[b-9t17e6nli7] { display: flex; flex-direction: column; gap: 0.25rem; }
[b-9t17e6nli7] .investment-list__title { font-size: 1.5rem; font-weight: 600; color: var(--text); margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.investment-list__subtitle[b-9t17e6nli7] { font-size: 0.875rem; color: var(--secondary-text); margin: 0; }
.investment-list__toolbar[b-9t17e6nli7] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 0.875rem 1rem; }
.investment-list__toolbar-left[b-9t17e6nli7] { display: flex; align-items: center; gap: 0.625rem; flex-wrap: wrap; }
.investment-list__toolbar-right[b-9t17e6nli7] { display: flex; align-items: center; gap: 0.5rem; }
.investment-list__loading[b-9t17e6nli7], .investment-list__error[b-9t17e6nli7], .investment-list__empty[b-9t17e6nli7] { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 3rem; text-align: center; color: var(--secondary-text); }
.investment-list__table-wrap[b-9t17e6nli7] { overflow-x: auto; }
.investment-list__row-actions[b-9t17e6nli7] { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/delete actions in this row get a floor without changing the visible icon size. */
.investment-list__row-actions[b-9t17e6nli7]  button { min-width: 44px; min-height: 44px; }
/* /Pages/Listing/ListingList.razor.rz.scp.css */
.listing-list[b-e5nldddopk] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

/* ─── Header ────────────────────────────────────────── */
.listing-list__header[b-e5nldddopk] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

[b-e5nldddopk] .listing-list__title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.listing-list__subtitle[b-e5nldddopk] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--secondary-text);
}

/* ─── Toolbar ───────────────────────────────────────── */
.listing-list__toolbar[b-e5nldddopk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    flex-wrap: wrap;
}

.listing-list__toolbar-left[b-e5nldddopk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    min-width: 0;
}

.listing-list__toolbar-right[b-e5nldddopk] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* ─── States ────────────────────────────────────────── */
.listing-list__loading[b-e5nldddopk],
.listing-list__error[b-e5nldddopk],
.listing-list__empty[b-e5nldddopk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem;
    text-align: center;
    color: var(--secondary-text);
}

/* ─── Table ─────────────────────────────────────────── */
.listing-list__table-wrap[b-e5nldddopk] {
    overflow-x: auto;
}

.listing-list__row-actions[b-e5nldddopk] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
}

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/delete actions in this row get a floor without changing the visible icon size. */
.listing-list__row-actions[b-e5nldddopk]  button {
    min-width: 44px;
    min-height: 44px;
}

.listing-list__device-link[b-e5nldddopk] {
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
}

.listing-list__device-link:hover[b-e5nldddopk] {
    text-decoration: underline;
}
/* /Pages/ListingTemplate/AddListingTemplateDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs, selects and inputs. Scoped here so the rules only apply to this component's own
   markup. */
[b-yel6fhs7gf] .device-add-dialog__title {
    margin: 0 0 1rem 0;
}

.device-add-dialog__form[b-yel6fhs7gf] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.device-add-dialog__field[b-yel6fhs7gf] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-yel6fhs7gf] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-yel6fhs7gf],
.device-add-dialog__textarea[b-yel6fhs7gf],
.device-add-dialog__select[b-yel6fhs7gf] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-yel6fhs7gf] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-yel6fhs7gf] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}

/* ─── Placeholder reference panel ────────────────────── */
.listing-template-dialog__placeholder-panel[b-yel6fhs7gf] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    background: var(--background-adornment);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.75rem;
}

.listing-template-dialog__placeholder-label[b-yel6fhs7gf] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.listing-template-dialog__placeholder-chips[b-yel6fhs7gf] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.listing-template-dialog__placeholder-chip[b-yel6fhs7gf] {
    background: var(--surface);
    color: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 4px;
    padding: 0.15rem 0.45rem;
    font-size: 0.75rem;
    white-space: nowrap;
}
/* /Pages/ListingTemplate/EditListingTemplateDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs, selects and inputs. Scoped here so the rules only apply to this component's own
   markup. */
[b-ey73lkgg56] .device-add-dialog__title {
    margin: 0 0 1rem 0;
}

.device-add-dialog__form[b-ey73lkgg56] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.875rem;
    min-width: 420px;
}

.device-add-dialog__field[b-ey73lkgg56] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-ey73lkgg56] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-ey73lkgg56],
.device-add-dialog__textarea[b-ey73lkgg56],
.device-add-dialog__select[b-ey73lkgg56] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-ey73lkgg56] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-ey73lkgg56] {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}

/* ─── Placeholder reference panel ────────────────────── */
.listing-template-dialog__placeholder-panel[b-ey73lkgg56] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    background: var(--background-adornment);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.75rem;
}

.listing-template-dialog__placeholder-label[b-ey73lkgg56] {
    font-size: 0.8rem;
    color: var(--secondary-text);
}

.listing-template-dialog__placeholder-chips[b-ey73lkgg56] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.listing-template-dialog__placeholder-chip[b-ey73lkgg56] {
    background: var(--surface);
    color: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 4px;
    padding: 0.15rem 0.45rem;
    font-size: 0.75rem;
    white-space: nowrap;
}
/* /Pages/ListingTemplate/ListingTemplateList.razor.rz.scp.css */
.lt-list[b-sui9mq9l7p] { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.5rem; }
.lt-list__header[b-sui9mq9l7p] { display: flex; flex-direction: column; gap: 0.25rem; }
[b-sui9mq9l7p] .lt-list__title { font-size: 1.5rem; font-weight: 600; color: var(--text); margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.lt-list__subtitle[b-sui9mq9l7p] { font-size: 0.875rem; color: var(--secondary-text); margin: 0; }
.lt-list__toolbar[b-sui9mq9l7p] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 0.875rem 1rem; }
.lt-list__toolbar-left[b-sui9mq9l7p] { display: flex; align-items: center; gap: 0.625rem; }
.lt-list__toolbar-right[b-sui9mq9l7p] { display: flex; align-items: center; gap: 0.5rem; }
.lt-list__loading[b-sui9mq9l7p], .lt-list__error[b-sui9mq9l7p], .lt-list__empty[b-sui9mq9l7p] { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 3rem; text-align: center; color: var(--secondary-text); }
.lt-list__table-wrap[b-sui9mq9l7p] { overflow-x: auto; }
.lt-list__row-actions[b-sui9mq9l7p] { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; }

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/delete actions in this row get a floor without changing the visible icon size. */
.lt-list__row-actions[b-sui9mq9l7p]  button { min-width: 44px; min-height: 44px; }
/* /Pages/MyReports.razor.rz.scp.css */
.my-reports[b-mhjohq8i3r] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

/* ─── Header ────────────────────────────────────────── */
.my-reports__header[b-mhjohq8i3r] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.my-reports__title[b-mhjohq8i3r] {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.my-reports__subtitle[b-mhjohq8i3r] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

/* ─── Actions ───────────────────────────────────────── */
.my-reports__actions[b-mhjohq8i3r] {
    flex-wrap: wrap;
}

/* ─── Loading / Error / Empty ────────────────────────── */
.my-reports__loading[b-mhjohq8i3r],
.my-reports__error[b-mhjohq8i3r],
.my-reports__empty[b-mhjohq8i3r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem;
    text-align: center;
    color: var(--secondary-text);
}

.my-reports__empty p[b-mhjohq8i3r] {
    margin: 0;
}

/* ─── Section titles ──────────────────────────────────── */
.my-reports__section-title[b-mhjohq8i3r] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    margin: 1.75rem 0 0.75rem 0;
}

.my-reports__section-title:first-of-type[b-mhjohq8i3r] {
    margin-top: 0.5rem;
}

/* ─── Table wrap ─────────────────────────────────────── */
.my-reports__table-wrap[b-mhjohq8i3r] {
    overflow-x: auto;
    padding: 0;
}
/* /Pages/NotesAndTasks/NotesTasksPage.razor.rz.scp.css */
.notes-tasks[b-h4dotfvws8] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.25rem;
}

/* ── Header ─────────────────────────────────────────────────── */
.notes-tasks__header[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

[b-h4dotfvws8] .notes-tasks__title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-text);
}

/* ── Loading / Error ─────────────────────────────────────────── */
.notes-tasks__loading[b-h4dotfvws8],
.notes-tasks__error[b-h4dotfvws8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2rem;
}

/* ── Tabs ────────────────────────────────────────────────────── */
.notes-tasks__tabs[b-h4dotfvws8] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 2px solid var(--border-color, #ddd);
}

.notes-tasks__tab[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: none;
    border: none;
    padding: 0.5rem 1rem;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--secondary-text, #888);
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.notes-tasks__tab:hover[b-h4dotfvws8] {
    color: var(--primary);
}

.notes-tasks__tab--active[b-h4dotfvws8] {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

.notes-tasks__badge[b-h4dotfvws8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-alt, #eee);
    color: var(--secondary-text, #666);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    min-width: 1.3rem;
    height: 1.3rem;
    padding: 0 0.35rem;
}

.notes-tasks__badge--alert[b-h4dotfvws8] {
    background: var(--error);
    color: #fff;
}

/* ── Panel (tab content) ─────────────────────────────────────── */
.notes-tasks__panel[b-h4dotfvws8] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
}

/* ── Empty state ─────────────────────────────────────────────── */
.notes-tasks__empty[b-h4dotfvws8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 2.5rem;
    opacity: 0.6;
}

/* ── Card ────────────────────────────────────────────────────── */
.notes-tasks__card[b-h4dotfvws8] {
    border: 1px solid var(--border-color, #e0e0e0);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    background: var(--surface, #fff);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    transition: border-color 0.15s;
}

.notes-tasks__card:hover[b-h4dotfvws8] {
    border-color: var(--primary);
}

.notes-tasks__card--done[b-h4dotfvws8] {
    opacity: 0.55;
}

.notes-tasks__card--overdue[b-h4dotfvws8] {
    border-left: 3px solid var(--error);
    background: color-mix(in srgb, var(--error) 6%, var(--surface, #fff));
}

.notes-tasks__card-header[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* ── Device link ─────────────────────────────────────────────── */
.notes-tasks__device-link[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--primary);
}

.notes-tasks__device-link:hover[b-h4dotfvws8] {
    text-decoration: underline;
}

.notes-tasks__barcode[b-h4dotfvws8] {
    font-weight: 400;
    font-size: 0.8rem;
    color: var(--secondary-text, #888);
}

/* ── Text ────────────────────────────────────────────────────── */
.notes-tasks__text[b-h4dotfvws8] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--primary-text);
    white-space: pre-wrap;
    word-break: break-word;
}

/* ── Meta ────────────────────────────────────────────────────── */
.notes-tasks__meta[b-h4dotfvws8] {
    font-size: 0.78rem;
    color: var(--secondary-text, #888);
}

/* ── Reminder badge ──────────────────────────────────────────── */
.notes-tasks__reminder-badge[b-h4dotfvws8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning);
    border-radius: 4px;
    padding: 0.2rem 0.5rem;
    font-size: 0.78rem;
    font-weight: 500;
    align-self: flex-start;
}

.notes-tasks__reminder-date[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 500;
}

.notes-tasks__reminder-date--overdue[b-h4dotfvws8] {
    color: var(--error);
}

/* ── Status badges ───────────────────────────────────────────── */
.notes-tasks__status-badge[b-h4dotfvws8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border-radius: 4px;
    padding: 0.2rem 0.5rem;
    font-size: 0.78rem;
    font-weight: 500;
}

.notes-tasks__status-badge--done[b-h4dotfvws8] {
    background: color-mix(in srgb, var(--success) 12%, transparent);
    color: var(--success);
}

.notes-tasks__status-badge--overdue[b-h4dotfvws8] {
    background: color-mix(in srgb, var(--error) 12%, transparent);
    color: var(--error);
}

.notes-tasks__status-badge--due[b-h4dotfvws8] {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning);
}

/* ── Assigned ────────────────────────────────────────────────── */
.notes-tasks__assigned[b-h4dotfvws8] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--secondary-text, #888);
}

/* ── Tasks toolbar ───────────────────────────────────────────── */
.notes-tasks__tasks-toolbar[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border-color, #eee);
}

.notes-tasks__toggle-label[b-h4dotfvws8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.88rem;
    cursor: pointer;
    color: var(--secondary-text, #888);
}
/* /Pages/StorageLocation/AddStorageLocationDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
.device-add-dialog__form[b-rqfhzbn06a] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.875rem;
    min-width: 380px;
}

.device-add-dialog__field[b-rqfhzbn06a] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-rqfhzbn06a] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-rqfhzbn06a],
.device-add-dialog__textarea[b-rqfhzbn06a] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-rqfhzbn06a] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-rqfhzbn06a] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/StorageLocation/EditStorageLocationDialog.razor.rz.scp.css */
/* The device-add-dialog__* classes are a shared naming convention used across this app's simple
   add/edit dialogs, but nothing previously styled them for this dialog - it rendered as bare,
   unstyled divs and inputs. Scoped here so the rules only apply to this component's own markup. */
.device-add-dialog__form[b-yda5o1gz6d] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.875rem;
    min-width: 380px;
}

.device-add-dialog__field[b-yda5o1gz6d] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.device-add-dialog__field--wide[b-yda5o1gz6d] {
    grid-column: 1 / -1;
}

.device-add-dialog__input[b-yda5o1gz6d],
.device-add-dialog__textarea[b-yda5o1gz6d] {
    background: var(--background-adornment);
    color: var(--text);
    border: 1px solid var(--background-adornment);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    font-size: 0.875rem;
    outline: none;
}

.device-add-dialog__field-error[b-yda5o1gz6d] {
    color: var(--error);
    font-size: 0.8rem;
}

.device-add-dialog__general-error[b-yda5o1gz6d] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--error);
    font-size: 0.825rem;
}
/* /Pages/StorageLocation/StorageLocationList.razor.rz.scp.css */
.storage-location-list[b-zclt2m15z0] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.5rem;
}

/* ─── Header ────────────────────────────────────────── */
.storage-location-list__header[b-zclt2m15z0] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

[b-zclt2m15z0] .storage-location-list__title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
}

.storage-location-list__subtitle[b-zclt2m15z0] {
    font-size: 0.875rem;
    color: var(--secondary-text);
    margin: 0;
}

/* ─── Toolbar ────────────────────────────────────────── */
.storage-location-list__toolbar[b-zclt2m15z0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
}

.storage-location-list__toolbar-left[b-zclt2m15z0] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}

.storage-location-list__toolbar-right[b-zclt2m15z0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* ─── Loading / Error / Empty ────────────────────────── */
.storage-location-list__loading[b-zclt2m15z0],
.storage-location-list__error[b-zclt2m15z0],
.storage-location-list__empty[b-zclt2m15z0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 3rem;
    text-align: center;
    color: var(--secondary-text);
}

/* ─── Table wrap ─────────────────────────────────────── */
.storage-location-list__table-wrap[b-zclt2m15z0] {
    overflow-x: auto;
    padding: 0;
}

/* ─── Row actions ────────────────────────────────────── */
.storage-location-list__row-actions[b-zclt2m15z0] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
}

/* DwsButton's own hit area in Text appearance runs smaller than the 44x44px touch-target minimum;
   the icon-only edit/delete actions in this row get a floor without changing the visible icon size. */
.storage-location-list__row-actions[b-zclt2m15z0]  button {
    min-width: 44px;
    min-height: 44px;
}
/* /Pages/Unsubscribe.razor.rz.scp.css */
.unsubscribe__preferences-hint[b-tumi7q7t4w] {
    font-size: 0.8rem;
    color: var(--secondary-text);
    text-align: center;
    margin: 0;
}
/* /Shared/E2E/E2EUnlockPanel.razor.rz.scp.css */
.e2e-unlock[b-hgmplhm557] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    margin-bottom: 12px;
    border-radius: 6px;
    background: var(--background-adornment);
}

.e2e-unlock__state[b-hgmplhm557] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--secondary-text);
    flex: 1 1 260px;
}

.e2e-unlock__input[b-hgmplhm557] {
    flex: 1 1 200px;
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid var(--secondary-text);
    border-radius: 4px;
    background: transparent;
    color: var(--text);
}

.e2e-unlock__error[b-hgmplhm557] {
    flex-basis: 100%;
    color: var(--error);
}
