:root{--bg:#0d1014;--panel:#151a21;--line:#252c36;--text:#e8edf2;--muted:#8b96a5;--ok:#10b981;--warn:#f5b700;--bad:#ef4444;--accent:#3b82f6}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:#93c5fd;text-decoration:none}a:hover{text-decoration:underline}
header.top{display:flex;gap:18px;align-items:center;padding:12px 22px;background:#0a0d11;border-bottom:1px solid var(--line);flex-wrap:wrap;position:sticky;top:0;z-index:5}
.brand{font-weight:800;color:#fff}nav{display:flex;gap:14px;flex-wrap:wrap}nav a{color:var(--muted)}nav a:hover{color:#fff}.mode{margin-left:auto;color:var(--muted)}
main{max-width:1320px;margin:0 auto;padding:22px}footer{color:var(--muted);font-size:12px;text-align:center;padding:30px}
h1{margin:.2em 0}h2{margin-top:34px;font-size:19px}.muted{color:var(--muted)}.badtext{color:var(--bad)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.kpi span{display:block;color:var(--muted);font-size:12px}.kpi b{font-size:24px}.kpi small{color:var(--muted)}.kpi.bad b{color:var(--bad)}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;margin-top:18px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.card h2{margin:0}
table{border-collapse:collapse;width:100%}.mini td{padding:3px 0;border-bottom:1px solid var(--line)}.mini td:last-child{text-align:right}
.list th,.list td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.list th{color:var(--muted);font-weight:600}.list tr.total td{font-weight:700}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;background:#222a35;font-size:12px}.pill.ok{background:#064e3b}.pill.warn{background:#5b4300}
.st-publicado{background:#064e3b}.st-fallido,.st-rechazado{background:#5a1717}.st-pendiente_revision,.st-listo_subida_manual{background:#5b4300}.st-programado,.st-subido_privado{background:#1e3a8a}
button,.button{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;display:inline-block}.warnbtn{background:#7c2d12}
input,select,textarea{background:#0b0e12;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 9px}
textarea{width:100%;min-height:60px}.inline{display:inline-flex;gap:8px;align-items:center;margin-right:16px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.flash{background:#064e3b;padding:10px 14px;border-radius:8px;margin-bottom:14px}.flash.bad{background:#5a1717}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}@media(max-width:900px){.two{grid-template-columns:1fr}}
video{width:100%;border-radius:10px;background:#000}video.vertical{max-height:640px;width:auto;display:block;margin:auto}
.thumbs{display:flex;gap:10px}.thumbs figure{margin:0;flex:1}.thumbs img{width:100%;border-radius:8px}.thumbs figcaption{color:var(--muted);font-size:12px}
.actions{display:flex;flex-wrap:wrap;gap:8px}.box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin:14px 0}
pre{white-space:pre-wrap;background:#0b0e12;border:1px solid var(--line);border-radius:8px;padding:12px;font-size:13px}pre.script{max-height:560px;overflow:auto}
.events{list-style:none;padding:0}.events li{padding:5px 0;border-bottom:1px solid var(--line)}.events time{color:var(--muted);margin-right:8px}.events li.warn{color:var(--warn)}
.bars div{margin:8px 0}.bars span{display:block;font-size:13px;color:var(--muted)}.bars i,.bar i{display:block;height:10px;background:var(--ok);border-radius:6px}.bars div,.bar{background:#222a35;border-radius:6px}
.calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.calc label{display:flex;flex-direction:column;gap:4px;color:var(--muted)}
.settings fieldset{border:1px solid var(--line);border-radius:10px;margin-bottom:16px}.settings label{display:block;margin:8px 0}
tr.resolved{opacity:.45}
