*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:       #070B1A;
  --navy2:      #0D1228;
  --navy3:      #111830;
  --blue:       #2B4FFF;
  --blue-b:     #4169FF;
  --blue-glow:  rgba(43,79,255,0.3);
  --blue-dim:   rgba(43,79,255,0.13);
  --cyan:       #00D4FF;
  --cyan-dim:   rgba(0,212,255,0.15);
  --green:      #00FF88;
  --white:      #FFFFFF;
  --w70:        rgba(255,255,255,0.7);
  --w40:        rgba(255,255,255,0.4);
  --w15:        rgba(255,255,255,0.15);
  --w08:        rgba(255,255,255,0.08);
  --w04:        rgba(255,255,255,0.04);
}

html, body { width:100%; height:100%; overflow:hidden; background:var(--navy); font-family:'Barlow',sans-serif; color:var(--white); user-select:none; }

/* ══════════════════════════════ BG LAYER ══════════════════════════════ */
#bg-layer { position:fixed; inset:0; z-index:0; }
#bg-video  { width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.5s ease; }
#bg-video.loaded { opacity:1; }
.bg-overlay {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 55% at 50% 105%, rgba(7,11,26,.9) 0%, transparent 100%),
    radial-gradient(ellipse 35% 80% at 0%   50%, rgba(7,11,26,.75) 0%, transparent 70%),
    radial-gradient(ellipse 35% 80% at 100% 50%, rgba(7,11,26,.75) 0%, transparent 70%),
    linear-gradient(180deg, rgba(7,11,26,.6) 0%, rgba(7,11,26,.15) 38%, rgba(7,11,26,.8) 100%);
}

/* ══════════════════════════════ FX LAYERS ══════════════════════════════ */
.noise {
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  background-size:200px 200px; opacity:.028; mix-blend-mode:overlay;
}
.scanlines {
  position:fixed; inset:0; z-index:2; pointer-events:none;
  background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.025) 2px, rgba(0,0,0,.025) 4px);
}

/* ══════════════════════════════ LAYOUT ══════════════════════════════ */
#app {
  position:fixed; inset:0; z-index:10;
  display:grid;
  grid-template-rows: 96px minmax(0, 1fr) 160px;
  grid-template-columns: 1fr 410px;
  grid-template-areas:
    "header  header"
    "main    sidebar"
    "footer  footer";
  padding:28px 36px 0;
  gap:0;
}

/* ══════════════════════════════ HEADER ══════════════════════════════ */
header {
  grid-area:header;
  display:block;
  padding-bottom:12px;
  border-bottom:1px solid var(--w08);
  position:relative;
}
header::after {
  content:'';
  position:absolute; bottom:-1px; left:0;
  width:200px; height:1px;
  background:linear-gradient(90deg,var(--blue),transparent);
}

/* Logo */
.logo-area { display:flex; align-items:center; gap:14px; }
.logo-img   { height:44px; width:auto; object-fit:contain; display:block; filter:drop-shadow(0 0 10px rgba(43,79,255,.35)); }
.logo-tag   { font-size:10px; font-weight:400; letter-spacing:.2em; text-transform:uppercase; color:var(--w40); line-height:1; margin-top:3px; }

/* Clock */
.clock-area { text-align:center; }
#clock-time {
  font-family:'Barlow Condensed',sans-serif; font-size:54px; font-weight:300;
  letter-spacing:.04em; line-height:1; font-variant-numeric:tabular-nums;
}
#clock-time .sep { color:var(--blue); animation:blink 1s step-end infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.15} }
#clock-date { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--w40); margin-top:4px; }

