/* ============================================================
 * tf-light-mode-polish.scss
 *
 * Polimento do TEMA LIGHT para os modais e componentes que reescrevi
 * recentemente (alterastatus, pdfdanfe, logs, alteravalornfse, empresas,
 * logout). O dark continua intacto.
 *
 * Filosofia (Apple Human Interface Guidelines for light mode):
 *  - Background principal: cinza-azulado MUITO claro (#f4f7fb),
 *    NUNCA branco puro #fff (cansa a vista em telas LCD modernas).
 *  - Texto principal: azul-grafite #1a2030, NAO preto puro (#000
 *    em fundo claro = contraste alto demais → fadiga ocular).
 *  - Texto secundario: cinza azulado #5b6478 (subtle).
 *  - Bordas: rgba(15,23,42,.08) — quase invisivel mas o suficiente
 *    para definir bordas dos cards.
 *  - Sombras: leves, pouco profundas (light mode = sombras mais sutis).
 *  - Acentos: mantidos (azul/verde/vermelho/amarelo Apple).
 *
 * Cada bloco eh aplicado para AMBOS:
 *   html[data-theme="light"] (toggle manual do usuario)
 *   @media (prefers-color-scheme: light) html:not([data-theme]) (SO)
 * ============================================================ */

/* ============================================================
 * Tokens locais (paleta light Tools)
 * ============================================================ */
:root {
    /* Paleta suave Tools — light */
    --tf-light-bg:           #f4f7fb;  /* fundo principal de cards/modais */
    --tf-light-bg-soft:      #fafbfd;  /* areas internas (inputs, viewport) */
    --tf-light-bg-strong:    #eaeef5;  /* destaque sutil (thead, chips) */
    --tf-light-text:         #1a2030;  /* texto principal — azul-grafite */
    --tf-light-text-muted:   #5b6478;  /* secundario */
    --tf-light-text-subtle:  #8b94a7;  /* terciario / placeholder */
    --tf-light-border:       rgba(15,23,42,.08);
    --tf-light-border-soft:  rgba(15,23,42,.05);
    --tf-light-border-strong:rgba(15,23,42,.14);
    --tf-light-shadow:       0 1px 2px rgba(15,23,42,.04), 0 12px 32px rgba(15,23,42,.10);
    --tf-light-shadow-card:  0 1px 2px rgba(15,23,42,.03), 0 6px 16px rgba(15,23,42,.06);
}

/* ============================================================
 * Mixin pratico: aplica regras quando o tema light esta ativo
 * (toggle manual OU preferencia do SO).
 * Como SCSS sem preprocessador eh estatico, repetimos cada bloco
 * em dois seletores separados (sem @mixin).
 * ============================================================ */

/* ============================================================
 *  MODAL: Alterar Status da Nota
 * ============================================================ */
