:root{--bg:#041225;--bg2:#061b38;--card:#071d3a;--card2:#0b2d58;--line:#14599b;--text:#f7fbff;--muted:#b7c7dc;--yellow:#ffd21a;--blue:#25a7ff;--green:#38d54a;--orange:#ffb51f;--red:#ff4d45;--gray:#8490a3;--purple:#9b5cff}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top,#0a3a75 0,#061b38 35%,#020914 100%);color:var(--text)}a{color:inherit;text-decoration:none}.wrap{max-width:1480px;margin:0 auto;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#061b38,#082a57);border:1px solid var(--line);border-radius:16px;padding:16px 22px;box-shadow:0 12px 35px #0007}.brand{display:flex;gap:14px;align-items:center}.logo{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/19px 19px;border:3px solid #fff}.brand h1{font-size:34px;line-height:1;margin:0}.brand p{font-size:20px;margin:2px 0 0;color:#fff}.clock{display:flex;gap:22px;align-items:center}.dateBox{font-size:22px;line-height:1.2;color:#fff}.timeBox{font-size:60px;font-weight:900;color:var(--yellow);letter-spacing:1px}.gridTop{display:grid;grid-template-columns:1fr 1.25fr 350px;gap:12px;margin-top:12px}.panelCard{background:linear-gradient(135deg,#061b38,#020d1d);border:1px solid var(--line);border-radius:14px;padding:24px;min-height:245px;box-shadow:0 12px 30px #0008}.label{display:inline-block;background:var(--yellow);color:#061225;font-weight:900;border-radius:6px;padding:8px 14px;margin-bottom:18px;font-size:18px}.programName{font-size:74px;font-weight:900;letter-spacing:-2px}.live{font-size:31px;font-weight:900;color:var(--yellow);margin-top:8px}.smallInfo{font-size:24px;color:#fff;margin-top:18px}.nextTime{font-size:82px;font-weight:900;color:var(--yellow);line-height:1}.nextClient{font-size:36px;font-weight:900;text-transform:uppercase;margin-top:10px}.rep{font-size:23px;color:#e7eef7;margin-top:22px}.dayPrograms{padding:18px}.programBox{border:1px solid var(--blue);border-left:8px solid var(--yellow);border-radius:8px;margin-bottom:8px;padding:11px 18px;font-size:21px;font-weight:800}.programBox span{display:block;color:var(--yellow);font-size:18px}.tableBox{margin-top:12px;background:#06182f;border:1px solid var(--line);border-radius:14px;overflow:hidden}.tableTitle{background:linear-gradient(90deg,#075bb5,#06356d);padding:13px 28px;font-weight:900;font-size:23px}.table{width:100%;border-collapse:collapse}.table th{background:#141c25;color:#cfd7e4;text-align:left;font-size:17px;padding:14px 18px}.table td{border-top:1px solid #ffffff22;padding:13px 18px;font-size:23px;font-weight:800}.table tr.activeRow{background:linear-gradient(90deg,#2b2b2b,#172638);outline:1px solid #ffd21a66}.table .hour{font-size:30px}.status{display:inline-flex;align-items:center;gap:10px;border-radius:8px;padding:8px 12px;font-size:19px;font-weight:900}.st-concluido{color:var(--green)}.st-concluido_falha{color:#f59e0b;border:1px solid #f59e0b}.st-em_andamento{color:var(--orange);border:1px solid var(--yellow)}.st-aguardando{color:var(--blue)}.st-atrasado{color:var(--red)}.st-cancelado{color:var(--gray)}.dot{width:22px;height:22px;border-radius:50%;display:inline-block;background:currentColor}.footerLegend{display:flex;gap:28px;align-items:center;padding:10px 28px;border-top:1px solid #fff2;color:#fff;font-size:15px;font-weight:800}.adminLayout{max-width:1280px;margin:0 auto;padding:20px}.adminCard{background:#fff;color:#172033;border-radius:14px;padding:18px;margin-top:14px;box-shadow:0 10px 30px #0004}.adminHeader{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.btn{border:0;border-radius:8px;padding:10px 14px;font-weight:800;cursor:pointer;background:#0a65c7;color:#fff}.btn.green{background:#198f32}.btn.orange{background:#d98200}.btn.red{background:#c22}.btn.gray{background:#687386}.btn.dark{background:#172033}.formGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}label{font-size:13px;font-weight:800;color:#405066}input,select,textarea{width:100%;padding:10px;border:1px solid #ccd4df;border-radius:8px;font-size:15px}textarea{min-height:42px}.adminTable{width:100%;border-collapse:collapse}.adminTable th,.adminTable td{padding:10px;border-bottom:1px solid #e1e6ef;text-align:left}.adminTable th{background:#eef4fb}.actions{display:flex;gap:6px;flex-wrap:wrap}.loginBox{max-width:420px;margin:9vh auto;background:#fff;color:#172033;padding:28px;border-radius:16px}.error{background:#ffe4e4;color:#900;padding:10px;border-radius:8px;margin-bottom:10px}@media(max-width:1000px){.gridTop{grid-template-columns:1fr}.timeBox{font-size:42px}.programName{font-size:48px}.formGrid{grid-template-columns:1fr}.table td{font-size:18px}}

.btn.black{background:#111827;color:#fff}
.btn.black:hover{filter:brightness(1.15)}


/* =========================
   PAINEL TV COMPACTO V1.3
   Cabeçalho corrigido + lista com mais linhas
========================= */
body.tvCompact{
  overflow:hidden;
  background:radial-gradient(circle at top,#0a3970 0,#061b38 30%,#020914 100%);
}
.compactWrap{
  max-width:none;
  width:100vw;
  height:100vh;
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.compactTopbar{
  height:92px;
  display:grid;
  grid-template-columns:250px 245px minmax(0,1fr) 285px;
  gap:8px;
  align-items:stretch;
  background:linear-gradient(90deg,#061b38,#082a57);
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px;
  box-shadow:0 8px 22px #0008;
  overflow:hidden;
}
.compactBrand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.compactLogo{
  width:44px;
  height:44px;
  border-radius:50%;
  background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/15px 15px;
  border:3px solid #fff;
  flex:0 0 auto;
}
.compactBrand h1{
  font-size:26px;
  line-height:1;
  margin:0;
  font-weight:900;
  white-space:nowrap;
}
.compactBrand p{
  font-size:14px;
  margin:2px 0 0;
  color:#fff;
  font-weight:800;
  white-space:nowrap;
}
.compactProgram,
.compactNext,
.compactClock{
  background:#041a34;
  border:1px solid #ffffff18;
  border-radius:9px;
  padding:8px 12px;
  min-width:0;
  overflow:hidden;
}
.compactProgram span,
.compactNext span{
  display:block;
  color:var(--yellow);
  font-size:12px;
  font-weight:900;
  margin-bottom:3px;
  white-space:nowrap;
}
.compactProgram strong{
  display:block;
  font-size:29px;
  line-height:1.02;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.compactProgram small{
  display:block;
  color:#dce8f6;
  font-size:13px;
  margin-top:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.compactNext strong{
  display:flex;
  align-items:baseline;
  gap:12px;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
}
.compactNext b{
  color:var(--yellow);
  font-size:36px;
  line-height:1;
  font-weight:900;
  flex:0 0 auto;
}
.compactNext em{
  font-style:normal;
  font-size:26px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
.compactNext small{
  display:block;
  color:#dce8f6;
  font-size:14px;
  margin-top:5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.compactClock{
  text-align:right;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-end;
}
.compactClock div{
  font-size:16px;
  line-height:1.15;
  font-weight:800;
  max-width:100%;
}
.compactClock strong{
  font-size:50px;
  line-height:.95;
  color:var(--yellow);
  font-weight:900;
  letter-spacing:1px;
  white-space:nowrap;
}
.compactTableBox{
  flex:1;
  min-height:0;
  background:#06182f;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 8px 24px #0008;
}
.compactTableTitle{
  height:42px;
  background:linear-gradient(90deg,#075bb5,#06356d);
  display:flex;
  align-items:center;
  gap:16px;
  padding:0 16px;
  font-weight:900;
  flex:0 0 auto;
}
.compactTableTitle>span{
  font-size:22px;
  white-space:nowrap;
}
.compactLegend{
  display:flex;
  gap:15px;
  font-size:13px;
  margin-left:auto;
  white-space:nowrap;
  align-items:center;
}
.compactTable{
  width:100%;
  table-layout:fixed;
}
.compactTable th{
  font-size:14px;
  padding:7px 12px;
}
.compactTable td{
  font-size:19px;
  padding:6px 12px;
  height:43px;
  line-height:1.1;
  vertical-align:middle;
}
.compactTable th:nth-child(1),.compactTable td:nth-child(1){width:13%}
.compactTable th:nth-child(2),.compactTable td:nth-child(2){width:31%}
.compactTable th:nth-child(3),.compactTable td:nth-child(3){width:22%}
.compactTable th:nth-child(4),.compactTable td:nth-child(4){width:17%}
.compactTable th:nth-child(5),.compactTable td:nth-child(5){width:17%}
.compactTable td:nth-child(2),.compactTable td:nth-child(3),.compactTable td:nth-child(4){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compactTable .hour{
  font-size:25px;
  white-space:nowrap;
}
.compactTable .status{
  font-size:15px;
  padding:4px 8px;
  gap:7px;
  white-space:nowrap;
}
.compactTable .dot{
  width:15px;
  height:15px;
}
.compactTable tr.activeRow{
  background:linear-gradient(90deg,#2d2b22,#172638);
  box-shadow:inset 5px 0 0 var(--yellow);
  outline:none;
}
.compactFooter{
  height:28px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  border-top:1px solid #ffffff22;
  padding:0 16px;
  font-size:13px;
  font-weight:900;
  color:#fff;
  flex:0 0 auto;
}
@media(max-width:1200px){
  .compactTopbar{grid-template-columns:220px 210px minmax(0,1fr) 240px;height:88px}
  .compactClock strong{font-size:42px}
  .compactNext em{font-size:22px}
  .compactNext b{font-size:31px}
  .compactProgram strong{font-size:24px}
  .compactTable td{font-size:17px;height:39px}
  .compactTable .hour{font-size:22px}
}

/* =========================
   PAINEL TV V1.4 - Layout aplicado do mockup
   Mais margem lateral, cabeçalho sem corte, horário destacado e linhas por status
========================= */
body.tvV14{
  overflow:hidden;
  background:radial-gradient(circle at top,#0b386e 0,#06172d 38%,#020914 100%);
}
.tvV14 .compactWrap{
  width:100vw;
  height:100vh;
  padding:14px 18px;
  gap:16px;
}
.tvV14 .v14Topbar{
  height:126px;
  grid-template-columns:360px 305px minmax(0,1fr) 420px;
  gap:0;
  padding:0;
  background:linear-gradient(90deg,#061322,#071d38 50%,#061322);
  border:1px solid #23679e;
  border-radius:14px;
  box-shadow:0 10px 32px #000a;
}
.tvV14 .v14Brand,
.tvV14 .v14Program,
.tvV14 .v14Next,
.tvV14 .v14Clock{
  background:transparent;
  border:0;
  border-radius:0;
  padding:22px 26px;
  height:100%;
  overflow:hidden;
  min-width:0;
}
.tvV14 .v14Brand,
.tvV14 .v14Program,
.tvV14 .v14Next{
  border-right:1px solid #ffffff40;
}
.tvV14 .compactLogo{
  width:58px;
  height:58px;
  background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/19px 19px;
  border:3px solid #fff;
}
.tvV14 .compactBrand h1{
  font-size:35px;
  line-height:1;
}
.tvV14 .compactBrand p{
  font-size:20px;
  line-height:1.05;
}
.tvV14 .v14Program{
  position:relative;
  padding-left:34px;
}
.tvV14 .v14Program:before{
  content:"";
  position:absolute;
  left:24px;
  top:38px;
  bottom:28px;
  width:4px;
  background:var(--purple);
  border-radius:4px;
}
.tvV14 .compactProgram span,
.tvV14 .compactNext span{
  font-size:15px;
  line-height:1;
  margin:0 0 10px;
  color:var(--yellow);
}
.tvV14 .compactProgram strong{
  font-size:31px;
  line-height:1.02;
  max-width:100%;
}
.tvV14 .compactProgram small{
  font-size:16px;
  line-height:1.15;
  margin-top:8px;
}
.tvV14 .v14Next{
  padding-top:20px;
}
.tvV14 .compactNext strong{
  gap:16px;
  align-items:center;
}
.tvV14 .compactNext b{
  font-size:48px;
  color:#fff;
  position:relative;
  padding-left:46px;
}
.tvV14 .compactNext b:before{
  content:"◷";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  font-size:34px;
  color:#fff;
  opacity:.95;
}
.tvV14 .compactNext em{
  font-size:29px;
  line-height:1.05;
}
.tvV14 .compactNext small{
  font-size:16px;
  margin-top:5px;
}
.tvV14 .v14Clock{
  align-items:flex-end;
  justify-content:center;
  padding-right:32px;
}
.tvV14 .compactClock div{
  font-size:21px;
  line-height:1.15;
  font-weight:900;
  white-space:normal;
}
.tvV14 .compactClock strong{
  font-size:58px;
  line-height:1;
  margin-top:8px;
}
.tvV14 .v14TableBox{
  border-radius:14px;
  border:1px solid #23679e;
  background:linear-gradient(180deg,#061a33,#06182f);
}
.tvV14 .v14TableTitle{
  height:66px;
  background:linear-gradient(90deg,#051a33,#06213f);
  border-bottom:1px solid #ffffff18;
  padding:0 26px;
}
.tvV14 .v14TableTitle>span{
  font-size:26px;
}
.tvV14 .compactLegend{
  gap:26px;
  font-size:16px;
}
.tvV14 .compactLegend .clean{border:0}
.tvV14 .v14Table thead th{
  background:linear-gradient(180deg,#092544,#071c34);
  color:#cdd8e7;
  padding:11px 20px;
  font-size:16px;
}
.tvV14 .v14Table td{
  height:78px;
  padding:11px 20px;
  font-size:23px;
  border-top:1px solid #ffffff14;
  text-shadow:0 1px 2px #000;
}
.tvV14 .v14Table th:nth-child(1),.tvV14 .v14Table td:nth-child(1){width:14%}
.tvV14 .v14Table th:nth-child(2),.tvV14 .v14Table td:nth-child(2){width:25%}
.tvV14 .v14Table th:nth-child(3),.tvV14 .v14Table td:nth-child(3){width:24%}
.tvV14 .v14Table th:nth-child(4),.tvV14 .v14Table td:nth-child(4){width:20%}
.tvV14 .v14Table th:nth-child(5),.tvV14 .v14Table td:nth-child(5){width:17%}
.tvV14 .v14Table .hour{
  display:flex;
  align-items:center;
  gap:18px;
  font-size:0;
}
.tvV14 .hourIcon{
  width:24px;
  text-align:center;
  font-size:23px;
  line-height:1;
  flex:0 0 auto;
}
.tvV14 .hourBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:112px;
  height:48px;
  border-radius:9px;
  border:1px solid currentColor;
  background:#0b5aaa;
  color:#fff;
  font-size:29px;
  font-weight:900;
  box-shadow:inset 0 0 18px #ffffff10,0 4px 12px #0006;
}
.tvV14 tr.row-concluido{
  background:linear-gradient(90deg,#063d2f,#063529 38%,#08223c);
  box-shadow:inset 5px 0 0 var(--green);
}
.tvV14 tr.row-concluido_falha{
  background:linear-gradient(90deg,#5b3608,#3a290d 44%,#08223c);
  box-shadow:inset 5px 0 0 #f59e0b;
}
.tvV14 tr.row-em_andamento{
  background:linear-gradient(90deg,#3c3511,#332b10 44%,#08223c);
  box-shadow:inset 5px 0 0 var(--yellow);
}
.tvV14 tr.row-aguardando{
  background:linear-gradient(90deg,#062c54,#06233f 50%,#06182f);
  box-shadow:inset 5px 0 0 var(--blue);
}
.tvV14 tr.row-atrasado{
  background:linear-gradient(90deg,#4b1621,#321624 48%,#081d35);
  box-shadow:inset 5px 0 0 var(--red);
}
.tvV14 tr.row-cancelado{
  background:linear-gradient(90deg,#2b3239,#202932 48%,#081d35);
  opacity:.82;
  box-shadow:inset 5px 0 0 var(--gray);
}
.tvV14 .row-concluido .hourBadge{color:var(--green);background:#0c3b2d}
.tvV14 .row-concluido_falha .hourBadge{color:#061322;background:#f59e0b;border-color:#ffd166;text-shadow:none}
.tvV14 .row-em_andamento .hourBadge{color:#061322;background:var(--yellow);border-color:#ffdf4d;text-shadow:none}
.tvV14 .row-aguardando .hourBadge{color:#fff;background:#0a5bb0;border-color:#137cdf}
.tvV14 .row-atrasado .hourBadge{color:#fff;background:#9e202a;border-color:#ff4d45}
.tvV14 .row-cancelado .hourBadge{color:#fff;background:#5e6771;border-color:#9aa4b3}
.tvV14 .v14Table .status{
  font-size:18px;
  padding:10px 14px;
  border:1px solid currentColor;
  background:#00000020;
  border-radius:8px;
}
.tvV14 .v14Table .dot{width:16px;height:16px}
.tvV14 .program-destaque{color:#9b5cff!important}
.tvV14 .program-tribuna-da-massa{color:#25a7ff!important}
.tvV14 .program-ta-na-hora-pr{color:#006eff!important}
.tvV14 .v14Footer{
  justify-content:center;
  gap:28px;
  height:58px;
  font-size:18px;
  color:#c8d5e8;
}
.tvV14 .refreshMini{
  color:var(--blue);
  font-weight:900;
}
@media(max-width:1400px){
  .tvV14 .v14Topbar{grid-template-columns:310px 255px minmax(0,1fr) 330px;height:112px}
  .tvV14 .v14Brand,.tvV14 .v14Program,.tvV14 .v14Next,.tvV14 .v14Clock{padding:18px 20px}
  .tvV14 .compactBrand h1{font-size:30px}.tvV14 .compactBrand p{font-size:17px}
  .tvV14 .compactProgram strong{font-size:28px}
  .tvV14 .compactNext b{font-size:40px}.tvV14 .compactNext em{font-size:25px}
  .tvV14 .compactClock strong{font-size:48px}.tvV14 .compactClock div{font-size:18px}
  .tvV14 .v14Table td{height:66px;font-size:20px}
  .tvV14 .hourBadge{height:43px;min-width:96px;font-size:26px}
}
@media(max-width:1100px){
  .tvV14 .v14Topbar{grid-template-columns:1fr 1fr;height:auto}
  body.tvV14{overflow:auto}.tvV14 .compactWrap{height:auto;min-height:100vh}
  .tvV14 .v14Table td{height:54px}
}

/* =========================
   PAINEL TV V1.5
   Cabeçalho em faixa única, programa embutido no cliente,
   mais linhas visíveis e cores completas por status.
========================= */
body.tvV15{
  overflow:hidden;
  background:radial-gradient(circle at top,#0b386e 0,#06172d 36%,#020914 100%);
}
.tvV15 .compactWrap{
  width:100vw;
  height:100vh;
  max-width:none;
  padding:14px 18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.v15Topbar{
  height:104px;
  display:grid;
  grid-template-columns:300px 250px minmax(0,1fr) 350px;
  align-items:stretch;
  background:linear-gradient(90deg,#061322,#071d38 48%,#061322);
  border:1px solid #23679e;
  border-radius:14px;
  box-shadow:0 10px 32px #000a;
  overflow:hidden;
}
.v15Brand,
.v15Program,
.v15Next,
.v15Clock{
  min-width:0;
  padding:18px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid #ffffff35;
}
.v15Brand{
  flex-direction:row;
  align-items:center;
  gap:14px;
}
.v15Clock{border-right:0;align-items:flex-end;text-align:right}
.tvV15 .compactLogo{
  width:54px;
  height:54px;
  background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/18px 18px;
  border:3px solid #fff;
  flex:0 0 auto;
}
.v15Brand h1{font-size:32px;line-height:.95;margin:0;font-weight:900;white-space:nowrap}
.v15Brand p{font-size:17px;line-height:1;margin:3px 0 0;font-weight:900;color:#fff;white-space:nowrap}
.v15Program{position:relative;padding-left:30px}
.v15Program:before{
  content:"";
  position:absolute;
  left:20px;
  top:29px;
  bottom:22px;
  width:4px;
  background:var(--programColor,var(--purple));
  border-radius:6px;
}
.v15Program span,
.v15Next span{
  color:var(--yellow);
  font-size:14px;
  line-height:1;
  font-weight:900;
  margin-bottom:8px;
  white-space:nowrap;
}
.v15Program strong{
  font-size:29px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:var(--programColor,var(--text));
}
.v15Program small,
.v15Next small{
  font-size:15px;
  line-height:1.1;
  margin-top:7px;
  color:#dce8f6;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.v15Next strong{
  display:flex;
  align-items:center;
  gap:15px;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
}
.v15Next b{
  color:#fff;
  font-size:46px;
  line-height:1;
  font-weight:900;
  flex:0 0 auto;
}
.v15Next em{
  font-style:normal;
  font-size:27px;
  line-height:1;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-width:0;
}
.v15Clock div{font-size:19px;line-height:1.12;font-weight:900;color:#fff;max-width:100%}
.v15Clock strong{font-size:56px;line-height:.95;margin-top:6px;color:var(--yellow);font-weight:900;letter-spacing:1px;white-space:nowrap}
.v15TableBox{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#061a33,#06182f);
  border:1px solid #23679e;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 24px #0008;
}
.v15TableTitle{
  height:58px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:18px;
  padding:0 26px;
  background:linear-gradient(90deg,#051a33,#06213f);
  border-bottom:1px solid #ffffff18;
  font-weight:900;
}
.v15TableTitle>span{font-size:25px;white-space:nowrap}
.tvV15 .compactLegend{display:flex;gap:22px;margin-left:auto;font-size:15px;align-items:center;white-space:nowrap}
.tvV15 .compactLegend .clean{border:0}.st-prepare{color:#ff8f1f}
.v15Table{width:100%;table-layout:fixed;border-collapse:collapse}
.v15Table thead th{
  background:linear-gradient(180deg,#092544,#071c34);
  color:#cdd8e7;
  text-align:left;
  padding:10px 22px;
  font-size:16px;
  height:42px;
}
.v15Table th:nth-child(1),.v15Table td:nth-child(1){width:15%}
.v15Table th:nth-child(2),.v15Table td:nth-child(2){width:47%}
.v15Table th:nth-child(3),.v15Table td:nth-child(3){width:20%}
.v15Table th:nth-child(4),.v15Table td:nth-child(4){width:18%}
.v15Table td{
  height:68px;
  padding:10px 22px;
  font-size:22px;
  font-weight:900;
  border-top:1px solid #ffffff14;
  text-shadow:0 1px 2px #000;
  vertical-align:middle;
}
.v15Table td:nth-child(2),.v15Table td:nth-child(3){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v15Table .hour{display:flex;align-items:center;gap:16px;font-size:0;white-space:nowrap}
.v15Table .hourIcon{width:24px;text-align:center;font-size:24px;line-height:1;flex:0 0 auto}
.v15Table .hourBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:116px;
  height:48px;
  border-radius:9px;
  border:1px solid currentColor;
  color:#fff;
  background:#0a5bb0;
  font-size:30px;
  font-weight:900;
  box-shadow:inset 0 0 18px #ffffff12,0 4px 12px #0006;
}
.v15Table .clientCell strong{display:block;font-size:25px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}
.v15Table .clientCell small{display:block;margin-top:7px;font-size:13px;line-height:1;color:#c9d5e4;text-shadow:none;text-transform:uppercase;letter-spacing:.5px}
.v15Table .status{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:17px;
  padding:9px 13px;
  border:1px solid currentColor;
  background:#00000024;
  border-radius:8px;
  white-space:nowrap;
}
.v15Table .dot{width:15px;height:15px;border-radius:50%;display:inline-block;background:currentColor}
.v15Table tr.row-concluido{background:linear-gradient(90deg,#063d2f,#063529 38%,#08223c);box-shadow:inset 5px 0 0 var(--green)}
.v15Table tr.row-concluido_falha{background:linear-gradient(90deg,#5b3608,#3a290d 44%,#08223c);box-shadow:inset 5px 0 0 #f59e0b}
.v15Table tr.row-em_andamento{background:linear-gradient(90deg,#3c3511,#332b10 44%,#08223c);box-shadow:inset 5px 0 0 var(--yellow)}
.v15Table tr.row-prepare{background:linear-gradient(90deg,#4a2608,#33220d 44%,#08223c);box-shadow:inset 5px 0 0 #ff8f1f}
.v15Table tr.row-aguardando{background:linear-gradient(90deg,#062c54,#06233f 50%,#06182f);box-shadow:inset 5px 0 0 var(--blue)}
.v15Table tr.row-atrasado{background:linear-gradient(90deg,#4b1621,#321624 48%,#081d35);box-shadow:inset 5px 0 0 var(--red)}
.v15Table tr.row-cancelado{background:linear-gradient(90deg,#2b3239,#202932 48%,#081d35);opacity:.82;box-shadow:inset 5px 0 0 var(--gray)}
.v15Table .row-concluido .hourBadge{color:var(--green);background:#0c3b2d}
.v15Table .row-concluido_falha .hourBadge{color:#061322;background:#f59e0b;border-color:#ffd166;text-shadow:none}
.v15Table .row-em_andamento .hourBadge{color:#061322;background:var(--yellow);border-color:#ffdf4d;text-shadow:none}
.v15Table .row-prepare .hourBadge{color:#061322;background:#ff8f1f;border-color:#ffb15c;text-shadow:none}
.v15Table .row-aguardando .hourBadge{color:#fff;background:#0a5bb0;border-color:#137cdf}
.v15Table .row-atrasado .hourBadge{color:#fff;background:#9e202a;border-color:#ff4d45}
.v15Table .row-cancelado .hourBadge{color:#fff;background:#5e6771;border-color:#9aa4b3}
.v15Table tr.activeRow{outline:none;filter:brightness(1.08)}
.v15Footer{
  height:46px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  border-top:1px solid #ffffff18;
  color:#c8d5e8;
  font-size:17px;
  font-weight:900;
}
.v15Footer .refreshMini{color:var(--blue)}
.tvV15 .program-destaque{color:#9b5cff!important}.tvV15 .program-tribuna-da-massa{color:#25a7ff!important}.tvV15 .program-ta-na-hora-pr{color:#006eff!important}
@media(max-width:1400px){
  .v15Topbar{grid-template-columns:285px 230px minmax(0,1fr) 315px;height:94px}
  .v15Brand,.v15Program,.v15Next,.v15Clock{padding:15px 18px}
  .v15Brand h1{font-size:29px}.v15Brand p{font-size:16px}.tvV15 .compactLogo{width:48px;height:48px}
  .v15Program strong{font-size:25px}.v15Next b{font-size:39px}.v15Next em{font-size:23px}.v15Clock strong{font-size:46px}.v15Clock div{font-size:17px}
  .v15Table td{height:60px;font-size:20px}.v15Table .hourBadge{height:42px;min-width:100px;font-size:26px}.v15Table .clientCell strong{font-size:22px}
  .tvV15 .compactLegend{gap:14px;font-size:13px}.v15TableTitle>span{font-size:22px}
}

/* =========================
   PAINEL TV V1.6
   Header sem corte + filtro Todos/Programa no ar
========================= */
body.tvV16{
  overflow:hidden;
}
.tvV16 .compactWrap{
  padding:14px 18px;
  gap:10px;
}
.tvV16 .v15Topbar{
  height:92px;
  grid-template-columns:300px 230px minmax(0,1fr) 335px;
}
.tvV16 .v15Brand,
.tvV16 .v15Program,
.tvV16 .v15Next,
.tvV16 .v15Clock{
  padding-top:12px;
  padding-bottom:12px;
}
.tvV16 .v15Brand h1{font-size:31px;line-height:.9}
.tvV16 .v15Brand p{font-size:16px;line-height:1}
.tvV16 .compactLogo{width:50px;height:50px;background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/17px 17px}
.tvV16 .v15Program:before{top:24px;bottom:18px}
.tvV16 .v15Program span,
.tvV16 .v15Next span{font-size:13px;margin-bottom:6px}
.tvV16 .v15Program strong{font-size:27px;line-height:1.04}
.tvV16 .v15Program small{font-size:14px;margin-top:5px;line-height:1}
.tvV16 .v15Next b{font-size:42px;line-height:.95}
.tvV16 .v15Next em{font-size:25px;line-height:1}
.tvV16 .v15Next small{font-size:14px;margin-top:4px;line-height:1}
.tvV16 .v15Clock{padding-right:24px;overflow:visible}
.tvV16 .v15Clock div{font-size:18px;line-height:1.05;max-width:100%}
.tvV16 .v15Clock strong{font-size:48px;line-height:.92;margin-top:3px}
.tvV16 .v15TableTitle{height:56px;gap:14px;padding:0 22px}
.tvV16 .v15TableTitle>span{font-size:25px}
.tvFilterBox{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:14px;
  padding-left:14px;
  border-left:1px solid #ffffff24;
  flex:0 0 auto;
}
.tvFilterBox label{
  color:#c9d5e4;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.tvFilterBox select{
  width:auto;
  min-width:150px;
  height:32px;
  padding:4px 28px 4px 10px;
  border-radius:8px;
  border:1px solid #23679e;
  background:#061a33;
  color:#fff;
  font-size:14px;
  font-weight:900;
  outline:none;
}
.tvV16 .compactLegend{gap:18px;font-size:14px;margin-left:auto}
.tvV16 .v15Table thead th{height:38px;padding:8px 22px}
.tvV16 .v15Table td{height:62px;padding:9px 22px}
.tvV16 .v15Table .clientCell strong{font-size:25px}
.tvV16 .emptyRow td{
  height:120px;
  text-align:center;
  color:#c8d5e8;
  font-size:26px;
  background:#06182f;
  text-shadow:none;
}
@media(max-width:1400px){
  .tvV16 .v15Topbar{height:88px;grid-template-columns:265px 210px minmax(0,1fr) 285px}
  .tvV16 .v15Brand,.tvV16 .v15Program,.tvV16 .v15Next,.tvV16 .v15Clock{padding:10px 14px}
  .tvV16 .v15Brand h1{font-size:26px}.tvV16 .v15Brand p{font-size:14px}.tvV16 .compactLogo{width:44px;height:44px}
  .tvV16 .v15Program strong{font-size:24px}.tvV16 .v15Program small{font-size:12px}
  .tvV16 .v15Next b{font-size:36px}.tvV16 .v15Next em{font-size:21px}.tvV16 .v15Next small{font-size:12px}
  .tvV16 .v15Clock div{font-size:15px}.tvV16 .v15Clock strong{font-size:40px}
  .tvV16 .v15TableTitle>span{font-size:22px}
  .tvV16 .compactLegend{gap:10px;font-size:12px}
  .tvFilterBox{margin-left:8px;padding-left:8px}.tvFilterBox label{display:none}.tvFilterBox select{min-width:130px;height:29px;font-size:12px}
  .tvV16 .v15Table td{height:57px}
}

/* =========================
   PAINEL TV V1.7
   Cabeçalho sem corte real + operador melhorado
========================= */
body.tvV17{overflow:hidden;background:radial-gradient(circle at top,#0b386e 0,#06172d 36%,#020914 100%)}
.tvV17 .compactWrap{padding:14px 18px;gap:12px}
.tvV17 .v15Topbar{height:118px;grid-template-columns:320px 255px minmax(0,1fr) 355px;overflow:hidden}
.tvV17 .v15Brand,.tvV17 .v15Program,.tvV17 .v15Next,.tvV17 .v15Clock{padding:16px 20px;justify-content:center;overflow:hidden}
.tvV17 .v15Brand h1{font-size:31px;line-height:1}.tvV17 .v15Brand p{font-size:16px;line-height:1.05}
.tvV17 .compactLogo{width:50px;height:50px;background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/17px 17px}
.tvV17 .v15Program:before{top:31px;bottom:25px}
.tvV17 .v15Program span,.tvV17 .v15Next span{font-size:13px;margin-bottom:8px;line-height:1}
.tvV17 .v15Program strong{font-size:28px;line-height:1.08;max-height:32px}
.tvV17 .v15Program small{font-size:14px;margin-top:8px;line-height:1.1;max-height:18px}
.tvV17 .v15Next strong{align-items:center;gap:14px;height:46px;line-height:1}
.tvV17 .v15Next b{font-size:44px;line-height:1;color:#fff}
.tvV17 .v15Next em{font-size:26px;line-height:1.05}
.tvV17 .v15Next small{font-size:14px;margin-top:8px;line-height:1.1;max-height:18px}
.tvV17 .v15Clock div{font-size:18px;line-height:1.15;max-width:100%}
.tvV17 .v15Clock strong{font-size:50px;line-height:1;margin-top:7px}
.tvV17 .v15TableBox{min-height:0}
.tvV17 .v15TableTitle{height:56px;padding:0 22px;gap:14px}
.tvV17 .v15TableTitle>span{font-size:24px}
.tvV17 .v15Table thead th{height:38px;padding:8px 22px}
.tvV17 .v15Table td{height:61px;padding:8px 22px}
.tvV17 .v15Footer{height:44px}
.tvV17 .compactLegend{gap:16px;font-size:13px;margin-left:auto}
@media(max-width:1400px){
  .tvV17 .compactWrap{padding:10px 12px;gap:10px}
  .tvV17 .v15Topbar{height:104px;grid-template-columns:285px 225px minmax(0,1fr) 305px}
  .tvV17 .v15Brand,.tvV17 .v15Program,.tvV17 .v15Next,.tvV17 .v15Clock{padding:12px 14px}
  .tvV17 .v15Brand h1{font-size:27px}.tvV17 .v15Brand p{font-size:14px}.tvV17 .compactLogo{width:44px;height:44px}
  .tvV17 .v15Program strong{font-size:24px}.tvV17 .v15Program small{font-size:12px;margin-top:6px}
  .tvV17 .v15Next strong{height:40px;gap:10px}.tvV17 .v15Next b{font-size:36px}.tvV17 .v15Next em{font-size:21px}.tvV17 .v15Next small{font-size:12px;margin-top:5px}
  .tvV17 .v15Clock div{font-size:15px}.tvV17 .v15Clock strong{font-size:40px}
  .tvV17 .v15TableTitle>span{font-size:21px}.tvV17 .compactLegend{gap:9px;font-size:11px}
  .tvV17 .v15Table td{height:56px}.tvV17 .v15Table .clientCell strong{font-size:23px}
}

/* Operador V1.7 */
body.adminBody{background:#061225;color:#102033;min-height:100vh}
.operatorWrap{max-width:1500px;margin:0 auto;padding:18px 24px 34px}
.operatorTop{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(90deg,#061322,#092b55);border:1px solid #23679e;border-radius:16px;padding:14px 18px;color:#fff;box-shadow:0 10px 28px #0007}
.operatorBrand{display:flex;align-items:center;gap:14px}.operatorBrand .logo{width:48px;height:48px}.operatorBrand h1{margin:0;font-size:28px;line-height:1}.operatorBrand p{margin:2px 0 0;font-weight:800;color:#c9d5e4}
.operatorActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn.outline{background:transparent;border:1px solid #23679e;color:#fff}.btn.small{padding:7px 10px;font-size:13px}.btn.full{width:100%}.btn:hover{filter:brightness(1.08)}
.operatorGrid{display:grid;grid-template-columns:430px minmax(0,1fr);gap:18px;margin-top:18px;align-items:start}
.opCard{background:#fff;border-radius:16px;padding:20px;box-shadow:0 12px 28px #0004}.opCard h2{margin:0 0 16px;font-size:24px;color:#061225}.opCardHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:nowrap}.opCardHeader>div{min-width:0}.opMuted{color:#65758a;font-weight:800;font-size:14px}
.dateBar{display:flex;align-items:end;justify-content:space-between;gap:14px;background:#fff;border-radius:16px;padding:14px 18px;margin-top:14px;box-shadow:0 10px 24px #0003}.dateBar form{display:flex;align-items:end;gap:10px}.dateBar input{min-width:230px}.operatorName{font-size:18px;font-weight:900;color:#102033}.formGrid.opForm{grid-template-columns:1fr 1fr;gap:12px}.formGrid.opForm .span2{grid-column:span 2}.opForm label{font-size:14px}.opForm input,.opForm select{font-size:16px;padding:12px}.saveRow{display:flex;gap:10px;align-items:center;margin-top:16px}
.adminTable.opTable{font-size:15px}.adminTable.opTable th{background:#edf4ff;color:#102033;font-size:14px;text-transform:uppercase;letter-spacing:.3px}.adminTable.opTable th,.adminTable.opTable td{padding:12px 10px;vertical-align:middle}.adminTable.opTable tr:hover{background:#f7fbff}.opTime{font-size:22px;font-weight:900;color:#061225}.opClient{font-weight:900;font-size:17px}.opProgram{font-size:12px;font-weight:900;text-transform:uppercase;margin-top:3px}.opProgram.destaque{color:#9b5cff}.opProgram.tribuna{color:#169fff}.opProgram.tnh{color:#006eff}.statusBadge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;border:1px solid currentColor;padding:6px 10px;font-weight:900;font-size:13px;white-space:nowrap}.statusBadge:before{content:'●';font-size:14px}.statusBadge.aguardando{color:#168eea;background:#e9f5ff}.statusBadge.em_andamento{color:#b56a00;background:#fff4d8}.statusBadge.concluido{color:#15803d;background:#eafbea}.statusBadge.concluido_falha{color:#b45309;background:#fff4d8}.statusBadge.atrasado{color:#c62828;background:#ffecec}.statusBadge.cancelado{color:#687386;background:#f0f2f5}.actions.opActions{gap:6px}.actions.opActions .btn{padding:8px 10px;font-size:13px;border-radius:8px}.emptyAdmin{padding:26px;text-align:center;color:#65758a;font-weight:800;background:#f7fbff;border-radius:12px}
.quickStats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.statPill{border-radius:12px;padding:10px 12px;background:#f2f6fb;border-left:5px solid #168eea}.statPill b{display:block;font-size:22px;color:#102033}.statPill span{font-size:12px;font-weight:900;text-transform:uppercase;color:#65758a}.statPill.green{border-color:#38d54a}.statPill.orange{border-color:#ffb51f}.statPill.red{border-color:#ff4d45}.statPill.gray{border-color:#8490a3}
@media(max-width:1100px){.operatorGrid{grid-template-columns:1fr}.dateBar{flex-direction:column;align-items:stretch}.operatorTop{flex-direction:column;align-items:flex-start}.formGrid.opForm{grid-template-columns:1fr}.formGrid.opForm .span2{grid-column:auto}.quickStats{grid-template-columns:repeat(2,1fr)}}

/* =========================
   PAINEL TV V1.8
   Cabeçalho ajustado + próximo merchan melhorado + refresh 2s
========================= */
.tvV18 .compactWrap{
  padding:12px 18px;
  gap:12px;
}
.tvV18 .v15Topbar{
  height:128px;
  grid-template-columns:380px 330px minmax(0,1fr) 430px;
  overflow:hidden;
}
.tvV18 .v15Brand,
.tvV18 .v15Program,
.tvV18 .v15Next,
.tvV18 .v15Clock{
  padding:18px 28px;
  justify-content:center;
  overflow:hidden;
}
.tvV18 .v15Brand{gap:18px}
.tvV18 .v15Brand h1{font-size:34px;line-height:.95;letter-spacing:.2px}
.tvV18 .v15Brand p{font-size:17px;line-height:1.05}
.tvV18 .compactLogo{width:56px;height:56px;background:radial-gradient(circle,#fff 12%,transparent 14%) 0 0/18px 18px}
.tvV18 .v15Program{padding-left:34px}
.tvV18 .v15Program:before{left:20px;top:36px;bottom:30px;width:4px}
.tvV18 .v15Program span,
.tvV18 .v15Next span{
  font-size:13px;
  margin-bottom:8px;
  line-height:1;
}
.tvV18 .v15Program strong{
  font-size:29px;
  line-height:1.1;
  max-height:none;
  overflow:visible;
  text-overflow:clip;
}
.tvV18 .v15Program small{
  font-size:15px;
  margin-top:8px;
  line-height:1.1;
  max-height:none;
  overflow:visible;
}
.tvV18 .v15Next strong{
  height:auto;
  min-height:48px;
  align-items:center;
  gap:16px;
  line-height:1;
  overflow:hidden;
}
.tvV18 .v15Next b{
  font-size:48px;
  line-height:1;
  color:#fff;
}
.tvV18 .v15Next em{
  font-size:28px;
  line-height:1.05;
  max-width:100%;
}
.tvV18 .v15Next small{
  font-size:15px;
  margin-top:8px;
  line-height:1.1;
  max-height:none;
  overflow:visible;
}
.tvV18 .v15Clock div{font-size:20px;line-height:1.12;max-width:100%}
.tvV18 .v15Clock strong{font-size:56px;line-height:.95;margin-top:8px}
.tvV18 .v15TableTitle{height:58px}
.tvV18 .v15Footer{height:48px}
.tvV18 .v15Footer .refreshMini{color:var(--blue);font-size:18px}
.tvV18 #updatedAt{color:#e9f2ff}
.tvV18 #updatedAt::first-letter{color:inherit}

@media(max-width:1400px){
  .tvV18 .compactWrap{padding:10px 12px;gap:10px}
  .tvV18 .v15Topbar{
    height:118px;
    grid-template-columns:280px 265px minmax(0,1fr) 300px;
  }
  .tvV18 .v15Brand,
  .tvV18 .v15Program,
  .tvV18 .v15Next,
  .tvV18 .v15Clock{padding:14px 18px}
  .tvV18 .v15Brand{gap:12px}
  .tvV18 .v15Brand h1{font-size:27px}.tvV18 .v15Brand p{font-size:14px}.tvV18 .compactLogo{width:46px;height:46px}
  .tvV18 .v15Program{padding-left:28px}
  .tvV18 .v15Program:before{left:14px;top:32px;bottom:26px}
  .tvV18 .v15Program strong{font-size:24px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tvV18 .v15Program small{font-size:12px;margin-top:7px}
  .tvV18 .v15Next span{font-size:12px;margin-bottom:6px}
  .tvV18 .v15Next strong{gap:10px;min-height:42px}
  .tvV18 .v15Next b{font-size:38px}
  .tvV18 .v15Next em{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tvV18 .v15Next small{font-size:12px;margin-top:5px}
  .tvV18 .v15Clock div{font-size:16px;line-height:1.05}
  .tvV18 .v15Clock strong{font-size:42px;margin-top:6px}
  .tvV18 .v15TableTitle{height:56px}
  .tvV18 .v15TableTitle>span{font-size:22px}
  .tvV18 .compactLegend{gap:10px;font-size:12px}
  .tvV18 .v15Table td{height:58px}
  .tvV18 .v15Footer{height:42px;font-size:14px}
}

/* =========================
   V1.9 - Ajustes validados na TV da recepção
   Cliente maior, representante menor, localização e próximo merchan com mais destaque
========================= */
.tvV18 .v15Topbar{
  height:108px;
  grid-template-columns:305px 300px minmax(0,1fr) 365px;
}
.tvV18 .v15Program strong{
  font-size:30px;
  max-width:100%;
}
.tvV18 .v15Program small{
  color:#ffffff;
  font-weight:800;
  opacity:.95;
}
.tvV18 .v15Program small::before{
  content:"● ";
  color:#38d54a;
}
.tvV18 .v15Next{
  background:linear-gradient(90deg,#071d38 0%,#0b2b50 45%,#071d38 100%);
  box-shadow:inset 0 0 0 1px #ffd21a22;
}
.tvV18 .v15Next span{
  display:inline-flex;
  width:max-content;
  background:#ffd21a;
  color:#061322;
  padding:4px 10px;
  border-radius:5px;
  font-size:13px;
  margin-bottom:7px;
}
.tvV18 .v15Next b{
  color:#ffd21a;
  font-size:49px;
}
.tvV18 .v15Next em{
  font-size:30px;
  letter-spacing:.2px;
}
.tvV18 .v15Next small{
  font-size:15px;
  color:#ffffff;
  opacity:.95;
}
.tvV18 .v15Table .clientCell strong{
  font-size:30px;
  letter-spacing:.4px;
}
.tvV18 .v15Table .clientCell small{
  font-size:14px;
  color:#e8f2ff;
  opacity:.95;
}
.tvV18 .v15Table .repCell,
.tvV18 .v15Table td:nth-child(3){
  font-size:20px;
  font-weight:800;
  opacity:.92;
}
.tvV18 .v15Table td{
  height:72px;
}
.tvV18 .v15Table .hourBadge{
  font-size:32px;
  min-width:122px;
  height:50px;
}
.tvV18 .row-prepare .clientCell strong,
.tvV18 .row-em_andamento .clientCell strong{
  color:#ffd21a!important;
}
.tvV18 .v15Footer{
  color:#ffffff;
}
.tvV18 .refreshMini{
  color:#25a7ff;
  font-size:18px;
}
@media(max-width:1400px){
  .tvV18 .v15Topbar{height:102px;grid-template-columns:280px 280px minmax(0,1fr) 325px}
  .tvV18 .v15Next b{font-size:43px}
  .tvV18 .v15Next em{font-size:27px}
  .tvV18 .v15Table .clientCell strong{font-size:26px}
  .tvV18 .v15Table .clientCell small{font-size:13px}
  .tvV18 .v15Table td{height:66px}
  .tvV18 .v15Table .hourBadge{font-size:29px;min-width:110px;height:46px}
}

/* Dashboard operador - campo localização */
.opProgram{line-height:1.2}

/* =========================
   V2.0 - Destaque animado discreto para EM ANDAMENTO
   Pisca somente o ícone ▶ e o badge de status, sem poluir a tela.
========================= */
@keyframes merchanPulseSoft{
  0%,100%{opacity:1;filter:brightness(1);}
  50%{opacity:.45;filter:brightness(1.35);}
}
@keyframes merchanGlowSoft{
  0%,100%{box-shadow:inset 5px 0 0 var(--yellow), inset 0 0 0 rgba(255,210,26,0), 0 0 0 rgba(255,210,26,0);}
  50%{box-shadow:inset 5px 0 0 var(--yellow), inset 0 0 28px rgba(255,210,26,.14), 0 0 16px rgba(255,210,26,.16);}
}
.tvV18 .v15Table tr.row-em_andamento{
  animation:merchanGlowSoft 1.4s ease-in-out infinite;
}
.tvV18 .v15Table tr.row-em_andamento .hourIcon,
.tvV18 .v15Table tr.row-em_andamento .status{
  animation:merchanPulseSoft .9s ease-in-out infinite;
}
.tvV18 .v15Table tr.row-em_andamento .hourIcon{
  color:var(--yellow)!important;
  border:0!important;
  text-shadow:0 0 12px rgba(255,210,26,.65);
}
.tvV18 .v15Table tr.row-em_andamento .status{
  background:rgba(255,210,26,.12);
  box-shadow:0 0 14px rgba(255,210,26,.18);
}

/* =========================
   V23 - Configurações e Analytics
========================= */
.successBox{background:#dcfce7;color:#166534;border:1px solid #86efac;border-radius:10px;padding:12px 14px;font-weight:800;margin:10px 0 18px}.settingsCard{max-width:900px;margin:16px auto}.settingsForm{display:flex;flex-direction:column;gap:12px}.toggleRow{display:flex;gap:14px;align-items:flex-start;background:#f3f7fc;border:1px solid #d9e4f2;border-radius:12px;padding:14px;cursor:pointer}.toggleRow input{width:22px;height:22px;margin-top:2px}.toggleRow b{display:block;color:#061225;font-size:18px}.toggleRow small{display:block;color:#526174;font-weight:700;margin-top:3px}.settingNumber{background:#f3f7fc;border:1px solid #d9e4f2;border-radius:12px;padding:14px;max-width:320px}.settingNumber label{display:block;color:#334155;font-weight:900;margin-bottom:6px}.settingNumber input{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:8px;font-size:18px}.analyticsFilter form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;width:100%}.analyticsFilter select{padding:13px;border:1px solid #cbd5e1;border-radius:8px;background:white;font-size:16px;min-width:210px}.analyticsStats{grid-template-columns:repeat(6,1fr)}.statPill.gray{border-left-color:#64748b}.analyticsTable{font-size:14px}.analyticsTable th,.analyticsTable td{white-space:nowrap}.row-studio{background:linear-gradient(90deg,#4a2d00cc,#10243dcc)!important;box-shadow:inset 5px 0 0 #ffb51f}.st-studio{color:#ffb51f!important;border-color:#ffb51f!important}.noBlink .st-em_andamento,.noBlink .row-em_andamento .hourIcon,.noBlink .row-em_andamento .status{animation:none!important}
@media(max-width:1100px){.analyticsStats{grid-template-columns:repeat(2,1fr)}}

/* v27 - Programas dinâmicos / Merchan Control */
.programGrid{grid-template-columns:420px minmax(0,1fr)}
.weekGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px;border:1px solid #d9e2ef;border-radius:10px;background:#f8fafc}
.weekGrid label{font-weight:800;color:#23344c;font-size:14px}
.programForm .toggleRow{margin:0;padding:12px;background:#f8fafc;border:1px solid #d9e2ef;border-radius:12px}
.logoPreview{display:flex;align-items:center;gap:14px;background:#f8fafc;border:1px solid #d9e2ef;border-radius:12px;padding:12px}
.logoPreview img{max-width:180px;max-height:70px;object-fit:contain;background:#071d38;border-radius:8px;padding:8px}
.errorBox,.successBox{padding:14px 18px;border-radius:12px;margin:12px 0;font-weight:800}.errorBox{background:#ffe2e2;color:#8f1010}.successBox{background:#dff8e8;color:#08702c}
.programLogoBox{height:42px;max-width:210px;align-items:center;justify-content:flex-start;margin:2px 0 4px;overflow:hidden}.programLogoBox img{max-height:42px;max-width:210px;object-fit:contain;filter:drop-shadow(0 2px 4px #0008)}
.v15Program.countdownProgram:before{background:var(--yellow)}
.v15Program.countdownProgram strong{color:var(--yellow)}

/* =========================
   MERCHAN CONTROL v28
   Logo oficial + cadastros comerciais
========================= */
.logoBrand{min-width:260px;display:flex;align-items:center;gap:12px}
.logoBrand img{display:block;width:300px;max-width:100%;height:auto;filter:drop-shadow(0 4px 10px rgba(0,0,0,.28))}
.operatorTop .logoBrand{flex:1 1 auto}
.loginLogo img{width:330px;max-width:100%;display:block;margin:0 auto 12px}
.tvLogoBrand{display:flex;align-items:center;justify-content:center;padding:0 10px;overflow:hidden}
.tvLogoBrand img{width:230px;max-width:100%;height:auto;display:block;filter:drop-shadow(0 5px 12px rgba(0,0,0,.35))}
.dashFilterForm{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.dashFilterForm>div{min-width:210px}.dashFilterForm select{min-width:230px}
.successBox{background:#dcfce7;color:#166534;border:1px solid #86efac;padding:12px 16px;border-radius:12px;margin:12px 0;font-weight:800}
.errorBox{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:12px 16px;border-radius:12px;margin:12px 0;font-weight:800}
.operatorWrap .programGrid{grid-template-columns:minmax(360px,460px) minmax(0,1fr)}
@media(max-width:1100px){.operatorWrap .programGrid{grid-template-columns:1fr}.logoBrand img{width:250px}.tvLogoBrand img{width:190px}}

/* Dashboard menu recolhido v28.1 */
.operatorMenu{position:relative;display:inline-flex;align-items:center}
.operatorMenu .menuToggle{font-weight:900;min-width:96px}
.operatorMenuPanel{position:absolute;right:0;top:calc(100% + 10px);width:235px;background:#fff;color:#061225;border:1px solid #d7e3f0;border-radius:14px;box-shadow:0 18px 40px #0008;padding:8px;z-index:50;display:none}
.operatorMenuPanel.open{display:block}
.operatorMenuPanel:before{content:'';position:absolute;right:22px;top:-8px;width:14px;height:14px;background:#fff;border-left:1px solid #d7e3f0;border-top:1px solid #d7e3f0;transform:rotate(45deg)}
.operatorMenuPanel a{display:flex;align-items:center;gap:8px;padding:12px 13px;border-radius:10px;color:#102033;text-decoration:none;font-weight:900;font-size:14px}
.operatorMenuPanel a:hover{background:#eef6ff;color:#0067d8}
.operatorMenuPanel a:nth-child(1)::before{content:'📺'}
.operatorMenuPanel a:nth-child(2)::before{content:'👥'}
.operatorMenuPanel a:nth-child(3)::before{content:'🔐'}
.operatorMenuPanel a:nth-child(4)::before{content:'🏢'}
.operatorMenuPanel a:nth-child(5)::before{content:'⚙️'}
@media(max-width:900px){.operatorActions{width:100%}.operatorMenuPanel{right:auto;left:0}.operatorMenuPanel:before{right:auto;left:22px}}

/* v29 multiemissora */
.brandTenant{display:flex;flex-direction:column;justify-content:center;color:#fff;margin-left:14px;line-height:1.05;min-width:170px}
.brandTenant b{font-size:16px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.brandTenant small{font-size:12px;color:#b9d8ff;font-weight:800;text-transform:uppercase;letter-spacing:.03em;margin-top:4px}
.tvTenantName{font-weight:900;color:#b9d8ff;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
.userEmissoraBox{padding:10px 12px;background:#eef6ff;border:1px solid #d6e9ff;border-radius:10px;margin-bottom:12px;font-weight:900;color:#0b3569}


/* =========================
   MERCHAN CONTROL v29.2
   Cabeçalho padrão + ajustes Painel TV
========================= */
.appHeader{min-height:86px;position:relative;z-index:20}.appHeader .logoBrand{min-width:360px;gap:18px;text-decoration:none}.appHeader .logoBrand img{width:250px}.appHeader .brandTenant{border-left:1px solid rgba(255,255,255,.22);padding-left:18px;margin-left:0;min-width:230px;display:flex!important;flex-direction:column!important;gap:5px}.appHeader .brandTenant b{display:block!important;font-size:17px;max-width:280px}.appHeader .brandTenant small{display:block!important;font-size:12px;line-height:1.2}.appNav{margin-left:auto}.adminDropdown{position:relative;display:inline-flex;align-items:center;z-index:2000}.adminDropdownBtn{list-style:none;cursor:pointer;user-select:none;display:inline-flex!important;align-items:center;gap:6px}.adminDropdownBtn::-webkit-details-marker{display:none}.adminDropdownPanel{position:absolute;right:0;top:calc(100% + 10px);min-width:245px;background:#fff;color:#061225;border:1px solid #d7e3f0;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.45);padding:8px;display:none;z-index:9999;text-align:left}.adminDropdown[open] .adminDropdownPanel{display:block}.adminDropdownPanel::before{content:'';position:absolute;right:22px;top:-8px;width:14px;height:14px;background:#fff;border-left:1px solid #d7e3f0;border-top:1px solid #d7e3f0;transform:rotate(45deg)}.adminDropdownPanel a{display:flex;align-items:center;gap:10px;padding:12px 13px;border-radius:10px;color:#102033;text-decoration:none;font-weight:900;font-size:14px;white-space:nowrap}.adminDropdownPanel a:hover,.adminDropdownPanel a.active{background:#eef6ff;color:#0067d8}.dateBar .operatorName{white-space:nowrap}.operatorName{display:flex;align-items:center;gap:8px}.operatorName::before{content:'🏢';font-size:15px}

.tvLogoBrand{flex-direction:column;gap:2px}.tvLogoBrand img{width:215px}.tvTenantName{display:none;font-size:13px;max-width:230px;text-align:center;color:#d9efff}.v15Program small.tvLiveLine,.v15Program small.tvCountdownLine,.v15Program small.tvOffLine{display:block;color:#dce8f6}.v15Program small.tvLiveLine::before{content:'●';color:var(--green);margin-right:7px;font-size:14px}.v15Program small.tvCountdownLine{color:var(--yellow);font-weight:900}.v15Program small.tvCountdownLine::before{content:'◷';margin-right:7px}.v15Program small.tvOffLine{display:none}.v15Program.countdownProgram strong{color:var(--yellow)!important}.v15Program.countdownProgram:before{background:var(--yellow)!important}.v15Brand{overflow:hidden}.v15Brand .tvTenantName:empty{display:none!important}

@media(max-width:1300px){.appHeader{align-items:flex-start}.appHeader .logoBrand{min-width:310px}.appHeader .logoBrand img{width:220px}.appHeader .brandTenant{min-width:180px}.appNav .btn{padding:9px 11px;font-size:13px}}
@media(max-width:980px){.appHeader .logoBrand{min-width:0;flex-wrap:wrap}.appHeader .brandTenant{border-left:0;padding-left:0}.appNav{width:100%;justify-content:flex-start}}

/* =========================
   MERCHAN CONTROL v29.3
   Cabeçalho administrativo alinhado + menu dropdown real
========================= */
.appHeader{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:22px!important;
  min-height:92px!important;
  padding:16px 18px!important;
  overflow:visible!important;
  position:relative!important;
  z-index:3000!important;
}
.appHeader .logoBrand{
  flex:0 0 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:22px!important;
  text-decoration:none!important;
}
.appHeader .logoBrand img{
  width:230px!important;
  max-width:230px!important;
  height:auto!important;
  display:block!important;
}
.appHeader .brandTenant{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
  margin:0!important;
  padding:0 0 0 18px!important;
  border-left:1px solid rgba(255,255,255,.22)!important;
  min-width:260px!important;
  max-width:360px!important;
  line-height:1.15!important;
  color:#fff!important;
}
.appHeader .brandTenant b{
  display:block!important;
  max-width:360px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:16px!important;
  font-weight:1000!important;
  color:#fff!important;
}
.appHeader .brandTenant small{
  display:block!important;
  color:#c9e3ff!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1.25!important;
  text-transform:none!important;
  letter-spacing:0!important;
  max-width:360px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.appNav{
  flex:1 1 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  margin-left:auto!important;
  position:relative!important;
}
.appNav .btn{
  white-space:nowrap!important;
  margin:0!important;
}
.appLogout{
  margin-left:2px!important;
}
.adminMenuWrapper{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  z-index:5000!important;
}
.adminMenuButton{
  cursor:pointer!important;
  user-select:none!important;
  min-width:92px!important;
  justify-content:center!important;
}
.adminMenuPanel{
  position:absolute!important;
  right:0!important;
  top:calc(100% + 12px)!important;
  min-width:245px!important;
  background:#ffffff!important;
  color:#061225!important;
  border:1px solid #d7e3f0!important;
  border-radius:16px!important;
  box-shadow:0 22px 50px rgba(0,0,0,.48)!important;
  padding:9px!important;
  display:none!important;
  z-index:99999!important;
  text-align:left!important;
}
.adminMenuWrapper.open .adminMenuPanel{
  display:block!important;
}
.adminMenuPanel::before{
  content:''!important;
  position:absolute!important;
  right:24px!important;
  top:-8px!important;
  width:14px!important;
  height:14px!important;
  background:#fff!important;
  border-left:1px solid #d7e3f0!important;
  border-top:1px solid #d7e3f0!important;
  transform:rotate(45deg)!important;
}
.adminMenuPanel a{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px 14px!important;
  border-radius:11px!important;
  color:#102033!important;
  text-decoration:none!important;
  font-weight:900!important;
  font-size:14px!important;
  white-space:nowrap!important;
}
.adminMenuPanel a:hover,
.adminMenuPanel a.active{
  background:#eef6ff!important;
  color:#0067d8!important;
}
.adminMenuPanel a span{
  width:20px!important;
  text-align:center!important;
  display:inline-block!important;
}
/* Neutraliza menu antigo caso algum arquivo ainda chame a classe antiga */
.adminDropdownPanel,
.operatorMenuPanel{
  display:none;
}
@media(max-width:1280px){
  .appHeader{align-items:flex-start!important;}
  .appHeader .logoBrand{gap:14px!important;}
  .appHeader .logoBrand img{width:205px!important;max-width:205px!important;}
  .appHeader .brandTenant{min-width:210px!important;max-width:260px!important;padding-left:14px!important;}
  .appNav{gap:8px!important;}
  .appNav .btn{padding:9px 10px!important;font-size:13px!important;}
}
@media(max-width:980px){
  .appHeader{flex-direction:column!important;align-items:stretch!important;}
  .appHeader .logoBrand{width:100%!important;}
  .appHeader .brandTenant{min-width:0!important;max-width:none!important;}
  .appNav{justify-content:flex-start!important;width:100%!important;}
  .adminMenuPanel{right:auto!important;left:0!important;}
  .adminMenuPanel::before{right:auto!important;left:24px!important;}
}

/* =========================
   MERCHAN CONTROL v29.4
   Logo maior, favicon e cabeçalhos refinados
========================= */
/* Cabeçalho administrativo */
.appHeader{
  min-height:96px!important;
  padding:14px 18px!important;
  gap:22px!important;
}
.appHeader .logoBrand{
  gap:20px!important;
}
.appHeader .logoBrand img{
  width:270px!important;
  max-width:270px!important;
  image-rendering:auto!important;
}
.appHeader .brandTenant{
  min-width:220px!important;
  max-width:320px!important;
  padding-left:18px!important;
  gap:6px!important;
}
.appHeader .brandTenant b{
  font-size:18px!important;
  line-height:1.1!important;
}
.appHeader .brandTenant small{
  font-size:13px!important;
  line-height:1.1!important;
  color:#d8ecff!important;
}
.dateBar .operatorName{
  font-size:17px!important;
  font-weight:1000!important;
  color:#061225!important;
  gap:8px!important;
}
.dateBar .operatorName::before{
  content:'👤'!important;
}

/* Painel TV: logo mais legível e sem elementos extras */
.tvV18 .v15Topbar,
.v15Topbar{
  grid-template-columns:340px minmax(360px, .95fr) minmax(520px, 1.65fr) 330px!important;
  height:124px!important;
}
.tvLogoBrand{
  justify-content:flex-start!important;
  align-items:center!important;
  padding:0 22px!important;
}
.tvLogoBrand img{
  width:292px!important;
  max-width:292px!important;
  height:auto!important;
  image-rendering:auto!important;
}
.tvTenantName{display:none!important;}
.v15Program{
  padding:18px 24px 14px 38px!important;
  min-width:0!important;
}
.v15Program:before{
  left:22px!important;
  top:38px!important;
  bottom:32px!important;
}
.v15Program span{
  font-size:15px!important;
  margin-bottom:5px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.v15Program strong{
  font-size:35px!important;
  line-height:.98!important;
  letter-spacing:.2px!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  max-height:70px!important;
  word-break:normal!important;
}
.v15Program small{
  font-size:15px!important;
  margin-top:6px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v15Program small.tvLiveLine::before{
  content:'●'!important;
  color:var(--green)!important;
  margin-right:8px!important;
}
.v15Program small.tvCountdownLine::before{
  content:'◷'!important;
  margin-right:8px!important;
}
.v15Brand{border-right:1px solid rgba(255,255,255,.18)!important;}
.v15Next{
  padding:14px 30px!important;
}
.v15Next span{
  font-size:16px!important;
  margin-bottom:4px!important;
}
.v15Next strong{
  gap:18px!important;
  min-height:58px!important;
  align-items:center!important;
}
.v15Next b{
  font-size:66px!important;
  line-height:.92!important;
}
.v15Next em{
  font-size:35px!important;
  line-height:1.02!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  max-height:74px!important;
}
.v15Next small{
  font-size:16px!important;
  margin-top:2px!important;
}
.v15Clock strong{font-size:64px!important;}
.v15Clock div{font-size:22px!important;}

@media(max-width:1400px){
  .appHeader .logoBrand img{width:230px!important;max-width:230px!important;}
  .appHeader .brandTenant{min-width:190px!important;max-width:260px!important;}
  .appHeader .brandTenant b{font-size:16px!important;}
  .appNav .btn{padding:9px 11px!important;font-size:13px!important;}
  .v15Topbar{grid-template-columns:300px minmax(315px,.9fr) minmax(420px,1.55fr) 300px!important;height:112px!important;}
  .tvLogoBrand img{width:250px!important;max-width:250px!important;}
  .v15Program strong{font-size:30px!important;max-height:60px!important;}
  .v15Next b{font-size:54px!important;}
  .v15Next em{font-size:29px!important;}
  .v15Clock strong{font-size:56px!important;}
  .v15Clock div{font-size:18px!important;}
}
@media(max-width:980px){
  .appHeader .logoBrand img{width:210px!important;max-width:210px!important;}
  .appHeader .brandTenant{border-left:0!important;padding-left:0!important;}
}

/* =========================
   v29.5 - Ajuste final Painel TV
   Relógio sem corte + programa no ar com mais espaço
========================= */
body.tvV18 .v15Topbar{
  height:122px!important;
  grid-template-columns:340px minmax(360px, 0.95fr) minmax(560px, 1.65fr) 430px!important;
}
body.tvV18 .v15Clock{
  min-width:420px!important;
  width:420px!important;
  padding:12px 28px!important;
  overflow:hidden!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
body.tvV18 .v15Clock div#dataAtual{
  font-size:22px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.8px!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:100%!important;
}
body.tvV18 .v15Clock strong#horaAtual{
  display:block!important;
  font-size:72px!important;
  line-height:.88!important;
  margin-top:6px!important;
  letter-spacing:1px!important;
  white-space:nowrap!important;
  max-width:100%!important;
}
body.tvV18 .v15Program{
  min-width:360px!important;
  padding-left:42px!important;
  padding-right:28px!important;
}
body.tvV18 .v15Program strong#programaAtual{
  font-size:34px!important;
  line-height:1!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  max-height:72px!important;
}
body.tvV18 .v15Program small#programaHorario{
  font-size:15px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media(max-width:1400px){
  body.tvV18 .v15Topbar{
    height:112px!important;
    grid-template-columns:300px minmax(320px, .95fr) minmax(420px, 1.55fr) 360px!important;
  }
  body.tvV18 .v15Clock{
    min-width:360px!important;
    width:360px!important;
    padding:10px 20px!important;
  }
  body.tvV18 .v15Clock div#dataAtual{
    font-size:18px!important;
    letter-spacing:.5px!important;
  }
  body.tvV18 .v15Clock strong#horaAtual{
    font-size:62px!important;
    line-height:.9!important;
  }
  body.tvV18 .v15Program strong#programaAtual{
    font-size:30px!important;
    max-height:64px!important;
  }
}
@media(max-width:1180px){
  body.tvV18 .v15Topbar{
    grid-template-columns:270px minmax(280px, .95fr) minmax(360px, 1.45fr) 320px!important;
  }
  body.tvV18 .v15Clock{min-width:320px!important;width:320px!important;}
  body.tvV18 .v15Clock strong#horaAtual{font-size:54px!important;}
  body.tvV18 .v15Clock div#dataAtual{font-size:16px!important;}
}

/* =========================
   HOME OPERACIONAL v84
========================= */
.homeBody{background:radial-gradient(circle at 20% 0%,#123b68 0,#081726 42%,#04111e 100%);min-height:100vh;color:#eaf6ff}.homeWrap{width:min(1480px,calc(100% - 32px));margin:0 auto;padding:18px 0 34px}.homeHero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0 18px;padding:24px;border:1px solid rgba(92,190,255,.22);border-radius:26px;background:linear-gradient(135deg,rgba(8,30,52,.92),rgba(9,45,78,.72));box-shadow:0 24px 80px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08)}.homeEyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:1000;color:#67d6ff;margin-bottom:8px}.homeHero h1{margin:0;font-size:clamp(34px,4vw,58px);line-height:.95;font-weight:1000;letter-spacing:-.04em;color:#fff;text-shadow:0 0 28px rgba(58,192,255,.35)}.homeHero p{margin:10px 0 0;color:#b9d1e9;font-size:16px;font-weight:700}.homeDate{display:flex;align-items:end;gap:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px}.homeDate label{display:block;font-size:11px;text-transform:uppercase;font-weight:1000;color:#8dcdf5;margin-bottom:6px}.homeDate input{height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#061827;color:#fff;padding:0 12px;font-weight:900}.homeKpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.homeKpi{min-height:116px;border-radius:22px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.045));padding:18px;box-shadow:0 16px 38px rgba(0,0,0,.2)}.homeKpi span{display:block;font-size:11px;text-transform:uppercase;font-weight:1000;color:#9ac7e8;letter-spacing:.08em}.homeKpi b{display:block;font-size:clamp(26px,2.6vw,42px);line-height:1;margin:9px 0;color:#fff}.homeKpi small{display:block;color:#abc2d8;font-weight:800}.homeKpi.green{border-left:5px solid #2ee66b}.homeKpi.orange{border-left:5px solid #ffb020}.homeKpi.blue{border-left:5px solid #39c6ff}.homeKpi.purple{border-left:5px solid #a78bfa}.homeMainGrid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.homePanel{border-radius:24px;border:1px solid rgba(120,205,255,.16);background:linear-gradient(180deg,rgba(7,28,48,.88),rgba(5,19,34,.9));box-shadow:0 20px 60px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.06);padding:18px;min-width:0}.homePanelTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.homePanelTitle span,.homePanel h3{margin:0;color:#fff;font-weight:1000;text-transform:uppercase;letter-spacing:.08em;font-size:13px}.homePanelTitle a{color:#64d6ff;text-decoration:none;font-weight:1000;font-size:13px}.homeProgramNow{border-radius:22px;background:radial-gradient(circle at 50% 0%,rgba(33,164,255,.26),rgba(255,255,255,.045));border:1px solid rgba(84,194,255,.18);padding:26px;min-height:198px;display:flex;flex-direction:column;justify-content:center}.homeProgramLabel{text-transform:uppercase;letter-spacing:.12em;color:#7fdcff;font-size:12px;font-weight:1000}.homeProgramNow h2{margin:8px 0 10px;color:#fff;font-size:clamp(32px,5vw,72px);line-height:.95;letter-spacing:-.04em}.homeProgramTimes{color:#bce4ff;font-size:22px;font-weight:1000}.homeLiveCards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.homeLiveCards div{border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);padding:16px}.homeLiveCards span{display:block;text-transform:uppercase;letter-spacing:.08em;color:#9cc8e3;font-size:11px;font-weight:1000}.homeLiveCards b{display:block;color:#fff;font-size:26px;margin:6px 0}.homeLiveCards small{display:block;color:#c3d7e8;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.homeBars{display:flex;flex-direction:column;gap:16px;padding:10px 0 4px}.homeBarLine div{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;color:#fff}.homeBarLine b{font-size:13px;text-transform:uppercase;letter-spacing:.05em}.homeBarLine span{font-weight:1000;color:#bfeaff}.homeBarLine em{display:block;height:18px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.homeBarLine i{display:block;height:100%;border-radius:999px;background:#4db8ff}.homeBarLine i.green{background:#2ee66b}.homeBarLine i.orange{background:#ffb020}.homeBarLine i.blue{background:#39c6ff}.homeBarLine i.red{background:#ff4a4a}.homeActionsGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.homeActionList{display:grid;gap:10px;margin-top:14px}.homeActionList a{display:block;text-decoration:none;color:#eaf7ff;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);padding:14px;transition:.15s}.homeActionList a:hover{transform:translateY(-1px);background:rgba(54,184,255,.14);border-color:rgba(84,204,255,.35)}.homeActionList b{display:block;font-size:15px}.homeActionList span{display:block;color:#9fb9ce;font-size:12px;font-weight:800;margin-top:3px}.homeScheduleMini,.homeMerchanMini{display:grid;gap:8px;margin-top:14px;max-height:330px;overflow:auto;padding-right:4px}.homeScheduleMini div,.homeMerchanMini div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-radius:14px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.1);padding:10px}.homeScheduleMini strong,.homeMerchanMini strong{color:#78d9ff;font-weight:1000}.homeScheduleMini span,.homeMerchanMini span{color:#fff;font-weight:900;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.homeMerchanMini em{font-style:normal;font-size:10px;text-transform:uppercase;font-weight:1000;border-radius:999px;padding:5px 8px;background:rgba(255,255,255,.12);color:#dcefff;white-space:nowrap}.homeMerchanMini .concluido{border-left:4px solid #2ee66b}.homeMerchanMini .concluido_falha{border-left:4px solid #f59e0b;background:rgba(245,158,11,.10)}.homeMerchanMini .em_andamento{border-left:4px solid #ffb020}.homeMerchanMini .atrasado{border-left:4px solid #ff4a4a}.homeMerchanMini .cancelado{opacity:.72}.homeEmpty{color:#9fb9ce;font-weight:800;padding:14px;border:1px dashed rgba(255,255,255,.18);border-radius:14px}.adminDropdownPanel a[href="home.php"]{font-weight:1000}
@media(max-width:1180px){.homeKpis{grid-template-columns:repeat(2,1fr)}.homeMainGrid,.homeActionsGrid{grid-template-columns:1fr}.homeHero{flex-direction:column;align-items:stretch}.homeDate{justify-content:flex-start}.homeLiveCards{grid-template-columns:1fr}}
@media(max-width:640px){.homeWrap{width:calc(100% - 20px)}.homeKpis{grid-template-columns:1fr}.homeHero h1{font-size:38px}.homeDate{flex-direction:column;align-items:stretch}.homeDate .btn{width:100%}.homeScheduleMini div,.homeMerchanMini div{grid-template-columns:1fr}.homeMerchanMini em{width:max-content}}

/* =========================
   HOME OPERACIONAL v85 - dashboard executivo
========================= */
.homeHeroText{min-width:0}.homeHealth{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.homeHealth span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:999px;padding:8px 12px;font-weight:1000;font-size:12px;color:#bfeaff;text-transform:uppercase;letter-spacing:.04em}.homeHealth .green{color:#35e46b;border-color:rgba(53,228,107,.35);background:rgba(53,228,107,.10)}.homeHealth .orange{color:#ffc43b;border-color:rgba(255,196,59,.35);background:rgba(255,196,59,.10)}.homeHealth .red{color:#ff6868;border-color:rgba(255,104,104,.38);background:rgba(255,104,104,.10)}.homeHealth .blue{color:#67d6ff;border-color:rgba(103,214,255,.32);background:rgba(103,214,255,.10)}
.homeKpiGauge{display:flex;align-items:center;gap:14px}.homeKpiGauge b{margin:0}.homeGauge{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:conic-gradient(#38d6ff calc(var(--pct)*1%),rgba(255,255,255,.09) 0);box-shadow:0 0 24px rgba(56,214,255,.20);position:relative}.homeGauge:before{content:'';position:absolute;inset:9px;border-radius:50%;background:#081827;box-shadow:inset 0 0 18px rgba(0,0,0,.4)}.homeGauge strong{position:relative;z-index:1;color:#fff;font-size:18px;font-weight:1000;line-height:1}.homeKpiGauge div:last-child{min-width:0}.homeKpiGauge small{margin-top:8px}
.homeMainGrid{grid-template-columns:minmax(460px,1.25fr) minmax(330px,.82fr) minmax(330px,.82fr);align-items:stretch}.homeChartPanel,.homeTrendPanel{min-height:100%}.homeStatusPill{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em;color:#dff6ff;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13)}.homeStatusPill.green{color:#35e46b;background:rgba(53,228,107,.11);border-color:rgba(53,228,107,.35)}.homeStatusPill.orange{color:#ffc43b;background:rgba(255,196,59,.11);border-color:rgba(255,196,59,.35)}.homeStatusPill.red{color:#ff6868;background:rgba(255,104,104,.12);border-color:rgba(255,104,104,.38)}.homeStatusPill.blue{color:#67d6ff;background:rgba(103,214,255,.10);border-color:rgba(103,214,255,.32)}
.homeNextMerchanCard{background:linear-gradient(135deg,rgba(0,132,255,.16),rgba(255,255,255,.06))!important;border-color:rgba(81,199,255,.24)!important}.homeNextMerchanCard b{font-size:34px!important;color:#ffd22a!important;text-shadow:0 0 14px rgba(255,210,42,.25)}.homeNextMerchanCard strong{display:block;color:#fff;font-weight:1000;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.homeOpenOperation{display:flex;align-items:center;justify-content:center;text-decoration:none;text-transform:uppercase;letter-spacing:.05em;font-weight:1000;color:#061827;background:linear-gradient(180deg,#39d5ff,#1687e6);border-radius:16px;margin-top:14px;min-height:52px;box-shadow:0 12px 30px rgba(36,169,255,.25),inset 0 1px 0 rgba(255,255,255,.45)}.homeOpenOperation:hover{filter:brightness(1.08);transform:translateY(-1px)}
.homeTrendPanel .homePanelTitle small{color:#9ac7e8;font-weight:900}.homeTrendBars{height:260px;display:flex;align-items:end;gap:10px;padding:16px 4px 4px}.homeTrendItem{flex:1;min-width:0;display:grid;grid-template-rows:auto 1fr auto;gap:8px;text-align:center;height:100%}.homeTrendItem span{font-size:11px;font-weight:1000;color:#9fdcff;white-space:nowrap}.homeTrendItem em{display:flex;align-items:end;justify-content:center;height:100%;border-radius:14px;background:rgba(255,255,255,.06);overflow:hidden;border:1px solid rgba(255,255,255,.08)}.homeTrendItem i{display:block;width:100%;min-height:4px;border-radius:14px 14px 0 0;background:linear-gradient(180deg,#2ee66b,#23aef4);box-shadow:0 0 18px rgba(46,230,107,.2)}.homeTrendItem b{font-size:12px;color:#fff;font-weight:1000}.homeScheduleMini strong{white-space:nowrap}.homeMerchanMini .aguardando{border-left:4px solid #39c6ff}.homeMerchanMini .concluido_cliente_atrasou,.homeMerchanMini .atraso_programacao{border-left:4px solid #ff4a4a;background:rgba(255,74,74,.10)}
@media(max-width:1320px){.homeMainGrid{grid-template-columns:1fr 1fr}.homeLivePanel{grid-column:1 / -1}.homeTrendBars{height:200px}.homeKpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.homeMainGrid{grid-template-columns:1fr}.homeKpis{grid-template-columns:repeat(2,1fr)}.homeTrendBars{height:180px}.homeKpiGauge{align-items:flex-start}.homeGauge{width:68px;height:68px}.homeGauge strong{font-size:16px}}
@media(max-width:640px){.homeKpis{grid-template-columns:1fr}.homeHealth{gap:6px}.homeHealth span{font-size:10px;padding:7px 10px}.homeNextMerchanCard b{font-size:28px!important}.homeTrendBars{gap:6px}.homeTrendItem span{font-size:10px}.homeTrendItem b{font-size:10px}}


/* =========================
   HOME EXECUTIVA v86 - pizza, timeline e botões premium
========================= */
.homePieWrap{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:center;min-height:250px}.homePie{width:168px;height:168px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 32px rgba(57,198,255,.16),inset 0 0 0 1px rgba(255,255,255,.12);position:relative}.homePie:before{content:'';position:absolute;inset:18px;border-radius:50%;background:#081827;box-shadow:inset 0 0 22px rgba(0,0,0,.55)}.homePie div{position:relative;z-index:1;text-align:center}.homePie strong{display:block;font-size:34px;line-height:1;color:#fff;font-weight:1000}.homePie span{display:block;margin-top:4px;color:#9fdcff;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:1000}.homePieLegend{display:grid;gap:10px}.homePieLegend div{display:grid;grid-template-columns:14px 1fr auto;gap:9px;align-items:center;color:#fff;border-radius:12px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);padding:9px 10px}.homePieLegend i{width:12px;height:12px;border-radius:50%;display:block}.homePieLegend i.green{background:#2ee66b}.homePieLegend i.orange{background:#ffb020}.homePieLegend i.blue{background:#39c6ff}.homePieLegend i.red{background:#ff4a4a}.homePieLegend b{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.homePieLegend span{font-weight:1000;color:#bfeaff}
.homeTimeline{display:grid;gap:9px;max-height:270px;overflow:auto;padding-right:4px}.homeTimelineItem{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-left:4px solid #39c6ff;padding:10px 12px}.homeTimelineItem strong{color:#78d9ff;font-weight:1000}.homeTimelineItem span{color:#fff;font-weight:900;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.homeTimelineItem em{font-style:normal;font-size:10px;text-transform:uppercase;font-weight:1000;border-radius:999px;padding:5px 8px;background:rgba(255,255,255,.12);white-space:nowrap;color:#eaf7ff}.homeTimelineItem.concluido{border-left-color:#2ee66b;background:rgba(46,230,107,.08)}.homeTimelineItem.concluido_falha{border-left-color:#f59e0b;background:rgba(245,158,11,.10)}.homeTimelineItem.em_andamento{border-left-color:#ffb020;background:rgba(255,176,32,.10)}.homeTimelineItem.atrasado,.homeTimelineItem.concluido_cliente_atrasou,.homeTimelineItem.atraso_programacao{border-left-color:#ff4a4a;background:rgba(255,74,74,.10)}.homeTimelineItem.cancelado{opacity:.68;border-left-color:#8490a3}
.homeExtraGrid{display:grid;grid-template-columns:.85fr 1.1fr .9fr;gap:16px;margin-bottom:16px}.homeMetaBig{display:flex;align-items:flex-end;gap:12px;margin:12px 0 16px}.homeMetaBig strong{font-size:64px;line-height:.9;color:#fff;font-weight:1000;letter-spacing:-.05em;text-shadow:0 0 24px rgba(46,230,107,.18)}.homeMetaBig span{color:#b9d1e9;font-weight:900;margin-bottom:7px}.homeProgress{height:18px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;border:1px solid rgba(255,255,255,.08)}.homeProgress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2ee66b,#39c6ff);box-shadow:0 0 18px rgba(46,230,107,.22)}.homeProgress.blue i{background:linear-gradient(90deg,#39c6ff,#a78bfa)}.homeBlocksResume{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 16px}.homeBlocksResume div{border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);padding:14px;text-align:center}.homeBlocksResume b{display:block;color:#fff;font-size:34px;line-height:1;font-weight:1000}.homeBlocksResume span{display:block;margin-top:6px;color:#9fc0dc;font-size:11px;text-transform:uppercase;font-weight:1000;letter-spacing:.05em}.homeBlockTime{display:block;margin-top:13px;color:#bfeaff;font-weight:900}.homeActionList a.homeActionButton{position:relative;overflow:hidden;border:1px solid rgba(69,200,255,.22);background:linear-gradient(135deg,rgba(22,95,160,.24),rgba(255,255,255,.055));box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.homeActionList a.homeActionButton:after{content:'';position:absolute;inset:auto -20% -50% -20%;height:70%;background:radial-gradient(circle,rgba(57,198,255,.18),transparent 65%);opacity:0;transition:.18s}.homeActionList a.homeActionButton:hover:after{opacity:1}.homeActionList a.homeActionButton:hover{transform:translateY(-2px);border-color:rgba(86,215,255,.55);box-shadow:0 12px 28px rgba(23,128,220,.16),inset 0 1px 0 rgba(255,255,255,.1)}.homeActionList a.homeActionButton b{font-size:16px}.homeScheduleMini div{border-left:4px solid #39c6ff}.homeScheduleMini div:first-of-type{border-left-color:#2ee66b}
@media(max-width:1320px){.homeExtraGrid{grid-template-columns:1fr 1fr}.homeBlocksPanel{grid-column:1 / -1}.homePieWrap{grid-template-columns:150px 1fr}.homePie{width:150px;height:150px}}
@media(max-width:980px){.homeExtraGrid{grid-template-columns:1fr}.homePieWrap{grid-template-columns:1fr}.homePie{margin:0 auto}.homeTimelineItem{grid-template-columns:50px 1fr}.homeTimelineItem em{grid-column:2}.homeBlocksResume{grid-template-columns:1fr}.homeMetaBig strong{font-size:48px}}


/* =========================
   MERCHAN CONTROL v90
   Login executivo + permissões/home
========================= */
.loginModern{
  min-height:100vh;
  background:
    radial-gradient(circle at 50% 18%, rgba(45,166,255,.22), transparent 34%),
    linear-gradient(180deg,#061b38 0%,#03101f 100%);
}
.loginModernPage{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.loginModernBox{
  width:min(460px,94vw);
  margin:0;
  padding:34px 34px 28px;
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff,#f4f8fc);
  color:#071b35;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 28px 70px rgba(0,0,0,.42),0 0 0 1px rgba(37,167,255,.18);
}
.loginModernBox .loginLogo img{width:270px;margin-bottom:18px}
.loginModernBox .loginTitle{font-size:22px;font-weight:1000;color:#071b35;margin:0 0 2px;text-align:center}
.loginModernBox .loginSubtitle{font-size:13px;color:#5a6c82;font-weight:800;text-align:center;margin:0 0 20px}
.loginModernBox label{display:block;margin:12px 0 6px;color:#19324f;font-size:13px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em}
.loginModernBox input{height:46px;border-radius:12px;border:1px solid #c9d6e6;background:#fff;font-size:17px;font-weight:800;color:#071b35;outline:none;transition:.15s}
.loginModernBox input:focus{border-color:#25a7ff;box-shadow:0 0 0 4px rgba(37,167,255,.16)}
.loginModernBox .loginBtn{width:100%;height:48px;margin-top:18px;border:0;border-radius:12px;background:linear-gradient(90deg,#0b74da,#25a7ff);color:#fff;font-size:16px;font-weight:1000;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;box-shadow:0 12px 28px rgba(37,167,255,.28)}
.loginModernBox .loginBtn:hover{filter:brightness(1.08)}
.loginModernBox .loginFooter{text-align:center;margin-top:18px;color:#62758c;font-size:12px;font-weight:900}
.loginModernBox .error{border-radius:12px;border:1px solid #fecaca;background:#fee2e2;color:#991b1b;font-weight:900}
.adminDropdownPanel .adminMenuGroup{color:#64748b;font-weight:1000;text-transform:uppercase;letter-spacing:.05em;font-size:12px;padding:10px 12px 6px}
.adminDropdownPanel a.active{background:#eaf3ff;color:#0a65c7}
.homeActionsGrid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important}


/* =========================
   v113 - Painel TV: data compacta + logo centralizada
========================= */
body.tvV18 .tvLogoBrand,
.tvLogoBrand{
  justify-content:center!important;
  align-items:center!important;
  padding:0 18px!important;
}
body.tvV18 .tvLogoBrand img,
.tvLogoBrand img{
  width:315px!important;
  max-width:315px!important;
  height:auto!important;
}
body.tvV18 .v15Clock div#dataAtual,
.v15Clock div#dataAtual{
  text-transform:uppercase!important;
  letter-spacing:.7px!important;
  font-weight:1000!important;
  white-space:nowrap!important;
}
@media(max-width:1400px){
  body.tvV18 .tvLogoBrand img,
  .tvLogoBrand img{
    width:270px!important;
    max-width:270px!important;
  }
}
@media(max-width:1180px){
  body.tvV18 .tvLogoBrand img,
  .tvLogoBrand img{
    width:235px!important;
    max-width:235px!important;
  }
}


/* v120 - ajuste menu mobile e evita corte lateral */
@media (max-width: 760px){
  .operatorTop.appHeader{overflow:visible!important;}
  .operatorActions.appNav{position:relative!important;overflow:visible!important;align-items:flex-start!important;}
  .adminDropdown.adminMenuGrouped{position:relative!important;}
  .adminDropdown.adminMenuGrouped[open] .adminDropdownPanel,
  .adminDropdownPanel{
    position:fixed!important;
    top:108px!important;
    right:14px!important;
    left:auto!important;
    width:min(340px, calc(100vw - 28px))!important;
    max-width:calc(100vw - 28px)!important;
    max-height:calc(100vh - 132px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border-radius:18px!important;
    z-index:99999!important;
    padding:12px!important;
    box-sizing:border-box!important;
  }
  .adminDropdownPanel::before{
    right:42px!important;
    left:auto!important;
  }
  .adminDropdownPanel a{
    white-space:normal!important;
    min-height:42px!important;
    line-height:1.15!important;
    font-size:15px!important;
  }
  .adminDropdownPanel .adminMenuGroup{font-size:12px!important;padding-top:12px!important;}
}
@media (max-width: 430px){
  .adminDropdown.adminMenuGrouped[open] .adminDropdownPanel,
  .adminDropdownPanel{
    top:118px!important;
    right:10px!important;
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
  }
  .operatorTop.appHeader .operatorBrand.logoBrand img{max-width:210px!important;height:auto!important;}
  .operatorTop.appHeader .operatorActions{gap:10px!important;}
}

/* v123 - Correção manual de horários do Merchan */
.btn.purple{background:#7c3aed;color:#fff;box-shadow:0 8px 18px rgba(124,58,237,.22)}
.btn.purple:hover{filter:brightness(1.08)}
.timeCorrectionBox{max-width:560px;width:min(94vw,560px)}
.correctionGrid{grid-template-columns:1fr 1fr;margin:10px 0 12px}
.modalHint{margin-top:10px;font-size:12px;line-height:1.35;color:#64748b;background:#f1f5f9;border:1px solid #dbe4ef;border-radius:10px;padding:10px}
.correctionActions{min-width:130px}.correctionActions .btn{white-space:nowrap}
@media(max-width:760px){.correctionGrid{grid-template-columns:1fr}.timeCorrectionBox{width:calc(100vw - 24px)}}

/* v134 - status cards em uma linha e filtros sem estouro */
.quickStats{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:12px!important;
}
.analyticsStats{
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.statPill{
  min-width:0!important;
  padding:10px 10px!important;
}
.statPill b{
  font-size:22px!important;
  line-height:1!important;
}
.statPill span{
  display:block!important;
  line-height:1.15!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  hyphens:none!important;
}
.groupSelector{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
}
.groupSelector label{
  min-width:0!important;
  min-height:46px!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1.15!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  hyphens:none!important;
}
.groupSelector input{
  flex:0 0 auto!important;
}
@media(max-width:1200px){
  .quickStats{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .analyticsStats{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  .groupSelector{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:700px){
  .quickStats,.analyticsStats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .groupSelector{grid-template-columns:1fr!important;}
}

/* v135 - status concluído com falha destacado nos monitores */
.tvV14 .st-concluido_falha,.v15Table .st-concluido_falha{color:#f59e0b!important;border-color:#f59e0b!important;background:rgba(245,158,11,.18)!important;}
.tvV14 tr.row-concluido_falha .clientCell strong,.v15Table tr.row-concluido_falha .clientCell strong{color:#ffd166!important;}

/* v142 - Dashboard operacional: ações em barra abaixo da linha */
.opFlowTable{width:100%;border-collapse:separate!important;border-spacing:0!important;table-layout:auto!important;}
.opFlowTable th{white-space:nowrap!important;vertical-align:middle!important;}
.opFlowTable th:nth-child(1){width:110px;}
.opFlowTable th:nth-child(2){width:auto;}
.opFlowTable th:nth-child(3){width:190px;}
.opFlowTable th:nth-child(4){width:135px;}
.opFlowTable th:nth-child(5){width:170px;}
.opFlowTable .opMainRow td{vertical-align:middle!important;padding-top:20px!important;padding-bottom:12px!important;}
.opFlowTable .opActionRow td{padding:0 10px 18px 10px!important;border-bottom:1px solid rgba(148,163,184,.28)!important;}
.opFlowTable .opActionRow + .opMainRow td{padding-top:22px!important;}
.opRep,.opDuration{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:#0f172a;line-height:1.25;white-space:normal;}
.opDuration{color:#334155;}
.opActionBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f7faff;border:1px solid #dce8f5;border-radius:12px;padding:8px;}
.opActionBar .btn{min-height:34px;padding:8px 12px!important;border-radius:8px!important;font-size:13px!important;line-height:1!important;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;}
.opActionBar .compactAction{width:42px;min-width:42px;padding:8px!important;font-size:16px!important;}
@media(max-width:1100px){
  .opFlowTable th:nth-child(3),.opFlowTable th:nth-child(4){width:150px;}
  .opActionBar .btn{font-size:12px!important;padding:8px 10px!important;}
}
@media(max-width:780px){
  .opFlowTable,.opFlowTable thead,.opFlowTable tbody,.opFlowTable tr,.opFlowTable td,.opFlowTable th{display:block;width:100%!important;}
  .opFlowTable thead{display:none!important;}
  .opFlowTable .opMainRow{display:grid!important;grid-template-columns:90px 1fr;gap:8px 12px;background:#fff;border-top:1px solid #e5eef8;padding:12px 0 4px;}
  .opFlowTable .opMainRow td{padding:4px 10px!important;border-bottom:0!important;}
  .opFlowTable .opMainRow td:nth-child(1){grid-row:1 / span 3;}
  .opFlowTable .opMainRow td:nth-child(2){grid-column:2;}
  .opFlowTable .opMainRow td:nth-child(3),.opFlowTable .opMainRow td:nth-child(4),.opFlowTable .opMainRow td:nth-child(5){grid-column:2;}
  .opFlowTable .opActionRow td{padding:6px 10px 18px!important;}
  .opActionBar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .opActionBar .btn{width:100%;}
  .opActionBar .compactAction{width:100%;min-width:0;}
}


/* v143 - Dashboard: modal centralizado e separação visual entre merchans */
.modalOverlay{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:none;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:rgba(3,12,24,.72)!important;
  backdrop-filter:blur(6px)!important;
}
.modalBox{
  width:min(94vw,560px)!important;
  max-height:calc(100vh - 48px)!important;
  overflow:auto!important;
  background:#fff!important;
  color:#0f172a!important;
  border-radius:18px!important;
  border:1px solid rgba(226,232,240,.95)!important;
  box-shadow:0 30px 90px rgba(0,0,0,.48)!important;
  padding:22px!important;
}
.modalBox h3{
  margin:0 0 12px!important;
  font-size:22px!important;
  line-height:1.15!important;
  color:#0f172a!important;
}
.modalBox label{
  display:block!important;
  margin:10px 0 6px!important;
  color:#334155!important;
  font-weight:900!important;
}
.modalBox input,.modalBox textarea,.modalBox select{
  width:100%!important;
  border:1px solid #cbd5e1!important;
  background:#fff!important;
  color:#0f172a!important;
  border-radius:10px!important;
  padding:11px 12px!important;
  font-weight:800!important;
}
.modalBox textarea{min-height:112px!important;resize:vertical!important;}
.modalInfo{
  margin:0 0 14px!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  background:#f1f5f9!important;
  border:1px solid #dbe4ef!important;
  color:#475569!important;
  font-weight:900!important;
}
.modalActions{
  display:flex!important;
  justify-content:flex-end!important;
  gap:10px!important;
  margin-top:14px!important;
  flex-wrap:wrap!important;
}
.correctionGrid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:12px!important;
}
.timeCorrectionBox{width:min(94vw,560px)!important;}
.opFlowTable{border-collapse:separate!important;border-spacing:0 12px!important;}
.opFlowTable .opMainRow td{
  background:#fff!important;
  border-top:1px solid #d7e3ef!important;
  border-bottom:0!important;
  padding-top:18px!important;
  padding-bottom:14px!important;
}
.opFlowTable .opMainRow td:first-child{
  border-left:4px solid #1da1ff!important;
  border-radius:14px 0 0 0!important;
}
.opFlowTable .opMainRow td:last-child{border-radius:0 14px 0 0!important;}
.opFlowTable .opActionRow td{
  background:#f7faff!important;
  border:1px solid #d7e3ef!important;
  border-top:0!important;
  border-radius:0 0 14px 14px!important;
  padding:8px 12px 12px!important;
  box-shadow:0 8px 20px rgba(15,23,42,.05)!important;
}
.opFlowTable .opActionRow + .opMainRow td{padding-top:18px!important;}
.opActionBar{
  background:transparent!important;
  border:0!important;
  padding:0!important;
}
@media(max-width:760px){
  .modalOverlay{padding:12px!important;align-items:flex-start!important;}
  .modalBox{width:calc(100vw - 24px)!important;margin-top:24px!important;padding:18px!important;}
  .correctionGrid{grid-template-columns:1fr!important;}
}

/* v144 - Dashboard operacional: contornos mais fortes e separação broadcast */
.opFlowTable{
  border-collapse:separate!important;
  border-spacing:0 16px!important;
}
.opFlowTable thead th{
  background:linear-gradient(180deg,#edf5ff,#dfeaf8)!important;
  border-top:1px solid #d6e4f3!important;
  border-bottom:2px solid #c8d8ef!important;
  color:#0f172a!important;
  font-weight:1000!important;
}
.opFlowTable .opMainRow td{
  background:#fff!important;
  border-top:2px solid rgba(47,140,255,.38)!important;
  border-bottom:0!important;
  box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
}
.opFlowTable .opMainRow td:first-child{
  border-left:6px solid #2fa8ff!important;
  border-radius:16px 0 0 0!important;
}
.opFlowTable .opMainRow td:last-child{
  border-right:2px solid rgba(47,140,255,.38)!important;
  border-radius:0 16px 0 0!important;
}
.opFlowTable .opActionRow td{
  background:linear-gradient(180deg,#f8fbff,#eef5fd)!important;
  border:2px solid rgba(47,140,255,.38)!important;
  border-top:2px solid #d9e6f5!important;
  border-radius:0 0 16px 16px!important;
  box-shadow:0 14px 26px rgba(15,23,42,.08)!important;
}
.opActionBar{
  gap:9px!important;
}
.opActionBar .btn{
  box-shadow:0 2px 0 rgba(0,0,0,.10)!important;
  font-weight:1000!important;
}
.opFlowTable .opMainRow.row-aguardando td:first-child{border-left-color:#2fa8ff!important;}
.opFlowTable .opMainRow.row-em_andamento td:first-child{border-left-color:#f59e0b!important;}
.opFlowTable .opMainRow.row-concluido td:first-child{border-left-color:#22c55e!important;}
.opFlowTable .opMainRow.row-concluido_falha td:first-child{border-left-color:#f59e0b!important;}
.opFlowTable .opMainRow.row-atrasado td:first-child{border-left-color:#ef4444!important;}
.opFlowTable .opMainRow.row-cancelado td:first-child{border-left-color:#64748b!important;}
.opFlowTable .opMainRow.row-aguardando td{border-top-color:rgba(47,168,255,.45)!important;}
.opFlowTable .opMainRow.row-em_andamento td{border-top-color:rgba(245,158,11,.45)!important;}
.opFlowTable .opMainRow.row-concluido td{border-top-color:rgba(34,197,94,.45)!important;}
.opFlowTable .opMainRow.row-concluido_falha td{border-top-color:rgba(245,158,11,.55)!important;background:#fffaf0!important;}
.opFlowTable .opMainRow.row-atrasado td{border-top-color:rgba(239,68,68,.50)!important;background:#fff7f7!important;}
.opFlowTable .opMainRow.row-cancelado td{border-top-color:rgba(100,116,139,.45)!important;opacity:.82;}
.opFlowTable .opActionRow.row-aguardando td{border-color:rgba(47,168,255,.42)!important;}
.opFlowTable .opActionRow.row-em_andamento td{border-color:rgba(245,158,11,.42)!important;}
.opFlowTable .opActionRow.row-concluido td{border-color:rgba(34,197,94,.42)!important;}
.opFlowTable .opActionRow.row-concluido_falha td{border-color:rgba(245,158,11,.52)!important;background:#fff7e6!important;}
.opFlowTable .opActionRow.row-atrasado td{border-color:rgba(239,68,68,.46)!important;background:#fff1f1!important;}
.opFlowTable .opActionRow.row-cancelado td{border-color:rgba(100,116,139,.42)!important;opacity:.82;}
.opFlowTable .opActionRow + .opMainRow td{padding-top:22px!important;}
@media(max-width:780px){
  .opFlowTable{border-spacing:0 14px!important;}
  .opFlowTable .opMainRow{border:2px solid rgba(47,140,255,.38)!important;border-bottom:0!important;border-radius:16px 16px 0 0!important;overflow:hidden;}
  .opFlowTable .opMainRow td{box-shadow:none!important;border-top:0!important;background:#fff!important;}
  .opFlowTable .opActionRow td{border-radius:0 0 16px 16px!important;}
  .opFlowTable .opMainRow td:first-child{border-left:6px solid #2fa8ff!important;}
}

/* v145 - Dashboard operacional: card único com ações coladas ao bloco principal */
.opListHeader{
  display:grid!important;
  grid-template-columns:110px minmax(260px,1fr) 190px 135px 170px!important;
  align-items:center!important;
  gap:0!important;
  margin:18px 0 10px!important;
  padding:0!important;
  background:linear-gradient(180deg,#edf5ff,#dfeaf8)!important;
  border:1px solid #d6e4f3!important;
  border-bottom:2px solid #c8d8ef!important;
  color:#0f172a!important;
  font-weight:1000!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}
.opListHeader>div{
  padding:13px 14px!important;
  white-space:nowrap!important;
}
.opListCards{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
.opItem{
  background:#fff!important;
  border:2px solid rgba(47,140,255,.50)!important;
  border-left-width:6px!important;
  border-radius:16px!important;
  overflow:hidden!important;
  box-shadow:0 12px 24px rgba(15,23,42,.08)!important;
}
.opItemMain{
  display:grid!important;
  grid-template-columns:110px minmax(260px,1fr) 190px 135px 170px!important;
  align-items:center!important;
  gap:0!important;
  min-height:74px!important;
  background:#fff!important;
}
.opItemMain>div{
  padding:16px 14px!important;
  min-width:0!important;
}
.opItemClient{
  background:linear-gradient(90deg,rgba(15,23,42,.025),rgba(15,23,42,0))!important;
}
.opItemRep,.opItemDuration,.opItemStatus{
  background:rgba(248,250,252,.70)!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
}
.opItemStatus{justify-content:center!important;}
.opItem .opActionBar{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  flex-wrap:wrap!important;
  padding:10px 14px 12px!important;
  background:linear-gradient(180deg,#f8fbff,#eef5fd)!important;
  border-top:1px solid #d9e6f5!important;
  border-radius:0!important;
}
.opItem .opActionBar .btn{
  min-height:36px!important;
  padding:9px 13px!important;
  border-radius:8px!important;
  font-size:13px!important;
  line-height:1!important;
  white-space:nowrap!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-weight:1000!important;
  box-shadow:0 2px 0 rgba(0,0,0,.12)!important;
}
.opItem .opActionBar .compactAction{
  width:42px!important;
  min-width:42px!important;
  padding:9px!important;
  font-size:15px!important;
}
.opItem.row-aguardando{border-color:rgba(47,168,255,.62)!important;border-left-color:#2fa8ff!important;}
.opItem.row-em_andamento{border-color:rgba(245,158,11,.62)!important;border-left-color:#f59e0b!important;}
.opItem.row-concluido{border-color:rgba(34,197,94,.60)!important;border-left-color:#22c55e!important;}
.opItem.row-concluido_falha{border-color:rgba(245,158,11,.72)!important;border-left-color:#f59e0b!important;background:#fffaf0!important;}
.opItem.row-concluido_falha .opItemMain,.opItem.row-concluido_falha .opActionBar{background:#fff7e6!important;}
.opItem.row-atrasado{border-color:rgba(239,68,68,.66)!important;border-left-color:#ef4444!important;background:#fff7f7!important;}
.opItem.row-atrasado .opItemMain,.opItem.row-atrasado .opActionBar{background:#fff1f1!important;}
.opItem.row-cancelado{border-color:rgba(100,116,139,.55)!important;border-left-color:#64748b!important;opacity:.84;}
/* Oculta estrutura antiga se algum CSS legado interferir */
.opFlowTable{display:none!important;}
@media(max-width:980px){
  .opListHeader{display:none!important;}
  .opListCards{gap:14px!important;}
  .opItemMain{
    grid-template-columns:90px minmax(0,1fr)!important;
    min-height:0!important;
  }
  .opItemMain>div{padding:8px 12px!important;}
  .opItemTime{grid-row:1 / span 4!important;align-self:start!important;padding-top:16px!important;}
  .opItemClient,.opItemRep,.opItemDuration,.opItemStatus{grid-column:2!important;background:transparent!important;height:auto!important;align-items:flex-start!important;justify-content:flex-start!important;}
  .opItem .opActionBar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:10px!important;}
  .opItem .opActionBar .btn{width:100%!important;font-size:12px!important;padding:9px 8px!important;}
  .opItem .opActionBar .compactAction{width:100%!important;min-width:0!important;}
}


/* v146 - Cancelados + atualização em tempo real do dashboard operacional */
.quickStats{grid-template-columns:repeat(7,minmax(0,1fr))!important;}
.opLiveStamp{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#16a34a;font-weight:1000;font-size:12px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;flex:0 0 auto;min-width:168px;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;padding:7px 12px;}
.homeKpi.gray{border-left-color:#8490a3!important;}
.homeStatusList i.gray{background:#8490a3!important;}
@media(max-width:1280px){.quickStats{grid-template-columns:repeat(4,minmax(0,1fr))!important;}}
@media(max-width:700px){.quickStats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.opLiveStamp{margin-top:8px;}}

/* v149 - Dashboard: filtro de status e cronômetro progressivo em tempo real */
.dashFilterForm>div{min-width:210px!important;}
.dashFilterForm>div:nth-child(2){min-width:280px!important;}
.dashFilterForm>div:nth-child(3){min-width:220px!important;}
.dashFilterForm select[name="status"]{min-width:220px!important;}
.opListHeader{
  grid-template-columns:110px minmax(260px,1fr) 190px 150px 170px!important;
}
.opItemMain{
  grid-template-columns:110px minmax(260px,1fr) 190px 150px 170px!important;
}
.opTimer{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:94px!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  border:1px solid transparent!important;
  font-weight:1000!important;
  letter-spacing:.02em!important;
  white-space:nowrap!important;
  transition:background .2s,border-color .2s,color .2s,box-shadow .2s!important;
}
.opTimer.timerGreen{
  color:#047857!important;
  background:#dcfce7!important;
  border-color:#86efac!important;
  box-shadow:0 0 0 3px rgba(34,197,94,.10)!important;
}
.opTimer.timerYellow{
  color:#92400e!important;
  background:#fef3c7!important;
  border-color:#fbbf24!important;
  box-shadow:0 0 0 3px rgba(245,158,11,.12)!important;
}
.opTimer.timerRed{
  color:#b91c1c!important;
  background:#fee2e2!important;
  border-color:#f87171!important;
  box-shadow:0 0 0 3px rgba(239,68,68,.12)!important;
  animation:timerPulseRed 1s infinite alternate;
}
.opTimer.timerFinal{
  color:#334155!important;
  background:#f1f5f9!important;
  border-color:#dbe4ef!important;
}
@keyframes timerPulseRed{
  from{box-shadow:0 0 0 3px rgba(239,68,68,.12)}
  to{box-shadow:0 0 0 6px rgba(239,68,68,.22)}
}
.opItem.row-em_andamento .opItemMain{
  background:linear-gradient(90deg,rgba(34,197,94,.06),#fff 34%,#fff)!important;
}
.opItem.row-em_andamento:has(.timerYellow){border-color:rgba(245,158,11,.70)!important;border-left-color:#f59e0b!important;}
.opItem.row-em_andamento:has(.timerRed){border-color:rgba(239,68,68,.72)!important;border-left-color:#ef4444!important;}
.opItem.row-em_andamento:has(.timerYellow) .opActionBar{background:#fffbeb!important;}
.opItem.row-em_andamento:has(.timerRed) .opActionBar{background:#fff1f2!important;}
@media(max-width:980px){
  .opListHeader{display:none!important;}
  .opItemMain{grid-template-columns:90px minmax(0,1fr)!important;}
  .opTimer{min-width:86px!important;}
}
@media(max-width:760px){
  .dashFilterForm>div,.dashFilterForm>div:nth-child(2),.dashFilterForm>div:nth-child(3),.dashFilterForm select[name="status"]{min-width:100%!important;width:100%!important;}
}

/* v150 - Dashboard acompanha configuração da regressiva + estados finais */
.opItem.row-aguardando{
  background:#f8fbff!important;
}
.opItem.row-aguardando .opItemMain{
  background:linear-gradient(90deg,#f8fbff,#ffffff 42%,#f8fbff)!important;
}
.opItem.row-aguardando .opActionBar{
  background:linear-gradient(180deg,#f8fbff,#eef7ff)!important;
}
.opItem.row-em_andamento{
  background:#fffaf0!important;
}
.opItem.row-em_andamento .opItemMain{
  background:linear-gradient(90deg,#fff7e6,#ffffff 40%,#fffaf0)!important;
}
.opItem.row-concluido{
  background:#f0fdf4!important;
}
.opItem.row-concluido .opItemMain,
.opItem.row-concluido .opActionBar{
  background:linear-gradient(180deg,#f0fdf4,#ecfdf5)!important;
}
.opItem.row-concluido_falha{
  background:#fff7ed!important;
}
.opItem.row-concluido_falha .opItemMain,
.opItem.row-concluido_falha .opActionBar{
  background:linear-gradient(180deg,#fff7ed,#fffbeb)!important;
}
.opItem.row-atrasado{
  background:#fff1f2!important;
}
.opItem.row-atrasado .opItemMain,
.opItem.row-atrasado .opActionBar{
  background:linear-gradient(180deg,#fff1f2,#fff7f7)!important;
}
.opItem.row-cancelado{
  background:#f8fafc!important;
}
.opItem.row-cancelado .opItemMain,
.opItem.row-cancelado .opActionBar{
  background:linear-gradient(180deg,#f8fafc,#f1f5f9)!important;
}
.opActionBar .btn:disabled,
.opActionBar .btn[aria-disabled="true"]{
  opacity:.46!important;
  cursor:not-allowed!important;
  filter:grayscale(.35)!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
.opItem.row-concluido .opActionBar .btn:disabled,
.opItem.row-concluido_falha .opActionBar .btn:disabled{
  background:#94a3b8!important;
  color:#f8fafc!important;
}
.opItem.row-em_andamento:has(.timerYellow) .opItemMain{
  background:linear-gradient(90deg,#fffbeb,#ffffff 35%,#fffbeb)!important;
}
.opItem.row-em_andamento:has(.timerRed) .opItemMain{
  background:linear-gradient(90deg,#fff1f2,#ffffff 35%,#fff1f2)!important;
}

/* v154 - Concluído sem início: pendência operacional até correção manual */
.statusBadge.incompleto{
  color:#b45309!important;
  background:#fff7ed!important;
  border-color:#f59e0b!important;
}
.opItem.row-incompleto{
  border-color:rgba(245,158,11,.72)!important;
  border-left-color:#f59e0b!important;
  background:#fff7ed!important;
}
.opItem.row-incompleto .opItemMain,
.opItem.row-incompleto .opActionBar{
  background:linear-gradient(180deg,#fff7ed,#fffbeb)!important;
}
.opItem.row-incompleto .opObsPreview{
  color:#92400e!important;
}

/* v156 - Operação separada: cadastro/edição em modal */
.operatorGrid.operationOnly{
  grid-template-columns:1fr!important;
}
.operatorGrid.operationOnly .opCard#opLivePanel{
  width:100%;
}
.merchanFormBox{
  max-width:760px!important;
  width:min(760px, calc(100vw - 32px))!important;
}
.modalTitleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:8px;
}
.modalTitleRow h3{margin:0!important;}
.modalCloseBtn{
  width:38px;height:38px;border-radius:12px;border:1px solid #cbd5e1;background:#f1f5f9;color:#0f172a;font-size:24px;font-weight:900;line-height:1;cursor:pointer;
}
.modalCloseBtn:hover{background:#e2e8f0;}
.modalOpForm{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.modalOpForm .span2{grid-column:1 / -1!important;}
.dashFilterForm .btn.green{white-space:nowrap;}
@media(max-width:720px){
  .modalOpForm{grid-template-columns:1fr!important;}
  .modalOpForm .span2{grid-column:auto!important;}
  .merchanFormBox{margin-top:8px!important;}
}

/* ===== v163 Home: 6 indicadores em uma única linha no desktop ===== */
@media (min-width: 1181px){
  .homeKpis{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:stretch!important;
  }
  .homeKpi{
    min-height:116px!important;
    padding:16px 16px!important;
  }
  .homeKpi b{
    font-size:clamp(28px,2.15vw,40px)!important;
  }
  .homeKpi small{
    font-size:clamp(10px,.78vw,12px)!important;
    line-height:1.25!important;
  }
  .homeKpiGauge{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
  }
  .homeGauge{
    width:70px!important;
    height:70px!important;
  }
  .homeGauge strong{
    font-size:16px!important;
  }
}
@media (min-width: 1181px) and (max-width: 1380px){
  .homeKpi{padding:14px 13px!important;min-height:110px!important;}
  .homeKpi span{font-size:10px!important;letter-spacing:.055em!important;}
  .homeKpi b{font-size:32px!important;}
  .homeKpi small{font-size:10px!important;}
  .homeGauge{width:62px!important;height:62px!important;}
  .homeGauge strong{font-size:14px!important;}
}

/* v59 - menu administrativo por tópicos e submenus responsivos */
.adminAccordionMenu{
  width:330px;
  min-width:330px;
  padding:10px;
  max-height:min(72vh,720px);
  overflow:auto;
  overscroll-behavior:contain;
}
.adminMenuSection{
  border:1px solid #dce7f3;
  border-radius:12px;
  background:#f8fbff;
  overflow:hidden;
  margin:0 0 8px;
}
.adminMenuSection:last-child{margin-bottom:0}
.adminMenuSection>summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:26px 1fr 20px;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:10px 12px;
  color:#12243a;
  font-size:14px;
  font-weight:1000;
  user-select:none;
  outline:none;
}
.adminMenuSection>summary::-webkit-details-marker{display:none}
.adminMenuSection>summary:hover{background:#eef6ff;color:#075fba}
.adminMenuSection[open]>summary{
  background:linear-gradient(135deg,#eaf4ff,#f5f9ff);
  color:#075fba;
  border-bottom:1px solid #dce7f3;
}
.adminMenuSectionIcon{display:inline-flex;align-items:center;justify-content:center;font-size:17px}
.adminMenuChevron{display:inline-flex;align-items:center;justify-content:center;font-size:17px;transition:transform .18s ease;color:#64748b}
.adminMenuSection[open] .adminMenuChevron{transform:rotate(180deg)}
.adminMenuSectionItems{padding:6px;background:#fff}
.adminAccordionMenu .adminMenuSectionItems a{
  min-height:42px;
  padding:10px 11px;
  font-size:13px;
  border-radius:9px;
  margin:2px 0;
  white-space:normal;
}
.adminAccordionMenu .adminMenuSectionItems a span{width:22px;flex:0 0 22px;text-align:center}
.adminAccordionMenu .adminMenuSectionItems a.active{
  background:#e9f3ff;
  color:#075fba;
  box-shadow:inset 3px 0 0 #1976d2;
}
.adminAccordionMenu::-webkit-scrollbar{width:8px}
.adminAccordionMenu::-webkit-scrollbar-thumb{background:#bfd0e3;border-radius:999px;border:2px solid #fff}
.adminAccordionMenu::-webkit-scrollbar-track{background:transparent}

@media (max-width:760px){
  .adminDropdown.adminMenuGrouped[open] .adminAccordionMenu,
  .adminAccordionMenu{
    position:fixed!important;
    top:92px!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:calc(100dvh - 112px)!important;
    padding:10px!important;
    border-radius:16px!important;
    box-shadow:0 20px 60px rgba(0,0,0,.48)!important;
  }
  .adminAccordionMenu::before{display:none!important}
  .adminMenuSection>summary{min-height:52px;font-size:15px;padding:11px 12px}
  .adminAccordionMenu .adminMenuSectionItems a{min-height:46px;font-size:14px;padding:11px 12px}
  .adminDropdownBtn{min-height:44px!important}
}
@media (max-width:430px){
  .adminDropdown.adminMenuGrouped[open] .adminAccordionMenu,
  .adminAccordionMenu{
    top:104px!important;
    left:6px!important;
    right:6px!important;
    max-height:calc(100dvh - 116px)!important;
    padding:8px!important;
  }
  .adminMenuSection{border-radius:11px}
  .adminMenuSection>summary{grid-template-columns:24px 1fr 18px;font-size:14px}
  .adminAccordionMenu .adminMenuSectionItems a{font-size:14px}
}


/* v59.2 - submenu limpo, compacto e claramente vinculado ao tópico */
.adminMenuSection{
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.adminMenuSection[open]{
  border-color:#6fb0e8;
  background:#f7fbff;
  box-shadow:0 10px 24px rgba(20,78,136,.12);
  margin-bottom:12px;
}
.adminMenuSection[open]>summary{
  background:linear-gradient(135deg,#1477c9 0%,#0a5fae 100%);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.18);
  box-shadow:none;
}
.adminMenuSection[open]>summary:hover{
  background:linear-gradient(135deg,#1886df 0%,#0a68bf 100%);
  color:#fff;
}
.adminMenuSection[open]>summary .adminMenuSectionIcon{
  width:28px;
  height:28px;
  border-radius:8px;
  background:rgba(255,255,255,.14);
  box-shadow:none;
}
.adminMenuSection[open]>summary .adminMenuChevron{color:#fff}
.adminMenuSectionItems{
  display:grid;
  gap:2px;
  margin:0;
  padding:8px 8px 10px 14px;
  background:#f6faff;
  border:0;
  border-radius:0 0 11px 11px;
  animation:adminMenuReveal .2s ease both;
}
@keyframes adminMenuReveal{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.adminMenuSectionItems::before{display:none!important}
.adminAccordionMenu .adminMenuSectionItems a{
  position:relative;
  min-height:36px;
  padding:8px 10px 8px 16px;
  margin:0;
  font-size:12.5px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:#21364f;
}
.adminAccordionMenu .adminMenuSectionItems a::before{display:none!important}
.adminAccordionMenu .adminMenuSectionItems a span{
  width:19px;
  flex:0 0 19px;
  font-size:14px;
  opacity:.86;
}
.adminAccordionMenu .adminMenuSectionItems a:hover{
  background:#fff;
  border-color:#d7e6f4;
  color:#075fba;
  box-shadow:0 3px 10px rgba(37,99,156,.07);
}
.adminAccordionMenu .adminMenuSectionItems a.active{
  background:#e7f2ff;
  border-color:#b7d8f3;
  color:#075fba;
  box-shadow:inset 3px 0 0 #1976d2;
}
.adminMenuSection:not([open]) + .adminMenuSection{margin-top:2px}

@media (max-width:760px){
  .adminMenuSection[open]{margin-bottom:14px}
  .adminMenuSectionItems{padding:9px 8px 11px 12px}
  .adminAccordionMenu .adminMenuSectionItems a{
    min-height:44px;
    padding:11px 12px 11px 16px;
    font-size:14px;
  }
  .adminAccordionMenu .adminMenuSectionItems a span{
    width:21px;
    flex-basis:21px;
    font-size:15px;
  }
}

/* v59.3 - menu dark em formato launcher de módulos */
.adminDropdown.adminMenuGrouped[open] .adminAccordionMenu,
.adminAccordionMenu{
  width:344px;
  min-width:344px;
  padding:10px;
  background:linear-gradient(180deg,#081a2e 0%,#061426 100%);
  border:1px solid #24517a;
  border-radius:15px;
  box-shadow:0 22px 54px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.04);
}
.adminAccordionMenu::-webkit-scrollbar-thumb{
  background:#315676;
  border:2px solid #081a2e;
}
.adminMenuSection{
  --menu-accent:#28a4ff;
  border:1px solid #24435f;
  border-radius:11px;
  background:#0d2238;
  box-shadow:none;
  overflow:hidden;
  margin:0 0 7px;
}
.adminMenuSection[data-menu-section="operacao"]{--menu-accent:#27a8ff}
.adminMenuSection[data-menu-section="programacao"]{--menu-accent:#38d477}
.adminMenuSection[data-menu-section="ecad"]{--menu-accent:#c66cff}
.adminMenuSection[data-menu-section="frota"]{--menu-accent:#ff8a32}
.adminMenuSection[data-menu-section="gestao"]{--menu-accent:#f3c63f}
.adminMenuSection[data-menu-section="configuracoes"]{--menu-accent:#91a6ba}
.adminMenuSection>summary{
  min-height:43px;
  grid-template-columns:25px 1fr 18px;
  padding:8px 11px;
  color:#eaf5ff;
  font-size:13px;
  letter-spacing:.01em;
  background:#0d2238;
  border-left:3px solid transparent;
}
.adminMenuSection>summary:hover{
  color:#fff;
  background:#12304c;
  border-left-color:var(--menu-accent);
}
.adminMenuSectionIcon{
  width:24px;
  height:24px;
  border-radius:7px;
  font-size:15px;
  color:var(--menu-accent);
  background:rgba(255,255,255,.055);
}
.adminMenuChevron{font-size:14px;color:#89a7c2}
.adminMenuSection[open]{
  border-color:color-mix(in srgb,var(--menu-accent) 55%,#24435f);
  background:#0b1d31;
  box-shadow:0 10px 24px rgba(0,0,0,.2);
  margin-bottom:10px;
}
.adminMenuSection[open]>summary,
.adminMenuSection[open]>summary:hover{
  color:#fff;
  background:linear-gradient(90deg,color-mix(in srgb,var(--menu-accent) 30%,#0d2238),#102a44 72%);
  border-left:3px solid var(--menu-accent);
  border-bottom:1px solid #294967;
}
.adminMenuSection[open]>summary .adminMenuSectionIcon{
  width:24px;
  height:24px;
  background:color-mix(in srgb,var(--menu-accent) 18%,transparent);
  color:#fff;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--menu-accent) 42%,transparent);
}
.adminMenuSectionItems{
  gap:2px;
  margin:0;
  padding:7px 7px 9px 9px;
  background:#081a2d;
  border-radius:0;
}
.adminAccordionMenu .adminMenuSectionItems a{
  min-height:36px;
  padding:7px 9px 7px 12px;
  margin:0;
  color:#c9d9e8;
  background:transparent;
  border:1px solid transparent;
  border-radius:7px;
  font-size:12.5px;
  font-weight:800;
}
.adminAccordionMenu .adminMenuSectionItems a span{
  color:var(--menu-accent);
  filter:saturate(.9);
  opacity:1;
}
.adminAccordionMenu .adminMenuSectionItems a:hover{
  color:#fff;
  background:#12304b;
  border-color:#2c5577;
  box-shadow:none;
  transform:translateX(2px);
}
.adminAccordionMenu .adminMenuSectionItems a.active{
  color:#fff;
  background:linear-gradient(90deg,color-mix(in srgb,var(--menu-accent) 20%,#112a43),#10283f);
  border-color:color-mix(in srgb,var(--menu-accent) 45%,#2c5577);
  box-shadow:inset 3px 0 0 var(--menu-accent);
}
.adminMenuSection:not([open]) + .adminMenuSection{margin-top:0}

@media (max-width:760px){
  .adminDropdown.adminMenuGrouped[open] .adminAccordionMenu,
  .adminAccordionMenu{
    background:linear-gradient(180deg,#081a2e,#061426)!important;
    border-color:#24517a!important;
    padding:9px!important;
  }
  .adminMenuSection>summary{
    min-height:48px;
    font-size:14px;
    padding:10px 11px;
  }
  .adminMenuSectionItems{padding:7px 7px 10px 9px}
  .adminAccordionMenu .adminMenuSectionItems a{
    min-height:43px;
    padding:10px 11px 10px 13px;
    font-size:13.5px;
  }
}

/* =========================================================
   VizerON Broadcast Platform 1.0
========================================================= */
.vizeronHeaderBrand img{width:205px!important;height:54px!important;object-fit:contain!important}.vizeronHeaderBrand .brandTenant{border-left:1px solid #31516f;padding-left:18px}.vzCentralBtn{border-color:#2c86c7!important}.vzLauncherBody{margin:0;background:radial-gradient(circle at 70% 0,#102e5b 0,#07182d 38%,#03101f 100%);color:#f6fbff;font-family:Inter,Arial,sans-serif;min-height:100vh}.vzLauncherShell{max-width:1420px;margin:auto;padding:24px 34px}.vzLauncherTop{display:flex;align-items:center;gap:28px;padding:18px 24px;border:1px solid #1f608c;border-radius:18px;background:rgba(5,24,45,.92);box-shadow:0 22px 60px rgba(0,0,0,.28)}.vzLauncherTop>img{width:250px;height:65px;object-fit:contain}.vzLauncherUser{border-left:1px solid #31516f;padding-left:24px;display:flex;flex-direction:column;gap:4px}.vzLauncherUser b{font-size:20px}.vzLauncherUser span{color:#a9c3db}.vzLauncherTop nav{margin-left:auto;display:flex;gap:10px}.vzLauncherTop nav a{color:#dff2ff;text-decoration:none;border:1px solid #27688f;padding:12px 16px;border-radius:10px}.vzLauncherTop nav a:hover{background:#103b60}.vzLauncherTop nav .logout{background:#526981;border-color:#526981}.vzHero{display:flex;align-items:center;justify-content:space-between;padding:70px 20px 46px}.eyebrow,.vzSectionTitle span{font-size:13px;letter-spacing:.18em;font-weight:800;color:#35caff}.vzHero h1{font-size:clamp(42px,6vw,76px);margin:12px 0 8px;line-height:1}.vzHero p{font-size:21px;color:#b7cde1}.vzHeroStatus{display:flex;align-items:center;gap:12px;border:1px solid #1c5c88;border-radius:999px;padding:13px 20px;background:#09233d}.vzHeroStatus i{width:10px;height:10px;border-radius:50%;background:#58ff48;box-shadow:0 0 14px #58ff48}.vzHeroStatus b{color:#65ff4e}.vzSectionTitle{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.vzSectionTitle h2{font-size:34px;margin:8px 0}.vzSectionTitle p{max-width:500px;color:#91aec7}.vzModuleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.vzModuleCard{position:relative;min-height:270px;border:1px solid color-mix(in srgb,var(--module-color) 48%,#1c3851);border-radius:20px;background:linear-gradient(145deg,#0c263f,#081a2f);padding:25px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.2)}.vzModuleCard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--module-color)}.vzModuleCard:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-80px;top:-90px;background:var(--module-color);filter:blur(80px);opacity:.22}.vzModuleIcon{font-size:36px;width:65px;height:65px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--module-color) 17%,transparent);border:1px solid color-mix(in srgb,var(--module-color) 55%,transparent)}.vzModuleText span{display:block;margin-top:24px;color:var(--module-color);font-size:11px;font-weight:800;letter-spacing:.16em}.vzModuleText h3{font-size:26px;margin:8px 0}.vzModuleText p{color:#a9bfd3;line-height:1.55}.vzModuleCard a,.vzModuleCard button{margin-top:auto;display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:#fff;background:color-mix(in srgb,var(--module-color) 25%,#0d2740);border:1px solid color-mix(in srgb,var(--module-color) 55%,#1c3851);padding:13px 15px;border-radius:11px;font-weight:700}.vzModuleCard a:hover{background:color-mix(in srgb,var(--module-color) 40%,#0d2740)}.vzModuleCard button{opacity:.55}.vzLauncherFooter{margin-top:54px;border-top:1px solid #174567;padding:28px 4px;display:flex;align-items:center;gap:22px;color:#8ba9c2}.vzLauncherFooter span{color:#fff;font-weight:800}.vzLauncherFooter p{margin:auto}.vzManagePage{padding-bottom:60px}.vzEmissoraSelect select{min-width:320px}.vzManageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.vzManageCard{background:#fff;border:1px solid #d6e3ef;border-left:5px solid var(--module-color);border-radius:14px;padding:18px}.vzManageCard header{display:flex;align-items:center;gap:14px}.vzManageCard header>span{font-size:28px}.vzManageCard header div{display:flex;flex-direction:column;gap:4px}.vzManageCard header small{color:#64788d}.vzManageCard>label{display:block;margin-top:18px}.vzManageCard input[type=text],.vzManageCard input:not([type]){width:100%}.vzSwitch{margin-left:auto}.vzSwitch input{display:none}.vzSwitch i{display:block;width:48px;height:27px;border-radius:99px;background:#9ba9b7;position:relative;cursor:pointer}.vzSwitch i:after{content:"";position:absolute;width:21px;height:21px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.vzSwitch input:checked+i{background:#21c95a}.vzSwitch input:checked+i:after{left:24px}
@media(max-width:900px){.vzLauncherShell{padding:12px}.vzLauncherTop{flex-wrap:wrap}.vzLauncherTop>img{width:210px}.vzLauncherUser{order:3;width:100%;border-left:0;border-top:1px solid #294b67;padding:12px 0 0}.vzLauncherTop nav{margin-left:auto}.vzHero{padding:45px 8px 30px;align-items:flex-start;gap:20px}.vzHeroStatus{display:none}.vzSectionTitle{display:block}.vzModuleGrid,.vzManageGrid{grid-template-columns:1fr}.vzLauncherFooter{display:block;text-align:center}.vzLauncherFooter p{margin:12px}.vizeronHeaderBrand img{width:170px!important}.vzCentralBtn{display:none!important}}
@media(max-width:560px){.vzLauncherTop nav{width:100%;display:grid;grid-template-columns:1fr 1fr}.vzLauncherTop nav a{text-align:center}.vzHero h1{font-size:46px}.vzHero p{font-size:17px}.vzModuleCard{min-height:245px}.operatorTop .vizeronHeaderBrand .brandTenant{display:none}}

/* VizerON 1.1 — Launcher profissional com quatro módulos */
.vzLauncherBrand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}.vzLauncherBrand img{width:250px;height:65px;object-fit:contain}.vzLauncherTop nav .manage{background:linear-gradient(135deg,#0b365c,#104e7b);border-color:#2c86c7}.vzHeroCompact{padding:46px 20px 28px}.vzHeroCompact h1{font-size:clamp(42px,5vw,66px)}.vzHeroCompact p{margin-bottom:0}.vzPlatformSummary{display:flex;align-items:center;gap:28px;margin:0 0 38px;padding:18px 22px;border:1px solid #194f76;border-radius:16px;background:linear-gradient(110deg,rgba(12,43,72,.9),rgba(7,27,49,.75))}.vzPlatformSummary div{display:flex;align-items:baseline;gap:10px;white-space:nowrap}.vzPlatformSummary strong{font-size:32px;color:#55d7ff}.vzPlatformSummary span{font-weight:700;color:#d9efff}.vzPlatformSummary p{margin:0;color:#9dbad1}.vzSectionTitleCompact{margin-bottom:18px}.vzSectionTitleCompact h2{font-size:30px}.vzModuleGridFour{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.vzModuleCardCompact{min-height:315px;padding:22px}.vzModuleCardHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.vzModuleCardCompact .vzModuleIcon{width:58px;height:58px;font-size:31px}.vzModuleStatus{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--module-color) 45%,#24435e);border-radius:999px;color:#cfe9fa;font-size:11px;font-weight:700;background:rgba(5,24,43,.65)}.vzModuleStatus i{width:7px;height:7px;border-radius:50%;background:#55ff65;box-shadow:0 0 10px #55ff65}.vzModuleCardCompact .vzModuleText small{display:block;margin-top:20px;color:var(--module-color);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.vzModuleCardCompact .vzModuleText h3{font-size:23px;margin:7px 0 10px}.vzModuleCardCompact .vzModuleText p{font-size:14px;margin:0;line-height:1.55}.vzModuleCardCompact>a{margin-top:22px}.vzConnectedStrip{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:14px;margin-top:34px;padding:20px 24px;border:1px solid #174d73;border-radius:16px;background:#071a2e}.vzConnectedStrip>div{display:flex;flex-direction:column;gap:4px}.vzConnectedStrip b{color:#fff}.vzConnectedStrip span{font-size:12px;color:#87a8c1}.vzConnectedStrip>i{font-style:normal;color:#4cd7ff;font-size:22px}
@media(max-width:1180px){.vzModuleGridFour{grid-template-columns:repeat(2,minmax(0,1fr))}.vzConnectedStrip{grid-template-columns:1fr 1fr}.vzConnectedStrip>i{display:none}}
@media(max-width:900px){.vzLauncherBrand img{width:210px}.vzPlatformSummary{align-items:flex-start;flex-direction:column;gap:8px}.vzModuleGridFour{grid-template-columns:1fr}.vzConnectedStrip{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.vzConnectedStrip{grid-template-columns:1fr}.vzLauncherTop nav{grid-template-columns:1fr 1fr}.vzModuleCardCompact{min-height:285px}}

/* VizerON V1.2 — contexto por emissora, gerenciamento e acabamento */
.vzManageHero{padding:42px 4px 22px}.vzManageHero h1{font-size:clamp(34px,4vw,54px);margin:10px 0}.vzManageHero p{color:#9fbad0;font-size:18px}.vzEmitterContext,.vzContextSelector{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:18px 20px;margin:0 0 22px;border:1px solid #1d5b86;border-radius:16px;background:linear-gradient(115deg,#0c2b48,#071a30)}.vzEmitterContext form,.vzContextSelector form{flex:1}.vzEmitterContext label,.vzContextSelector label{display:flex;flex-direction:column;gap:8px;color:#cceaff;font-weight:700}.vzEmitterContext select,.vzContextSelector select{width:100%;min-height:46px;border:1px solid #2e6d98;border-radius:10px;background:#071a2e;color:#fff;padding:0 14px;font-size:16px}.vzEmitterBadge{display:flex;align-items:center;gap:12px;color:#dff4ff}.vzEmitterBadge i{width:10px;height:10px;border-radius:50%;background:#51ff55;box-shadow:0 0 12px #51ff55}.vzEmitterBadge div{display:flex;flex-direction:column}.vzEmitterBadge span{font-size:12px;color:#8eabc2}.vzContextSelector{align-items:center}.vzContextSelector a{color:#58d7ff;text-decoration:none;font-weight:700;white-space:nowrap}.vzManageCardDark{background:linear-gradient(145deg,#0b243b,#07192c);border-color:#24506d;color:#fff;box-shadow:0 14px 35px rgba(0,0,0,.18)}.vzManageCardDark header small{color:#9db7cc}.vzManageCardDark>label{color:#d7efff;font-weight:700}.vzManageCardDark>label span{display:block;margin-bottom:7px}.vzManageCardDark input[type=text]{width:100%;box-sizing:border-box;background:#061729;color:#fff;border:1px solid #315f7c;border-radius:9px;padding:11px 12px}.vzEmptySelection{display:grid;place-items:center;text-align:center;min-height:260px;border:1px dashed #285b7d;border-radius:18px;background:#071b30;color:#dff3ff}.vzEmptySelection>span{font-size:52px}.vzEmptySelection h2{margin:10px 0 4px}.vzEmptySelection p{color:#91adc3}.vzSettingsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.vzSettingsCard{display:flex;align-items:flex-start;gap:16px;min-height:130px;padding:22px;border:1px solid #1e557c;border-radius:16px;background:linear-gradient(145deg,#0c2945,#071a2f);color:#fff;text-decoration:none;box-shadow:0 14px 35px rgba(0,0,0,.16)}.vzSettingsCard>span{font-size:30px}.vzSettingsCard h2{font-size:19px;margin:0 0 8px}.vzSettingsCard p{margin:0;color:#9bb7cc;line-height:1.45}.vzSettingsCard>b{margin-left:auto;color:#43ceff;font-size:22px}.vzSettingsCard:hover{transform:translateY(-2px);border-color:#39a7e8}.vzLauncherBrand img{width:275px;height:68px}.vzLauncherTop{background:linear-gradient(110deg,rgba(4,21,39,.96),rgba(8,38,67,.94))}.vzModuleCardCompact{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.vzModuleCardCompact:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(0,0,0,.30)}
@media(max-width:1000px){.vzSettingsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.vzEmitterContext,.vzContextSelector{align-items:stretch;flex-direction:column}.vzContextSelector a{white-space:normal}.vzSettingsGrid{grid-template-columns:1fr}.vzManageHero{padding-top:24px}.vzLauncherBrand img{width:225px}}

/* VizerON 1.3 - identidade, alinhamento e rodapé institucional */
.vizeronHeaderBrand img,
.vzLauncherBrand img{
  width:280px!important;
  height:70px!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:8px;
}
.vzLauncherTop{min-height:84px}
.vzModuleCardCompact{height:100%;box-sizing:border-box}
.vzModuleCardCompact .vzModuleText{display:flex;flex-direction:column;flex:1}
.vzModuleCardCompact .vzModuleText p{min-height:88px}
.vzModuleCardCompact>a{margin-top:auto!important}

.vzPillarsFooter{
  margin-top:34px;
  padding:26px 26px 20px;
  border:1px solid #174d73;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(3,15,29,.98),rgba(2,10,21,.98));
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  position:relative;
  overflow:hidden;
}
.vzPillarsFooter:after{
  content:"";position:absolute;left:5%;right:5%;bottom:51px;height:1px;
  background:linear-gradient(90deg,#1e8cff,#25cfff,#65f238,#8f57ff);
  box-shadow:0 0 12px rgba(53,202,255,.55)
}
.vzPillar{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:130px;border-right:1px solid #22344c;color:#fff}
.vzPillar:nth-child(4){border-right:0}
.vzPillarIcon{font-size:54px;line-height:1;font-weight:300}
.vzPillar b{font-size:17px;letter-spacing:.04em}
.vzPillarProgramacao .vzPillarIcon{color:#168dff}.vzPillarJornalismo .vzPillarIcon{color:#25cfff}.vzPillarComercial .vzPillarIcon{color:#75f242}.vzPillarIA .vzPillarIcon{color:#9557ff}
.vzPillarsFooter p{grid-column:1/-1;margin:29px 0 0;text-align:center;color:#fff;font-size:14px;letter-spacing:.25em;position:relative;z-index:1}
.vzPillarsFooter p em{font-style:normal;color:#27c9ff}.vzPillarsFooter p strong{color:#75f242;font-weight:500}

/* Login: logo institucional sobre fundo escuro */
.loginCard img[src*="vizeron-logo-premium"],
.loginLogo img[src*="vizeron-logo-premium"]{
  display:block;width:100%!important;max-width:330px!important;height:auto!important;margin:0 auto 16px;background:#03101f;border-radius:10px;padding:5px;box-sizing:border-box
}

@media(max-width:900px){
 .vizeronHeaderBrand img,.vzLauncherBrand img{width:225px!important;height:58px!important}
 .vzPillarsFooter{grid-template-columns:repeat(2,1fr)}
 .vzPillar:nth-child(2){border-right:0}.vzPillar:nth-child(-n+2){border-bottom:1px solid #22344c}
 .vzPillarsFooter:after{display:none}
}
@media(max-width:560px){
 .vizeronHeaderBrand img,.vzLauncherBrand img{width:195px!important;height:52px!important}
 .vzPillarsFooter{grid-template-columns:1fr;padding:18px}
 .vzPillar{border-right:0!important;border-bottom:1px solid #22344c!important;min-height:104px}
 .vzPillar:nth-child(4){border-bottom:0!important}
 .vzPillarsFooter p{font-size:11px;line-height:1.8;letter-spacing:.14em}
}

/* =========================
   VizerON Login V1.5 — identidade profissional
========================= */
.vzLoginBody{margin:0;min-height:100vh;background:#020817;color:#fff;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}.vzLoginBody *{box-sizing:border-box}.vzLoginShell{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(440px,.7fr);min-height:100vh;background:radial-gradient(circle at 72% 40%,rgba(0,115,255,.08),transparent 28%),linear-gradient(110deg,#020918 0%,#031229 58%,#020817 100%)}.vzLoginBrand{position:relative;min-height:100vh;overflow:hidden;border-right:1px solid rgba(67,149,255,.18);background:radial-gradient(circle at 30% 32%,rgba(0,133,255,.12),transparent 32%),linear-gradient(135deg,rgba(2,10,25,.2),rgba(1,9,23,.9))}.vzBrandContent{position:relative;z-index:3;width:min(820px,84%);margin:0 auto;padding:7.5vh 0 33vh}.vzBrandLogo{display:block;width:min(720px,100%);height:auto;filter:drop-shadow(0 12px 28px rgba(0,93,255,.16))}.vzBrandStatement{margin-top:5.5vh}.vzBrandStatement h1{margin:0;color:#fff;font-size:clamp(34px,3vw,58px);line-height:1.16;letter-spacing:-.035em;font-weight:800;text-shadow:0 4px 24px rgba(0,0,0,.45)}.vzBrandStatement h1 span{color:#79ed3c}.vzBrandStatement p{margin:24px 0 0;color:#aebbd0;font-size:clamp(18px,1.2vw,24px);line-height:1.5}.vzPillars{display:grid;grid-template-columns:repeat(4,1fr);width:min(660px,100%);margin-top:34px}.vzPillars>div{min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;border-right:1px solid rgba(130,163,209,.26)}.vzPillars>div:last-child{border-right:0}.vzPillars b{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.02em}.vzPillars i{display:block;position:relative;width:44px;height:44px}.vzIconPlay{border:4px solid #087cff;clip-path:polygon(15% 4%,95% 50%,15% 96%);filter:drop-shadow(0 0 9px rgba(0,122,255,.55))}.vzIconNews{border:4px solid #16d7ff;border-radius:50%;box-shadow:inset 0 0 0 7px #06142a,0 0 10px rgba(22,215,255,.45)}.vzIconBars{border:3px solid #71ec35;border-radius:3px;padding:8px 7px;display:flex!important;align-items:flex-end;justify-content:space-between;gap:4px;box-shadow:0 0 10px rgba(113,236,53,.3)}.vzIconBars span{display:block;width:5px;background:#71ec35}.vzIconBars span:nth-child(1){height:12px}.vzIconBars span:nth-child(2){height:22px}.vzIconBars span:nth-child(3){height:30px}.vzIconAi{border:4px dotted #a93dff;border-radius:50%;filter:drop-shadow(0 0 8px rgba(169,61,255,.55));animation:vzSpin 8s linear infinite}@keyframes vzSpin{to{transform:rotate(360deg)}}.vzGridDots{position:absolute;left:0;top:8%;width:170px;height:250px;opacity:.33;background-image:radial-gradient(circle,#168dff 1.4px,transparent 1.6px);background-size:17px 17px;mask-image:linear-gradient(90deg,#000,transparent)}.vzWorld{position:absolute;z-index:1;left:-5%;right:-2%;bottom:-32%;height:62%;border-radius:50% 50% 0 0/72% 72% 0 0;background:radial-gradient(ellipse at 50% 0%,rgba(4,69,152,.75),rgba(1,17,45,.92) 48%,transparent 70%);border-top:2px solid rgba(39,170,255,.55);box-shadow:0 -12px 80px rgba(0,112,255,.24),inset 0 24px 80px rgba(0,113,255,.16);transform:perspective(700px) rotateX(8deg)}.vzWorldGrid{position:absolute;inset:0;border-radius:inherit;opacity:.72;background-image:linear-gradient(rgba(19,150,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(19,150,255,.16) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse at 50% 0%,#000,transparent 68%)}.vzOrbit{position:absolute;border-top:1px solid rgba(26,159,255,.8);border-radius:50%;filter:drop-shadow(0 0 4px #0d82ff)}.vzOrbit.o1{left:6%;right:5%;top:8%;height:46%;transform:rotate(4deg)}.vzOrbit.o2{left:15%;right:8%;top:16%;height:31%;transform:rotate(-7deg)}.vzOrbit.o3{left:22%;right:18%;top:4%;height:53%;transform:rotate(12deg)}.vzNode{position:absolute;width:7px;height:7px;border-radius:50%;background:#b7f2ff;box-shadow:0 0 5px #fff,0 0 17px #008cff}.vzNode.n1{left:19%;top:16%}.vzNode.n2{left:39%;top:5%}.vzNode.n3{left:58%;top:19%}.vzNode.n4{left:73%;top:9%}.vzNode.n5{left:86%;top:25%}.vzLoginAccess{position:relative;z-index:4;display:flex;align-items:center;justify-content:center;padding:48px 6vw 90px}.vzLoginCard{width:min(530px,100%);padding:46px 42px 38px;border:1px solid rgba(46,130,230,.34);border-radius:24px;background:linear-gradient(180deg,rgba(5,20,45,.9),rgba(2,12,30,.94));box-shadow:0 30px 90px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.04);backdrop-filter:blur(12px)}.vzCardSymbol{display:block;width:98px;height:auto;margin:0 auto 10px;filter:drop-shadow(0 10px 20px rgba(0,112,255,.22))}.vzSecureLabel{text-align:center;color:#13d7ff;font-weight:800;font-size:13px;letter-spacing:.22em;text-transform:uppercase}.vzLoginCard h2{margin:19px 0 11px;text-align:center;color:#fff;font-size:clamp(32px,2.5vw,45px);line-height:1.1;letter-spacing:-.035em}.vzLoginCard h2 span{color:#7aec3d}.vzLoginIntro{text-align:center;color:#aeb9cc;font-size:17px;line-height:1.5;margin:0 0 31px}.vzLoginCard form>label{display:block;margin:17px 0 8px;color:#b8c3d7;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.vzField{position:relative}.vzField input{width:100%;height:62px;padding:0 58px;border:1px solid rgba(133,158,202,.56);border-radius:11px;background:rgba(2,12,29,.72);color:#fff;font-size:17px;font-weight:500;outline:none;transition:.18s}.vzField input::placeholder{color:#8996ad}.vzField input:focus{border-color:#168fff;box-shadow:0 0 0 3px rgba(22,143,255,.14),0 0 24px rgba(0,118,255,.12)}.vzFieldIcon{position:absolute;z-index:2;left:20px;top:50%;width:22px;height:22px;transform:translateY(-50%);opacity:.85}.vzUserIcon:before{content:"";position:absolute;left:6px;top:0;width:9px;height:9px;border:2px solid #8fa6d2;border-radius:50%}.vzUserIcon:after{content:"";position:absolute;left:1px;bottom:0;width:19px;height:10px;border:2px solid #8fa6d2;border-bottom:0;border-radius:12px 12px 0 0}.vzLockIcon:before{content:"";position:absolute;left:5px;top:8px;width:13px;height:12px;border:2px solid #8fa6d2;border-radius:3px}.vzLockIcon:after{content:"";position:absolute;left:8px;top:1px;width:7px;height:9px;border:2px solid #8fa6d2;border-bottom:0;border-radius:7px 7px 0 0}.vzPasswordToggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;background:transparent;cursor:pointer;border-radius:50%}.vzPasswordToggle:hover{background:rgba(30,143,255,.08)}.vzPasswordToggle span,.vzPasswordToggle span:before{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.vzPasswordToggle span{width:22px;height:14px;border:2px solid #8fa6d2;border-radius:50%}.vzPasswordToggle span:before{content:"";width:5px;height:5px;border-radius:50%;background:#8fa6d2}.vzPasswordToggle[aria-pressed="true"] span:after{content:"";position:absolute;left:-3px;top:5px;width:27px;height:2px;background:#8fa6d2;transform:rotate(-42deg)}.vzLoginOptions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:20px 0 23px;color:#aeb9cc;font-size:14px}.vzRemember{display:inline-flex!important;align-items:center;gap:10px;margin:0!important;text-transform:none!important;letter-spacing:0!important;color:#aeb9cc!important;cursor:pointer}.vzRemember input{position:absolute;opacity:0;pointer-events:none}.vzRemember span{width:20px;height:20px;border:1px solid #3179df;border-radius:4px;background:#06152d;position:relative}.vzRemember input:checked+span{background:#0d6bff;border-color:#0d6bff}.vzRemember input:checked+span:after{content:"✓";position:absolute;left:4px;top:-1px;color:#fff;font-size:15px;font-weight:900}.vzProtected{color:#6f829f;font-size:12px}.vzLoginButton{width:100%;height:62px;border:0;border-radius:11px;padding:0 22px;display:flex;align-items:center;justify-content:center;position:relative;color:#fff;background:linear-gradient(90deg,#084dff 0%,#0b9fdc 55%,#69d62c 100%);font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;box-shadow:0 14px 34px rgba(0,100,255,.24);transition:.18s}.vzLoginButton b{position:absolute;right:22px;font-size:29px;font-weight:300}.vzLoginButton:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 17px 40px rgba(0,118,255,.34)}.vzLoginButton:active{transform:translateY(0)}.vzEncrypted{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:32px;color:#94a2b8;font-size:13px}.vzEncrypted i{width:13px;height:13px;border:2px solid #7c8ba4;border-radius:2px;position:relative}.vzEncrypted i:before{content:"";position:absolute;left:2px;top:-8px;width:5px;height:7px;border:2px solid #7c8ba4;border-bottom:0;border-radius:5px 5px 0 0}.vzLoginError{margin:0 0 18px;padding:12px 14px;border:1px solid rgba(255,91,91,.44);border-radius:10px;background:rgba(172,24,24,.18);color:#ffb7b7;font-weight:800;text-align:center}.vzLoginFooter{position:absolute;z-index:8;left:0;right:0;bottom:0;padding:24px;text-align:center;color:#7f8da4;font-size:12px;border-top:1px solid rgba(108,143,196,.15);background:rgba(1,7,18,.66);backdrop-filter:blur(8px)}
@media(max-width:1180px){.vzLoginShell{grid-template-columns:1fr 520px}.vzBrandContent{width:88%}.vzBrandStatement h1{font-size:42px}.vzPillars{grid-template-columns:repeat(2,1fr);width:430px}.vzPillars>div:nth-child(2){border-right:0}.vzPillars>div:nth-child(-n+2){border-bottom:1px solid rgba(130,163,209,.26)}}
@media(max-width:900px){.vzLoginShell{display:block}.vzLoginBrand{min-height:auto;border-right:0;border-bottom:1px solid rgba(67,149,255,.18)}.vzBrandContent{padding:36px 0 52px;text-align:center}.vzBrandLogo{width:min(560px,100%);margin:auto}.vzBrandStatement{margin-top:28px}.vzBrandStatement p br{display:none}.vzPillars{margin:28px auto 0}.vzWorld{display:none}.vzLoginAccess{padding:46px 20px 100px}.vzLoginCard{padding:38px 28px 32px}}
@media(max-width:540px){.vzBrandContent{width:calc(100% - 34px);padding-top:24px}.vzBrandStatement h1{font-size:31px}.vzBrandStatement p{font-size:16px}.vzPillars{width:100%;grid-template-columns:repeat(2,1fr)}.vzPillars>div{min-height:88px}.vzLoginAccess{padding-left:12px;padding-right:12px}.vzLoginCard{padding:32px 20px 28px;border-radius:19px}.vzLoginCard h2{font-size:31px}.vzLoginIntro{font-size:15px}.vzField input{height:56px}.vzLoginOptions{align-items:flex-start;flex-direction:column}.vzLoginButton{height:58px}.vzLoginFooter{font-size:10px;padding:17px 10px}}


/* VizerON V1.6 - refinamento final de marca e login */
.vzBrandLogo{width:min(760px,100%);background:transparent!important;object-fit:contain}
.vzBrandTagline{margin-top:5.2vh;padding:27px 10px 25px;border-top:1px solid rgba(21,151,255,.55);position:relative;text-align:center;font-size:clamp(17px,1.65vw,27px);font-weight:500;line-height:1.65;letter-spacing:.28em;text-transform:uppercase;color:#f4f7fb;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.vzBrandTagline:before{content:"";position:absolute;left:8%;right:8%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#168fff 32%,#dffaff 49%,#6be735 68%,transparent);box-shadow:0 0 12px rgba(24,160,255,.55)}
.vzBrandTagline span{display:inline-block;margin-right:.16em}
.vzBrandTagline .blue{color:#1db8ff}.vzBrandTagline .green{color:#78ed39}
.vzPillars{margin-top:26px}
.vzLauncherBrand img,.vizeronHeaderBrand img{background:transparent!important;object-fit:contain}
.vzLauncherBrand img{content:url('../img/vizeron-logo-pro.svg')}
.vizeronHeaderBrand img{content:url('../img/vizeron-logo-pro.svg')}
@media(max-width:900px){.vzBrandTagline{margin-top:25px;font-size:16px;letter-spacing:.18em;padding-left:0;padding-right:0}.vzBrandTagline span{margin-right:.08em}}
@media(max-width:540px){.vzBrandTagline{font-size:13px;line-height:1.8;letter-spacing:.12em}.vzBrandLogo{width:100%}}

/* =========================================================
   VizerON V2.1 — Login Broadcast Studio / refinamento visual
   Somente apresentação. Lógica, autenticação e rotas intactas.
========================================================= */
.vzLoginBody{background:#010714}
.vzLoginShell{grid-template-columns:minmax(0,1.38fr) minmax(440px,.62fr);background:radial-gradient(circle at 29% 28%,rgba(0,113,255,.11),transparent 33%),linear-gradient(110deg,#020817 0%,#031126 60%,#010613 100%)}
.vzLoginBrand{background:radial-gradient(circle at 36% 24%,rgba(0,124,255,.08),transparent 30%),linear-gradient(145deg,rgba(3,11,27,.12),rgba(1,7,19,.96))}
.vzBrandContent{width:min(820px,84%);padding:7vh 0 31vh}
.vzBrandLogo{width:min(710px,100%);filter:drop-shadow(0 14px 34px rgba(0,102,255,.18))}
.vzBrandTagline{position:relative;margin-top:4.6vh;padding-top:34px;text-align:center;display:flex;align-items:center;justify-content:center;gap:.48em;flex-wrap:wrap;color:#fff;font-size:clamp(17px,1.38vw,24px);line-height:1.65;text-transform:uppercase;letter-spacing:.28em;font-weight:500;text-shadow:0 2px 18px rgba(0,0,0,.65)}
.vzBrandTagline:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent 0%,#168fff 22%,#25cfff 49%,#71e638 67%,transparent 100%);box-shadow:0 0 10px rgba(25,157,255,.65)}
.vzBrandTagline .blue{color:#21bfff}.vzBrandTagline .green{color:#79eb3c}
.vzPillars{width:min(670px,100%);margin:30px auto 0}
.vzPillars>div{min-height:96px}
.vzPillars i{width:39px;height:39px}
.vzPillars b{font-size:12px}
.vzGridDots{opacity:.24}

/* Cena broadcast vetorial/CSS — limpa e sem imagem raster de fundo */
.vzBroadcastScene{position:absolute;z-index:1;left:0;right:0;bottom:0;height:34%;overflow:hidden;background:linear-gradient(180deg,transparent 0%,rgba(2,12,29,.38) 12%,rgba(1,8,21,.98) 100%);border-top:1px solid rgba(33,135,229,.12)}
.vzBroadcastScene:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,95,255,.04),transparent 36%,rgba(0,185,255,.035));pointer-events:none}
.vzStudioGlow{position:absolute;left:15%;right:8%;bottom:-38%;height:105%;border-radius:50%;background:radial-gradient(ellipse at 50% 0%,rgba(0,125,255,.2),rgba(0,58,130,.09) 43%,transparent 70%);filter:blur(2px)}
.vzMonitorWall{position:absolute;left:8%;bottom:21%;width:31%;height:48%;display:grid;grid-template-columns:repeat(2,1fr);gap:7px;transform:perspective(700px) rotateY(7deg);filter:drop-shadow(0 18px 24px rgba(0,0,0,.6))}
.vzMonitor{position:relative;border:1px solid rgba(47,143,255,.36);border-radius:4px;background:linear-gradient(145deg,#071a35,#020a18);box-shadow:inset 0 0 18px rgba(0,78,177,.18)}
.vzMonitor:before{content:"";position:absolute;inset:5px;background:linear-gradient(135deg,rgba(0,126,255,.20),rgba(0,209,255,.03) 55%,rgba(108,238,54,.08));border:1px solid rgba(70,151,230,.18)}
.vzMonitor i{position:absolute;left:18%;right:18%;top:28%;height:35%;border-radius:50% 50% 44% 44%;background:linear-gradient(180deg,#173a69,#07182d);box-shadow:0 -7px 20px rgba(18,132,255,.18)}
.vzMonitor.onair{display:flex;align-items:center;justify-content:center;background:#071224}.vzMonitor.onair:before{display:none}.vzMonitor.onair b{position:relative;color:#ff443f;font-size:clamp(11px,1vw,17px);letter-spacing:.08em;text-shadow:0 0 13px rgba(255,39,39,.6)}
.vzStudioSet{position:absolute;left:39%;right:7%;bottom:18%;height:49%;border-radius:6px 6px 0 0;background:linear-gradient(180deg,rgba(4,24,50,.58),rgba(1,10,23,.94));border-top:1px solid rgba(29,139,255,.22);box-shadow:inset 0 18px 50px rgba(0,80,170,.06)}
.vzStudioSet:before,.vzStudioSet:after{content:"";position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#118fff,transparent);box-shadow:0 0 13px rgba(0,133,255,.7)}
.vzStudioSet:before{left:18%}.vzStudioSet:after{right:22%}
.vzStudioSet span{position:absolute;top:10%;bottom:12%;width:1px;background:rgba(38,111,195,.15)}
.vzStudioSet span:nth-child(1){left:36%}.vzStudioSet span:nth-child(2){left:53%}.vzStudioSet span:nth-child(3){left:70%}
.vzStudioCamera{position:absolute;right:8%;bottom:12%;width:15%;height:48%}
.vzStudioCamera i{position:absolute;left:10%;top:18%;width:62%;height:30%;border:1px solid rgba(50,147,255,.35);border-radius:7px;background:linear-gradient(145deg,#071b36,#020a17);box-shadow:0 10px 22px rgba(0,0,0,.45)}
.vzStudioCamera i:before{content:"";position:absolute;right:-19%;top:20%;width:22%;height:53%;background:#031126;border:1px solid rgba(48,131,230,.24);clip-path:polygon(0 10%,100% 0,100% 100%,0 90%)}
.vzStudioCamera b{position:absolute;left:38%;top:47%;width:5px;height:32%;background:linear-gradient(#0c3769,#031020);transform:rotate(5deg)}
.vzStudioCamera b:before,.vzStudioCamera b:after{content:"";position:absolute;bottom:-3%;width:52px;height:4px;background:#062149;transform-origin:left center}.vzStudioCamera b:before{transform:rotate(29deg)}.vzStudioCamera b:after{transform:rotate(151deg)}
.vzStudioCamera em{position:absolute;left:30%;top:12%;width:30%;height:7%;border-radius:8px;background:#0a2e5b;box-shadow:0 0 13px rgba(0,111,255,.25)}
.vzSwitcher{position:absolute;left:19%;bottom:-8%;width:47%;height:40%;transform:perspective(700px) rotateX(59deg) skewX(-5deg);transform-origin:center bottom;border:1px solid rgba(44,132,223,.28);border-radius:10px 10px 0 0;background:linear-gradient(180deg,#0a2545,#031126 60%,#020918);box-shadow:0 -8px 40px rgba(0,96,255,.1),0 18px 25px rgba(0,0,0,.55)}
.vzSwitcherScreen{position:absolute;left:8%;right:8%;top:9%;height:28%;display:flex;gap:5px}.vzSwitcherScreen span{flex:1;border:1px solid rgba(42,135,233,.31);background:linear-gradient(135deg,rgba(0,116,255,.18),rgba(3,17,38,.95))}.vzSwitcherScreen span:nth-child(2){background:linear-gradient(135deg,rgba(99,233,54,.12),rgba(3,17,38,.95))}
.vzSwitcherKeys{position:absolute;left:8%;right:8%;bottom:12%;display:grid;grid-template-columns:repeat(14,1fr);gap:5px}.vzSwitcherKeys i{height:10px;border-radius:2px;background:#0c5bc6;box-shadow:0 0 6px rgba(0,108,255,.42)}.vzSwitcherKeys i:nth-child(4n){background:#20b9e9}.vzSwitcherKeys i:nth-child(7n){background:#6edb37}.vzSwitcherKeys i:nth-child(9n){background:#9125dc}

.vzLoginAccess{padding:42px 5.2vw 88px}
.vzLoginCard{width:min(520px,100%);padding:48px 42px 37px}
.vzSecureMark{width:54px;height:54px;margin:0 auto 16px;position:relative;border:2px solid #0aa8ff;border-radius:18px 18px 22px 22px;clip-path:polygon(50% 0,100% 18%,100% 70%,50% 100%,0 70%,0 18%);box-shadow:0 0 22px rgba(0,142,255,.18)}
.vzSecureMark:before{content:"";position:absolute;left:50%;top:48%;width:13px;height:11px;transform:translate(-50%,-50%);border:2px solid #18c5ff;border-radius:2px}
.vzSecureMark:after{content:"";position:absolute;left:50%;top:31%;width:7px;height:8px;transform:translateX(-50%);border:2px solid #18c5ff;border-bottom:0;border-radius:7px 7px 0 0}
.vzLoginCard h2{font-size:clamp(31px,2.25vw,43px);margin-top:17px}
.vzLoginIntro{font-size:16px}

@media(max-width:1180px){
 .vzLoginShell{grid-template-columns:1fr 500px}
 .vzBrandContent{width:89%;padding-bottom:34vh}
 .vzBrandTagline{font-size:16px;letter-spacing:.20em}
 .vzBroadcastScene{height:31%}
}
@media(max-width:900px){
 .vzLoginShell{display:block}
 .vzLoginBrand{min-height:720px}
 .vzBrandContent{padding:54px 0 285px}
 .vzBroadcastScene{height:260px}
 .vzLoginAccess{padding:54px 22px 100px}
}
@media(max-width:620px){
 .vzLoginBrand{min-height:650px}
 .vzBrandContent{width:91%;padding-top:38px;padding-bottom:250px}
 .vzBrandTagline{font-size:13px;letter-spacing:.13em;gap:.34em;padding-top:24px}
 .vzPillars{grid-template-columns:repeat(2,1fr);margin-top:22px}
 .vzPillars>div{min-height:76px}
 .vzBroadcastScene{height:220px}
 .vzMonitorWall{left:3%;width:38%}
 .vzSwitcher{left:12%;width:58%}
 .vzLoginCard{padding:38px 22px 30px;border-radius:20px}
 .vzSecureMark{width:46px;height:46px}
}


/* =========================================================
   VizerON V2.2 — Correção da cena broadcast no rodapé
========================================================= */
.vzLoginBrand{display:flex;flex-direction:column}
.vzBrandContent{
    position:relative;
    z-index:3;
    flex:0 0 auto;
    padding-bottom:clamp(245px,31vh,355px);
}
.vzBroadcastScene{
    position:absolute;
    z-index:1;
    left:0;
    right:0;
    bottom:0;
    height:clamp(245px,31vh,350px);
    overflow:hidden;
    border-top:1px solid rgba(32,142,245,.16);
    background:
        linear-gradient(180deg,rgba(1,8,21,1) 0%,rgba(1,8,21,.32) 25%,rgba(1,8,21,.04) 60%,rgba(1,8,21,.18) 100%),
        url("../img/vizeron-broadcast-studio.webp") center 58% / cover no-repeat;
    box-shadow:inset 0 38px 48px rgba(1,8,21,.92);
}
.vzBroadcastScene::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(1,8,21,.34),transparent 25%,transparent 75%,rgba(1,8,21,.46)),
        linear-gradient(180deg,rgba(1,8,21,.72),transparent 40%);
    pointer-events:none;
}
.vzBroadcastSceneShade{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 52%,rgba(1,7,18,.38) 100%);
}
.vzStudioGlow,.vzMonitorWall,.vzStudioSet,.vzStudioCamera,.vzSwitcher{display:none!important}
.vzLoginFooter{z-index:10}
@media(max-width:1180px){
    .vzBrandContent{padding-bottom:300px}
    .vzBroadcastScene{height:285px}
}
@media(max-width:900px){
    .vzLoginBrand{min-height:760px}
    .vzBrandContent{padding-bottom:280px}
    .vzBroadcastScene{height:260px}
}
@media(max-width:620px){
    .vzLoginBrand{min-height:690px}
    .vzBrandContent{padding-bottom:235px}
    .vzBroadcastScene{height:220px;background-position:42% 55%}
}


/* VizerON V3.6 — proteção de contraste do menu administrativo */
.adminDropdownPanel.adminAccordionMenu .adminMenuSectionItems a{
  color:#c9d9e8;
}
.adminDropdownPanel.adminAccordionMenu .adminMenuSectionItems a:hover,
.adminDropdownPanel.adminAccordionMenu .adminMenuSectionItems a.active{
  color:#fff;
}
.adminDropdownPanel.adminAccordionMenu .adminMenuSectionItems a span{
  color:var(--menu-accent);
}