/* Banner central */
.banner-area {
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  width:100%;
  height:100%;
  border:1px solid rgba(43,79,255,.42);
  border-radius:8px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    linear-gradient(135deg, rgba(43,79,255,.12), rgba(7,11,26,.52) 36%, rgba(0,212,255,.08)),
    rgba(7,11,26,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 34px rgba(43,79,255,.16);
}
.banner-area img {
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.banner-area img[hidden] {
  display:none;
}
.banner-placeholder {
  width:100%;
  height:100%;
  display:grid;
  gap:3px;
  place-content:center;
  text-align:center;
  color:var(--w40);
  text-transform:uppercase;
  border:1px dashed rgba(0,212,255,.22);
  background:rgba(0,0,0,.12);
}
.banner-placeholder span {
  color:var(--cyan);
  font-size:11px;
  font-weight:700;
  letter-spacing:.2em;
}
.banner-placeholder strong {
  color:var(--w70);
  font-size:18px;
  letter-spacing:.08em;
}

/* Weather */
.weather-area { display:flex; align-items:center; gap:12px; }
.weather-icon { font-size:40px; line-height:1; filter:drop-shadow(0 0 8px rgba(255,200,50,.3)); }
.weather-info { display:flex; flex-direction:column; gap:2px; }
.weather-temp { font-family:'Barlow Condensed',sans-serif; font-size:34px; font-weight:300; line-height:1; }
.weather-city { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--w40); }
.weather-desc { font-size:12px; color:var(--w70); font-weight:300; }

/* ══════════════════════════════ MAIN AREA ══════════════════════════════ */
main {
  grid-area:main;
  display:grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap:16px;
  padding:20px 32px 20px 0;
  overflow:hidden;
  min-height:0;
}

/* ─── VIDEO BOX ─── */
.video-box {
  position:relative;
  background:rgba(7,11,26,.85);
  border:1px solid var(--w08);
  border-radius:14px;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 40px rgba(0,0,0,.5), inset 0 1px 0 var(--w08);
  min-height:0;
}
.video-box::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--blue) 0%,var(--cyan) 50%,transparent 100%);
  opacity:.6;
}
.video-box video#vid-inline {
  width:100%; height:100%; object-fit:contain; display:block;
}
.video-box-empty {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px;
  pointer-events:none;
}
.video-box-empty .empty-icon {
  width:64px; height:64px; border-radius:50%;
  border:2px solid var(--w15);
  display:grid; place-items:center;
  opacity:.5;
}
.video-box-empty .empty-icon svg { opacity:.8; }
.video-box-empty .empty-label {
  font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--w40);
}
.video-box-empty .empty-hint {
  font-size:10px; color:var(--w15); letter-spacing:.1em;
}

/* Vídeo overlay controls — aparecem no hover */
.vid-overlay-ctrl {
  position:absolute; bottom:0; left:0; right:0;
  padding:12px 16px;
  background:linear-gradient(0deg,rgba(7,11,26,.9) 0%,transparent 100%);
  display:flex; align-items:center; gap:10px;
  opacity:0; transition:opacity .25s;
}
.video-box:hover .vid-overlay-ctrl { opacity:1; }
.vid-overlay-ctrl .vid-prog-wrap {
  flex:1; height:4px; background:var(--w15); border-radius:2px; cursor:pointer; overflow:hidden;
}
.vid-overlay-ctrl .vid-prog-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,var(--blue),var(--cyan));
  border-radius:2px; transition:width .4s linear;
}
.vid-ctrl-btn {
  background:none; border:none; cursor:pointer; color:var(--w70);
  padding:4px; border-radius:6px; display:grid; place-items:center;
  transition:color .2s,background .2s;
}
.vid-ctrl-btn:hover { color:var(--white); background:var(--w08); }
.vid-ctrl-btn.big {
  background:var(--blue); color:var(--white);
  width:32px; height:32px; border-radius:50%;
  box-shadow:0 0 14px var(--blue-glow);
}
.vid-ctrl-btn.big:hover { background:var(--blue-b); transform:scale(1.08); }
.vid-time { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--w40); min-width:70px; text-align:right; }
.vid-label-badge {
  position:absolute; top:12px; right:12px;
  background:rgba(7,11,26,.7); backdrop-filter:blur(8px);
  border:1px solid var(--w08); border-radius:6px;
  padding:4px 10px;
  font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--w40);
  opacity:0; transition:opacity .25s;
}
.video-box:hover .vid-label-badge { opacity:1; }
.vid-add-btn {
  position:absolute; top:12px; left:12px;
  background:rgba(43,79,255,.2); backdrop-filter:blur(8px);
  border:1px solid rgba(43,79,255,.3); border-radius:6px;
  padding:5px 12px; cursor:pointer;
  font-family:'Barlow',sans-serif; font-size:10px; letter-spacing:.1em; color:var(--blue-b);
  opacity:0; transition:all .2s;
}
.video-box:hover .vid-add-btn { opacity:1; }
.vid-add-btn:hover { background:rgba(43,79,255,.35); color:var(--white); }

