/* Access Lex Lit - App CSS */
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, sans-serif; background: #f3f4f6; color: #1f2937; min-height: 100vh; }

.navbar {
  display: flex; align-items: center; gap: 1rem;
  background: linear-gradient(90deg, #1e3a5f 0%, #7b1921 100%);
  padding: .7rem 1.5rem; flex-wrap: wrap; position: sticky; top: 0; z-index: 100;
}
.brand { display:flex; align-items:center; gap:.5rem; color:#fff; }
.brand-dot { font-size:1.4rem; color:#60a5fa; }
.brand strong { display:block; font-size:1rem; }
.brand small { font-size:.7rem; opacity:.8; }
.nav-links { display:flex; gap:.4rem; flex-wrap:wrap; }
.nav-links a {
  color:#d1d5db; text-decoration:none; padding:.35rem .8rem;
  border-radius:.375rem; font-size:.85rem; transition:background .15s;
}
.nav-links a:hover, .nav-links a.active { background:rgba(255,255,255,.15); color:#fff; }
.user-info { margin-left:auto; display:flex; align-items:center; gap:.7rem; color:#fff; font-size:.85rem; }
.btn-logout {
  color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.4);
  border-radius:.375rem; padding:.25rem .7rem; font-size:.8rem;
}
.btn-logout:hover { background:rgba(255,255,255,.15); }

.container { max-width:1100px; margin:2rem auto; padding:0 1rem; }

.card {
  background:#fff; border-radius:.75rem; padding:1.5rem;
  box-shadow:0 1px 3px rgba(0,0,0,.1); margin-bottom:1.5rem;
}
.card h1 { font-size:1.5rem; margin-bottom:.5rem; color:#111827; }
.card h2 { font-size:1.1rem; margin-bottom:1rem; color:#374151; }
.subtitle { color:#6b7280; font-size:.9rem; margin-bottom:1.2rem; }

.form-group { margin-bottom:1rem; }
.form-group label { display:block; font-size:.85rem; font-weight:500; color:#374151; margin-bottom:.3rem; }
.form-group input, .form-group textarea, .form-group select {
  width:100%; padding:.6rem .9rem; border:1px solid #d1d5db;
  border-radius:.5rem; font-size:.9rem; font-family:inherit;
}
.form-group textarea { resize:vertical; min-height:120px; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
  outline:none; border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.2);
}

.btn { display:inline-block; padding:.55rem 1.2rem; border-radius:.5rem; font-size:.9rem; font-weight:500; cursor:pointer; border:none; text-decoration:none; }
.btn-primary { background:#1e3a5f; color:#fff; }
.btn-primary:hover { background:#163059; }
.btn-success { background:#059669; color:#fff; }
.btn-success:hover { background:#047857; }
.btn-danger  { background:#dc2626; color:#fff; }
.btn-danger:hover  { background:#b91c1c; }
.btn-sm { padding:.35rem .8rem; font-size:.8rem; }

.alert { padding:.8rem 1rem; border-radius:.5rem; margin-bottom:1rem; font-size:.9rem; }
.alert-error   { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
.alert-success { background:#d1fae5; color:#065f46; border:1px solid #6ee7b7; }
.alert-info    { background:#dbeafe; color:#1e40af; border:1px solid #93c5fd; }
.alert-warning { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }

table { width:100%; border-collapse:collapse; font-size:.88rem; }
th, td { padding:.6rem 1rem; text-align:left; border-bottom:1px solid #e5e7eb; }
th { background:#f9fafb; font-weight:600; color:#374151; }
tr:hover td { background:#f9fafb; }

.badge {
  display:inline-block; padding:.15rem .5rem; border-radius:9999px;
  font-size:.75rem; font-weight:600;
}
.badge-critical { background:#fee2e2; color:#991b1b; }
.badge-high     { background:#fde68a; color:#92400e; }
.badge-medium   { background:#dbeafe; color:#1e40af; }
.badge-low      { background:#d1fae5; color:#065f46; }
.badge-info     { background:#e5e7eb; color:#374151; }
.badge-success  { background:#d1fae5; color:#065f46; }
.badge-warning  { background:#fef3c7; color:#92400e; }

.score-bar { display:flex; align-items:center; gap:.8rem; margin:.8rem 0; }
.score-bar .bar { flex:1; height:12px; background:#e5e7eb; border-radius:9999px; overflow:hidden; }
.score-bar .fill { height:100%; border-radius:9999px; transition:width .4s; }
.fill-low    { background:#059669; }
.fill-medium { background:#d97706; }
.fill-high   { background:#dc2626; }

.finding-item { border-left:4px solid #e5e7eb; padding:.7rem 1rem; margin-bottom:.7rem; border-radius:0 .5rem .5rem 0; background:#f9fafb; }
.finding-item.critical { border-color:#dc2626; }
.finding-item.high     { border-color:#f59e0b; }
.finding-item.medium   { border-color:#3b82f6; }
.finding-item.low      { border-color:#10b981; }
.finding-item .excerpt { font-family:monospace; font-size:.8rem; color:#6b7280; margin-top:.3rem; background:#fff; padding:.3rem .5rem; border-radius:.25rem; white-space:pre-wrap; word-break:break-all; }

.login-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; }
.login-box { background:#fff; border-radius:.75rem; padding:2rem; box-shadow:0 4px 24px rgba(0,0,0,.1); width:100%; max-width:380px; }
.login-logo { text-align:center; margin-bottom:1.5rem; }
.login-logo h1 { font-size:1.4rem; color:#1e3a5f; }
.login-logo p  { font-size:.85rem; color:#6b7280; }

.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:640px) { .grid-2 { grid-template-columns:1fr; } .navbar { flex-direction:column; align-items:flex-start; } }

.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; margin-bottom:1.5rem; }
.stat-card { background:#fff; border-radius:.75rem; padding:1.2rem; text-align:center; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.stat-card .number { font-size:2rem; font-weight:700; color:#1e3a5f; }
.stat-card .label  { font-size:.8rem; color:#6b7280; }

.tab-nav { display:flex; gap:.3rem; border-bottom:2px solid #e5e7eb; margin-bottom:1rem; }
.tab-nav a { padding:.5rem 1rem; text-decoration:none; color:#6b7280; font-size:.9rem; border-radius:.375rem .375rem 0 0; }
.tab-nav a.active { color:#1e3a5f; border-bottom:2px solid #1e3a5f; margin-bottom:-2px; font-weight:600; }

.rec-aprovado        { color:#065f46; }
.rec-revisar_leve    { color:#92400e; }
.rec-revisar         { color:#d97706; }
.rec-revisar_urgente { color:#dc2626; }
.rec-nao_publicar    { color:#991b1b; font-weight:700; }
