/*
 * Provisioning visual contract
 *
 * This file deliberately stays global and is loaded after the generic Sufficit and
 * MudBlazor theme sheets.  SUX components use MudBlazor elements as their root.  A
 * CSS-isolation selector tied to those component roots can be lost at the render
 * boundary, whereas these stable feature classes are emitted in the final DOM.
 */

.sux-detail-header {
    overflow: clip;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-lg, 12px) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
}

.sux-detail-header .mud-card-content {
    padding: 1.125rem 1.25rem !important;
}

.sux-detail-header__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 1rem 1.5rem;
}

.sux-detail-header__main {
    min-width: 0;
    gap: 0.625rem !important;
}

.sux-detail-header__kicker {
    color: var(--mud-palette-text-secondary);
    letter-spacing: 0.08em;
    line-height: 1.15;
}

.sux-detail-header__status {
    padding-top: 0.125rem;
}

.sux-detail-header__actions {
    align-self: start;
    flex-shrink: 0;
}

.sux-detail-header__actions .mud-button-root {
    min-height: 44px;
}

.sux-stat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
    min-block-size: 104px !important;
    height: auto !important;
    padding: 1rem 1.125rem !important;
    overflow: hidden;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-lg, 12px) !important;
    background: var(--glass-bg) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
    transition:
        border-color 180ms var(--motion-ease-out, ease-out),
        box-shadow 180ms var(--motion-ease-out, ease-out),
        transform 180ms var(--motion-ease-out, ease-out);
}

.sux-stat-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: "";
    background: var(--mud-palette-primary);
}

.sux-stat-card--success::before { background: var(--mud-palette-success); }
.sux-stat-card--info::before { background: var(--mud-palette-info); }
.sux-stat-card--warning::before { background: var(--mud-palette-warning); }
.sux-stat-card--error::before { background: var(--mud-palette-error); }
.sux-stat-card--secondary::before { background: var(--mud-palette-secondary); }
.sux-stat-card--tertiary::before { background: var(--mud-palette-tertiary); }

.sux-stat-card__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.sux-stat-card__text {
    min-width: 0;
}

