:root{--nav-w:226px;--nav-w-collapsed:64px;--nav-gutter:12px}
html[data-auth="required"]:not([data-auth-ready="true"]) body{visibility:hidden}

/* ===========================================================================
 * O menu compartilhado tem DOIS comportamentos, de propósito:
 *
 * 1. Páginas de CENA full-bleed (escritório 3D, planta tática) — body sem
 *    scroll, canvas/SVG ocupando a tela toda. Ali o menu flutuar por cima
 *    é o padrão certo (HUD sobre um jogo), igual aos outros painéis da HUD.
 *
 * 2. Painel operacional (dashboard com scroll, `.root-panel`) — ali flutuar
 *    por cima é um bug: o conteúdo ocupa 100% da largura por baixo do menu
 *    fixo, que cobre as primeiras colunas de cards. Precisa reservar espaço
 *    de verdade no layout, como todo sidebar de SaaS (Linear, Notion,
 *    Vercel). Resolvido com um "spacer" real dentro do grid (`.nav-spacer`,
 *    o antigo <aside> legado esvaziado) cuja largura acompanha o menu.
 * ========================================================================= */
#shared-nav{position:fixed;z-index:100;left:var(--nav-gutter);top:var(--nav-gutter);width:var(--nav-w);max-height:calc(100vh - 24px);overflow:auto;padding:14px;background:rgba(10,13,18,.96);border:1px solid #303746;border-radius:9px;box-shadow:0 18px 50px #0008;color:#f4f0e9;transition:width .2s ease}
.has-shared-nav #brandPanel{display:none}
.has-shared-nav .hud-card:has(.nav){display:none}

.root-panel .app{grid-template-columns:calc(var(--nav-w) + var(--nav-gutter)*2) minmax(0,1fr)!important;transition:grid-template-columns .2s ease}
.root-panel.nav-collapsed .app{grid-template-columns:calc(var(--nav-w-collapsed) + var(--nav-gutter)*2) minmax(0,1fr)!important}
/* invisível, mas continua ocupando a coluna do grid — e o script da própria
   página ainda escreve dentro dele (#depts), então não pode ser display:none */
.root-panel .app>.nav-spacer{visibility:hidden}

#shared-nav.collapsed{width:var(--nav-w-collapsed);overflow:hidden}
#shared-nav.collapsed .nav-brand-text,#shared-nav.collapsed .nav-section,#shared-nav.collapsed .nav-links a span,#shared-nav.collapsed .nav-footer,#shared-nav.collapsed .nav-depts,#shared-nav.collapsed .nav-account{display:none}
#shared-nav.collapsed .nav-links a{justify-content:center;padding-inline:0;font-size:18px}

/* colapsado: marca e botão empilham verticalmente, centralizados — lado a
   lado numa faixa de 64px eles brigavam por espaço (ver captura do bug) */
