:root{--bg:#0b1019;--panel:#151d2b;--line:#29354a;--text:#eef3fb;--muted:#9ca8bb;--accent:#7583ff;--ok:#38d487;--bad:#ff6670;--warn:#efb646;--blue:#71b7ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Arial,sans-serif}.layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{position:sticky;top:0;height:100vh;padding:25px 18px;background:#080d15;border-right:1px solid var(--line)}.brand{font-size:25px;font-weight:800;margin-bottom:28px}.brand span{color:var(--accent)}nav{display:grid;gap:6px}nav a{padding:12px;color:#ccd5e5;text-decoration:none;border-radius:10px}nav a:hover{background:var(--panel)}.side-note{position:absolute;bottom:20px;color:var(--muted);font-size:12px}main{padding:30px;max-width:1600px;width:100%}h1{margin:0 0 6px}h2{margin-top:28px}h3{margin:0 0 8px}p,small,.hint{color:var(--muted)}a{color:inherit}.page-head,.head,.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.live{color:var(--ok)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:22px 0}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px}.card b{display:block;font-size:30px}.card span{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px;margin:18px 0}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#263149;font-size:11px;font-weight:800;white-space:nowrap}.badge.active,.badge.ativa,.badge.online,.badge.published,.badge.info{color:var(--ok)}.badge.error,.badge.offline{color:var(--bad)}.badge.queued,.badge.running{color:var(--warn)}.badge.delivered_test,.badge.manual{color:var(--blue)}.badge.paused{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0}.metrics div{background:#0d1420;padding:10px;border-radius:10px}.metrics b,.metrics small{display:block}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;background:var(--panel)}td,th{padding:12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.columns{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px}.row{padding:12px 0;border-bottom:1px solid var(--line)}.row small{display:block}label{display:grid;gap:6px;margin-bottom:13px}input,select,textarea{background:#0d1420;color:#fff;border:1px solid var(--line);padding:11px;border-radius:9px;width:100%;font:inherit}button,.button{display:inline-block;border:0;border-radius:9px;padding:10px 14px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;cursor:pointer;text-align:center}.secondary{background:#2b3750}.danger{background:#642b34}.full{width:100%;margin-top:12px}.upload{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.upload>input{flex:1}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-bottom:18px}.check,.check-line{display:flex;align-items:center;gap:8px;background:#0d1420;padding:10px;border-radius:9px}.check input,.check-line input{width:auto}.actions{display:flex;gap:6px;align-items:center}.actions form{margin:0}.flash{padding:12px;border-radius:10px;background:#263149;margin-bottom:15px}.flash.success{background:#123826;color:#a9f4cb}.flash.error{background:#4b2028;color:#ffc0c5}.login-body{display:grid;place-items:center;min-height:100vh}.login-card{width:min(390px,90vw);background:var(--panel);border:1px solid var(--line);padding:28px;border-radius:17px}.login-card button{width:100%;margin-top:10px}.codebox{white-space:pre-wrap;overflow-wrap:anywhere;background:#0b111c;border:1px solid var(--line);padding:12px;border-radius:10px;color:#cbd5e6}.text-link{color:#aeb8ff;text-decoration:none}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0;color:var(--muted)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.truncate-cell{max-width:260px;overflow:hidden;text-overflow:ellipsis}.error-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;color:#ffc0c5}.empty{text-align:center;color:var(--muted)}canvas.line-chart{width:100%;display:block;background:#0d1420;border-radius:10px}.error-page{max-width:650px;margin:10vh auto}@media(max-width:850px){.layout{grid-template-columns:1fr}aside{position:relative;height:auto}.side-note{display:none}main{padding:18px}.columns,.formgrid{grid-template-columns:1fr}.page-head,.row{align-items:flex-start;flex-direction:column}.actions{flex-wrap:wrap}}
.upload-progress{display:grid;gap:10px;margin-top:14px}.progress-row{display:grid;grid-template-columns:minmax(180px,1fr) 160px minmax(180px,2fr);gap:12px;align-items:center;padding:10px;background:#0d1420;border-radius:10px}.progress-row progress{width:100%;accent-color:var(--accent)}.progress-row.success span{color:var(--ok)}.progress-row.failed span,.mini-error{color:#ffc0c5}.mini-error{margin-top:10px;padding:9px;background:#4b2028;border-radius:8px;overflow-wrap:anywhere}@media(max-width:700px){.progress-row{grid-template-columns:1fr}.progress-row progress{min-height:18px}}
.source-row{padding:18px 0;border-bottom:1px solid var(--line)}.source-row:last-child{border-bottom:0}.badge.pending_approval{color:var(--warn)}.badge.completed,.badge.idle{color:var(--blue)}
.media-preview{display:block;width:100%;aspect-ratio:9/16;max-height:420px;object-fit:contain;background:#05080d;border-radius:10px;margin:12px 0}

.ai-box{background:#0d1420;border:1px solid #33415d;padding:12px;border-radius:10px;margin:10px 0}.ai-box p{color:#eef3fb;white-space:pre-wrap}.ai-box small{white-space:pre-wrap}
