/* casca.css — CASCA ÚNICA de navegação do SISTEMA IMPRIZIL (#60, 29/09/2026).
   Carregar DEPOIS de identidade.css. Só usa os tokens da identidade (claro, escuro e arcade saem deles).
   Nada aqui vale enquanto o casca.js não puser a classe `casca` no body: se a casca falhar ao
   carregar, a tela antiga continua inteira.
   Camadas (a casca é dona do trilho e do painel flutuante): topo 70 · trilho 100 · modais 200/210 ·
   overlay do dia 250 · trilho com body.vista-historico 260 · pausa/recado 300 · menus 500. */
:root{--casca-css:1}

/* ------------------------------------------------------------------ larguras
   --trilho-w continua sendo a única largura que o resto do layout lê. */
:root[data-theme] body.casca.casca{--trilho-exp:232px;--trilho-rec:64px;--trilho-w:var(--trilho-exp);--casca-fio:#454545;--casca-hover:#2e2e2e}
:root[data-theme][data-trilho=recolhido] body.casca.casca{--trilho-w:var(--trilho-rec)}
:root[data-theme][data-trilho=gaveta] body.casca.casca{--trilho-w:0px}
:root[data-theme=arcade] body.casca.casca{--casca-fio:#858585;--casca-hover:#262626}

/* ------------------------------------------------------------------ o trilho */
:root[data-theme] body.casca>.trilho.casca-trilho{
  position:fixed;top:0;bottom:0;left:0;right:auto;
  display:flex;flex-direction:column;align-items:stretch;gap:0;
  width:var(--trilho-w);height:auto;min-width:0;margin:0;padding:0;
  background:var(--rail);color:#f2f2f2;
  border:0;border-right:1px solid var(--casca-fio);
  z-index:100;overflow:visible;
  --focus:var(--focus-on-dark,#ffc807);
}
/* o movimento só vale depois do primeiro desenho (casca-viva): a página não "encolhe o trilho" ao abrir */
:root[data-theme] body.casca.casca-viva>.trilho.casca-trilho{transition:width var(--move) var(--ease),transform var(--move) var(--ease),box-shadow var(--move) var(--ease)}
:root[data-theme] body.casca.vista-historico>.trilho.casca-trilho{z-index:260}
/* recolhido que abre FLUTUANDO por cima: a largura do conteúdo (--trilho-w) não muda */
:root[data-theme][data-trilho=recolhido][data-trilho-aberto] body.casca>.trilho.casca-trilho{width:var(--trilho-exp);box-shadow:12px 0 28px #0008}
/* gaveta (janela estreita) */
:root[data-theme][data-trilho=gaveta] body.casca>.trilho.casca-trilho{
  width:min(288px,86vw);transform:translateX(-104%);visibility:hidden;
}
:root[data-theme][data-trilho=gaveta] body.casca.casca-viva>.trilho.casca-trilho{transition:transform var(--move) var(--ease),visibility 0s linear var(--move)}
:root[data-theme][data-trilho=gaveta][data-trilho-aberto] body.casca>.trilho.casca-trilho{transform:none;visibility:visible;box-shadow:12px 0 28px #0008}
:root[data-theme][data-trilho=gaveta][data-trilho-aberto] body.casca.casca-viva>.trilho.casca-trilho{transition:transform var(--move) var(--ease),visibility 0s}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-antigo{display:none!important}
:root[data-theme] body.casca>.trilho.casca-trilho [hidden]{display:none!important}
:root[data-theme] body.casca>.trilho.casca-trilho svg{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* marca: a linha de baixo continua a linha do cabeçalho */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca{
  flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  min-height:86px;padding:14px 10px;border-bottom:1px solid var(--casca-fio);overflow:hidden;
}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca .tri-emp{width:132px;max-width:100%;height:40px;min-height:0;margin:0;flex:0 0 auto}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca .rail-caption{margin:0;font-size:10px;letter-spacing:1.6px;color:#c9c9c9;text-align:center;white-space:nowrap}
/* cabeçalho baixo (Financeiro): a marca cabe na mesma altura, só com a logo */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca.casca-marca-baixa{padding:8px 10px;gap:0}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca.casca-marca-baixa .rail-caption{display:none}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-marca.casca-marca-baixa .tri-emp{height:36px}

/* navegação em sanfona */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-nav{
  flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:4px;padding:12px 8px;
  overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#5a5a5a transparent;
}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-grupo{position:relative;display:block;min-width:0}
:root[data-theme] body.casca>.trilho.casca-trilho :is(.casca-aba,.casca-recolher){
  position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:12px;
  width:100%;height:auto;min-height:44px;margin:0;padding:0 12px;
  background:transparent;color:#e4e4e4;border:0;border-radius:var(--radius-control);box-shadow:none;
  font:600 15px/1.2 var(--font-body);letter-spacing:0;text-align:left;text-decoration:none;white-space:nowrap;
  cursor:pointer;transform:none;filter:none;
  transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease);
}
:root[data-theme] body.casca>.trilho.casca-trilho :is(.casca-aba,.casca-recolher):is(:hover,:active){background:var(--casca-hover);color:#fff;transform:none}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-ico{display:grid;place-items:center;width:24px;height:24px;color:#d2d2d2}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-nome{min-width:0;overflow:hidden;text-overflow:ellipsis}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-seta{display:grid;place-items:center;width:16px;height:16px;color:#a9a9a9}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-seta svg{width:16px;height:16px;transition:transform var(--move) var(--ease)}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-aberto>.casca-aba .casca-seta svg{transform:rotate(90deg)}
/* o módulo em que a pessoa está */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-dentro>.casca-aba,
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-aba[aria-current=page]{color:#fff}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-dentro>.casca-aba .casca-ico,
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-aba[aria-current=page] .casca-ico{color:var(--accent)}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-dentro>.casca-aba::before,
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-aba[aria-current=page]::before{content:'';position:absolute;left:-8px;top:9px;bottom:9px;width:3px;background:var(--accent)}

/* sub-abas: a altura abre de 0fr a 1fr, sem medir nada em JS */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-subs{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--move) var(--ease)}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-aberto>.casca-subs{grid-template-rows:1fr}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-subs-in{
  min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:2px;
  margin:0 0 0 23px;padding:0 0 0 11px;border-left:1px solid var(--casca-fio);
  opacity:0;transition:opacity var(--move) var(--ease);
}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-aberto>.casca-subs>.casca-subs-in{opacity:1}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub{
  display:flex;align-items:center;justify-content:flex-start;gap:0;
  width:auto;min-width:0;height:auto;min-height:40px;margin:0;padding:0 12px;flex:0 0 auto;
  background:transparent;color:#cdcdcd;border:0;border-radius:var(--radius-control);box-shadow:none;
  font:400 14px/1.25 var(--font-body);text-decoration:none;white-space:nowrap;
  transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease);
}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub:first-child{margin-top:4px}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub:last-child{margin-bottom:8px}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub:hover{background:var(--casca-hover);color:#fff}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub[aria-current=page],
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub[aria-current=page]:hover{background:var(--accent);color:#191919;font-weight:700;box-shadow:0 3px #927000;margin-bottom:5px}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-rotulo{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* pé do trilho: ADMIN (quem pode) e o botão de recolher */
:root[data-theme] body.casca>.trilho.casca-trilho .casca-pe{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;padding:8px;border-top:1px solid var(--casca-fio)}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-recolher{color:#bdbdbd;font-weight:400;font-size:13px}
:root[data-theme] body.casca>.trilho.casca-trilho .casca-recolher svg{transition:transform var(--move) var(--ease)}
:root[data-theme][data-trilho=recolhido]:not([data-trilho-aberto]) body.casca>.trilho.casca-trilho .casca-recolher svg{transform:scaleX(-1)}

/* foco visível dentro do trilho: anel por dentro (as sub-abas vivem numa caixa que corta) */
:root[data-theme] body.casca>.trilho.casca-trilho :is(.casca-aba,.casca-sub,.casca-recolher):focus-visible{outline:3px solid var(--focus-on-dark,#ffc807);outline-offset:-3px}
:root[data-theme] body.casca>.trilho.casca-trilho a.casca-sub[aria-current=page]:focus-visible{outline-color:#191919}

/* recolhido (64px): só os ícones */
:root[data-theme][data-trilho=recolhido]:not([data-trilho-aberto]) body.casca>.trilho.casca-trilho :is(.casca-nome,.casca-seta,.casca-subs,.rail-caption){display:none}
:root[data-theme][data-trilho=recolhido]:not([data-trilho-aberto]) body.casca>.trilho.casca-trilho :is(.casca-aba,.casca-recolher){grid-template-columns:24px;justify-content:center;padding:0}
:root[data-theme][data-trilho=recolhido]:not([data-trilho-aberto]) body.casca>.trilho.casca-trilho .casca-marca{padding:14px 6px}
:root[data-theme][data-trilho=recolhido]:not([data-trilho-aberto]) body.casca>.trilho.casca-trilho .casca-marca .tri-emp{width:50px;height:26px}

/* véu da gaveta e botão Menu do cabeçalho (só em janela estreita) */
:root[data-theme] body.casca>.casca-veu{position:fixed;inset:0;z-index:99;background:#000a;opacity:0;visibility:hidden;transition:opacity var(--move) var(--ease),visibility 0s linear var(--move)}
:root[data-theme][data-trilho=gaveta][data-trilho-aberto] body.casca>.casca-veu{opacity:1;visibility:visible;transition:opacity var(--move) var(--ease),visibility 0s}
:root[data-theme] body.casca.vista-historico>.casca-veu{z-index:259}
:root[data-theme] body.casca .casca-menu-btn{display:none}
:root[data-theme][data-trilho=gaveta] body.casca .casca-menu-btn{
  display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;order:-1;
  min-height:44px;margin:0;padding:0 12px;background:#2a2a2a;color:#fff;border:1px solid #5a5a5a;
  border-radius:var(--radius-control);box-shadow:none;font:600 14px/1 var(--font-body);cursor:pointer;transform:none;
}
:root[data-theme][data-trilho=gaveta] body.casca .casca-menu-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
:root[data-theme] body.casca .casca-menu-btn:focus-visible{outline:3px solid var(--focus-on-dark,#ffc807);outline-offset:2px}

/* ------------------------------------------------------------------ camadas da tela do operador (DECISÕES 2.8)
   A casca é dona: overlay do dia 250 · trilho na vista Histórico 260 · pausa e recado 300.
   No painel.css o .painel-aux{z-index:200} vem DEPOIS de .dia-fundo (250) e .recado-fundo (300) e vencia os
   dois: o valor que valia era 200. Aqui os números passam a valer de verdade (só com a casca carregada). */
:root[data-theme] body.casca>.painel-aux.dia-fundo{z-index:250}
:root[data-theme] body.casca>.painel-aux.dia-fundo[data-est=pausado]{z-index:300}
:root[data-theme] body.casca>.painel-aux.recado-fundo{z-index:300}
/* o aviso "Atualização recebida · aguardando terminar a ação" do PCP (identidade.css: z 100, colado no trilho)
   não pode cair em cima do trilho ABERTO flutuando; na gaveta o véu já cobre a página */
:root[data-theme][data-trilho=recolhido][data-trilho-aberto] body.casca.pagina-pcp.atualizacao-pendente:after{left:calc(var(--trilho-exp) + 20px)}
:root[data-theme][data-trilho=gaveta][data-trilho-aberto] body.casca.pagina-pcp.atualizacao-pendente:after{display:none}

/* ------------------------------------------------------------------ cabeçalho limpo */
:root[data-theme] body.casca .casca-escondido{display:none!important}
:root[data-theme] body.casca :is(.estrutura-heading>.breadcrumb,.fin-topo .migalha,.casca-topo .breadcrumb){text-transform:none;letter-spacing:0}
/* o tema, a densidade, os efeitos e o "?" moram no menu do perfil */
:root[data-theme] body.casca :is(body>header,body>.cab) .theme-control{display:none!important}
/* "Indicadores" do menu antigo virou Dashboards > Engenharia no trilho */
:root[data-theme] body.casca #lnk-medicao{display:none!important}
:root[data-theme] body.casca:not(.casca-pode-admin) #lnk-admin{display:none!important}
:root[data-theme] body.casca.casca-pode-admin #lnk-admin{display:flex!important}
:root[data-theme] body.casca:not(.casca-pode-cracha) #lnk-cracha{display:none!important}

/* ------------------------------------------------------------------ menu do PERFIL */
:root[data-theme] body.casca .casca-perfil{position:relative;display:block;margin:0;flex:0 0 auto}
:root[data-theme] body.casca .casca-perfil-btn{
  position:relative;display:inline-flex;align-items:center;gap:10px;
  width:auto;height:44px;min-height:44px;margin:0;padding:4px 12px 4px 5px;
  background:#2a2a2a;color:#fff;border:1px solid #5a5a5a;border-radius:var(--radius-control);box-shadow:none;
  font:600 14px/1 var(--font-body);white-space:nowrap;cursor:pointer;transform:none;filter:none;
  transition:background-color var(--fast) var(--ease),border-color var(--fast) var(--ease);
}
:root[data-theme] body.casca .casca-perfil-btn:is(:hover,:active){background:#383838;transform:none}
:root[data-theme] body.casca .casca-perfil.aberto>.casca-perfil-btn{border-color:var(--accent)}
:root[data-theme] body.casca .casca-perfil-btn:focus-visible{outline:3px solid var(--focus-on-dark,#ffc807);outline-offset:2px}
:root[data-theme] body.casca .casca-perfil-btn :is(#usuario-ini,.casca-perfil-ini){
  display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;
  background:var(--accent);color:#191919;border-radius:max(0px,calc(var(--radius-control) - 1px));
  font:700 14px/1 var(--font-mono);letter-spacing:0;
}
:root[data-theme] body.casca .casca-perfil-btn :is(#quem-logado,.casca-perfil-nome){max-width:140px;overflow:hidden;text-overflow:ellipsis}
:root[data-theme] body.casca .casca-perfil-btn .uc-seta{font-size:10px;opacity:.8;transition:transform var(--fast) var(--ease)}
:root[data-theme] body.casca .casca-perfil.aberto>.casca-perfil-btn .uc-seta{transform:rotate(180deg)}
:root[data-theme] body.casca .casca-perfil-btn .casca-ponto{position:absolute;top:-5px;left:30px;width:12px;height:12px;border-radius:50%;background:var(--priority-urgent);border:2px solid var(--rail)}

:root[data-theme] body.casca .casca-perfil-drop{
  display:none;position:absolute;right:0;left:auto;top:calc(100% + 10px);
  width:320px;max-width:calc(100vw - 24px);max-height:calc(100vh - 120px);overflow:auto;overscroll-behavior:contain;
  margin:0;padding:0;background:var(--surface);color:var(--text);
  border:var(--panel-border) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  z-index:500;text-align:left;font:400 14px/1.4 var(--font-body);
}
:root[data-theme] body.casca .casca-perfil.aberto>.casca-perfil-drop{display:block;animation:casca-surge var(--move) var(--ease)}
@keyframes casca-surge{from{opacity:0;margin-top:-6px}to{opacity:1;margin-top:0}}   /* sem transform: ele é do encaixe na janela */
:root[data-theme] body.casca .casca-perfil-drop .ud-cab{display:block;padding:14px 16px;background:var(--surface-2);color:var(--muted);border:0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
:root[data-theme] body.casca .casca-perfil-drop .ud-cab b{display:block;margin:0 0 2px;font:700 16px/1.25 var(--font-body);color:var(--text)}
:root[data-theme] body.casca .casca-prefs{display:grid;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
:root[data-theme] body.casca .casca-pref{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;font-size:13px;color:var(--muted)}
:root[data-theme] body.casca .casca-prefs .theme-picker{display:flex;width:100%;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-control)}
:root[data-theme] body.casca .casca-prefs .theme-picker button{flex:1 1 0;min-height:40px;padding:6px 4px;background:transparent;color:var(--muted);border:0;box-shadow:none;font-size:13px;transform:none}
:root[data-theme] body.casca .casca-prefs .theme-picker button[aria-pressed=true]{background:var(--accent);color:#181818}
:root[data-theme] body.casca .casca-prefs :is(.density-control,.effects-toggle){width:100%;min-height:40px;margin:0;padding:6px 10px;font-size:13px;box-shadow:0 2px 0 var(--shadow-edge)}
:root[data-theme] body.casca .casca-itens{display:flex;flex-direction:column;gap:2px;padding:6px}
/* margem com !important: nó MOVIDO para o menu pode trazer margem na linha do HTML (o #sair do ADMIN tem
   style="margin-left:14px"); com largura 100% ela empurrava o menu e abria rolagem lateral dentro dele */
:root[data-theme] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel) .casca-item{
  display:flex;align-items:center;gap:10px;width:100%;height:auto;min-height:42px;margin:0!important;padding:0 12px;
  background:transparent;color:var(--text);border:0;border-radius:var(--radius-control);box-shadow:none;
  font:500 14px/1.25 var(--font-body);letter-spacing:0;text-align:left;text-decoration:none;white-space:normal;
  cursor:pointer;transform:none;filter:none;
}
:root[data-theme] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel) .casca-item:is(:hover,:active){background:var(--surface-2);color:var(--text);transform:none}
:root[data-theme] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel) .casca-item[aria-current=page]{font-weight:700;box-shadow:inset 3px 0 var(--accent)}
:root[data-theme] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel) .casca-item:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
:root[data-theme] body.casca .casca-perfil-drop .casca-item.casca-sair{color:var(--danger);font-weight:700}
:root[data-theme] body.casca .casca-perfil-drop .casca-fim{margin-top:4px;padding-top:6px;border-top:1px solid var(--line)}
:root[data-theme] body.casca .casca-tecla{margin-left:auto;padding:2px 8px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:3px;font:700 12px/1.4 var(--font-mono)}
:root[data-theme] body.casca .casca-bolinha{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--priority-urgent);color:#fff;font:700 12px/22px var(--font-mono);text-align:center}
:root[data-theme] body.casca .casca-nota{margin:0;padding:2px 12px 10px;font-size:13px;color:var(--muted)}
:root[data-theme] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel,.casca-dialogo) [hidden]{display:none!important}

/* ------------------------------------------------------------------ FERRAMENTAS (barra do PCP) */
/* sem margem automática própria: o + RETRABALHO já empurra o grupo (RETRABALHO, BAIXAS, FERRAMENTAS) para a direita */
:root[data-theme] body.casca .casca-ferramentas{position:relative;margin:0;flex:0 0 auto}
:root[data-theme] body.casca .casca-ferramentas[hidden]{display:none!important}
:root[data-theme] body.casca .casca-ferramentas-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;font-size:14px;white-space:nowrap}
:root[data-theme] body.casca .casca-ferramentas-btn .uc-seta{font-size:10px;opacity:.75;transition:transform var(--fast) var(--ease)}
:root[data-theme] body.casca .casca-ferramentas.aberto>.casca-ferramentas-btn .uc-seta{transform:rotate(180deg)}
:root[data-theme] body.casca .casca-ferramentas-btn:focus-visible{outline:3px solid var(--focus-on-dark,#ffc807);outline-offset:3px}
:root[data-theme] body.casca .casca-ferramentas-painel{
  display:none;position:absolute;right:0;left:auto;top:calc(100% + 10px);
  width:312px;max-width:calc(100vw - 24px);max-height:calc(100vh - 160px);overflow:auto;overscroll-behavior:contain;
  margin:0;padding:6px;background:var(--surface);color:var(--text);
  border:var(--panel-border) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  z-index:60;text-align:left;font:400 14px/1.4 var(--font-body);
}
:root[data-theme] body.casca .casca-ferramentas.aberto>.casca-ferramentas-painel{display:block;animation:casca-surge var(--move) var(--ease)}
:root[data-theme] body.casca .casca-ferramentas-grupo+.casca-ferramentas-grupo{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
:root[data-theme] body.casca .casca-ferramentas-titulo{margin:0;padding:8px 12px 4px;font:600 12px/1.3 var(--font-body);color:var(--muted)}
:root[data-theme] body.casca :is(.casca-ferramentas-painel,.casca-perfil-drop) #ud-resets{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;border:0}
:root[data-theme] body.casca .casca-perfil-drop #ud-resets:not(:empty){padding:6px;border-top:1px solid var(--line)}
:root[data-theme] body.casca .casca-ferramentas-painel #ud-resets:empty::after{content:'Nenhum operador com raia.';display:block;padding:4px 12px 10px;font-size:13px;color:var(--muted)}
:root[data-theme] body.casca :is(.casca-ferramentas-painel,.casca-perfil-drop) #ud-resets a{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:var(--radius-control);font:500 14px/1.25 var(--font-body);text-decoration:none}
:root[data-theme] body.casca :is(.casca-ferramentas-painel,.casca-perfil-drop) #ud-resets a:hover{background:var(--surface-2)}
:root[data-theme] body.casca :is(.casca-ferramentas-painel,.casca-perfil-drop) #ud-resets a:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
:root[data-theme] body.casca .casca-item small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--muted)}

/* ------------------------------------------------------------------ trocar a senha (páginas sem o painel.js) */
:root[data-theme] dialog.casca-dialogo{width:min(420px,calc(100vw - 24px));margin:auto;padding:0;background:var(--surface);color:var(--text);border:var(--panel-border) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);font:400 14px/1.4 var(--font-body)}
:root[data-theme] dialog.casca-dialogo::backdrop{background:#000a}
:root[data-theme] dialog.casca-dialogo .casca-dialogo-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:var(--surface-2);border-bottom:1px solid var(--line)}
:root[data-theme] dialog.casca-dialogo h2{margin:0;font:700 19px/1.2 var(--font-title)}
:root[data-theme] dialog.casca-dialogo .casca-dialogo-corpo{display:grid;gap:6px;padding:18px 20px 6px}
:root[data-theme] dialog.casca-dialogo label{display:block;margin-top:8px;font-size:13px;color:var(--muted)}
:root[data-theme] dialog.casca-dialogo input{width:100%;min-height:40px;font-size:16px}
:root[data-theme] dialog.casca-dialogo .casca-dialogo-msg{min-height:20px;margin:8px 0 0;font-size:13px;color:var(--danger)}
:root[data-theme] dialog.casca-dialogo .casca-dialogo-msg.ok{color:var(--brand)}
:root[data-theme] dialog.casca-dialogo .casca-dialogo-pe{display:flex;justify-content:flex-end;gap:10px;padding:10px 20px 20px}
:root[data-theme] dialog.casca-dialogo button{min-height:40px;padding:8px 16px}

/* ------------------------------------------------------------------ Financeiro (body.pagina-financeiro)
   O pacote já deixa o topo e o conteúdo ao lado de var(--trilho-w); aqui só sai o que virou menu do perfil. */
:root[data-theme] body.casca.pagina-financeiro .fin-topo :is(.marca,.quem){display:none}
:root[data-theme] body.casca.pagina-financeiro .fin-topo{z-index:70}
:root[data-theme] body.casca.pagina-financeiro>.trilho.casca-trilho .casca-marca{border-bottom:3px solid var(--accent)}   /* a linha do topo do Financeiro */

/* ------------------------------------------------------------------ /sem-acesso */
:root[data-theme] body.casca.pagina-sem-acesso{max-width:none;margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}
:root[data-theme] body.casca.pagina-sem-acesso>header.casca-topo{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-height:86px;margin:0 0 0 var(--trilho-w);padding:16px 24px;background:var(--rail);color:#fff;border-bottom:1px solid var(--casca-fio)}
:root[data-theme] body.casca.pagina-sem-acesso>header.casca-topo .casca-topo-titulo{flex:1;min-width:160px}
:root[data-theme] body.casca.pagina-sem-acesso>header.casca-topo .breadcrumb{margin:0 0 4px;font-size:12px;color:#ccc}
:root[data-theme] body.casca.pagina-sem-acesso>header.casca-topo h1{margin:0;font:700 26px/1.2 var(--font-title);color:#fff}
:root[data-theme] body.casca.pagina-sem-acesso>main.sem-acesso-main{max-width:640px;margin:0 0 0 var(--trilho-w);padding:32px 24px;font-size:16px;line-height:1.5}
:root[data-theme] body.casca.pagina-sem-acesso>main.sem-acesso-main>:is(.t,h2){display:none}
:root[data-theme] body.casca.pagina-sem-acesso>main.sem-acesso-main .b{min-height:44px;padding:11px 18px;background:var(--green-action);color:#fff;border:1px solid var(--green-edge);border-radius:var(--radius-control);box-shadow:0 var(--key-depth) 0 var(--green-edge)}

/* ------------------------------------------------------------------ NOVIDADES (#65): a gaveta O QUE HÁ DE NOVO
   O desenho é do novidades.js (a casca o chama depois do /api/menu). <dialog> modal: fica na camada de cima do
   navegador (acima do overlay do dia e da pausa), prende o foco e abre da direita. Largura em % (não vw): o
   posto com barra de rolagem não perde a borda esquerda da gaveta. */
:root[data-theme] body.casca dialog.casca-nov{
  position:fixed;inset:0 0 0 auto;width:min(460px,100%);max-width:100%;height:100%;max-height:100%;
  margin:0;padding:0;overflow:hidden;
  background:var(--surface);color:var(--text);
  border:0;border-left:var(--panel-border) solid var(--line);border-radius:0;box-shadow:var(--shadow);
  font:400 15px/1.5 var(--font-body);text-align:left;
}
:root[data-theme] body.casca dialog.casca-nov[open]{display:flex;flex-direction:column;animation:casca-nov-entra var(--move) var(--ease)}
@keyframes casca-nov-entra{from{transform:translateX(28px);opacity:0}to{transform:none;opacity:1}}
:root[data-theme] body.casca dialog.casca-nov::backdrop{background:#000a}
:root[data-theme] body.casca dialog.casca-nov [hidden]{display:none!important}
:root[data-theme] body.casca .casca-nov-topo{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;background:var(--rail);color:#fff;border-bottom:3px solid var(--accent)}
:root[data-theme] body.casca .casca-nov-cab{min-width:0}
:root[data-theme] body.casca .casca-nov-sobre{margin:0 0 2px;font:600 11px/1.3 var(--font-body);letter-spacing:1.4px;text-transform:uppercase;color:#c9c9c9}
:root[data-theme] body.casca .casca-nov-topo h2{margin:0;font:800 22px/1.15 var(--font-title);letter-spacing:.02em;color:#fff}
:root[data-theme] body.casca .casca-nov-topo h2:is(:focus,:focus-visible){outline:none}   /* o título só recebe o foco ao abrir (não é controle) */
:root[data-theme] body.casca .casca-nov-resumo{margin:6px 0 0;font-size:14px;color:#e4e4e4}
:root[data-theme] body.casca .casca-nov-fechar{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;margin:0;padding:0 14px;
  background:#2a2a2a;color:#fff;border:1px solid #5a5a5a;border-radius:var(--radius-control);box-shadow:none;
  font:600 14px/1 var(--font-body);cursor:pointer;transform:none;
}
:root[data-theme] body.casca .casca-nov-fechar:is(:hover,:active){background:#383838;transform:none}
:root[data-theme] body.casca .casca-nov-fechar:focus-visible{outline:3px solid var(--focus-on-dark,#ffc807);outline-offset:2px}
:root[data-theme] body.casca .casca-nov-corpo{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:6px 20px 20px}
:root[data-theme] body.casca .casca-nov-corpo:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
:root[data-theme] body.casca .casca-nov-h{margin:18px 0 10px;font:700 12px/1.3 var(--font-body);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
:root[data-theme] body.casca .casca-nov-nota{margin:0 0 12px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);overflow-wrap:anywhere}
:root[data-theme] body.casca .casca-nov-nota.nova{border-left:5px solid var(--accent)}
:root[data-theme] body.casca .casca-nov-anteriores .casca-nov-nota{background:transparent}
:root[data-theme] body.casca .casca-nov-nota h4{margin:0;font:700 17px/1.3 var(--font-title);color:var(--text)}
:root[data-theme] body.casca .casca-nov-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0;font-size:13px;color:var(--muted)}
:root[data-theme] body.casca .casca-nov-selo{padding:1px 8px;background:var(--accent);color:#191919;border-radius:3px;font:700 11px/1.6 var(--font-mono);letter-spacing:.06em}
:root[data-theme] body.casca .casca-nov-texto{margin:10px 0 0}
:root[data-theme] body.casca .casca-nov-onde{margin:10px 0 0;padding:8px 10px;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-control);font-size:14px}
:root[data-theme] body.casca .casca-nov-vazio{margin:12px 0;color:var(--muted)}
:root[data-theme] body.casca .casca-nov-pe{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 14px;padding:12px 20px 16px;background:var(--surface);border-top:1px solid var(--line)}
:root[data-theme] body.casca .casca-nov-msg{flex:1 1 100%;margin:0;font-size:13px;color:var(--danger)}
:root[data-theme] body.casca .casca-nov-msg:empty{display:none}
:root[data-theme] body.casca .casca-nov-escrever{margin-right:auto;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--text);font:600 14px/1.2 var(--font-body);text-decoration:underline}
:root[data-theme] body.casca .casca-nov-escrever:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
:root[data-theme] body.casca .casca-nov-entendi{
  min-height:48px;min-width:160px;margin:0;padding:10px 22px;
  background:var(--green-action);color:#fff;border:1px solid var(--green-edge);border-radius:var(--radius-control);
  box-shadow:0 var(--key-depth) 0 var(--green-edge);font:800 16px/1 var(--font-body);letter-spacing:.06em;cursor:pointer;
}
:root[data-theme] body.casca .casca-nov-entendi:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
:root[data-theme] body.casca .casca-nov-entendi:disabled{opacity:.6;cursor:progress}
:root[data-theme=arcade] body.casca dialog.casca-nov{border-left-width:2px;box-shadow:-4px 0 0 #000}
:root[data-theme=arcade] body.casca .casca-nov-nota{box-shadow:3px 3px 0 #000}
@media(max-width:480px){
  :root[data-theme] body.casca .casca-nov-topo{padding:14px 16px 12px}
  :root[data-theme] body.casca .casca-nov-corpo{padding:4px 16px 16px}
  :root[data-theme] body.casca .casca-nov-pe{padding:10px 16px 14px}
  :root[data-theme] body.casca .casca-nov-entendi{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){
  :root[data-theme] body.casca dialog.casca-nov[open]{animation:none}
}

/* ------------------------------------------------------------------ arcade: recortes retos, sombra dura */
:root[data-theme=arcade] body.casca>.trilho.casca-trilho{border-right-width:2px}
:root[data-theme=arcade] body.casca>.trilho.casca-trilho .casca-marca{border-bottom:3px solid var(--accent)}
:root[data-theme=arcade] body.casca>.trilho.casca-trilho a.casca-sub[aria-current=page],
:root[data-theme=arcade] body.casca>.trilho.casca-trilho a.casca-sub[aria-current=page]:hover{box-shadow:3px 3px 0 #777;outline:2px solid #fff;outline-offset:-2px}
:root[data-theme=arcade] body.casca :is(.casca-perfil-drop,.casca-ferramentas-painel),
:root[data-theme=arcade] dialog.casca-dialogo{box-shadow:4px 4px 0 #000}
:root[data-theme=arcade] body.casca :is(.casca-perfil-btn,.casca-menu-btn){border-width:2px}
:root[data-theme=arcade] body.casca.pagina-sem-acesso>header.casca-topo{border-bottom:3px solid var(--accent)}

/* ------------------------------------------------------------------ janela estreita, movimento e papel */
@media(max-width:800px){
  :root[data-theme] body.casca .casca-perfil-btn :is(#quem-logado,.casca-perfil-nome){max-width:96px}
  :root[data-theme] body.casca>.estrutura-topbar>.estrutura-heading{min-width:0;flex:1 1 140px}
  :root[data-theme] body.casca .estrutura-toolbar>.estrutura-fases{flex-wrap:wrap}
  :root[data-theme] body.casca .casca-ferramentas{margin-left:0}
  :root[data-theme] body.casca .casca-ferramentas-painel{right:auto;left:0}
  :root[data-theme] body.casca.pagina-sem-acesso>main.sem-acesso-main{padding:24px 16px}
  :root[data-theme] body.casca.pagina-sem-acesso>header.casca-topo{padding:12px 14px;min-height:0}
}
@media(max-width:480px){   /* celular: Menu e perfil viram só o ícone e as iniciais (o nome continua para o leitor de tela) */
  :root[data-theme][data-trilho=gaveta] body.casca .casca-menu-btn{width:44px;padding:0;justify-content:center}
  :root[data-theme] body.casca .casca-menu-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  :root[data-theme] body.casca .casca-perfil-btn{gap:6px;padding:4px 8px 4px 5px}
  :root[data-theme] body.casca .casca-perfil-btn :is(#quem-logado,.casca-perfil-nome){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  :root[data-theme] body.casca>.trilho.casca-trilho,
  :root[data-theme] body.casca>.trilho.casca-trilho *,
  :root[data-theme] body.casca>.casca-veu,
  :root[data-theme] body.casca :is(.casca-perfil,.casca-ferramentas) *{animation:none!important;transition:none!important}
}
@media print{
  :root[data-theme] body.casca.casca{--trilho-w:0px}
  :root[data-theme] body.casca>.trilho.casca-trilho,
  :root[data-theme] body.casca>.casca-veu,
  :root[data-theme] body.casca :is(.casca-ferramentas,.casca-perfil,.casca-menu-btn){display:none!important}
}
