/* RCO Consultoria — tokens de marca, temas e componentes compartilhados.
   Usado pelo site, pelo portal, pelo caderno de processos e pela Performance Corporativa.
   Cores de marca: laranja #F96913 e carvão #20231F. As cores de desempenho
   (verde / amarelo / vermelho / azul) mantêm o mesmo significado do farol.
   Revisão visual 2026-10: neutros quentes, contraste AA nos textos auxiliares,
   raios e alturas de controles iguais em todas as telas, foco visível único. */

:root{
  --font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Roboto,Arial,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  --rco-orange:#F96913;--rco-charcoal:#20231F;

  --bg:#F6F5F1;--bg-elev:#EFEEE9;--surface:#FFFFFF;--surface-2:#F7F6F2;--surface-3:#ECEBE5;
  --border:#E0DFD8;--border-strong:#C5C4BA;--divider:#EBEAE4;
  --text:#2A2C27;--text-strong:#141613;--muted:#575B53;--subtle:#64685F;
  --accent:#F96913;--accent-hover:#E35C0A;--accent-ink:#1A1C19;--accent-text:#AD4508;
  --accent-soft:#FFF2E8;--accent-soft-2:#FFE2CC;--accent-border:#F3BE96;
  --ink:#20231F;--ink-text:#FFFFFF;--ink-soft:#2C302A;
  --focus:#D9560A;--ring:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent);

  --good:#18774A;--good-fill:#2EA25F;--good-soft:#E4F3EA;
  --warn:#7D5800;--warn-fill:#F0B323;--warn-soft:#FCF1D2;
  --bad:#B42B23;--bad-fill:#DE3B30;--bad-soft:#FBE7E5;
  --excellent:#1758AB;--excellent-fill:#1D6FD1;--excellent-soft:#E3EDFA;
  --empty-fill:#B4B7AE;--pending:#8A5F00;--pending-soft:#FFF5DA;--pending-border:#E6C46F;

  --chart-real:#E2620F;--chart-target:#2A78D6;--chart-prev:#9A9D94;--chart-grid:#E6E7E1;--chart-band:#FFF2E8;

  --radius-lg:18px;--radius:14px;--radius-sm:10px;--radius-xs:7px;--radius-ctl:10px;
  --ctl-h:40px;
  --shadow-sm:0 1px 2px rgba(20,22,19,.05),0 1px 3px rgba(20,22,19,.04);
  --shadow-md:0 10px 28px -6px rgba(20,22,19,.12),0 2px 6px rgba(20,22,19,.05);
  --shadow-lg:0 28px 70px -12px rgba(20,22,19,.28),0 6px 18px rgba(20,22,19,.08);
  --appbar-h:64px;
  color-scheme:light;
}
html[data-theme=dark]{
  --bg:#111310;--bg-elev:#161915;--surface:#1A1D19;--surface-2:#20241F;--surface-3:#292E27;
  --border:#31362E;--border-strong:#464C42;--divider:#282C26;
  --text:#E4E6DF;--text-strong:#F7F8F3;--muted:#ADB2A6;--subtle:#959A8E;
  --accent:#FF7A2A;--accent-hover:#FF8F4C;--accent-ink:#161814;--accent-text:#FF9E62;
  --accent-soft:#2F2117;--accent-soft-2:#3B2818;--accent-border:#6E4325;
  --ink:#F1F2EC;--ink-text:#161814;--ink-soft:#2A2E27;
  --focus:#FF9E62;--ring:0 0 0 3px color-mix(in srgb,var(--accent) 36%,transparent);

  --good:#5BCB89;--good-fill:#3AB06C;--good-soft:#16301F;
  --warn:#F2C65A;--warn-fill:#E0AC2C;--warn-soft:#322810;
  --bad:#FF857A;--bad-fill:#E5544A;--bad-soft:#3A1C19;
  --excellent:#84B6F6;--excellent-fill:#4A90E6;--excellent-soft:#162A40;
  --empty-fill:#5D6358;--pending:#F2C65A;--pending-soft:#2E2610;--pending-border:#6B5620;

  --chart-real:#E8702F;--chart-target:#4A93EA;--chart-prev:#868C80;--chart-grid:#2C3029;--chart-band:#2F2117;

  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 12px 30px -8px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.3);
  --shadow-lg:0 28px 70px -10px rgba(0,0,0,.7);
  color-scheme:dark;
}

[hidden]{display:none!important}

/* Logos: a versão clara aparece no tema claro; a versão com texto claro, no escuro. */
.logo-dark{display:none!important}
html[data-theme=dark] .logo-light{display:none!important}
html[data-theme=dark] .logo-dark{display:block!important}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--ink);color:var(--ink-text);padding:10px 14px;border-radius:var(--radius-xs);font-weight:600}
.skip-link:focus{top:12px}
.ico{width:18px;height:18px;flex:none;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* Foco único e visível em todas as telas (teclado). */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}