.sux-stat-card__value {
    color: var(--ink, var(--mud-palette-text-primary));
    font-size: clamp(1.45rem, 1.1rem + 0.45vw, 1.85rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.sux-stat-card__label {
    margin-top: 0.4rem;
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
    line-height: 1.35;
}

.sux-stat-card__icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
    opacity: 0.9;
}

.sux-section {
    overflow: clip;
    border: 1px solid var(--glass-border) !important;
    border-radius: var(--radius-lg, 12px) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
}

.sux-section > .mud-card-header {
    align-items: flex-start;
    gap: 0.875rem;
    padding: 1.125rem 1.25rem 0.875rem;
}

.sux-section > .mud-card-header .mud-card-header-content {
    min-width: 0;
}

.sux-section > .mud-card-header .mud-card-header-actions {
    margin: 0;
    padding-top: 0.125rem;
}

.sux-section > .mud-card-content {
    padding: 0.75rem 1.25rem 1.25rem;
}

.provisioning-catalog .mud-grid-item > .sux-stat-card,
.provisioning-dashboard .mud-grid-item > .sux-stat-card,
.provisioning-diagnostics .mud-grid-item > .sux-stat-card {
    width: 100%;
}

@media (hover: hover) {
    .sux-stat-card:hover {
        border-color: color-mix(in srgb, var(--mud-palette-primary) 28%, var(--glass-border));
        box-shadow: var(--glass-shadow-strong), var(--glass-highlight) !important;
        transform: translateY(-1px);
    }
}

@media (max-width: 899.98px) {
    .sux-detail-header__row {
        grid-template-columns: 1fr;
    }

    .sux-detail-header__actions {
        width: 100%;
    }
}

@media (max-width: 599.98px) {
    .sux-detail-header .mud-card-content {
        padding: 1rem !important;
    }

    .sux-detail-header__actions .mud-button-root {
        flex: 1 1 100%;
        min-width: 0;
    }

    .sux-stat-card {
        min-block-size: 92px !important;
        padding: 0.875rem 1rem !important;
    }

    .sux-section > .mud-card-header {
        padding: 1rem 1rem 0.75rem;
    }

    .sux-section > .mud-card-content {
        padding: 0.75rem 1rem 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sux-stat-card {
        transition: none;
    }

    .sux-stat-card:hover {
        transform: none;
    }
}

/*
 * Page-level Provisioning styles
 *
 * These classes may be applied directly to a MudBlazor component. They must be
 * global: a CSS-isolation scope on the Razor component cannot be forwarded to a
 * third-party component root, leaving the final DOM with only MudBlazor's base
 * styles. Keep this file last in App.razor.
 */
.provisioning-device-page__skeleton,
.provisioning-dashboard__skeleton {
    border-radius: var(--radius-lg, 12px);
}

.provisioning-delivery-flow {
    display: grid;
    gap: 1rem;
}

.provisioning-delivery-flow__step {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.provisioning-delivery-flow__step:not(:last-child)::after {
    position: absolute;
    top: 34px;
    bottom: -14px;
    left: 15px;
    width: 1px;
    content: "";
    background: color-mix(in srgb, var(--mud-palette-primary) 30%, transparent);
}

.provisioning-delivery-flow code {
    color: var(--mud-palette-primary);
    font-size: 0.74rem;
}

.provisioning-property-editor {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(240px, 1.6fr) auto;
    align-items: end;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.provisioning-property-editor > :last-child,
.provisioning-validation > :last-child,
.provisioning-filters > :last-child,
.provisioning-diagnostics__filters > :last-child {
    min-height: 44px;
}

.provisioning-properties-empty,
.provisioning-dashboard__empty-chart {
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 0.5rem;
    color: var(--mud-palette-text-secondary);
    text-align: center;
}

.provisioning-properties-empty {
    min-height: 180px;
    padding: 1.5rem;
    border: 1px dashed color-mix(in srgb, var(--mud-palette-lines-default) 70%, transparent);
    border-radius: var(--radius-lg, 12px);
}

.provisioning-properties-table__key,
.provisioning-catalog__mono,
.provisioning-device-table__mono,
.provisioning-diagnostics__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.provisioning-properties-table__key { color: var(--mud-palette-primary); }
.provisioning-properties-table__masked { letter-spacing: 0.16em; }

.provisioning-save-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--glass-border, var(--mud-palette-lines-default)) !important;
    border-radius: var(--radius-lg, 12px) !important;
    background: var(--glass-bg, var(--mud-palette-surface)) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
    backdrop-filter: blur(var(--glass-blur, 16px));
    transition: border-color var(--motion-duration-fast, 180ms) var(--motion-ease-out, ease-out), box-shadow var(--motion-duration-fast, 180ms) var(--motion-ease-out, ease-out);
}

.provisioning-save-bar:focus-within {
    border-color: color-mix(in srgb, var(--mud-palette-primary) 48%, var(--mud-palette-lines-default)) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 12%, transparent), var(--glass-shadow) !important;
}

.provisioning-properties-table .mud-table-row,
.provisioning-catalog .mud-table-row,
.provisioning-device-table .mud-table-row,
.provisioning-diagnostics__tabs .mud-table-row {
    transition: background-color 180ms var(--motion-ease-out, ease-out), box-shadow 180ms var(--motion-ease-out, ease-out);
}

/* Catalog */
.provisioning-catalog {
    --provisioning-catalog-border: color-mix(in srgb, var(--mud-palette-lines-default) 72%, transparent);
    --provisioning-catalog-hover: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent);
}

.provisioning-model-grid { display: grid; gap: 0.65rem; }