/* ─── ATENDIMENTO CARD ─── */
.atendimento-card {
  background:rgba(7,11,26,.72);
  backdrop-filter:blur(28px);
  border:1px solid var(--w08);
  border-left:3px solid var(--blue);
  border-radius:12px;
  padding:18px 24px;
  position:relative; overflow:hidden;
  box-shadow:0 8px 40px rgba(0,0,0,.4), inset 0 1px 0 var(--w08);
  animation:fadeInUp .8s cubic-bezier(.22,1,.36,1) both;
}
.atendimento-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,var(--blue) 0%,transparent 60%);
  opacity:.5;
}
.atendimento-card::after {
  content:''; position:absolute; top:0; bottom:0; right:0; width:120px;
  background:linear-gradient(90deg,transparent,rgba(43,79,255,.04));
  pointer-events:none;
}
.atendimento-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.status-dot {
  width:8px; height:8px; border-radius:50%; background:var(--green);
  box-shadow:0 0 8px var(--green),0 0 16px rgba(0,255,136,.4);
  animation:pulse-dot 2s ease-in-out infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(1.35)} }
.atendimento-label { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--w40); font-weight:600; }
.atendimento-body { display:flex; align-items:center; gap:20px; }
.cliente-nome {
  font-family:'Barlow Condensed',sans-serif; font-size:34px; font-weight:600;
  letter-spacing:.02em; line-height:1.1; flex:1;
}
.placa-badge {
  background:var(--blue-dim); border:1px solid rgba(43,79,255,.4);
  border-radius:8px; padding:8px 16px;
  display:flex; flex-direction:column; align-items:center; gap:2px; min-width:120px;
}
.placa-label { font-size:8px; letter-spacing:.22em; text-transform:uppercase; color:var(--w40); }
.placa-value {
  font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:600;
  letter-spacing:.14em; color:var(--blue-b); line-height:1;
}
.servico-tipo {
  margin-top:12px; padding-top:12px; border-top:1px solid var(--w08);
  display:flex; align-items:center; gap:8px;
}
.servico-badge {
  background:var(--blue-dim); border:1px solid rgba(43,79,255,.3);
  border-radius:4px; padding:3px 10px;
  font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:var(--blue-b); font-weight:600;
}
.servico-desc { font-size:11px; color:var(--w40); font-weight:300; }
@keyframes fadeInUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.atendimento-card.updating { animation:clientChange .5s cubic-bezier(.22,1,.36,1); }
@keyframes clientChange {
  0%{opacity:1;transform:translateX(0)} 40%{opacity:0;transform:translateX(-20px)}
  60%{opacity:0;transform:translateX(20px)} 100%{opacity:1;transform:translateX(0)}
}

/* ══════════════════════════════ SIDEBAR ══════════════════════════════ */
.sidebar {
  grid-area:sidebar;
  display:flex; flex-direction:column; justify-content:center;
  padding:20px 0 20px 24px;
  gap:18px;
  min-height:0;
  overflow:hidden;
}

/* panel shared */
.panel {
  background:rgba(7,11,26,.65);
  backdrop-filter:blur(20px);
  border:1px solid var(--w08);
  border-radius:12px; padding:16px;
  box-shadow:0 4px 24px rgba(0,0,0,.3);
}
.panel-title {
  font-size:9px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--w40); font-weight:600; margin-bottom:12px;
  display:flex; align-items:center; gap:6px;
}
.panel-title::after { content:''; flex:1; height:1px; background:var(--w08); }

/* Forecast */
.forecast-row { display:flex; gap:6px; }
.forecast-item {
  flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:8px 2px; border-radius:8px; background:var(--w08);
  transition:background .25s;
}
.forecast-item:hover { background:var(--w15); }
.forecast-day  { font-size:8px; letter-spacing:.1em; text-transform:uppercase; color:var(--w40); }
.forecast-emoji{ font-size:18px; line-height:1; }
.forecast-temp { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:600; color:var(--white); }
.forecast-low  { font-size:9px; color:var(--w40); }

