*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#eef2f6 url('../img/fundo.jpg') center/cover fixed;color:#263238}.top{background:#333;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px max(18px,8vw);box-shadow:0 3px 12px #0003}.top img{width:145px}.top a{color:#fff;text-decoration:none;margin-left:14px;font-weight:700}.wrap{max-width:1180px;margin:30px auto;padding:18px}.hero,.panel,.loginbox{background:#ffffffdf;border-radius:18px;padding:24px;box-shadow:0 12px 32px #0002}.hero{text-align:center}.client-logo{max-height:110px;max-width:240px}.cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-top:24px}.card{width:190px;min-height:230px;background:#ffffffeb;border-radius:16px;box-shadow:0 7px 18px #0002;padding:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-decoration:none;color:#222;text-align:center;transition:.2s}.card:hover{transform:translateY(-4px)}.card img{max-width:135px;max-height:145px;margin-bottom:12px}.loginbox{max-width:430px;margin:70px auto}.loginbox input,.form input,.form select{width:100%;padding:11px;margin:5px 0 14px;border:1px solid #ccd5df;border-radius:8px}.btn{display:inline-block;background:#1265a8;color:#fff!important;padding:10px 16px;border:0;border-radius:9px;text-decoration:none;font-weight:700;cursor:pointer}.btn.danger{background:#a61c2d}.msg{padding:10px;border-radius:8px;background:#fff3cd}.footer{text-align:center;padding:20px;color:#555}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:10px;border-bottom:1px solid #ddd;text-align:left}.tabs a{display:inline-block;padding:9px 12px;margin:0 5px 10px 0;background:#e7edf4;border-radius:8px;text-decoration:none;color:#234}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:700px){.grid2{grid-template-columns:1fr}.top{align-items:flex-start;gap:10px;flex-direction:column}.card{width:46%;min-width:145px}.wrap{margin-top:10px}}

