:root{--green-950:#071a15;--green-900:#0d241d;--green-800:#12352b;--green-700:#1d4b3d;--green-500:#477866;--gold:#c8a55a;--gold-light:#ead7a2;--cream:#f4f1e8;--ink:#20342c;--muted:#718078;--danger:#b84b4b;--success:#3f815f;--border:rgba(18,53,43,.14);--shadow:0 24px 70px rgba(7,26,21,.20)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink)}body{background:#eef1ed}.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;overflow-x:hidden;position:relative;background:radial-gradient(circle at 20% 10%,rgba(200,165,90,.13),transparent 28%),linear-gradient(145deg,#071a15 0%,#0d241d 52%,#173d31 100%)}.auth-bg span{position:fixed;border-radius:50%;filter:blur(70px);opacity:.18;pointer-events:none}.auth-bg span:nth-child(1){width:330px;height:330px;background:#c8a55a;top:-100px;right:-60px}.auth-bg span:nth-child(2){width:380px;height:380px;background:#477866;bottom:-160px;left:-120px}.auth-bg span:nth-child(3){width:180px;height:180px;background:#ead7a2;top:42%;left:42%;opacity:.06}
.auth-shell{width:min(1040px,100%);display:grid;grid-template-columns:1.02fr .98fr;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.25);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);position:relative;z-index:1}.auth-brand{background:linear-gradient(155deg,#12352b,#071a15);color:#fff;padding:54px;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;position:relative;overflow:hidden}.auth-brand:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(200,165,90,.18);border-radius:50%;right:-150px;bottom:-160px}.brand-mark{width:82px;height:82px}.brand-word{font-size:46px;letter-spacing:7px;font-weight:800;margin-top:22px}.brand-kicker{color:var(--gold);letter-spacing:2px;font-size:12px;font-weight:700;margin-top:5px}.brand-slogan{font-family:Georgia,serif;font-size:23px;line-height:1.45;max-width:430px;color:#f5f0df;margin:35px 0 0}.brand-slogan strong{color:var(--gold-light)}.brand-features{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:45px}.feature{border:1px solid rgba(234,215,162,.15);border-radius:14px;padding:14px}.feature b{display:block;color:var(--gold-light);font-size:12px;letter-spacing:1px}.feature span{display:block;color:#c9d5cf;font-size:12px;margin-top:4px}
.auth-panel{padding:54px;display:flex;flex-direction:column;justify-content:center}.auth-top{text-align:center;margin-bottom:28px}.auth-top .mini-mark{width:58px;height:58px;display:none}.auth-title{font-size:30px;margin:0 0 8px;color:var(--green-800)}.auth-subtitle{color:var(--muted);margin:0;line-height:1.5}.form-group{margin-bottom:18px}.form-label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:#385148}.form-control{width:100%;border:1px solid #ccd6d0;border-radius:11px;padding:13px 14px;font-size:15px;background:#fff;color:var(--ink);outline:none;transition:.2s}.form-control:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(200,165,90,.14)}.input-wrap{position:relative}.input-wrap .form-control{padding-right:48px}.toggle-pass{position:absolute;right:8px;top:7px;border:0;background:transparent;color:#6c7b74;padding:8px;cursor:pointer}.btn-primary{width:100%;border:0;border-radius:11px;padding:14px 18px;background:var(--green-800);color:#fff;font-weight:800;cursor:pointer;transition:.2s}.btn-primary:hover{background:var(--green-700);transform:translateY(-1px)}.btn-secondary{display:block;text-align:center;text-decoration:none;border:1px solid #ccd6d0;border-radius:11px;padding:12px 18px;color:var(--green-800);font-weight:700;margin-top:10px;background:#fff}.link{color:#7d6330;text-decoration:none;font-weight:700}.link:hover{text-decoration:underline}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.alert{border-radius:11px;padding:12px 14px;margin-bottom:18px;font-size:14px;line-height:1.45}.alert-danger{background:#fff0f0;border:1px solid #edc0c0;color:#7e2f2f}.alert-success{background:#eef9f1;border:1px solid #bedec6;color:#2c6541}.auth-footer{text-align:center;color:#87938e;font-size:12px;margin-top:25px}.password-meter{height:7px;border-radius:99px;background:#e7ebe8;overflow:hidden;margin-top:8px}.password-meter span{display:block;height:100%;width:0;background:var(--danger);transition:.2s}.requirements{font-size:12px;color:#74817b;margin-top:10px;line-height:1.7}.requirements .ok{color:var(--success)}.requirements .bad{color:#a26868}.success-box{text-align:center;padding:18px 0}.success-icon,.error-icon{font-size:46px;margin-bottom:12px}.success-icon{color:var(--success)}.error-icon{color:var(--danger)}.small-note{font-size:12px;color:#81908a;line-height:1.6}.reset-warning{background:#fbf6e9;border:1px solid #ead9aa;color:#705a25;border-radius:12px;padding:13px;font-size:13px;margin-bottom:18px}.audit-note{display:flex;gap:10px;align-items:flex-start;background:#f2f6f3;border:1px solid #dbe4df;border-radius:12px;padding:12px;font-size:12px;color:#64746d;margin-top:18px}.dashboard{min-height:100vh;background:#f2f4f1}.topbar{height:74px;background:#12352b;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 3px 18px rgba(7,26,21,.12)}.brand-inline{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff}.brand-inline img{width:40px;height:40px}.brand-inline strong{letter-spacing:3px;font-size:21px}.user-menu{display:flex;align-items:center;gap:16px}.user-menu span{font-size:13px;color:#d9e3de}.logout{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:8px 12px;font-size:12px}.dash-wrap{max-width:1180px;margin:0 auto;padding:40px 24px}.dash-title h1{margin:0;color:var(--green-800);font-size:32px}.dash-title p{color:var(--muted);margin:7px 0 30px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi,.module-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 7px 25px rgba(18,53,43,.06)}.kpi small{color:var(--muted)}.kpi strong{display:block;font-size:28px;color:var(--green-800);margin-top:7px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.module-card h3{margin:0 0 8px;color:var(--green-800)}.module-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.module-card .module-icon{font-size:24px;color:var(--gold);margin-bottom:10px}
@media(max-width:850px){.auth-shell{grid-template-columns:1fr}.auth-brand{min-height:auto;padding:35px}.brand-features{display:none}.brand-slogan{font-size:20px}.auth-panel{padding:35px}.kpis{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.auth-body{padding:0}.auth-shell{border-radius:0;min-height:100vh}.auth-brand{padding:28px;min-height:300px}.brand-word{font-size:38px}.brand-slogan{margin-top:20px}.auth-panel{padding:28px 22px}.row-between{align-items:flex-start;flex-direction:column}.kpis,.module-grid{grid-template-columns:1fr}.topbar{padding:0 16px}.user-menu span{display:none}}

/* NIDUS — identidade visual */
.auth-body{
 background:radial-gradient(circle at 18% 12%,rgba(184,239,85,.10),transparent 25%),
 radial-gradient(circle at 82% 80%,rgba(215,173,69,.10),transparent 28%),
 linear-gradient(145deg,#04150f 0%,#08241a 52%,#103b2c 100%);
}
.auth-body:before{content:"";position:fixed;inset:-25%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(125,255,106,.14),transparent 34%);animation:nidusGlow 5s ease-in-out infinite}
@keyframes nidusGlow{0%,100%{opacity:.28;transform:scale(.96)}50%{opacity:.72;transform:scale(1.04)}}
.auth-shell{z-index:2}
.auth-brand{background:radial-gradient(circle at 30% 28%,rgba(184,239,85,.08),transparent 28%),linear-gradient(155deg,#103c2d,#04150f)}
.brand-logo-identity{width:min(100%,520px);height:auto;display:block;border-radius:20px;box-shadow:0 0 0 1px rgba(215,173,69,.12),0 18px 55px rgba(0,0,0,.24);animation:brandBreath 4.5s ease-in-out infinite}
@keyframes brandBreath{0%,100%{filter:drop-shadow(0 0 0 rgba(184,239,85,0))}50%{filter:drop-shadow(0 0 20px rgba(184,239,85,.22))}}
.auth-leaves{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.auth-leaf{position:absolute;top:-40px;width:10px;height:17px;border-radius:100% 0 100% 0;background:linear-gradient(135deg,#b8ef55,#3d8a54);opacity:.7;box-shadow:0 0 10px rgba(184,239,85,.14);animation:leafFall linear infinite}
@keyframes leafFall{0%{transform:translate3d(0,-50px,0) rotate(0deg);opacity:0}10%{opacity:.72}50%{transform:translate3d(55px,55vh,0) rotate(180deg)}90%{opacity:.6}100%{transform:translate3d(-35px,110vh,0) rotate(390deg);opacity:0}}

.app-identity{display:flex;align-items:center;flex:0 0 auto;text-decoration:none;margin-right:8px}
.app-identity img{width:190px;height:58px;object-fit:contain;display:block;border-radius:10px;box-shadow:0 0 18px rgba(184,239,85,.08)}
.sidebar-brand .sidebar-mark{width:48px!important;height:48px!important;object-fit:cover;object-position:left center;border-radius:12px;box-shadow:0 0 16px rgba(184,239,85,.08)}
.topbar-left{gap:10px}.breadcrumb{padding-left:5px}
@media(max-width:850px){.app-identity img{width:154px;height:54px}.breadcrumb{display:none}.topbar-left{gap:8px}}
@media(max-width:520px){.app-identity img{width:138px;height:50px}.app-topbar{padding:0 10px}}
.kpi,.module-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.kpi:hover,.module-card:hover{transform:translateY(-2px);border-color:rgba(200,165,90,.32);box-shadow:0 12px 30px rgba(18,53,43,.10)}
.btn-primary{background:linear-gradient(135deg,#14533d,#0d3024)}
.btn-primary:hover{background:linear-gradient(135deg,#1a684b,#0d3024)}