.weather-panel .forecast-row {
  display:block;
}
.weather-panel {
  padding:24px;
}
.today-weather {
  display:grid;
  gap:18px;
}
.today-weather-main {
  display:flex;
  align-items:center;
  gap:16px;
}
.today-weather-icon {
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--w08);
  font-size:38px;
}
.today-weather-kicker {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.today-weather-time {
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:6px;
  background:rgba(0,212,255,.14);
  border:1px solid rgba(0,212,255,.32);
  color:var(--cyan);
  font-family:'JetBrains Mono',monospace;
  font-size:18px;
  font-weight:800;
  letter-spacing:.05em;
  white-space:nowrap;
  text-shadow:0 0 14px rgba(0,212,255,.52);
}
.today-weather-city {
  color:var(--w70);
  font-size:12px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  white-space:nowrap;
}
.today-weather-desc {
  margin-top:8px;
  color:var(--w70);
  font-size:22px;
  font-weight:700;
}
.today-weather-temp {
  font-family:'Barlow Condensed',sans-serif;
  font-size:86px;
  line-height:.85;
  font-weight:700;
  color:var(--white);
}
.today-weather-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.today-weather-grid div {
  display:grid;
  gap:5px;
  padding:12px 10px;
  border-radius:8px;
  background:var(--w08);
}
.today-weather-grid span {
  color:var(--w40);
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.today-weather-grid strong {
  color:var(--white);
  font-size:26px;
}

/* Music Player */
.player-now-playing { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.album-art {
  width:40px; height:40px; border-radius:8px;
  background:var(--blue-dim); border:1px solid rgba(43,79,255,.3);
  overflow:hidden; position:relative; flex-shrink:0;
  display:grid; place-items:center;
}
.vinyl-ring {
  width:32px; height:32px; border-radius:50%;
  border:3px solid var(--blue); border-top-color:transparent;
  animation:spin-vinyl 3s linear infinite; opacity:.6;
}
.vinyl-center { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--blue); }
@keyframes spin-vinyl { to{transform:rotate(360deg)} }
.paused .vinyl-ring { animation-play-state:paused; }
.track-info { flex:1; min-width:0; }
.track-name  { font-size:12px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.2; }
.track-artist{ font-size:10px; color:var(--w40); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:300; }
.progress-bar {
  width:100%; height:3px; background:var(--w08); border-radius:2px;
  margin-bottom:10px; overflow:hidden; cursor:pointer;
}
.progress-fill { height:100%; background:linear-gradient(90deg,var(--blue),var(--cyan)); border-radius:2px; width:0%; transition:width .5s linear; }
.player-controls { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.ctrl-btn {
  background:none; border:none; cursor:pointer; color:var(--w40);
  padding:5px; border-radius:6px;
  transition:color .2s,background .2s; display:grid; place-items:center;
}
.ctrl-btn:hover { color:var(--white); background:var(--w08); }
.ctrl-btn.play-btn {
  background:var(--blue); color:var(--white);
  width:34px; height:34px; border-radius:50%;
  box-shadow:0 0 16px var(--blue-glow);
  transition:transform .2s,box-shadow .2s,background .2s;
}
.ctrl-btn.play-btn:hover { transform:scale(1.08); box-shadow:0 0 24px rgba(43,79,255,.55); background:var(--blue-b); }
.volume-area { display:flex; align-items:center; gap:5px; flex:1; justify-content:flex-end; }
.vol-icon { font-size:12px; color:var(--w40); }
input[type=range] { -webkit-appearance:none; width:56px; height:3px; background:var(--w15); border-radius:2px; outline:none; cursor:pointer; }
input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:10px; height:10px; border-radius:50%; background:var(--blue-b); cursor:pointer; box-shadow:0 0 6px var(--blue-glow); }
.time-display { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--w40); min-width:34px; text-align:right; }

/* ══════════════════════════════ FOOTER ══════════════════════════════ */
footer {
  grid-area:footer;
  position:relative;
  display:grid;
  grid-template-rows:auto 1fr;
  padding:0;
  overflow:hidden;
}

/* Linha luminosa no topo do footer */
.footer-glow-line {
  width:100%; height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    var(--blue) 20%,
    var(--cyan) 50%,
    var(--blue) 80%,
    transparent 100%);
  box-shadow:0 0 12px var(--blue),0 0 30px rgba(43,79,255,.3);
  animation:glow-sweep 4s ease-in-out infinite;
  position:relative;
}
@keyframes glow-sweep {
  0%,100%{ filter:brightness(1); }
  50%{ filter:brightness(1.6) drop-shadow(0 0 6px var(--cyan)); }
}