.provisioning-model-card {
    display: flex;
    width: 100%;
    min-height: 82px;
    align-items: center;
    gap: 0.8rem;
    padding: 0.8rem;
    color: inherit;
    text-align: left;
    border: 1px solid var(--provisioning-catalog-border);
    border-radius: var(--radius-md, 10px);
    background: color-mix(in srgb, var(--mud-palette-surface) 88%, transparent);
    cursor: pointer;
    transition: border-color 180ms var(--motion-ease-out, ease-out), background-color 180ms var(--motion-ease-out, ease-out), box-shadow 180ms var(--motion-ease-out, ease-out), transform 180ms var(--motion-ease-out, ease-out);
}

.provisioning-model-card--selected {
    border-color: var(--mud-palette-primary);
    background: color-mix(in srgb, var(--mud-palette-primary) 8%, var(--mud-palette-surface));
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}

.provisioning-model-card:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--mud-palette-primary) 38%, transparent);
    outline-offset: 2px;
}

.provisioning-model-card__identity { display: grid; min-width: 0; flex: 1; }
.provisioning-model-card__identity small { color: var(--mud-palette-text-secondary); }

.provisioning-catalog__filters {
    display: grid;
    grid-template-columns: minmax(260px, 1.7fr) minmax(180px, 0.8fr);
    align-items: end;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.provisioning-validation {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(180px, 1fr) minmax(190px, 1fr) auto;
    align-items: end;
    gap: 0.75rem;
}

/* Dashboard */
.provisioning-dashboard {
    --provisioning-surface: color-mix(in srgb, var(--mud-palette-surface) 88%, transparent);
    --provisioning-grid: color-mix(in srgb, var(--mud-palette-lines-default) 58%, transparent);
}

.provisioning-dashboard__empty-chart { min-height: 220px; gap: 0.75rem; }
.provisioning-dashboard__empty-chart--compact { min-height: 142px; }

.provisioning-server-stat {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 154px;
    padding: 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background: color-mix(in srgb, var(--mud-palette-surface) 92%, var(--mud-palette-primary) 8%);
    transition: border-color 180ms var(--motion-ease-out, ease-out), box-shadow 180ms var(--motion-ease-out, ease-out), transform 180ms var(--motion-ease-out, ease-out);
}

.provisioning-server-stat__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.provisioning-server-stat__counts { display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; margin-top: auto; padding-top: 0.8rem; color: var(--mud-palette-text-secondary); font-size: 0.78rem; }
.provisioning-server-stat__counts strong { color: var(--mud-palette-text-primary); font-weight: 700; }
.provisioning-server-stat__failed, .provisioning-server-stat__failed strong { color: var(--mud-palette-error); }

.provisioning-timeline {
    display: flex;
    height: 220px;
    align-items: stretch;
    gap: clamp(0.25rem, 1vw, 0.75rem);
    padding: 1rem 0 0.25rem;
    overflow-x: auto;
    background-image: linear-gradient(to bottom, var(--provisioning-grid) 1px, transparent 1px);
    background-size: 100% 25%;
}

.provisioning-timeline__point { display: grid; flex: 1 0 34px; min-width: 34px; grid-template-rows: 1fr auto; gap: 0.4rem; }
.provisioning-timeline__bars { display: flex; min-height: 0; align-items: flex-end; justify-content: center; gap: 3px; }
.provisioning-timeline__bar { width: min(10px, 38%); min-height: 3px; border-radius: 5px 5px 2px 2px; transform-origin: bottom; animation: provisioning-grow 280ms ease-out both; }
.provisioning-timeline__bar--requests, .provisioning-legend--requests { background: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent); }
.provisioning-timeline__bar--delivered, .provisioning-legend--delivered { background: var(--mud-palette-success); }
.provisioning-timeline__label { color: var(--mud-palette-text-secondary); font-size: 0.68rem; line-height: 1; text-align: center; white-space: nowrap; }
.provisioning-timeline__legend { margin-top: 0.75rem; color: var(--mud-palette-text-secondary); font-size: 0.78rem; }
.provisioning-legend { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.provisioning-distribution__label { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 0.3rem; }

.provisioning-filters {
    display: grid;
    grid-template-columns: minmax(240px, 2fr) repeat(3, minmax(140px, 1fr)) auto;
    align-items: end;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.provisioning-device-table__mono { letter-spacing: 0.03em; }

/* Diagnostics */
.provisioning-diagnostics__tabs {
    overflow: clip;
    border: 1px solid var(--glass-border, var(--mud-palette-lines-default)) !important;
    border-radius: var(--radius-lg, 12px) !important;
    background: var(--glass-bg, var(--mud-palette-surface)) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
    backdrop-filter: blur(var(--glass-blur, 16px));
}

.provisioning-diagnostics__tabs .mud-tabs-panels { padding: 1rem; }

.provisioning-diagnostics__filters {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) minmax(150px, 0.8fr) minmax(160px, 0.8fr) auto;
    align-items: end;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.provisioning-diagnostics__file { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* My devices */
.my-devices-page {
    --my-devices-graphite: var(--ink, #1f2226);
    --my-devices-muted: var(--muted, #6b7178);
    --my-devices-accent: var(--sufficit-amber, #ee6321);
    --my-devices-border: color-mix(in srgb, var(--my-devices-accent) 20%, var(--mud-palette-divider));
}

.my-devices-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1.25rem; }
.summary-card { display: flex; min-width: 0; min-block-size: 88px; align-items: center; gap: 0.75rem; padding: 0.85rem 1rem; border: 1px solid var(--my-devices-border); border-left: 3px solid var(--my-devices-accent); border-radius: var(--radius-lg, 12px); background: var(--glass-bg-subtle, rgba(255, 255, 255, 0.42)); color: var(--my-devices-graphite); }
.summary-card--success { border-left-color: var(--mud-palette-success); }
.summary-card--warning { border-left-color: var(--mud-palette-warning); }
.summary-card .mud-icon-root { color: var(--my-devices-accent); }
.summary-card--success .mud-icon-root { color: var(--mud-palette-success); }
.summary-card--warning .mud-icon-root { color: var(--mud-palette-warning); }
.summary-card div { display: flex; flex-direction: column; min-width: 0; }
.summary-card strong { font-size: 1.25rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.summary-card span { margin-top: 0.15rem; color: var(--my-devices-muted); font-size: 0.78rem; }

.installation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 23rem), 1fr)); gap: 1rem; }
.installation-card { height: 100%; overflow: hidden; border: 1px solid var(--my-devices-border) !important; border-radius: var(--radius-lg, 12px) !important; background: var(--glass-bg, rgba(255, 255, 255, 0.64)) !important; box-shadow: var(--glass-shadow), var(--glass-highlight) !important; transition: transform 150ms var(--motion-ease-out, ease-out), border-color 150ms var(--motion-ease-out, ease-out), box-shadow 150ms var(--motion-ease-out, ease-out); }
.installation-card--busy { border-color: var(--my-devices-accent) !important; }
.installation-card--success { animation: assignment-confirmed 420ms var(--motion-ease-out, ease-out); }
.installation-card__body { display: flex; flex-direction: column; height: 100%; padding: 1.15rem; }
.installation-card__header, .installation-card__identity { display: flex; align-items: flex-start; gap: 0.75rem; }
.installation-card__header { justify-content: space-between; }
.installation-card__identity, .installation-card__title { min-width: 0; }
.installation-code { display: block; max-width: 17rem; margin-top: 0.1rem; overflow-wrap: anywhere; color: var(--my-devices-muted); font-family: var(--font-monospace, monospace) !important; font-variant-numeric: tabular-nums; }
.installation-card__meta { display: grid; gap: 0.35rem; margin: 1rem 0; color: var(--my-devices-muted); font-size: 0.78rem; }
.installation-card__meta div { display: flex; align-items: center; gap: 0.4rem; }
.assignment-panel { display: flex; flex: 1; flex-direction: column; justify-content: flex-end; padding: 1rem; border: 1px solid color-mix(in srgb, var(--my-devices-accent) 14%, var(--mud-palette-divider)); border-radius: var(--radius-md, 8px); background: color-mix(in srgb, var(--mud-palette-surface) 82%, transparent); }
.assignment-panel__heading { margin-bottom: 0.75rem; }
.assignment-panel__heading .mud-typography-caption { color: var(--my-devices-muted); }
.assignment-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0.75rem; }
.assignment-button { min-height: 44px; white-space: nowrap; }
.assignment-feedback { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.75rem; color: var(--mud-palette-success); font-size: 0.82rem; font-weight: 600; }
.installation-card:focus-within { border-color: color-mix(in srgb, var(--my-devices-accent) 48%, var(--mud-palette-divider)) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--my-devices-accent) 12%, transparent), var(--glass-shadow) !important; }

