:root{
  --grafite:#2B2E33; --grafite2:#1E2024; --dourado:#B8892B; --dourado2:#D9A94E;
  --dourado-pale:#F6EAD1; --bg:#F5F3EE; --branco:#fff; --borda:#E3E0D6;
  --texto:#2B2E33; --muted:#6B6E73; --danger:#B23A2E; --success:#2E7D32;
}
*{box-sizing:border-box}body{margin:0;font-family:'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--texto)}
a{text-decoration:none;color:inherit}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:linear-gradient(135deg,#fffdf8 0%,#f5eee1 55%,#eee2ce 100%)}
.login-brand{background:linear-gradient(135deg,var(--grafite),var(--grafite2));color:#fff;padding:64px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.brand-mark{width:92px;height:92px;border-radius:20px;background:var(--dourado);display:grid;place-items:center;font-size:42px;font-weight:800;color:var(--grafite);box-shadow:0 18px 35px rgba(0,0,0,.25);margin-bottom:26px}
.login-brand h1{font-size:46px;letter-spacing:3px;margin:0 0 8px}.login-brand h2{font-size:20px;color:var(--dourado2);font-weight:500;margin:0 0 22px}.login-brand p{font-size:17px;line-height:1.65;max-width:580px;color:#dedede}
.login-wrap{display:grid;place-items:center;padding:34px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--borda);border-radius:18px;padding:34px;box-shadow:0 24px 60px rgba(43,46,51,.14)}
.login-card h2{margin:0 0 7px;font-size:28px}.sub{color:var(--muted);margin:0 0 25px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}.field label{font-size:12px;font-weight:700;color:#555}
input,select{width:100%;padding:11px 12px;border:1px solid #d9d6cd;border-radius:8px;outline:none;background:#fff;font:inherit}input:focus,select:focus{border-color:var(--dourado);box-shadow:0 0 0 3px rgba(184,137,43,.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--dourado);border-radius:7px;padding:10px 15px;font-weight:700;cursor:pointer;font:inherit}.btn-primary{background:var(--dourado);color:var(--grafite)}.btn-primary:hover{background:var(--dourado2)}.btn-dark{background:var(--grafite);color:#fff;border-color:var(--grafite)}.btn-outline{background:#fff;color:var(--grafite);border-color:var(--borda)}.full{width:100%}.msg{padding:10px 12px;border-radius:8px;margin:0 0 15px;font-size:13px}.msg.error{background:#F8E7E4;color:#8d2a21}.msg.ok{background:#E7F3E8;color:#276a2a}
.topbar{height:72px;background:linear-gradient(135deg,var(--grafite),var(--grafite2));border-bottom:3px solid var(--dourado);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:12px}.brand .mini{width:42px;height:42px;background:var(--dourado);color:var(--grafite);display:grid;place-items:center;border-radius:9px;font-weight:900;font-size:20px}.brand strong{letter-spacing:2px}.brand small{display:block;color:var(--dourado2);letter-spacing:1.5px;margin-top:2px}.user-area{display:flex;align-items:center;gap:12px}.user-area span{font-size:13px;color:#ddd}
.shell{max-width:1380px;margin:0 auto;padding:30px 32px 60px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-head h1{margin:0 0 5px;font-size:27px}.page-head p{margin:0;color:var(--muted)}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.module-card{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:22px;position:relative;overflow:hidden;transition:.18s;min-height:210px}.module-card:before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:var(--dourado)}.module-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(43,46,51,.09)}.module-icon{width:48px;height:48px;border-radius:10px;background:var(--dourado-pale);display:grid;place-items:center;color:#8A6410;font-weight:900;font-size:21px;margin-bottom:17px}.module-card h3{margin:0 0 9px;font-size:18px}.module-card p{color:var(--muted);font-size:13.5px;line-height:1.55;min-height:64px}.module-card .action{margin-top:13px;color:#8A6410;font-size:13px;font-weight:800}.panel{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:22px}.table-wrap{overflow:auto;border:1px solid var(--borda);border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse;min-width:760px}th{background:var(--grafite);color:#fff;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;padding:11px 12px}td{padding:11px 12px;border-bottom:1px solid var(--borda);font-size:13px}.badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800}.badge.admin{background:var(--dourado-pale);color:#8A6410}.badge.user{background:#eee;color:#666}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.footer{text-align:center;color:var(--muted);font-size:11.5px;margin-top:34px}
@media(max-width:760px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.topbar{padding:0 15px}.shell{padding:20px 14px 40px}.page-head{align-items:flex-start;flex-direction:column}.user-area span{display:none}}
