.ztool-m3u { min-width: 0; }
.ztool-m3u-form { display: grid; gap: 20px; }
.ztool-m3u-field { display: grid; gap: 8px; min-width: 0; }
.ztool-m3u-field label { color: var(--ink); font-weight: 600; }
.ztool-m3u-field textarea { width: 100%; max-width: 100%; min-height: 280px; padding: 16px; resize: vertical; font: 400 14px/1.6 var(--mono); }
.ztool-m3u-field input { width: 100%; max-width: 100%; padding: 12px; }
.ztool-m3u-field small, .ztool-m3u-note { color: var(--ink-2); font-size: var(--fs-small); overflow-wrap: anywhere; }
.ztool-m3u-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 16px; }
.ztool-m3u-status { min-height: 1.6em; margin-block: 20px; color: var(--ink); }
.ztool-m3u-results { border-top: 1px solid var(--line); padding-top: 28px; }
.ztool-m3u-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-block: 24px; }
.ztool-m3u-counts > div { border-top: 1px solid var(--line); padding-top: 12px; }
.ztool-m3u-counts dt { font-size: var(--fs-small); }
.ztool-m3u-counts dd { margin: 8px 0; font: 500 clamp(1.8rem, 4vw, 3rem)/1.2 var(--sans); color: var(--ink); }
.ztool-m3u-scroll { width: 100%; overflow-x: auto; margin-block: 24px; border: 1px solid var(--line); }
.ztool-m3u-table { width: 100%; min-width: 660px; border-collapse: collapse; font-size: var(--fs-small); }
.ztool-m3u-table caption { text-align: left; padding: 16px; color: var(--ink); }
.ztool-m3u-table th, .ztool-m3u-table td { text-align: left; padding: 14px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
.ztool-m3u-table th { background: var(--mist-1); color: var(--ink); }
.ztool-m3u-table button { min-height: 44px; padding: 8px; border: 1px solid var(--line); background: var(--mist-0); color: var(--ink); font: inherit; text-align: left; }
.ztool-m3u-severity { font-family: var(--mono); text-transform: capitalize; }
.ztool-m3u-groups { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-block: 20px; }
.ztool-m3u button:disabled { opacity: .5; cursor: default; }
.ztool-m3u [hidden] { display: none; }
.ztool-m3u :focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
@media (max-width: 600px) {
  .ztool-m3u-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ztool-m3u-actions > .btn { width: 100%; }
}