/* Discovery */
.provisioning-discoveries__guide .mud-alert-message {
    width: 100%;
}

.provisioning-discoveries__guide ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: provisioning-discovery-step;
}

.provisioning-discoveries__guide li {
    position: relative;
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.15rem 0.65rem;
    align-content: start;
    min-width: 0;
    counter-increment: provisioning-discovery-step;
}

.provisioning-discoveries__guide li::before {
    display: grid;
    grid-row: 1 / span 2;
    width: 2rem;
    height: 2rem;
    place-content: center;
    color: var(--mud-palette-info-text);
    font-size: 0.78rem;
    font-weight: 700;
    content: counter(provisioning-discovery-step);
    border: 1px solid color-mix(in srgb, var(--mud-palette-info) 36%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, var(--mud-palette-info) 12%, transparent);
}

.provisioning-discoveries__guide strong {
    color: var(--mud-palette-text-primary);
    font-size: 0.875rem;
    line-height: 1.3;
}

.provisioning-discoveries__guide span {
    color: var(--mud-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.45;
}

.provisioning-discoveries__skeleton {
    border-radius: var(--radius-lg, 12px);
}

.provisioning-discoveries__empty {
    display: grid;
    min-height: 190px;
    place-content: center;
    justify-items: center;
    gap: 0.5rem;
    padding: 1.5rem;
    text-align: center;
    border: 1px dashed color-mix(in srgb, var(--mud-palette-lines-default) 72%, transparent);
    border-radius: var(--radius-lg, 12px);
}

.provisioning-discoveries__empty .mud-typography-body2 {
    max-width: 42rem;
}

.provisioning-discovery-table__identity {
    min-width: 0;
}

.provisioning-discovery-table__mono {
    overflow-wrap: anywhere;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
}

.provisioning-discovery-table__file {
    display: block;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.provisioning-discovery-table .mud-table-row {
    transition:
        background-color 180ms var(--motion-ease-out, ease-out),
        box-shadow 180ms var(--motion-ease-out, ease-out);
}

.provisioning-discovery-table .mud-button-root {
    min-height: 44px;
}

.provisioning-softphone-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    gap: 1rem;
}

.provisioning-softphone-card {
    height: 100%;
    border: 1px solid var(--glass-border, var(--mud-palette-lines-default)) !important;
    border-radius: var(--radius-lg, 12px) !important;
    background: var(--glass-bg, var(--mud-palette-surface)) !important;
    box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
    transition:
        border-color 180ms var(--motion-ease-out, ease-out),
        box-shadow 180ms var(--motion-ease-out, ease-out),
        transform 180ms var(--motion-ease-out, ease-out);
}

.provisioning-softphone-card__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.75rem;
}