html[data-theme="light"] .tf-alterastatus-modal .modal-content,
html[data-theme="light"] .tf-alterastatus-content,
@media (prefers-color-scheme: light) {
  html:not([data-theme]) .tf-alterastatus-modal .modal-content,
  html:not([data-theme]) .tf-alterastatus-content { background: var(--tf-light-bg) !important; color: var(--tf-light-text) !important; border-color: var(--tf-light-border) !important; box-shadow: var(--tf-light-shadow) !important; }
}
html[data-theme="light"] .tf-alterastatus-modal .modal-content,
html[data-theme="light"] .tf-alterastatus-content {
    background: var(--tf-light-bg) !important;
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border) !important;
    box-shadow: var(--tf-light-shadow) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-title h5,
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-fieldlabel {
    color: var(--tf-light-text) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-statusrow,
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-textarea {
    color: var(--tf-light-text) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-textarea {
    background: var(--tf-light-bg-soft) !important;
    border: 1px solid var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-textarea:focus {
    background: #fff !important;
    border-color: var(--accent, #0a84ff) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-header,
html[data-theme="light"] .tf-alterastatus-modal .tf-alterastatus-footer {
    border-color: var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-btn-cancel {
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border-strong) !important;
}
html[data-theme="light"] .tf-alterastatus-modal .tf-btn-cancel:hover {
    background: rgba(15,23,42,.04) !important;
}
/* Overlay loading no light: backdrop azulado suave em vez de quase preto */
html[data-theme="light"] .tf-status-overlay {
    background: rgba(15,23,42,.30) !important;
}
html[data-theme="light"] .tf-status-overlay-card,
html[data-theme="light"] .tf-overlay-text {
    color: var(--tf-light-text) !important;
}

/* ============================================================
 *  MODAL: Visualizar Nota (PDF)
 * ============================================================ */
html[data-theme="light"] .tf-pdfdanfe-modal .modal-content,
html[data-theme="light"] .tf-pdfdanfe-content {
    background: var(--tf-light-bg) !important;
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border) !important;
    box-shadow: var(--tf-light-shadow) !important;
}
html[data-theme="light"] .tf-pdfdanfe-body .pdf-viewer        { background: var(--tf-light-bg-strong); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-toolbar       { background: var(--tf-light-bg); border-bottom-color: var(--tf-light-border) !important; }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-btn           { color: var(--tf-light-text); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-btn > i       { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-btn:hover     { background: rgba(15,23,42,.04); border-color: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-divider       { background: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-hint          { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-viewport {
    /* Padrao xadrez sutil em light fica cinza claro, nao branco */
    background:
        linear-gradient(45deg, rgba(15,23,42,.025) 25%, transparent 25%) 0 0 / 24px 24px,
        linear-gradient(-45deg, rgba(15,23,42,.025) 25%, transparent 25%) 0 12px / 24px 24px,
        linear-gradient(45deg, transparent 75%, rgba(15,23,42,.025) 75%) 12px -12px / 24px 24px,
        linear-gradient(-45deg, transparent 75%, rgba(15,23,42,.025) 75%) 12px 0 / 24px 24px,
        var(--tf-light-bg-strong) !important;
}
html[data-theme="light"] .tf-pdfdanfe-body .pdf-viewport::-webkit-scrollbar-thumb { background: rgba(15,23,42,.18); background-clip: content-box; }
html[data-theme="light"] .tf-pdfdanfe-body .pdf-stage > img,
html[data-theme="light"] .tf-pdfdanfe-body .pdf-stage > iframe {
    box-shadow: 0 8px 24px rgba(15,23,42,.18), 0 0 0 1px rgba(15,23,42,.10);
}
html[data-theme="light"] .tf-pdfdanfe-body .pdf-waiting {
    background: rgba(15,23,42,.18) !important;
}
html[data-theme="light"] .tf-pdfdanfe-body .pdf-waiting .tf-pdf-loader {
    background: #fff;
    border-color: var(--tf-light-border) !important;
    color: var(--tf-light-text);
    box-shadow: var(--tf-light-shadow-card);
}
html[data-theme="light"] .tf-pdfdanfe-body .pdf-waiting .loader-text { color: var(--tf-light-text); }
html[data-theme="light"] .tf-pdfdanfe-body .vs-track   { stroke: rgba(15,23,42,.10) !important; }
html[data-theme="light"] .tf-pdfdanfe-header,
html[data-theme="light"] .tf-pdfdanfe-footer {
    border-color: var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-pdfdanfe-footer-hint { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-pdfdanfe-title-text h5 { color: var(--tf-light-text); }

/* ============================================================
 *  MODAL: Logs da Nota
 * ============================================================ */
html[data-theme="light"] #show-log.tf-logs-modal .modal-content,
html[data-theme="light"] .tf-logs-content {
    background: var(--tf-light-bg) !important;
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border) !important;
    box-shadow: var(--tf-light-shadow) !important;
}
html[data-theme="light"] .tf-logs-table-wrap { background: var(--tf-light-bg-strong); }
html[data-theme="light"] .tf-logs-table > tbody > tr             { border-bottom-color: var(--tf-light-border-soft); }
html[data-theme="light"] .tf-logs-table > tbody > tr:nth-child(even) { background: rgba(15,23,42,.02); }
html[data-theme="light"] .tf-logs-table > tbody > tr:hover       { background: rgba(10,132,255,.06); }
html[data-theme="light"] .tf-logs-table > tbody > tr > td        { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-table > tbody > tr > td:nth-child(2),
html[data-theme="light"] .tf-logs-table > tbody > tr > td:nth-child(5) { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-table > thead > tr > th        { color: var(--tf-light-text) !important; }
html[data-theme="light"] .tf-logs-table > thead > tr > th > i    { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-header,
html[data-theme="light"] .tf-logs-footer {
    border-color: var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-logs-title-text h5 { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-subtitle      { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-waiting       { background: rgba(15,23,42,.16) !important; }
html[data-theme="light"] .tf-logs-waiting .tf-pdf-loader {
    background: #fff;
    border-color: var(--tf-light-border) !important;
    color: var(--tf-light-text);
    box-shadow: var(--tf-light-shadow-card);
}
html[data-theme="light"] .tf-logs-waiting .loader-text { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-waiting .vs-track    { stroke: rgba(15,23,42,.10) !important; }
html[data-theme="light"] .tf-logs-empty                { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-empty-title          { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-total                { background: #fff; border-color: var(--tf-light-border); color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-total-label          { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-pager .pager-btn     { color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-logs-pager .pager-btn:hover { background: rgba(15,23,42,.04); }
html[data-theme="light"] .tf-logs-pager .pager-btn > svg { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logs-pager .pager-input,
html[data-theme="light"] .tf-logs-rows .pager-select   { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-logs-rows label           { color: var(--tf-light-text-muted); }
/* Coluna de data — variantes coloridas ficam mais suaves no light */
html[data-theme="light"] .tf-logs-date.is-today      .tf-logs-date-day { color: #066cd6; }   /* azul mais escuro */
html[data-theme="light"] .tf-logs-date.is-yesterday  .tf-logs-date-day { color: #0a8a39; }   /* verde mais escuro */
html[data-theme="light"] .tf-logs-date.is-recent     .tf-logs-date-day { color: #b86e00; }   /* amarelo mais escuro */
html[data-theme="light"] .tf-logs-date-time         { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logs-date.is-today .tf-logs-date-time,
html[data-theme="light"] .tf-logs-date.is-yesterday .tf-logs-date-time,
html[data-theme="light"] .tf-logs-date.is-recent .tf-logs-date-time { color: var(--tf-light-text); opacity: 0.66; }

/* ============================================================
 *  MODAL: Alterar Valor da NFSe
 * ============================================================ */
html[data-theme="light"] .tf-alteravalornfse-modal .modal-content,
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-content {
    background: var(--tf-light-bg) !important;
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border) !important;
    box-shadow: var(--tf-light-shadow) !important;
}
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-title-text h5 { color: var(--tf-light-text); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-subtitle      { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-fieldlabel    { color: var(--tf-light-text); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-fieldlabel > i{ color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-input-group   { background: #fff; border-color: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-currency      { border-right-color: var(--tf-light-border); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-input         { color: var(--tf-light-text) !important; }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-input::placeholder { color: var(--tf-light-text-subtle); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-hint          { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-header,
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-footer {
    border-color: var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-btn-recover   { color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-btn-recover:hover { background: rgba(15,23,42,.04); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-overlay       { background: rgba(15,23,42,.18) !important; }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-overlay .tf-pdf-loader {
    background: #fff;
    border-color: var(--tf-light-border) !important;
    color: var(--tf-light-text);
    box-shadow: var(--tf-light-shadow-card);
}
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-overlay .loader-text { color: var(--tf-light-text); }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-overlay .vs-track    { stroke: rgba(15,23,42,.10) !important; }

/* ============================================================
 *  MODAL: Dados da Empresa
 * ============================================================ */
html[data-theme="light"] .tf-empresas-modal .modal-content,
html[data-theme="light"] .tf-empresas-content {
    background: var(--tf-light-bg) !important;
    backdrop-filter: blur(8px) saturate(160%);
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border) !important;
    box-shadow: var(--tf-light-shadow) !important;
}
html[data-theme="light"] .tf-empresas-title-text h5,
html[data-theme="light"] .tf-empresas-title-text h5 label { color: var(--tf-light-text); }
html[data-theme="light"] .tf-empresas-subtitle          { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-empresas-section-title     { border-bottom-color: var(--tf-light-border) !important; }
html[data-theme="light"] .tf-empresas-header,
html[data-theme="light"] .tf-empresas-footer {
    border-color: var(--tf-light-border) !important;
}
html[data-theme="light"] .tf-field > label              { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-empresas-body .tf-input,
html[data-theme="light"] .tf-empresas-body input.tf-input[type="text"],
html[data-theme="light"] .tf-empresas-body select.tf-input {
    background: #fff !important;
    color: var(--tf-light-text) !important;
    border-color: var(--tf-light-border-strong) !important;
}
html[data-theme="light"] .tf-empresas-body .tf-input::placeholder { color: var(--tf-light-text-subtle); }
html[data-theme="light"] .tf-empresas-body .tf-input:focus {
    background: #fff !important;
    border-color: var(--accent, #0a84ff) !important;
}
html[data-theme="light"] .tf-empresas-body select.tf-select {
    /* atualiza o chevron SVG para tom escuro suave */
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%235b6478' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
}
html[data-theme="light"] .tf-empresas-body .tf-btn-cep  { background: rgba(52,199,89,.10); color: #0a8a39; border-color: rgba(52,199,89,.30); }
html[data-theme="light"] .tf-empresas-body .tf-btn-cep:hover { background: rgba(52,199,89,.18); }
html[data-theme="light"] .tf-empresas-overlay           { background: rgba(15,23,42,.20) !important; }
html[data-theme="light"] .tf-empresas-overlay .tf-pdf-loader {
    background: #fff;
    border-color: var(--tf-light-border) !important;
    color: var(--tf-light-text);
    box-shadow: var(--tf-light-shadow-card);
}
html[data-theme="light"] .tf-empresas-overlay .loader-text { color: var(--tf-light-text); }
html[data-theme="light"] .tf-empresas-overlay .vs-track    { stroke: rgba(15,23,42,.10) !important; }
html[data-theme="light"] .tf-empresas-message              { color: var(--tf-light-text-muted); }
/* mensagens contextuais com matiz mais escura no light pra contraste */
html[data-theme="light"] .tf-empresas-message.is-success   { color: #0a8a39; }
html[data-theme="light"] .tf-empresas-message.is-error     { color: #c0392b; }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-message.is-success { color: #0a8a39; }
html[data-theme="light"] .tf-alteravalornfse-modal .tf-valor-message.is-error   { color: #c0392b; }

/* ============================================================
 *  MODAL: Logout (sucesso / erro)
 * ============================================================ */
html[data-theme="light"] .tf-logout-text                 { color: var(--tf-light-text); }
html[data-theme="light"] .tf-logout-text-success         { color: #0a8a39; }
html[data-theme="light"] .tf-logout-text-error           { color: #c0392b; }
html[data-theme="light"] .tf-logout-subtext              { color: var(--tf-light-text-muted); }
html[data-theme="light"] .tf-logout-icon-success .tf-logout-circle,
html[data-theme="light"] .tf-logout-icon-success .tf-logout-check { stroke: #0a8a39; }
html[data-theme="light"] .tf-logout-icon-error   .tf-logout-circle,
html[data-theme="light"] .tf-logout-icon-error   .tf-logout-x     { stroke: #c0392b; }

/* ============================================================
 * Replica para preferencia do SO (sem toggle manual)
 * Como SCSS sem preprocessador nao tem @mixin, repetimos as regras
 * dentro do @media. Mantemos seletor html:not([data-theme]) para
 * NAO sobrescrever o toggle manual.
 * ============================================================ */
@media (prefers-color-scheme: light) {

    /* --- Alterar Status --- */
    html:not([data-theme]) .tf-alterastatus-modal .modal-content,
    html:not([data-theme]) .tf-alterastatus-content {
        background: var(--tf-light-bg) !important;
        color: var(--tf-light-text) !important;
        border-color: var(--tf-light-border) !important;
        box-shadow: var(--tf-light-shadow) !important;
    }
    html:not([data-theme]) .tf-alterastatus-modal .tf-alterastatus-title h5,
    html:not([data-theme]) .tf-alterastatus-modal .tf-alterastatus-fieldlabel,
    html:not([data-theme]) .tf-alterastatus-modal .tf-alterastatus-statusrow,
    html:not([data-theme]) .tf-alterastatus-modal .tf-alterastatus-textarea { color: var(--tf-light-text) !important; }
    html:not([data-theme]) .tf-alterastatus-modal .tf-alterastatus-textarea {
        background: var(--tf-light-bg-soft) !important;
        border: 1px solid var(--tf-light-border) !important;
    }
    html:not([data-theme]) .tf-alterastatus-modal .tf-btn-cancel { color: var(--tf-light-text) !important; border-color: var(--tf-light-border-strong) !important; }
    html:not([data-theme]) .tf-status-overlay { background: rgba(15,23,42,.30) !important; }
    html:not([data-theme]) .tf-overlay-text { color: var(--tf-light-text) !important; }

    /* --- PDF (Visualizar Nota) --- */
    html:not([data-theme]) .tf-pdfdanfe-modal .modal-content,
    html:not([data-theme]) .tf-pdfdanfe-content {
        background: var(--tf-light-bg) !important;
        color: var(--tf-light-text) !important;
        border-color: var(--tf-light-border) !important;
        box-shadow: var(--tf-light-shadow) !important;
    }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-viewer  { background: var(--tf-light-bg-strong); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-toolbar { background: var(--tf-light-bg); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-btn     { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-btn > i { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-btn:hover { background: rgba(15,23,42,.04); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-hint    { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-viewport {
        background:
            linear-gradient(45deg, rgba(15,23,42,.025) 25%, transparent 25%) 0 0 / 24px 24px,
            linear-gradient(-45deg, rgba(15,23,42,.025) 25%, transparent 25%) 0 12px / 24px 24px,
            linear-gradient(45deg, transparent 75%, rgba(15,23,42,.025) 75%) 12px -12px / 24px 24px,
            linear-gradient(-45deg, transparent 75%, rgba(15,23,42,.025) 75%) 12px 0 / 24px 24px,
            var(--tf-light-bg-strong) !important;
    }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-waiting { background: rgba(15,23,42,.18) !important; }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-waiting .tf-pdf-loader { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border) !important; box-shadow: var(--tf-light-shadow-card); }
    html:not([data-theme]) .tf-pdfdanfe-body .pdf-waiting .loader-text   { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-pdfdanfe-body .vs-track   { stroke: rgba(15,23,42,.10) !important; }
    html:not([data-theme]) .tf-pdfdanfe-title-text h5    { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-pdfdanfe-footer-hint      { color: var(--tf-light-text-muted); }

    /* --- Logs --- */
    html:not([data-theme]) #show-log.tf-logs-modal .modal-content,
    html:not([data-theme]) .tf-logs-content {
        background: var(--tf-light-bg) !important;
        color: var(--tf-light-text) !important;
        border-color: var(--tf-light-border) !important;
        box-shadow: var(--tf-light-shadow) !important;
    }
    html:not([data-theme]) .tf-logs-table-wrap         { background: var(--tf-light-bg-strong); }
    html:not([data-theme]) .tf-logs-table > tbody > tr > td { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logs-table > tbody > tr:nth-child(even) { background: rgba(15,23,42,.02); }
    html:not([data-theme]) .tf-logs-table > tbody > tr:hover           { background: rgba(10,132,255,.06); }
    html:not([data-theme]) .tf-logs-table > thead > tr > th            { color: var(--tf-light-text) !important; }
    html:not([data-theme]) .tf-logs-table > thead > tr > th > i        { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logs-title-text h5      { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logs-subtitle           { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logs-waiting            { background: rgba(15,23,42,.16) !important; }
    html:not([data-theme]) .tf-logs-waiting .tf-pdf-loader { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border) !important; box-shadow: var(--tf-light-shadow-card); }
    html:not([data-theme]) .tf-logs-empty              { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logs-empty-title        { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logs-total              { background: #fff; border-color: var(--tf-light-border); color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logs-total-label        { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logs-pager .pager-btn   { color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
    html:not([data-theme]) .tf-logs-pager .pager-btn > svg { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logs-pager .pager-input,
    html:not([data-theme]) .tf-logs-rows .pager-select { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
    html:not([data-theme]) .tf-logs-rows label         { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logs-date.is-today     .tf-logs-date-day { color: #066cd6; }
    html:not([data-theme]) .tf-logs-date.is-yesterday .tf-logs-date-day { color: #0a8a39; }
    html:not([data-theme]) .tf-logs-date.is-recent    .tf-logs-date-day { color: #b86e00; }
    html:not([data-theme]) .tf-logs-date-time          { color: var(--tf-light-text-muted); }

    /* --- Alterar Valor NFSe --- */
    html:not([data-theme]) .tf-alteravalornfse-modal .modal-content,
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-content {
        background: var(--tf-light-bg) !important;
        color: var(--tf-light-text) !important;
        border-color: var(--tf-light-border) !important;
        box-shadow: var(--tf-light-shadow) !important;
    }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-title-text h5 { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-subtitle      { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-fieldlabel    { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-input-group   { background: #fff; border-color: var(--tf-light-border-strong); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-input         { color: var(--tf-light-text) !important; }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-input::placeholder { color: var(--tf-light-text-subtle); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-hint          { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-btn-recover   { color: var(--tf-light-text); border-color: var(--tf-light-border-strong); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-overlay       { background: rgba(15,23,42,.18) !important; }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-overlay .tf-pdf-loader { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border) !important; box-shadow: var(--tf-light-shadow-card); }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-message.is-success { color: #0a8a39; }
    html:not([data-theme]) .tf-alteravalornfse-modal .tf-valor-message.is-error   { color: #c0392b; }

    /* --- Empresas --- */
    html:not([data-theme]) .tf-empresas-modal .modal-content,
    html:not([data-theme]) .tf-empresas-content {
        background: var(--tf-light-bg) !important;
        color: var(--tf-light-text) !important;
        border-color: var(--tf-light-border) !important;
        box-shadow: var(--tf-light-shadow) !important;
    }
    html:not([data-theme]) .tf-empresas-title-text h5,
    html:not([data-theme]) .tf-empresas-title-text h5 label { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-empresas-subtitle       { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-field > label           { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-empresas-body .tf-input,
    html:not([data-theme]) .tf-empresas-body input.tf-input[type="text"],
    html:not([data-theme]) .tf-empresas-body select.tf-input { background: #fff !important; color: var(--tf-light-text) !important; border-color: var(--tf-light-border-strong) !important; }
    html:not([data-theme]) .tf-empresas-body .tf-input::placeholder { color: var(--tf-light-text-subtle); }
    html:not([data-theme]) .tf-empresas-body .tf-btn-cep { background: rgba(52,199,89,.10); color: #0a8a39; border-color: rgba(52,199,89,.30); }
    html:not([data-theme]) .tf-empresas-overlay        { background: rgba(15,23,42,.20) !important; }
    html:not([data-theme]) .tf-empresas-overlay .tf-pdf-loader { background: #fff; color: var(--tf-light-text); border-color: var(--tf-light-border) !important; box-shadow: var(--tf-light-shadow-card); }
    html:not([data-theme]) .tf-empresas-message        { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-empresas-message.is-success { color: #0a8a39; }
    html:not([data-theme]) .tf-empresas-message.is-error   { color: #c0392b; }

    /* --- Logout --- */
    html:not([data-theme]) .tf-logout-text          { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-logout-text-success  { color: #0a8a39; }
    html:not([data-theme]) .tf-logout-text-error    { color: #c0392b; }
    html:not([data-theme]) .tf-logout-subtext       { color: var(--tf-light-text-muted); }
    html:not([data-theme]) .tf-logout-icon-success .tf-logout-circle,
    html:not([data-theme]) .tf-logout-icon-success .tf-logout-check { stroke: #0a8a39; }
    html:not([data-theme]) .tf-logout-icon-error   .tf-logout-circle,
    html:not([data-theme]) .tf-logout-icon-error   .tf-logout-x     { stroke: #c0392b; }
}

/* ============================================================
 *  BADGES DE STATUS na tabela de servicos (.tf-status-trigger e
 *  select.selectpicker.badge) + POPUP customizado (.tf-status-popup).
 *
 *  Problema observado no light mode:
 *  - HTML do select tem classe .text-white (do Bootstrap, !important)
 *  - O CSS .badge.bg-* aplica color: var(--status-*-fg) (escuro no light)
 *  - .text-white vencia → texto branco sobre fundo claro = ilegivel
 *  - O .tf-status-trigger herda essas classes via JS, mesmo problema
 *
 *  Solucao: forcar a cor FG do tema (que ja eh adequada por bg) em
 *  TODOS os triggers/selects coloridos, com seletor especifico.
 * ============================================================ */

/* --- helper: trigger custom (.tf-status-trigger) e select original --- */
html[data-theme="light"] .tf-status-trigger,
html[data-theme="light"] .tf-status-trigger.text-white,
html[data-theme="light"] select.selectpicker.badge,
html[data-theme="light"] select.selectpicker[class*="bg-"] {
    color: var(--tf-light-text) !important;
    box-shadow: 0 1px 2px rgba(15,23,42,.06), 0 1px 1px rgba(15,23,42,.04) !important;
}
/* Cores tematicas — sempre legiveis no light */
html[data-theme="light"] .tf-status-trigger.bg-success,
html[data-theme="light"] select.selectpicker.bg-success { color: var(--status-success-fg, #0a8a39) !important; }
html[data-theme="light"] .tf-status-trigger.bg-warning,
html[data-theme="light"] select.selectpicker.bg-warning { color: var(--status-warning-fg, #b86e00) !important; }
html[data-theme="light"] .tf-status-trigger.bg-danger,
html[data-theme="light"] select.selectpicker.bg-danger  { color: var(--status-danger-fg, #c0392b) !important; }
html[data-theme="light"] .tf-status-trigger.bg-info,
html[data-theme="light"] .tf-status-trigger.bg-primary,
html[data-theme="light"] select.selectpicker.bg-info,
html[data-theme="light"] select.selectpicker.bg-primary { color: var(--status-info-fg, #066cd6) !important; }
html[data-theme="light"] .tf-status-trigger.bg-secondary,
html[data-theme="light"] .tf-status-trigger.bg-dark,
html[data-theme="light"] .tf-status-trigger.bg-light,
html[data-theme="light"] select.selectpicker.bg-secondary,
html[data-theme="light"] select.selectpicker.bg-dark,
html[data-theme="light"] select.selectpicker.bg-light   { color: var(--status-neutral-fg, #5b6478) !important; }

/* --- popup customizado (.tf-status-popup): fundo claro --- */
html[data-theme="light"] .tf-status-popup {
    background: #fff !important;
    border-color: var(--tf-light-border-strong) !important;
    box-shadow: 0 12px 32px rgba(15,23,42,.14), 0 2px 6px rgba(15,23,42,.06);
}
html[data-theme="light"] .tf-status-option       { color: var(--tf-light-text); }
html[data-theme="light"] .tf-status-option-text  { color: var(--tf-light-text) !important; }
html[data-theme="light"] .tf-status-option:hover,
html[data-theme="light"] .tf-status-option.is-active {
    background: rgba(10,132,255,.08);
}
html[data-theme="light"] .tf-status-option.is-selected { background: rgba(10,132,255,.14); }
html[data-theme="light"] .tf-status-dot         { box-shadow: 0 0 0 2px rgba(15,23,42,.06); }

/* --- waiting/loader principal da tabela (.svc-waiting / vision-loader) --- */
html[data-theme="light"] .svc-waiting,
html[data-theme="light"] .waiting {
    background: rgba(244,247,251,.65) !important;
}
html[data-theme="light"] .vision-loader {
    background: #fff;
    border: 1px solid var(--tf-light-border, rgba(15,23,42,.08));
    border-radius: 16px;
    box-shadow: var(--tf-light-shadow-card, 0 6px 16px rgba(15,23,42,.06));
    color: var(--tf-light-text);
}
html[data-theme="light"] .vision-loader .loader-text { color: var(--tf-light-text); }
html[data-theme="light"] .vision-spinner {
    border-color: rgba(15,23,42,.12);
    border-top-color: var(--accent, #0a84ff);
}

/* ============================================================
 *  TABELA tb_services (Tabela principal de servicos) — refinos
 *  As tokens --row-stripe e --row-hover ja existem em light no
 *  visionos.scss, mas alguns details herdam dark hardcoded.
 * ============================================================ */
html[data-theme="light"] .tb_services > tbody > tr             { color: var(--tf-light-text); border-bottom-color: var(--tf-light-border-soft); }
html[data-theme="light"] .tb_services > tbody > tr > td        { color: var(--tf-light-text); border-bottom-color: var(--tf-light-border-soft); }
html[data-theme="light"] .tb_services > tbody > tr > td label  { color: var(--tf-light-text) !important; }
html[data-theme="light"] .tb_services > tbody > tr:hover       { background: rgba(10,132,255,.05) !important; }

/* ============================================================
 *  Replicar para preferencia do SO (sem toggle manual)
 * ============================================================ */
@media (prefers-color-scheme: light) {

    /* Badges/triggers */
    html:not([data-theme]) .tf-status-trigger,
    html:not([data-theme]) .tf-status-trigger.text-white,
    html:not([data-theme]) select.selectpicker.badge,
    html:not([data-theme]) select.selectpicker[class*="bg-"] {
        color: var(--tf-light-text) !important;
        box-shadow: 0 1px 2px rgba(15,23,42,.06), 0 1px 1px rgba(15,23,42,.04) !important;
    }
    html:not([data-theme]) .tf-status-trigger.bg-success,
    html:not([data-theme]) select.selectpicker.bg-success { color: var(--status-success-fg, #0a8a39) !important; }
    html:not([data-theme]) .tf-status-trigger.bg-warning,
    html:not([data-theme]) select.selectpicker.bg-warning { color: var(--status-warning-fg, #b86e00) !important; }
    html:not([data-theme]) .tf-status-trigger.bg-danger,
    html:not([data-theme]) select.selectpicker.bg-danger  { color: var(--status-danger-fg, #c0392b) !important; }
    html:not([data-theme]) .tf-status-trigger.bg-info,
    html:not([data-theme]) .tf-status-trigger.bg-primary,
    html:not([data-theme]) select.selectpicker.bg-info,
    html:not([data-theme]) select.selectpicker.bg-primary { color: var(--status-info-fg, #066cd6) !important; }
    html:not([data-theme]) .tf-status-trigger.bg-secondary,
    html:not([data-theme]) .tf-status-trigger.bg-dark,
    html:not([data-theme]) .tf-status-trigger.bg-light,
    html:not([data-theme]) select.selectpicker.bg-secondary,
    html:not([data-theme]) select.selectpicker.bg-dark,
    html:not([data-theme]) select.selectpicker.bg-light   { color: var(--status-neutral-fg, #5b6478) !important; }

    /* Popup custom */
    html:not([data-theme]) .tf-status-popup {
        background: #fff !important;
        border-color: var(--tf-light-border-strong) !important;
        box-shadow: 0 12px 32px rgba(15,23,42,.14), 0 2px 6px rgba(15,23,42,.06);
    }
    html:not([data-theme]) .tf-status-option       { color: var(--tf-light-text); }
    html:not([data-theme]) .tf-status-option-text  { color: var(--tf-light-text) !important; }
    html:not([data-theme]) .tf-status-option:hover,
    html:not([data-theme]) .tf-status-option.is-active     { background: rgba(10,132,255,.08); }
    html:not([data-theme]) .tf-status-option.is-selected   { background: rgba(10,132,255,.14); }

    /* Waiting/loader principal */
    html:not([data-theme]) .svc-waiting,
    html:not([data-theme]) .waiting { background: rgba(244,247,251,.65) !important; }
    html:not([data-theme]) .vision-loader {
        background: #fff;
        border: 1px solid var(--tf-light-border, rgba(15,23,42,.08));
        border-radius: 16px;
        box-shadow: var(--tf-light-shadow-card, 0 6px 16px rgba(15,23,42,.06));
        color: var(--tf-light-text);
    }
    html:not([data-theme]) .vision-loader .loader-text { color: var(--tf-light-text); }
    html:not([data-theme]) .vision-spinner {
        border-color: rgba(15,23,42,.12);
        border-top-color: var(--accent, #0a84ff);
    }

    /* Tabela de servicos */
    html:not([data-theme]) .tb_services > tbody > tr             { color: var(--tf-light-text); border-bottom-color: var(--tf-light-border-soft); }
    html:not([data-theme]) .tb_services > tbody > tr > td        { color: var(--tf-light-text); border-bottom-color: var(--tf-light-border-soft); }
    html:not([data-theme]) .tb_services > tbody > tr > td label  { color: var(--tf-light-text) !important; }
    html:not([data-theme]) .tb_services > tbody > tr:hover       { background: rgba(10,132,255,.05) !important; }
}

