/* DDDTech Apps V1.1.0 */
.dddtech-apps-hub,
.dddtech-wtd { box-sizing: border-box; }
.dddtech-apps-hub *,
.dddtech-wtd * { box-sizing: border-box; }

.dddtech-apps-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.6vw, 32px);
}
.dddtech-app-card {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  min-height: 250px;
  overflow: hidden;
  border: 2px solid #D6B000;
  border-radius: 24px;
  background: #fff;
  color: #292a28;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(28,34,32,.07);
}
.dddtech-app-card--active { border-top: 6px solid #D6B000; }
.dddtech-app-card--active:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(28,34,32,.11); }
.dddtech-app-card-icon,
.dddtech-app-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef3ed;
}
.dddtech-app-card-icon img { width: 82px; height: 82px; object-fit: contain; border-radius: 18px; }
.dddtech-app-card-placeholder { font-size: 2rem; font-weight: 800; color: #758075; background: #f0f0ed; }
.dddtech-app-card-body { padding: clamp(22px, 3vw, 34px); }
.dddtech-app-card-body h2 { margin: .45rem 0 .65rem; font-size: clamp(1.35rem, 1.15rem + .45vw, 1.75rem); }
.dddtech-app-card-body p { margin: 0; color: #606760; line-height: 1.55; }
.dddtech-app-badge { display: inline-block; padding: .35rem .65rem; border-radius: 999px; background: #e5eee3; color: #355e3b; font-size: .75rem; font-weight: 750; }
.dddtech-app-card--soon { border-top: 6px solid #D6B000; }
.dddtech-app-card--soon .dddtech-app-badge { background: #efefec; color: #6c716c; }
.dddtech-app-link { display: inline-block; margin-top: 1.2rem; color: #355e3b; font-weight: 760; }

.dddtech-wtd {
  --wtd-g: #355e3b;
  --wtd-bg: #f5f3ee;
  --wtd-card: #fff;
  --wtd-ink: #20251f;
  --wtd-muted: #697267;
  --wtd-line: #d9ddd6;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid var(--wtd-line);
  border-radius: 24px;
  background: var(--wtd-bg);
  color: var(--wtd-ink);
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow: 0 18px 50px rgba(28,34,32,.09);
}
.dddtech-wtd button,
.dddtech-wtd select,
.dddtech-wtd input { font: inherit; }
.dddtech-wtd-header {
  background: var(--wtd-g);
  color: #fff;
  padding: 13px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.dddtech-wtd-header h1 {
  flex: 1;
  min-width: 0;
  margin: 0;
  color: #fff;
  font-family: inherit;
  font-size: clamp(18px, 2.5vw, 24px);
  line-height: 1.15;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dddtech-wtd-header-actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.dddtech-wtd-header-action {
  width: 30px;
  height: 30px;
  padding: 3px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.dddtech-wtd-header-action:hover { background: rgba(255,255,255,.14); }
.dddtech-wtd-header-action svg { width: 22px; height: 22px; fill: currentColor; }
.dddtech-wtd-main { padding: clamp(16px, 2.3vw, 26px); }
.dddtech-wtd .panel {
  background: var(--wtd-card);
  border: 1px solid var(--wtd-line);
  border-radius: 16px;
  padding: 15px;
  margin-bottom: 13px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.dddtech-wtd .row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.dddtech-wtd .grow { flex: 1; min-width: 140px; }
.dddtech-wtd .label { font-size: 12px; color: var(--wtd-muted); margin-bottom: 5px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.dddtech-wtd .control { width: 100%; padding: 11px; border: 1px solid var(--wtd-line); border-radius: 11px; background: #fff; color: var(--wtd-ink); }
.dddtech-wtd .btn { border: 0; border-radius: 12px; padding: 10px 12px; background: #e7ece6; color: #263326; font-weight: 700; cursor: pointer; }
.dddtech-wtd .btn.active,
.dddtech-wtd .btn.primary { background: var(--wtd-g); color: #fff; }
.dddtech-wtd .small { font-size: 12px; padding: 8px 10px; }
.dddtech-wtd .cats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.dddtech-wtd .cat { padding: 12px 6px; text-align: center; border: 1px solid var(--wtd-line); border-radius: 13px; background: #fff; color: var(--wtd-ink); font-size: 13px; cursor: pointer; }
.dddtech-wtd .cat.active { background: #dfe9df; border-color: #77937c; font-weight: 700; }
.dddtech-wtd .map-panel { position: relative; }
.dddtech-wtd .map-toolbar { display: flex; justify-content: flex-end; margin-bottom: 8px; }
.dddtech-wtd #map { height: 390px; border-radius: 14px; overflow: hidden; background: #e5e7e3; }
.dddtech-wtd .map-panel.fullscreen { position: fixed; inset: 10px; z-index: 100000; margin: 0; border-radius: 18px; padding: 10px; background: #fff; box-shadow: 0 20px 70px rgba(0,0,0,.3); }
.dddtech-wtd .map-panel.fullscreen #map { height: calc(100vh - 86px); border-radius: 10px; }
.dddtech-wtd .map-panel.fullscreen .status { display: none; }
body.map-open { overflow: hidden; }
.dddtech-wtd .status { font-size: 13px; color: var(--wtd-muted); margin-top: 8px; }
.dddtech-wtd .results { display: grid; gap: 10px; }
.dddtech-wtd .item { padding: 14px; border: 1px solid var(--wtd-line); border-radius: 13px; background: #fff; }
.dddtech-wtd .item h3 { font-family: inherit; font-size: 16px; margin: 0 0 4px; color: var(--wtd-ink); }
.dddtech-wtd .item p { font-size: 13px; margin: 7px 0 0; line-height: 1.45; }
.dddtech-wtd .badge { display: inline-block; padding: 4px 7px; border-radius: 999px; background: #edf1ec; font-size: 11px; margin: 4px 4px 0 0; }
.dddtech-wtd .empty { padding: 20px; text-align: center; color: var(--wtd-muted); }
.dddtech-wtd-tabs { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; margin-bottom: 13px; }
.dddtech-wtd .navbtn { padding: 11px 5px; border-radius: 12px; border: 1px solid var(--wtd-line); background: #fff; color: var(--wtd-ink); font-weight: 700; cursor: pointer; }
.dddtech-wtd .navbtn.active { background: var(--wtd-g); color: #fff; }
.dddtech-wtd .hidden { display: none !important; }
.dddtech-wtd .actions { display: flex; gap: 6px; margin-top: 9px; flex-wrap: wrap; }
.dddtech-wtd .foot { font-size: 11px; color: var(--wtd-muted); padding: 4px 2px 3px; }
.dddtech-wtd .count { font-weight: 700; color: var(--wtd-g); }
.dddtech-wtd .updating { color: var(--wtd-g); font-weight: 700; }
.dddtech-wtd #favorieten h2 { margin-top: 0; font-family: inherit; font-size: 19px; }
.dddtech-wtd .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.38); z-index: 110000; display: none; align-items: flex-start; justify-content: center; padding: 80px 16px 20px; }
.dddtech-wtd .modal-backdrop.open { display: flex; }
.dddtech-wtd .modal-card { width: min(560px,100%); max-height: 80vh; overflow: auto; background: #fff; color: var(--wtd-ink); border-radius: 16px; padding: 17px; box-shadow: 0 12px 40px rgba(0,0,0,.3); }
.dddtech-wtd .modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.dddtech-wtd .modal-head h2 { margin: 0; font-family: inherit; font-size: 19px; }
.dddtech-wtd .modal-close { border: 0; background: #edf1ec; border-radius: 50%; width: 34px; height: 34px; font-size: 23px; line-height: 1; cursor: pointer; }
.dddtech-wtd .setting-row { display: flex; align-items: center; gap: 10px; padding: 10px 2px; border-bottom: 1px solid var(--wtd-line); }
.dddtech-wtd .setting-row input { width: 19px; height: 19px; accent-color: var(--wtd-g); }
.dddtech-wtd .setting-sub { font-size: 12px; color: var(--wtd-muted); }
.dddtech-wtd .leaflet-container { font-family: inherit; }

@media (max-width: 760px) {
  .dddtech-apps-grid { grid-template-columns: 1fr; }
  .dddtech-app-card { grid-template-columns: 92px minmax(0,1fr); min-height: 210px; }
  .dddtech-app-card-icon img { width: 62px; height: 62px; border-radius: 14px; }
  .dddtech-wtd { border-radius: 18px; }
  .dddtech-wtd-main { padding: 16px; }
  .dddtech-wtd .cats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dddtech-wtd #map { height: 300px; }
}
@media (max-width: 520px) {
  .dddtech-app-card { grid-template-columns: 1fr; }
  .dddtech-app-card-icon,
  .dddtech-app-card-placeholder { min-height: 110px; }
  .dddtech-wtd-header { padding: 12px 13px; gap: 8px; }
  .dddtech-wtd-header h1 { font-size: 17px; white-space: normal; }
  .dddtech-wtd-header-actions { gap: 8px; }
  .dddtech-wtd-header-action { width: 28px; height: 28px; }
  .dddtech-wtd-main { padding: 14px; }
  .dddtech-wtd .panel { padding: 13px; }
  .dddtech-wtd #map { height: 270px; }
  .dddtech-wtd .map-panel.fullscreen { inset: 0; border-radius: 0; }
}


/* V1.0.2 - meer lucht op de Apps-hoofdpagina, vooral op telefoon. */
@media (max-width: 760px) {
  .dddtech-apps-hub {
    padding-left: 4px;
    padding-right: 4px;
  }

  .dddtech-app-card-body {
    padding: 26px;
  }
}

@media (max-width: 520px) {
  .dddtech-apps-hub {
    padding-left: 6px;
    padding-right: 6px;
  }

  .dddtech-app-card-body {
    padding: 26px 24px 28px;
  }
}

/* DDDTech Apps V1.1.0 - Wat Kijken We Vandaag? */
.dddtech-tv,
.dddtech-tv * { box-sizing: border-box; }
.dddtech-tv {
  --tv-blue: #1269ae;
  --tv-blue-dark: #0c4f86;
  --tv-blue-soft: #eaf3fa;
  --tv-bg: #f4f6f7;
  --tv-card: #fff;
  --tv-ink: #20252a;
  --tv-muted: #65717a;
  --tv-line: #dbe2e7;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid var(--tv-line);
  border-radius: 24px;
  background: var(--tv-bg);
  color: var(--tv-ink);
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow: 0 18px 50px rgba(28,34,32,.09);
}
.dddtech-tv button,.dddtech-tv input,.dddtech-tv select { font: inherit; }
.dddtech-tv-header {
  min-height: 62px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--tv-blue);
  color: #fff;
}
.dddtech-tv-header h1 {
  flex: 1;
  min-width: 0;
  margin: 0;
  color: #fff;
  font-family: inherit;
  font-size: clamp(18px,2.5vw,24px);
  font-weight: 750;
  line-height: 1.2;
}
.dddtech-tv-header-actions { display:flex; align-items:center; gap:6px; }
.dddtech-tv-header-btn {
  width: 38px; height: 38px; border: 0; border-radius: 50%;
  display: inline-flex; align-items:center; justify-content:center;
  background: transparent; color:#fff; cursor:pointer; font-size: 22px; line-height:1;
}
.dddtech-tv-header-btn:hover { background: rgba(255,255,255,.14); }
.dddtech-tv-header-btn:disabled { opacity:.45; cursor:wait; }
.dddtech-tv-body { padding: clamp(16px,2.5vw,28px); min-height: 560px; }
.dddtech-tv-tip {
  width:100%; display:flex; gap:10px; align-items:center; justify-content:center;
  border:0; border-radius:14px; padding:14px 18px; background:var(--tv-blue); color:#fff; cursor:pointer;
  box-shadow: 0 8px 18px rgba(18,105,174,.18);
}
.dddtech-tv-tip span { font-size:20px; }
.dddtech-tv-section-title { margin:22px 0 12px; font-family:inherit; font-size:18px; }
.dddtech-tv-home-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.dddtech-tv-home-grid button {
  min-height:128px; border:1px solid var(--tv-line); border-radius:18px; background:#fff; color:var(--tv-ink);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; cursor:pointer;
  box-shadow:0 5px 15px rgba(30,50,65,.05);
}
.dddtech-tv-home-grid button:hover { border-color:#8ab8d9; background:#fafdff; }
.dddtech-tv-home-grid button span { font-size:34px; color:var(--tv-blue); }
.dddtech-tv-home-grid button strong { font-size:17px; }
.dddtech-tv-source-note { margin-top:16px; padding:12px 14px; border-radius:12px; background:#eef2f4; color:var(--tv-muted); font-size:13px; line-height:1.5; }
.dddtech-tv-filters { margin-bottom:14px; }
.dddtech-tv-filter-grid {
  display:grid; grid-template-columns:repeat(5,minmax(130px,1fr)); gap:10px; padding:14px;
  background:#fff; border:1px solid var(--tv-line); border-radius:16px;
}
.dddtech-tv-filter-grid label { display:flex; flex-direction:column; gap:5px; color:var(--tv-muted); font-size:12px; font-weight:700; }
.dddtech-tv-filter-grid select { width:100%; min-height:42px; border:1px solid var(--tv-line); border-radius:10px; background:#fff; color:var(--tv-ink); padding:7px 9px; }
.dddtech-tv-filter-reset { align-self:end; min-height:42px; border:1px solid #bdcbd5; border-radius:10px; background:#f7fafc; color:var(--tv-blue-dark); cursor:pointer; font-weight:700; padding:7px 12px; }
.dddtech-tv-result-bar { display:flex; justify-content:space-between; align-items:center; margin:12px 2px; color:var(--tv-muted); }
.dddtech-tv-results { display:grid; gap:12px; }
.dddtech-tv-media-card {
  display:grid; grid-template-columns:190px minmax(0,1fr); overflow:hidden; border:1px solid var(--tv-line); border-radius:16px; background:#fff;
  box-shadow:0 3px 12px rgba(30,50,65,.04);
}
.dddtech-tv-card-img { width:100%; height:100%; min-height:160px; object-fit:cover; background:#e9edf0; }
.dddtech-tv-card-img--empty { display:flex; align-items:center; justify-content:center; min-height:160px; font-size:36px; font-weight:800; color:#8b9aa5; }
.dddtech-tv-card-body { padding:16px 18px; }
.dddtech-tv-card-title-row { display:flex; gap:10px; align-items:flex-start; }
.dddtech-tv-title-button { flex:1; border:0; padding:0; background:transparent; color:var(--tv-ink); text-align:left; cursor:pointer; font-size:19px; font-weight:800; }
.dddtech-tv-title-button:hover { color:var(--tv-blue); }
.dddtech-tv-icon-btn { border:0; background:#eef2f4; color:#81909b; width:36px; height:36px; border-radius:50%; cursor:pointer; }
.dddtech-tv-icon-btn.is-active { background:#ffe8ee; color:#c6375b; }
.dddtech-tv-alt-title { margin-top:3px; color:var(--tv-muted); font-size:13px; }
.dddtech-tv-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin:9px 0; color:#4f5d67; font-size:13px; font-weight:650; }
.dddtech-tv-meta .is-seen { color:#39764a; }
.dddtech-tv-badges { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0; }
.dddtech-tv-provider-badge { padding:4px 7px; border-radius:999px; background:var(--tv-blue-soft); color:var(--tv-blue-dark); font-size:11px; font-weight:700; }
.dddtech-tv-card-body p { margin:.55rem 0 0; color:#52616c; font-size:14px; line-height:1.5; }
.dddtech-tv-empty { padding:32px 20px; border:1px dashed #c8d3db; border-radius:16px; text-align:center; color:var(--tv-muted); background:#fff; }
.dddtech-tv-stream-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.dddtech-tv-stream-card { min-height:110px; border:1px solid var(--tv-line); border-radius:16px; background:#fff; cursor:pointer; padding:14px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; }
.dddtech-tv-stream-card:hover { border-color:#8ab8d9; }
.dddtech-tv-stream-card img { width:min(190px,100%); height:58px; object-fit:contain; }
.dddtech-tv-stream-card span { font-weight:750; color:#34424c; }
.dddtech-tv-detail { max-width:860px; margin:0 auto; }
.dddtech-tv-detail-img { width:100%; max-height:390px; object-fit:cover; border-radius:18px; margin-bottom:20px; background:#e9edf0; }
.dddtech-tv-detail h2 { margin:.2rem 0; font-family:inherit; font-size:clamp(26px,4vw,38px); }
.dddtech-tv-detail h3,.dddtech-tv-panel h2,.dddtech-tv-panel h3 { font-family:inherit; }
.dddtech-tv-detail-meta { display:flex; flex-wrap:wrap; gap:10px 16px; margin:10px 0 18px; color:var(--tv-muted); font-weight:650; }
.dddtech-tv-detail p { line-height:1.65; color:#47545d; }
.dddtech-tv-detail-actions { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 24px; }
.dddtech-tv-detail-actions button,.dddtech-tv-provider-link,.dddtech-tv-genre-actions button {
  border:1px solid #b9cbd7; border-radius:11px; background:#fff; color:var(--tv-blue-dark); padding:10px 14px; text-decoration:none; cursor:pointer; font-weight:750;
}
.dddtech-tv-provider-links { display:flex; flex-wrap:wrap; gap:8px; }
.dddtech-tv-panel { max-width:860px; margin:0 auto 14px; padding:20px; border:1px solid var(--tv-line); border-radius:16px; background:#fff; }
.dddtech-tv-genre-actions { display:flex; justify-content:flex-end; margin-bottom:10px; }
.dddtech-tv-genre-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; }
.dddtech-tv-genre-grid label { display:flex; align-items:center; gap:8px; padding:8px 5px; }
.dddtech-tv-genre-grid input { width:18px; height:18px; accent-color:var(--tv-blue); }
.dddtech-tv-search-wrap { padding:9px 12px; background:rgba(18,105,174,.88); }
.dddtech-tv-search { display:flex; align-items:center; gap:8px; max-width:1080px; margin:0 auto; background:#fff; border-radius:13px; padding:5px 8px 5px 12px; }
.dddtech-tv-search span { color:#53636e; font-size:22px; }
.dddtech-tv-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; padding:8px 2px; color:var(--tv-ink); }
.dddtech-tv-search button { width:34px; height:34px; border:0; border-radius:50%; background:#eef2f4; color:#596873; cursor:pointer; font-size:20px; }
.dddtech-app-card-icon--tv { background:#eef5fb; }

@media (max-width: 900px) {
  .dddtech-tv-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dddtech-tv-genre-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .dddtech-tv { border-radius:18px; }
  .dddtech-tv-body { padding:16px; min-height:500px; }
  .dddtech-tv-media-card { grid-template-columns:1fr; }
  .dddtech-tv-card-img { height:190px; min-height:0; }
  .dddtech-tv-stream-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .dddtech-tv-stream-card { min-height:92px; }
  .dddtech-tv-stream-card img { height:46px; }
}
@media (max-width: 480px) {
  .dddtech-tv-header { padding:9px 8px; }
  .dddtech-tv-header h1 { font-size:17px; }
  .dddtech-tv-header-btn { width:34px; height:34px; font-size:20px; }
  .dddtech-tv-home-grid { gap:10px; }
  .dddtech-tv-home-grid button { min-height:104px; }
  .dddtech-tv-home-grid button span { font-size:28px; }
  .dddtech-tv-filter-grid { grid-template-columns:1fr; }
  .dddtech-tv-genre-grid { grid-template-columns:1fr; }
  .dddtech-tv-stream-grid { grid-template-columns:1fr; }
  .dddtech-tv-card-body { padding:15px; }
}