.provisioning-softphone-card__details {
    display: grid;
    gap: 0.6rem;
    margin: 1rem 0 0;
}

.provisioning-softphone-card__details div {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    gap: 0.75rem;
}

.provisioning-softphone-card__details dt {
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
}

.provisioning-softphone-card__details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--mud-palette-text-primary);
    font-size: 0.78rem;
}

@media (hover: hover) {
    .provisioning-properties-table .mud-table-row:hover,
    .provisioning-device-table .mud-table-row:hover,
    .provisioning-diagnostics__tabs .mud-table-row:hover { background: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent); }
    .provisioning-catalog .mud-table-row:hover { background: var(--provisioning-catalog-hover); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--mud-palette-primary) 52%, transparent); }
    .provisioning-model-card:hover { border-color: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent); background: var(--provisioning-catalog-hover); box-shadow: 0 10px 24px color-mix(in srgb, var(--mud-palette-primary) 9%, transparent); transform: translateY(-1px); }
    .provisioning-server-stat:hover { border-color: color-mix(in srgb, var(--mud-palette-primary) 42%, var(--mud-palette-lines-default)); box-shadow: 0 12px 28px color-mix(in srgb, var(--mud-palette-primary) 10%, transparent); transform: translateY(-2px); }
    .installation-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--my-devices-accent) 48%, var(--mud-palette-divider)) !important; box-shadow: var(--glass-shadow-strong, 0 16px 48px rgba(35, 38, 45, 0.18)) !important; }
    .provisioning-discovery-table .mud-table-row:hover { background: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--mud-palette-primary) 52%, transparent); }
    .provisioning-softphone-card:hover { border-color: color-mix(in srgb, var(--mud-palette-info) 42%, var(--mud-palette-lines-default)) !important; box-shadow: var(--glass-shadow-strong), var(--glass-highlight) !important; transform: translateY(-2px); }
}