.nav-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:13px;border-bottom:1px solid #303746}
#shared-nav.collapsed .nav-head{flex-direction:column;gap:10px}
.nav-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px}
.nav-brand b{font-size:22px;color:#e5ad25;transform:rotate(-25deg)}
.nav-brand-text small{display:block;margin-top:4px;color:#8991a3;font:8px ui-monospace,monospace;letter-spacing:.1em}

/* botão de colapsar: maior, ícone de "painel lateral" reconhecível (moldura
   + barra) em vez de seta ambígua, contraste visível mesmo fora do hover */
.nav-toggle{
  width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;
  border:1px solid #46536b;background:#1b2330;border-radius:7px;cursor:pointer;
  color:#e5ad25;transition:background .15s,border-color .15s;
}
.nav-toggle:hover,.nav-toggle:focus-visible{background:#26314a;border-color:#e5ad25;outline:none}
.nav-toggle-label{display:none;font:800 9px ui-monospace,monospace;letter-spacing:.1em}
.nav-toggle-icon{width:15px;height:13px;border:1.6px solid currentColor;border-radius:3px;position:relative;flex-shrink:0}
.nav-toggle-icon::before{content:"";position:absolute;left:4px;top:-1.6px;bottom:-1.6px;border-left:1.6px solid currentColor}
#shared-nav.collapsed .nav-toggle-icon::before{left:auto;right:4px}

.nav-links{display:grid;gap:5px;padding:15px 0}.nav-links a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:5px;text-decoration:none;color:#b9c0cc;font:11px ui-monospace,monospace}.nav-links a:hover,.nav-links a.active{background:#1a2130;color:#fff;box-shadow:inset 2px 0 #e5ad25}.nav-links a.active{color:#f7c83e}.nav-section{padding:13px 0 4px;border-top:1px solid #303746;color:#8991a3;font:9px ui-monospace,monospace;letter-spacing:.16em}.nav-dept{display:flex;align-items:center;gap:8px;margin-top:9px;color:#b9c0cc;font:11px Arial,sans-serif}.nav-dept i{width:7px;height:7px;border-radius:50%;background:var(--d);box-shadow:0 0 9px var(--d)}.nav-footer{margin-top:14px;padding-top:12px;border-top:1px solid #303746;color:#8991a3;font:9px ui-monospace,monospace}.nav-footer strong{color:#58cf91;font-weight:400}
/* `hidden` perde para qualquer `display` de autor: o link de Administração
   tinha hidden=true e aparecia assim mesmo para visitantes. */
.nav-links a[hidden]{display:none}
.nav-links a.requer-conta span::after{content:" · entrar";color:#8991a3;font-size:9px;letter-spacing:.04em}
.nav-account{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid #303746}.nav-account select,.org-chip select{min-width:0;padding:7px;border:1px solid #46536b;border-radius:6px;background:#171d28;color:#f4f0e9;font:10px ui-monospace,monospace}.nav-account a,.org-chip a{color:#e5ad25;text-decoration:none;font:9px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em}.org-chip{display:flex;align-items:center;gap:8px;margin-left:auto;padding:7px 9px;border:1px solid #303746;border-radius:7px;background:#111722}.org-chip:empty{display:none}

/* ===========================================================================
 * Sala: era um modal centralizado de 570px. Equipe + Kanban + Atividade não
 * cabe ali sem virar sopa de letrinhas — virou um DRAWER que desliza da
 * direita (padrão Linear/GitHub/Notion para "abrir um item sem sair da
 * tela"). O formulário de criar subagente é outra instância de `.room-modal`
 * e continua centralizado — só o drawer ganha o modificador `.room-modal-drawer`.
 * ========================================================================= */
.room-modal{position:fixed;inset:0;z-index:110;display:none;background:#0009;backdrop-filter:blur(5px)}
.room-modal.open{display:flex}
.room-modal:not(.room-modal-drawer){align-items:center;justify-content:center;padding:20px}
.room-modal-drawer{justify-content:flex-end;align-items:stretch}

.room-dialog{width:min(570px,100%);max-height:min(700px,calc(100vh - 40px));overflow:auto;padding:23px;border:1px solid #596579;border-radius:10px;background:#111722;color:#f4f0e9;box-shadow:0 25px 80px #000}
.room-dialog h2{margin:7px 0 4px;font-size:25px}
.room-dialog p{color:#aeb6c4;font-size:13px}

/* O drawer é a área de trabalho real da sala: Kanban, atividades e entregas
   moram aqui. A largura anterior (760px) apertava o Kanban a ponto de
   prejudicar a leitura, então o padrão subiu e ganhou um modo ampliado. */
.room-drawer{
  width:min(920px,95vw);height:100%;overflow-y:auto;padding:26px 28px 90px;
  border-left:1px solid #303746;background:#0d1119;color:#f4f0e9;box-shadow:-30px 0 70px #000a;
  position:relative;transition:width .26s cubic-bezier(.4,0,.2,1);
}
.room-modal-drawer.expandido .room-drawer{width:min(1560px,97vw)}

.room-expand{position:absolute;top:18px;right:56px;border:0;background:none;color:#aeb6c4;font-size:17px;cursor:pointer;line-height:1;padding:6px 8px;border-radius:5px}
.room-expand:hover,.room-expand:focus-visible{color:#fff;background:#1c2431;outline:none}
.room-expand[aria-pressed="true"]{color:#e5ad25}
/* em telas estreitas o drawer já ocupa quase tudo; ampliar não faz sentido */
@media (max-width:900px){.room-expand{display:none}}
.room-drawer h2{margin:7px 0 4px;font-size:24px;letter-spacing:-.3px}
.room-drawer .room-subtitle{margin:0;color:#aeb6c4;font-size:13px}
.room-close{position:absolute;top:18px;right:20px;border:0;background:none;color:#aeb6c4;font-size:22px;cursor:pointer;line-height:1;padding:4px 6px;border-radius:5px}
.room-close:hover,.room-close:focus-visible{color:#fff;background:#1c2431;outline:none}

.room-toolbar{display:flex;gap:8px;margin:16px 0}
.room-toolbar button{border:1px solid #49566b;border-radius:6px;padding:8px 11px;background:#171d28;color:#e8edf5;font:10px ui-monospace,monospace;letter-spacing:.04em;cursor:pointer}
.room-toolbar button:hover{border-color:#e5ad25;color:#fff}

.room-tabs{display:flex;gap:4px;border-bottom:1px solid #262d3a;margin-bottom:18px}
.room-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:10px 4px;margin-right:18px;color:#8991a3;font:11px ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:6px}
.room-tabs button:hover{color:#dbe1ea}
.room-tabs button.active{color:#f4f0e9;border-color:var(--room-accent,#e5ad25)}
.room-tabs button[hidden]{display:none}
.tab-count{padding:1px 6px;border-radius:8px;background:#1c2431;color:#aeb6c4;font-size:9px}
.room-tabs button.active .tab-count{background:color-mix(in srgb,var(--room-accent,#e5ad25) 30%,#1c2431);color:#f4f0e9}

.room-tabpanels [data-panel]{display:none}
.room-tabpanels [data-panel].active{display:block}

.room-agents{display:grid;gap:7px;margin-top:14px}
.room-agent{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #303746;background:#171d28;border-radius:6px}
.room-agent-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--a);color:#111;font:bold 10px ui-monospace,monospace;flex-shrink:0}
.room-agent strong{font-size:12px;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.room-agent small{display:block;margin-top:3px;color:#8991a3;font:9px ui-monospace,monospace}
.room-agent-acoes{display:flex;gap:6px;align-items:center}
.room-agent-acoes button{border:1px solid #49566b;border-radius:5px;padding:7px 9px;background:#202a3a;color:#e8edf5;font:9px ui-monospace,monospace;cursor:pointer;white-space:nowrap}
.room-agent-acoes button:hover{border-color:#e5ad25}
.room-agent-remover{color:#f0a5a1!important}
.room-agent-remover:hover{border-color:#ed6b64!important;color:#fff!important;background:#3a1f1e!important}
.room-agent-remover.confirmar{background:#ed6b64!important;border-color:#ed6b64!important;color:#1a0e0d!important;font-weight:800}
.room-remove-confirm-label{font:9px ui-monospace,monospace;color:#f0a5a1;letter-spacing:.02em}
.room-agent-lider{border-color:#e5ad25;background:#241a0c}
.room-agent-badge{display:inline-block;padding:1px 6px;border-radius:8px;background:#e5ad25;color:#17120a;font:8px ui-monospace,monospace;font-weight:800;letter-spacing:.06em}
.room-empty,.kanban-empty{color:#8991a3;font:11px ui-monospace,monospace;padding:14px 2px}
.room-artifacts{display:grid;gap:8px}
.room-artifact{padding:10px;border:1px solid #303746;border-left:3px solid var(--room-accent,#e5ad25);border-radius:6px;background:#171d28}
.room-artifact small{display:block;color:#aeb6c4;font:9px ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}
.room-artifact strong{display:block;margin-top:5px;font-size:12px;line-height:1.35}
.room-artifact p,.room-decision p{margin:5px 0 0;color:#8991a3;font-size:11px;line-height:1.4}
.room-subheading{margin:20px 0 8px;padding-top:14px;border-top:1px solid #303746;color:#8991a3;font:9px ui-monospace,monospace;letter-spacing:.14em}
.room-decision{padding:9px 10px;border:1px solid color-mix(in srgb,var(--room-accent,#e5ad25) 45%,#303746);border-radius:6px;background:#241a0c}
.room-decision strong{font-size:12px;color:#f4f0e9}
/* Origem do registro: quem fez e quando. Precisa vencer o
   `.room-artifact small{text-transform:uppercase}` acima — nome de agente em
   caixa alta vira grito, e data em caixa alta não vira nada. */
.room-artifact .room-origem,.room-decision .room-origem{
  display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;
  margin-top:8px;padding-top:7px;border-top:1px solid #2a3140;
  color:#aeb6c4;font:9px ui-monospace,monospace;letter-spacing:.03em;text-transform:none;
}
/* A data é secundária ao autor, mas secundário não pode virar ilegível:
   #79828f (o cinza vizinho, usado em .kanban-card-idade) dá 4,35:1 sobre
   #171d28 e reprova AA em 9px. #7e8793 dá 4,65:1. */
.room-origem time{color:#7e8793}
.room-artifact .room-origem.sem-dono,.room-decision .room-origem.sem-dono{color:#8a93a4;font-style:italic}

/* .room-new é IRMÃO de .room-agents (vem antes dela no HTML), não filho —
   um seletor descendente aqui simplesmente não bateria em nada */
.room-new{
  display:inline-flex;align-items:center;margin-bottom:14px;padding:9px 14px;
  border:1px solid #e5ad25;border-radius:6px;background:#e5ad25;color:#17120a;
  font:11px ui-monospace,monospace;font-weight:800;letter-spacing:.04em;cursor:pointer;
}
.room-new:hover,.room-new:focus-visible{background:#f4bd3a;outline:none}
.kanban-new-form button[type="submit"]{background:#e5ad25;border-color:#e5ad25;color:#17120a;font-weight:800}

/* ---------- kanban ---------- */
.kanban-new-form{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.kanban-new-form input[name="titulo"]{flex:1 1 220px;min-width:0}
.kanban-new-form input,.kanban-new-form select{padding:8px 10px;border:1px solid #3d4658;border-radius:6px;background:#171d28;color:#f4f0e9;font:12px Inter,Arial,sans-serif}
.kanban-new-form button{border:1px solid #49566b;border-radius:6px;padding:8px 13px;font:10px ui-monospace,monospace;letter-spacing:.05em;cursor:pointer}

.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.kanban-col{border:1px solid #262d3a;border-radius:8px;background:#12161f;padding:10px;min-height:120px}
/* ampliado, as colunas param de brigar por espaço e a coluna inteira fica
   visível sem rolagem horizontal — o motivo principal de existir o modo */
.room-modal-drawer.expandido .kanban-board{grid-auto-columns:minmax(270px,1fr);gap:14px}
.room-modal-drawer.expandido .kanban-col{min-height:240px}
.kanban-col h4{margin:0 0 10px;display:flex;justify-content:space-between;align-items:center;font:10px ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:#aeb6c4}
.kanban-col h4 span{padding:1px 6px;border-radius:8px;background:#1c2431;color:#8991a3;font-size:9px}
.kanban-cards{display:grid;gap:8px}
.kanban-card{border:1px solid #2b3341;border-radius:6px;background:#171d28;padding:9px 10px}
.kanban-card-title{margin:0 0 6px;font-size:12px;line-height:1.4;color:#f0eee9}
.kanban-card-agent{display:inline-flex;align-items:center;gap:5px;font:9px ui-monospace,monospace;color:#aeb6c4}
.kanban-card-agent::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--a)}
/* tarefa sem dono é informação, não ausência: o ponto fica vazado para
   destacar de longe quem ainda não foi assumida */
.kanban-card-agent.sem-dono{color:#8a93a4;font-style:italic}
.kanban-card-agent.sem-dono::before{background:transparent;border:1px dashed #6d7686}
/* #79828f dava 4,35:1 sobre #171d28 e reprovava AA em 9px — o modo claro já
   tinha sido corrigido, o escuro tinha ficado para trás. */
.kanban-card-idade{display:block;margin-top:4px;font:9px ui-monospace,monospace;color:#7e8793;letter-spacing:.03em}
.kanban-card-acoes{display:flex;gap:5px;margin-top:8px}
.kanban-card-acoes button{border:1px solid #3d4658;border-radius:4px;background:#1c2431;color:#dbe1ea;width:24px;height:24px;font:11px ui-monospace,monospace;cursor:pointer;line-height:1}
.kanban-card-acoes button:hover{border-color:#e5ad25;color:#fff}
.kanban-card-remover{margin-left:auto;color:#f0a5a1!important}
.kanban-card-remover:hover{border-color:#ed6b64!important;color:#fff!important}

/* ---------- atividade ---------- */
.room-activity{display:grid;gap:2px}
/* Terceira coluna para o vínculo ("ver tarefa"). Quando não há vínculo a
   coluna `auto` mede zero, então a linha continua exatamente como era. */
.room-activity-item{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:start;padding:9px 0 9px 12px;border-left:2px solid var(--a);font-size:12px;color:#dbe1ea;line-height:1.4}
.room-vinculo{border:1px solid #3d4658;border-radius:5px;padding:3px 8px;background:transparent;color:#aeb6c4;font:9px ui-monospace,monospace;letter-spacing:.04em;cursor:pointer;white-space:nowrap}
.room-vinculo:hover,.room-vinculo:focus-visible{border-color:#e5ad25;color:#f1c55b}

/* Destaque de chegada: o salto de aba levou a atenção para cá. Temporário de
   propósito — é um "está aqui", não um estado de seleção. */
.kanban-card.destacado,.room-artifact.destacado,.room-decision.destacado{
  outline:2px solid #e5ad25;outline-offset:2px;
}
@media(prefers-reduced-motion:no-preference){
  .kanban-card.destacado,.room-artifact.destacado,.room-decision.destacado{transition:outline-color .2s ease}
}
.room-feedback{margin:16px 0 0;padding:9px;border:1px solid #3d4658;border-radius:5px;color:#58cf91;font:10px ui-monospace,monospace}.conversation-panel{min-height:430px}.conversation-memory-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#aeb6c4;font:10px ui-monospace,monospace}.conversation-memory-bar b{color:#58cf91}.conversation-connection{display:flex;align-items:center;gap:6px}.conversation-connection i{width:7px;height:7px;border-radius:50%;background:#8991a3}.conversation-connection i.online{background:#58cf91;box-shadow:0 0 8px #58cf91}.conversation-memory-bar button,.conversation-form-actions button{border:1px solid #49566b;border-radius:5px;padding:7px 9px;background:#202a3a;color:#e8edf5;font:9px ui-monospace,monospace;cursor:pointer}.conversation-memory-bar button:hover,.conversation-form-actions button:hover{border-color:#e5ad25}.conversation-memory-bar button:disabled{opacity:.6;cursor:wait}.conversation-warning{padding:9px;margin-bottom:10px;border:1px solid #a87922;border-radius:5px;background:#3a2810;color:#f1c55b;font:10px/1.4 ui-monospace,monospace}.conversation-messages{display:grid;gap:8px;max-height:280px;overflow:auto;padding:3px}.conversation-message{padding:9px 11px;border-radius:6px;background:#171d28;border:1px solid #303746}.conversation-message.user{border-color:#475e7e}.conversation-message strong{font:10px ui-monospace,monospace;color:#e5ad25}.conversation-message p{margin:5px 0;color:#e5e9ef;font-size:12px;line-height:1.45;white-space:pre-wrap}.conversation-message small{color:#8991a3;font:8px ui-monospace,monospace}.conversation-form{margin-top:12px;padding-top:12px;border-top:1px solid #303746}.conversation-form textarea{width:100%;resize:vertical;min-height:70px;padding:10px;border:1px solid #3d4658;border-radius:6px;background:#0b1018;color:#f4f0e9;font:13px Arial,sans-serif}.conversation-form textarea:focus{outline:2px solid #e5ad25;outline-offset:1px}.conversation-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px}.conversation-form-actions select{min-width:145px;flex:1;padding:7px;border:1px solid #3d4658;border-radius:5px;background:#171d28;color:#cfd6e1;font:9px ui-monospace,monospace}.conversation-form-actions .primary{background:#e5ad25;border-color:#e5ad25;color:#17120a;font-weight:700}.room-tabs [data-tab="conversa"]{color:#58cf91}@media(max-width:700px){.conversation-panel{min-height:420px}.conversation-messages{max-height:230px}.conversation-form-actions{flex-wrap:wrap}.conversation-form-actions select{flex-basis:100%}.conversation-connection button:last-child{display:none}}
.room-feedback.erro{color:#ed6b64;border-color:#5a3232}
.room-feedback:empty{display:none}

.new-agent-form{display:grid;gap:12px;margin-top:16px}
.new-agent-form label{display:grid;gap:6px;font:10px ui-monospace,monospace;letter-spacing:.05em;color:#8991a3;text-transform:uppercase}
.new-agent-form input,.new-agent-form select,.new-agent-form textarea{
  width:100%;padding:9px 10px;border:1px solid #3d4658;border-radius:6px;background:#171d28;
  color:#f4f0e9;font:13px Inter,Arial,sans-serif;font-family:inherit;resize:vertical;
}
.new-agent-form input:focus,.new-agent-form select:focus,.new-agent-form textarea:focus{outline:2px solid #e5ad25;outline-offset:1px}
.room-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #303746;padding-top:14px;margin-top:4px}
.new-agent-form .room-actions{border-top:0;padding-top:4px}

@media(max-width:700px){
  /* No mobile o menu participa do fluxo da página: abrir empurra o conteúdo
     para baixo, em vez de esconder os cards atrás de uma camada escura. */
  #shared-nav{position:relative;left:auto;top:auto;width:100%;max-height:none;margin:0;border-radius:0 0 12px 12px;padding:10px 12px;box-shadow:0 10px 28px #0006}
  .nav-head{border:0;padding:0}
  .nav-brand-text{display:block}
  .nav-brand-text small{display:none}
  #shared-nav.collapsed .nav-brand-text{display:block}
  #shared-nav.collapsed{width:100%;overflow:visible}
  #shared-nav.collapsed .nav-head{flex-direction:row;gap:8px}
  #shared-nav.collapsed .nav-links{display:none}
  .nav-toggle{margin-left:auto;width:auto;min-width:78px;display:flex;align-items:center;justify-content:center;gap:8px}
  .nav-toggle-label{display:inline}
  .nav-toggle-icon{width:15px;height:12px;border:0;border-radius:0}
  .nav-toggle-icon::before{left:0;right:auto;top:1px;bottom:auto;width:15px;height:1.5px;border:0;background:currentColor;box-shadow:0 5px currentColor,0 10px currentColor}
  #shared-nav.collapsed .nav-toggle-icon::before{left:0;right:auto}
  /* Em telas pequenas o menu começa recolhido, mas precisa abrir de verdade.
     Antes `.nav-links{display:none}` continuava vencendo mesmo depois de o
     botão expandir o menu; o usuário via apenas a faixa com o ícone e não
     conseguia chegar ao 3D ou à Planta Tática. */
  #shared-nav:not(.collapsed){max-height:calc(100vh - 16px);overflow-y:auto}
  #shared-nav:not(.collapsed) .nav-brand-text,
  #shared-nav:not(.collapsed) .nav-section,
  #shared-nav:not(.collapsed) .nav-links,
  #shared-nav:not(.collapsed) .nav-footer,
  #shared-nav:not(.collapsed) .nav-depts,#shared-nav:not(.collapsed) .nav-account{display:block}
  #shared-nav:not(.collapsed) .nav-head{padding-bottom:13px;border-bottom:1px solid #303746}
  #shared-nav:not(.collapsed) .nav-links{display:grid;padding:13px 0 15px}
  #shared-nav:not(.collapsed) .nav-depts{padding-bottom:4px}
  /* Cobrimos as duas variantes (aberto/recolhido) para vencer em especificidade
     a regra .root-panel.nav-collapsed .app que define 88px + 1fr no desktop —
     sem isso o mobile com menu recolhido continuava em 2 colunas e a página
     ficava espremida numa coluna estreita à direita. */
  .root-panel .app,
  .root-panel.nav-collapsed .app{grid-template-columns:1fr!important;padding-top:0}
  .room-modal:not(.room-modal-drawer){align-items:flex-end;padding:10px}
  .room-dialog{max-height:80vh}
  /* drawer vira folha cheia — não cabe espaço pra "empurrar conteúdo" numa
     tela de 390px, então ocupa a viewport inteira como uma página própria */
  .room-drawer{width:100vw;padding:20px 16px 90px}
  .room-agent{grid-template-columns:1fr;gap:8px}
  .room-agent-avatar{width:28px;height:28px}
  .room-agent-acoes{justify-content:flex-start}
  .kanban-board{grid-auto-columns:min(78vw,320px)}
}
@media(prefers-reduced-motion:reduce){#shared-nav,.root-panel .app{transition:none}}