/* Inner footer */
.footer-inner {
  display:grid;
  grid-template-columns:280px 1fr 180px;
  align-items:stretch;
  background:linear-gradient(180deg, rgba(13,18,40,.97) 0%, rgba(7,11,26,1) 100%);
  position:relative;
  overflow:hidden;
}
/* Animated radial glow behind footer */
.footer-inner::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 50% 120% at 15% 50%, rgba(43,79,255,.08) 0%,transparent 70%),
    radial-gradient(ellipse 40% 120% at 85% 50%, rgba(0,212,255,.06) 0%,transparent 70%);
  animation:footer-pulse 6s ease-in-out infinite;
}
@keyframes footer-pulse {
  0%,100%{opacity:1} 50%{opacity:.5}
}

/* Left contact block */
.footer-contact-block {
  display:flex; flex-direction:column; justify-content:center; gap:10px;
  padding:16px 24px;
  border-right:1px solid var(--w08);
  position:relative;
}
.footer-logo-img {
  height:32px; width:auto; object-fit:contain;
  filter:brightness(.9) drop-shadow(0 0 8px rgba(43,79,255,.3));
  margin-bottom:4px;
}
.footer-contact-row {
  display:flex; align-items:center; gap:7px;
  font-size:12px; font-weight:400; color:var(--w70);
  line-height:1;
}
.footer-contact-row svg { opacity:.5; flex-shrink:0; }
.footer-contact-row strong { color:var(--white); font-weight:600; }

/* Center ticker block */
.footer-ticker-block {
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden; position:relative;
}

/* Ticker top — marquee de notícias */
.ticker-top {
  padding:10px 0 8px;
  border-bottom:1px solid var(--w04);
  overflow:hidden;
  position:relative;
}
.ticker-top::before,
.ticker-top::after {
  content:''; position:absolute; top:0; bottom:0; width:40px; z-index:2; pointer-events:none;
}
.ticker-top::before { left:0;  background:linear-gradient(90deg,rgba(13,18,40,1),transparent); }
.ticker-top::after  { right:0; background:linear-gradient(270deg,rgba(13,18,40,1),transparent); }

.ticker-strip {
  display:flex; white-space:nowrap;
  animation:ticker-go 40s linear infinite;
}
.ticker-item {
  display:inline-flex; align-items:center; gap:10px;
  padding-right:56px;
  font-size:12px; font-weight:400; color:var(--w70); letter-spacing:.04em;
}
.ticker-item .dot {
  font-size:7px; color:var(--cyan);
  filter:drop-shadow(0 0 4px var(--cyan));
  animation:dot-blink 2.5s ease-in-out infinite;
}
@keyframes dot-blink { 0%,100%{opacity:.7} 50%{opacity:1} }
@keyframes ticker-go { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* Ticker bottom — destaques com neon */
.ticker-highlights {
  padding:8px 0 10px;
  overflow:hidden; position:relative;
}
.ticker-highlights::before,
.ticker-highlights::after {
  content:''; position:absolute; top:0; bottom:0; width:40px; z-index:2; pointer-events:none;
}
.ticker-highlights::before { left:0;  background:linear-gradient(90deg,rgba(13,18,40,1),transparent); }
.ticker-highlights::after  { right:0; background:linear-gradient(270deg,rgba(13,18,40,1),transparent); }

.highlights-strip {
  display:flex; white-space:nowrap;
  animation:ticker-go 28s linear infinite reverse;
}
.highlight-item {
  display:inline-flex; align-items:center; gap:8px;
  padding-right:48px;
  font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
}
.highlight-item .tag {
  background:var(--blue-dim); border:1px solid rgba(43,79,255,.35);
  border-radius:4px; padding:2px 8px;
  font-size:9px; color:var(--blue-b);
  letter-spacing:.12em;
  text-shadow:0 0 8px rgba(65,105,255,.6);
}
.highlight-item .val {
  color:var(--white);
  text-shadow:0 0 12px rgba(255,255,255,.15);
}

/* Right block — QR / site */
.footer-right-block {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:12px 20px;
  border-left:1px solid var(--w08);
  position:relative;
}
.footer-site {
  font-family:'JetBrains Mono',monospace; font-size:11px;
  letter-spacing:.08em; color:var(--cyan);
  text-shadow:0 0 12px rgba(0,212,255,.5);
}
.footer-tagline {
  font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--w40);
}
.footer-badge {
  background:linear-gradient(135deg,var(--blue) 0%,#1a3aff 100%);
  border-radius:6px; padding:4px 12px;
  font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white);
  box-shadow:0 0 14px var(--blue-glow),0 0 28px rgba(43,79,255,.2);
  animation:badge-pulse 3s ease-in-out infinite;
}
@keyframes badge-pulse {
  0%,100%{ box-shadow:0 0 14px var(--blue-glow),0 0 28px rgba(43,79,255,.2); }
  50%    { box-shadow:0 0 20px var(--blue-glow),0 0 45px rgba(43,79,255,.35); }
}

