:root { --bg:#0b1020; --fg:#e8f0ff; --muted:#cfe2ff; --card:#121836; --accent:#7dd3fc; --ok:#34d399; --warn:#fbbf24; }

/* Base */
body{background:var(--bg);color:var(--fg);font:14px/1.4 system-ui,Segoe UI,Roboto,Arial}
h1,h2,h3,h4,h5,h6,p,small,span,li,dt,dd,label,legend,a,th,td{color:var(--fg)}
.text-muted,.hint{color:var(--muted)!important}

/* Cards */
.card{background:var(--card);border:1px solid #1f2a4a;border-radius:14px}
.card .card-header{background:transparent;border-bottom:1px solid #1f2a4a;color:var(--fg)}

/* Botões */
.btn-dark{background:#1f2a4a;border-color:#2b3a62;color:#fff}
.btn-outline-light{color:#fff;border-color:#8aa0d0}
.btn-outline-danger{color:#ffdede;border-color:#ff9090}
.btn-outline-warning{color:#fff3cd;border-color:#ffe08a}
.btn:disabled{color:#e5e7eb!important}

/* Badges */
.badge.bg-muted{background:#0f1634;color:#eaf2ff;border:1px solid #28345c}

/* Métricas */
.metric h6{margin:0;color:var(--muted);font-size:12px}
.metric .big{font-size:27px;font-weight:600;color:#fff}

/* Barras & Canvas */
.bar{height:10px;background:#0e1330;border-radius:8px;border:1px solid #1f2a4a;overflow:hidden}
.fill{height:100%;background:linear-gradient(90deg,#60a5fa,#7dd3fc,#34d399)}
canvas{width:100%;height:160px;background:#0e1330;border-radius:12px;border:1px solid #1f2a4a}

/* Legenda */
.legend i{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:6px;vertical-align:middle}
.manual i{color:#7dd3fc} /* ícones do manual podem manter destaque */

/* Navegação (abas) */
.nav-tabs{border-color:#2b3a62}
.nav-tabs .nav-link{color:var(--fg);background:transparent;border:1px solid transparent}
.nav-tabs .nav-link:hover{color:#fff}
.nav-tabs .nav-link.active{color:#fff;background:transparent;border-color:#2b3a62 #2b3a62 #1f2a4a}

/* Tabelas */
.table{color:var(--fg)}
.table thead th{color:#fff;border-color:#2b3a62}
.table td,.table th{border-color:#203058}
.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:rgba(255,255,255,.03);color:var(--fg)}
.table-striped>tbody>tr{color:var(--fg)}

/* Formulários */
.form-label,.form-check-label{color:#fff}
.form-control,.form-select{
  color:#fff;background:#0e1330;border-color:#2b3a62;
}
.form-control:focus,.form-select:focus{
  color:#fff;background:#0e1330;border-color:#5b78c8;box-shadow:0 0 0 .15rem rgba(125,211,252,.25)
}
.form-select option{color:#fff;background:#0b1020}
.form-text{color:var(--muted)}
::placeholder{color:#dbe7ff;opacity:.75}

/* Links padrões (fora de botões) */
a:not(.btn){color:#eaf2ff}
a:not(.btn):hover{color:#fff}

/* Diversos de Bootstrap que podem aparecer */
.dropdown-menu{background:#0e1330;color:#fff;border-color:#2b3a62}
.dropdown-item{color:#fff}
.dropdown-item:hover,.dropdown-item:focus{background:#1b254a;color:#fff}

/* === Fix: fórmulas sempre brancas === */
.manual .formula{
  background:#0e1330;
  border:1px solid #1f2a4a;
  border-radius:10px;
  padding:10px;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color:#fff !important;
}
.manual .formula *{
  color:#fff !important;
}
.manual .formula a{
  color:#fff !important;
  text-decoration: underline;
}




/* ===== Mixer de faders 1/3 de oitava ===== */
.eq-strip{
  display:flex; gap:10px;
  overflow-x:auto; overflow-y:hidden;
  padding:8px 4px 2px; border:1px solid #1f2a4a; border-radius:12px;
  background:#0e1330;
}
.eq-col{
  flex:0 0 56px; width:56px; min-width:56px;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  background:#0b1020; border:1px solid #1f2a4a; border-radius:10px; padding:6px 4px;
}
.eq-col .fc{ font-size:12px; color:#cfe2ff; line-height:1; margin-bottom:6px; text-align:center; }
.eq-col .val{ font-size:12px; color:#e8f0ff; margin-top:6px; }
.eq-col .ends{ width:100%; display:flex; justify-content:space-between; font-size:11px; color:#9fb3d1; }

/* slider vertical cross-browser (sem 'slider-vertical') */
.eq-col input[type="range"]{
  /* fallback FF antigo */
  writing-mode: bt-lr;

  /* padrão atual */
  writing-mode: vertical-lr;
  direction: rtl;                 /* valores "sobem" para o topo */

  /* remove estilos nativos inconsistentes */
  appearance: none;
  -webkit-appearance: none;

  width: 30px;
  height: 140px;
  margin: 4px 0;
  background: transparent;
}

.eq-col input[type="range"]::-webkit-slider-runnable-track{
  width: 6px; height: 130px;
  background: linear-gradient(#2b3a62,#2b3a62) center/6px 100% no-repeat,
              linear-gradient(180deg,#3b82f6,#22d3ee);
  border-radius: 6px; border:1px solid #33446f;
}
.eq-col input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance: none;
  width: 18px; height: 12px; margin-top:-2px;
  background:#7dd3fc; border:1px solid #2b3a62; border-radius: 6px;
}
.eq-col input[type="range"]::-moz-range-track{
  width: 6px; height: 130px;
  background:#2b3a62; border:1px solid #33446f; border-radius: 6px;
}
.eq-col input[type="range"]::-moz-range-progress{
  background: linear-gradient(180deg,#3b82f6,#22d3ee);
  border-radius: 6px;
}
.eq-col input[type="range"]::-moz-range-thumb{
  width: 18px; height: 12px; background:#7dd3fc; border:1px solid #2b3a62; border-radius: 6px;
}



@page {
  size: A4;
  margin: 12mm;
}

/* ==== IMPRESSÃO (força texto preto) ==== */
@media print {
  html, body {
    background:#fff !important;
    color:#000 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Força PRETO em todo o texto, inclusive ícones (Font Awesome) */
  *, *::before, *::after {
    color:#000 !important;
    -webkit-text-fill-color:#000 !important; /* WebKit */
    text-shadow:none !important;
    box-shadow:none !important;
  }

  /* Links pretos e sem sublinhado */
  a, a:visited, a:link {
    color:#000 !important;
    text-decoration:none !important;
  }

  /* Corrige as fórmulas do Manual (eram branco-sobre-escuro na tela) */
  .manual .formula,
  .manual .formula * {
    background:#fff !important;
    border:1px solid #000 !important;
    color:#000 !important;
  }

  /* Esconde elementos só de UI na impressão */
  .nav, .nav-tabs, .btn, .form-control, .form-select, .form-check, .dropdown,
  .hint, .badge, .btn-group, .pagination {
    display: none !important;
  }

  /* Cards e tabelas “limpos” no papel */
  .card {
    background:#fff !important;
    border:1px solid #000 !important;
    box-shadow:none !important;
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom:10px;
  }
  .card-header {
    background:#fff !important;
    color:#000 !important;
    border-bottom:1px solid #000 !important;
  }
  .table {
    color:#000 !important;
    border-color:#000 !important;
  }
  .table th, .table td {
    border-color:#000 !important;
  }

  /* Canvas com moldura leve no papel */
  canvas {
    background:#fff !important;
    border:1px solid #000 !important;
  }

  /* Cabeçalho do relatório */
  .print-header .title { font-size:18pt; margin:0; }
  .print-header .sub   { font-size:10pt; color:#000 !important; }

  /* Layout amplo na página */
  .container, .container-fluid {
    max-width:none !important;
    width:auto !important;
    padding:0 !important;
  }

  /* Evita quebra no meio das tiras do equalizador */
  .eq-strip { break-inside: avoid; page-break-inside: avoid; }
}


/* Histograma em impressão: usa a imagem snapshot */
#chartPrint {
  display: block !important;     /* redundante com d-print-block do Bootstrap, mas garante */
  width: 100% !important;
  height: auto !important;
}
#chart.d-print-none {
  display: none !important;
  padding:20px !important;
}


.hist-wrap{ overflow-x:auto; overflow-y:hidden; position:relative; width:100%; }
.hist-cursor{ position:absolute; top:12px; bottom:28px; width:1px; background:#9fb3d1; opacity:.6; pointer-events:none; }
.hist-tip{ position:absolute; top:0; transform:translate(-50%, -100%); background:#0f172a; color:#fff; font:12px system-ui;
  padding:4px 6px; border-radius:4px; white-space:nowrap; border:1px solid #334155; pointer-events:none; }

