/* ============================================================
   Orion UI Framework — fonte modular (Fase 1)
   orion.css continua sendo o ponto de entrada compatível.
   Os @import abaixo trazem settings (aliases --orion-*) e a
   fundação (reset/base/tipografia/focus). Devem permanecer no
   TOPO do arquivo (regra do CSS: @import antes de qualquer regra).
   Em produção pode-se concatenar; a fonte oficial é modular.

   POLÍTICA DE CACHE-BUSTING (Fase 8): o navegador cacheia cada URL
   de @import de forma independente, então bumpar só o orion.css?v=
   NÃO força o refetch dos módulos — a URL do @import continua igual.
   Por isso TODO @import de módulo carrega seu próprio ?v=. Ao editar
   um módulo, bump o ?v= DELE (e o do orion.css, p/ o entry re-parsear).
   O tag é a data da última edição do módulo (yyyymmdd[-slug]).
   ============================================================ */
@import "orion/01-settings/tokens.css?v=20260725";
@import "orion/01-settings/breakpoints.css?v=20260725";
@import "orion/02-foundation/reset.css?v=20260725";
@import "orion/02-foundation/base.css?v=20260725";
@import "orion/02-foundation/typography.css?v=20260725";
@import "orion/02-foundation/focus.css?v=20260725";
@import "orion/03-layout/containers.css?v=20260725";
@import "orion/03-layout/grid.css?v=20260725";
@import "orion/03-layout/stack.css?v=20260725";
@import "orion/04-utilities/display.css?v=20260725";
@import "orion/04-utilities/flex.css?v=20260725";
@import "orion/04-utilities/spacing.css?v=20260725";
@import "orion/04-utilities/sizing.css?v=20260724-fase7";
@import "orion/04-utilities/text.css?v=20260725";
@import "orion/04-utilities/colors.css?v=20260725";
@import "orion/04-utilities/borders.css?v=20260725";
@import "orion/04-utilities/accessibility.css?v=20260725";
@import "orion/05-components/buttons.css?v=20260725";
@import "orion/05-components/forms.css?v=20260725";
@import "orion/05-components/cards.css?v=20260725";
@import "orion/05-components/badges.css?v=20260725";
@import "orion/05-components/alerts.css?v=20260725";
@import "orion/05-components/spinner.css?v=20260725";
@import "orion/05-components/progress.css?v=20260725";
@import "orion/05-components/skeleton.css?v=20260725";
@import "orion/05-components/empty-state.css?v=20260725";
@import "orion/05-components/modal.css?v=20260724-fase7-scroll";
@import "orion/05-components/dropdown.css?v=20260725";
@import "orion/05-components/combobox.css?v=20260728-modalclip";
@import "orion/05-components/tabs.css?v=20260725";
@import "orion/05-components/accordion.css?v=20260725";
@import "orion/05-components/toast.css?v=20260725";
@import "orion/05-components/offcanvas.css?v=20260725";
@import "orion/05-components/tooltip.css?v=20260725";
@import "orion/05-components/confirm.css?v=20260725-fase8";
@import "orion/05-components/date-range.css?v=20260725-fase8";
@import "orion/05-components/pagination.css?v=20260725-fase9-accent";
@import "orion/05-components/navigation.css?v=20260725-fase9";
@import "orion/06-modules/table.css?v=20260728-toolbaralign";
@import "orion/06-modules/kanban.css?v=20260725-fase8-mobile";
@import "orion/06-modules/odontogram.css?v=20260725";
@import "orion/06-modules/ai.css?v=20260729-abas";
@import "orion/06-modules/calendar.css?v=20260725-recursos";