/* ══════════════════════════════ QUEUE BUBBLE ══════════════════════════════ */
.queue-bubble {
  position:fixed; top:28px; right:44px;
  background:rgba(7,11,26,.65); backdrop-filter:blur(16px);
  border:1px solid var(--w08); border-radius:10px;
  padding:6px 14px;
  display:flex; align-items:center; gap:8px;
  font-size:9px; color:var(--w40); letter-spacing:.14em; text-transform:uppercase;
  z-index:20;
}
.queue-count { font-family:'JetBrains Mono',monospace; font-size:16px; font-weight:600; color:var(--white); }

/* ══════════════════════════════ VIDEO NAV ══════════════════════════════ */
.video-nav {
  position:fixed; bottom:180px; right:400px;
  display:flex; gap:6px; z-index:20;
  opacity:0; transition:opacity .25s;
}
body:hover .video-nav { opacity:1; }
.vid-btn {
  background:rgba(7,11,26,.8); backdrop-filter:blur(10px);
  border:1px solid var(--w08); color:var(--w40);
  border-radius:6px; padding:5px 11px; cursor:pointer;
  font-size:10px; font-family:'Barlow',sans-serif; letter-spacing:.08em;
  transition:all .2s;
}
.vid-btn:hover { color:var(--white); border-color:var(--blue); }

/* ══════════════════════════════ IDLE OVERLAY ══════════════════════════════ */
.idle-overlay {
  position:fixed; inset:0; background:rgba(7,11,26,.93); z-index:50;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px;
  opacity:0; pointer-events:none; transition:opacity .8s;
}
.idle-overlay.show { opacity:1; pointer-events:all; }
.idle-logo-img { height:56px; filter:drop-shadow(0 0 16px rgba(43,79,255,.5)); }
.idle-clock {
  font-family:'Barlow Condensed',sans-serif; font-size:120px; font-weight:200;
  letter-spacing:.02em; color:var(--white); opacity:.9;
  font-variant-numeric:tabular-nums; line-height:1;
}
.idle-sub { font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--w40); }

/* ══════════════════════════════ EDIT PANEL ══════════════════════════════ */
.edit-panel {
  position:fixed; bottom:32px; left:50%; transform:translateX(-50%);
  background:rgba(13,18,40,.96); backdrop-filter:blur(24px);
  border:1px solid var(--w15); border-radius:16px;
  padding:20px 28px; z-index:100; min-width:480px;
  box-shadow:0 20px 60px rgba(0,0,0,.6);
  display:none;
}
.edit-panel.show { display:block; }
.edit-title { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue-b); font-weight:600; margin-bottom:14px; }
.edit-form { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.edit-field { display:flex; flex-direction:column; gap:4px; }
.edit-field.full { grid-column:1/-1; }
.edit-field label { font-size:8px; letter-spacing:.16em; text-transform:uppercase; color:var(--w40); }
.edit-field input,.edit-field select {
  background:var(--w08); border:1px solid var(--w15); border-radius:6px;
  padding:7px 11px; color:var(--white); font-family:'Barlow',sans-serif; font-size:13px;
  outline:none; transition:border-color .2s;
}
.edit-field input:focus,.edit-field select:focus { border-color:var(--blue); }
.edit-field select option { background:var(--navy2); }
.edit-actions { display:flex; gap:8px; margin-top:14px; justify-content:flex-end; }
.btn-cancel {
  background:transparent; border:1px solid var(--w15); color:var(--w40);
  border-radius:6px; padding:7px 15px; cursor:pointer;
  font-family:'Barlow',sans-serif; font-size:11px; letter-spacing:.08em; transition:all .2s;
}
.btn-cancel:hover { color:var(--white); border-color:var(--w40); }
.btn-apply {
  background:var(--blue); border:none; color:var(--white);
  border-radius:6px; padding:7px 18px; cursor:pointer;
  font-family:'Barlow',sans-serif; font-size:11px; font-weight:600; letter-spacing:.08em;
  box-shadow:0 0 14px var(--blue-glow); transition:all .2s;
}
.btn-apply:hover { background:var(--blue-b); transform:translateY(-1px); }

.hint-text {
  position:fixed; bottom:14px; right:14px;
  font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--w40);
  opacity:0; transition:opacity .3s; z-index:30;
}
body:hover .hint-text { opacity:.35; }

