:root{--blue:#123fa6;--deep:#102e75;--ink:#17213d;--muted:#68718a;--cream:#fbf8f1;--line:#e5e8f0;--gold:#e8bd68;--shadow:0 24px 70px rgba(22,43,91,.14)}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#f7f8fc}button,input{font:inherit}a{color:var(--blue);text-decoration:none}.login-shell{display:grid;grid-template-columns:minmax(480px,1.08fr) minmax(430px,.92fr);min-height:100vh}.login-art{position:relative;overflow:hidden;margin:18px;border-radius:28px;box-shadow:var(--shadow)}.login-art>img{width:100%;height:100%;object-fit:cover}.login-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,43,101,.02) 38%,rgba(10,40,97,.72))}.art-copy{position:absolute;z-index:1;left:8%;bottom:8%;max-width:620px;color:white}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em}.art-copy h1{font-family:Georgia,serif;font-size:clamp(42px,4vw,68px);line-height:1.05;margin:14px 0}.art-copy p{font-size:18px;line-height:1.6;max-width:560px}.login-panel{display:flex;flex-direction:column;justify-content:center;padding:7%;background:#fff}.login-box{width:min(440px,100%);margin:auto}.login-logo{width:250px;height:86px;object-fit:contain;object-position:left center;margin-bottom:48px}.login-heading h2{font-size:32px;margin:0 0 9px}.login-heading p{color:var(--muted);margin:0 0 36px}.login-box label{display:block;font-weight:700;font-size:14px;margin-bottom:9px}.label-row{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.label-row label{margin:0}.label-row a{font-size:13px;font-weight:700}.field{display:flex;align-items:center;border:1px solid #d9deea;border-radius:13px;height:54px;padding:0 15px;gap:11px;background:white;transition:.2s}.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(18,63,166,.09)}.field>span{color:#8790a5}.field input{border:0;outline:0;flex:1;min-width:0}.eye{border:0;background:none;color:#768099;cursor:pointer}.form-error{color:#b62f38;font-size:13px;min-height:20px;margin:10px 0}.primary{width:100%;height:56px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--blue),#245acb);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;gap:14px;cursor:pointer;box-shadow:0 10px 22px rgba(18,63,166,.22)}.primary:disabled{opacity:.65}.help{text-align:center;color:var(--muted);font-size:13px;margin-top:26px}.login-panel footer{text-align:center;color:#9aa1b2;font-size:11px;margin-top:30px}
.app-page{min-height:100vh;background:#f5f7fb}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:#fff;border-right:1px solid var(--line);padding:25px 18px 20px;display:flex;flex-direction:column;z-index:10}.side-logo{width:190px;height:68px;object-fit:contain;margin:0 12px 30px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a,.logout{display:flex;align-items:center;gap:14px;min-height:46px;padding:0 15px;border-radius:11px;color:#59627a;font-size:14px;font-weight:650}.sidebar nav a i,.logout i{width:20px;text-align:center;font-style:normal;font-size:20px}.sidebar nav a.active{color:var(--blue);background:#edf3ff}.nav-divider{height:1px;background:var(--line);margin:14px 8px}.logout{margin-top:auto;border:0;background:transparent;cursor:pointer}.workspace{margin-left:258px;min-height:100vh}.topbar{height:104px;background:#fff;border-bottom:1px solid var(--line);padding:0 4.5%;display:flex;align-items:center;justify-content:space-between}.crumb{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.14em}.topbar h1{font-size:24px;margin:6px 0 0}.topbar h1 span{font-weight:500}.top-actions{display:flex;align-items:center;gap:11px}.top-actions button,.mobile-menu{border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:12px}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;font-weight:800}.user-meta{display:flex;flex-direction:column}.user-meta strong{font-size:13px}.user-meta small{font-size:11px;color:var(--muted);text-transform:capitalize}.mobile-menu{display:none}.welcome{margin:36px 4.5% 24px;border-radius:24px;min-height:390px;overflow:hidden;display:grid;grid-template-columns:1fr 1.15fr;background:white;box-shadow:0 10px 35px rgba(23,48,98,.08)}.welcome-copy{padding:58px 8%;display:flex;flex-direction:column;justify-content:center}.welcome-copy .eyebrow{color:var(--blue)}.welcome-copy h2{font-family:Georgia,serif;font-size:42px;color:var(--deep);margin:14px 0}.welcome-copy>p{font-size:16px;line-height:1.7;color:var(--muted);max-width:580px}.welcome>img{width:100%;height:100%;object-fit:cover}.welcome-note{display:flex;gap:14px;margin-top:22px;padding:15px;border-radius:14px;background:#f3f6fc;color:#4f5a73}.welcome-note>span{color:#d49e40}.welcome-note p{font-size:12px;line-height:1.5;margin:0}.coming{margin:0 4.5% 35px;border:1px dashed #ccd5e8;border-radius:20px;padding:28px 32px;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:space-between}.coming h3{margin:6px 0;font-size:17px}.coming p{margin:0;color:var(--muted);font-size:13px}.small-icon{color:var(--gold)}.soft-cards{display:flex;gap:10px}.soft-cards span{width:65px;height:44px;border-radius:9px;background:linear-gradient(135deg,#eef2fa,#fff)}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-art{position:absolute;inset:0;margin:0;border-radius:0}.login-art:after{background:rgba(12,35,81,.68)}.art-copy{display:none}.login-panel{position:relative;background:rgba(255,255,255,.94);margin:22px;border-radius:24px;align-self:center;min-height:calc(100vh - 44px)}.sidebar{transform:translateX(-100%);transition:.25s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.workspace{margin-left:0}.mobile-menu{display:block}.topbar{padding:0 20px}.user-meta{display:none}.welcome{grid-template-columns:1fr;margin:22px}.welcome-copy{padding:36px 28px}.welcome-copy h2{font-size:34px}.welcome>img{height:260px}.coming{margin:0 22px 22px}.soft-cards{display:none}}
/* Alinhamento visual com o dashboard aprovado */
body{font-family:Inter,"Segoe UI Variable","Segoe UI",Arial,sans-serif;letter-spacing:-.01em}.art-copy h1,.welcome-copy h2{font-family:Inter,"Segoe UI Variable","Segoe UI",Arial,sans-serif;letter-spacing:-.04em}.login-shell{background:#063d87}.login-art{margin:0;border-radius:0;box-shadow:none;border-right:8px solid #0d57b9}.login-art:after{background:linear-gradient(180deg,rgba(3,39,92,.05) 30%,rgba(3,42,96,.84))}.login-panel{border-radius:30px 0 0 30px;box-shadow:-20px 0 50px rgba(1,31,73,.14)}.login-heading h2{font-size:30px;letter-spacing:-.035em}.primary{background:#0954b6;border-radius:9px}.field{border-radius:9px}.sidebar{background:linear-gradient(180deg,#063f8d 0%,#064a9e 52%,#073978 100%);border:0;color:white}.side-logo{width:202px;height:78px;object-fit:cover;object-position:center;margin:0 8px 28px;border-radius:4px}.sidebar nav a,.logout{color:rgba(255,255,255,.83)}.sidebar nav a.active{color:#fff;background:#1263c5}.sidebar nav a:hover,.logout:hover{color:#fff;background:rgba(255,255,255,.08)}.nav-divider{background:rgba(255,255,255,.16)}.workspace{background:#f7f8fb}.topbar h1{font-size:28px;letter-spacing:-.035em}.welcome-copy h2{color:#10234c;font-size:38px}.welcome{border:1px solid #e8eaf0;box-shadow:0 8px 24px rgba(15,43,91,.06)}
@media(max-width:900px){.login-panel{border-radius:24px}.login-art{border-right:0}.side-logo{object-fit:cover}}/* Banner original do protótipo aprovado */
.side-logo{object-fit:contain;background:#06418f}.welcome{display:flex;flex-direction:column}.welcome>img{order:-1;width:100%;height:264px;object-fit:cover;object-position:center}.welcome-copy{padding:28px 4%;display:block}.welcome-copy h2{font-size:30px;margin:10px 0}.welcome-copy>p{margin:0;max-width:850px}.welcome-note{max-width:850px;margin-top:16px}/* Cor medida na imagem oficial da marca */
.sidebar{background:#02317c}.side-logo{background:transparent;object-fit:contain;padding:0}.sidebar nav a.active{background:#0b5bbc}
.app-alert{position:fixed;z-index:10000;top:22px;right:22px;width:min(430px,calc(100vw - 32px));display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 17px;border:1px solid #f1c4c8;border-left:5px solid #c93b48;border-radius:13px;background:#fff;color:#5c2028;box-shadow:0 18px 50px rgba(28,42,69,.22);animation:alert-in .2s ease-out}.app-alert[hidden]{display:none}.app-alert strong{display:block;margin-bottom:4px;color:#9d2632;font-size:14px}.app-alert p{margin:0;line-height:1.45;font-size:12px}.app-alert button{flex:0 0 auto;width:29px;height:29px;border:0;border-radius:50%;background:#fbecef;color:#9d2632;font-size:20px;line-height:1;cursor:pointer}.inline-field-error{display:block;margin-top:5px;color:#bd2f3c;font-size:10px;font-weight:650}.evolution-form label:has(.inline-field-error) input,.evolution-form label:has(.inline-field-error) select,.evolution-form label:has(.inline-field-error) textarea{border-color:#d5535e;background:#fffafb}@keyframes alert-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media(max-width:600px){.app-alert{top:12px;right:16px}}


/* Menu lateral em acordeão: grupos independentes, expansão vertical e rolagem própria. */
.sidebar{overflow:hidden}.sidebar nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.32) transparent}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:99px}.sidebar .nav-section{display:flex;flex-direction:column;gap:3px}.sidebar .nav-section-toggle{width:100%;min-height:46px;padding:0 13px;border:0;border-radius:11px;background:transparent;color:rgba(255,255,255,.86);display:flex;align-items:center;gap:14px;font:inherit;font-size:14px;font-weight:700;text-align:left;cursor:pointer}.sidebar .nav-section-toggle:hover,.sidebar .nav-section.expanded>.nav-section-toggle{color:#fff;background:rgba(255,255,255,.08)}.sidebar .nav-section-toggle i{width:20px;text-align:center;font-style:normal;font-size:20px}.sidebar .nav-section-toggle span{flex:1}.sidebar .nav-section-toggle b{font-size:17px;font-weight:500;transition:transform .2s ease}.sidebar .nav-section.expanded>.nav-section-toggle b{transform:rotate(180deg)}.sidebar .nav-section-items{display:flex;flex-direction:column;gap:3px;padding:2px 0 5px 18px}.sidebar .nav-section-items[hidden]{display:none}.sidebar .nav-section-items a{min-height:39px;padding-left:13px;font-size:13px;position:relative}.sidebar .nav-section-items a:before{content:"";position:absolute;left:2px;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.3)}.sidebar .nav-section-items a.active:before{background:#fff}.sidebar .nav-section-items a i{font-size:16px}.sidebar .logout{flex:none;margin-top:10px}

.sidebar nav>a[href="/app"]{order:-10}.sidebar .nav-section{order:0}

.confirmation-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}.confirmation-backdrop{position:absolute;inset:0;background:rgba(8,25,57,.58);backdrop-filter:blur(2px)}.confirmation-modal section{position:relative;width:min(520px,100%);background:#fff;border-radius:18px;box-shadow:0 28px 70px rgba(4,20,48,.32);overflow:hidden}.confirmation-modal header{padding:22px 25px 14px}.confirmation-modal header span{color:#1760ba;font-size:10px;font-weight:850;letter-spacing:.13em}.confirmation-modal h2{margin:6px 0 0;font-size:22px}.confirmation-modal p{margin:0;padding:4px 25px 22px;color:#46516a;font-size:15px;line-height:1.55}.confirmation-modal footer{display:flex;justify-content:flex-end;gap:9px;padding:16px 25px;background:#f7f9fc;border-top:1px solid #e4e8ef}.confirmation-modal button{min-width:88px;height:42px;border:1px solid #d8dfeb;border-radius:9px;background:#fff;color:#3e4a63;font-weight:750;cursor:pointer}.confirmation-modal .confirmation-yes{border-color:#0954b6;background:#0954b6;color:#fff}

.recovery-panel .login-heading{margin-bottom:28px}.recovery-panel .primary{margin-top:8px}.back-login{display:block;margin:20px auto 0;border:0;background:transparent;color:var(--blue);font-weight:750;cursor:pointer}.recovery-success{padding:18px;border:1px solid #b9dfcc;border-radius:12px;background:#effaf4;color:#275d40}.recovery-success strong{display:block;margin-bottom:7px}.recovery-success p{margin:0;font-size:13px;line-height:1.55}.login-box [hidden]{display:none!important}

/* Elementos semanticamente ocultos nunca devem ser reexibidos por classes de layout. */
[hidden]{display:none!important}

/* Convenção dos cadastros: novos registros nascem ativos; edição libera a alteração. */
.record-active-field input[type=checkbox]:disabled{opacity:.7;cursor:not-allowed}
.record-active-field input[type=checkbox]:disabled+span{color:#657189}