/* ===================== TOKENS ORION ===================== */
:root{
  --bg:#06060c;
  --panel-bg:rgba(13,13,25,.45);
  --text-main:#f4f4f7;
  --text-muted:#94a3b8;

  --cyan:#06b6d4; --cyan-glow:rgba(6,182,212,.4);
  --emerald:#10b981; --emerald-glow:rgba(16,185,129,.4);
  --rose:#f43f5e; --rose-glow:rgba(244,63,94,.4);

  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;
  --r-sm:12px;--r-md:16px;--r-lg:22px;--r-pill:20px;--r-circle:50%;

  --fs-xs:9px;--fs-sm:11px;--fs-base:13px;--fs-md:15px;--fs-lg:18px;--fs-xl:23px;--fs-hero:36px;
}
[data-theme="forja"]{
  --primary:#f97316;
  --primary-glow:rgba(249,115,22,.4);
  --panel-border:rgba(249,115,22,.15);
}
[data-theme="orion"]{
  --primary:#a855f7;
  --primary-glow:rgba(168,85,247,.4);
  --panel-border:rgba(147,51,234,.15);
}
[data-theme="cyber"]{
  --primary:#06b6d4;
  --primary-glow:rgba(6,182,212,.4);
  --panel-border:rgba(6,182,212,.15);
}
[data-theme="matrix"]{
  --primary:#10b981;
  --primary-glow:rgba(16,185,129,.4);
  --panel-border:rgba(16,185,129,.15);
}
[data-theme="blood"]{
  --primary:#f43f5e;
  --primary-glow:rgba(244,63,94,.4);
  --panel-border:rgba(244,63,94,.15);
}
[data-theme="sung"]{
  --bg:#03020a;
  --panel-bg:rgba(13,8,31,.62);
  --text-main:#f8f5ff;
  --text-muted:#a99bc7;
  --primary:#8b5cf6;
  --primary-glow:rgba(139,92,246,.42);
  --panel-border:rgba(168,85,247,.2);
  --cyan:#38bdf8;
  --cyan-glow:rgba(56,189,248,.28);
  --rose:#fb2f68;
  --rose-glow:rgba(251,47,104,.3);
  --emerald:#22d3ee;
  --emerald-glow:rgba(34,211,238,.22);
}
[data-theme="ember"]{
  --bg:#05080d;
  --panel-bg:rgba(9,15,24,.66);
  --text-main:#fff8ef;
  --text-muted:#a8b2bd;
  --primary:#ff9f0a;
  --primary-glow:rgba(255,159,10,.36);
  --panel-border:rgba(255,159,10,.18);
  --cyan:#38bdf8;
  --cyan-glow:rgba(56,189,248,.18);
  --rose:#fb4d00;
  --rose-glow:rgba(251,77,0,.32);
  --emerald:#ffd166;
  --emerald-glow:rgba(255,209,102,.2);
}
[data-theme="arounda"]{
  --bg:#161316;
  --panel-bg:rgba(40,40,40,.58);
  --text-main:#fff;
  --text-muted:#d1c7b8;
  --primary:#ffd556;
  --primary-glow:rgba(255,213,86,.34);
  --panel-border:rgba(255,213,86,.2);
  --cyan:#eaff00;
  --cyan-glow:rgba(234,255,0,.2);
  --rose:#ff4b00;
  --rose-glow:rgba(255,75,0,.35);
  --emerald:#f59e0b;
  --emerald-glow:rgba(245,158,11,.22);
}
[data-theme="crimson"]{
  --bg:#050505;
  --panel-bg:rgba(11,11,11,.72);
  --text-main:#f5f2ed;
  --text-muted:#b9aaa4;
  --primary:#8b0d1a;
  --primary-glow:rgba(139,13,26,.36);
  --panel-border:rgba(139,13,26,.24);
  --cyan:#f5f2ed;
  --cyan-glow:rgba(245,242,237,.1);
  --rose:#b11226;
  --rose-glow:rgba(177,18,38,.3);
  --emerald:#d6c7bf;
  --emerald-glow:rgba(214,199,191,.12);
}
[data-theme="nova"]{
  --bg:#070b0f;
  --panel-bg:rgba(10,15,20,.68);
  --text-main:#f8f4e8;
  --text-muted:#a99f8e;
  --primary:#d6a84a;
  --primary-glow:rgba(214,168,74,.32);
  --panel-border:rgba(214,168,74,.18);
  --cyan:#93a4af;
  --cyan-glow:rgba(147,164,175,.16);
  --rose:#b9842d;
  --rose-glow:rgba(185,132,45,.22);
  --emerald:#ffe6a3;
  --emerald-glow:rgba(255,230,163,.16);
}
[data-theme="marple"]{
  --bg:#1f1f1f;
  --panel-bg:rgba(38,36,35,.62);
  --text-main:#fff4ef;
  --text-muted:#d7b9ad;
  --primary:#ca2851;
  --primary-glow:rgba(202,40,81,.36);
  --panel-border:rgba(255,103,102,.2);
  --cyan:#ffe3b3;
  --cyan-glow:rgba(255,227,179,.18);
  --rose:#ff6766;
  --rose-glow:rgba(255,103,102,.32);
  --emerald:#ffb173;
  --emerald-glow:rgba(255,177,115,.22);
}
[data-theme="aureum"]{
  --bg:#0d0c0f;
  --panel-bg:rgba(25,23,27,.66);
  --text-main:#fff4d7;
  --text-muted:#a89d8e;
  --primary:#d29f22;
  --primary-glow:rgba(210,159,34,.34);
  --panel-border:rgba(210,159,34,.2);
  --cyan:#252628;
  --cyan-glow:rgba(80,84,88,.18);
  --rose:#5d0018;
  --rose-glow:rgba(93,0,24,.28);
  --emerald:#f4c95d;
  --emerald-glow:rgba(244,201,93,.18);
}
[data-theme="infected"]{
  --bg:#060a12;
  --panel-bg:rgba(10,14,22,.68);
  --text-main:#f6ead7;
  --text-muted:#a99f91;
  --primary:#caa66a;
  --primary-glow:rgba(202,166,106,.32);
  --panel-border:rgba(202,166,106,.18);
  --cyan:#4b5666;
  --cyan-glow:rgba(75,86,102,.18);
  --rose:#e5b66a;
  --rose-glow:rgba(229,182,106,.22);
  --emerald:#f1d39b;
  --emerald-glow:rgba(241,211,155,.14);
}
[data-theme="sigma"]{
  --bg:#030704;
  --panel-bg:rgba(5,14,8,.66);
  --text-main:#efffe5;
  --text-muted:#9dbb8d;
  --primary:#8bdc3c;
  --primary-glow:rgba(139,220,60,.34);
  --panel-border:rgba(139,220,60,.2);
  --cyan:#b7ff55;
  --cyan-glow:rgba(183,255,85,.2);
  --rose:#5fa51f;
  --rose-glow:rgba(95,165,31,.22);
  --emerald:#6ee83a;
  --emerald-glow:rgba(110,232,58,.22);
}
[data-theme="eclipse"]{
  --bg:#060814;
  --panel-bg:rgba(9,13,28,.66);
  --text-main:#f7f0ef;
  --text-muted:#9ca6b8;
  --primary:#ff4a3d;
  --primary-glow:rgba(255,74,61,.34);
  --panel-border:rgba(255,74,61,.18);
  --cyan:#677386;
  --cyan-glow:rgba(103,115,134,.18);
  --rose:#c92734;
  --rose-glow:rgba(201,39,52,.28);
  --emerald:#ff7a45;
  --emerald-glow:rgba(255,122,69,.22);
}
[data-theme="sunset"]{
  --bg:#1f1511;
  --panel-bg:rgba(48,33,24,.62);
  --text-main:#fff6e7;
  --text-muted:#d0ad8a;
  --primary:#f88f22;
  --primary-glow:rgba(248,143,34,.34);
  --panel-border:rgba(248,143,34,.18);
  --cyan:#ffe3b3;
  --cyan-glow:rgba(255,227,179,.18);
  --rose:#ea6113;
  --rose-glow:rgba(234,97,19,.3);
  --emerald:#fbb931;
  --emerald-glow:rgba(251,185,49,.22);
}
[data-theme="claro"]{
  --bg:#eef2f7;
  --panel-bg:rgba(255,255,255,.50);
  --text-main:#111827;
  --text-muted:#64748b;
  --primary:#f97316;
  --primary-glow:rgba(249,115,22,.22);
  --panel-border:rgba(255,255,255,.62);
  --cyan:#0891b2;
  --cyan-glow:rgba(8,145,178,.18);
  --rose:#e11d48;
  --rose-glow:rgba(225,29,72,.14);
  --emerald:#059669;
  --emerald-glow:rgba(5,150,105,.16);
}
[data-theme="polar"]{
  --bg:#f7fafc;
  --panel-bg:rgba(255,255,255,.52);
  --text-main:#0f172a;
  --text-muted:#64748b;
  --primary:#2563eb;
  --primary-glow:rgba(37,99,235,.2);
  --panel-border:rgba(255,255,255,.66);
  --cyan:#0284c7;
  --cyan-glow:rgba(2,132,199,.16);
  --rose:#dc2626;
  --rose-glow:rgba(220,38,38,.13);
  --emerald:#059669;
  --emerald-glow:rgba(5,150,105,.16);
}
[data-theme="solar"]{
  --bg:#fff8ed;
  --panel-bg:rgba(255,255,255,.50);
  --text-main:#1f2937;
  --text-muted:#6b7280;
  --primary:#d97706;
  --primary-glow:rgba(217,119,6,.2);
  --panel-border:rgba(255,255,255,.64);
  --cyan:#0f766e;
  --cyan-glow:rgba(15,118,110,.16);
  --rose:#be123c;
  --rose-glow:rgba(190,18,60,.13);
  --emerald:#16a34a;
  --emerald-glow:rgba(22,163,74,.16);
}
[data-theme="grafite"]{
  --bg:#07090d;
  --panel-bg:rgba(20,24,33,.58);
  --text-main:#f8fafc;
  --text-muted:#9ca3af;
  --primary:#f59e0b;
  --primary-glow:rgba(245,158,11,.32);
  --panel-border:rgba(245,158,11,.14);
  --cyan:#38bdf8;
  --cyan-glow:rgba(56,189,248,.22);
  --rose:#fb7185;
  --rose-glow:rgba(251,113,133,.18);
}
[data-theme="oceano"]{
  --bg:#031018;
  --panel-bg:rgba(5,25,38,.62);
  --text-main:#ecfeff;
  --text-muted:#8fb6c7;
  --primary:#14b8a6;
  --primary-glow:rgba(20,184,166,.3);
  --panel-border:rgba(20,184,166,.16);
  --cyan:#22d3ee;
  --cyan-glow:rgba(34,211,238,.24);
  --rose:#f43f5e;
  --rose-glow:rgba(244,63,94,.18);
}
[data-theme="noir"]{
  --bg:#08050a;
  --panel-bg:rgba(18,9,15,.55);
  --text-main:#f7eef2;
  --text-muted:#a68a9a;
  --primary:#ec4899;
  --primary-glow:rgba(236,72,153,.4);
  --panel-border:rgba(236,72,153,.18);
  --cyan:#60a5fa;
  --cyan-glow:rgba(96,165,250,.22);
  --rose:#f43f5e;
  --rose-glow:rgba(244,63,94,.3);
  --emerald:#d946ef;
  --emerald-glow:rgba(217,70,239,.22);
}
[data-theme="aurora"]{
  --bg:#05030d;
  --panel-bg:rgba(16,11,32,.55);
  --text-main:#f5f0ff;
  --text-muted:#a79bc9;
  --primary:#8b5cf6;
  --primary-glow:rgba(139,92,246,.42);
  --panel-border:rgba(139,92,246,.22);
  --cyan:#22d3ee;
  --cyan-glow:rgba(34,211,238,.3);
  --rose:#ec4899;
  --rose-glow:rgba(236,72,153,.32);
  --emerald:#a78bfa;
  --emerald-glow:rgba(167,139,250,.24);
}
[data-theme="gold"]{
  --bg:#0a0704;
  --panel-bg:rgba(22,17,8,.58);
  --text-main:#fdf6e3;
  --text-muted:#b3a486;
  --primary:#f2b544;
  --primary-glow:rgba(242,181,68,.36);
  --panel-border:rgba(242,181,68,.2);
  --cyan:#f4d58d;
  --cyan-glow:rgba(244,213,141,.2);
  --rose:#c2410c;
  --rose-glow:rgba(194,65,12,.28);
  --emerald:#facc15;
  --emerald-glow:rgba(250,204,21,.22);
}
[data-theme="midnight"]{
  --bg:#050810;
  --panel-bg:rgba(11,17,30,.58);
  --text-main:#eef4fb;
  --text-muted:#8fa0bd;
  --primary:#6366f1;
  --primary-glow:rgba(99,102,241,.36);
  --panel-border:rgba(99,102,241,.2);
  --cyan:#38bdf8;
  --cyan-glow:rgba(56,189,248,.22);
  --rose:#f43f5e;
  --rose-glow:rgba(244,63,94,.26);
  --emerald:#a5b4fc;
  --emerald-glow:rgba(165,180,252,.2);
}
[data-theme="neonglass"]{
  --bg:#050b16;
  --panel-bg:rgba(8,18,32,.32);
  --text-main:#eaf7ff;
  --text-muted:#7fa0c4;
  --primary:#ff2f92;
  --primary-glow:rgba(255,47,146,.4);
  --panel-border:rgba(255,47,146,.3);
  --cyan:#1de9ff;
  --cyan-glow:rgba(29,233,255,.3);
  --rose:#ff5fa8;
  --rose-glow:rgba(255,95,168,.3);
  --emerald:#2dfcd4;
  --emerald-glow:rgba(45,252,212,.22);
}
/* ===================== TEMAS SOLIDOS (PRETO / BRANCO) =====================
   Sem vidro/blur/gradiente — paineis opacos usando so a escala neutra
   abaixo, ao contrario dos demais temas (glass + gradiente colorido). */
