:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  color-scheme:light;
  --navy:#142234;--navy-soft:#223a54;--navy-on:#2d4b69;
  --ink:#263a52;--muted:#7a8b9f;--line:#e2e8f0;--bg:#f3f6fa;
  --white:#fff;--blue:#346bd9;--blue-soft:#edf4ff;--green:#1f9b75;
  --danger:#b64250;--shadow:0 8px 28px rgba(28,46,70,.055);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{color:var(--ink)}
svg.ui-icon,.navitem svg,.brandmark svg,.metric-icon svg,.btn svg,.tablebtn svg{width:16px!important;height:16px!important;max-width:16px!important;max-height:16px!important;min-width:16px!important;min-height:16px!important;display:block;flex:0 0 16px}
.brandmark svg{width:19px!important;height:19px!important;max-width:19px!important;max-height:19px!important;min-width:19px!important;min-height:19px!important}
.metric-icon svg{width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;min-width:20px!important;min-height:20px!important}

/* Layout */
.shell{display:flex;min-height:100vh;min-width:0}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:230px;height:100vh;height:100dvh;overflow:auto;background:var(--navy);color:#c5d2df;padding:20px 12px 18px;scrollbar-width:thin;scrollbar-color:#41556b transparent}
.brand{display:flex;align-items:center;gap:11px;padding:4px 9px 20px;margin-bottom:10px;border-bottom:1px solid #2a3d52}
.brandmark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#1d3853;border:1px solid #31516c;color:#76d5cf}
.brand strong{display:block;color:#fff;font-size:15px;font-weight:650;letter-spacing:-.3px}
.brand small{display:block;margin-top:2px;color:#8ea3b8;font-size:9.5px;letter-spacing:1.05px}
.navlabel{padding:16px 12px 7px;color:#829ab1;font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}
.navitem{position:relative;display:flex;align-items:center;gap:11px;min-height:39px;margin:2px 0;padding:10px 11px;border-radius:8px;color:#c0cede;font-size:12px;font-weight:500;transition:.14s ease}
.navitem svg{color:#8fa9c3}
.navitem:hover{background:#21374e;color:#fff}
.navitem.on{background:var(--navy-on);color:#fff;font-weight:650}
.navitem.on:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:#79b5ff}
.navitem.on svg{color:#b9dcff}
.sidebarend{margin-top:24px;padding:15px 10px 0;border-top:1px solid #2a3d52;color:#879db3;font-size:10px;line-height:1.7}
.main{flex:1;min-width:0;margin-left:230px;width:calc(100% - 230px)}
.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 clamp(18px,3vw,34px);background:#fff;border-bottom:1px solid var(--line)}
.topbar h1{margin:0;color:#263a52;font-size:16px;font-weight:650;letter-spacing:-.3px}
.topbar .caption{margin-top:2px;color:#8392a4;font-size:11px}
.top-right{display:flex;align-items:center;gap:10px;color:#74869b;font-size:11px}
.circle-status{width:7px;height:7px;border-radius:50%;background:#22b89b;box-shadow:0 0 0 4px #ddf7f1}
.container{max-width:1420px;margin:0 auto;padding:25px clamp(15px,2.7vw,34px) 56px}
.mobile-nav{display:none}

/* Common */
.intro{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:19px}
.intro h2{margin:0 0 5px;color:#263951;font-size:23px;font-weight:650;letter-spacing:-.65px}
.sub{margin:0;color:#7e8da0;font-size:12px}
.card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #edf1f5}
.section-head h3{margin:0;color:#2b3e55;font-size:14px;font-weight:650}
.section-head p{margin:4px 0 0;color:#8494a6;font-size:11px}
.section-body{padding:20px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 13px;border:1px solid transparent;border-radius:8px;background:var(--blue);color:#fff;font-size:11.5px;font-weight:600;white-space:nowrap}
.btn:hover{filter:brightness(.97)}
.btn.ghost{background:#fff;border-color:#d9e2eb;color:#536b82}
.btn.soft{background:#edf4ff;color:#315f9f}
.btn.danger{background:#fff1f2;border-color:#f3d0d4;color:#ad3c49}
.btn.tiny{min-height:31px;padding:6px 9px;font-size:10.5px}
.btn.primary-wide{width:100%;min-height:42px}
.tablebtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:6px 9px;border:1px solid #dde5ed;border-radius:7px;background:#fff;color:#526c85;font-size:10.5px;font-weight:550;white-space:nowrap}
.tablebtn:hover{background:#f3f7fb}
.tablebtn.danger{color:#ad3c49;background:#fff4f5;border-color:#f0d3d7}
.actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.actions form{margin:0}
.flash{margin-bottom:17px;padding:12px 14px;border:1px solid #c7e3ef;border-radius:9px;background:#eaf7fd;color:#2e637f;font-size:12px}
.flash.error{border-color:#f0cdd2;background:#fff0f2;color:#994b5d}
.empty{padding:28px;text-align:center;color:#8394a6}
.role-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3fb;color:#416693;font-size:10px;font-weight:600}
.status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#e8f7f0;color:#237859;font-size:10.5px;white-space:nowrap}
.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.status.disabled{background:#fbeaec;color:#ae5060}
.status.expired{background:#fff4e2;color:#996a19}
.footer{margin-top:24px;text-align:right;color:#97a6b4;font-size:10px}

/* Forms */
.field{min-width:0;margin-bottom:15px}
.field label{display:block;margin-bottom:6px;color:#526980;font-size:11px;font-weight:600}
.field input,.field select,.field textarea,select,textarea{width:100%;min-width:0;border:1px solid #d8e2ec;border-radius:8px;background:#fff;padding:9px 11px;font-size:12px;outline:none;transition:border-color .15s,box-shadow .15s}
.field input,.field select{height:40px}
.field textarea,textarea{min-height:105px;resize:vertical;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus,select:focus,textarea:focus{border-color:#9bbce7;box-shadow:0 0 0 3px rgba(72,124,197,.09)}
.field small{display:block;margin-top:6px;color:#8a98a8;font-size:10.5px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:7px}
.pick{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #e2e8ef;border-radius:8px;background:#fafcff;color:#52677e;font-size:11px;cursor:pointer}
.pick input{width:auto;accent-color:var(--blue)}

/* Metrics */
.metricrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}
.metric{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px}
.metric label{display:block;margin-bottom:7px;color:#8291a1;font-size:11px}
.metric .number{color:#263c54;font-size:25px;font-weight:650;letter-spacing:-.8px;line-height:1}
.metric-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:11px;background:#eaf2ff;color:#4674c6}
.metric:nth-child(2) .metric-icon{background:#e7f7f3;color:#209b82}
.metric:nth-child(3) .metric-icon{background:#f0eefc;color:#7068bf}
.two-col{display:grid;grid-template-columns:minmax(290px,.8fr) minmax(560px,1.7fr);gap:17px;align-items:start}

/* Tables */
.tablewrap{width:100%;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:11.5px}
th{padding:11px 13px;text-align:left;background:#f8faff;color:#8492a2;font-size:10px;font-weight:650;letter-spacing:.18px;white-space:nowrap}
td{padding:11px 13px;border-top:1px solid #eef2f5;vertical-align:middle}
tbody tr{transition:background .12s}
tbody tr:hover{background:#fafcff}
.uname{display:block;color:#30475e;font-size:11.5px;font-weight:650}
.idtext{display:block;margin-top:2px;color:#98a5b2;font-size:9.5px}
.tablewrap input:not([type=checkbox]),.tablewrap select{min-height:34px;border:1px solid #dce5ed;border-radius:7px;padding:6px 8px;background:#fff;font-size:11px}

/* Catalog */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid #edf1f5}
.filter-grid{display:grid;grid-template-columns:minmax(180px,2fr) minmax(160px,1fr) 90px auto;width:100%;gap:8px;align-items:center}
.filter-grid input,.filter-grid select{height:37px;border:1px solid #dbe4ed;border-radius:8px;background:#fff;padding:8px 10px;font-size:11px;min-width:0}
.logo-box{display:grid;place-items:center;width:42px;height:38px;/* flex:0 0 42px*/;overflow:hidden;border:1px solid #dde5ed;border-radius:8px;background:#f2f6fa}
.logo-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.logo-fallback{color:#95a6b7;font-size:9px;font-weight:700}
.channel-item{display:flex;align-items:center;gap:10px;min-width:210px}
.channel-item small{display:block;margin-top:2px;color:#8a99a9;font-size:9.5px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;border-top:1px solid #e7edf3;color:#6e8194;font-size:11px}
.edit-card{max-width:900px;margin-inline:auto}
.edit-card .section-body{padding:23px 25px}

/* Drag and drop */
.drag-cell{width:48px;text-align:center}
.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid #dce5ed;border-radius:7px;background:#fff;color:#8799ab;cursor:grab;font-size:15px;line-height:1;user-select:none;touch-action:none}
.drag-handle:hover{background:#edf4ff;border-color:#c8dbf2;color:#3d73b8}
.drag-handle:active{cursor:grabbing}
.drag-handle[disabled],.drag-handle.is-disabled{cursor:not-allowed;opacity:.42;background:#f7f8fa;color:#aab6c2}
.reorder-row{transition:background .12s,opacity .12s,transform .12s}
.reorder-row.dragging{opacity:.46;background:#eaf4ff!important;outline:1px dashed #75a8e3;outline-offset:-1px}
.reorder-row.drop-before{box-shadow:inset 0 2px 0 #4e8ed8}
.reorder-row.drop-after{box-shadow:inset 0 -2px 0 #4e8ed8}
.sort-order{width:58px;color:#8494a5;font-variant-numeric:tabular-nums}
.move-controls{display:inline-flex;gap:4px;margin-left:5px}
.move-btn{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid #dfe6ed;border-radius:7px;background:#fff;color:#71869a;font-size:11px;line-height:1}
.move-btn:hover{background:#f1f6fb}
.sort-help{display:inline-flex;align-items:center;gap:7px;color:#7a8da1;font-size:10.5px}
.sort-help:before{content:"↕";display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#eef4fb;color:#4b78ad;font-weight:700}

/* Groups */
.group-name-form{display:flex;align-items:center;gap:7px;min-width:260px}
.group-name-form input{width:min(360px,100%);min-width:180px}
.group-count{font-variant-numeric:tabular-nums;color:#5e748b}
.group-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}

/* Login */
.login-layout{min-height:100vh;display:grid;place-items:center;padding:22px;background:#eef2f6}
.loginbox{width:min(100%,380px);padding:29px;background:#fff;border:1px solid #e0e7ee;border-radius:11px;box-shadow:0 14px 38px rgba(18,36,58,.09)}
.loginbox .brandmark{width:44px;height:44px;flex-basis:44px;border-radius:10px;background:#173349}
.loginbox h1{margin:15px 0 3px;color:#263b51;font-size:21px;font-weight:650;letter-spacing:-.4px}
.loginbox p{margin:0 0 18px;color:#7b8b9b;font-size:12px}
.loginbox .field input{height:43px}

#toast{position:fixed;right:18px;bottom:18px;z-index:100;padding:10px 14px;border-radius:9px;background:#21374d;color:#fff;box-shadow:0 12px 35px rgba(23,43,76,.25);font-size:11px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s ease}
#toast.show{opacity:1;transform:translateY(0)}
#toast.error{background:#9d3f4b}

@media(max-width:1120px){
  .sidebar{width:205px}.main{margin-left:205px;width:calc(100% - 205px)}
  .two-col{grid-template-columns:1fr}
  .filter-grid{grid-template-columns:1fr 1fr 90px auto}
}
@media(max-width:760px){
  .shell{display:block}.sidebar{display:none}.main{margin-left:0;width:100%}
  .mobile-nav{display:block;background:#182a40;color:#e6edf5;position:relative;z-index:40}
  .mobile-nav>summary{list-style:none;display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 14px;cursor:pointer;font-size:12px;font-weight:650}
  .mobile-nav>summary::-webkit-details-marker{display:none}
  .mobile-nav>summary svg{width:17px!important;height:17px!important;flex:0 0 17px}
  .mobile-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 7px;max-height:65vh;overflow:auto;padding:9px 11px 14px;border-top:1px solid #304158}
  .mobile-nav nav .navlabel{grid-column:1/-1;padding:10px 4px 4px}
  .mobile-nav nav .navitem{margin:0;min-height:37px;padding:9px 8px}
  .mobile-nav-current{margin-left:auto;color:#9eb4ca;font-size:10px;font-weight:450}
  .topbar{height:53px;padding:0 15px}.topbar .caption{display:none}.topbar h1{font-size:14px}.top-right span:last-child{display:none}
  .container{padding:16px 11px 32px}.intro{flex-wrap:wrap}.intro h2{font-size:20px}
  .metricrow{grid-template-columns:1fr 1fr}.metricrow .metric:last-child{grid-column:1/-1}.metric{padding:14px}.metric .number{font-size:22px}
  .form-grid{grid-template-columns:1fr}.section-body{padding:15px}.section-head{padding:15px}
  .filter-grid{grid-template-columns:1fr}.filter-grid .btn{width:100%}
  .tablewrap table{min-width:760px}th,td{padding:10px}
  .pager{align-items:flex-start;flex-wrap:wrap}
  .edit-card .section-body{padding:17px 14px}
  .footer{text-align:center}
}
@media(max-width:390px){.mobile-nav nav{grid-template-columns:1fr}.metricrow{grid-template-columns:1fr}.metricrow .metric:last-child{grid-column:auto}}

/* v15: ordenamiento robusto y formularios inline */
.inline-form{display:inline-flex;align-items:center;gap:4px;margin:0}
body.is-sorting{user-select:none;cursor:grabbing}
body.is-sorting .drag-handle{cursor:grabbing}
.reorder-row.drop-target{box-shadow:inset 0 0 0 1px #7aa8dc;background:#f3f8ff!important}
#toast.toast-error,#toast.error{background:#9d3f4b}

/* =========================================================
   PERUFLIX v17 — catálogo, paginación y UI refinada
   ========================================================= */
:root{--blue-strong:#2f68c7;--blue-hover:#285db6;--soft:#f7f9fc;--soft-blue:#eef5ff;--ring:0 0 0 3px rgba(52,107,217,.12)}
.btn{box-shadow:0 1px 1px rgba(31,55,84,.06);transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}
.btn:hover{filter:none;background:var(--blue-hover);box-shadow:0 4px 12px rgba(52,107,217,.15)}
.btn:active{transform:translateY(1px)}
.btn.ghost:hover{background:#f6f9fc;border-color:#cbd8e5;color:#35536f;box-shadow:none}
.btn:focus-visible,.tablebtn:focus-visible,.order-btn:focus-visible,.drag-handle:focus-visible,.page-link:focus-visible{outline:none;box-shadow:var(--ring)}
.btn-symbol{font-size:15px;line-height:1;margin-top:-1px}
.catalog-card{overflow:hidden}
.catalog-toolbar{align-items:stretch;padding:14px 16px;background:linear-gradient(180deg,#fff,#fbfcfe)}
.catalog-filter{display:grid;grid-template-columns:minmax(210px,1.7fr) minmax(180px,1fr) minmax(150px,.55fr) auto;gap:9px;align-items:end;flex:1;min-width:0}
.catalog-filter label{display:grid;gap:5px;min-width:0;color:#6f8296;font-size:9.5px;font-weight:700;letter-spacing:.2px;text-transform:uppercase}
.catalog-filter input,.catalog-filter select{height:38px;border:1px solid #d8e2ec;border-radius:8px;background:#fff;padding:0 10px;color:#31475e;font-size:11.5px;text-transform:none;letter-spacing:0;outline:none}
.catalog-filter input:focus,.catalog-filter select:focus{border-color:#92b6e7;box-shadow:var(--ring)}
.page-size-control{grid-template-columns:auto 64px auto;align-items:center;column-gap:7px}
.page-size-control>span{grid-column:1/-1}
.page-size-control select{grid-column:1/2;padding-right:22px;font-weight:650}
.page-size-control em{grid-column:2/4;color:#8a99a8;font-size:10px;font-style:normal;font-weight:500;text-transform:none;white-space:nowrap}
.filter-button{height:38px;min-height:38px}
.order-mode{display:flex;align-items:center;gap:7px;min-width:220px;padding:8px 11px;border:1px solid #d9e8fb;border-radius:9px;background:#f5f9ff;color:#52708f}
.order-mode .order-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#4f88d5;box-shadow:0 0 0 4px #e3efff}
.order-mode strong{font-size:10.5px;color:#42688f;white-space:nowrap}
.order-mode small{color:#8297ac;font-size:9.5px;white-space:nowrap}
.hidden-reorder-form{display:none!important}
.channel-tablewrap{max-height:calc(100vh - 285px);min-height:240px;overflow:auto}
.channel-table thead{position:sticky;top:0;z-index:4;box-shadow:0 1px 0 #e7edf3}
.channel-table th{background:#f7f9fc}
.channel-table tbody tr{background:#fff}
.channel-table tbody tr:nth-child(even){background:#fcfdff}
.channel-table tbody tr:hover{background:#f6f9fd}
.channel-table .actions-col{width:76px;text-align:right}
.channel-table td:last-child{text-align:right}
.drag-cell{width:58px;text-align:center;color:#8093a6}
.drag-handle{width:32px;height:32px;gap:2px;flex-direction:column;border-radius:8px;background:#fff}
.drag-handle span{display:block;width:12px;height:2px;border-radius:3px;background:currentColor;opacity:.78}
.drag-handle:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(45,93,151,.10)}
.order-col{min-width:190px}
.order-cell{min-width:190px;white-space:nowrap}
.order-number{display:inline-grid;place-items:center;min-width:34px;height:29px;padding:0 7px;border-radius:7px;background:#f1f5f9;color:#60768b;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums;vertical-align:middle}
.order-buttons{display:inline-flex;align-items:center;gap:3px;margin-left:6px;vertical-align:middle}
.order-btn{display:inline-grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid #dbe4ed;border-radius:7px;background:#fff;color:#667f98;font-size:12px;font-weight:700;line-height:1;transition:.14s ease}
.order-btn:hover{background:#edf5ff;border-color:#c6d9ef;color:#326aa9;transform:translateY(-1px)}
.group-pill{display:inline-block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 8px;border-radius:7px;background:#f3f6fa;color:#5a7188;font-size:10.5px}
.edit-action{min-width:54px;background:#f9fbfd}
.edit-action:hover{background:#eef5ff;border-color:#ccdbec;color:#35679f}
.modern-pager{background:#fbfcfe;padding:11px 15px}
.pager-summary{color:#75879a;font-size:10.5px;white-space:nowrap}
.pager-summary strong{color:#405971;font-weight:700}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.page-link{display:inline-grid;place-items:center;min-width:31px;height:31px;padding:0 9px;border:1px solid #dce5ee;border-radius:7px;background:#fff;color:#5b7288;font-size:10.5px;font-weight:600;transition:.13s ease}
.page-link:hover{background:#eef5ff;border-color:#c8d9ec;color:#356ba8}
.page-link.active{border-color:#346bd9;background:#346bd9;color:#fff;box-shadow:0 4px 10px rgba(52,107,217,.16)}
.page-link.edge{font-size:14px}
.page-gap{display:inline-grid;place-items:center;width:24px;height:31px;color:#9aa8b5;font-size:11px}
.reorder-row.dragging{position:relative;z-index:8;opacity:.68;background:#eaf3ff!important;box-shadow:0 6px 18px rgba(45,87,137,.16)}
.reorder-row.drop-before{box-shadow:inset 0 3px 0 #4b87cf}
.reorder-row.drop-after{box-shadow:inset 0 -3px 0 #4b87cf}
body.is-sorting{cursor:grabbing!important;user-select:none}
body.is-sorting *{cursor:grabbing!important}

@media(max-width:1180px){
  .catalog-filter{grid-template-columns:1fr 1fr 170px auto}
  .order-mode{width:100%;min-width:0}
}
@media(max-width:860px){
  .catalog-filter{grid-template-columns:1fr 1fr}
  .page-size-control{grid-template-columns:auto 70px auto}
  .filter-button{align-self:end}
  .channel-tablewrap{max-height:none}
}
@media(max-width:620px){
  .catalog-filter{grid-template-columns:1fr}
  .page-size-control{grid-template-columns:auto 70px auto}
  .page-size-control>span{grid-column:1/-1}
  .filter-button{width:100%}
  .order-mode{align-items:flex-start;flex-wrap:wrap}
  .order-mode small{white-space:normal}
  .modern-pager{align-items:flex-start}
  .pagination{justify-content:flex-start}
}

/* =========================================================
   PERUFLIX v20 — editor secuencial + vista previa multimedia
   ========================================================= */
.editor-intro{align-items:center}
.editor-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.editor-top-actions .btn{min-height:36px;padding:8px 12px}
.editor-top-actions .is-disabled{opacity:.38;pointer-events:none;cursor:not-allowed}
.editor-position{color:#6c84a0;font-weight:650}

.editor-navigator{margin-bottom:18px;overflow:hidden}
.compact-head{padding:15px 18px;background:linear-gradient(180deg,#fff,#fbfcfe)}
.compact-head h3{font-size:13px}
.compact-head p{margin:3px 0 0;color:#8797a7;font-size:10.5px}
.editor-navigator-body{padding:14px 18px}
.editor-selectors{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(300px,1.5fr) auto;gap:10px;align-items:end}
.compact-field{margin:0}
.compact-field>span{display:block;margin-bottom:6px;color:#657a90;font-size:10px;font-weight:700;letter-spacing:.25px;text-transform:uppercase}
.compact-field select{height:39px;border-color:#d7e1eb;background:#fff}
.editor-selector-actions{display:flex;align-items:center;height:39px}
.editor-selector-actions .btn{height:39px}
.editor-empty-state{max-width:850px;margin:0 auto;text-align:center}
.editor-empty-state .section-body{padding:54px 24px}
.editor-empty-state h3{margin:10px 0 5px;font-size:17px;color:#39516a}
.editor-empty-state p{margin:0;color:#8494a5;font-size:12px}
.empty-editor-icon{display:grid;place-items:center;width:48px;height:48px;margin:auto;border-radius:14px;background:#edf4fd;color:#4f7fb7;font-size:20px;font-weight:700}

.channel-editor-card{max-width:980px}
.editor-card-head{align-items:center;background:linear-gradient(180deg,#fff,#fcfdff)}
.editor-card-head h3{font-size:15px}
.editor-card-head p{margin:3px 0 0;color:#8a99a8;font-size:10.5px}
.media-preview-block{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:stretch;margin-bottom:17px}
.media-url-field{margin:0}
.image-preview-card{display:flex;align-items:center;gap:12px;min-height:126px;padding:12px;border:1px solid #dfe7ef;border-radius:11px;background:linear-gradient(145deg,#fbfdff,#f5f8fb);transition:border-color .15s,box-shadow .15s}
.image-preview-card:hover{border-color:#cbd9e7;box-shadow:0 5px 15px rgba(31,64,99,.06)}
.image-preview-frame{position:relative;display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border:1px solid #d7e1eb;background:#fff;box-shadow:0 3px 10px rgba(34,60,88,.06)}
.image-preview-card.is-logo .image-preview-frame{width:92px;height:92px;border-radius:13px}
.image-preview-card.is-poster .image-preview-frame{width:78px;height:112px;border-radius:10px}
.image-preview-frame img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.image-preview-card.is-poster .image-preview-frame img{object-fit:cover}
.image-preview-empty{display:grid;place-items:center;gap:3px;color:#91a1b1;text-align:center}
.image-preview-empty span{display:grid;place-items:center;width:36px;height:30px;border-radius:7px;background:#eef3f8;color:#6f879e;font-size:10px;font-weight:800;letter-spacing:.6px}
.image-preview-empty small{font-size:9px}
.image-preview-copy{display:grid;gap:4px;min-width:0}
.image-preview-copy strong{color:#40586f;font-size:11.5px}
.image-preview-copy span{color:#8798a9;font-size:10px;line-height:1.35}
.editor-savebar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:8px;margin:22px -22px -20px;padding:13px 22px;border-top:1px solid #e6ebf1;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.editor-savebar .btn:first-child{min-width:130px}

/* Catálogo: logos cuadrados y pósters verticales reconocibles */
.channel-item .logo-box.poster-thumb{width:38px;height:52px;flex-basis:38px;border-radius:7px;background:#f4f6f9}
.channel-item .logo-box.poster-thumb .logo-img{width:100%;height:100%;object-fit:cover}
.channel-table tbody tr:has(.poster-thumb) td{padding-top:8px;padding-bottom:8px}

/* Micro-ajustes de UX */
.field input[type=url]{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:11px}
.channel-editor-card textarea{line-height:1.5}
.channel-editor-card .pickgrid{margin-top:4px}

@media(max-width:900px){
  .editor-selectors{grid-template-columns:1fr 1fr}.editor-selector-actions{grid-column:1/-1;height:auto}.editor-selector-actions .btn{width:100%}
  .media-preview-block{grid-template-columns:1fr}.image-preview-card{min-height:116px}
}
@media(max-width:620px){
  .editor-intro{align-items:flex-start}.editor-top-actions{width:100%;justify-content:flex-start}.editor-top-actions .btn{flex:1;min-width:92px}
  .editor-selectors{grid-template-columns:1fr}
  .editor-selector-actions{grid-column:auto}
  .editor-navigator-body{padding:13px}
  .image-preview-card{align-items:center}
  .image-preview-card.is-logo .image-preview-frame{width:78px;height:78px}
  .image-preview-card.is-poster .image-preview-frame{width:68px;height:98px}
  .editor-savebar{margin:18px -14px -17px;padding:11px 14px}.editor-savebar .btn{flex:1}
}

/* =========================================================
   PERUFLIX v21 — Editor M3U contextual
   ========================================================= */
.catalog-intro-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.m3u-intro{align-items:center}
.m3u-type-badge{display:inline-flex;align-items:center;justify-content:center;min-height:29px;padding:6px 10px;border-radius:999px;background:#edf4ff;color:#3c68a6;border:1px solid #d7e4f5;font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}
.m3u-type-badge.type-movie{background:#f4efff;color:#7457a7;border-color:#e4d8fa}.m3u-type-badge.type-series{background:#eef7ff;color:#39779c;border-color:#d5e9f7}.m3u-type-badge.type-radio{background:#eff9f7;color:#2f7f72;border-color:#d3ece6}
.m3u-source-card,.m3u-editor-card{overflow:hidden}.m3u-source-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(245px,.55fr);gap:18px;align-items:stretch}.m3u-source-grid textarea{min-height:360px;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:11px;line-height:1.48}.m3u-file-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:360px;padding:24px;border:1px dashed #c9d7e5;border-radius:12px;background:linear-gradient(145deg,#fbfdff,#f5f8fc)}.m3u-file-panel strong{font-size:13px;color:#40586e}.m3u-file-panel p{margin:6px 0 15px;color:#8494a5;font-size:11px}.m3u-file-panel input[type=file]{width:100%;max-width:270px;font-size:11px}.m3u-file-panel small{margin-top:12px;color:#94a2b1;font-size:9.5px;line-height:1.4}.m3u-drop-icon{display:grid;place-items:center;width:58px;height:58px;margin-bottom:13px;border-radius:16px;background:#eaf2fc;color:#4477ad;font-weight:850;letter-spacing:.7px}.m3u-actionbar{display:flex;justify-content:flex-end;margin-top:15px}.m3u-actionbar .btn{min-width:190px}
.m3u-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.m3u-metrics .metric-icon{font-size:12px;font-weight:850}.m3u-metric-label{font-size:19px;font-weight:700;color:#2e465e;line-height:1.15}
.m3u-toolbar{align-items:end}.m3u-filter-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.m3u-rename-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(155px,1fr) auto;gap:7px;align-items:end}.m3u-rename-form select,.m3u-rename-form input{height:38px;border:1px solid #d8e2ec;border-radius:9px;padding:8px 10px;background:#fff;color:#344a60;font-size:11px}.m3u-rename-form .btn{height:38px}
.m3u-tablewrap{max-height:62vh}.m3u-table{min-width:1320px}.m3u-table th{position:sticky;top:0;z-index:2}.m3u-table td{padding:8px 7px;vertical-align:middle}.m3u-table input{min-width:130px;width:100%;height:36px;border:1px solid #d9e3ed;border-radius:8px;padding:7px 9px;background:#fff;color:#33495f;font-size:10.5px}.m3u-table input:focus{border-color:#9db8d7;box-shadow:0 0 0 3px rgba(75,122,173,.09);outline:none}.m3u-table td:nth-child(2){min-width:190px}.m3u-table td:nth-child(3){min-width:230px}.m3u-table td:nth-child(4){min-width:310px}.m3u-table td:nth-child(5){min-width:315px}.m3u-table td:nth-child(6){min-width:165px}.m3u-row-number{width:54px;color:#8c9aaa;font-size:10px;font-variant-numeric:tabular-nums}.m3u-url-input{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important}.m3u-image-cell{display:grid;grid-template-columns:42px minmax(220px,1fr);gap:7px;align-items:center}.m3u-image-cell .logo-box{width:42px;height:42px;flex-basis:42px;border-radius:8px}.m3u-image-cell .logo-box.poster-thumb{width:34px;height:48px;flex-basis:34px}.m3u-image-cell .logo-box.poster-thumb img{object-fit:cover}.m3u-delete-button{font-size:17px;line-height:1}
.m3u-editor-footer{position:sticky;bottom:0;z-index:3;padding:12px 17px;border-top:1px solid #e7edf3;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}.m3u-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.m3u-checkbox{display:flex;align-items:center;gap:7px;color:#718397;font-size:10.5px}.m3u-checkbox input{accent-color:#346bd9}.m3u-discard-form{display:flex;justify-content:flex-end;margin-top:12px}
.m3u-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.m3u-section-card{position:relative;display:flex;flex-direction:column;gap:6px;min-height:160px;padding:22px;transition:transform .15s,border-color .15s,box-shadow .15s}.m3u-section-card:hover{transform:translateY(-2px);border-color:#ceddea;box-shadow:0 10px 24px rgba(25,48,73,.07)}.m3u-section-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:8px;border-radius:12px;background:#edf4fd;color:#4e79aa}.m3u-section-icon .ui-icon{width:20px;height:20px}.m3u-section-card strong{font-size:14px;color:#334a61}.m3u-section-card small{color:#8494a5;font-size:10.5px}.m3u-section-arrow{position:absolute;right:18px;bottom:16px;color:#7290ae;font-size:17px}
@media(max-width:980px){.m3u-source-grid{grid-template-columns:1fr}.m3u-file-panel{min-height:190px}.m3u-section-grid{grid-template-columns:1fr 1fr}.m3u-rename-form{width:100%;grid-template-columns:1fr 1fr auto}.m3u-toolbar{align-items:stretch}.m3u-filter-form{width:100%}}
@media(max-width:650px){.catalog-intro-actions{width:100%}.catalog-intro-actions .btn{flex:1}.m3u-metrics{grid-template-columns:1fr}.m3u-section-grid{grid-template-columns:1fr}.m3u-rename-form{grid-template-columns:1fr}.m3u-rename-form .btn{width:100%}.m3u-editor-actions{align-items:stretch}.m3u-editor-actions .btn{width:100%}.m3u-checkbox{width:100%}.m3u-source-grid textarea{min-height:260px}}

/* =========================================================
   PERUFLIX v22 — Controles, switches, usuarios y EPG
   ========================================================= */
.fa-solid,.fa-regular{line-height:1}
.icon-action{display:inline-flex!important;align-items:center;justify-content:center;gap:6px}
.icon-action i{font-size:11px}
.row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.compact-actions{flex-wrap:nowrap}.inline-form{display:inline-flex;margin:0}

/* Orden: una sola flecha para inicio/final + barra de destino */
.order-buttons{display:grid;grid-template-columns:repeat(4,30px);gap:4px;margin-top:5px}
.order-btn{position:relative;width:30px;height:30px;border-radius:8px;font-size:11px;overflow:hidden}
.order-btn i{font-size:11px}
.order-btn.edge-order i{font-size:13px;font-weight:900}
.order-btn.edge-order::before{content:"";position:absolute;left:7px;right:7px;height:2px;border-radius:2px;background:currentColor;opacity:.9}
.order-btn.top-edge::before{top:4px}.order-btn.bottom-edge::before{bottom:4px}
.order-btn.top-edge i{transform:translateY(2px)}.order-btn.bottom-edge i{transform:translateY(-2px)}
.order-btn.edge-order{background:#f3f7fc;color:#3f6f9e;border-color:#d5e1ed}
.move-controls .order-buttons{margin-top:4px}

/* Switch Publicado/Oculto */
.publish-switch-form{display:inline-flex;margin:0}.switch-control{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:#778b9f}
.switch-control:focus-visible{outline:none;box-shadow:var(--ring);border-radius:999px}
.switch-control .switch-knob{position:relative;width:36px;height:20px;border-radius:999px;background:#cbd5df;box-shadow:inset 0 0 0 1px rgba(35,51,70,.08);transition:.18s ease}
.switch-control .switch-knob::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(31,47,64,.22);transition:.18s ease}
.switch-control.is-on .switch-knob{background:#25b49e}.switch-control.is-on .switch-knob::after{left:19px}
.switch-control .switch-text{font-size:9px;font-weight:800;letter-spacing:.45px;min-width:58px;text-align:left}.switch-control.is-on .switch-text{color:#217965}.switch-control.is-off .switch-text{color:#8a98a7}

/* Acciones */
.tablebtn.danger{color:#a84455;background:#fff5f6;border-color:#f2d8dd}.tablebtn.danger:hover{background:#ffecef}
.tablebtn.warn{color:#9a651d;background:#fff9ef;border-color:#f0dfbf}.tablebtn.success{color:#24745e;background:#effaf5;border-color:#cfeadd}
.group-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}

/* Usuarios */
.user-admin-grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(650px,1.65fr);gap:18px;align-items:start}.user-editor-card{position:sticky;top:18px}.user-list-card{min-width:0}
.user-count-badge{padding:5px 9px;border-radius:999px;background:#f1f5fa;color:#657b91;font-size:10px;font-weight:700}
.password-tools{display:grid;grid-template-columns:minmax(0,1fr) 39px 39px;gap:6px}.password-tools input{min-width:0}.btn.icononly{width:39px;padding:0}
.account-enabled{display:flex;align-items:center;gap:8px;padding:10px 12px;margin:0 0 15px;border:1px solid #e0e8ef;border-radius:9px;background:#f9fbfd;color:#51697f;font-size:11px}.account-enabled input{accent-color:#25a78f}
.quick-renew{padding-top:15px;margin-top:17px;border-top:1px solid #e7edf3}.quick-renew strong{display:block;margin-bottom:8px;font-size:11px;color:#50677d}.quick-renew>div{display:flex;gap:6px;flex-wrap:wrap}
.users-table{min-width:900px}.role-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3f8;color:#60778c;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}.role-administrador{background:#eaf1ff;color:#456aa4}.role-revendedor{background:#f1ecff;color:#765db0}.role-usuario{background:#edf8f5;color:#3a7b6e}
.expiry-text{font-size:10px;color:#60758a;white-space:nowrap}.connection-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:8px;background:#f3f7fb;color:#5b7388;font-size:10px;white-space:nowrap}.connection-pill i{font-size:9px}
.access-detail-row td{padding:0!important;background:#f8fbfe}.access-panel{margin:0 10px 12px;padding:15px;border:1px solid #dfe8f1;border-radius:11px;background:#fff;box-shadow:0 5px 18px rgba(30,50,70,.04)}.access-panel-head{display:flex;justify-content:space-between;margin-bottom:11px}.access-panel-head strong{display:block;color:#365168;font-size:12px}.access-panel-head span{display:block;color:#8a99a8;font-size:9.5px;margin-top:2px}.access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-item{position:relative;min-width:0;padding:9px 36px 9px 10px;border:1px solid #e3eaf1;border-radius:9px;background:#fbfcfe}.access-item.wide{grid-column:1/-1}.access-item label{display:block;color:#8a99a8;font-size:8.5px;text-transform:uppercase;letter-spacing:.55px;margin-bottom:3px}.access-item code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#385269;font-size:9.5px}.copy-mini{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:1px solid #dde6ee;border-radius:7px;background:#fff;color:#617a92;cursor:pointer}.copy-mini:hover{background:#eef5fb;color:#326aa9}

/* EPG */
.epg-metrics{margin-bottom:18px}.epg-source-card{margin-bottom:18px}.epg-source-form{display:grid;grid-template-columns:minmax(180px,.5fr) minmax(320px,1.3fr) auto;gap:10px;align-items:end}.epg-source-form .field{margin:0}.epg-source-form .btn{height:41px}.source-list{display:grid;gap:8px;margin-top:16px}.source-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid #e1e8ef;border-radius:10px;background:#fbfcfe}.source-main{min-width:0}.source-main strong{display:block;color:#3d566d;font-size:11.5px}.source-main code{display:block;max-width:720px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#667b90;font-size:9.5px;margin:3px 0}.source-main small{color:#92a0ae;font-size:9px}.error-text{color:#b14c5d}.source-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.source-actions form{margin:0}
.epg-grid{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(390px,1.25fr);gap:18px;align-items:start}.weekday-tools{margin-bottom:15px}.weekday-presets{display:flex;gap:6px;margin-bottom:8px}.weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday-chip{cursor:pointer}.weekday-chip input{position:absolute;opacity:0;pointer-events:none}.weekday-chip span{display:grid;place-items:center;height:34px;border:1px solid #dce5ed;border-radius:8px;background:#fff;color:#708397;font-size:10px;font-weight:700;transition:.14s ease}.weekday-chip input:checked+span{background:#e8f3ff;border-color:#bcd2e8;color:#356895;box-shadow:inset 0 0 0 1px #d4e4f3}.days-badge{display:inline-flex;padding:5px 8px;border-radius:8px;background:#eef4fa;color:#567188;font-size:9.5px;font-weight:800;white-space:nowrap}.status.external{background:#eef4fb;color:#54718b}

@media(max-width:1180px){.user-admin-grid{grid-template-columns:1fr}.user-editor-card{position:static}.epg-grid{grid-template-columns:1fr}.access-grid{grid-template-columns:1fr 1fr}.access-item.wide{grid-column:1/-1}}
@media(max-width:760px){.compact-actions{flex-wrap:wrap}.switch-control .switch-text{display:none}.order-buttons{grid-template-columns:repeat(4,28px)}.order-btn{width:28px;height:28px}.epg-source-form{grid-template-columns:1fr}.source-row{align-items:flex-start;flex-direction:column}.source-actions{width:100%}.source-actions .btn{flex:1}.weekday-grid{grid-template-columns:repeat(4,1fr)}.access-grid{grid-template-columns:1fr}.access-item.wide{grid-column:auto}.user-actions .tablebtn span{display:none}.user-actions .tablebtn{width:31px;padding:0;justify-content:center}}

/* ===== PERUFLIX V23 · refinamiento UI ===== */
.role-badge{font-weight:500;letter-spacing:.18px;text-transform:none;font-size:10px;padding:4px 9px}
.status{font-weight:500!important;letter-spacing:0!important}
.switch-control .switch-text{font-weight:500;font-size:9.5px;letter-spacing:.15px;min-width:54px}
.switch-control{transition:opacity .15s ease}.switch-control:disabled{opacity:.55}
.user-count-badge{font-weight:500}
.days-badge{font-weight:500}

.channel-table{min-width:1040px}
.channel-table th,.channel-table td{vertical-align:middle}
.move-col{width:184px}.move-cell{width:184px;padding-left:10px!important;padding-right:10px!important}
.move-controls{display:flex;align-items:center;gap:7px;white-space:nowrap}
.compact-order-buttons{display:flex;grid-template-columns:none;margin:0;gap:3px}
.compact-order-buttons .order-btn{width:27px;height:27px;border-radius:7px}
.compact-order-buttons .order-btn i{font-size:11px}
.compact-order-buttons .edge-order i{font-size:13px;font-weight:700}
.drag-handle{flex:0 0 29px;width:29px;height:29px}
.channel-item{min-width:250px;gap:10px}.channel-title-line{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap}.channel-title-line .uname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.tvg-inline{display:inline-flex;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 7px;border-radius:999px;background:#f2f6fa;color:#8190a0;font-size:8.5px;font-weight:500;border:1px solid #e4ebf2}
.logo-box{width:42px;height:38px;flex-basis:42px}.logo-box.poster-thumb{width:30px;height:44px;flex-basis:30px;border-radius:7px}
.channel-row td{padding-top:9px;padding-bottom:9px}.group-pill{font-weight:500}
.row-actions{gap:5px}.tablebtn{font-weight:500}

/* EPG integrado al editor */
.epg-inline-card{margin:18px 0;padding:15px;border:1px solid #dce7f1;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}
.epg-inline-card[hidden]{display:none}.epg-inline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.epg-inline-head strong{display:block;font-size:12.5px;color:#365169;font-weight:600}.epg-inline-head span:not(.epg-live-dot){display:block;color:#8a99a8;font-size:9.5px;margin-top:2px}.epg-live-dot{width:9px;height:9px;border-radius:50%;background:#28b69b;box-shadow:0 0 0 4px #e4f8f3}
.epg-current{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 11px;margin-bottom:10px;border:1px solid #e2eaf1;border-radius:9px;background:#fff}.epg-current-label{font-size:8.5px;text-transform:uppercase;letter-spacing:.45px;color:#8c9aaa}.epg-current strong{font-size:10.5px;color:#3f586f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epg-current small{font-size:9px;color:#7990a4;white-space:nowrap}
.epg-search-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px}.epg-search-row input{height:38px;border:1px solid #d8e3ed;border-radius:8px;padding:8px 10px;font-size:10.5px}.epg-search-status{font-size:9.5px;color:#8293a4;margin:8px 1px}.epg-match-list{display:grid;gap:6px;max-height:280px;overflow:auto}.epg-match{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1px solid #e0e8ef;border-radius:9px;background:#fff;padding:9px 10px;color:#405970;cursor:pointer;transition:.12s}.epg-match:hover,.epg-match.selected{border-color:#b9cfe4;background:#f1f7fd}.epg-match.best{box-shadow:inset 3px 0 #39ae93}.epg-match strong{display:block;font-size:10.5px;font-weight:600}.epg-match small{display:block;font-size:8.8px;color:#8596a6;margin-top:2px}.epg-match em{font-style:normal;font-size:8.5px;color:#4e7b69;background:#edf8f4;border-radius:999px;padding:4px 7px}.epg-manual-link{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:#47749c;font-size:9.5px}
.epg-source-form{grid-template-columns:minmax(160px,.55fr) minmax(280px,1.2fr) 90px 105px auto}.epg-source-form .tiny-field{margin:0}.cell-sub{display:block;color:#91a0af;font-size:8.5px;margin-top:2px}

/* Playlists de Series */
.series-playlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:13px;padding:16px}.series-playlist-card{display:grid;grid-template-columns:86px minmax(0,1fr);gap:14px;padding:13px;border:1px solid #e1e8ef;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(29,48,68,.035)}.series-cover{width:86px;height:120px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#eef3f8;color:#7c91a5}.series-cover img{width:100%;height:100%;object-fit:cover}.series-cover i{font-size:24px}.series-playlist-copy{min-width:0}.series-playlist-copy h3{margin:6px 0 4px;font-size:13px;color:#334e65;font-weight:600}.series-playlist-copy p{margin:0 0 8px;color:#8494a4;font-size:9.5px}.series-episode-preview{display:grid;gap:3px;margin-bottom:10px}.series-episode-preview span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:#62798d}

@media(max-width:900px){.epg-source-form{grid-template-columns:1fr 1fr}.epg-search-row{grid-template-columns:1fr}.move-col,.move-cell{width:158px}.channel-title-line{flex-wrap:wrap}.tvg-inline{max-width:130px}}
@media(max-width:760px){.epg-source-form{grid-template-columns:1fr}.epg-current{grid-template-columns:1fr}.series-playlist-grid{grid-template-columns:1fr;padding:10px}.series-playlist-card{grid-template-columns:68px minmax(0,1fr)}.series-cover{width:68px;height:96px}}

/* v23.6: feedback del guardado de orden */
#channel-sortable[data-saving="1"] .drag-handle{pointer-events:none;opacity:.45}
#channel-sortable[data-saving="1"] .channel-row{transition:opacity .15s ease}
#channel-sortable[data-saving="1"] .channel-row:not(.dragging){opacity:.82}
.reorder-row.drop-before{box-shadow:inset 0 3px 0 #4d87cf!important}
.reorder-row.drop-after{box-shadow:inset 0 -3px 0 #4d87cf!important}
