.app{display:flex;min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--borda);display:flex;flex-direction:column;z-index:40;transition:transform .2s ease}
.sidebar-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:41}
.sidebar-resize:hover,.sidebar-resize.ativo{background:var(--accent-soft)}
.sidebar-marca{display:flex;align-items:center;gap:10px;height:var(--topbar-h);padding:0 18px;border-bottom:1px solid var(--borda)}
.marca-icone{width:30px;height:30px;border-radius:var(--raio-sm);background:var(--accent);color:var(--texto-sobre-accent);display:grid;place-items:center;font-size:18px}
.marca-nome{font-family:var(--font-titulo);font-weight:700;font-size:15px;letter-spacing:-.02em}
.sidebar-nav{flex:1;overflow-y:auto;padding:12px 10px}
.nav-titulo{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--texto-3);padding:10px 10px 6px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--raio-sm);color:var(--texto-2);font-weight:500;font-size:13px}
.nav-item:hover{background:var(--bg-sutil);text-decoration:none;color:var(--texto)}
.nav-item.ativo{background:var(--accent-suave);color:var(--accent-escura);font-weight:600}
:root[data-tema="escuro"] .nav-item.ativo{color:var(--accent-texto)}
.nav-item i{font-size:18px}
.sidebar-rodape{padding:12px;border-top:1px solid var(--borda)}
.btn-home-side{display:flex;align-items:center;gap:10px;padding:9px 12px;margin-bottom:8px;border-radius:var(--raio-sm);background:linear-gradient(135deg,var(--accent),var(--accent-escura));color:var(--texto-sobre-accent);text-decoration:none;font-weight:600;font-size:13px;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 2px 8px var(--accent-sombra)}
.btn-home-side:hover{color:var(--texto-sobre-accent);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 14px var(--accent-sombra)}
.btn-home-side.ativo{box-shadow:inset 0 0 0 2px rgba(255,255,255,.4),0 2px 8px var(--accent-sombra)}
.btn-home-side i{font-size:17px;flex-shrink:0}
.usuario-box{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--raio-sm)}
.avatar{flex:none;width:34px;height:34px;border-radius:var(--raio-full);background:linear-gradient(135deg,var(--accent),var(--accent-escura));color:var(--branco);display:grid;place-items:center;font-weight:700;font-size:13px}
.usuario-box .info{min-width:0;flex:1}
.usuario-box .info .nome{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.usuario-box .info .papel{font-size:11px;color:var(--texto-3)}
.usuario-box form{margin:0}
.icone-btn{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:var(--raio-sm);border:0;background:none;color:var(--texto-2);font-size:18px}
.icone-btn:hover{background:var(--bg-sutil);color:var(--texto)}
.conteudo{flex:1;min-width:0;margin-left:var(--sidebar-width);display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--bg-card);border-bottom:1px solid var(--borda)}
.topbar-titulo{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.topbar-titulo .titulo-pagina{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-acoes{display:flex;align-items:center;gap:10px}
.btn-menu{display:none}
.overlay-mob{display:none;position:fixed;inset:0;background:var(--overlay);z-index:35}
.overlay-mob.visivel{display:block}
.pagina {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  padding: var(--sp-6) var(--sp-5) 50px;
  min-width: 0;
  max-width: 1400px;
  width: 100%;
}
.pagina > * { min-width: 0; }
.flash-area{position:fixed;top:70px;right:24px;z-index:80;display:grid;gap:8px;max-width:380px}
.flash{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--raio-sm);background:var(--bg-card);border:1px solid var(--borda);box-shadow:var(--sombra)}
.flash.erro{border-color:var(--perigo);color:var(--perigo)}
.flash.sucesso{border-color:var(--sucesso)}
.flash.aviso{border-color:var(--aviso)}
.auth-tema{position:fixed;top:16px;right:16px}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--borda);border-radius:var(--raio-lg);box-shadow:var(--sombra);padding:28px}
.auth-marca{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.auth-card h1{font-size:20px;margin-bottom:4px}
.auth-card .sub{color:var(--texto-3);margin-bottom:20px}
@media (max-width:880px){
  .sidebar{transform:translateX(-100%);width:min(var(--sidebar-width),86vw)}
  .sidebar.aberta{transform:translateX(0)}
  .sidebar-resize{display:none}
  .conteudo{margin-left:0}
  .btn-menu{display:grid}
  .topbar{padding:0 16px}
  .pagina{padding:18px 16px 50px}
  .flash-area{left:16px;right:16px;max-width:none}
}
@media (max-width:720px){.linha-campos,.linha-campos-2,.linha-campos-3,.linha-campos-4{grid-template-columns:1fr}}
@media (max-width:520px){.pagina{padding:14px 14px 44px}.auth-card{padding:22px}}