[data-theme="preto"]{
  --bg:#000000;
  --panel-bg:#171717;
  --text-main:#fafafa;
  --text-muted:#a3a3a3;
  --primary:#fafafa;
  --primary-glow:rgba(250,250,250,.2);
  --panel-border:#262626;
  --cyan:#d4d4d4;
  --cyan-glow:rgba(212,212,212,.16);
  --rose:#525252;
  --rose-glow:rgba(82,82,82,.28);
  --emerald:#e5e5e5;
  --emerald-glow:rgba(229,229,229,.18);
}
[data-theme="branco"]{
  --bg:#ffffff;
  --panel-bg:#f5f5f5;
  --text-main:#171717;
  --text-muted:#737373;
  --primary:#171717;
  --primary-glow:rgba(23,23,23,.16);
  --panel-border:#e5e5e5;
  --cyan:#404040;
  --cyan-glow:rgba(64,64,64,.14);
  --rose:#737373;
  --rose-glow:rgba(115,115,115,.2);
  --emerald:#171717;
  --emerald-glow:rgba(23,23,23,.14);
}
/* Acento solido (preto/branco): a imagem e a sombra viram tokens, iguais aos
   demais temas. O sidebar-avatar segue enumerado porque nao consome --accent-*
   (tem gradiente proprio nos outros temas). Ver a nota do bloco de acento abaixo. */