/* Integra??o Protracker TV */
#tv-layout[hidden] {
  display: none !important;
}

#welcome-screen {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-content: center;
  gap: 28px;
  padding: 72px;
  text-align: center;
  background:
    radial-gradient(ellipse 80% 80% at 50% 50%, rgba(43,79,255,.18), transparent 70%),
    linear-gradient(180deg, rgba(7,11,26,.98), rgba(7,11,26,1));
  color: var(--white);
}

#welcome-screen[hidden] {
  display: none;
}

#welcome-screen p {
  margin: 0;
  color: var(--cyan);
  font-size: 42px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

#welcome-screen h1 {
  margin: 0;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 128px;
  font-weight: 700;
  line-height: 1;
  text-shadow: 0 0 34px rgba(43,79,255,.45);
}

#welcome-screen h2 {
  max-width: 1180px;
  margin: 0 auto;
  color: var(--w70);
  font-size: 42px;
  font-weight: 300;
  line-height: 1.22;
}

#enable-sound {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1100;
  border: 1px solid rgba(43,79,255,.45);
  border-radius: 8px;
  padding: 10px 14px;
  background: rgba(7,11,26,.82);
  color: var(--white);
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 0 20px rgba(43,79,255,.22);
}

#enable-sound[hidden] {
  display: none;
}

/* Rodape de noticias: legivel, sem repeticao de manchetes */
.footer-ticker-block {
  justify-content: stretch;
  padding: 12px 18px;
  gap: 8px;
}