@keyframes provisioning-grow { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }
@keyframes assignment-confirmed { 0%, 100% { box-shadow: var(--glass-shadow); } 45% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--mud-palette-success) 22%, transparent), var(--glass-shadow); } }

@media (max-width: 1099.98px) { .provisioning-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 959.98px) { .provisioning-property-editor { grid-template-columns: 1fr; } .provisioning-save-bar { align-items: stretch; flex-direction: column; } }
@media (max-width: 899.98px) { .provisioning-validation, .provisioning-diagnostics__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 899.98px) { .provisioning-discoveries__guide ol { grid-template-columns: 1fr; } }
@media (max-width: 599.98px) {
    .provisioning-catalog, .provisioning-dashboard, .provisioning-diagnostics, .provisioning-discoveries { padding-inline: 0.75rem !important; }
    .my-devices-page { padding-inline: 0.5rem; }
    .provisioning-catalog__filters, .provisioning-validation, .provisioning-filters, .provisioning-diagnostics__filters, .my-devices-summary, .assignment-controls { grid-template-columns: 1fr; }
    .provisioning-timeline { height: 190px; }
    .provisioning-server-stat__header, .installation-card__header { align-items: stretch; flex-direction: column; }
    .installation-code { max-width: 100%; }
    .assignment-button { width: 100%; }
    .provisioning-softphone-card__header { grid-template-columns: auto minmax(0, 1fr); }
    .provisioning-softphone-card__header > :last-child { grid-column: 1 / -1; justify-self: start; }
    .provisioning-softphone-card__details div { grid-template-columns: 1fr; gap: 0.15rem; }
}

@media (prefers-reduced-motion: reduce) {
    .provisioning-save-bar, .provisioning-properties-table .mud-table-row, .provisioning-catalog .mud-table-row, .provisioning-device-table .mud-table-row, .provisioning-diagnostics__tabs .mud-table-row, .provisioning-discovery-table .mud-table-row, .provisioning-model-card, .provisioning-server-stat, .installation-card, .provisioning-softphone-card { transition: none; animation: none; }
    .provisioning-model-card:hover, .provisioning-server-stat:hover, .installation-card:hover, .provisioning-softphone-card:hover { transform: none; }
}