[data-theme="preto"],
[data-theme="branco"]{
  --accent-bg:var(--primary);
  --accent-shadow:0 4px 14px var(--primary-glow);
}
[data-theme="preto"] .sidebar-avatar,
[data-theme="branco"] .sidebar-avatar{
  background:var(--primary);
  box-shadow:0 4px 14px var(--primary-glow);
}
[data-theme="preto"] .orion-brand-mark,
[data-theme="preto"] .sidebar-avatar,
[data-theme="preto"] .orion-btn-primary,
[data-theme="preto"] .view-tab.active,
[data-theme="preto"] .page-btn.active{color:#000;}
[data-theme="branco"] .orion-brand-mark,
[data-theme="branco"] .sidebar-avatar,
[data-theme="branco"] .orion-btn-primary,
[data-theme="branco"] .view-tab.active,
[data-theme="branco"] .page-btn.active{color:#fff;}

[data-theme="branco"]::before{
  background:
    linear-gradient(rgba(15,23,42,.032) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(15,23,42,.032) 1px, transparent 1px) 0 0/40px 40px;
}
[data-theme="branco"] .theme-toggle-row{color:#404040;}
[data-theme="branco"] .theme-toggle-row:hover{background:rgba(0,0,0,.045);}
[data-theme="branco"] .theme-mini-select{
  background:#fff;
  border-color:#d4d4d4;
  color:#171717;
}
[data-theme="branco"] .theme-mini-select option{background:#fff;color:#111827;}
[data-theme="branco"] .theme-option{color:#404040;}
[data-theme="branco"] .theme-option:hover{background:rgba(0,0,0,.045);}
[data-theme="branco"] .theme-option.active{background:rgba(0,0,0,.07);}
@supports (appearance: base-select) {
  [data-theme="branco"] select.orion-input::picker(select),
  [data-theme="branco"] select.filter-select::picker(select),
  [data-theme="branco"] select.theme-mini-select::picker(select){
    background:#fff;
    border-color:rgba(15,23,42,.14);
    box-shadow:0 18px 48px rgba(15,23,42,.18);
  }
  [data-theme="branco"] select.orion-input option,
  [data-theme="branco"] select.filter-select option,
  [data-theme="branco"] select.theme-mini-select option{
    color:#101018;
  }
}
[data-theme="branco"] select.orion-input option,
[data-theme="branco"] .filter-select option{background:#fff;color:#101018;}
[data-theme="branco"] .orion-card{box-shadow:0 8px 24px rgba(0,0,0,.06);}
[data-theme="branco"] .orion-input{
  background:#fff;
  border-color:#d4d4d4;
  color:var(--text-main);
  box-shadow:none;
}
[data-theme="branco"] .orion-btn-ghost,
[data-theme="branco"] .orion-icon-btn{
  background:#f5f5f5;
  border-color:#d4d4d4;
  color:var(--text-muted);
}
[data-theme="branco"] .orion-btn-ghost:hover,
[data-theme="branco"] .orion-icon-btn:hover{
  background:#e5e5e5;
  border-color:#a3a3a3;
  color:var(--text-main);
}
[data-theme="branco"] .orion-header-title h1{
  background:linear-gradient(90deg, #171717, #737373);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
[data-theme="branco"] .orion-table thead th{
  background:#ededed;
}
[data-theme="branco"] .orion-table-wrap{
  background:#f5f5f5;
  border-color:#e5e5e5;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
[data-theme="branco"] .orion-table tbody td{border-bottom-color:#e5e5e5;}
[data-theme="branco"] .orion-table tbody tr:hover{background:#f0f0f0;}
[data-theme="branco"] .diag-edit-table th{
  background:#e5e5e5;
  color:#171717;
}
[data-theme="branco"] .diag-edit-table th,
[data-theme="branco"] .diag-edit-table td{border-color:#d4d4d4;}
[data-theme="branco"] .diag-edit-table tfoot td{
  background:#f5f5f5;
  color:var(--text-main);
}
[data-theme="branco"] .diag-cell-input{
  background:#ffffff;
  border-color:#d4d4d4;
  color:var(--text-main);
}
[data-theme="branco"] .dash-chart-baseline{stroke:rgba(0,0,0,.15);}
[data-theme="branco"] .dash-chart-grid-line{stroke:rgba(0,0,0,.07);}
[data-theme="branco"] .dash-hover-guide{stroke:rgba(0,0,0,.35);}
[data-theme="branco"] .dash-chart-tooltip{
  background:#ffffff;
  border-color:rgba(0,0,0,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.15);
}
[data-theme="branco"] .dashboard-donut::before{background:#f5f5f5;}
[data-theme="branco"] .dashboard-chart-panel{
  background:#ededed;
  border-color:#e5e5e5;
}
[data-theme="branco"] .comparador-table tbody td{border-bottom:1px solid #e5e5e5;}
[data-theme="branco"] .ai-chat-panel{
  background:#ffffff;
  border-color:#e5e5e5;
  box-shadow:0 20px 60px rgba(0,0,0,.12);
}
[data-theme="branco"] .orion-topbar{
  background:#ffffff;
  border-bottom-color:#e5e5e5;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
}
[data-theme="branco"] .orion-sidebar{
  background:#fafafa;
  border-right-color:#e5e5e5;
  box-shadow:none;
}
[data-theme="branco"] .sidebar-link{color:#404040;}
[data-theme="branco"] .sidebar-link:hover{background:rgba(0,0,0,.045);}
[data-theme="branco"] .sidebar-link.active{
  background:#f0f0f0;
  border-color:#d4d4d4;
  color:var(--text-main);
  box-shadow:none;
}
[data-theme="branco"] .orion-pagination{
  border-color:#e5e5e5;
  background:#fafafa;
  box-shadow:none;
}
[data-theme="branco"] .pagination-summary{border-top-color:#e5e5e5;}
/* O :not(.active) desfaz o empate 0,2,0 com .page-btn.active, que agora
   mora em 05-components/pagination.css (@import = antes do corpo). Esta
   regra ja perdia a disputa de border-color pro estado ativo; o :not()
   so torna isso independente de ordem. Renderizacao inalterada. */
[data-theme="branco"] .page-btn:not(.active),
[data-theme="branco"] .summary-mode-btn{
  background:#f5f5f5;
  border-color:#d4d4d4;
  color:var(--text-muted);
}
[data-theme="branco"] .page-btn:hover:not(.disabled):not(.active),
[data-theme="branco"] .summary-mode-btn:hover{
  background:#e5e5e5;
  border-color:#a3a3a3;
  color:var(--text-main);
}
[data-theme="branco"] .footer-summary-label{color:#525252;}

[data-theme="claro"] .orion-table thead th,
[data-theme="polar"] .orion-table thead th,
[data-theme="solar"] .orion-table thead th{
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(226,232,240,.42));
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
}
[data-theme="claro"] .orion-input::placeholder,
[data-theme="polar"] .orion-input::placeholder,
[data-theme="solar"] .orion-input::placeholder{color:var(--text-muted);opacity:.78;}
[data-theme="claro"] select.orion-input option,
[data-theme="claro"] .filter-select option,
[data-theme="polar"] select.orion-input option,
[data-theme="polar"] .filter-select option,
[data-theme="solar"] select.orion-input option,
[data-theme="solar"] .filter-select option{background:#fff;color:#101018;}

/* ===================== THEME SWITCHER ===================== */
.theme-switcher{position:relative;}
.theme-popover{position:absolute;top:44px;right:0;z-index:60;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;width:300px;max-height:min(70vh,620px);overflow-y:auto;}
.theme-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:7px 5px;border-radius:var(--r-sm);cursor:pointer;font-size:10px;line-height:1.2;color:#fff;text-align:center;transition:.15s;}
.theme-option:hover{background:rgba(255,255,255,.06);}
.theme-option.active{background:rgba(255,255,255,.09);font-weight:600;}
.theme-option.active .theme-swatch{border-color:rgba(255,255,255,.75);box-shadow:0 0 0 2px rgba(255,255,255,.18);}
.theme-swatch{display:block;width:100%;height:34px;border-radius:9px;flex-shrink:0;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.theme-popover-divider{grid-column:1 / -1;height:1px;background:rgba(255,255,255,.08);margin:4px 2px;}
.theme-toggle-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);color:#fff;transition:.15s;}
.theme-toggle-row:hover{background:rgba(255,255,255,.06);}
.theme-toggle-row span:first-child{display:flex;align-items:center;gap:8px;}
.orion-switch{position:relative;width:34px;height:20px;flex-shrink:0;}
.orion-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1;}
.orion-switch-track{position:absolute;inset:0;background:rgba(255,255,255,.14);border-radius:999px;transition:.2s;}
.orion-switch-track::before{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.4);}
.orion-switch input:checked + .orion-switch-track{background:var(--primary);}
.orion-switch input:checked + .orion-switch-track::before{transform:translateX(14px);}
[data-theme="claro"] .theme-toggle-row,
[data-theme="polar"] .theme-toggle-row,
[data-theme="solar"] .theme-toggle-row{color:#334155;}
[data-theme="claro"] .theme-toggle-row:hover,
[data-theme="polar"] .theme-toggle-row:hover,
[data-theme="solar"] .theme-toggle-row:hover{background:rgba(15,23,42,.045);}
.theme-mini-select{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-sm);
  color:#fff;
  font-size:var(--fs-xs);
  padding:4px 6px;
  cursor:pointer;
  outline:none;
}
[data-theme="claro"] .theme-mini-select,
[data-theme="polar"] .theme-mini-select,
[data-theme="solar"] .theme-mini-select{
  background:rgba(15,23,42,.05);
  border-color:rgba(15,23,42,.14);
  color:#334155;
}
[data-theme="claro"] .theme-mini-select option,
[data-theme="polar"] .theme-mini-select option,
[data-theme="solar"] .theme-mini-select option{background:#fff;color:#111827;}
.theme-mini-range{width:96px;accent-color:#fff;cursor:pointer;}
[data-theme="claro"] .theme-mini-range,
[data-theme="polar"] .theme-mini-range,
[data-theme="solar"] .theme-mini-range{accent-color:#334155;}

/* ===================== FUNDO ANIMADO (CANVAS) ===================== */
#orionBgEffect{position:fixed;inset:0;z-index:0;pointer-events:none;display:none;}

/* ===================== ESFERAS DE FUNDO ===================== */
.orion-bg-orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.bg-orb{position:absolute;border-radius:50%;will-change:transform;}
@keyframes bgOrbFloatA{0%,100%{transform:translate(0,0);}25%{transform:translate(60px,-90px);}50%{transform:translate(140px,10px);}75%{transform:translate(40px,90px);}}
@keyframes bgOrbFloatB{0%,100%{transform:translate(0,0);}25%{transform:translate(-110px,60px);}50%{transform:translate(-40px,150px);}75%{transform:translate(-130px,20px);}}
@keyframes bgOrbFloatC{0%,100%{transform:translate(0,0);}25%{transform:translate(90px,100px);}50%{transform:translate(-70px,140px);}75%{transform:translate(-100px,-30px);}}
@keyframes bgOrbFloatD{0%,100%{transform:translate(0,0);}25%{transform:translate(-80px,-110px);}50%{transform:translate(90px,-140px);}75%{transform:translate(120px,-20px);}}
[data-theme="claro"] .theme-option,
[data-theme="polar"] .theme-option,
[data-theme="solar"] .theme-option{
  color:#111827;
}
[data-theme="claro"] .theme-option:hover,
[data-theme="polar"] .theme-option:hover,
[data-theme="solar"] .theme-option:hover{
  background:rgba(15,23,42,.06);
}
[data-theme="claro"] .theme-option.active,
[data-theme="polar"] .theme-option.active,
[data-theme="solar"] .theme-option.active{
  background:rgba(15,23,42,.08);
}

/* ===================== FILTER MANAGER ===================== */
.filter-manager{position:relative;}
.filter-add-popover{position:absolute;top:44px;left:0;z-index:60;display:flex;flex-direction:column;gap:4px;padding:8px;min-width:170px;}
.filter-opt{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--text-main);}
.filter-opt:hover{background:rgba(255,255,255,.06);}
.filter-opt.disabled{opacity:.35;cursor:not-allowed;}
.filter-remove{margin-left:4px;cursor:pointer;color:var(--text-muted);}
.filter-remove:hover{color:var(--rose);}
.filter-chip{display:flex;align-items:center;gap:0;}

/* reset universal + body base + font-family → orion/02-foundation/{reset,base,typography}.css (Fase 1) */

/* ===================== SHELL (topbar / sidebar / layout do app) =====================
   Daqui ate a secao COMPONENTES BASE e o chrome da aplicacao: fundo, topbar,
   sidebar e o grid do #page-content. Estava tudo sem cabecalho, herdando por
   engano o titulo FILTER MANAGER da secao anterior (que sao so as 8 linhas de
   .filter-manager/.filter-chip/.filter-opt).

   NAO virou orion/05-components/navigation.css pelo mesmo motivo da PAGINACAO
   (ver o cabecalho daquela secao e a nota no MANUAL): o visual do shell esta
   espalhado por [data-theme="branco"/"preto"], [data-theme="claro"/"polar"/
   "solar"], body.glass-liquid e ~190 linhas de @media (max-width:768px), todos
   no corpo deste arquivo e todos DEPOIS daqui. Qualquer @import cai antes do
   corpo inteiro e inverteria esses empates. ============================== */

body::before{
  content:'';position:fixed;inset:0;
  background:
    linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px) 0 0/40px 40px;
  pointer-events:none; z-index:0;
}
[data-theme="claro"]::before,
[data-theme="polar"]::before,
[data-theme="solar"]::before{
  background:
    linear-gradient(rgba(15,23,42,.032) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(15,23,42,.032) 1px, transparent 1px) 0 0/40px 40px;
}
[data-theme="sung"]::before{
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px) 0 0/40px 40px;
}
[data-theme="sung"]{
  --accent-bg:linear-gradient(135deg,#fb2f68 0%, #8b5cf6 48%, #38bdf8 100%);
  --accent-shadow:0 10px 28px rgba(139,92,246,.34);
}
[data-theme="sung"] .sidebar-avatar{
  background:linear-gradient(135deg,#38bdf8 0%, #8b5cf6 48%, #fb2f68 100%);
}
[data-theme="ember"]::before,
[data-theme="arounda"]::before,
[data-theme="crimson"]::before,
[data-theme="nova"]::before,
[data-theme="marple"]::before,
[data-theme="aureum"]::before,
[data-theme="infected"]::before,
[data-theme="sigma"]::before,
[data-theme="eclipse"]::before,
[data-theme="sunset"]::before,
[data-theme="noir"]::before,
[data-theme="aurora"]::before,
[data-theme="gold"]::before,
[data-theme="midnight"]::before{
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px) 0 0/40px 40px;
}
/* Acento de 3 paradas (Fase 9 — tokenizacao).
   Antes: 56 seletores (14 temas x 4 elementos: .orion-brand-mark,
   .orion-btn-primary, .view-tab.active, .page-btn.active) repetindo a MESMA
   declaracao ja 100% token. A declaracao virou os tokens --accent-bg /
   --accent-shadow, consumidos pelas regras-base de cada componente via
   var(--token, <fallback do elemento>). Aqui so resta atribuir o token aos
   14 temas que usam esse acento — a lista "quais temas" (14 seletores)
   desacoplada de "quais elementos" (as regras-base). O 2-stop padrao
   (var(--primary),#c2410c) mora nos fallbacks; preto/branco e sung atribuem
   suas proprias variantes acima. O sidebar-avatar NAO entra: tem gradiente
   proprio (invertido) e segue enumerado no bloco abaixo. */
[data-theme="ember"],[data-theme="arounda"],[data-theme="crimson"],[data-theme="nova"],
[data-theme="marple"],[data-theme="aureum"],[data-theme="infected"],[data-theme="sigma"],
[data-theme="eclipse"],[data-theme="sunset"],[data-theme="noir"],[data-theme="aurora"],
[data-theme="gold"],[data-theme="midnight"]{
  --accent-bg:linear-gradient(135deg,var(--rose) 0%, var(--primary) 50%, var(--cyan) 100%);
  --accent-shadow:0 10px 28px var(--primary-glow);
}
[data-theme="ember"] .sidebar-avatar,
[data-theme="arounda"] .sidebar-avatar,
[data-theme="crimson"] .sidebar-avatar,
[data-theme="nova"] .sidebar-avatar,
[data-theme="marple"] .sidebar-avatar,
[data-theme="aureum"] .sidebar-avatar,
[data-theme="infected"] .sidebar-avatar,
[data-theme="sigma"] .sidebar-avatar,
[data-theme="eclipse"] .sidebar-avatar,
[data-theme="sunset"] .sidebar-avatar,
[data-theme="noir"] .sidebar-avatar,
[data-theme="aurora"] .sidebar-avatar,
[data-theme="gold"] .sidebar-avatar,
[data-theme="midnight"] .sidebar-avatar{
  background:linear-gradient(135deg,var(--cyan) 0%, var(--primary) 48%, var(--rose) 100%);
}

/* shell modo A (dashboard fixo) */
html,body{height:100%;overflow-x:hidden;}
body{
  display:flex;
  gap:0;
  align-items:stretch;
  min-height:100vh;
  overflow-y:auto;
  padding-top:0;
  font-size:var(--fs-base);
}
.orion-topbar{
  position:fixed;
  top:0;
  left:224px;
  right:0;
  z-index:90;
  height:56px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:var(--sp-4);
  align-items:center;
  padding:6px var(--sp-4);
  background:linear-gradient(180deg, rgba(7,7,12,.94), rgba(7,7,12,.82));
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 12px 28px rgba(0,0,0,.2);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  transition:left .22s ease;
}
.topbar-left,
.topbar-right{
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  min-width:0;
}
.topbar-left{
  justify-self:start;
}
.topbar-company{
  min-width:0;
  max-width:360px;
  color:var(--text-muted);
  font-size:var(--fs-sm);
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.topbar-right{
  justify-self:end;
  justify-content:flex-end;
  margin-left:auto;
}
.topbar-user{
  display:flex;
  align-items:center;
  gap:8px;
  padding:5px 9px;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  color:var(--text-main);
  cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-align:left;
  transition:.2s;
}
.topbar-user:hover{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06);}
.topbar-user .sidebar-avatar{
  width:28px;
  height:28px;
}
.topbar-user span{display:block;font-size:var(--fs-sm);}
.topbar-user small{display:block;color:var(--text-muted);font-size:9px;margin-top:1px;}
.profile-chevron{font-size:9px;color:var(--text-muted);margin-left:2px;}
/* .profile-modal-box saiu na Fase 8: o #profileModal virou .orion-modal--lg. */
/* Sidebar de navegacao -> orion/05-components/navigation.css (Fase 9). Os skins de tema (branco/claro/polar/solar/glass-liquid) e o @media mobile seguem abaixo, no corpo. */

.orion-main{
  position:relative;
  z-index:1;
  flex:1;
  min-width:0;
  max-width:calc(100% - 224px);
  padding-top:56px;
  height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  transition:max-width .22s ease;
}
.orion-app{position:relative;z-index:1;max-width:1200px;margin:0 auto;min-height:0;padding:0 var(--sp-5) var(--sp-5);}
.page-shell{width:100%;}

/* (estado colapsado da sidebar + .sidebar-backdrop tambem em navigation.css) */

/* ===================== SCROLLBARS ===================== */
/* scrollbars universais (*) → orion/02-foundation/reset.css (Fase 1) */

/* ===================== COMPONENTES BASE ===================== */
.orion-card{
  background:var(--panel-bg);
  border:1px solid var(--panel-border);
  backdrop-filter:blur(25px) saturate(160%);
  -webkit-backdrop-filter:blur(25px) saturate(160%);
  border-radius:var(--r-lg);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.05), 0 8px 32px rgba(0,0,0,.5);
  transition:all .3s cubic-bezier(.25,.8,.25,1);
}
.orion-btn{height:40px;padding:0 18px;border-radius:var(--r-sm);font-weight:600;font-size:var(--fs-base);cursor:pointer;border:none;transition:.25s;font-family:'Plus Jakarta Sans',sans-serif;display:inline-flex;align-items:center;gap:8px;}
.orion-btn-mini{height:32px;padding:0 10px;font-size:var(--fs-xs);gap:6px;}
.orion-btn:active{transform:scale(.97);}
.orion-btn-primary{background:var(--accent-bg,linear-gradient(135deg,var(--primary),#c2410c));color:#fff;box-shadow:var(--accent-shadow,0 4px 16px var(--primary-glow));}
.orion-btn-ghost{background:rgba(255,255,255,.05);color:var(--text-main);}
.orion-btn-ghost.active{border:1px solid var(--primary);color:var(--primary);background:rgba(249,115,22,.08);}

.orion-icon-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);color:var(--text-muted);font-size:12px;cursor:pointer;flex-shrink:0;transition:.2s;}
.orion-icon-btn:active{transform:scale(.92);}
.orion-icon-btn.logout-btn:hover{border-color:rgba(244,63,94,.45);color:var(--rose);}

.orion-input{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:6.5px 11px;color:#fff;font-size:var(--fs-base);outline:none;transition:.2s;}
.orion-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);}
.orion-input:-webkit-autofill,
.orion-input:-webkit-autofill:hover,
.orion-input:-webkit-autofill:focus,
.orion-input:-webkit-autofill:active{
  -webkit-box-shadow:0 0 0 1000px rgba(255,255,255,.02) inset !important;
  -webkit-text-fill-color:#fff !important;
  caret-color:#fff;
  transition:background-color 9999s ease-in-out 0s;
}
.orion-input::placeholder{color:var(--text-muted);opacity:.5;}
select.orion-input option, .filter-select option{background:#12121f;color:#f4f4f7;}

/* ---------- SELECT CUSTOMIZÁVEL (Chrome 135+; demais navegadores caem no popup nativo) ---------- */
@supports (appearance: base-select) {
  select.orion-input,
  select.filter-select,
  select.theme-mini-select{
    appearance:base-select;
    text-align:left;
    justify-content:flex-start;
    align-items:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  select.orion-input::picker(select),
  select.filter-select::picker(select),
  select.theme-mini-select::picker(select){
    appearance:base-select;
    text-align:left;
    background:rgba(12,12,20,.98);
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--r-sm);
    box-shadow:0 18px 48px rgba(0,0,0,.55);
    padding:6px;
    margin-top:6px;
    max-height:320px;
    overflow:auto;
    /* Visível por padrão — a animação de entrada fica só no @starting-style,
       assim o popup nunca fica preso em opacity:0 em versões sem :open. */
    opacity:1;
    transition:opacity .12s ease, transform .12s ease;
  }
  @starting-style{
    select.orion-input::picker(select),
    select.filter-select::picker(select),
    select.theme-mini-select::picker(select){
      opacity:0;
      transform:translateY(-4px);
    }
  }
  select.orion-input::picker-icon,
  select.filter-select::picker-icon,
  select.theme-mini-select::picker-icon{
    color:var(--text-muted);
    font-size:11px;
    margin-left:auto;
  }
  select.orion-input option,
  select.filter-select option,
  select.theme-mini-select option{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:8px;
    padding:7px 10px;
    border-radius:calc(var(--r-sm) - 6px);
    background:transparent;
    color:var(--text-main);
    font-size:var(--fs-sm);
    cursor:pointer;
    transition:background .12s;
  }
  select.orion-input option:hover,
  select.orion-input option:focus,
  select.filter-select option:hover,
  select.filter-select option:focus,
  select.theme-mini-select option:hover,
  select.theme-mini-select option:focus{
    background:color-mix(in srgb, var(--primary) 15%, transparent);
  }
  select.orion-input option:checked,
  select.filter-select option:checked,
  select.theme-mini-select option:checked{
    color:var(--primary);
    font-weight:600;
  }
  select.orion-input option::checkmark,
  select.filter-select option::checkmark,
  select.theme-mini-select option::checkmark{
    /* Sem margin-left:auto — o ::checkmark existe (reservado) em TODAS as opções
       como primeiro item flex; empurrá-lo para a direita arrasta o texto junto. */
    color:var(--primary);
  }
  [data-theme="claro"] select.orion-input::picker(select),
  [data-theme="claro"] select.filter-select::picker(select),
  [data-theme="claro"] select.theme-mini-select::picker(select),
  [data-theme="polar"] select.orion-input::picker(select),
  [data-theme="polar"] select.filter-select::picker(select),
  [data-theme="polar"] select.theme-mini-select::picker(select),
  [data-theme="solar"] select.orion-input::picker(select),
  [data-theme="solar"] select.filter-select::picker(select),
  [data-theme="solar"] select.theme-mini-select::picker(select){
    background:#fff;
    border-color:rgba(15,23,42,.14);
    box-shadow:0 18px 48px rgba(15,23,42,.18);
  }
  [data-theme="claro"] select.orion-input option,
  [data-theme="claro"] select.filter-select option,
  [data-theme="claro"] select.theme-mini-select option,
  [data-theme="polar"] select.orion-input option,
  [data-theme="polar"] select.filter-select option,
  [data-theme="polar"] select.theme-mini-select option,
  [data-theme="solar"] select.orion-input option,
  [data-theme="solar"] select.filter-select option,
  [data-theme="solar"] select.theme-mini-select option{
    color:#101018;
  }
}

[data-theme="claro"] .orion-card,
[data-theme="polar"] .orion-card,
[data-theme="solar"] .orion-card{
  background:linear-gradient(135deg, rgba(255,255,255,.62), rgba(255,255,255,.34));
  border-color:rgba(255,255,255,.66);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78), inset 0 -1px 0 rgba(15,23,42,.04), 0 22px 58px rgba(15,23,42,.13);
  backdrop-filter:blur(28px) saturate(190%);
  -webkit-backdrop-filter:blur(28px) saturate(190%);
}
[data-theme="claro"] .orion-input,
[data-theme="polar"] .orion-input,
[data-theme="solar"] .orion-input{
  background:rgba(255,255,255,.38);
  border-color:rgba(255,255,255,.62);
  color:var(--text-main);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 8px 20px rgba(15,23,42,.05);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
}
[data-theme="claro"] .orion-btn-ghost,
[data-theme="polar"] .orion-btn-ghost,
[data-theme="solar"] .orion-btn-ghost,
[data-theme="claro"] .orion-icon-btn,
[data-theme="polar"] .orion-icon-btn,
[data-theme="solar"] .orion-icon-btn{
  background:rgba(255,255,255,.36);
  border-color:rgba(255,255,255,.58);
  color:var(--text-muted);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 10px 24px rgba(15,23,42,.07);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
}
[data-theme="claro"] .orion-btn-ghost:hover,
[data-theme="polar"] .orion-btn-ghost:hover,
[data-theme="solar"] .orion-btn-ghost:hover,
[data-theme="claro"] .orion-icon-btn:hover,
[data-theme="polar"] .orion-icon-btn:hover,
[data-theme="solar"] .orion-icon-btn:hover{
  background:rgba(255,255,255,.58);
  border-color:rgba(255,255,255,.76);
  color:var(--text-main);
}
[data-theme="claro"] .orion-header-title h1,
[data-theme="polar"] .orion-header-title h1,
[data-theme="solar"] .orion-header-title h1{
  background:linear-gradient(90deg, #0f172a, #64748b);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
[data-theme="claro"] .orion-table-wrap,
[data-theme="polar"] .orion-table-wrap,
[data-theme="solar"] .orion-table-wrap{
  background:linear-gradient(135deg, rgba(255,255,255,.54), rgba(255,255,255,.24));
  border-color:rgba(255,255,255,.68);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 24px 64px rgba(15,23,42,.14);
  backdrop-filter:blur(30px) saturate(190%);
  -webkit-backdrop-filter:blur(30px) saturate(190%);
}
[data-theme="claro"] .orion-table tbody td,
[data-theme="polar"] .orion-table tbody td,
[data-theme="solar"] .orion-table tbody td{
  border-bottom-color:rgba(15,23,42,.07);
}
[data-theme="claro"] .orion-table tbody tr:hover,
[data-theme="polar"] .orion-table tbody tr:hover,
[data-theme="solar"] .orion-table tbody tr:hover{background:rgba(15,23,42,.035);}
[data-theme="claro"] .diag-edit-table th,
[data-theme="polar"] .diag-edit-table th,
[data-theme="solar"] .diag-edit-table th{
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(226,232,240,.46));
  color:#0f172a;
}
[data-theme="claro"] .diag-edit-table th,
[data-theme="claro"] .diag-edit-table td,
[data-theme="polar"] .diag-edit-table th,
[data-theme="polar"] .diag-edit-table td,
[data-theme="solar"] .diag-edit-table th,
[data-theme="solar"] .diag-edit-table td{border-color:rgba(15,23,42,.12);}
[data-theme="claro"] .diag-edit-table tfoot td,
[data-theme="polar"] .diag-edit-table tfoot td,
[data-theme="solar"] .diag-edit-table tfoot td{
  background:rgba(255,255,255,.44);
  color:var(--text-main);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
}
[data-theme="claro"] .diag-cell-input,
[data-theme="polar"] .diag-cell-input,
[data-theme="solar"] .diag-cell-input{
  background:rgba(255,255,255,.36);
  border-color:rgba(255,255,255,.58);
  color:var(--text-main);
}

.orion-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:.5px;text-transform:uppercase;}

/* Toasts: extraídos para orion/05-components/toast.css (@import no topo). */

/* CONFIRMACAO VISUAL (OrionConfirm) -> orion/05-components/confirm.css (Fase 8) */

/* ===================== HEADER ===================== */
.orion-header{padding:var(--sp-5) 0 var(--sp-3);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);}
.orion-header-title h1{font-family:'Space Grotesk',sans-serif;font-size:var(--fs-lg);font-weight:700;letter-spacing:1px;background:linear-gradient(90deg,#fff,var(--text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.orion-header-title p{font-size:11px;color:var(--cyan);text-transform:uppercase;letter-spacing:1.5px;margin-top:2px;font-weight:500;}

/* TOOLBAR/VIEW-SWITCHER + GRID VIEW (OrionTable) -> orion/06-modules/table.css (Fase 5) */

/* CONTROLADOR GERAL -> orion-pages.css (Fase 8) */

/* DASHBOARD -> orion-pages.css (Fase 8) */

/* DOCUMENTACAO -> orion-pages.css (Fase 8) */

/* PERMISSOES -> orion-pages.css (Fase 8) */

/* KANBAN VIEW -> orion/06-modules/kanban.css (Fase 5) */

/* ODONTOGRAMA -> orion/06-modules/odontogram.css (Fase 5) */

/* ===================== FILTROS ===================== */
.filter-bar{display:flex;gap:var(--sp-2);flex-wrap:wrap;}
.filter-select{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:8px 10px;color:var(--text-main);font-size:var(--fs-sm);outline:none;font-family:'Plus Jakarta Sans',sans-serif;}
.filter-select:focus{border-color:var(--primary);}
.filter-select option{background:#12121f;color:#f4f4f7;}
.filter-chip-date{gap:6px;flex-wrap:wrap;padding:0;}
.filter-chip-date-label{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);background:rgba(255,255,255,.02);color:var(--text-main);font-size:var(--fs-sm);}
.filter-chip-date-label i{color:var(--primary);}
.filter-chip-date .filter-remove{height:36px;display:inline-flex;align-items:center;}
.filter-daterange{display:inline-flex;}
.filter-chip-date .odr-trigger{height:32px;font-size:12px;}

/* ORION DATE RANGE -> orion/05-components/date-range.css (Fase 8) */

/* ===================== TOOLBAR DE CONFIGURACAO (OrionTable) ===================== */
.clear-filters{color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;display:flex;align-items:center;padding:0 4px;}
.clear-filters:hover{color:var(--primary);}
.toolbar-settings{position:relative;display:flex;}
.toolbar-settings-popover{
  position:absolute;
  top:42px;
  right:0;
  z-index:30;
  width:260px;
  max-height:min(520px,calc(100vh - 150px));
  overflow:auto;
  padding:var(--sp-3);
  display:grid;
  gap:8px;
}
.toolbar-settings-section{
  padding:4px 8px 0;
  color:var(--text-muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1px;
}
.toolbar-setting-option{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text-main);
  font-size:var(--fs-sm);
  cursor:pointer;
  padding:7px 8px;
  border-radius:var(--r-sm);
}
.toolbar-setting-option > span:not(.column-order-controls){flex:1;min-width:0;}
.toolbar-column-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;}
.toolbar-column-toggle{display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer;}
.toolbar-column-toggle span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.toolbar-setting-option:hover{background:rgba(255,255,255,.05);}
.toolbar-setting-option input{accent-color:var(--primary);}
.toolbar-setting-option.is-disabled{opacity:.5;cursor:not-allowed;}
.toolbar-setting-option.is-disabled:hover{background:transparent;}
.column-order-controls{display:inline-flex;align-items:center;gap:4px;margin-left:auto;}
.column-align-controls{grid-column:1 / -1;display:grid;grid-template-columns:68px 1fr;align-items:center;gap:6px 8px;margin-top:8px;padding-left:24px;}
.column-align-label{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;}
.column-align-buttons{display:inline-flex;align-items:center;gap:4px;}
.toolbar-order-btn,
.toolbar-align-btn{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.1);
  border-radius:7px;
  background:rgba(255,255,255,.04);
  color:var(--text-muted);
  cursor:pointer;
}
.toolbar-order-btn:hover:not(:disabled),
.toolbar-align-btn:hover{border-color:rgba(255,255,255,.2);color:var(--text-main);background:rgba(255,255,255,.08);}
.toolbar-align-btn.active{border-color:rgba(249,115,22,.45);color:var(--primary);background:rgba(249,115,22,.12);}
.toolbar-order-btn:disabled{opacity:.35;cursor:not-allowed;}
.toolbar-settings-reset{height:32px;justify-content:center;font-size:var(--fs-xs);padding:0 10px;}

/* COMPARADOR T0xTF (diagnosticos) -> orion-pages.css (Fase 8) */

/* ===================== EDITABLE CELLS ===================== */
.editable{cursor:pointer;transition:.15s;border-radius:6px;}
.editable:hover{background:rgba(255,255,255,.04);outline:0px  rgba(255,255,255,.15);}
.kanban-card{cursor:pointer;}

/* ===================== FORMULÁRIO DE MODAL (resíduo do shell legado) ===================== */
/* O shell legado (.modal-overlay/.modal-box/.modal-title/.modal-body, o side peek e o
   .modal-box-fullscreen) foi apagado na Fase 8 — nenhum HTML do repo usa mais nenhum
   deles, o lugar do shell agora é 05-components/modal.css (.orion-modal). Sobrou aqui
   só o .field-group (rótulo+campo empilhados, usado por TODOS os modais migrados). O
   grid interno de contas a pagar/receber (.modal-fields) e o rodapé de sub-painel da
   precificação (.modal-actions) foram migrados para .orion-row/.orion-col e para os
   utilitários de flex (.orion-d-flex etc.) na Fase 8. */
.field-group{display:flex;flex-direction:column;gap:6px;}
.field-group label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;}
/* select com appearance:base-select ignora overflow:hidden no proprio elemento
   (o valor selecionado e pintado por uma parte interna da UA que nao respeita
   o overflow do host) - por isso o corte precisa vir do ancestral, nao do select. */
.field-group:has(> select.orion-input),
.field-group:has(> select.filter-select){overflow:hidden;}
.orion-btn-danger{background:rgba(244,63,94,.12);color:var(--rose);}
.colaborador-modal-section{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:4px;
  padding-top:10px;
  color:var(--primary);
  font-size:var(--fs-xs);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1px;
  border-top:1px solid rgba(255,255,255,.07);
}
.colaborador-modal-section:first-of-type{margin-top:0;padding-top:0;border-top:0;}
.colaborador-modal-section::after{content:'';height:1px;flex:1;background:rgba(255,255,255,.07);}
.cliente-section-title, .fornecedor-section-title{display:flex;align-items:center;gap:12px;color:var(--primary);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:1.4px;}
.cliente-section-title::after, .fornecedor-section-title::after{content:"";height:1px;background:rgba(255,255,255,.08);flex:1;}
.fornecedor-input-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;}
.fornecedor-search-btn{width:44px;height:auto;align-self:stretch;padding:0;justify-content:center;}

/* ===================== PAGINAÇÃO -> orion/05-components/pagination.css (Fase 9)
   O bloco saiu daqui. O empate 0,2,0 que travava a extracao desde a Fase 8
   (.page-btn.active contra [data-theme="branco"] .page-btn) foi desfeito na
   origem, com :not(.active) na regra de tema. Os overrides de tema seguem
   neste arquivo: sao 0,2,0 contra 0,1,0 da base, entao vencem por
   especificidade, sem depender de ordem. ==================== */

.orion-sidebar::-webkit-scrollbar{width:0;height:0;}

/* ===================== TEMAS CLAROS: SHELL (topbar / sidebar) ===================== */
[data-theme="claro"] .orion-topbar,
[data-theme="polar"] .orion-topbar,
[data-theme="solar"] .orion-topbar{
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.34));
  border-bottom-color:rgba(255,255,255,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78), 0 18px 44px rgba(15,23,42,.10);
  backdrop-filter:blur(26px) saturate(185%);
  -webkit-backdrop-filter:blur(26px) saturate(185%);
}
[data-theme="claro"] .orion-sidebar,
[data-theme="polar"] .orion-sidebar,
[data-theme="solar"] .orion-sidebar{
  background:linear-gradient(180deg, rgba(255,255,255,.54), rgba(241,245,249,.30));
  border-right-color:rgba(255,255,255,.62);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.52), 18px 0 54px rgba(15,23,42,.08);
  backdrop-filter:blur(28px) saturate(190%);
  -webkit-backdrop-filter:blur(28px) saturate(190%);
}
[data-theme="claro"] .sidebar-link,
[data-theme="polar"] .sidebar-link,
[data-theme="solar"] .sidebar-link{color:#334155;}
[data-theme="claro"] .sidebar-link:hover,
[data-theme="polar"] .sidebar-link:hover,
[data-theme="solar"] .sidebar-link:hover{background:rgba(15,23,42,.045);}
[data-theme="claro"] .sidebar-link.active,
[data-theme="polar"] .sidebar-link.active,
[data-theme="solar"] .sidebar-link.active{
  background:linear-gradient(135deg, rgba(255,255,255,.58), rgba(226,232,240,.30));
  border-color:rgba(255,255,255,.68);
  color:var(--text-main);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 14px 34px rgba(15,23,42,.10);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
}

[data-theme="claro"] .orion-pagination,
[data-theme="polar"] .orion-pagination,
[data-theme="solar"] .orion-pagination{
  border-color:rgba(255,255,255,.58);
  background:linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,255,255,.24));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62), 0 -14px 34px rgba(15,23,42,.08);
  backdrop-filter:blur(26px) saturate(185%);
  -webkit-backdrop-filter:blur(26px) saturate(185%);
}
[data-theme="claro"] .pagination-summary,
[data-theme="polar"] .pagination-summary,
[data-theme="solar"] .pagination-summary{
  border-top-color:rgba(15,23,42,.08);
}
/* :not(.active) pelo mesmo motivo do tema branco, mas aqui ele MUDA o que
   se ve: estes tres temas ficavam depois de .page-btn.active no arquivo e
   por isso venciam o empate 0,2,0, apagando o acento do botao ativo. Agora
   o estado ativo vence em todos os temas, igual ao branco (Fase 9). */
[data-theme="claro"] .page-btn:not(.active),
[data-theme="polar"] .page-btn:not(.active),
[data-theme="solar"] .page-btn:not(.active),
[data-theme="claro"] .summary-mode-btn,
[data-theme="polar"] .summary-mode-btn,
[data-theme="solar"] .summary-mode-btn{
  background:rgba(255,255,255,.34);
  border-color:rgba(255,255,255,.55);
  color:var(--text-muted);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
[data-theme="claro"] .page-btn:hover:not(.disabled):not(.active),
[data-theme="polar"] .page-btn:hover:not(.disabled):not(.active),
[data-theme="solar"] .page-btn:hover:not(.disabled):not(.active),
[data-theme="claro"] .summary-mode-btn:hover,
[data-theme="polar"] .summary-mode-btn:hover,
[data-theme="solar"] .summary-mode-btn:hover{
  background:rgba(255,255,255,.54);
  border-color:rgba(255,255,255,.78);
  color:var(--text-main);
}
[data-theme="claro"] .footer-summary-label,
[data-theme="polar"] .footer-summary-label,
[data-theme="solar"] .footer-summary-label{
  color:rgba(51,65,85,.72);
}

/* ===================== HELPER .hidden (utilitário legado do shell) ===================== */
.hidden{display:none !important;}

/* ===================== RESPONSIVO — MOBILE (768px e 420px) =====================
   Era um unico @media de ~190 linhas cobrindo shell, toolbar, filtros, tabela,
   kanban e popover de tema. Virou uma sequencia de @media rotulados, no mesmo
   ponto do arquivo e na mesma ordem — blocos consecutivos empilham identico
   ao bloco unico, entao a cascata nao muda (Fase 8).

   Os pedacos de .orion-table e .kanban-col sairam daqui para o @media proprio
   de 06-modules/{table,kanban}.css, que sao os donos dessas classes. O resto
   fica: sao componentes que ainda moram no corpo deste arquivo.

   Este e o UNICO ponto responsivo do orion.css: 768px (a sequencia rotulada)
   e o 420px no fim. Nao ha @media espalhado pelo corpo do arquivo. ========= */

/* mobile — SHELL: topbar, sidebar off-canvas e layout */
@media (max-width:768px){
  body{
    display:block;
    min-height:100vh;
    overflow-y:auto;
    padding-top:60px;
  }
  .orion-topbar{
    left:0;
    height:60px;
    padding:7px 10px;
    gap:8px;
  }
  body.sidebar-collapsed .orion-topbar{
    left:0;
  }
  .topbar-company{
    max-width:28vw;
    font-size:9px;
    letter-spacing:.4px;
  }
  .topbar-user{
    padding:6px 8px;
  }
  .topbar-user small{
    display:none;
  }
  .orion-sidebar{
    position:fixed;
    inset:0 auto 0 0;
    width:280px;
    flex:0 0 280px;
    top:60px;
    height:calc(100dvh - 60px);
    max-height:calc(100dvh - 60px);
    padding:var(--sp-5);
    z-index:60;
    border-right:1px solid rgba(255,255,255,.08);
    border-bottom:none;
    transform:translateX(-100%);
    transition:transform .22s ease, width .22s ease, padding .22s ease;
  }
  body.sidebar-collapsed .orion-sidebar{
    transform:translateX(-100%);
    width:280px;
    flex-basis:280px;
    padding:var(--sp-5);
  }
  body.sidebar-open .orion-sidebar{
    width:280px;
    padding:var(--sp-5);
    transform:translateX(0);
  }
  body.sidebar-open .orion-sidebar-brand{
    justify-content:flex-start;
  }
  body.sidebar-open .sidebar-label,
  body.sidebar-open .sidebar-link span,
  body.sidebar-open .sidebar-status span,
  body.sidebar-open .sidebar-quick{
    display:block;
  }
  body.sidebar-open .sidebar-label{
    display:flex;
  }
  body.sidebar-open .orion-brand-text{
    display:block;
  }
  body.sidebar-open .sidebar-section{
    align-items:stretch;
  }
  body.sidebar-open .sidebar-link{
    width:auto;
    justify-content:flex-start;
  }
  body.sidebar-open .sidebar-footer{
    display:block;
  }
  body.sidebar-open .sidebar-status{
    justify-content:space-between;
  }
  .orion-main{
    max-width:none;
    margin-left:0;
    padding-top:0;
    height:auto;
    overflow:visible;
  }
  body.sidebar-collapsed .orion-main{
    max-width:none;
  }
  .sidebar-toggle{
    width:34px;
    height:34px;
  }
  .sidebar-backdrop{
    position:fixed;
    top:60px;
    left:0;
    right:0;
    bottom:0;
    z-index:55;
    background:rgba(0,0,0,.45);
    backdrop-filter:blur(2px);
  }
  body.sidebar-collapsed .sidebar-backdrop{
    display:none !important;
  }
  body.sidebar-open .sidebar-backdrop{
    display:block;
  }
  .orion-app{padding:0 var(--sp-4) var(--sp-6);}
}

/* mobile — Cabecalho de pagina */
@media (max-width:768px){
  .orion-header{padding:var(--sp-5) 0 var(--sp-4);}
  .orion-header-title h1{font-size:var(--fs-md);}
}

/* mobile — Toolbar do OrionTable: abas de visao */
@media (max-width:768px){
  .orion-toolbar{flex-direction:column;align-items:stretch;margin-bottom:var(--sp-4);}
  .view-tabs{width:100%;overflow-x:auto;}
  .add-view-btn span, .add-view-btn{white-space:nowrap;}
}

/* mobile — Toolbar do OrionTable: campos e botoes em largura total */
@media (max-width:768px){
  .toolbar-actions{flex-direction:column;align-items:stretch;width:100%;gap:var(--sp-3);}
  .toolbar-actions .orion-input, .toolbar-actions .orion-btn{width:100%;}
}

/* mobile — Toolbar do OrionTable: acoes empilhadas e popover de colunas */
@media (max-width:768px){
  /* Par do .orion-btn.mobile-filter-toggle de 06-modules/table.css — mesma
     especificidade (0,2,0) de proposito, senao o display:none de la venceria
     aqui dentro e o toggle sumiria tambem no mobile. */
  .orion-btn.mobile-filter-toggle{display:flex;justify-content:space-between;order:-1;margin-bottom:0;}
  .desktop-only-btn{display:none;}
  .mobile-only-btn{display:flex;width:100%;justify-content:center;}
  .mobile-action-stack{
    display:grid;
    grid-template-columns:1fr;
    gap:var(--sp-3);
    margin-top:var(--sp-2);
    margin-bottom:var(--sp-5);
  }
  .mobile-action-stack .hidden{display:none !important;}
  .toolbar-settings{width:100%;justify-content:center;}
  .toolbar-settings .orion-icon-btn{width:100%;}
  .toolbar-settings-popover{left:0;right:0;width:100%;top:46px;}
  .toggle-chevron{margin-left:auto;transition:transform .25s ease;}
  body.filters-open .toggle-chevron{transform:rotate(180deg);}
}

/* mobile — Filtros colapsaveis (body.filters-open) */
@media (max-width:768px){
  .collapsible-item{
    max-height:0;opacity:0;overflow:hidden;pointer-events:none;
    margin-top:0 !important;margin-bottom:0 !important;
    transition:max-height .3s ease, opacity .2s ease;
  }
  body.filters-open .collapsible-item{
    max-height:600px;opacity:1;pointer-events:auto;
  }
  body.filters-open #filterBar.collapsible-item{overflow:visible;}
  body.filters-open .pagination-size.collapsible-item{margin-bottom:0 !important;}
  body.filters-open #searchInput.collapsible-item{margin-bottom:0 !important;}
  body.filters-open #filterBar.collapsible-item{margin-bottom:var(--sp-6) !important;}
  .pagination-size{width:100%;justify-content:space-between;}
  .pagination-size select.orion-input{flex:1;}
}

/* mobile — Barra de filtros e chips */
@media (max-width:768px){
  .filter-bar{flex-direction:column;align-items:stretch;}
  .filter-chip{width:100%;}
  .filter-select{flex:1;width:100%;}
  .filter-chip-date{display:grid;grid-template-columns:1fr;gap:6px;}
  .filter-chip-date-label,.filter-daterange,.odr-trigger{width:100%;}
  .filter-chip-date .filter-remove{justify-content:center;width:100%;}
  .filter-manager{width:100%;}
  .filter-manager .add-view-btn{width:100%;justify-content:center;}
  .filter-add-popover{left:0;right:0;width:100%;min-width:0;}
  .clear-filters{justify-content:center;padding:8px 0;}
}

/* mobile — Paginacao */
@media (max-width:768px){
  .orion-pagination{flex-direction:column;align-items:stretch;gap:var(--sp-2);}
  .pagination-info{text-align:center;order:2;}
  .pagination-pages{order:3;justify-content:center;flex-wrap:wrap;}
}

/* mobile — Formularios em coluna unica */
@media (max-width:768px){
  .field-group{grid-column:span 1 !important;}
}

/* mobile — Popover de tema */
@media (max-width:768px){
  .theme-popover{right:0;left:auto;}
}

/* mobile estreito — cabecalho de pagina e botoes de paginacao */
@media (max-width:420px){
  .orion-header{flex-direction:column;align-items:flex-start;}
  .orion-header > div:last-child{width:100%;justify-content:space-between;}
  .page-btn{min-width:28px;height:28px;font-size:var(--fs-xs);}
}

#page-content.page-loading{opacity:.4;transition:opacity .15s;}

/* DIAGNOSTICO FINANCEIRO + RELATORIO COMPARATIVO -> orion-pages.css (Fase 8) */

/* ELEMENTOS DE IA -> orion/06-modules/ai.css (Fase 5) */

/* ===================== VIDRO LIQUIDO (LIQUID GLASS) =====================
   --glass-opacity-mult (setado via slider em app.js, 1 = padrao) multiplica
   cada porcentagem de opacidade de fundo abaixo, permitindo o usuario deixar
   o vidro mais ou menos opaco sem precisar de uma regra por elemento. */
body.glass-liquid .orion-topbar{
  background:color-mix(in srgb, var(--bg) calc(30% * var(--glass-opacity-mult, 1)), transparent);
  border-bottom-color:color-mix(in srgb, var(--text-main) 14%, transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-main) 10%, transparent), 0 18px 44px rgba(0,0,0,.22);
  backdrop-filter:blur(46px) saturate(200%);
  -webkit-backdrop-filter:blur(46px) saturate(200%);
}
body.glass-liquid .orion-sidebar{
  background:color-mix(in srgb, var(--bg) calc(26% * var(--glass-opacity-mult, 1)), transparent);
  border-right-color:color-mix(in srgb, var(--text-main) 14%, transparent);
  box-shadow:inset -1px 0 0 color-mix(in srgb, var(--text-main) 8%, transparent), 18px 0 54px rgba(0,0,0,.18);
  backdrop-filter:blur(50px) saturate(200%);
  -webkit-backdrop-filter:blur(50px) saturate(200%);
}
body.glass-liquid .orion-table thead,
body.glass-liquid .orion-table thead tr,
body.glass-liquid .orion-table thead th{
  background:color-mix(in srgb, var(--bg) calc(21% * var(--glass-opacity-mult, 1)), transparent);
  border-bottom-color:color-mix(in srgb, var(--text-main) 12%, transparent);
  backdrop-filter:blur(28px) saturate(220%);
  -webkit-backdrop-filter:blur(28px) saturate(220%);
}
body.glass-liquid .orion-pagination{
  background:color-mix(in srgb, var(--bg) calc(16% * var(--glass-opacity-mult, 1)), transparent);
  border-color:color-mix(in srgb, var(--text-main) 12%, transparent);
  backdrop-filter:blur(28px) saturate(220%);
  -webkit-backdrop-filter:blur(28px) saturate(220%);
}
body.glass-liquid .pagination-summary{
  border-top-color:color-mix(in srgb, var(--text-main) 12%, transparent);
}

/* ORION CALENDAR / AGENDA -> orion/06-modules/calendar.css (Fase 5) */

/* ===================== CSS POR PÁGINA ===================== */
/* Versionamento (changelog) e precificação odontológica migrados para
   assets/css/orion-pages.css (carregado por <link> próprio no index.html,
   após o orion.css). Demais telas seguem o mesmo caminho gradualmente. */
