* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: #f4f6f8;
  color: #1f2933;
}

body.scanner-open { overflow: hidden; }

.topbar {
  background: #1f2937;
  color: white;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.topbar h1 { margin: 0; font-size: 24px; }
.topbar p { margin: 4px 0 0; opacity: 0.8; }
.topnav a { color: white; font-weight: bold; text-decoration: none; background: rgba(255,255,255,0.14); padding: 10px 12px; border-radius: 8px; }

.container { width: 100%; max-width: 820px; margin: 0 auto; padding: 16px; }

.card {
  background: white;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.card h2 { margin-top: 0; font-size: 20px; }
label { display: block; margin-bottom: 6px; font-weight: bold; }

select, input {
  width: 100%;
  font-size: 18px;
  padding: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  margin-bottom: 12px;
}

.btn {
  width: 100%;
  border: none;
  border-radius: 10px;
  padding: 14px;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  margin-top: 8px;
}
.btn:disabled { opacity: 0.55; cursor: not-allowed; }
.btn.primary { background: #2563eb; color: white; }
.btn.secondary { background: #475569; color: white; }
.btn.danger { background: #dc2626; color: white; }

.info { margin-top: 12px; padding: 12px; background: #e0f2fe; border-radius: 8px; }
.feedback { margin-top: 12px; padding: 14px; border-radius: 10px; font-size: 18px; font-weight: bold; }
.feedback.confirmed { background: #dcfce7; color: #166534; }
.feedback.duplicate { background: #e0f2fe; color: #075985; }
.feedback.not_expected { background: #fef3c7; color: #92400e; }
.feedback.invalid { background: #fee2e2; color: #991b1b; }

.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 16px; }
.stats div { background: #f1f5f9; border-radius: 10px; padding: 14px; text-align: center; }
.stats span { display: block; font-size: 28px; font-weight: bold; }
.stats small { display: block; margin-top: 4px; color: #64748b; }
.summary-line { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid #e5e7eb; }
.events, .missing { max-height: 360px; overflow-y: auto; }
.event-item, .missing-item { padding: 10px; border-bottom: 1px solid #e5e7eb; font-family: monospace; }
.event-status { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; margin-left: 6px; background: #e5e7eb; }
.hidden { display: none !important; }

.scanner-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.92);
  padding: 12px;
}

.scanner-panel {
  width: 100%;
  max-width: 980px;
  height: calc(100dvh - 24px);
  margin: 0 auto;
  background: #0f172a;
  color: white;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 12px 40px rgba(0,0,0,0.35);
}

.scanner-header {
  padding: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  background: #111827;
}
.scanner-header h2 { margin: 0; font-size: 19px; }
.scanner-header p { margin: 4px 0 0; color: #cbd5e1; }
.scanner-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}

.scanner-close,
.scanner-switch {
  border: 0;
  color: white;
  border-radius: 10px;
  padding: 12px 14px;
  font-weight: bold;
  font-size: 16px;
}

.scanner-close { background: #dc2626; }
.scanner-switch { background: #2563eb; }

.scanner-frame-wrap {
  position: relative;
  flex: 1;
  min-height: 0;
  background: black;
}

.scanner-viewport {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.scanner-viewport video,
.scanner-viewport canvas {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.scan-guide {
  pointer-events: none;
  position: absolute;
  left: 5%;
  right: 5%;
  top: 34%;
  height: 32%;
  border: 3px solid rgba(34, 197, 94, 0.95);
  border-radius: 14px;
  box-shadow: 0 0 0 9999px rgba(0,0,0,0.22);
}

.scan-line {
  position: absolute;
  left: 4%;
  right: 4%;
  top: 50%;
  height: 2px;
  background: rgba(34, 197, 94, 0.95);
  box-shadow: 0 0 12px rgba(34, 197, 94, 0.95);
}

.scanner-footer {
  padding: 12px 14px;
  background: #111827;
  color: #cbd5e1;
  line-height: 1.35;
}

.admin-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: white; }
th, td { padding: 10px; border-bottom: 1px solid #e5e7eb; text-align: left; vertical-align: top; }
th { background: #f8fafc; }
.badge { display: inline-block; padding: 4px 8px; border-radius: 999px; font-size: 12px; font-weight: bold; background: #e5e7eb; }
.badge.active, .badge.open { background: #dcfce7; color: #166534; }
.badge.archived, .badge.finished { background: #fee2e2; color: #991b1b; }
.action-btn { border: 0; border-radius: 8px; padding: 8px 10px; font-weight: bold; cursor: pointer; background: #2563eb; color: white; margin: 2px; }
.action-btn.secondary { background: #475569; }
.action-btn.danger { background: #dc2626; }

@media (max-width: 600px) {
  .topbar { align-items: flex-start; }
  .topbar h1 { font-size: 20px; }
  .container { padding: 10px; }
  .card { padding: 14px; }
  select, input, .btn { font-size: 17px; }
  .scanner-modal { padding: 0; }
  .scanner-panel { height: 100dvh; border-radius: 0; }
  .scanner-header { padding: 12px; }
  .scanner-header h2 { font-size: 17px; }
  .scanner-actions { gap: 6px; }
  .scanner-close, .scanner-switch { padding: 10px 10px; font-size: 14px; }
  .scan-guide { left: 4%; right: 4%; top: 36%; height: 28%; }
}

.scanner-camera-select {
  min-width: 160px;
  max-width: 260px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border-radius: 10px;
  padding: 10px 12px;
  font-weight: 700;
}

.scanner-camera-select option {
  color: #111827;
}

@media (max-width: 640px) {
  .scanner-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
  }

  .scanner-camera-select,
  .scanner-switch,
  .scanner-close {
    width: 100%;
    max-width: none;
  }
}

.button-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}

@media (max-width: 600px) {
  .button-row {
    grid-template-columns: 1fr;
  }
}
.auth-card { max-width: 460px; margin: 8vh auto; }
.auth-card input { margin-bottom: 14px; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin-bottom:16px; }

.muted { color:#64748b; line-height:1.4; margin:6px 0 12px; }
.local-list-details { margin-top:18px; padding-top:14px; border-top:1px solid #e5e7eb; }
.local-list-details summary { cursor:pointer; font-weight:700; margin-bottom:14px; }

.sector-toggle{min-width:90px}.danger-zone{border-left:4px solid #b91c1c}.table-actions{display:flex;gap:.35rem;flex-wrap:wrap}.status-pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:#e5e7eb}.status-pill.ok{background:#dcfce7}.status-pill.warn{background:#fee2e2}

/* Alpha 11.2: painel Admin recolhível */
.container.wide { max-width: 1280px; }
.topbar-action { width: auto; min-width: 96px; margin: 0; }
.admin-intro p { margin-bottom: 0; color: #64748b; }
.admin-section { padding: 0; overflow: hidden; }
.admin-section-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  user-select: none;
  transition: background 0.15s ease;
}
.admin-section-summary::-webkit-details-marker { display: none; }
.admin-section-summary:hover { background: #f8fafc; }
.admin-section-summary::after {
  content: "▾";
  margin-left: auto;
  font-size: 20px;
  color: #64748b;
  transition: transform 0.18s ease;
}
.admin-section[open] > .admin-section-summary::after { transform: rotate(180deg); }
.admin-section[open] > .admin-section-summary { border-bottom: 1px solid #e5e7eb; }
.admin-section-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #eef2ff;
  font-size: 21px;
  flex: 0 0 42px;
}
.admin-section-summary strong { display: block; font-size: 18px; }
.admin-section-summary small { display: block; margin-top: 4px; color: #64748b; font-weight: normal; }
.admin-section-body { padding: 18px; }
.admin-section-body > .section-header:first-child h2 { margin-bottom: 4px; }

@media (max-width: 600px) {
  .topbar-action { min-width: 74px; padding: 10px 12px; font-size: 15px; }
  .admin-section-summary { padding: 14px; gap: 10px; }
  .admin-section-icon { width: 36px; height: 36px; flex-basis: 36px; font-size: 18px; }
  .admin-section-summary strong { font-size: 16px; }
  .admin-section-summary small { font-size: 13px; }
  .admin-section-body { padding: 14px; }
}

.mac-autocomplete { position: relative; }
.mac-autocomplete input { margin-bottom: 4px; }
.mac-search-help { display: block; margin: 2px 0 10px; color: #64748b; }
.mac-suggestions {
  position: absolute;
  z-index: 50;
  left: 0;
  right: 0;
  top: calc(100% - 4px);
  max-height: 280px;
  overflow-y: auto;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}
.mac-suggestion {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #e5e7eb;
  background: #ffffff;
  color: #1f2933;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  cursor: pointer;
  font-family: monospace;
  font-size: 17px;
}
.mac-suggestion:last-child { border-bottom: 0; }
.mac-suggestion:hover,
.mac-suggestion:focus { background: #eff6ff; }
.mac-suggestion-status {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: bold;
  border-radius: 999px;
  padding: 4px 8px;
  white-space: nowrap;
  background: #dcfce7;
  color: #166534;
}
.mac-suggestion-status.confirmed { background: #e0f2fe; color: #075985; }

/* beta.2 dashboard BI */
.dashboard-container{max-width:1500px}.dashboard-topbar .topbar-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.dashboard-statusbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem;color:#526173}.status-dot{display:inline-flex;align-items:center;gap:.45rem}.status-dot::before{content:"";width:.65rem;height:.65rem;border-radius:50%;background:#f59e0b}.status-dot.online::before{background:#16a34a}.status-dot.offline::before{background:#dc2626}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.dashboard-kpi{background:#fff;border:1px solid #dfe6ef;border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.35rem}.dashboard-kpi span{color:#617085;font-size:.9rem}.dashboard-kpi strong{font-size:1.75rem;color:#172033}.dashboard-grid{display:grid;gap:1rem;margin-bottom:1rem}.dashboard-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-panel{margin:0}.live-conference-list{display:grid;gap:.85rem}.live-conference{border:1px solid #e0e6ef;border-radius:12px;padding:.9rem}.live-conference-head,.bi-bar-label{display:flex;justify-content:space-between;gap:1rem;align-items:center}.live-conference-meta{display:flex;gap:.8rem 1.2rem;flex-wrap:wrap;color:#64748b;font-size:.85rem;margin-top:.55rem}.progress-track,.bi-bar-track{height:10px;background:#e9eef5;border-radius:99px;overflow:hidden;margin-top:.45rem}.progress-track span,.bi-bar-track span{display:block;height:100%;background:#2563eb;border-radius:inherit;transition:width .35s ease}.coverage-stack{display:flex;height:28px;border-radius:99px;overflow:hidden;background:#e9eef5;margin:1.2rem 0}.coverage-stack span{display:block;height:100%}.coverage-audited{background:#16a34a}.coverage-progress{background:#f59e0b}.coverage-pending{background:#cbd5e1}.coverage-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.coverage-legend>div{border:1px solid #e0e6ef;border-radius:12px;padding:.8rem;display:grid;grid-template-columns:auto 1fr;gap:.15rem .5rem;align-items:center}.coverage-legend strong{font-size:1.35rem}.coverage-legend span{grid-column:2;color:#64748b}.legend{width:.65rem;height:.65rem;border-radius:50%}.legend.audited{background:#16a34a}.legend.progress{background:#f59e0b}.legend.pending{background:#cbd5e1}.bi-bar-list{display:grid;gap:.8rem}.bi-bar-row small{display:block;color:#64748b;margin-top:.25rem}.empty-state{padding:1.5rem;text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:12px}.trend-chart svg{width:100%;height:auto;min-height:210px}.chart-axis{stroke:#cbd5e1;stroke-width:1}.trend-line{fill:none;stroke:#2563eb;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.trend-chart circle{fill:#2563eb}.trend-chart text{fill:#64748b;font-size:12px}
@media(max-width:1000px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid.two-columns{grid-template-columns:1fr}}
@media(max-width:600px){.dashboard-kpis{grid-template-columns:1fr 1fr;gap:.65rem}.dashboard-kpi{padding:.75rem}.dashboard-kpi strong{font-size:1.35rem}.coverage-legend{grid-template-columns:1fr}.dashboard-statusbar{align-items:flex-start;flex-direction:column}}


/* Beta 2.1: ações horizontais nos cabeçalhos */
.topbar-actions { display:flex; flex-direction:row; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; }
.topbar-actions .btn { width:auto; margin:0; white-space:nowrap; }
.conference-actions .btn { margin-top:8px; }
@media (max-width: 600px) {
  .topbar { flex-wrap:wrap; }
  .topbar-actions { width:100%; justify-content:flex-start; }
  .topbar-actions .btn { flex:1 1 calc(50% - 8px); }
}

/* beta.2.3 dashboard status selector */
.coverage-filters>button{border:1px solid #e0e6ef;border-radius:12px;padding:.8rem;display:grid;grid-template-columns:auto 1fr;gap:.15rem .5rem;align-items:center;background:#fff;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.coverage-filters>button strong{font-size:1.35rem}.coverage-filters>button span{grid-column:2;color:#64748b}.coverage-filters>button:hover{border-color:#94a3b8}.coverage-filters>button.active{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}
.pending-sector-row{border:1px solid #e0e6ef;border-radius:12px;padding:1rem;background:#fff}
.pending-sector-row strong{display:block;color:#172033}


/* beta.2.4: detalhes de faltantes na dashboard */
.missing-link{border:0;background:transparent;color:#2563eb;padding:0;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.missing-link:hover,.missing-link:focus{color:#1d4ed8}
.dashboard-modal{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.58);display:flex;align-items:center;justify-content:center;padding:1rem}
.dashboard-modal.hidden{display:none}
.dashboard-modal-card{width:min(900px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.28);padding:1.1rem}
.dashboard-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid #e5e7eb;padding-bottom:.85rem;margin-bottom:1rem}
.dashboard-modal-header h2{margin:0 0 .25rem}.dashboard-modal-header p{margin:0;color:#64748b}
.missing-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}
.missing-summary>div{border:1px solid #e0e6ef;border-radius:12px;padding:.75rem;display:flex;flex-direction:column;gap:.2rem}.missing-summary span{color:#64748b;font-size:.85rem}.missing-summary strong{font-size:1.35rem}
.missing-search-label{display:block;font-weight:700;margin-bottom:.35rem}.dashboard-modal-card input[type=search]{margin-bottom:.8rem}
.missing-items{display:grid;gap:.55rem}.missing-item-row{display:grid;grid-template-columns:minmax(170px,220px) 1fr;gap:1rem;align-items:center;border:1px solid #e5e7eb;border-radius:10px;padding:.7rem .8rem}.missing-item-row code{font-size:.95rem;font-weight:700;color:#172033}.missing-item-row span{color:#526173}
@media(max-width:600px){.dashboard-modal{padding:0}.dashboard-modal-card{height:100dvh;max-height:none;border-radius:0;padding:.9rem}.dashboard-modal-header{align-items:center}.missing-summary{grid-template-columns:repeat(3,1fr);gap:.45rem}.missing-summary>div{padding:.6rem}.missing-summary strong{font-size:1.1rem}.missing-item-row{grid-template-columns:1fr;gap:.25rem}}

/* beta.2.5: filtro histórico por mês/ano */
.dashboard-statusbar{align-items:flex-end}
.dashboard-period-filter{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.dashboard-period-filter label{font-size:.82rem;font-weight:700;color:#526173}
.dashboard-period-filter select{width:auto;min-width:118px;margin:0;padding:.52rem .7rem;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font:inherit}
.dashboard-period-filter #dashboardYear{min-width:94px}
.dashboard-period-filter .btn{margin:0;width:auto}
.dashboard-live-info{display:flex;flex-direction:column;gap:.3rem;align-items:flex-end}
@media(max-width:760px){.dashboard-statusbar{align-items:stretch}.dashboard-period-filter{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center}.dashboard-period-filter .btn{grid-column:1/-1}.dashboard-live-info{align-items:flex-start}}

/* Beta.2.6 - revisão administrativa */
.coverage-review{background:#7c3aed}.legend.review{background:#7c3aed}.coverage-legend{grid-template-columns:repeat(4,1fr)}
.review-notification{margin:0 0 1rem;padding:.85rem 1rem;border:1px solid #c4b5fd;background:#f5f3ff;color:#4c1d95;border-radius:12px}
.review-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem;padding-top:.75rem;border-top:1px solid #e5e7eb}
@media(max-width:900px){.coverage-legend{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.coverage-legend{grid-template-columns:1fr}.review-actions .btn{flex:1 1 100%}}
\n\n/* beta.3 - painéis personalizados / TV */
.panel-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.panel-directory-item{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem;border:1px solid #dbe3ee;border-radius:14px;text-decoration:none;color:#172033;background:#fff}.panel-directory-item:hover{border-color:#2563eb;background:#eff6ff}.panel-directory-item strong{font-size:1.1rem}.panel-directory-item span{color:#64748b}.panel-editor{margin-top:1rem}.panel-widget-head,.panel-widget-editor,.panel-widget-add{display:grid;grid-template-columns:2fr 2fr .7fr .7fr .7fr 1.5fr;gap:.55rem;align-items:center;margin:.55rem 0}.panel-widget-head{font-weight:700;color:#526173;font-size:.85rem}.panel-widget-editor input,.panel-widget-editor select,.panel-widget-add input,.panel-widget-add select{margin:0}.wallboard-page{margin:0;min-height:100vh;background:#08111f;color:#e5eef9}.wallboard-page[data-theme="light"]{background:#f1f5f9;color:#172033}.wallboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#0f1d31;border-bottom:1px solid #253651}.wallboard-page[data-theme="light"] .wallboard-header{background:#fff;border-bottom-color:#dbe3ee}.wallboard-header h1{margin:0;font-size:1.6rem}.wallboard-header p{margin:.25rem 0 0;color:#9fb0c5}.wallboard-page[data-theme="light"] .wallboard-header p{color:#64748b}.wallboard-actions{display:flex;gap:.5rem;flex-wrap:wrap}.wallboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding:1rem 1.25rem}.wallboard-widget{background:#101f34;border:1px solid #2b405d;border-radius:16px;padding:1rem;min-height:150px}.wallboard-page[data-theme="light"] .wallboard-widget{background:#fff;border-color:#dbe3ee}.wallboard-widget.span-1{grid-column:span 1}.wallboard-widget.span-2{grid-column:span 2}.wallboard-widget.span-3{grid-column:span 3}.wallboard-widget.span-4{grid-column:span 4}.wallboard-widget h2{font-size:1rem;color:#afbed0;margin:0 0 .8rem}.wallboard-page[data-theme="light"] .wallboard-widget h2{color:#526173}.wallboard-metric-value{font-size:3.4rem;font-weight:800;letter-spacing:-.04em}.wallboard-list{display:grid;gap:.55rem}.wallboard-list>div,.wallboard-progress-row{padding:.65rem;border-radius:10px;background:#152943}.wallboard-page[data-theme="light"] .wallboard-list>div,.wallboard-page[data-theme="light"] .wallboard-progress-row{background:#f1f5f9}.wallboard-progress-row{display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem}.wallboard-progress-row span{display:block;font-size:.82rem;color:#9fb0c5;margin-top:.2rem}.wallboard-page[data-theme="light"] .wallboard-progress-row span{color:#64748b}.wallboard-progress{grid-column:1/-1;height:9px;background:#273a55;border-radius:99px;overflow:hidden}.wallboard-page[data-theme="light"] .wallboard-progress{background:#dbe3ee}.wallboard-progress i{display:block;height:100%;background:#3b82f6;border-radius:99px}.wallboard-ranking{display:grid;gap:.45rem}.wallboard-ranking>div{display:grid;grid-template-columns:36px 1fr auto;gap:.65rem;align-items:center;padding:.55rem .65rem;border-bottom:1px solid #263a55}.wallboard-page[data-theme="light"] .wallboard-ranking>div{border-color:#e2e8f0}.wallboard-ranking>div>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#1e3a5f;color:#bfdbfe;font-weight:700}.wallboard-status{padding:.5rem 1.25rem;text-align:right;color:#8294aa;font-size:.8rem}.wallboard-empty{color:#8294aa;padding:1rem}.wallboard-page:fullscreen .wallboard-actions{display:none}.wallboard-page:fullscreen .wallboard-header{padding:.7rem 1.25rem}.wallboard-page:fullscreen .wallboard-grid{padding-top:.75rem}@media(max-width:1000px){.panel-directory{grid-template-columns:repeat(2,1fr)}.wallboard-grid{grid-template-columns:repeat(2,1fr)}.wallboard-widget.span-3,.wallboard-widget.span-4{grid-column:span 2}.panel-widget-head{display:none}.panel-widget-editor,.panel-widget-add{grid-template-columns:1fr 1fr}}@media(max-width:600px){.panel-directory{grid-template-columns:1fr}.wallboard-header{align-items:flex-start;flex-direction:column}.wallboard-grid{grid-template-columns:1fr;padding:.75rem}.wallboard-widget.span-1,.wallboard-widget.span-2,.wallboard-widget.span-3,.wallboard-widget.span-4{grid-column:span 1}.wallboard-metric-value{font-size:2.5rem}.panel-widget-editor,.panel-widget-add{grid-template-columns:1fr}}\n
/* beta.3.1 - modo TV / playlist */
.panel-rotation{margin:1rem 0 1.25rem;padding:1rem;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}.panel-rotation h3{margin-top:0}.rotation-page-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:.75rem 0}.muted{color:#64748b}.wallboard-screen-indicator{min-width:70px;text-align:center;color:#9fb0c5;font-size:.85rem}.tv-detail-grid{grid-template-columns:1fr!important}.tv-detail-screen{grid-column:1/-1;padding:1rem .5rem}.tv-detail-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2b405d;padding:0 .5rem .8rem;margin-bottom:1rem}.tv-detail-title h2{margin:0;font-size:2rem}.tv-detail-title span{font-size:1.1rem;color:#9fb0c5}.tv-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.tv-detail-list .tv-progress-row,.tv-name-row,.tv-ranking-row{background:#101f34;border:1px solid #2b405d;border-radius:14px;padding:1rem 1.2rem}.wallboard-page[data-theme="light"] .tv-detail-list .tv-progress-row,.wallboard-page[data-theme="light"] .tv-name-row,.wallboard-page[data-theme="light"] .tv-ranking-row{background:#fff;border-color:#dbe3ee}.tv-name-row strong{font-size:1.65rem}.tv-ranking-row{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}.tv-ranking-row span{font-size:1.1rem;color:#9fb0c5}.tv-ranking-row strong{font-size:1.45rem}.tv-ranking-row b{font-size:1.35rem}.tv-progress-row strong{font-size:1.35rem}.tv-progress-row span{font-size:1rem}.tv-empty{font-size:1.5rem;text-align:center;grid-column:1/-1;padding:3rem}.wallboard-page:fullscreen .tv-detail-title h2{font-size:2.4rem}.wallboard-page:fullscreen .tv-name-row strong{font-size:1.9rem}.wallboard-page:fullscreen .tv-progress-row strong{font-size:1.55rem}@media(max-width:900px){.rotation-page-options{grid-template-columns:1fr 1fr}.tv-detail-list{grid-template-columns:1fr}}@media(max-width:600px){.rotation-page-options{grid-template-columns:1fr}.wallboard-screen-indicator{display:none}}

/* beta.3.2 - menu global compacto e otimização do modo TV */
.app-menu{position:relative;z-index:80;margin-left:auto}.app-menu>summary{list-style:none;display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,.14);color:inherit;font-size:1.75rem;font-weight:800;line-height:1;cursor:pointer;user-select:none}.app-menu>summary::-webkit-details-marker{display:none}.app-menu>summary:hover,.app-menu[open]>summary{background:rgba(255,255,255,.22)}.app-menu-popover{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;padding:.4rem;background:#fff;color:#172033;border:1px solid #dbe3ee;border-radius:12px;box-shadow:0 14px 35px rgba(15,23,42,.22);display:grid;gap:.15rem}.app-menu-item{display:block;width:100%;margin:0;padding:.72rem .85rem;border:0;border-radius:8px;background:transparent;color:#172033;text-decoration:none;text-align:left;font:inherit;font-weight:700;cursor:pointer}.app-menu-item:hover{background:#f1f5f9}.app-menu-item.danger-text{color:#b91c1c}.topbar .app-menu{flex:0 0 auto}.topbar .app-menu>summary{color:#fff}
.wallboard-page .app-menu-popover{background:#13243b;color:#e5eef9;border-color:#304867}.wallboard-page .app-menu-item{color:#e5eef9}.wallboard-page .app-menu-item:hover{background:#1d3553}.wallboard-page .app-menu-item.danger-text{color:#fecaca}.wallboard-page[data-theme="light"] .app-menu-popover{background:#fff;color:#172033;border-color:#dbe3ee}.wallboard-page[data-theme="light"] .app-menu-item{color:#172033}.wallboard-page[data-theme="light"] .app-menu-item:hover{background:#f1f5f9}.wallboard-page[data-theme="light"] .app-menu-item.danger-text{color:#b91c1c}
.wallboard-header-compact{min-height:50px;padding:.42rem .9rem;transition:max-height .22s ease,padding .22s ease,opacity .18s ease,border-color .18s ease;max-height:72px}.wallboard-brand{display:flex;align-items:baseline;gap:.7rem;min-width:0}.wallboard-header-compact h1{font-size:1.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallboard-header-compact p{font-size:.76rem;margin:0;white-space:nowrap}.wallboard-actions-compact{display:flex!important;align-items:center;gap:.3rem;flex-wrap:nowrap}.wallboard-icon-btn{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #40546e;border-radius:8px;background:#263952;color:#fff;font-size:.9rem;font-weight:800;cursor:pointer}.wallboard-page[data-theme="light"] .wallboard-icon-btn{background:#e2e8f0;color:#172033;border-color:#cbd5e1}.wallboard-actions-compact .app-menu>summary{width:34px;height:34px;border:1px solid #40546e;background:#263952;font-size:1.45rem}.wallboard-page[data-theme="light"] .wallboard-actions-compact .app-menu>summary{background:#e2e8f0;color:#172033;border-color:#cbd5e1}.wallboard-screen-indicator{min-width:54px;font-size:.72rem}.wallboard-grid{transition:padding-top .2s ease}.wallboard-page.tv-controls-hidden{cursor:none}.wallboard-page.tv-controls-hidden .wallboard-header{max-height:0;min-height:0;padding-top:0;padding-bottom:0;opacity:0;border-color:transparent;overflow:hidden}.wallboard-page.tv-controls-hidden .wallboard-grid{padding-top:.55rem}.wallboard-page.wallboard-hide-meta .wallboard-brand{display:none}.wallboard-page.wallboard-hide-meta .wallboard-header{justify-content:flex-end}.wallboard-page:fullscreen .wallboard-actions{display:flex!important}.wallboard-page:fullscreen .wallboard-header{padding:.35rem .75rem;max-height:52px}.wallboard-page:fullscreen.tv-controls-hidden .wallboard-header{padding-top:0;padding-bottom:0;max-height:0}.wallboard-page:fullscreen .wallboard-grid{padding-top:.45rem}
@media(max-width:600px){.topbar{align-items:center}.topbar .app-menu>summary{width:38px;height:38px}.wallboard-header-compact{flex-direction:row;align-items:center}.wallboard-header-compact p{display:none}.wallboard-brand{min-width:0;flex:1}.wallboard-actions-compact{width:auto}.wallboard-actions-compact .wallboard-screen-indicator{display:none}}
:fullscreen .wallboard-page .wallboard-actions{display:flex!important}:fullscreen .wallboard-page .wallboard-header{padding:.35rem .75rem;max-height:52px}:fullscreen .wallboard-page.tv-controls-hidden .wallboard-header{padding-top:0;padding-bottom:0;max-height:0}:fullscreen .wallboard-page .wallboard-grid{padding-top:.45rem}

/* Beta 3.3 - períodos personalizados e desempenho histórico */
.dashboard-period-filter { flex-wrap: wrap; gap: .45rem; align-items: center; }
.period-control-group { display: inline-flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.period-control-group.hidden { display: none !important; }
.dashboard-period-filter input[type="date"],
.dashboard-period-filter input[type="number"],
.dashboard-period-filter select { min-height: 34px; }
.period-months-input { width: 64px; }

.sector-performance { display: grid; gap: .65rem; }
.performance-sector { border: 1px solid var(--border, #d6dbe3); border-radius: 12px; overflow: hidden; background: var(--card, #fff); }
.performance-sector > summary { cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .9rem 1rem; list-style: none; }
.performance-sector > summary::-webkit-details-marker { display: none; }
.performance-sector > summary > div:first-child { display: grid; gap: .15rem; }
.performance-sector > summary span { color: var(--muted, #687386); font-size: .86rem; }
.performance-summary-numbers { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: flex-end; }
.performance-summary-numbers span { white-space: nowrap; }
.performance-summary-numbers b { color: var(--text, #111827); }
.performance-totals { display: flex; gap: 1.25rem; flex-wrap: wrap; padding: .7rem 1rem; border-top: 1px solid var(--border, #d6dbe3); background: rgba(127,127,127,.045); }
.performance-table-wrap { overflow-x: auto; }
.performance-table { width: 100%; border-collapse: collapse; min-width: 650px; }
.performance-table th, .performance-table td { padding: .65rem 1rem; text-align: left; border-top: 1px solid var(--border, #d6dbe3); }
.performance-table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted, #687386); }

.tv-performance-mini { display: grid; gap: .2rem; padding: .55rem 0; border-bottom: 1px solid rgba(127,127,127,.16); }
.tv-performance-mini span { font-size: .9em; opacity: .78; }
.tv-performance-sector { padding: .85rem 1rem; border: 1px solid rgba(127,127,127,.2); border-radius: 12px; }
.tv-performance-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.tv-performance-head > div { display: grid; gap: .2rem; }
.tv-performance-head > div:last-child { text-align: right; }
.tv-performance-head span, .tv-performance-history { opacity: .78; }
.tv-performance-history { display: flex; gap: .6rem 1rem; flex-wrap: wrap; margin-top: .65rem; font-size: .88em; }

@media (max-width: 760px) {
  .performance-sector > summary, .tv-performance-head { align-items: flex-start; flex-direction: column; }
  .performance-summary-numbers { justify-content: flex-start; }
  .tv-performance-head > div:last-child { text-align: left; }
}