/* ---------- Cabeçalho de aplicação (portal, processos e indicadores) ---------- */
.appbar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border);font-family:var(--font)}
.appbar::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--rco-orange) 0 64px,transparent 64px);pointer-events:none}
.appbar-inner{max-width:1600px;margin:0 auto;min-height:var(--appbar-h);display:flex;align-items:center;gap:16px;padding:8px 24px}
.appbar-brand{display:flex;align-items:center;flex:none;height:42px;text-decoration:none;border-radius:var(--radius-xs)}
.appbar-brand img{height:42px;width:auto}
.appbar-context{display:flex;flex-direction:column;justify-content:center;min-width:120px;padding-left:16px;border-left:1px solid var(--border);line-height:1.25;max-width:280px;flex:0 1 auto}
.appbar-context small{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appbar-context strong{font-size:14px;color:var(--text-strong);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appbar-nav{display:flex;align-items:center;gap:2px;margin-left:auto;min-width:0}
.appbar-nav a,.appbar-nav .ghost-btn{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border-radius:var(--radius-ctl);color:var(--muted);font-size:13.5px;font-weight:600;text-decoration:none;white-space:nowrap;border:1px solid transparent;background:transparent}
.appbar-nav a:hover,.appbar-nav .ghost-btn:hover{color:var(--text-strong);background:var(--surface-2);border-color:transparent}
.appbar-nav a[aria-current=page]{color:var(--text-strong);background:var(--accent-soft);border-color:var(--accent-border)}
.appbar-nav a[aria-current=page] .ico{color:var(--accent-text)}
.appbar-actions{display:flex;align-items:center;gap:8px;flex:none}
.appbar-nav+.appbar-actions{margin-left:4px}
.account{display:flex;align-items:center;gap:10px;padding-left:10px;border-left:1px solid var(--border);min-width:0}
.account-email{font-size:12.5px;color:var(--muted);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-email:empty{display:none}
.icon-btn,.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;min-width:38px;padding:0 11px;border-radius:var(--radius-ctl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:600 12.5px var(--font);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.icon-btn:hover,.ghost-btn:hover{border-color:var(--border-strong);background:var(--surface-2)}
.icon-btn .lbl{display:none}
.appbar-menu{display:none}
.theme-ico-sun{display:none}
html[data-theme=dark] .theme-ico-sun{display:inline-block}
html[data-theme=dark] .theme-ico-moon{display:none}

/* Textos dos atalhos ficam somente para leitores de tela quando a largura aperta. */
@media (max-width:1500px){
  .appbar-nav .ghost-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .appbar-nav .ghost-btn{padding:0 10px}
}
@media (max-width:1240px){
  .appbar-context{max-width:200px}
  .account-email{display:none}
  .appbar-nav a{padding:0 10px}
}
@media (max-width:1060px){
  .appbar-nav a .ico{display:none}
}
@media (max-width:900px){
  .appbar-inner{flex-wrap:wrap;gap:10px;padding:8px 14px}
  .appbar-brand,.appbar-brand img{height:38px}
  .appbar-context{max-width:none;flex:1;padding-left:12px;min-width:0}
  .appbar-menu{display:inline-flex}
  .appbar-nav{order:5;flex-basis:100%;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:8px 0 6px;border-top:1px solid var(--border);display:none}
  .appbar.menu-open .appbar-nav{display:flex}
  .appbar-nav a,.appbar-nav .ghost-btn{min-height:46px;padding:0 12px;font-size:15px;justify-content:flex-start}
  .appbar-nav a .ico{display:inline-block}
  .appbar-nav .ghost-btn span{position:static;width:auto;height:auto;overflow:visible;clip:auto}
  .account{border-left:0;padding-left:0}
}
@media (max-width:520px){
  html .appbar-brand :is(.logo-light,.logo-dark){display:none!important}
  .appbar-context{padding-left:10px}
  .appbar-context strong{font-size:13.5px}
  .appbar-context small{letter-spacing:.08em}
}
@media (max-width:400px){
  .account .ghost-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .appbar-inner{gap:8px}
}
.appbar-brand .emblem-light,.appbar-brand .emblem-dark{display:none!important}
@media (max-width:520px){.appbar-brand .emblem-light{display:block!important}html[data-theme=dark] .appbar-brand .emblem-light{display:none!important}html[data-theme=dark] .appbar-brand .emblem-dark{display:block!important}}

/* Menu da conta: e-mail, atalhos administrativos, suporte e saída em um só lugar. */
.account.has-menu{position:relative;padding-left:8px}
.account-trigger{display:inline-flex;align-items:center;gap:8px;min-height:38px;max-width:270px;padding:0 8px 0 4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:600 12.5px var(--font);cursor:pointer;transition:background .15s,border-color .15s}
.account-trigger:hover{border-color:var(--border-strong);background:var(--surface-2)}
.account-trigger[aria-expanded=true]{border-color:var(--accent-border);background:var(--accent-soft)}
.account-trigger .account-email{max-width:190px;color:var(--text)}
.account-avatar{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border);font:750 12px/1 var(--font)}
.account-avatar .ico{width:15px;height:15px}
.account-chevron{width:16px!important;height:16px!important;color:var(--subtle);transition:transform .15s}
.account-trigger[aria-expanded=true] .account-chevron{transform:rotate(180deg)}
.account-menu{position:absolute;right:0;top:calc(100% + 12px);z-index:60;width:min(300px,calc(100vw - 24px));padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);display:grid;gap:4px;text-align:left}
.account-menu[hidden],.account-menu-items[hidden],.account-menu-items>[hidden]{display:none!important}
.account-menu-head{display:flex;gap:10px;align-items:center;padding:8px 8px 12px;margin-bottom:2px;border-bottom:1px solid var(--border)}
.account-menu-head .account-avatar{width:36px;height:36px;font-size:14px}
.account-menu-head div{display:grid;gap:1px;min-width:0}
.account-menu-head small{font-size:11px;color:var(--subtle);font-weight:600}
.account-menu-head strong{font-size:13px;line-height:1.35;color:var(--text-strong);font-weight:650;overflow-wrap:anywhere}
.account-menu-items{display:grid;gap:2px}
.account-menu :is(.account-menu-items,.account-menu-foot)>:is(a,button){display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:42px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:600 13.5px var(--font);text-decoration:none;text-align:left;white-space:normal;cursor:pointer}
.account-menu :is(.account-menu-items,.account-menu-foot)>:is(a,button):hover{background:var(--surface-2);color:var(--text-strong)}
.account-menu .account-menu-items>[aria-current=page]{background:var(--accent-soft);color:var(--text-strong)}
.account-menu :is(a,button) .ico{width:18px;height:18px;color:var(--muted);flex:none}
.account-menu :is(a,button)>span:not(.sr-only){position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal}
.account-menu-foot{margin-top:2px;padding-top:6px;border-top:1px solid var(--border)}
.account-menu :focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
@media (max-width:900px){
  .appbar-inner{position:relative}
  .account.has-menu{position:static;padding-left:0}
  .account-menu{right:14px;top:calc(100% - 4px);width:min(320px,calc(100vw - 28px))}
  .account-menu :is(.account-menu-items,.account-menu-foot)>:is(a,button){min-height:46px;font-size:15px}
}
@media (max-width:400px){.account-trigger{padding-right:6px;gap:4px}}

/* ---------- Componentes comuns ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:650;line-height:1.5;background:var(--surface-3);color:var(--muted);white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.9}
.badge.plain::before{display:none}
.badge.good{background:var(--good-soft);color:var(--good)}
.badge.bad{background:var(--bad-soft);color:var(--bad)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.accent{background:var(--accent-soft);color:var(--accent-text)}
.badge.info{background:var(--excellent-soft);color:var(--excellent)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);font-size:12px;color:var(--text);background:var(--surface);white-space:nowrap}

.status-pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:5px 12px;border-radius:999px;font:650 12px var(--font);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap}
.status-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--empty-fill);flex:none}
.status-pill[data-state=saved]{color:var(--good);background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 25%,transparent)}
.status-pill[data-state=saved]::before{background:var(--good-fill)}
.status-pill[data-state=saving]{color:var(--accent-text);background:var(--accent-soft);border-color:var(--accent-border)}
.status-pill[data-state=saving]::before{background:var(--accent);animation:rco-pulse 1s ease-in-out infinite}
.status-pill[data-state=dirty]{color:var(--warn);background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn-fill) 45%,transparent)}
.status-pill[data-state=dirty]::before{background:var(--warn-fill)}
.status-pill[data-state=error]{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.status-pill[data-state=error]::before{background:var(--bad-fill)}
.status-pill[data-state=readonly]::before{background:var(--subtle)}
@keyframes rco-pulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);border-left-width:4px;background:var(--surface-2);color:var(--text);font-size:13.5px;line-height:1.55}
.alert>.ico{margin-top:1px}
.alert strong{display:block;color:var(--text-strong);margin-bottom:2px}
.alert.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 30%,transparent);border-left-color:var(--bad);color:var(--text)}
.alert.bad>.ico{color:var(--bad)}
.alert.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn-fill) 45%,transparent);border-left-color:var(--warn-fill)}
.alert.warn>.ico{color:var(--warn)}
.alert.good{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 30%,transparent);border-left-color:var(--good)}
.alert.good>.ico{color:var(--good)}
.alert.info{background:var(--accent-soft);border-color:var(--accent-border);border-left-color:var(--accent)}
.alert.info>.ico{color:var(--accent-text)}
.alert .alert-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

/* Notificação flutuante única (#message no portal, #toast nos indicadores) */
.rco-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1000;max-width:min(560px,calc(100vw - 32px));background:var(--ink);color:var(--ink-text);padding:13px 18px;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font:500 13.5px/1.5 var(--font)}
.rco-toast:empty{display:none}
