/* Obsidian — temas compartilhados, com acentos ouro e bordô.
   O canvas frio e as cores semânticas continuam separados da marca.
   premium-glass.css aplica os materiais; este arquivo define luminosidade,
   contraste dos controles e compatibilidade com componentes legados. */
:root {
  color-scheme:light;
  --secondary-bg:#fff;--secondary-ink:#142536;--secondary-line:#91aec4;--secondary-hover:#e5eff7;--secondary-wash:linear-gradient(120deg,#ffffff80,#e6f1fa33);
  --canvas:#f4f8fc;--surface:#fff;--ink:#142536;--ink-soft:#455d71;--ink-faint:#587084;
  --line:#c5d3df;--line-soft:#dfe8ef;--card-bg:#ffffffdb;--card-border:#b5cbdc99;
  --chrome-bg:#101b25;--chrome-edge:#506477;--action-bg:#762b45;--action-hover:#8c3654;--button-bg:#762b45;--band-bg:#101b25;--public-action-bg:#762b45;
  --input-bg:#fff;--hover-bg:#e5eff7;--info:#205d89;--info-bg:#e4f0fa;
  --ok:#14685f;--ok-bg:#e2f3ef;--warn:#805214;--warn-bg:#fff2d9;--bad:#a13f35;--bad-bg:#ffebe7;
  --accent-violet:#647393;--violet-bg:#edf1f8;--accent-copper:#805214;--copper-bg:#fff2d9;
  --plum-950:#080b10;--plum-900:#101b25;--plum-700:#244057;
  --mineral-50:#fff;--mineral-100:#f4f8fc;--mineral-200:#dfe8ef;
  --jade-200:#d5e9f8;--jade-400:#b5e4ff;--jade-700:#205d89;
  --navy-950:#080b10;--navy-900:#101b25;--navy-800:#244057;--navy-700:#205d89;--navy-600:#205d89;--navy-500:#4b7b9e;--navy-400:#6b95b3;--navy-100:#e4f0fa;
  --gold-600:#8a6330;--gold-500:#d9b575;--gold-400:#e8c78f;--gold-300:#efdab5;--gold-200:#f8ebd4;--copper-500:#b86a52;
  --focus:#205d89;--lift-1:0 1px 1px #14253608,0 8px 25px #1425360d;--lift-2:0 15px 35px #1425361a;
  --glass-surface:linear-gradient(125deg,#ffffffed,#f4f8fce6 55%,#d5e9f84d);
  --glass-hero:linear-gradient(120deg,#e6f1fac9,#ffffffeb 48%,#d8eaf799);--glass-edge:#91aec488;
}
:root[data-theme="dark"] {color-scheme:dark;--secondary-bg:#101b25;--secondary-ink:#e4f1fb;--secondary-line:#718fa6;--secondary-hover:#1b3041;--secondary-wash:linear-gradient(120deg,#32465755,#09111b66);
  --canvas:#080b10;--surface:#101b25;--ink:#f4f8fc;--ink-soft:#b6c7d7;--ink-faint:#9aaebe;
  --line:#506477;--line-soft:#283b4b;--card-bg:#101b25e8;--card-border:#9eb9cf85;
  --input-bg:#0c151e;--hover-bg:#20384b;--button-bg:#762b45;
  --chrome-bg:#0b141d;--chrome-edge:#506477;--action-bg:#762b45;--action-hover:#8c3654;--band-bg:#0b141d;--public-action-bg:#762b45;
  --plum-950:#080b10;--plum-900:#101b25;--plum-700:#244057;--mineral-50:#101b25;
  --navy-950:#080b10;--navy-900:#101b25;--navy-800:#244057;--navy-400:#9db9d5;
  --jade-200:#d5e9f8;--jade-400:#b5e4ff;--jade-700:#b5e4ff;--navy-600:#b5e4ff;--navy-700:#b5e4ff;--navy-100:#20384b;
  --ok:#91dcd1;--ok-bg:#12352f;--warn:#f3d4a7;--warn-bg:#382b18;--bad:#ffb4a5;--bad-bg:#3c2525;
  --info:#b5e4ff;--info-bg:#20384b;--accent-violet:#b8c6df;--violet-bg:#233044;
  --accent-copper:#f3d4a7;--copper-bg:#382b18;--focus:#b5e4ff;
  --lift-1:0 1px 0 #ffffff22 inset,0 8px 25px #0005;--lift-2:0 15px 35px #0007;
  --glass-surface:linear-gradient(125deg,#31465966,#080e16bb 55%,#27425766);
  --glass-hero:linear-gradient(120deg,#15273870,#03080dda 45%,#233e5260);--glass-edge:#9eb9cf85;}
/* Sem JS, acompanha o SO; explícito claro/escuro continua tendo precedência. */
@media (prefers-color-scheme:dark) {
  :root:not([data-theme]) {color-scheme:dark;--secondary-bg:#101b25;--secondary-ink:#e4f1fb;--secondary-line:#718fa6;--secondary-hover:#1b3041;--secondary-wash:linear-gradient(120deg,#32465755,#09111b66);
  --canvas:#080b10;--surface:#101b25;--ink:#f4f8fc;--ink-soft:#b6c7d7;--ink-faint:#9aaebe;
  --line:#506477;--line-soft:#283b4b;--card-bg:#101b25e8;--card-border:#9eb9cf85;
  --input-bg:#0c151e;--hover-bg:#20384b;--button-bg:#762b45;
  --chrome-bg:#0b141d;--chrome-edge:#506477;--action-bg:#762b45;--action-hover:#8c3654;--band-bg:#0b141d;--public-action-bg:#762b45;
  --plum-950:#080b10;--plum-900:#101b25;--plum-700:#244057;--mineral-50:#101b25;
  --navy-950:#080b10;--navy-900:#101b25;--navy-800:#244057;--navy-400:#9db9d5;
  --jade-200:#d5e9f8;--jade-400:#b5e4ff;--jade-700:#b5e4ff;--navy-600:#b5e4ff;--navy-700:#b5e4ff;--navy-100:#20384b;
  --ok:#91dcd1;--ok-bg:#12352f;--warn:#f3d4a7;--warn-bg:#382b18;--bad:#ffb4a5;--bad-bg:#3c2525;
  --info:#b5e4ff;--info-bg:#20384b;--accent-violet:#b8c6df;--violet-bg:#233044;
  --accent-copper:#f3d4a7;--copper-bg:#382b18;--focus:#b5e4ff;
  --lift-1:0 1px 0 #ffffff22 inset,0 8px 25px #0005;--lift-2:0 15px 35px #0007;
  --glass-surface:linear-gradient(125deg,#31465966,#080e16bb 55%,#27425766);
  --glass-hero:linear-gradient(120deg,#15273870,#03080dda 45%,#233e5260);--glass-edge:#9eb9cf85;}
}
body {background:var(--canvas);color:var(--ink)}
::selection {background:#d5e9f8;color:#142536}
.skip-link {background:var(--ink);color:var(--canvas)}
/* O seletor não possui name: jamais entra nos POSTs de negócio. */
.theme-control {display:inline-flex;align-items:center;gap:8px;max-width:100%;font:500 11px/1.4 Inter,system-ui,sans-serif;color:var(--ink-soft)}
.theme-control[hidden] {display:none!important}
.theme-control select {font:500 16px/1.4 Inter,system-ui,sans-serif;min-height:44px;max-width:100%;padding:8px 28px 8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer}
.theme-control select:focus-visible {outline:3px solid var(--focus)!important;outline-offset:3px}
.topo-tools {flex-wrap:wrap;justify-content:flex-end}
.theme-control + .pp-back {margin-top:18px}
.pp-form-wrap > .theme-control {display:flex;justify-content:flex-end}
.pp-nav > .theme-control {order:4}
.topo-portal > .theme-control {order:2;color:#b6c7d7}
.topo-portal > .sair {order:3}
body .input,body select.input,body textarea.input {background:var(--input-bg);color:var(--ink);border-color:var(--line)}
body .input::placeholder {color:var(--ink-faint)}
body .command-open {background:var(--surface);color:var(--ink);border-color:var(--line)}
body tbody tr:hover {background:var(--hover-bg)}
body .command-menu {background:var(--surface);color:var(--ink);border-color:var(--line)}
body .command-head input {color:var(--ink)}
body .command-results a:hover,body .command-results a:focus {background:var(--hover-bg)}
body .aviso-erro,body .badge-bad {background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
body .aviso-sucesso,body .badge-ok {background:var(--ok-bg);color:var(--ok)}
body .badge-warn {background:var(--warn-bg);color:var(--warn)}
body .badge-info {background:var(--info-bg);color:var(--info)}
body .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--ok-bg));color:var(--ok)}
body .kpi:nth-child(2) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--violet-bg));color:var(--accent-violet)}
body .kpi:nth-child(3) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--copper-bg));color:var(--accent-copper)}
body .kpi:nth-child(4) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--info-bg));color:var(--info)}
body .focus-note {border-color:var(--accent-copper)}
body :focus-visible {outline-color:var(--focus)!important}
body .rail {--focus:#b5e4ff}
/* Obsidian: mesma geometria e transparência, agora com duas luminosidades.
   Sobrescreve os tokens locais da prévia sem mexer no canvas ou no módulo 3D. */
html body.glass-preview {
  --canvas:inherit;--surface:inherit;--ink:inherit;--ink-soft:inherit;--ink-faint:inherit;
  --line:inherit;--line-soft:inherit;--card-bg:inherit;--card-border:inherit;
  --jade-700:inherit;--jade-200:#d5e9f8;--mineral-50:inherit;--plum-950:#142536;
  --ok:inherit;--warn:inherit;--bad:inherit;
  background:radial-gradient(ellipse at 85% 20%,#b5e4ff0d,transparent 50%),var(--canvas);color:var(--ink);
}
html .glass-preview .rail {background:linear-gradient(125deg,#253647ed,#080e16f5 55%,#142330e8);border-color:var(--glass-edge)}
html .glass-preview .nav-active {background:linear-gradient(125deg,#b5e4ff2e,#b5e4ff1a);border-color:#b5e4ff80;box-shadow:inset 0 1px 4px #d5e9f833;color:#f4f8fc}
html .glass-preview .nav-active svg {color:#b5e4ff}
html .glass-preview .marca-selo {background:linear-gradient(140deg,#f4f8fc,#d5e9f8 40%,#547e9b 70%,#e4f0fa);color:#101b25}
html .glass-preview .workspace-hero {background:var(--glass-hero);border-color:var(--glass-edge);box-shadow:inset 0 1px 2px #ffffff55,0 18px 50px #14253626}
html .glass-preview .workspace-hero h2 {color:var(--ink)}
html .glass-preview .workspace-hero strong {color:var(--jade-700)}
html .glass-preview .hero-actions .btn-primary {background:var(--action-bg);color:#f4f8fc;border-color:#d9b57580;box-shadow:inset 0 1px 2px #ffffff30}
html .glass-preview .card,html .glass-preview .kpi {background:var(--glass-surface);border-color:var(--glass-edge);box-shadow:inset 0 1px 2px #ffffff44,var(--lift-1)}
html .glass-preview .kpi:hover {border-color:var(--accent-violet)}
html .glass-preview .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--ok-bg));color:var(--ok);border-color:var(--line);box-shadow:inset 0 1px 2px #ffffff55,4px 5px 0 #101b2540}
html .glass-preview .kpi:nth-child(2) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--violet-bg));color:var(--accent-violet)}
html .glass-preview .kpi:nth-child(3) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--copper-bg));color:var(--accent-copper)}
html .glass-preview .kpi:nth-child(4) .kpi-icon {background:linear-gradient(135deg,var(--surface),var(--info-bg));color:var(--info)}
html .glass-preview .kpi-icon svg {filter:none}
html .glass-preview .acao-link {background:var(--surface);border-color:var(--line);color:var(--ink)}
html .glass-preview .acao-link svg {color:var(--accent-violet)}
html .glass-preview .acao-link:hover {background:var(--hover-bg)}
html .glass-preview .focus-note {background:var(--copper-bg)}
html .glass-preview .focus-note a {color:var(--accent-copper)}
html .glass-preview .command-open {background:var(--surface);color:var(--ink);border-color:var(--line)}
html .glass-preview .command-menu {background:var(--surface);color:var(--ink);border-color:var(--line)}
html .glass-preview .command-results a:hover {background:var(--hover-bg)}
html .glass-preview .motion-toggle {background:var(--surface);color:var(--ink);border-color:var(--line)}
html .glass-preview :focus-visible {outline-color:var(--focus)!important}
html .glass-preview .rail :focus-visible {outline-color:#b5e4ff!important}
/* Público: não inverter as esculturas e as bandas editoriais de marca. */
body.premium-public {--pp-ink:var(--ink);--pp-muted:var(--ink-soft);--pp-green:var(--jade-700);background:var(--canvas);color:var(--ink)}
.premium-public .pp-editorial,.premium-public .pp-hero-art {background:radial-gradient(ellipse at 65% 60%,#244057 0,transparent 65%),#101b25;color:#f4f8fc}
.premium-public .pp-workflow {background:#101b25;color:#f4f8fc}
.premium-public .pp-button,.premium-public .btn {background:var(--action-bg);color:#f4f8fc}
.premium-public .pp-button-dark {background:var(--action-bg)}
.premium-public .input {background:var(--input-bg);color:var(--ink);border-color:var(--line);box-shadow:none}
.premium-public .input::placeholder {color:var(--ink-faint)}
.premium-public .pp-form-footer,.premium-public .pp-nav,.premium-public .pp-resources,.premium-public .pp-feature-grid article,.premium-public .pp-footer {border-color:var(--line)}
.premium-public .erro {background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
.premium-public .mensagem {background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.premium-public .pp-skip {background:var(--surface);color:var(--ink)}
/* Portal e conversas mantêm autores, histórico e upload sem alterações. */
body.premium-portal {background:var(--canvas);color:var(--ink)}
.premium-portal .card,.premium-portal .portal-composer,.premium-portal .portal-inbox .mensagem {background:var(--surface);border-color:var(--line)}
.premium-portal .card-cabeca,.premium-portal .item {border-color:var(--line)}
.premium-portal .card-cabeca p,.premium-portal .item-nota,.premium-portal .mensagem time,.premium-portal .rodape,.premium-portal .portal-empty {color:var(--ink-soft)}
.premium-portal .portal-contato,.premium-portal .portal-upload,.premium-portal .mensagem {background:var(--ok-bg);border-color:var(--line)}
.premium-portal .mensagem.equipe {background:var(--violet-bg);border-color:var(--line);border-left-color:var(--accent-copper)}
.premium-portal .mensagem strong,.premium-portal .mono,.premium-portal .portal-detalhes summary {color:var(--jade-700)}
.premium-portal textarea {background:var(--input-bg);color:var(--ink);border-color:var(--line)}
.premium-portal .portal-button-secondary {background:var(--surface);color:var(--jade-700);border-color:var(--line)}
.premium-portal .portal-button-secondary:hover,.premium-portal .portal-inbox a:hover {background:var(--hover-bg)}
.premium-portal .nota,.premium-portal .vazio {color:var(--ink-soft)}
.premium-portal .portal-conversa-heading {border-color:var(--line)}
.premium-portal .portal-sucesso {background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.premium-portal .aviso-erro,.premium-portal .erro {background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}
.premium-portal input[type=file] {background:var(--input-bg);color:var(--ink-soft);border-color:var(--line)}
.premium-portal input[type=file]::file-selector-button {background:var(--ok-bg);color:var(--ok)}
.premium-portal label.theme-control {display:inline-flex;margin:0}
/* Todas as áreas compostas por base.html recebem o mesmo contrato visual,
   inclusive cálculos, rescisão e competências. Sem depender de .glass-preview. */
.app-shell .rail {background:var(--chrome-bg);border-color:var(--chrome-edge)}
.app-shell .barra-movel {background:var(--chrome-bg)}
.app-shell .nav-active {background:#ffffff0d;border-color:var(--chrome-edge)}
.app-shell .nav-active svg {color:#d5e9f8}
.app-main .card,.app-main .kpi {background:var(--card-bg);border-color:var(--card-border)}
.app-main .card:hover {border-color:var(--line)}
.app-main .card-cabeca,.app-main th,.app-main td {border-color:var(--line-soft)}
.app-main thead th {background:var(--surface);color:var(--ink-soft)}
.app-main :where(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]),select,textarea) {background:var(--input-bg);color:var(--ink);border-color:var(--line)}
.app-main input[type=checkbox],.app-main input[type=radio] {accent-color:var(--info)}
.app-main .btn-primary {background:var(--action-bg);color:#fff}
.app-main .btn-primary:hover {background:var(--action-hover)}
/* Botões legados que usam --bad como fundo precisam de texto claro contrastante,
   sem alterar a cor semântica das mensagens ou a ação do botão. */
.app-main .btn-primary[style*="background:var(--bad)"] {--bad:#923f36}
.app-main .acao-link:hover {background:var(--hover-bg);color:var(--ink);border-color:var(--line)}
.app-main .text-gray-100,.app-main .text-gray-200,.app-main .text-gray-700,.app-main .text-gray-800,.app-main .text-gray-900 {color:var(--ink)}
.app-main .text-gray-300,.app-main .text-gray-400,.app-main .text-gray-500,.app-main .text-gray-600 {color:var(--ink-soft)}
.app-main .bg-white,.app-main .bg-gray-50,.app-main .bg-gray-100,.app-main .bg-gray-800,.app-main .bg-gray-900 {background:var(--surface);color:var(--ink)}
.app-main .border-gray-200,.app-main .border-gray-300,.app-main .border-gray-700,.app-main .border-gray-800 {border-color:var(--line)}
.app-main .text-red-300,.app-main .text-red-500,.app-main .text-red-600 {color:var(--bad)}
.app-main .text-green-500,.app-main .text-green-600 {color:var(--ok)}
.app-main .text-amber-500,.app-main .text-amber-600 {color:var(--warn)}
.app-main .observacoes {background:var(--surface);color:var(--ink-soft);border-color:var(--line)}
/* Bandas públicas mantêm o contraste da marca sem plum fixo na escolha escura. */
.premium-public .pp-editorial,.premium-public .pp-hero-art {background:radial-gradient(ellipse at 65% 60%,#b5e4ff16,transparent 65%),var(--band-bg)}
.premium-public .pp-workflow {background:var(--band-bg)}
.premium-public .pp-button,.premium-public .btn {background:var(--public-action-bg)}
.premium-portal .portal-button {background:var(--action-bg);border-color:var(--chrome-edge);color:#fff}
.premium-portal .portal-button:hover {background:var(--action-hover)}
.premium-portal .portal-button-secondary {background:var(--surface);color:var(--info);border-color:var(--line)}
/* Neutraliza os detalhes fixos de marca dos CSS anteriores sem filtros de
   inversão: a escultura mantém relevo, mudando só o material para prata fria. */
.app-shell .marca-selo {background:linear-gradient(140deg,#fff,#b5e4ff 40%,#547e9b 70%,#edfaff);color:#101b25;box-shadow:inset 0 1px 1px #fff,0 4px 14px #0005}
.app-shell .marca-sub,.app-shell .secao,.app-shell .sair,.app-shell .creditos {color:#aabfcf}
.app-shell .nav {color:#cfdfec}
.app-shell .nav svg {color:#b5d1e5}
body.premium-public {--pp-paper:#f4f8fc;--pp-jade:#b5e4ff;--pp-copper:#83b2d3}
.premium-public .pp-column-back {background:linear-gradient(90deg,#547e9b,#b5e4ff 65%,#345570 66%)}
.premium-public .pp-column-front {background:linear-gradient(90deg,#abc3d5,#f4f8fc 65%,#7099b6 66%,#345570)}
.premium-public .pp-beam {background:linear-gradient(#d5e9f8,#8ab6d4);box-shadow:0 5px 0 #345570}
.premium-public .pp-balance {background:linear-gradient(130deg,#f4f8fc,#b5e4ff 60%,#547e9b)}
.premium-public .pp-balance::before {background:#abc3d5}
.premium-public .pp-plinth {background:linear-gradient(165deg,#d5e9f8 42%,#7099b6 43%,#345570)}
.premium-public .pp-orbit {border-color:#b5e4ff40}
.premium-public .pp-editorial-copy > p:last-child,.premium-public .pp-editorial-note,.premium-public .pp-sculpture-caption,.premium-public .pp-steps p {color:#b6c7d7}
.premium-public .pp-mini-icon {background:linear-gradient(130deg,#e4f0fa,#b5e4ff 65%,#7099b6 66%);border-color:#547e9b55;box-shadow:5px 5px 0 #1425360e}
.premium-public .pp-icon-stack {box-shadow:4px 4px 0 var(--canvas),5px 5px 0 #7099b6,9px 9px 0 #b5e4ff66}
.premium-public .pp-icon-circle {background:conic-gradient(from 20deg,#f4f8fc,#7099b6,#b5e4ff,#f4f8fc)}
.premium-portal .portal-emblema,.premium-portal .portal-brand-icon {background:linear-gradient(145deg,#e4f0fa,#b5e4ff 65%,#7099b6);color:#17466c;box-shadow:7px 9px 0 #34557070,16px 21px 28px #0003,inset 0 2px 0 #fff9}
.premium-portal .capa p,.premium-portal .marca-sub,.premium-portal .portal-brand small {color:#b6c7d7}
/* Contrato único dos secundários. :root + .app-main supera as variantes
   .glass-preview .hero-actions e os estados legados sem usar !important.
   Tokens próprios impedem que --surface/--ink locais troquem seu contraste.
   Sem transição de cor/fundo: a mudança de tema deve ser atômica na pintura. */
html:root body .btn-suave,
html:root body .app-main .btn-suave {
  background-color:var(--secondary-bg);
  background-image:var(--secondary-wash);
  color:var(--secondary-ink);
  border-color:var(--secondary-line);
  box-shadow:inset 0 1px 1px #ffffff26;
  transition:transform .16s ease,opacity .16s ease;
}
html:root body .btn-suave:hover,
html:root body .btn-suave:focus-visible,
html:root body .app-main .btn-suave:hover,
html:root body .app-main .btn-suave:focus-visible {
  background-color:var(--secondary-hover);
  background-image:var(--secondary-wash);
  color:var(--secondary-ink);
  border-color:var(--focus);
}
/* Não animar a troca de paleta: evita flashes e respeita reduced-motion. */
@media (max-width:640px) {
  .app-main > .topo {flex-wrap:wrap;height:auto!important;gap:12px}
  .topo-tools {justify-content:flex-start}
  .theme-control {gap:6px}
  .theme-control select {padding-right:20px}
  .premium-public .pp-nav > .theme-control {order:2}
  .premium-public .pp-nav nav {order:5}
  .premium-public .pp-nav-login {order:3}
  .premium-portal .topo-portal {flex-wrap:wrap;gap:12px}
}
@media print {
  .theme-control {display:none!important}
  html body {--ink:#142536;--ink-soft:#595660;--canvas:white;--surface:white;color:#142536;background:white}
}
