: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-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-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-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-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-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}.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.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 .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.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}
