:root{--bg:#081119;--panel:#101d27;--panel2:#142532;--line:#263b49;--text:#ecf7fb;--muted:#8fa7b5;--brand:#19d3a2;--brand2:#0cb7e8;--danger:#ff6b78;--shadow:0 18px 50px #0006;font:15px/1.45 Inter,Segoe UI,system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 0,#123448 0,transparent 32rem),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:28px 18px;display:flex;flex-direction:column;background:#071018e8;border-right:1px solid var(--line);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;letter-spacing:.2px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1.4px;text-transform:uppercase}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#042019;box-shadow:0 8px 22px #12cba64d}.sidebar nav{display:grid;gap:7px;margin-top:40px}.sidebar nav a{padding:11px 13px;color:var(--muted);border-radius:10px}.sidebar nav a:hover,.sidebar nav a.active{background:#17303e;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--brand)}.logout-form{margin-top:auto}.link-button,.danger-link{border:0;background:none;color:var(--muted);padding:4px;cursor:pointer;font:inherit}.danger-link{color:var(--danger)}main{padding:28px 34px 60px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.topbar h1{margin:2px 0 0;font-size:28px}.eyebrow{font-size:11px;color:var(--brand);text-transform:uppercase;letter-spacing:1.6px;font-weight:700}.status-pill,.badge{display:inline-flex;align-items:center;gap:7px;border:1px solid #2a4c4a;background:#112d2c;color:#7ce4c6;padding:6px 10px;border-radius:99px;font-size:12px}.status-pill i{width:7px;height:7px;background:var(--brand);border-radius:50%;box-shadow:0 0 9px var(--brand)}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px;margin-bottom:18px}.stat-card,.card{border:1px solid var(--line);background:linear-gradient(145deg,#12232fdd,#0c1821ee);box-shadow:var(--shadow);border-radius:16px}.stat-card{padding:18px}.stat-card span{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;margin-top:6px;font-size:28px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.channel-grid{grid-template-columns:minmax(380px,.9fr) minmax(500px,1.45fr)}.stack-area{display:grid;align-content:start;gap:18px}.card{padding:21px}.card-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:19px}.card h2{margin:0;font-size:18px}.card p{margin:4px 0 0;color:var(--muted)}.steps{padding:0;list-style:none;counter-reset:s}.steps li{position:relative;padding:3px 0 18px 42px;counter-increment:s}.steps li:before{content:counter(s);position:absolute;left:0;display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#183c3b;color:var(--brand);font-weight:800}.steps span,.event-list small,td small,.node-list small,label small{display:block;color:var(--muted);font-size:12px}.event-list>div,.node-list>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stack{display:grid;gap:14px}.span-2{grid-column:span 2}label{display:grid;gap:6px;color:#bad0db;font-size:12px;font-weight:600}input,textarea,select{width:100%;border:1px solid #2c4352;background:#08141d;color:var(--text);border-radius:9px;padding:10px 11px;font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #19d3a21c}textarea{resize:vertical}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.checks{display:flex;flex-wrap:wrap;gap:16px}.source-box{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0}.source-box legend{padding:0 7px;color:var(--brand);font-weight:700;font-size:12px}.primary,.secondary,.button{display:inline-flex;justify-content:center;border:0;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer;font:inherit}.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#031b1b}.secondary{background:#183544;color:#dff6ff}.button.ghost{border:1px solid var(--line);background:transparent;color:var(--muted);padding:7px 10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}th,td{padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:middle}.badge{padding:3px 8px}.badge.off{border-color:#4a3b40;background:#291a20;color:#e5a2a9}.actions{white-space:nowrap}.actions>*{display:inline-block;margin-right:6px}.actions a{color:var(--brand)}code{display:block;background:#07121a;border:1px solid var(--line);padding:8px;border-radius:7px;overflow-wrap:anywhere}.token{max-width:120px;padding:4px}.ingest{display:grid;gap:7px;margin-top:18px;padding:14px;border:1px dashed #35606a;border-radius:12px}.ingest small,.empty{color:var(--muted)}.notice{margin:0 0 18px;padding:12px 14px;border:1px solid #376c5f;background:#12352e;border-radius:11px;color:#9df1d8}.notice.error{border-color:#633942;background:#371c25;color:#ffb9c0}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);border:1px solid var(--line);background:#0c1923e8;box-shadow:var(--shadow);border-radius:20px;padding:34px}.login-brand{margin-bottom:34px}.login-card h1{font-size:31px;margin:0}.login-card>p{color:var(--muted);margin:6px 0 24px}@media(max-width:1050px){.stat-grid{grid-template-columns:repeat(3,1fr)}.channel-grid,.grid.two{grid-template-columns:1fr}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr);margin-top:22px}.logout-form{margin-top:18px}main{padding:22px 15px}.topbar{align-items:end}.status-pill{display:none}.stat-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.card{padding:16px}}

/* Panel profesional multipágina */
.menu-toggle{display:none}.sidebar-backdrop{display:none}.nav-group{display:grid;gap:5px;margin-bottom:17px}.nav-group>span{padding:0 12px;color:#5f7b89;font-size:10px;font-weight:800;letter-spacing:1.35px;text-transform:uppercase}.sidebar nav{margin-top:30px;gap:0}.page-actions{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}.page-actions>div{display:flex;align-items:baseline;gap:9px}.page-actions strong{font-size:19px}.page-actions span,.helper-text{color:var(--muted);font-size:13px}.page-actions>div:last-child{justify-content:flex-end}.page-actions .button+.button{margin-left:8px}.table-card{padding:0;overflow:hidden}.filter-bar{display:flex;align-items:end;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line);background:#0b1821}.filter-bar label{min-width:220px}.filter-bar label+label{min-width:150px}.data-table th,.data-table td{padding:14px 15px}.data-table tbody tr:hover{background:#142733}.channel-cell{display:flex;align-items:center;gap:11px;min-width:190px}.channel-cell img,.channel-placeholder{width:38px;height:38px;border-radius:8px;object-fit:contain;background:#09151d}.channel-placeholder{display:grid;place-items:center;color:var(--brand);font-weight:900}.mode-badge{display:inline-flex;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:800}.mode-badge.controlled{background:#143d37;color:#61e1c0}.mode-badge.direct{background:#2c3042;color:#b9c5ff}.client-count{display:inline-grid;place-items:center;min-width:34px;height:28px;padding:0 8px;border-radius:6px;background:#14aeca;color:#fff;font-weight:800}.activation-code{font-size:17px;letter-spacing:2px}.truncate{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{display:grid;place-items:center;gap:5px;min-height:150px;padding:28px;color:var(--muted);text-align:center}.empty-state b{color:var(--text);font-size:16px}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:13px;padding:14px 20px;border-top:1px solid var(--line)}.pagination span{color:var(--muted);font-size:12px}.pagination a{padding:7px 10px;border:1px solid var(--line);border-radius:7px}.pagination a.disabled{opacity:.35;pointer-events:none}.form-card{max-width:980px}.form-card.narrow{max-width:720px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.server-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.server-head{display:flex;align-items:center;gap:11px}.server-head>span:nth-child(2){display:grid}.server-head .badge{margin-left:auto}.server-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:#153d47;color:var(--brand);font-weight:900}.server-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.server-card dl div{min-width:0}.server-card dt{color:var(--muted);font-size:11px;text-transform:uppercase}.server-card dd{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis}.capacity,.mini-progress{height:7px;border-radius:99px;background:#07141c;overflow:hidden}.capacity span,.mini-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand2))}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric{position:relative;overflow:hidden;padding:18px 20px;border-radius:13px;box-shadow:var(--shadow)}.metric:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:#fff1;right:-35px;top:-55px}.metric span,.metric small{display:block}.metric span{font-size:12px}.metric strong{display:block;font-size:27px;margin:4px 0}.metric small{opacity:.76}.metric.purple{background:linear-gradient(135deg,#6454be,#7566d3)}.metric.green{background:linear-gradient(135deg,#0e9f83,#16c2a0)}.metric.blue{background:linear-gradient(135deg,#2780cb,#30afd1)}.metric.orange{background:linear-gradient(135deg,#e05a39,#f08a42)}.dashboard-grid{grid-template-columns:1.35fr .65fr}.span-wide{grid-row:span 2}
@media(max-width:1100px){.metric-strip{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.server-grid{grid-template-columns:1fr}.span-wide{grid-row:auto}}
@media(max-width:700px){body.app-shell{display:block}.menu-toggle{display:grid;position:fixed;z-index:80;top:17px;left:15px;width:43px;height:43px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#0d202b;place-content:center;gap:4px}.menu-toggle span{display:block;width:20px;height:2px;background:#fff;border-radius:2px}.sidebar{position:fixed;z-index:70;inset:0 auto 0 0;width:min(290px,86vw);height:100vh;padding:24px 18px;transform:translateX(-105%);transition:transform .22s ease;overflow:auto}.menu-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;z-index:60;inset:0;background:#000a}.menu-open .sidebar-backdrop{display:block}.sidebar nav{display:grid;grid-template-columns:1fr;margin-top:30px}.logout-form{margin-top:30px}.app-shell main{padding:18px 13px 45px}.topbar{min-height:45px;margin:0 0 20px;padding-left:53px;align-items:center}.topbar h1{font-size:22px}.eyebrow,.status-pill{display:none}.page-actions{align-items:flex-start;flex-direction:column}.page-actions>div:last-child{width:100%;display:flex}.page-actions .button{flex:1}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label,.filter-bar label+label{min-width:0}.metric-strip{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric strong{font-size:22px}.server-grid{grid-template-columns:1fr}.server-card dl{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.form-actions{flex-direction:column-reverse}.form-actions>*{width:100%}.card{padding:15px}.table-card{padding:0}.data-table th,.data-table td{padding:12px}.helper-text{max-width:100%}}
@media(max-width:430px){.metric-strip{grid-template-columns:1fr}.page-actions>div:last-child{flex-direction:column}.page-actions .button+.button{margin-left:0;margin-top:8px}}

/* Ficha profesional de canal */
.channel-tabs{display:flex;gap:3px;margin:0 0 18px;padding:5px;border:1px solid var(--line);border-radius:13px;background:#0b1821;overflow-x:auto}.channel-tabs a{min-width:105px;padding:11px 14px;border-radius:9px;color:var(--muted);text-align:center;font-size:12px;font-weight:800;white-space:nowrap}.channel-tabs a:hover{color:var(--text);background:#142734}.channel-tabs a.active{color:#031b1b;background:linear-gradient(135deg,var(--brand),var(--brand2))}.source-list{display:grid}.source-row{display:grid;grid-template-columns:42px minmax(230px,1fr) auto auto;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid var(--line)}.source-row:last-child{border-bottom:0}.source-row>div{min-width:0}.source-row small,.source-url{display:block;color:var(--muted);font-size:12px}.source-url{max-width:680px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-priority{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#183743;color:var(--brand);font-weight:900}.section-note{margin-top:18px;padding:13px 15px;border-left:3px solid var(--brand2);border-radius:5px;background:#0b1821;color:var(--muted);font-size:13px}.section-note b{color:var(--text)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:11px;overflow:hidden}.detail-grid>div{padding:15px;background:#0d1c26}.detail-grid dt{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}.detail-grid dd{margin:5px 0 0;font-weight:700}.card-head.padded{padding:20px;margin:0;border-bottom:1px solid var(--line)}
@media(max-width:760px){.source-row{grid-template-columns:38px 1fr}.source-row .mode-badge,.source-row .badge{justify-self:start}.detail-grid{grid-template-columns:1fr}.channel-tabs{margin-left:-2px;margin-right:-2px}.channel-tabs a{min-width:90px}}

/* Monitor real del VPS */
.system-monitor{margin-bottom:18px}.system-monitor .card-head{align-items:center}.system-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.system-metric{min-width:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#0a1720}.system-metric header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.system-metric header span{color:var(--muted);font-size:12px}.system-metric header strong{font-size:20px;font-variant-numeric:tabular-nums}.system-metric svg{display:block;width:100%;height:54px;margin:9px 0 5px;overflow:visible}.system-metric polyline{fill:none;stroke:var(--brand2);stroke-width:2.2;vector-effect:non-scaling-stroke}.system-metric .rx-line{stroke:var(--brand);opacity:.65}.system-metric small{display:block;min-height:18px;color:var(--muted);font-size:11px}.usage-bar{height:5px;margin-top:9px;border-radius:99px;background:#071119;overflow:hidden}.usage-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand2))}.stream-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.stream-summary span{padding:9px;border-radius:8px;background:#102530;color:var(--muted);font-size:11px}.stream-summary b{display:block;color:var(--text);font-size:17px}.metrics-wait{display:grid;place-items:center;min-height:120px;color:var(--muted)}.metrics-wait b{color:var(--text)}
@media(max-width:1200px){.system-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.system-metric-grid{grid-template-columns:1fr}.system-monitor .card-head{align-items:flex-start;gap:12px}.system-monitor .card-head .badge{white-space:nowrap}.system-metric{padding:13px}}

/* Página de rendimiento */
.performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capacity-card{grid-column:span 2}.metric-chart{position:relative;height:210px;padding:15px 0 15px 46px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 44px,#263b4966 45px)}.metric-chart svg{display:block;width:100%;height:180px;overflow:visible}.metric-chart polyline{fill:none;stroke-width:2.2;vector-effect:non-scaling-stroke}.metric-chart .cpu-line,.metric-chart .tx-line{stroke:var(--brand2)}.metric-chart .memory-line,.metric-chart .rx-line{stroke:var(--brand)}.metric-chart .axis{position:absolute;left:4px;color:var(--muted);font-size:10px}.metric-chart .axis.top{top:9px}.metric-chart .axis.bottom{bottom:8px}.chart-foot,.chart-legend{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.chart-foot{padding:7px 0 0 46px}.chart-legend{gap:13px}.chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--brand2)}.chart-legend .memory-dot:before,.chart-legend .rx-dot:before{background:var(--brand)}
@media(max-width:1050px){.performance-grid{grid-template-columns:1fr}.capacity-card{grid-column:auto}}
@media(max-width:700px){.performance-strip{grid-template-columns:1fr 1fr}.metric-chart{height:165px;padding-left:35px}.metric-chart svg{height:135px}.metric-chart-card .card-head{display:grid;gap:10px}.chart-legend{justify-content:flex-start}}
@media(max-width:430px){.performance-strip{grid-template-columns:1fr}}

/* Navegación hamburguesa adaptable V19 */
body.app-shell{display:block;min-height:100vh}.app-shell main{width:100%;min-height:100vh;padding:28px 34px 60px}.menu-toggle{position:fixed;z-index:80;top:22px;left:24px;display:grid;width:44px;height:44px;padding:10px;border:1px solid #31505f;border-radius:12px;background:#0c202b;box-shadow:0 9px 28px #0007;place-content:center;gap:5px;cursor:pointer}.menu-toggle span{display:block;width:21px;height:2px;border-radius:3px;background:var(--text);transition:transform .2s ease,opacity .2s ease}.menu-toggle:hover{border-color:var(--brand);background:#12303b}.menu-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar{position:fixed;z-index:100;inset:0 auto 0 0;width:300px;height:100dvh;padding:22px 17px;transform:translateX(-105%);transition:transform .24s ease;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#07121a 0%,#091721 100%);box-shadow:20px 0 55px #0009}.menu-open .sidebar{transform:translateX(0)}.sidebar-backdrop{position:fixed;z-index:90;inset:0;display:block;background:#02070bbd;opacity:0;visibility:hidden;backdrop-filter:blur(3px);transition:opacity .2s ease,visibility .2s ease}.menu-open .sidebar-backdrop{display:block;opacity:1;visibility:visible}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:5px 3px 18px;border-bottom:1px solid var(--line)}.menu-close{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#10232e;color:var(--muted);cursor:pointer;font:26px/1 system-ui}.menu-close:hover{border-color:var(--brand);color:var(--text)}.sidebar nav{display:grid;gap:8px;margin-top:20px}.nav-group{display:block;margin:0;border:1px solid transparent;border-radius:12px}.nav-group.open{border-color:#1d3441;background:#0b1a23}.nav-group-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:11px 12px;border:0;background:transparent;color:#6f8997;cursor:pointer;font:inherit;font-size:10px;font-weight:900;letter-spacing:1.25px;text-align:left;text-transform:uppercase}.nav-group-toggle i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s ease}.nav-group.open .nav-group-toggle{color:var(--brand)}.nav-group.open .nav-group-toggle i{transform:rotate(225deg)}.nav-items{display:grid;gap:4px;padding:0 6px 7px}.nav-items[hidden]{display:none}.sidebar nav .nav-items a{position:relative;padding:10px 12px 10px 28px;border-radius:9px;color:var(--muted)}.sidebar nav .nav-items a:before{content:"";position:absolute;left:13px;top:50%;width:5px;height:5px;border:1px solid #53707e;border-radius:50%;transform:translateY(-50%)}.sidebar nav .nav-items a:hover{background:#122733;color:var(--text)}.sidebar nav .nav-items a.active{background:linear-gradient(90deg,#173943,#17303e);color:#fff;box-shadow:inset 3px 0 var(--brand)}.sidebar nav .nav-items a.active:before{border-color:var(--brand);background:var(--brand);box-shadow:0 0 7px var(--brand)}.logout-form{margin-top:24px;padding:14px 10px 4px;border-top:1px solid var(--line)}.logout-form .link-button{width:100%;padding:10px;text-align:left}.topbar{min-height:44px;padding-left:58px}.menu-open{overflow:hidden}
@media(min-width:1400px){.app-shell main{padding-left:44px;padding-right:44px}.menu-toggle{left:28px}}
@media(max-width:700px){body.app-shell{display:block}.app-shell main{padding:17px 13px 45px}.menu-toggle{top:14px;left:13px;width:42px;height:42px}.sidebar{width:min(310px,88vw);padding:17px 14px}.topbar{min-height:43px;margin-bottom:18px;padding-left:52px}.topbar h1{max-width:calc(100vw - 115px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar nav{grid-template-columns:1fr;margin-top:17px}.logout-form{margin-top:22px}}

/* Centro de operaciones del resumen */
.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.dashboard-chart{height:180px}.dashboard-chart svg{height:150px}.service-health-card{min-height:268px}.service-checks{display:grid}.service-checks>div{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line)}.service-checks>div:last-child{border-bottom:0}.service-checks span:nth-child(2){display:grid}.service-checks small{color:var(--muted)}.health-light{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:#53616a;box-shadow:0 0 0 5px #53616a22}.health-light.online{background:var(--brand);box-shadow:0 0 0 5px #19d3a21e,0 0 13px #19d3a288}.health-light.warning{background:#ffb74c;box-shadow:0 0 0 5px #ffb74c1f}.health-light.offline{background:var(--danger);box-shadow:0 0 0 5px #ff6b781f}.server-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.server-kpis>div{padding:10px;border:1px solid var(--line);border-radius:9px;background:#0a1720}.server-kpis span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.server-kpis b{display:block;margin-top:3px}.server-resource{margin:12px 0}.server-resource>span{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.server-resource .usage-bar{margin-top:6px}
@media(max-width:1050px){.dashboard-chart-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dashboard-chart{height:155px}.dashboard-chart svg{height:125px}.server-kpis{grid-template-columns:1fr 1fr}}

/* Conexiones controladas y seguridad del administrador */
.connection-ratio{display:inline-grid;color:var(--text)}.connection-ratio:hover b{color:var(--brand)}.duration-badge{display:inline-flex;min-width:95px;padding:6px 9px;border-radius:7px;background:#143d37;color:#72e6c8;font-weight:800;font-variant-numeric:tabular-nums}.kill-button{display:grid;place-items:center;width:36px;height:34px;border:1px solid #68434a;border-radius:8px;background:#351e25;color:#ffabb3;cursor:pointer;font-size:17px}.kill-button:hover{background:#582832;border-color:var(--danger)}.account-grid{align-items:start}

/* Catálogos de contenido, bouquets y planes */
.selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.selection-item{align-items:flex-start;min-height:62px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#0a1720;cursor:pointer}.selection-item:has(input:checked){border-color:#199f89;background:#10312e}.selection-item input{margin-top:3px}.selection-item span{min-width:0}.selection-item b,.selection-item small{display:block}.selection-item b{color:var(--text)}.selection-item small{margin-top:3px;color:var(--muted);font-weight:400}.channel-selection{max-height:520px;overflow:auto;padding-right:4px}
@media(max-width:1050px){.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.selection-grid{grid-template-columns:1fr}.channel-selection{max-height:none}}

/* Constructor profesional de planes y renovaciones */
.builder-steps{display:grid;grid-template-columns:repeat(3,1fr);max-width:980px;margin:0 0 16px;padding:5px;border:1px solid var(--line);border-radius:13px;background:#0b1821}.builder-steps span{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:9px;color:var(--muted);font-size:12px;font-weight:800}.builder-steps span.active{background:#17303e;color:var(--text)}.builder-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#204352;color:var(--brand)}.section-kicker{display:block;margin-bottom:5px;color:var(--brand);font-size:10px;font-weight:900;letter-spacing:1.25px}.plan-builder-grid,.user-builder-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.plan-section{max-width:none}.status-check{align-self:end;min-height:48px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#0a1720}.status-check span,.status-check b,.status-check small{display:block}.preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}.preset-grid button{padding:10px 8px;border:1px solid var(--line);border-radius:9px;background:#0a1720;color:var(--muted);cursor:pointer;font:inherit;font-size:12px;font-weight:800}.preset-grid button:hover,.preset-grid button.active{border-color:var(--brand);background:#12362f;color:#8ef0d5}.validity-fields{display:grid;grid-template-columns:140px 170px minmax(220px,1fr);gap:12px;align-items:end}.expiry-preview{min-height:67px;padding:10px 13px;border:1px solid #28564e;border-radius:10px;background:linear-gradient(135deg,#102d29,#10232c)}.expiry-preview span,.expiry-preview small{display:block;color:var(--muted);font-size:10px}.expiry-preview strong{display:block;margin:3px 0;color:#8ef0d5;font-size:15px}.plan-summary-card{position:sticky;top:20px}.plan-summary-card>h2{margin-top:7px;font-size:22px}.plan-summary{display:grid;gap:0;margin:20px 0;border:1px solid var(--line);border-radius:11px;overflow:hidden}.plan-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#0a1720;border-bottom:1px solid var(--line)}.plan-summary>div:last-child{border-bottom:0}.plan-summary dt{color:var(--muted);font-size:11px}.plan-summary dd{margin:0;font-weight:900}.automation-note{display:grid;gap:4px;padding:13px;border-left:3px solid var(--brand);border-radius:7px;background:#0d2725}.automation-note b{color:#8ef0d5;font-size:12px}.automation-note span{color:var(--muted);font-size:11px}.summary-actions{margin-top:18px}.summary-actions>*{flex:1}.primary:disabled{cursor:not-allowed;filter:grayscale(1);opacity:.45}.validity-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:8px;background:#17333c;color:#7ce4c6;font-weight:800}.renewal-card{position:sticky;top:20px}.renewal-card h2{margin:6px 0}.current-expiry{display:grid;gap:3px;margin:17px 0;padding:13px;border:1px solid var(--line);border-radius:10px;background:#0a1720}.current-expiry span,.current-expiry small{color:var(--muted);font-size:10px}.current-expiry strong{color:#8ef0d5}.renewal-options{display:grid;gap:8px;margin:17px 0}.renewal-options label{display:flex;align-items:flex-start;gap:9px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#0a1720;cursor:pointer}.renewal-options label:has(input:checked){border-color:var(--brand);background:#10312e}.renewal-options input{width:auto;margin-top:3px}.renewal-options span,.renewal-options b,.renewal-options small{display:block}.renewal-options b{color:var(--text)}.activation-icon{display:grid;place-items:center;width:58px;height:58px;margin:22px auto 12px;border-radius:18px;background:linear-gradient(135deg,#153e37,#154052);color:var(--brand);font-size:30px}.user-expiry-preview{margin-top:17px}.user-builder-grid>.form-card{max-width:none}
@media(max-width:1100px){.plan-builder-grid,.user-builder-grid{grid-template-columns:1fr}.plan-summary-card,.renewal-card{position:static}.validity-fields{grid-template-columns:1fr 1fr}.expiry-preview{grid-column:span 2}}
@media(max-width:700px){.builder-steps{grid-template-columns:1fr}.builder-steps span{justify-content:flex-start}.builder-steps span:not(.active){display:none}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.validity-fields{grid-template-columns:1fr}.expiry-preview{grid-column:auto}.plan-summary-card{padding:17px}}

/* Operación de canales, fuentes y reproductor V21 */
.operations-filter{display:grid;grid-template-columns:minmax(190px,1.6fr) repeat(7,minmax(105px,1fr)) auto;align-items:end;gap:9px}.operations-filter label,.operations-filter label+label{min-width:0}.filter-actions{display:flex;gap:7px}.operations-table{min-width:1240px}.operations-table th:nth-child(2){min-width:245px}.operations-table th:last-child{min-width:280px}.uptime-badge{display:inline-flex;min-width:128px;justify-content:center;padding:7px 10px;border-radius:7px;background:#16a88f;color:#fff;font-weight:900;font-variant-numeric:tabular-nums}.uptime-badge.waiting{background:#245061;color:#bfefff}.uptime-badge.direct{background:#3d4263;color:#d7dcff}.uptime-badge.stopped{background:#3b2830;color:#ffb5bd}.uptime-badge.down{background:#692b36;color:#ffd0d5;box-shadow:inset 0 0 0 1px #a64d59}.operation-actions{overflow:visible}.action-menu{position:relative;width:max-content}.action-menu summary{display:grid;place-items:center;width:38px;height:34px;border:1px solid var(--line);border-radius:8px;background:#132b37;color:var(--muted);cursor:pointer;list-style:none}.action-menu summary::-webkit-details-marker{display:none}.action-menu[open] summary{border-color:var(--brand);color:var(--text)}.action-menu>div{position:absolute;z-index:25;top:39px;left:0;display:grid;min-width:190px;padding:7px;border:1px solid var(--line);border-radius:10px;background:#0a1821;box-shadow:0 16px 35px #000b}.action-menu a,.action-menu button{display:block;width:100%;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;text-align:left;font:inherit}.action-menu a:hover,.action-menu button:hover{background:#15303b;color:var(--text)}.action-menu .danger-link{color:var(--danger)}.square-action{display:grid;place-items:center;width:36px;height:34px;border:1px solid var(--line);border-radius:8px;background:#122936;color:var(--brand)}.square-action:hover{border-color:var(--brand)}.square-action.epg-action{color:#ffd36a}.square-action.disabled{pointer-events:none;opacity:.35}.stream-info{display:grid;grid-template-columns:repeat(4,max-content);gap:2px 13px;color:var(--muted);font-size:11px}.stream-info b{grid-column:1/-1;color:var(--text)}.scan-needed{display:grid;color:#ffc36b}.scan-needed small{color:var(--muted)}
.source-editor-form{max-width:none}.source-editor-toolbar{align-items:center}.source-tool-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.provider-reserved{border:1px solid var(--line);background:#111d28;color:var(--muted)}.provider-reserved small{margin-left:6px;padding:2px 5px;border-radius:5px;background:#293744;color:#8fa7b5;font-size:8px;text-transform:uppercase}.source-editor-list{display:grid;gap:13px}.source-editor{margin:0;padding:15px;border:1px solid var(--line);border-radius:13px;background:#0a1720}.source-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.source-editor-head>div{display:flex;align-items:center;gap:9px}.source-order{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#17404a;color:var(--brand);font-weight:900}.remove-source{border:0;background:transparent;color:var(--danger);cursor:pointer;font:inherit;font-size:12px}.remove-source:disabled{display:none}.source-fields{display:grid;grid-template-columns:1.1fr 100px 1.1fr minmax(270px,2.6fr) 1.2fr;gap:10px;align-items:end}.source-switches{display:flex;grid-column:1/-1;gap:18px;padding-top:3px}.source-scan-result{display:flex;gap:26px;margin-top:13px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#0d1e28}.source-scan-result.ok{border-color:#24584f;background:#102925}.source-scan-result.failed{border-color:#623a43;background:#291a20}.source-scan-result span{display:grid;gap:2px}.source-scan-result small{color:var(--muted);font-size:10px}.source-scan-result b{font-size:12px}.source-scan-result .scan-message{width:100%}.source-scan-result .scan-message small{overflow-wrap:anywhere}.source-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.player-card{max-width:1100px}.video-shell{position:relative;display:grid;place-items:center;min-height:460px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#020507}.video-shell video{display:block;width:100%;max-height:70vh;background:#000}.video-shell #player-message{position:absolute;z-index:2;padding:10px 13px;border-radius:9px;background:#071018dd;color:var(--muted)}
@media(max-width:1350px){.operations-filter{grid-template-columns:repeat(4,minmax(135px,1fr))}.filter-actions{grid-column:span 4;justify-content:flex-end}}
@media(max-width:1180px){.source-fields{grid-template-columns:1fr 100px 1fr}.source-url-field{grid-column:span 2}.source-scan-result{flex-wrap:wrap}.video-shell{min-height:330px}}
@media(max-width:700px){.operations-filter{display:flex}.operations-filter .filter-actions{display:grid;grid-template-columns:1fr 1fr}.operations-filter .filter-actions>*{width:100%}.source-editor-form>.card-head{display:grid;gap:12px}.source-tool-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.source-tool-actions>*{width:100%}.source-tool-actions .secondary{grid-column:1/-1}.source-fields{grid-template-columns:1fr 90px}.source-fields label:nth-child(3),.source-fields label:nth-child(5){grid-column:1/-1}.source-url-field{grid-column:1/-1}.source-switches{display:grid;gap:10px}.source-scan-result{display:grid;grid-template-columns:1fr 1fr;gap:10px}.source-scan-result .scan-message{grid-column:1/-1}.source-editor-actions{display:grid}.source-editor-actions>*{width:100%}.video-shell{min-height:220px}.stream-info{grid-template-columns:repeat(3,max-content)}}

/* Paginación numerada y menú flotante de acciones V23 */
.pagination-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;border-top:1px solid var(--line);background:#0b1821}.pagination-summary{color:var(--muted);font-size:12px}.pagination-footer .pagination{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:0;border:0}.pagination-footer .page-number,.pagination-footer .page-arrow{display:grid;place-items:center;min-width:35px;height:35px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#0d1d27;color:var(--muted);font-size:12px}.pagination-footer a:hover{border-color:var(--brand);color:var(--text)}.pagination-footer .page-number.active{border-color:var(--brand2);background:linear-gradient(135deg,var(--brand),var(--brand2));color:#031b1b;font-weight:900}.pagination-footer .page-arrow{font-size:20px;line-height:1}.pagination-footer .page-arrow.disabled{opacity:.3;pointer-events:none}.pagination-footer .page-ellipsis{display:grid;place-items:center;min-width:25px;color:var(--muted);font-size:13px}
.action-menu>div{position:fixed;z-index:120;top:var(--action-top,0);left:var(--action-left,0);visibility:hidden;max-width:calc(100vw - 20px)}.action-menu>div.positioned{visibility:visible}
@media(max-width:700px){.pagination-footer{align-items:flex-start;flex-direction:column;padding:13px}.pagination-footer .pagination{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:3px}.pagination-footer .page-number,.pagination-footer .page-arrow{flex:0 0 35px}}

/* Administración visual de aplicaciones */
.app-platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.app-platform-card{min-width:0}.carousel-upload-form{display:grid;grid-template-columns:1fr 120px;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#0a1720}.upload-drop{padding:14px;border:1px dashed #3c6571;border-radius:11px;background:#0c202a}.upload-drop>span{color:var(--text);font-size:14px;font-weight:850}.upload-drop input{padding:8px;background:#07131b}.form-actions{display:flex;justify-content:flex-end}.carousel-admin-list{display:grid;gap:12px;margin-top:16px}.carousel-admin-item{position:relative;display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#0a1720}.carousel-admin-item.is-disabled{opacity:.58}.carousel-admin-item>img{width:180px;height:120px;border-radius:10px;background:#050a0e;object-fit:cover}.carousel-item-form{display:grid;grid-template-columns:1fr 105px;gap:9px}.carousel-item-form label:nth-child(1),.carousel-item-form label:nth-child(2){grid-column:1/-1}.carousel-active{align-self:end;padding:8px 0}.carousel-item-actions{display:flex;align-items:end;justify-content:flex-end}.carousel-admin-item>form:last-child{position:absolute;left:13px;top:140px}.carousel-empty{padding:24px;border:1px dashed var(--line);border-radius:12px;text-align:center}.app-guidance{margin-top:18px;border-left:3px solid var(--brand)}.app-guidance p{max-width:900px}
@media(max-width:1200px){.app-platform-grid{grid-template-columns:1fr}.carousel-admin-item{grid-template-columns:220px minmax(0,1fr)}.carousel-admin-item>img{width:220px;height:140px}.carousel-admin-item>form:last-child{top:160px}}
@media(max-width:700px){.carousel-upload-form,.carousel-admin-item,.carousel-item-form{grid-template-columns:1fr}.carousel-upload-form .span-2,.carousel-item-form label:nth-child(1),.carousel-item-form label:nth-child(2){grid-column:auto}.carousel-admin-item>img{width:100%;height:auto;max-height:300px}.carousel-admin-item>form:last-child{position:static}.form-actions,.carousel-item-actions{justify-content:stretch}.form-actions button,.carousel-item-actions button{width:100%}}