.footer-ticker-block::before {
  content: 'Principais manchetes - Google Noticias';
  position: absolute;
  top: 8px;
  left: 18px;
  z-index: 2;
  color: var(--cyan);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.ticker-top,
.ticker-highlights {
  padding: 0;
  overflow: visible;
  border: 0;
}

.ticker-top {
  flex: 1.1;
  padding-top: 18px;
}

.ticker-highlights {
  flex: .9;
}

.ticker-top::before,
.ticker-top::after,
.ticker-highlights::before,
.ticker-highlights::after {
  display: none;
}

.ticker-strip,
.highlights-strip {
  display: grid;
  width: 100%;
  height: 100%;
  gap: 8px;
  white-space: normal;
  animation: none;
}

.ticker-strip {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.highlights-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-card {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  border: 1px solid rgba(43, 79, 255, .28);
  border-radius: 8px;
  background: rgba(7, 11, 26, .52);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.news-card span {
  color: var(--cyan);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.news-card strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--white);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
  text-shadow: 0 0 12px rgba(255,255,255,.12);
}

.news-card-main {
  padding: 10px 12px;
}

.news-card-main strong {
  -webkit-line-clamp: 2;
  font-size: 16px;
}

.news-card-small {
  padding: 8px 10px;
}

.news-card-small strong {
  -webkit-line-clamp: 2;
  font-size: 13px;
}

/* Rodape: uma noticia por vez, ocupando toda a area */
footer {
  min-height: 160px;
}

.footer-inner {
  grid-template-columns: 1fr;
  height: 100%;
}

.footer-inner::before {
  display: none;
}

.footer-contact-block,
.footer-right-block {
  display: none !important;
}

.footer-ticker-block {
  height: 100%;
  padding: 0;
  gap: 0;
}

.footer-ticker-block::before,
.ticker-top::before,
.ticker-top::after,
.ticker-highlights::before,
.ticker-highlights::after {
  display: none !important;
}

.ticker-top {
  height: 100%;
  padding: 0;
  border: 0;
  overflow: hidden;
}

.ticker-highlights {
  display: none !important;
}

.ticker-strip {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  height: 100%;
  white-space: normal;
  animation: none;
}

.news-single-card {
  min-width: 0;
  width: 100%;
  height: 100%;
  display: grid;
  align-content: center;
  gap: 8px;
  padding: 16px 46px;
  border: 1px solid rgba(0, 212, 255, .45);
  border-left: 8px solid var(--cyan);
  border-radius: 0;
  background:
    linear-gradient(90deg, rgba(0,212,255,.16), rgba(43,79,255,.14) 36%, rgba(7,11,26,.9)),
    rgba(7,11,26,.92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 38px rgba(0,212,255,.16);
  animation: news-fade .45s ease both;
}

.news-single-card span {
  color: var(--cyan);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-shadow: 0 0 12px rgba(0,212,255,.45);
}

.news-single-card strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  color: var(--white);
  font-size: clamp(28px, 2vw, 38px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: 0;
  text-shadow: 0 0 14px rgba(255,255,255,.14);
}

@keyframes news-fade {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-height: 760px) {
  .sidebar {
    justify-content: flex-start;
    gap: 12px;
    padding-top: 0;
    padding-bottom: 10px;
  }

  .weather-panel {
    padding: 14px;
  }

  .panel-title {
    margin-bottom: 8px;
  }

  .today-weather {
    gap: 10px;
  }

  .today-weather-main {
    gap: 12px;
  }

  .today-weather-icon {
    width: 52px;
    height: 52px;
    font-size: 30px;
  }

  .today-weather-time {
    font-size: 16px;
    padding: 4px 8px;
  }

  .today-weather-desc {
    margin-top: 5px;
    font-size: 18px;
  }

  .today-weather-temp {
    font-size: 66px;
  }

  .today-weather-grid {
    gap: 8px;
  }

  .today-weather-grid div {
    padding: 8px;
  }

  .today-weather-grid strong {
    font-size: 22px;
  }

  #music-player {
    padding: 12px;
  }
}

/* ==========================================================
   PROTRACKER TV - AUMENTAR BLOCO DO CLIENTE
   Só aumenta o card de atendimento
   ========================================================== */

.atendimento-card {
  width: 720px !important;
  max-width: 720px !important;
  min-width: 720px !important;

  height: 140px !important;
  min-height: 140px !important;
  max-height: 140px !important;

  padding: 22px 28px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

.atendimento-card h2,
.atendimento-card h3,
.atendimento-card .cliente-nome {
  font-size: 40px !important;
  line-height: 1.05 !important;
  color: #ffffff !important;
  text-shadow: none !important;
  filter: none !important;
}

.atendimento-label {
  font-size: 12px !important;
  letter-spacing: .18em !important;
}

.servico-tipo {
  margin-top: 14px !important;
  padding-top: 12px !important;
}

.servico-desc {
  font-size: 12px !important;
}

.placa-badge {
  right: 28px !important;
  top: 42px !important;
  transform: scale(1) !important;
  transform-origin: right center !important;
}

/* ajuste para tela 1366 / TV */
@media (max-width: 1400px) {
  .atendimento-card {
    width: 620px !important;
    max-width: 620px !important;
    min-width: 620px !important;

    height: 128px !important;
    min-height: 128px !important;
    max-height: 128px !important;

    padding: 20px 24px !important;
  }

  .atendimento-card h2,
  .atendimento-card h3,
  .atendimento-card .cliente-nome {
    font-size: 36px !important;
  }

  .placa-badge {
    right: 24px !important;
    top: 38px !important;
    transform: scale(.95) !important;
  }
}


/* ==========================================================
   PROTRACKER TV - CLIENTE ALINHADO COM A BORDA DO VÍDEO
   Só ajusta o bloco de atendimento
   ========================================================== */

.atendimento-card {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  height: 140px !important;
  min-height: 140px !important;
  max-height: 140px !important;
  flex: 0 0 140px !important;

  padding: 22px 30px !important;
  border-radius: 20px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.atendimento-card h2,
.atendimento-card h3,
.atendimento-card .cliente-nome {
  font-size: 42px !important;
  line-height: 1.05 !important;
  color: #ffffff !important;
  text-shadow: none !important;
  filter: none !important;
}

.atendimento-label {
  font-size: 12px !important;
  letter-spacing: .18em !important;
}

.servico-tipo {
  margin-top: 16px !important;
  padding-top: 12px !important;
}

.servico-desc {
  font-size: 12px !important;
}

.placa-badge {
  position: absolute !important;
  right: 30px !important;
  top: 42px !important;
  transform: scale(1) !important;
  transform-origin: right center !important;
}

@media (max-width: 1400px) {
  .atendimento-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    height: 128px !important;
    min-height: 128px !important;
    max-height: 128px !important;
    flex: 0 0 128px !important;

    padding: 20px 26px !important;
  }

  .atendimento-card h2,
  .atendimento-card h3,
  .atendimento-card .cliente-nome {
    font-size: 38px !important;
  }

  .placa-badge {
    right: 26px !important;
    top: 38px !important;
    transform: scale(.95) !important;
  }
}

