body { font-family:'Inter',system-ui,sans-serif; }
/* Evita flash do login ao recarregar com sessão ativa */
html.has-session #page-login { display:none; }
.fade-in { animation:fi .18s ease; }
@keyframes fi { from{opacity:0;transform:translateY(5px)} to{opacity:1;transform:none} }
.modal-bg { background:rgba(15,23,42,.55); backdrop-filter:blur(2px); }
input:focus,select:focus,textarea:focus { outline:none; box-shadow:0 0 0 3px #3b82f640; }
.row-hover:hover td { background:#f0f9ff !important; }
.pw-strength-bar { transition:width .3s,background .3s; }
::-webkit-scrollbar { height:6px; width:5px; }
::-webkit-scrollbar-track { background:#f1f5f9; }
::-webkit-scrollbar-thumb { background:#475569; border-radius:99px; }
.tag { display:inline-block; padding:1px 8px; border-radius:99px; font-size:.7rem; font-weight:600; white-space:nowrap; }
.th-sort { cursor:pointer; user-select:none; white-space:nowrap; }
.th-sort:hover { background:#dde3ec; }
.form-label { display:block; font-size:.7rem; font-weight:700; color:#52627a; margin-bottom:.35rem; text-transform:uppercase; letter-spacing:.04em; }
.form-input { width:100%; border:1px solid #cbd5e1; border-radius:.75rem; padding:.5rem .75rem; font-size:.85rem; color:#0f172a; background:#f8fafc; transition:background .15s,border-color .15s,box-shadow .15s; }
.form-input::placeholder { color:#94a3b8; opacity:1; }
.form-input:hover { border-color:#94a3b8; }
.form-input:focus { background:white; border-color:#3b82f6; }
.input-error { border-color:#f87171 !important; background:#fef2f2 !important; }
.section-title { font-size:.7rem; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.06em; padding-bottom:.55rem; border-bottom:1px solid #cbd5e1; margin-bottom:1rem; margin-top:.5rem; }
#modal-asset .border-slate-100 { border-color:#dbe3ee; }

/* ── STATUS TABS ── */
.status-tab { color:#64748b; }
.status-tab:hover { background:#f1f5f9; }
.status-tab-active { background:#2563eb; color:#fff; }

/* ── SIDEBAR ── */
#sidebar { width:224px; transition:width .25s ease; flex-shrink:0; overflow:hidden; }
#sidebar.collapsed { width:56px; }

.sb-label { transition:opacity .15s ease,max-width .25s ease; max-width:200px; overflow:hidden; white-space:nowrap; }
#sidebar.collapsed .sb-label { opacity:0; max-width:0; }
#sidebar.collapsed .sb-logo-text { display:none; }
#sidebar.collapsed .inv-submenu { max-height:0 !important; }
#sidebar.collapsed .rede-submenu { max-height:0 !important; }

.sb-item { display:flex; align-items:center; gap:.6rem; width:100%; padding:.55rem .75rem; border-radius:.75rem; font-size:.82rem; font-weight:500; color:#94a3b8; transition:all .15s; text-align:left; }
.sb-item:hover { background:rgba(255,255,255,.08); color:#e2e8f0; }
.sb-item.sb-active { background:rgba(255,255,255,.14); color:#fff; font-weight:600; }
.sb-sub { display:flex; align-items:center; gap:.55rem; width:100%; padding:.4rem .75rem .4rem 2.5rem; border-radius:.75rem; font-size:.79rem; color:#64748b; transition:all .15s; text-align:left; white-space:nowrap; }
.sb-sub:hover { background:#f1f5f9; color:#334155; }
.sb-sub.sb-sub-active { background:#eff6ff; color:#1d4ed8; font-weight:600; }
.inv-submenu { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.inv-submenu.open { max-height:520px; }
.inv-chevron { transition:transform .25s ease; margin-left:auto; flex-shrink:0; }
.inv-chevron.rotated { transform:rotate(180deg); }
.rede-submenu { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.rede-submenu.open { max-height:200px; }
.rede-chevron { transition:transform .25s ease; margin-left:auto; flex-shrink:0; }
.rede-chevron.rotated { transform:rotate(180deg); }

#sidebar.collapsed .sb-item { justify-content:center; padding:.55rem; }
#sidebar.collapsed .sb-sub { display:none; }
#sidebar.collapsed .inv-chevron { display:none; }
#sidebar.collapsed .rede-chevron { display:none; }

/* ── MOBILE ── */
@media (max-width:767px) {
  #sidebar { position:fixed; left:0; top:0; height:100%; z-index:40; width:224px !important; transform:translateX(-100%); transition:transform .25s ease; }
  #sidebar.mobile-open { transform:translateX(0); }
  #sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:39; }
  #sidebar-overlay.visible { display:block; }
  #mobile-topbar { display:flex; }
}
@media (min-width:768px) {
  #mobile-topbar { display:none; }
}

/* table-cell-hide: oculto em qualquer tamanho — info disponível no detalhe */
.table-cell-hide { display:none; }

/* table-cell-hide-sm: oculto apenas em mobile (usado na view "Todos os Ativos") */
@media (max-width:639px) {
  .table-cell-hide-sm { display:none; }
}
