.ifm-audio { min-width: 0; display: grid; grid-template-columns: 38px 38px minmax(110px,1fr) 38px auto; align-items: center; gap: 8px; border: 1px solid rgba(23,43,77,.1); border-radius: 15px; padding: 8px 10px; background: rgba(247,243,235,.78); transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.ifm-audio.is-playing { border-color: rgba(52,123,82,.3); background: rgba(241,248,243,.92); box-shadow: 0 7px 20px rgba(23,43,77,.07); }
.ifm-audio__play { width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--navy,#172b4d); color: #fff; cursor: pointer; font-size: 12px; transition: transform .16s ease, background .16s ease; }
.ifm-audio__play:hover { transform: translateY(-1px); }
.ifm-audio__play:focus-visible, .ifm-audio__progress:focus-visible { outline: 3px solid rgba(40,103,166,.2); outline-offset: 2px; }
.ifm-audio__play:disabled { opacity: .38; cursor: not-allowed; }
.ifm-audio.is-playing .ifm-audio__play { background: var(--green,#347b52); }
.ifm-audio__time { color: var(--navy,#172b4d); font-size: 9px; font-weight: 850; font-variant-numeric: tabular-nums; text-align: center; }
.ifm-audio__progress { width: 100%; accent-color: var(--navy,#172b4d); cursor: pointer; }
.ifm-audio__progress:disabled { opacity: .35; cursor: not-allowed; }
.ifm-audio__native { border-radius: 999px; padding: 6px 7px; color: var(--navy,#172b4d); font-size: 8px; font-weight: 850; text-decoration: none; white-space: nowrap; }
.ifm-audio__native:hover { background: rgba(23,43,77,.07); }
.ifm-audio__status { grid-column: 1 / -1; display: none; color: var(--red,#d65b4a); font-size: 8px; font-weight: 800; text-align: center; }
.ifm-audio__status:not(:empty) { display: block; }
.ifm-audio > audio { display: none; }
.timeline-card .ifm-audio, .kc-flow-list .ifm-audio { width: 100%; margin-top: 12px; }
@media (max-width: 520px) {
    .ifm-audio { grid-template-columns: 34px 31px minmax(58px,1fr) 31px auto; gap: 4px; padding: 7px; }
    .ifm-audio__play { width: 32px; height: 32px; }
    .ifm-audio__native { padding-inline: 5px; font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) {
    .ifm-audio, .ifm-audio__play { transition: none; }
}
