/*
 * LiveTV.eu - TV discovery: categoriepagina's, filters, chips, My TV, zappen.
 * Gebruikt de bestaande tokens uit style.css (--panel, --line, --muted, --accent ...).
 */

.dc-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 32px;margin:6px 0 10px}
.dc-hero-copy{max-width:760px}
.dc-hero h1{margin:.1em 0 .3em}
.dc-h1-sub{font-size:.55em;font-weight:600;color:var(--muted)}
.dc-lead{margin:0 0 .6em;font-size:1.06rem;color:#c9d7ec;max-width:68ch}
.dc-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:.4em 0 0;padding:0;list-style:none;color:var(--muted);font-size:.9rem}
.dc-stats b{color:var(--text)}
.dc-h2{margin:0 0 12px;font-size:1.15rem}
.dc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.dc-chips a{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;
  background:var(--panel);color:var(--text);text-decoration:none;font-size:.9rem;font-weight:600}
.dc-chips a:hover{border-color:var(--accent);color:#fff}
.dc-chips a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dc-chips span{font-size:.78rem;font-weight:500;color:var(--muted)}
.dc-chips .flag{width:20px;height:15px;border-radius:2px}
.dc-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--panel)}
.dc-filters label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted);min-width:0}
.dc-filters select{min-height:40px;max-width:100%;padding:0 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font:inherit}
.dc-filters .dc-check{flex-direction:row;align-items:center;gap:8px;min-height:40px;font-size:.9rem;color:var(--text)}
.dc-filters .btn{min-height:40px}
@media (max-width:599px){
  .dc-filters label{flex:1 1 100%}
  .dc-filters select{width:100%}
}

/* -------------------------------------------------------------- zappen */
.dc-surf{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.dc-surf a{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;
  color:var(--text);text-decoration:none;font-size:.88rem;max-width:100%}
.dc-surf a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:24ch}
.dc-surf a:hover{border-color:var(--accent)}
.dc-surf a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dc-surf small{color:var(--muted);font-size:.74rem;align-self:center}

/* --------------------------------------------------------------- My TV */
.mytv-empty{padding:16px;border:1px dashed var(--line-2);border-radius:var(--radius-sm);color:var(--muted)}
.mytv-recent{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0;padding:0;list-style:none}
.mytv-recent a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--panel);color:var(--text);text-decoration:none}
.mytv-recent a:hover{border-color:var(--accent)}
.mytv-recent small{color:var(--muted)}

/* ---------------------------------------------------------- categorie-hub */
.dc-groups{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0 0 8px}
.dc-group{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.dc-group h2{margin:0 0 10px;font-size:1rem;letter-spacing:.04em}
.dc-group ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.dc-group a{display:flex;justify-content:space-between;gap:10px;color:var(--text);text-decoration:none}
.dc-group a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.dc-group a span{color:var(--muted);font-size:.85rem}
.dc-group .dc-sub a{padding-inline-start:12px;font-size:.92rem}

/* ------------------------------------------------- filtersysteem (v2) */
.dcf-layout{display:grid;gap:20px;align-items:start;margin:8px 0 0}
.dcf-results{min-width:0}
.dcf{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.dcf-form{display:flex;flex-direction:column;max-height:inherit}
.dcf-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.dcf-head h2{margin:0;font-size:1rem;letter-spacing:.03em}
.dcf-x{display:none;width:40px;height:40px;border:1px solid var(--line-2);border-radius:10px;background:transparent;color:var(--text);cursor:pointer}
.dcf-x svg{width:18px;height:18px}
.dcf-body{display:flex;flex-direction:column;gap:14px;padding:14px 16px;overflow:auto}
.dcf-field{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:0;font-size:.8rem;color:var(--muted);min-width:0}
.dcf-field legend{padding:0;margin:0 0 6px;font-size:.8rem;color:var(--muted)}
.dcf-field select,.dcf-field input[type=search]{width:100%;min-height:42px;padding:0 10px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--text);font:inherit;font-size:.92rem}
.dcf-field select:focus-visible,.dcf-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dcf-radios label{display:flex;align-items:center;gap:8px;min-height:32px;color:var(--text);font-size:.9rem;cursor:pointer}
.dcf-radios input{accent-color:var(--accent);width:18px;height:18px}
.dcf-radios small{font-size:.74rem;line-height:1.4;color:var(--muted)}
.dcf-find{margin-bottom:4px}
.dcf-actions{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}
.dcf-actions .btn{flex:1;justify-content:center;min-height:42px}
.dcf-open{display:none;align-items:center;gap:8px;min-height:42px}
.dcf-open .nav-ic{width:16px;height:16px}
.dcf-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent);color:#04121f;font-size:.78rem;font-weight:700}
.dcf-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px}
.dcf-total{margin:0;font-size:.95rem}
.dcf-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.dcf-chips a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--accent);border-radius:999px;
  color:var(--text);text-decoration:none;font-size:.85rem;background:rgba(56,189,248,.08)}
.dcf-chips a span{font-size:1.05rem;line-height:1;color:var(--muted)}
.dcf-chips a:hover span{color:#fff}
.dcf-chips a:focus-visible,.dcf-open:focus-visible,.dcf-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dcf-chips .dcf-clear{border-color:var(--line-2);background:transparent;color:var(--muted)}
.dc-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;font-size:.9rem;color:var(--muted);text-decoration:none}
.dc-back:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.dc-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:.3em 0 0;padding:0;list-style:none;color:var(--muted);font-size:.9rem}
.dc-facts b{color:var(--text)}
@media (min-width:1024px){
  .dcf-layout{grid-template-columns:280px minmax(0,1fr)}
  .dcf{position:sticky;top:12px;max-height:calc(100vh - 24px);display:flex;flex-direction:column}
  .dcf-form{min-height:0;flex:1}
  .dcf-body{flex:1;min-height:0}
}
@media (max-width:1023px){
  /* Zonder JS staat het paneel gewoon boven de resultaten; met JS wordt het een lade. */
  html.js .dcf-open{display:inline-flex;justify-self:start}
  html.js .dcf{position:fixed;inset:0;z-index:110;border-radius:0;border:0;background:var(--bg-2);display:none;flex-direction:column}
  html.js .dcf.is-open{display:flex}
  html.js .dcf-form{flex:1;min-height:0}
  html.js .dcf-body{flex:1;min-height:0;overscroll-behavior:contain}
  html.js .dcf-x{display:inline-grid;place-items:center}
  html.js body.dcf-locked{overflow:hidden}
}
@media (prefers-reduced-motion:no-preference){
  .dcf-chips a{transition:border-color .15s,background-color .15s}
}
.dc-listfind{max-width:420px;margin:0 0 8px}
.grid [hidden],[data-list-group][hidden]{display:none!important}
