.kiway-skeleton-region { display: contents; }
.kiway-loading-announcement { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.kiway-skeleton-value { display:inline-block; vertical-align:baseline; }
.kiway-skeleton-value.is-loading { min-width:var(--skeleton-width); min-height:var(--skeleton-height); position:relative; color:transparent!important; border-radius:4px; }
.kiway-skeleton-value.is-loading > * { visibility:hidden; }
.kiway-skeleton-value.is-loading::after,
.kiway-skeleton-region.is-loading.mask-inputs .mud-input::after,
.kiway-skeleton-region.is-loading [data-skeleton]::after,
.kiway-skeleton-region.is-loading .mud-switch-span::after,
.kiway-grid-skeleton-cell > span {
    background:linear-gradient(100deg,rgba(150,155,163,.16) 25%,rgba(195,200,207,.42) 45%,rgba(150,155,163,.16) 65%);
    background-size:250% 100%; animation:kiway-layout-shimmer 1.6s ease-in-out infinite;
    border-radius:4px;
}
.kiway-skeleton-value.is-loading::after { content:""; position:absolute; inset:0; }
/* Keep the actual Mud input, border, label, helper text and spacing in the layout. */
.kiway-skeleton-region.is-loading.mask-inputs .mud-input { position:relative; }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input > :not(label):not(fieldset):not(.mud-input-adornment),
.kiway-skeleton-region.is-loading [data-skeleton] > * { visibility:hidden; }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input::after { content:""; position:absolute; left:14px; right:14px; top:50%; height:1em; transform:translateY(-50%); border:0!important; }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input-label-inputcontrol { transform:translate(0,1.5px) scale(.75); transform-origin:top left; }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input-label-filled { transform:translate(12px,10px) scale(.75); }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input-label-outlined { transform:translate(14px,-6px) scale(.75); background:var(--mud-palette-surface); }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input:has(.mud-input-adornment-end)::after { right:42px; }
.kiway-skeleton-region.is-loading.mask-inputs .mud-input:has(textarea)::after { top:34px; bottom:12px; height:auto; transform:none; mask-image:repeating-linear-gradient(to bottom,#000 0 14px,transparent 14px 26px); }
.kiway-skeleton-region.is-loading .mud-checkbox .mud-icon-button svg,.kiway-skeleton-region.is-loading .mud-switch-base svg { opacity:0; }
.kiway-skeleton-region.is-loading .mud-checkbox .mud-icon-button::after,.kiway-skeleton-region.is-loading .mud-switch-base::after { content:""; position:absolute; width:20px; height:20px; border-radius:4px; background:rgba(170,175,185,.25); }
.kiway-skeleton-region.is-loading .mud-switch-span { position:relative; }
.kiway-skeleton-region.is-loading .mud-switch-span > * { visibility:hidden; }
.kiway-skeleton-region.is-loading .mud-switch-span::after { content:""; position:absolute; width:36px; height:20px; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:12px; }
.kiway-skeleton-region.is-loading [data-skeleton] { position:relative; color:transparent!important; }
.kiway-skeleton-region.is-loading [data-skeleton]::after { content:""; position:absolute; inset:3px 0; }
.kiway-grid-skeleton { width:100%; }
.kiway-grid-skeleton-row { display:grid; grid-template-columns:var(--skeleton-columns,1fr); min-height:52px; border-bottom:1px solid var(--mud-palette-table-lines); }
.kiway-grid-skeleton.is-dense .kiway-grid-skeleton-row { min-height:36px; }
.kiway-grid-skeleton-row:last-child { border-bottom:0; }
.kiway-grid-skeleton-cell { display:flex; align-items:center; min-width:0; padding:12px 16px; }
.kiway-grid-skeleton.is-dense .kiway-grid-skeleton-cell { padding:6px 16px; }
.kiway-grid-skeleton-cell > span { display:block; height:16px; width:72%; }
.kiway-grid-skeleton-cell:nth-child(even) > span { width:56%; }
.mud-table:has(.kiway-grid-skeleton) .mud-progress-linear { display:none; }
.mud-table:has(.mud-table-loading) tbody tr:not(:has(.kiway-grid-skeleton)) td { position:relative; color:transparent; }
.mud-table:has(.mud-table-loading) tbody tr:not(:has(.kiway-grid-skeleton)) td > * { visibility:hidden; }
.mud-table:has(.mud-table-loading) tbody tr:not(:has(.kiway-grid-skeleton)) td::after { content:""; position:absolute; left:16px; right:24px; top:50%; height:16px; transform:translateY(-50%); background:linear-gradient(100deg,rgba(150,155,163,.16) 25%,rgba(195,200,207,.42) 45%,rgba(150,155,163,.16) 65%); background-size:250% 100%; animation:kiway-layout-shimmer 1.6s ease-in-out infinite; border-radius:4px; }
.kiway-chart-skeleton { display:grid; grid-template-columns:44px 1fr; grid-template-rows:1fr 36px; padding:16px; gap:12px; }
.kiway-chart-skeleton-axis,.kiway-chart-skeleton-plot { display:flex; flex-direction:column; justify-content:space-between; }
.kiway-chart-skeleton-axis { align-items:flex-end; }
.kiway-chart-skeleton-plot { border-left:1px solid var(--mud-palette-lines-default); border-bottom:1px solid var(--mud-palette-lines-default); }
.kiway-chart-skeleton-plot > div { border-top:1px solid var(--mud-palette-lines-default); width:100%; }
.kiway-chart-skeleton-legend { grid-column:1/-1; display:flex; gap:24px; align-items:center; justify-content:center; }
.kiway-chart-skeleton.is-donut { grid-template-columns:1fr; justify-items:center; }
.kiway-chart-skeleton-ring { aspect-ratio:1; height:100%; max-width:100%; border:32px solid rgba(170,175,185,.23); border-radius:50%; }
@keyframes kiway-layout-shimmer { from { background-position:100% 0; } to { background-position:-100% 0; } }
@media(prefers-reduced-motion:reduce) {
    .kiway-skeleton-value.is-loading::after, .kiway-skeleton-region.is-loading .mud-input::after,
    .kiway-skeleton-region.is-loading [data-skeleton]::after, .kiway-grid-skeleton-cell > span,
    .kiway-skeleton-region.is-loading .mud-switch-span::after,
    .mud-table:has(.mud-table-loading) tbody tr td::after { animation:none; }
}
