/* Ozawa Sys — tema claro estilo portal corporativo (sidebar + cards) */
:root {
  --bg:#eef1f6; --card:#ffffff; --line:#e2e8f0; --txt:#334155; --tit:#1e3a5f;
  --mut:#64748b; --acc:#2563eb; --acc-soft:#eff6ff; --ok:#16a34a; --warn:#f59e0b; --err:#dc2626;
  --side:#ffffff; --side-w:240px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--txt); font:14px/1.5 'Segoe UI',system-ui,sans-serif; }
a { color:var(--acc); text-decoration:none; }
h2,h3,h4 { color:var(--tit); }

/* ---- layout com sidebar ---- */
.layout { display:flex; min-height:100vh; }
.sidebar { width:var(--side-w); background:var(--side); border-right:1px solid var(--line);
  padding:22px 0; flex-shrink:0; }
.side-perfil { text-align:center; padding:0 16px 18px; border-bottom:1px solid var(--line); }
.side-avatar { width:72px; height:72px; border-radius:50%; background:#e2e8f0; margin:0 auto 10px;
  display:flex; align-items:center; justify-content:center; font-size:28px; color:#94a3b8; font-weight:700; }
.side-nome { font-weight:700; color:var(--tit); font-size:13px; text-transform:uppercase; }
.side-sub { color:var(--mut); font-size:12px; margin-top:2px; }
.side-menu { padding:12px 0; }
.side-item { display:flex; align-items:center; gap:12px; padding:11px 22px; color:var(--tit);
  font-weight:600; cursor:pointer; border-left:3px solid transparent; }
.side-item:hover { background:#f1f5f9; }
.side-item.active { background:#f1f5f9; border-left-color:var(--acc); }
.side-item .ico { font-size:17px; width:22px; text-align:center; }
.side-item .badge { margin-left:auto; }
.side-rodape { padding:16px 22px 0; color:var(--mut); font-size:11px; text-align:center; }

/* ---- área de conteúdo ---- */
.content { flex:1; min-width:0; }
.topo { background:var(--card); border-bottom:1px solid var(--line); padding:12px 26px;
  display:flex; justify-content:space-between; align-items:center; }
.brand { font-weight:800; color:var(--tit); letter-spacing:.5px; }
.migalha { padding:14px 26px 0; color:var(--mut); font-size:13px; }
.migalha b { color:var(--tit); }
.container { padding:16px 26px 30px; max-width:1160px; }

.badge { background:var(--warn); color:#fff; border-radius:10px; padding:1px 8px;
  font-size:11px; font-weight:700; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:20px; box-shadow:0 1px 3px rgba(30,58,95,.06); }

/* abas */
.tabs { display:flex; gap:6px; margin:14px 0; flex-wrap:wrap; }
.tab { padding:7px 16px; border:1px solid var(--line); border-radius:6px; color:var(--mut);
  cursor:pointer; background:var(--card); font-weight:600; }
.tab.active { border-color:var(--acc); color:var(--acc); background:var(--acc-soft); }

/* tabelas */
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:11px 10px; border-bottom:1px solid var(--line); }
th { color:var(--mut); font-size:12px; text-transform:uppercase; }
tr.nao-lido td { font-weight:700; color:var(--tit); }
tbody tr:hover { background:#f8fafc; cursor:pointer; }

/* formulários */
input, select, textarea { width:100%; padding:9px 11px; background:#fff; color:var(--txt);
  border:1px solid #cbd5e1; border-radius:6px; font:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid #bfdbfe; border-color:var(--acc); }
label { display:block; margin:12px 0 4px; color:var(--tit); font-size:12px; font-weight:700; }
.btn { display:inline-block; padding:9px 20px; background:var(--acc); color:#fff;
  border:none; border-radius:6px; font-weight:700; cursor:pointer; }
.btn:hover { background:#1d4ed8; }
.btn.sec { background:#fff; color:var(--mut); border:1px solid #cbd5e1; }
.btn.sec:hover { background:#f1f5f9; }
.msg-err { color:var(--err); margin-top:10px; font-weight:600; }
.msg-ok { color:var(--ok); margin-top:10px; font-weight:600; }
.editor { min-height:140px; background:#fff; border:1px solid #cbd5e1; border-radius:6px; padding:10px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* login (sem sidebar) */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; }

/* responsivo */
@media (max-width:760px){
  .grid2 { grid-template-columns:1fr; }
  .layout { flex-direction:column; }
  .sidebar { width:100%; border-right:none; border-bottom:1px solid var(--line); padding:12px 0; }
  .side-perfil { display:none; }
  .side-menu { display:flex; justify-content:center; flex-wrap:wrap; }
  .side-item { border-left:none; border-bottom:3px solid transparent; padding:8px 14px; }
  .side-item.active { border-bottom-color:var(--acc); }
  .side-rodape { display:none; }
}

/* ---- refinamentos estilo VantSys ---- */
.topo { gap:14px; }
.hamb { font-size:20px; cursor:pointer; color:var(--tit); display:none; }
.logo-marca { font-size:17px; letter-spacing:1px; color:var(--tit); }
.logo-marca b { color:var(--acc); }
.topo-ico { position:relative; font-size:18px; cursor:pointer; padding:4px 6px; border-radius:6px; }
.topo-ico:hover { background:#f1f5f9; }
.topo-ico .badge { position:absolute; top:-4px; right:-6px; }
.chip { display:inline-block; background:#0ea5e9; color:#fff; font-size:11px; font-weight:700;
  padding:2px 10px; border-radius:4px; }
.linha-topo-pagina { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.por-pagina { display:flex; align-items:center; gap:6px; color:var(--mut); font-size:13px; }
.por-pagina select { width:auto; padding:5px 8px; }
/* abas estilo sublinhado (como o portal) */
.tabs.sub { gap:0; border-bottom:1px solid var(--line); margin:14px 0 0; }
.tabs.sub .tab { border:none; border-bottom:3px solid transparent; border-radius:0;
  background:transparent; padding:10px 18px; }
.tabs.sub .tab.active { background:transparent; color:var(--tit); border-bottom-color:var(--acc); font-weight:700; }
.acoes-lista { margin:14px 0 10px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.lnk-filtro { color:var(--acc); font-size:13px; cursor:pointer; }
.btn.navy { background:var(--tit); }
.btn.navy:hover { background:#16304f; }
.previa { color:var(--mut); font-size:12px; font-weight:400; }
.dt-leitura { color:#e8590c; }
.paginacao { text-align:center; color:var(--mut); padding:12px 0 2px; font-size:13px; }


/* ---- sidebar recolhível (setinha) ---- */
.side-recolher { text-align:right; padding:0 14px 6px; }
.side-recolher span { display:inline-flex; width:26px; height:26px; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:50%; cursor:pointer; color:var(--tit);
  font-size:16px; font-weight:700; background:#fff; }
.side-recolher span:hover { background:#f1f5f9; border-color:var(--acc); color:var(--acc); }
.sidebar { transition:width .15s ease; }
.sidebar.mini { width:64px; }
.sidebar.mini .side-perfil { padding:0 6px 12px; }
.sidebar.mini .side-avatar { width:40px; height:40px; font-size:17px; }
.sidebar.mini .side-nome, .sidebar.mini .side-sub, .sidebar.mini .side-rodape,
.sidebar.mini .side-item .rot { display:none; }
.sidebar.mini .side-item { justify-content:center; padding:11px 0; }
.sidebar.mini .side-item .badge { position:absolute; margin-left:22px; margin-top:-16px; }
.sidebar.mini .side-recolher { text-align:center; padding:0 0 6px; }

/* ---- prioridade de avisos ---- */
.prio-dot { display:inline-block; width:9px; height:9px; border-radius:50%;
  margin-right:8px; vertical-align:1px; }

/* ---- sino urgente: vermelho + balançando ---- */
.topo-ico.urgente { color:#dc2626; animation:sino-balanca 1s ease-in-out infinite; transform-origin:top center; }
.topo-ico.urgente .badge { background:#dc2626; }
@keyframes sino-balanca {
  0%,100% { transform:rotate(0); }
  10% { transform:rotate(16deg); } 20% { transform:rotate(-14deg); }
  30% { transform:rotate(12deg); } 40% { transform:rotate(-10deg); }
  50% { transform:rotate(7deg); }  60% { transform:rotate(-4deg); }
  70% { transform:rotate(2deg); }  80% { transform:rotate(0); }
}
