/* Nexa Flow · paletas "Moderno claro" (Pedra & Pinho) e "Moderno escuro" (Grafite & Sálvia).
   theme.js marca <html data-theme="light|dark" data-variant="modern">: o tema clássico continua
   como base (nenhuma tela fica sem estilo) e estas regras, mais específicas, trocam cores e tipografia. */

html[data-variant=modern][data-theme=light]{
 --m-bg:#f3f4f1;--m-surface:#ffffff;--m-field:#ffffff;--m-border:#e1e4de;--m-border-strong:#cfd4cd;
 --m-ink:#17191c;--m-muted:#575e65;
 --m-accent:#1d3b34;--m-accent-ink:#ffffff;--m-accent-2:#3f7d6b;
 --m-soft:#ebeee9;--m-soft-ink:#1d3b34;
 --m-notice-bg:#e6efea;--m-notice-ink:#1f4a3f;
 --m-free-bg:#eaf3ee;--m-free-bd:#cbe0d5;--m-free-ink:#17191c;
 --m-partial-bg:#f7f0dc;--m-partial-bd:#e6d39e;--m-partial-ink:#17191c;
 --m-full-bg:#f7e7e4;--m-full-bd:#e8c7c0;--m-full-ink:#17191c;
 --m-expense:#cdd3ce;--m-net:#17191c;--m-danger:#b4473f;
 --m-tooth:#ffffff;--m-tooth-sel-bg:#e1eee8;--m-tooth-sel-ink:#1d3b34;--m-tooth-sel-fill:#bfdccf;
 --m-backdrop:#17191c66;--m-shadow:0 1px 2px #17191c0a,0 6px 20px #17191c08;
 --m-glass:rgba(255,255,255,.80);--m-glass-side:rgba(255,255,255,.72);--m-glass-line:rgba(255,255,255,.70);--m-glass-edge:rgba(23,25,28,.07);
 --m-glass-backdrop:rgba(23,25,28,.26);--m-glass-toast:rgba(29,59,52,.86);--m-glass-shadow:0 24px 70px rgba(23,25,28,.16);
 --m-gate-bg:radial-gradient(1100px 620px at 12% 8%,#dce9e2 0%,transparent 62%),radial-gradient(900px 520px at 92% 92%,#ece5d6 0%,transparent 58%),#f3f4f1;
 --m-page-bg:radial-gradient(1200px 700px at 6% 0%,#dfeae4 0%,transparent 60%),radial-gradient(1000px 600px at 100% 100%,#eee8da 0%,transparent 55%),radial-gradient(700px 500px at 70% 20%,#e9efeb 0%,transparent 60%),#f3f4f1;
 --m-glass-card:rgba(255,255,255,.84);
 color-scheme:light;
}
html[data-variant=modern][data-theme=dark]{
 --m-bg:#101315;--m-surface:#171b1e;--m-field:#13171a;--m-border:#2a3135;--m-border-strong:#3a4247;
 --m-ink:#e7eae6;--m-muted:#9ba39f;
 --m-accent:#94c2ac;--m-accent-ink:#0e1b16;--m-accent-2:#94c2ac;
 --m-soft:#20272a;--m-soft-ink:#d5e6dd;
 --m-notice-bg:#1a2723;--m-notice-ink:#a8d1be;
 --m-free-bg:#15241d;--m-free-bd:#2c4a3c;--m-free-ink:#cfe6da;
 --m-partial-bg:#27231a;--m-partial-bd:#57492b;--m-partial-ink:#ebddb2;
 --m-full-bg:#2a1b1a;--m-full-bd:#5a3733;--m-full-ink:#eec9c2;
 --m-expense:#3a4246;--m-net:#e7eae6;--m-danger:#ee9c93;
 --m-tooth:#1e2427;--m-tooth-sel-bg:#23362f;--m-tooth-sel-ink:#bfe3d1;--m-tooth-sel-fill:#3b5c4f;
 --m-backdrop:#000000a6;--m-shadow:none;
 --m-glass:rgba(23,27,30,.78);--m-glass-side:rgba(23,27,30,.70);--m-glass-line:rgba(255,255,255,.07);--m-glass-edge:rgba(0,0,0,.35);
 --m-glass-backdrop:rgba(0,0,0,.42);--m-glass-toast:rgba(148,194,172,.88);--m-glass-shadow:0 24px 70px rgba(0,0,0,.50);
 --m-gate-bg:radial-gradient(1100px 620px at 12% 8%,#16302a 0%,transparent 62%),radial-gradient(900px 520px at 92% 92%,#2a2519 0%,transparent 58%),#101315;
 --m-page-bg:radial-gradient(1200px 700px at 6% 0%,#152a24 0%,transparent 60%),radial-gradient(1000px 600px at 100% 100%,#262218 0%,transparent 55%),radial-gradient(700px 500px at 70% 20%,#131d1b 0%,transparent 60%),#101315;
 --m-glass-card:rgba(23,27,30,.80);
 color-scheme:dark;
}

/* Variáveis usadas pelo tema clássico (p, small, legendas...) passam a seguir a paleta. */
html[data-variant=modern][data-theme]{
 --primary:var(--m-accent);--muted:var(--m-muted);--bg:var(--m-bg);--surface:var(--m-surface);
 --field:var(--m-field);--border:var(--m-border);--ink:var(--m-ink);--soft:var(--m-soft);
}

/* ---- Base e tipografia ---- */
html[data-variant=modern][data-theme] body{background:var(--m-bg);color:var(--m-ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
html[data-variant=modern][data-theme] :is(h1,h2,h3,.logo,.card strong,.calendar-month,.finance-total strong){font-family:inherit;font-weight:650;letter-spacing:-.02em;color:var(--m-ink)}
html[data-variant=modern][data-theme] h1{font-size:32px}
html[data-variant=modern][data-theme] h2{font-size:22px}
html[data-variant=modern][data-theme] :is(.card strong,.finance-total strong,td,.money-text){font-variant-numeric:tabular-nums}
html[data-variant=modern][data-theme] .eyebrow{letter-spacing:.12em;font-weight:600}
html[data-variant=modern][data-theme] #accessGate{background:var(--m-bg)}

/* ---- Superfícies ---- */
html[data-variant=modern][data-theme] :is(aside,.card,.panel,dialog){background:var(--m-surface);color:var(--m-ink);border-color:var(--m-border)}
html[data-variant=modern][data-theme] :is(.card,.panel){border-radius:14px;box-shadow:var(--m-shadow)}
html[data-variant=modern][data-theme] dialog{border-radius:18px}
html[data-variant=modern][data-theme] dialog::backdrop{background:var(--m-backdrop)}
html[data-variant=modern][data-theme] :is(header,td,th,.record-card,.record-tabs,.history-row,.theme-picker,.visual-odontogram){border-color:var(--m-border)}

/* ---- Botões e navegação ---- */
html[data-variant=modern][data-theme] button{background:var(--m-accent);color:var(--m-accent-ink);border-radius:10px;font-weight:550}
html[data-variant=modern][data-theme] :is(button.secondary,.record-tab,.tooth-button){background:var(--m-soft);color:var(--m-soft-ink)}
html[data-variant=modern][data-theme] nav button{background:transparent;color:var(--m-muted);font-weight:500}
html[data-variant=modern][data-theme] nav button:hover{color:var(--m-ink)}
html[data-variant=modern][data-theme] nav button.active{background:var(--m-soft);color:var(--m-ink);font-weight:600;box-shadow:inset 3px 0 0 var(--m-accent-2)}
html[data-variant=modern][data-theme] :is(.record-tab.active,.tooth-button.selected){background:var(--m-accent);color:var(--m-accent-ink)}
html[data-variant=modern][data-theme] .range-button.active{background:var(--m-accent)!important;color:var(--m-accent-ink)!important}
html[data-variant=modern][data-theme] :is(button,select,input,textarea):focus-visible{outline:2px solid var(--m-accent-2);outline-offset:2px}

/* ---- Campos ---- */
html[data-variant=modern][data-theme] :is(input,select,textarea){background:var(--m-field);color:var(--m-ink);border-color:var(--m-border-strong);border-radius:10px;accent-color:var(--m-accent-2)}
html[data-variant=modern][data-theme] ::placeholder{color:var(--m-muted);opacity:.8}

/* ---- Avisos, etiquetas, mensagens ---- */
html[data-variant=modern][data-theme] :is(.notice,.pill,.pending){background:var(--m-notice-bg);color:var(--m-notice-ink)}
html[data-variant=modern][data-theme] .toast{background:var(--m-accent);color:var(--m-accent-ink);border-radius:12px}
html[data-variant=modern][data-theme] #authMessage{color:var(--m-danger)}
html[data-variant=modern][data-theme] .ai-message{border-color:var(--m-border-strong)}
html[data-variant=modern][data-theme] :is(.patient-delete,.money-actions button.record-danger){color:var(--m-danger)!important}

/* ---- Agenda / calendário ---- */
html[data-variant=modern][data-theme] :is(.calendar-weekday,.calendar-day .day-count,.finance-legend,.finance-total span){color:var(--m-muted)}
html[data-variant=modern][data-theme] :is(.calendar-day,.calendar-legend .free){background:var(--m-free-bg);border-color:var(--m-free-bd);color:var(--m-free-ink)}
html[data-variant=modern][data-theme] :is(.calendar-day[data-status=partial],.calendar-legend .partial){background:var(--m-partial-bg);border-color:var(--m-partial-bd);color:var(--m-partial-ink)}
html[data-variant=modern][data-theme] :is(.calendar-day[data-status=full],.calendar-legend .full){background:var(--m-full-bg);border-color:var(--m-full-bd);color:var(--m-full-ink)}
html[data-variant=modern][data-theme] .calendar-day{border-radius:10px}
html[data-variant=modern][data-theme] .calendar-day.selected{outline-color:var(--m-accent-2)}

/* ---- Financeiro ---- */
html[data-variant=modern][data-theme] :is(.finance-total,.finance-total.net){background:var(--m-field);border-color:var(--m-border)}
html[data-variant=modern][data-theme] .finance-total.net{background:var(--m-soft)}
html[data-variant=modern][data-theme] .finance-total.negative strong{color:var(--m-danger)}
html[data-variant=modern][data-theme] .plan-total{color:var(--m-ink)}
html[data-variant=modern][data-theme] .bar{background:var(--m-border)}
html[data-variant=modern][data-theme] .bar i{background:var(--m-accent-2)}
html[data-variant=modern][data-theme] .finance-graph .gridline{stroke:var(--m-border)}
html[data-variant=modern][data-theme] .finance-graph :is(.axis-label,.month-label){fill:var(--m-muted)}
html[data-variant=modern][data-theme] .finance-graph .income-bar{fill:var(--m-accent-2)}
html[data-variant=modern][data-theme] .finance-graph .expense-bar{fill:var(--m-expense)}
html[data-variant=modern][data-theme] .finance-graph .net-line{stroke:var(--m-net)}
html[data-variant=modern][data-theme] .finance-graph .net-dot{stroke:var(--m-net);fill:var(--m-surface)}
html[data-variant=modern][data-theme] .finance-legend .legend-income{background:var(--m-accent-2)}
html[data-variant=modern][data-theme] .finance-legend .legend-expense{background:var(--m-expense)}
html[data-variant=modern][data-theme] .finance-legend .legend-net{background:var(--m-net)}
html[data-variant=modern][data-theme] #transactions .money-text{color:var(--m-ink)}
html[data-variant=modern][data-theme] #transactions .money-text:focus-visible{outline-color:var(--m-accent-2)}

/* ---- Odontograma ---- */
html[data-variant=modern][data-theme] .visual-map:after,
html[data-variant=modern][data-theme] .midline{border-color:var(--m-border-strong)}
html[data-variant=modern][data-theme] .visual-odontogram button.visual-tooth{background:transparent;color:var(--m-ink)}
html[data-variant=modern][data-theme] .tooth-shape{fill:var(--m-tooth)}
html[data-variant=modern][data-theme] .visual-odontogram button.visual-tooth:hover,
html[data-variant=modern][data-theme] .visual-odontogram button.visual-tooth.selected{background:var(--m-tooth-sel-bg);border-color:var(--m-accent-2);color:var(--m-tooth-sel-ink)}
html[data-variant=modern][data-theme] .visual-tooth.selected .tooth-shape{fill:var(--m-tooth-sel-fill)}
html[data-variant=modern][data-theme] .visual-odontogram button.baby-tooth{background:transparent;color:var(--m-muted);border-color:var(--m-border)}
html[data-variant=modern][data-theme] .visual-odontogram button.baby-tooth.selected{background:var(--m-tooth-sel-bg);border-color:var(--m-accent-2);color:var(--m-tooth-sel-ink)}

/* ---- Efeito vidro (só nas paletas Moderno, em poucos pontos) ----
   Janelas com a tela de trás desfocada, aviso flutuante, menu lateral e tela de login.
   Cartões, tabelas e campos continuam sólidos (legibilidade e desempenho).
   Sem suporte a backdrop-filter ou com "reduzir transparência" ativo: cores sólidas. */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 html[data-variant=modern][data-theme] dialog::backdrop{background:var(--m-glass-backdrop);-webkit-backdrop-filter:blur(6px) saturate(1.1);backdrop-filter:blur(6px) saturate(1.1)}
 html[data-variant=modern][data-theme] dialog{background:var(--m-glass);-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);border:1px solid var(--m-glass-line);box-shadow:0 0 0 1px var(--m-glass-edge),var(--m-glass-shadow)}
 html[data-variant=modern][data-theme] .toast{background:var(--m-glass-toast);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);border:1px solid var(--m-glass-line);box-shadow:var(--m-glass-shadow)}
 html[data-variant=modern][data-theme] aside{background:var(--m-glass-side);-webkit-backdrop-filter:blur(14px) saturate(1.15);backdrop-filter:blur(14px) saturate(1.15)}
 html[data-variant=modern][data-theme] #accessGate{background:var(--m-gate-bg)}
 html[data-variant=modern][data-theme] #accessGate .panel{background:var(--m-glass);-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);border:1px solid var(--m-glass-line);box-shadow:0 0 0 1px var(--m-glass-edge),var(--m-glass-shadow);border-radius:18px}
}
@media (prefers-reduced-transparency:reduce){
 html[data-variant=modern][data-theme] :is(dialog,.toast,aside,#accessGate .panel){background:var(--m-surface);-webkit-backdrop-filter:none;backdrop-filter:none}
 html[data-variant=modern][data-theme] .toast{background:var(--m-accent)}
 html[data-variant=modern][data-theme] dialog::backdrop{background:var(--m-backdrop);-webkit-backdrop-filter:none;backdrop-filter:none}
 html[data-variant=modern][data-theme] #accessGate{background:var(--m-bg)}
}
/* ---- Vidro visível no dia a dia (v1.9) ----
   Fundo da página com manchas suaves de cor (fixas ao rolar); menu lateral e cartões em vidro
   sobre uma base bem opaca, para o texto continuar firme. Campos e tabelas seguem sólidos. */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 html[data-variant=modern][data-theme] body{background:var(--m-page-bg);background-attachment:fixed}
 html[data-variant=modern][data-theme] aside{border-right:1px solid var(--m-glass-line);box-shadow:1px 0 0 var(--m-glass-edge)}
 html[data-variant=modern][data-theme] :is(.card,.panel){background:var(--m-glass-card);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid var(--m-glass-line);box-shadow:0 0 0 1px var(--m-glass-edge),var(--m-shadow)}
 html[data-variant=modern][data-theme] #accessGate .panel{background:var(--m-glass)}
}
@media (prefers-reduced-transparency:reduce){
 html[data-variant=modern][data-theme] body{background:var(--m-bg)}
 html[data-variant=modern][data-theme] :is(.card,.panel){background:var(--m-surface);-webkit-backdrop-filter:none;backdrop-filter:none}
}