:root{
  --bg:#f4f6fc; --card:#ffffff; --text:#2c3145; --muted:#8b91a7;
  --line:#eceef6; --primary:#6f7ff2; --primary-2:#5c6ce8; --primary-soft:#eef0ff;
  --amber-bg:#fff8ec; --amber-line:#f3d199; --amber-tx:#a5760a;
  --green-bg:#eafaf1; --green-line:#a8ddc0; --green-tx:#1f8a5b;
  --blue-bg:#e8f2ff; --blue-tx:#2b74c9; --danger:#ef6b6b;
  --radius:16px; --shadow:0 8px 26px rgba(40,55,110,.07);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
.view{min-height:100vh}
.hidden{display:none!important}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.muted{color:var(--muted)}

.btn{border:none;border-radius:12px;padding:11px 16px;font-size:15px;cursor:pointer;font-weight:600;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(111,127,242,.28)}
.btn.primary:hover{background:var(--primary-2)}
.btn.ghost{background:#f3f4fa;color:#5a607a;border:1px solid var(--line)}
.btn.ghost:hover{background:#eceefb}
.btn.link{background:none;color:var(--primary);padding:5px 6px;font-weight:600}
.btn.link:hover{text-decoration:underline}
.btn.danger{background:var(--danger);color:#fff}
.btn.sm{padding:9px 12px;font-size:14px;border-radius:10px}
.btn.disabled,.open-file.disabled{opacity:.5;pointer-events:none;cursor:not-allowed;box-shadow:none}

input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fbfbfe;color:var(--text);font-size:15px;transition:border .15s,box-shadow .15s}
input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}

/* login */
#login-view{display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:100%;max-width:370px;display:flex;flex-direction:column;gap:12px;text-align:center;animation:pop .4s ease}
.brand{font-size:25px}

/* topbar */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(244,246,252,.85);backdrop-filter:blur(8px);z-index:5}
.brand-sm{font-weight:700}
.top-right{display:flex;gap:10px;align-items:center}
.engine{font-size:13px;padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;font-weight:600}
.engine.on{color:var(--green-tx);border-color:var(--green-line);background:var(--green-bg)}
.engine.off{color:var(--muted)}

.container{max-width:820px;margin:0 auto;padding:24px 20px 60px;display:flex;flex-direction:column;gap:22px}
.label{display:block;font-size:14px;color:var(--muted);margin-bottom:9px;font-weight:600}
.paste-row{display:flex;gap:10px}
.paste-row input{flex:1}
.hint{font-size:12px;margin-top:8px}
.result{margin-top:8px}

/* notice + thumbnail */
.notice{border-radius:14px;padding:18px;border:1px solid;margin-top:14px;animation:slideUp .3s ease}
.notice.dup{background:var(--amber-bg);border-color:var(--amber-line)}
.notice.new{background:var(--green-bg);border-color:var(--green-line)}
.notice strong{font-size:15px}
.notice .sub{font-size:13px;color:#6a708a;margin-top:2px}
.result-thumb{width:100%;max-width:380px;aspect-ratio:16/9;object-fit:cover;border-radius:14px;display:block;margin:0 auto 14px;box-shadow:0 10px 24px rgba(40,55,110,.15)}

/* judul asli terdeteksi otomatis */
.detected-title{margin-top:10px;font-weight:700;font-size:15px;line-height:1.35}
.detected-title.muted{font-weight:400;font-size:13px}

/* baris tombol aksi (kartu video baru) */
.action-row{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.action-row .btn{flex:1;min-width:150px}
/* varian 3 tombol sejajar (slim) */
.action-row.three{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex-wrap:nowrap}
.action-row.three .btn{flex:none;width:100%;min-width:0;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15}
.open-file{text-decoration:none}

/* dropdown format & resolusi */
.fmt-picker{margin-top:14px}
.fmt-select{width:100%;padding:12px 40px 12px 14px;border-radius:12px;border:1px solid var(--line);background:#fbfbfe url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238b91a7' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;background-size:15px;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}
.fmt-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.dl-out{margin-top:14px}
.dl-link{display:flex;gap:8px}
.dl-link input{flex:1;font-size:13px}
.open-dl{display:block;text-align:center;text-decoration:none;margin-top:10px}

/* tabs & list */
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{padding:9px 16px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;font-weight:600;transition:all .13s}
.tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 6px 16px rgba(111,127,242,.28)}
.search{margin-bottom:16px}
.list{display:flex;flex-direction:column;gap:12px}
.item-wrap{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;animation:slideUp .3s ease}
.item{display:flex;gap:14px;align-items:stretch;padding:12px}
.item .thumb{width:120px;height:auto;align-self:stretch;object-fit:cover;border-radius:10px;background:#eef0f6;flex-shrink:0}
.item .info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.item .t{font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .sub{font-size:13px;color:var(--muted)}
.item .meta{font-size:12px}
.badge{font-size:12px;padding:4px 10px;border-radius:20px;font-weight:700;align-self:flex-start}
.badge.dicek{background:var(--primary-soft);color:var(--primary)}
.badge.antrian{background:var(--amber-bg);color:var(--amber-tx)}
.badge.diunduh{background:var(--blue-bg);color:var(--blue-tx)}
.badge.disimpan{background:var(--green-bg);color:var(--green-tx)}

/* baris tombol aksi pada tiap item (kotak tombol, bukan teks) */
.acts{display:flex;gap:8px;flex-wrap:wrap;padding:0 12px 12px;border-top:1px solid var(--line);padding-top:12px}
.acts .btn.sm{flex:1;min-width:120px}
.item-detail:not(:empty){padding:0 12px 14px}

.msg{font-size:14px;color:var(--muted);min-height:18px}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(24px);background:#fff;color:var(--text);padding:14px 20px;border-radius:14px;border:1px solid var(--line);box-shadow:0 14px 40px rgba(40,55,110,.18);font-weight:600;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.2,.8,.2,1);z-index:50;border-left:5px solid var(--primary)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{border-left-color:var(--green-tx)}
.toast.warn{border-left-color:var(--amber-tx)}
.toast.err{border-left-color:var(--danger)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(40,50,90,.35);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:60;animation:fade .2s ease}
.modal-box{background:#fff;border-radius:18px;padding:24px;max-width:340px;width:90%;box-shadow:0 24px 60px rgba(40,55,110,.28);animation:pop .28s ease;text-align:center}
.modal-box p{margin-bottom:18px;font-weight:600}
.modal-actions{display:flex;gap:10px;justify-content:center}

/* placeholder thumbnail & chip sumber */
.thumb-ph{display:flex;align-items:center;justify-content:center;background:#eef0f6;color:#9aa2bd}
.result-thumb.thumb-ph{font-size:40px}
.item .thumb.thumb-ph{font-size:26px;min-height:72px}
.src-chip{display:inline-block;margin:8px 0 4px;padding:3px 11px;border-radius:20px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700}

@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes fade{from{opacity:0}to{opacity:1}}

@media(max-width:560px){
  .paste-row{flex-direction:column}
  .fmt-cols{grid-template-columns:1fr}
  .item .thumb{width:96px}
  .action-row{flex-direction:column}
  .action-row .btn{min-width:0}
  .acts{flex-wrap:nowrap}
  .acts .btn.sm{flex:1;min-width:0;padding:9px 6px;font-size:12px}
  /* 3 tombol tetap sebaris walau layar sempit */
  .action-row.three{grid-template-columns:repeat(3,1fr)}
  .action-row.three .btn{padding:9px 4px;font-size:12px}
}

/* ============================================================
   TAMBAHAN FITUR: kategori, catatan, mode simpan/unduh, pemutar
   ============================================================ */

/* Kolom kategori & catatan pada kartu hasil */
.meta-fields{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.mini-label{font-size:12px;font-weight:700;color:var(--muted)}
.meta-fields textarea,.item-extra textarea{width:100%;min-height:56px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fbfbfe;color:var(--text);font-size:14px;font-family:inherit;resize:vertical}
.meta-fields textarea:focus,.item-extra textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}

/* Chip kategori & mode simpan/unduh */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.cat-chip{display:inline-block;padding:3px 10px;border-radius:20px;background:#eef7ff;color:#2b74c9;font-size:12px;font-weight:700}
.mode-chip{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.mode-chip.simpan{background:var(--green-bg);color:var(--green-tx)}
.mode-chip.unduh{background:var(--amber-bg);color:var(--amber-tx)}

/* Area kategori + catatan pada tiap item daftar */
.item-extra{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}
.item-extra .cat-input{font-size:14px}

/* Baris kontrol daftar (cari + filter kategori) */
.list-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.list-controls .search{margin-bottom:0}
.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cat-filter{flex:1;min-width:170px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fbfbfe;font-size:14px;font-weight:600;color:var(--text);cursor:pointer}
.cat-filter:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}

/* Modal kelola kategori */
.cat-modal-box{max-width:460px;width:92%;text-align:left}
.cat-title{margin-bottom:14px}
.cat-list-manage{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow:auto;margin-bottom:14px}
.cat-row{display:flex;gap:6px;align-items:center}
.cat-row .cat-rename{flex:1}
.cat-add-row{display:flex;gap:8px;margin-bottom:16px}
.cat-add-row input{flex:1}

/* Modal pemutar video */
.player-box{max-width:780px;width:94%;text-align:left;padding:16px}
.player-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.player-title{font-weight:700;font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.player-body{width:100%}
.video-frame{position:relative;width:100%;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#000}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play-fallback{text-align:center;padding:24px 10px}
.play-fallback p{margin-bottom:14px;color:var(--muted)}

@media(max-width:560px){
  .filter-row{flex-direction:column;align-items:stretch}
  .cat-filter{min-width:0}
}

/* ============================================================
   TAMBAHAN v2: dashboard, galeri, warna sumber, detail, 3D
   ============================================================ */

/* Latar 3D halus */
.bg-3d{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-3d span{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(70px);opacity:.28;animation:float3d 20s ease-in-out infinite}
.bg-3d span:nth-child(1){background:#8f9bff;top:-120px;left:-80px}
.bg-3d span:nth-child(2){background:#ffb0d6;bottom:-140px;right:-60px;animation-delay:-6s}
.bg-3d span:nth-child(3){background:#8ee9ff;top:40%;left:55%;animation-delay:-12s}
@keyframes float3d{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.1)}66%{transform:translate(-30px,25px) scale(.95)}}

/* Dashboard mini */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stat-pill{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:transform .12s,box-shadow .15s;box-shadow:var(--shadow)}
.stat-pill:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(40,55,110,.12)}
.stat-ic{font-size:20px}
.stat-n{font-size:22px;font-weight:800;line-height:1}
.stat-lb{font-size:12px;color:var(--muted);font-weight:600;text-align:center}

/* Tombol "sudah di-download" */
.btn.done{background:var(--green-bg);color:var(--green-tx);border:1px solid var(--green-line)}
.btn.done:hover{background:#dff5e9}

/* Warna + logo per sumber */
.gchips .src-chip{margin:0}
.src-chip.youtube{background:#ffe9e9;color:#d90000}
.src-chip.instagram{background:linear-gradient(45deg,#feda75,#d62976,#4f5bd5);color:#fff}
.src-chip.tiktok{background:#111;color:#fff}
.src-chip.facebook{background:#e7f0ff;color:#1877f2}
.src-chip.twitter{background:#e8eaed;color:#111}
.src-chip.lainnya{background:var(--primary-soft);color:var(--primary)}

/* Kartu hasil cek (video baru / duplikat) */
.found{animation:slideUp .3s ease}
.found-head{display:flex;flex-direction:column;gap:2px}
.found-badge{align-self:flex-start;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;margin-bottom:6px}
.found-badge.ok{background:var(--green-bg);color:var(--green-tx)}
.found-badge.warn{background:var(--amber-bg);color:var(--amber-tx)}
.result-title{font-weight:700;font-size:16px;line-height:1.35;margin:2px 0}
.sub{font-size:13px}

/* Galeri (grid) untuk Arsip & Histori */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.gcard{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;transform-style:preserve-3d;box-shadow:0 4px 14px rgba(40,55,110,.06)}
.gcard:hover{box-shadow:0 18px 36px rgba(40,55,110,.18)}
.gthumb{position:relative;width:100%;aspect-ratio:16/9;background:#eef0f6}
.gimg{width:100%;height:100%;object-fit:cover;display:block}
.gimg.thumb-ph{display:flex;align-items:center;justify-content:center;font-size:34px;color:#9aa2bd}
.gplay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:36px;opacity:0;background:rgba(20,25,50,.28);color:#fff;transition:opacity .15s}
.gcard:hover .gplay{opacity:1}
.gbody{padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.gtitle{font-weight:700;font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gtitle.big{font-size:17px;-webkit-line-clamp:3}
.gchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gnote{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tilt-card{will-change:transform}

/* Modal detail video */
.detail-modal-box{max-width:560px;width:94%;text-align:left;padding:20px;max-height:90vh;overflow:auto}
.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.detail-htitle{font-weight:700}
.detail-body .result-thumb{margin:0 0 12px;max-width:100%}
.detail-body .action-row .btn{min-width:130px}
#detail-fmt:not(:empty){margin-top:12px}

/* Empty state */
.empty{text-align:center;padding:44px 16px}
.empty-ic{font-size:46px;margin-bottom:10px}

@media(max-width:560px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .grid{grid-template-columns:repeat(2,1fr)}
  .detail-body .action-row .btn{min-width:0}
}

/* ============================================================
   TAMBAHAN v3: toolbar sejajar, Beranda, pop-up kategori, ikon hapus
   ============================================================ */

/* Toolbar global: 3 tombol sejajar, tetap satu baris di HP */
.toolbar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.toolbar .btn{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;white-space:normal}

/* Beranda: judul & daftar terbaru */
.recent-title{margin:22px 0 12px;font-size:15px;font-weight:700}
.recent-empty{padding:18px;border:1px dashed var(--line);border-radius:14px;text-align:center}

/* Tombol pilih kategori (pengganti input) */
.cat-pick{align-self:flex-start;max-width:100%;text-align:left;white-space:normal}
.cat-pick-wrap{display:flex}

/* Tombol hijau "sudah di-download" (varian ok) */
.btn.ok{background:var(--green-bg);color:var(--green-tx);border:1px solid var(--green-line)}
.btn.ok:hover{background:#dff5e9}

/* Tombol ikon (mis. hapus) tetap ringkas */
.btn.icon-btn{padding:9px 12px;font-size:16px;line-height:1;min-width:0;width:auto;flex:0 0 auto}
.acts .btn.icon-btn{flex:0 0 auto;min-width:0}
.detail-body .action-row .btn.icon-btn{min-width:0;flex:0 0 auto}
.cat-row .icon-btn{padding:9px 11px}

/* Area format pada item antrian & detail */
.q-fmt:not(:empty){margin-top:10px;padding:0 12px 12px}
.d-fmt:not(:empty){margin-top:12px}

/* Pop-up pilih kategori */
#pick-modal{z-index:80}
.pick-box{max-width:400px;width:92%;text-align:left;padding:20px}
.pick-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.pick-htitle{font-weight:700}
.pick-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto;margin-bottom:12px}
.pick-opt{text-align:left;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:#fbfbfe;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;transition:all .12s}
.pick-opt:hover{background:var(--primary-soft);border-color:var(--primary)}
.pick-opt.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pick-new-row{display:flex;gap:8px;margin-bottom:10px}
.pick-new-row input{flex:1}
.pick-new-btn{width:100%}

@media(max-width:560px){
  .toolbar{grid-template-columns:repeat(3,1fr)}
  .toolbar .btn{padding:9px 5px;font-size:11.5px}
}

/* ============================================================
   TAMBAHAN v4: link "Buka sumber" + Tab Channel (banner lebar)
   Mengikuti gaya, warna, dan pola yang sudah ada. Tidak mengubah desain lama.
   ============================================================ */

/* Ikon kecil "buka sumber" di kartu galeri (pojok kanan atas thumbnail) */
.gsrc{
  position:absolute; top:8px; right:8px; z-index:2;
  width:30px; height:30px; border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,25,50,.55); color:#fff; text-decoration:none;
  font-size:14px; backdrop-filter:blur(3px);
  opacity:0; transition:opacity .15s, transform .12s;
}
.gcard:hover .gsrc{ opacity:1; }
.gsrc:hover{ background:rgba(20,25,50,.8); transform:translateY(-1px); }
@media(pointer:coarse){ .gsrc{ opacity:1; } }

/* Kartu channel: BANNER LEBAR 16:9 */
.chcard{
  border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease;
  transform-style:preserve-3d; box-shadow:0 4px 14px rgba(40,55,110,.06);
}
.chcard:hover{ box-shadow:0 18px 36px rgba(40,55,110,.18); }
.chbanner{ position:relative; width:100%; aspect-ratio:16/9; background:#eef0f6; overflow:hidden; }
.chimg{ width:100%; height:100%; object-fit:cover; display:block; }
/* Placeholder 📺 berwarna sesuai platform (konsisten dengan thumb-ph) */
.chimg.ch-ph{ display:flex; align-items:center; justify-content:center; font-size:46px; color:#fff; }
.ch-ph.youtube{ background:#d90000; }
.ch-ph.instagram{ background:linear-gradient(45deg,#feda75,#d62976,#4f5bd5); }
.ch-ph.tiktok{ background:#111; }
.ch-ph.facebook{ background:#1877f2; }
.ch-ph.twitter{ background:#111; }
.ch-ph.lainnya{ background:var(--primary); }
/* Chip platform di kanan-atas */
.ch-plat{ position:absolute; top:10px; right:10px; margin:0; z-index:2; box-shadow:0 4px 10px rgba(0,0,0,.18); }
/* Nama channel menumpuk di kiri-bawah dengan gradasi gelap */
.ch-name-grad{
  position:absolute; left:0; right:0; bottom:0; z-index:1;
  padding:26px 14px 12px; display:flex; align-items:flex-end;
  background:linear-gradient(to top, rgba(15,20,45,.82), rgba(15,20,45,0));
}
.ch-name{ color:#fff; font-weight:800; font-size:16px; line-height:1.25; text-shadow:0 1px 4px rgba(0,0,0,.4);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* Cuplikan deskripsi 2 baris di bawah gambar */
.chdesc{ padding:10px 12px 12px; font-size:13px; color:#5a607a; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.chdesc.muted{ color:var(--muted); }
.ch-desc-full{ white-space:pre-wrap; }

/* Form Tambah/Edit channel */
.channel-form-box{ max-width:520px; width:94%; text-align:left; padding:20px; max-height:90vh; overflow:auto; }
.channel-form{ display:flex; flex-direction:column; gap:6px; }
.channel-form .label{ margin-top:6px; }
.channel-form textarea{
  width:100%; min-height:70px; padding:10px 12px; border-radius:12px; border:1px solid var(--line);
  background:#fbfbfe; color:var(--text); font-size:14px; font-family:inherit; resize:vertical;
}
.channel-form textarea:focus{ outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-soft); }
.channel-form .action-row{ margin-top:16px; }

/* Area upload screenshot dengan preview 16:9 */
.ch-drop{
  border:2px dashed var(--line); border-radius:14px; padding:12px; cursor:pointer;
  display:flex; flex-direction:column; gap:10px; align-items:center; text-align:center;
  background:#fbfbfe; transition:border-color .15s, background .15s;
}
.ch-drop:hover, .ch-drop.dragover{ border-color:var(--primary); background:var(--primary-soft); }
.ch-preview{ width:100%; aspect-ratio:16/9; border-radius:10px; overflow:hidden; background:#eef0f6;
  display:flex; align-items:center; justify-content:center; }
.ch-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.ch-preview.thumb-ph{ font-size:44px; color:#9aa2bd; }
.ch-drop-hint{ font-size:13px; color:var(--muted); }
.ch-drop-link{ color:var(--primary); font-weight:700; text-decoration:underline; }

/* Baris kontrol channel */
#page-channel #channel-add-btn{ width:100%; }
