:root{
  --verde:#1b5e20; --verde2:#2e7d32; --amarelo:#ffeb3b;
  --cinza:#f4f6f8; --borda:#d8dee4; --txt:#222;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font:15px/1.5 -apple-system,"Segoe UI",Roboto,sans-serif;background:var(--cinza);color:var(--txt)}

/* LOGIN */
.tela-login{display:flex;align-items:center;justify-content:center;min-height:100vh;
  background:linear-gradient(135deg,var(--verde),var(--verde2))}
.card-login{background:#fff;padding:36px;border-radius:14px;width:100%;max-width:380px;
  box-shadow:0 12px 40px rgba(0,0,0,.25)}
.card-login h1{font-size:22px;text-align:center;color:var(--verde)}
.card-login .sub{text-align:center;color:#777;margin-bottom:22px;font-size:14px}
label{display:block;font-weight:600;font-size:13px;margin:14px 0 5px}
input,select,textarea{width:100%;padding:11px;border:1px solid var(--borda);border-radius:8px;font:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--verde2);box-shadow:0 0 0 3px #2e7d3222}
button{width:100%;margin-top:22px;padding:12px;background:var(--verde);color:#fff;border:0;
  border-radius:8px;font-weight:700;font-size:15px;cursor:pointer}
button:hover{background:var(--verde2)}

/* TOPO */
.topo{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:var(--verde);
  color:#fff;padding:12px 22px}
.topo nav{display:flex;gap:16px;flex:1;flex-wrap:wrap}
.topo a{color:#fff;text-decoration:none;font-size:14px;opacity:.9}
.topo a:hover{opacity:1;text-decoration:underline}
.topo .user{font-size:13px;opacity:.9}

.container{max-width:1150px;margin:26px auto;padding:0 18px}
h1{font-size:22px;margin-bottom:18px;color:var(--verde)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:20px;
  text-align:center;font-size:13px;color:#666}
.card span{display:block;font-size:30px;font-weight:800;color:var(--verde);margin-bottom:4px}

.alerta{padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:14px}
.alerta.ok{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}
.alerta.erro{background:#ffebee;color:#b71c1c;border:1px solid #ef9a9a}
.nota{margin-top:22px;color:#666;font-size:14px}

/* campos preenchíveis (amarelo) */
.campo-amarelo{background:var(--amarelo)!important}

table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden}
th,td{padding:10px 12px;border-bottom:1px solid var(--borda);text-align:left;font-size:14px}
th{background:#eef2f5;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
tr:hover td{background:#fafcfa}