.top .brand{display:inline-flex;align-items:center}.top .brand img{display:block}.restricted-wrap{max-width:1180px;margin:28px auto;padding:18px}.restricted-head{color:#fff;text-shadow:0 2px 10px #0007;margin:0 0 8px}.restricted-sub{color:#fff;text-shadow:0 2px 8px #0008;margin:0 0 18px}.userline{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portal-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-top:24px}.public-welcome{text-align:center;color:#fff;text-shadow:0 2px 10px #0008;margin-top:26px}.public-welcome h1{margin-bottom:8px}.license-box{position:fixed;right:24px;bottom:20px;background:#ffffffc9;border-radius:14px;padding:14px 18px;text-align:center;max-width:290px}.license-box img{max-height:70px;max-width:240px}.module-frame-wrap{max-width:1280px;margin:20px auto;padding:16px}.module-frame-wrap h1{color:#fff;text-shadow:0 2px 10px #0008}.xml-list{font-size:13px;color:#445}.muted{color:#667;font-size:13px}
@media(max-width:700px){.license-box{position:static;margin:18px auto}.restricted-wrap{margin-top:8px}.userline{font-size:14px}.top nav{display:flex;flex-wrap:wrap;gap:8px}.top a{margin-left:0}}

/* V2.2 - layout e identidade */
html,body{min-height:100%}body{min-height:100vh;display:flex;flex-direction:column}.top{flex:0 0 auto}.top img{width:135px}.wrap,.restricted-wrap,.module-frame-wrap{flex:1 0 auto}.footer{margin-top:auto;flex:0 0 auto;width:100%}.license-box{bottom:68px}.license-box a{display:inline-block}.license-box img{display:block;margin:6px auto 0}.loginbox img{height:auto}.card img[src*="logo_dusus_vermelho-azul"]{max-width:140px;max-height:90px}
@media(max-width:700px){.license-box{position:static;margin:18px auto}.footer{margin-top:auto}}


/* V2.2.1 - refinamentos visuais */
.card{min-height:190px;padding:16px}.card img{margin-bottom:0;max-width:145px;max-height:135px}.card strong{margin-top:10px}.card small{display:none}
.module-frame-wrap{width:calc(100% - 28px);max-width:1280px;margin:16px auto;padding:14px 0}.module-frame-wrap h1{margin:0 0 14px;padding:0 14px}
.footer-bar{position:fixed;left:0;bottom:0;z-index:900;background:rgba(224,224,224,.92);color:#555;text-align:center;padding:13px 18px;width:100%;border-top:1px solid rgba(180,180,180,.65);backdrop-filter:blur(2px)}
body{padding-bottom:52px}
.login-page{min-height:100vh}.login-main{flex:1 0 auto;width:100%;display:flex;align-items:flex-start;justify-content:center}.login-main .loginbox{width:min(430px,calc(100% - 28px));margin:54px auto 30px}.login-brand{text-align:center}.login-brand img{max-width:180px;height:auto}.login-submit{display:block;width:100%;margin-top:4px}
@media(max-width:700px){.module-frame-wrap{width:calc(100% - 18px);padding:8px 0}.login-main .loginbox{margin-top:28px}.card{min-height:165px}.card img{max-height:115px}}


/* V2.2.5 - pagina publica: rodape e interacao do menu */
.top nav a{
    display:inline-block;
    padding:9px 12px;
    border-radius:9px;
    transition:background .18s ease,transform .18s ease;
}
.top nav a:hover,
.top nav a:focus-visible{
    background:rgba(255,255,255,.14);
    transform:translateY(-1px);
    outline:none;
}
.footer.footer-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:900;
    width:100%;
    margin:0;
    padding:12px 18px;
    text-align:center;
    color:#fff;
    background:rgba(35,35,35,.72);
    border-top:1px solid rgba(255,255,255,.15);
    backdrop-filter:blur(3px);
}
@media(max-width:700px){
    .top nav a{padding:10px 12px;}
}

/* V2.2.7 - Area Restrita + navegacao responsiva consolidada */
.restricted-wrap{max-width:1180px;margin:28px auto;padding:18px;text-align:center}
.restricted-head{margin:0 0 8px;text-align:center}
.restricted-sub{margin:0 0 18px;text-align:center}
.restricted-wrap .cards{text-align:left}
.restricted-footer{position:fixed;left:0;right:0;bottom:0;z-index:900;width:100%;margin:0;padding:12px 18px;text-align:center;color:#fff;background:rgba(35,35,35,.72);border-top:1px solid rgba(255,255,255,.15);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.auth-menu-toggle,.public-menu-toggle{display:none;background:rgba(255,255,255,.12);border:0;color:#fff;font-size:25px;line-height:1;cursor:pointer;margin:0;border-radius:9px;width:44px;height:44px}
.top .userline a{border-radius:9px;padding:9px 12px;transition:background .18s ease,transform .18s ease}
.top .userline a:hover,.top .userline a:focus-visible{background:rgba(255,255,255,.14);transform:translateY(-1px);outline:none}
@media(max-width:700px){
  .top.auth-top,.top.public-top{flex-direction:row;align-items:center;padding:10px 14px;position:relative;gap:0}
  .top.auth-top .brand img,.top.public-top .brand img{width:135px}
  .auth-menu-toggle,.public-menu-toggle{display:block;margin-left:auto}
  .top.auth-top .userline,.top.public-top .public-menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:1000;padding:10px 12px;background:rgba(51,51,51,.98);border-top:1px solid rgba(255,255,255,.10);box-shadow:0 10px 18px rgba(0,0,0,.22)}
  .top.auth-top .userline.open,.top.public-top .public-menu.open{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .top.auth-top .userline span{padding:8px 10px;color:#fff;text-align:center}
  .top.auth-top .userline a,.top.public-top .public-menu a{display:block;width:100%;margin:0;padding:12px;text-align:center;background:rgba(255,255,255,.08);border-radius:10px}
  .top.auth-top .userline a:hover,.top.public-top .public-menu a:hover{background:rgba(255,255,255,.16);transform:none}
  .restricted-wrap{margin-top:18px;padding:12px 14px}
  .restricted-head{font-size:28px}
  .restricted-sub{font-size:16px;line-height:1.4}
  .restricted-wrap .cards{margin-top:28px}
  .restricted-footer,.footer.footer-bar{font-size:13px;padding:10px 12px}
}


/* V2.2.8 - SuperAdmin: alinhamento dos checkboxes */
.check-option{display:flex!important;align-items:center;gap:9px;min-height:34px;margin:5px 0 10px!important;cursor:pointer}
.check-option input[type="checkbox"]{width:18px!important;height:18px!important;margin:0!important;flex:0 0 18px;padding:0}
.check-option span,.check-option strong{margin:0;line-height:1.3}
.module-option{padding:10px 0;border-bottom:1px solid #ddd}
.module-option>.check-option{margin-bottom:8px!important}
