/* ══════════════════════════════════════════════════════
   MD3 State Layer Utility Classes
   Adds a semi-transparent overlay on interactive states.
   Apply via class="m3-state-layer" on an element with
   position: relative.
   ══════════════════════════════════════════════════════ */

.m3-state-layer {
    position: relative;
    overflow: hidden;
}

.m3-state-layer::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: currentColor;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--m3-sys-motion-duration-short2) var(--m3-sys-motion-easing-standard);
}

.m3-state-layer:hover::after {
    opacity: var(--m3-sys-state-hover-opacity);
}

.m3-state-layer:focus-visible::after {
    opacity: var(--m3-sys-state-focus-opacity);
}

.m3-state-layer:active::after {
    opacity: var(--m3-sys-state-pressed-opacity);
}

/* ══════════════════════════════════════════════════════
   MD3 Focus Ring (Accessibility)
   Standard focus indicator for keyboard navigation.
   ══════════════════════════════════════════════════════ */

.m3-focus-ring:focus-visible {
    outline: 2px solid var(--m3-sys-color-primary) !important;
    outline-offset: 2px !important;
}

/* Adjustments for specific shapes */
.m3-focus-ring--inset:focus-visible {
    outline-offset: -2px !important;
}

/* Optional: Secondary color variant */
.m3-focus-ring-secondary:focus-visible {
    outline-color: var(--m3-sys-color-secondary) !important;
}