:root{
  --green:#7ECD0C;
  --gray:#655E66;
  --white:#FFFFFF;
  --danger:#9D2D2D;
  --page-bg:rgba(101,94,102,.035);
  --gray-04:rgba(101,94,102,.04);
  --gray-07:rgba(101,94,102,.07);
  --gray-10:rgba(101,94,102,.10);
  --gray-14:rgba(101,94,102,.14);
  --gray-20:rgba(101,94,102,.20);
  --gray-35:rgba(101,94,102,.35);
  --gray-70:rgba(101,94,102,.70);
  --green-08:rgba(126,205,12,.08);
  --green-12:rgba(126,205,12,.12);
  --green-20:rgba(126,205,12,.20);
  --green-35:rgba(126,205,12,.35);
  --green-55:rgba(126,205,12,.55);
  --shadow:0 16px 42px rgba(101,94,102,.10);
  --shadow-hover:0 22px 50px rgba(101,94,102,.16);
  --ease:cubic-bezier(.2,.75,.25,1);
  --motion-fast:140ms;
  --motion-normal:220ms;
  --motion-page:360ms;
  --modal-enter:240ms;
  --modal-exit:180ms;
}

*{box-sizing:border-box}
html,body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--gray);background:var(--page-bg)}
body{min-width:0}
body.modal-open{overflow:hidden}
a{color:inherit}
button,input,select{font:inherit}
button,a,input,select{transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease),background-color var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease),opacity var(--motion-fast) var(--ease),filter var(--motion-fast) var(--ease)}
button:active,.button:active{transform:scale(.985)}

/* Cabeçalho */
.topbar{
  min-height:96px;
  background:var(--white);
  border-bottom:1px solid var(--gray-14);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:"brand center actions";
  align-items:center;
  gap:20px;
  padding:5px max(22px,4vw);
  position:sticky;
  top:0;
  z-index:30;
  animation:topbarEnter var(--motion-page) var(--ease) both;
}
.header-logo-link{grid-area:brand;justify-self:start;display:inline-flex;align-items:center;text-decoration:none;min-width:0}
.header-logo{display:block;height:78px;width:auto;max-width:160px;object-fit:contain}
.header-center{grid-area:center;text-align:center;line-height:1.2;justify-self:center;min-width:0}
.header-center strong{display:block;font-size:18px;font-weight:850;letter-spacing:-.01em;color:var(--gray);white-space:nowrap}
.header-center small{display:block;margin-top:4px;font-size:12px;color:var(--gray-70);white-space:nowrap}
.header-actions{grid-area:actions;justify-self:end;display:flex;align-items:center;gap:9px}
.header-menu{position:relative}
.icon-button{width:42px;height:42px;padding:0;border:1px solid var(--gray-14);border-radius:13px;background:var(--white);color:var(--gray);display:grid;place-items:center;cursor:pointer;box-shadow:0 5px 14px var(--gray-04)}
.icon-button svg{width:20px;height:20px;fill:currentColor}
.icon-button:hover,.icon-button[aria-expanded="true"]{border-color:var(--green-55);background:var(--green-08);transform:translateY(-1px)}
.profile-button{border-color:var(--green-35);background:var(--green-08)}
.dropdown-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:60;width:240px;padding:8px;background:var(--white);border:1px solid var(--gray-14);border-radius:16px;box-shadow:0 18px 48px rgba(101,94,102,.18);opacity:0;transform:translateY(-7px) scale(.985);transform-origin:top right;pointer-events:none}
.dropdown-menu.profile-menu{width:310px}
.dropdown-menu.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;transition:opacity 180ms var(--ease),transform 180ms var(--ease)}
.dropdown-menu.is-closing{opacity:0;transform:translateY(-5px) scale(.99);pointer-events:none;transition:opacity 130ms var(--ease),transform 130ms var(--ease)}
.dropdown-title{padding:8px 10px 7px;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--gray-70)}
.dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:10px;border:0;background:transparent;text-decoration:none;color:var(--gray);font-weight:750;font-size:14px;text-align:left;cursor:pointer}
.dropdown-item svg{width:18px;height:18px;fill:currentColor;flex:0 0 auto}
.dropdown-item:hover{background:var(--green-08);transform:none}
.dropdown-form{margin:0}
.dropdown-logout{color:var(--gray);background:transparent}
.dropdown-logout:hover{background:var(--gray-07);filter:none}
.dropdown-separator{height:1px;background:var(--gray-10);margin:6px 4px}
.profile-summary{display:flex;gap:12px;align-items:flex-start;padding:10px}
.profile-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:var(--green);color:var(--gray);font-weight:900}
.profile-summary>div{min-width:0}
.profile-summary strong{display:block;font-size:14px;color:var(--gray);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-summary small{display:block;margin-top:3px;color:var(--gray-70);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-role{display:inline-flex;margin-top:7px;padding:4px 7px;border-radius:999px;background:var(--green-08);border:1px solid var(--green-20);font-size:10px;font-weight:800;color:var(--gray)}

/* Conteúdo */
.container{width:min(1180px,100%);margin:0 auto;padding:54px max(22px,4vw) 70px}
.hero>div{min-width:0}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;animation:pageEnter var(--motion-page) var(--ease) both}
.hero.compact{margin-bottom:28px}
.hero h1{font-size:38px;line-height:1.08;margin:8px 0 8px;letter-spacing:-.025em;color:var(--gray)}
.hero p{margin:0;color:var(--gray-70);font-size:16px;overflow-wrap:anywhere}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.15em;color:var(--gray);font-weight:900}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--green)}

/* Cards dos módulos */
.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.module-card{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:332px;background:var(--white);border:1px solid var(--gray-14);border-radius:24px;padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;color:var(--gray);animation:cardEnter 420ms var(--ease) backwards;transition:transform var(--motion-normal) var(--ease),box-shadow var(--motion-normal) var(--ease),border-color var(--motion-normal) var(--ease),background-color var(--motion-normal) var(--ease)}
.module-card:nth-child(2){animation-delay:55ms}.module-card:nth-child(3){animation-delay:110ms}.module-card:nth-child(4){animation-delay:165ms}.module-card:nth-child(5){animation-delay:220ms}.module-card:nth-child(6){animation-delay:275ms}
.module-card::before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;height:4px;background:var(--green);opacity:.9}
.module-card:not(.not-implemented):not(.denied):hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:var(--green-55)}
.module-card.is-launching{transform:translateY(-2px) scale(.995)}
.module-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.module-icon{width:94px;height:94px;border-radius:24px;background:var(--white);border:1px solid var(--gray-10);box-shadow:0 7px 18px var(--gray-07);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;transition:transform var(--motion-normal) var(--ease),box-shadow var(--motion-normal) var(--ease),border-color var(--motion-normal) var(--ease)}
.module-icon img{display:block;max-width:none;transition:transform var(--motion-normal) var(--ease)}
.module-icon--bi img,.module-icon--tax img{width:100%;height:100%;object-fit:contain}
.module-icon--automation{--automation-shift:-22px}
.module-icon--automation img{width:107%;height:auto;object-fit:initial;transform:translateY(var(--automation-shift))}
.module-icon--placeholder{color:var(--gray-70);background:var(--gray-04)}
.placeholder-svg{width:56px;height:56px;fill:currentColor}
.module-card:not(.not-implemented):not(.denied):hover .module-icon{border-color:var(--green-35);box-shadow:0 10px 22px var(--gray-10)}
.module-card:not(.not-implemented):not(.denied):hover .module-icon--automation img{transform:translateY(calc(var(--automation-shift) - 1px)) rotate(-1deg) scale(1.025)}
.module-card:not(.not-implemented):not(.denied):hover .module-icon--bi img{transform:translate(2px,-1px) scale(1.025)}
.module-card:not(.not-implemented):not(.denied):hover .module-icon--tax img{transform:translateY(-2px) scale(1.025)}
.module-body{display:flex;flex-direction:column;flex:1;min-width:0}
.module-body h2{font-size:23px;line-height:1.17;margin:0;letter-spacing:-.018em;font-weight:850;color:var(--gray)}
.module-body p{color:var(--gray-70);line-height:1.55;margin:11px 0 20px;font-size:15px}
.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;border:1px solid var(--green-20);border-radius:99px;padding:6px 10px;color:var(--gray);background:var(--green-08);white-space:nowrap;font-weight:850}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.status.off{color:var(--gray-70);background:var(--white);border-color:var(--gray-20)}
.status.off::before{background:var(--gray-35)}
.module-link{margin-top:auto;background:var(--gray);color:var(--white);border:1px solid var(--gray);text-decoration:none;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:100%;padding:11px 15px;border-radius:999px;box-shadow:0 7px 18px var(--gray-10)}
.module-link:hover{filter:brightness(.90);transform:translateY(-1px);box-shadow:0 9px 20px var(--gray-14)}
.module-link:active{transform:scale(.985)}
.module-link .arrow{display:inline-block;transition:transform var(--motion-fast) var(--ease)}
.module-card:not(.not-implemented):not(.denied):hover .module-link .arrow{transform:translateX(4px)}
.module-card.not-implemented{background:rgba(101,94,102,.075);border-color:var(--gray-14);box-shadow:0 10px 26px var(--gray-07)}
.module-card.not-implemented::before{background:var(--gray);opacity:.28}
.module-card.not-implemented .module-icon{background:rgba(255,255,255,.70);filter:grayscale(1);box-shadow:none}
.module-card.not-implemented .module-body h2{color:var(--gray-70)}
.module-card.not-implemented .module-body p{color:var(--gray-70)}
.module-card.denied{background:var(--white);border-style:dashed;box-shadow:0 10px 26px var(--gray-07)}
.module-card.denied .module-icon{filter:grayscale(.55);opacity:.72}
.module-link.disabled{background:transparent;color:var(--gray-70);border:1px solid var(--gray-20);box-shadow:none;font-weight:800;cursor:not-allowed;filter:none}

/* Login */
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,var(--green-12) 0,transparent 42%),var(--white)}
.login-card{width:min(440px,100%);background:var(--white);border:1px solid var(--gray-14);border-radius:24px;padding:38px;box-shadow:0 22px 65px rgba(101,94,102,.15);animation:loginCardEnter 460ms var(--ease) both}
.login-brand{text-align:center;margin-bottom:28px;animation:loginBrandEnter 520ms var(--ease) 70ms both}
.login-logo-shell{display:block;overflow:visible;margin:0 auto 12px}
.login-logo{display:block;width:250px;height:auto;max-width:none;margin:-55px auto -60px}
.login-brand h1{margin:0;font-size:27px;color:var(--gray)}
.login-brand p{color:var(--gray-70);margin:7px 0 0}

/* Formulários e botões */
.form{display:grid;gap:16px}
.form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:var(--gray)}
.form input,.form select{width:100%;padding:13px 14px;border:1px solid var(--gray-20);border-radius:10px;background:var(--white);outline:none;color:var(--gray)}
.form input:hover,.form select:hover{border-color:var(--gray-35)}
.form input:focus,.form select:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-20);transform:translateY(-1px)}
.form input:disabled,.form select:disabled{background:var(--gray-07);color:var(--gray-70)}
button,.button{border:0;background:var(--gray);color:var(--white);padding:13px 18px;border-radius:10px;font-weight:800;cursor:pointer;text-decoration:none;text-align:center;display:inline-block}
.form>button{width:100%}
button:hover,.button:hover{filter:brightness(.90);transform:translateY(-1px)}
button[disabled]{cursor:wait;opacity:.78;transform:none!important}
.button.secondary{background:var(--white);color:var(--gray);border:1px solid var(--gray-20)}
.button.secondary:hover{background:var(--gray-04);filter:none}
.button.danger{background:var(--danger);color:var(--white)}
.button.ghost-danger{margin-left:auto;background:var(--white);color:var(--danger);border:1px solid rgba(157,45,45,.28)}
.button.ghost-danger:hover{background:rgba(157,45,45,.05);filter:none}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.label-note{font-weight:400;color:var(--gray-70)}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px;animation:flashIn var(--motion-normal) var(--ease) both}
.flash.error{background:rgba(157,45,45,.07);color:var(--danger);border:1px solid rgba(157,45,45,.18)}
.flash.success{background:var(--green-08);color:var(--gray);border:1px solid var(--green-20)}

/* Usuários */
.admin-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:22px;align-items:start}
.panel,.message-card{background:var(--white);border:1px solid var(--gray-14);border-radius:18px;padding:24px;box-shadow:var(--shadow);min-width:0;animation:pageEnter var(--motion-page) var(--ease) both}
.admin-grid .panel:nth-child(2){animation-delay:65ms}
.panel h2{margin-top:0;color:var(--gray)}
.panel-subtitle{color:var(--gray-70);font-size:13px;margin:-8px 0 18px}
.form fieldset{border:1px solid var(--gray-14);border-radius:10px;padding:13px;min-width:0}
.form legend{font-weight:800;color:var(--gray);padding:0 4px}
.form .check{display:flex;grid-template-columns:none;align-items:center;gap:8px;font-weight:500;margin:8px 0}
.form .check input{width:auto;flex:0 0 auto}
.form .check.is-disabled{color:var(--gray-70)}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
table{width:100%;border-collapse:collapse;min-width:680px}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--gray-10);font-size:13px;vertical-align:middle}
tbody tr{transition:background-color var(--motion-fast) var(--ease)}
tbody tr:hover{background:var(--green-08)}
th{color:var(--gray-70);font-weight:700}
td.email{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-flex;align-items:center;border:1px solid var(--gray-14);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.badge.active{background:var(--green-08);color:var(--gray);border-color:var(--green-20)}
.badge.inactive{background:var(--gray-07);color:var(--gray-70)}
.table-action{color:var(--gray);font-weight:800;text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:3px}
.table-action:hover{text-decoration-thickness:2px}
.user-edit-panel{max-width:760px}
.user-edit-actions{align-items:stretch}
.message-card{max-width:760px;margin:60px auto}
.message-card p{color:var(--gray-70);margin-bottom:28px}
.password-note{font-size:13px;color:var(--gray-70);margin:0}
.danger-note{font-size:13px;color:var(--danger)}

/* Modais: padrão global do Portal */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;overflow:auto}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(101,94,102,.44);opacity:0;transition:opacity var(--modal-enter) var(--ease)}
.modal-dialog{position:relative;z-index:1;width:min(500px,100%);background:var(--white);border:1px solid var(--gray-14);border-radius:20px;padding:26px;box-shadow:0 26px 70px rgba(101,94,102,.26);opacity:0;transform:translateY(12px) scale(.985);transition:opacity var(--modal-enter) var(--ease),transform var(--modal-enter) var(--ease)}
.modal.is-open .modal-backdrop{opacity:1}
.modal.is-open .modal-dialog{opacity:1;transform:translateY(0) scale(1)}
.modal.is-closing{pointer-events:none}
.modal.is-closing .modal-backdrop{opacity:0;transition-duration:var(--modal-exit)}
.modal.is-closing .modal-dialog{opacity:0;transform:translateY(0) scale(.985);transition-duration:var(--modal-exit)}
.modal-dialog h2{margin:10px 34px 8px 0;color:var(--gray);font-size:24px}
.modal-dialog p{margin:0;color:var(--gray-70);line-height:1.55}
.modal-close{position:absolute;right:15px;top:15px;width:34px;height:34px;padding:0;border-radius:10px;background:var(--gray-07);color:var(--gray);font-size:24px;line-height:1}
.modal-close:hover{background:var(--gray-10);filter:none;transform:none}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:24px;flex-wrap:wrap}
.modal-actions form{margin:0}
.modal-actions .button{min-width:120px}

@keyframes topbarEnter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes pageEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cardEnter{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
@keyframes loginCardEnter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes loginBrandEnter{from{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}
@keyframes flashIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

@media(max-width:1040px){
  .modules{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-grid{grid-template-columns:1fr}
  .panel{min-width:0}
}

@media(max-width:720px){
  .topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "center center";gap:3px 12px;min-height:112px;padding:7px 16px 10px}
  .header-logo{height:60px;max-width:120px}
  .header-center{padding-bottom:2px}
  .header-center strong{font-size:15px}
  .header-center small{font-size:11px;margin-top:2px}
  .dropdown-menu{position:fixed;top:76px;right:14px;left:auto}
  .dropdown-menu.profile-menu{width:min(310px,calc(100vw - 28px))}
  .modules{grid-template-columns:1fr}
  .module-card{min-height:286px}
  .module-icon{width:86px;height:86px}
  .module-icon--automation{--automation-shift:-20px}
  .container{padding:36px 16px 64px}
  .hero h1,.message-card h1{font-size:31px}
  .panel{padding:20px}
  .login-card{padding:30px 22px}
  .login-logo{width:225px;margin:-49px auto -54px}
  .message-card{margin:32px auto}
  .actions .button{flex:1 1 auto}
  .button.ghost-danger{margin-left:0;flex-basis:100%}
  .table-wrap{overflow:visible}
  .table-wrap table{min-width:0}
  .table-wrap thead{display:none}
  .table-wrap tbody{display:grid;gap:12px}
  .table-wrap tbody tr{display:block;border:1px solid var(--gray-14);border-radius:14px;padding:8px 13px;background:var(--white)}
  .table-wrap tbody tr:hover{background:var(--white)}
  .table-wrap td{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--gray-10);text-align:right;overflow-wrap:anywhere}
  .table-wrap td:last-child{border-bottom:0}
  .table-wrap td::before{content:attr(data-label);flex:0 0 auto;color:var(--gray-70);font-weight:750;text-align:left}
  .table-wrap td.email{max-width:none;white-space:normal;overflow:visible;text-overflow:clip}
}

@media(max-width:430px){
  .topbar{padding-left:12px;padding-right:12px}
  .header-logo{height:56px;max-width:112px}
  .header-actions{gap:7px}
  .icon-button{width:39px;height:39px;border-radius:12px}
  .dropdown-menu{right:10px;width:min(240px,calc(100vw - 20px))}
  .dropdown-menu.profile-menu{width:min(310px,calc(100vw - 20px))}
  .hero{margin-bottom:24px}
  .hero h1,.message-card h1{font-size:28px}
  .module-card{padding:20px;border-radius:21px}
  .module-top{margin-bottom:18px}
  .module-body h2{font-size:21px}
  .status{padding:5px 8px}
  .login-page{padding:16px}
  .login-card{padding:26px 18px}
  .login-logo{width:210px;margin:-46px auto -50px}
  .modal{padding:14px}
  .modal-dialog{padding:22px 18px;border-radius:18px}
  .modal-actions{align-items:stretch;flex-direction:column-reverse}
  .modal-actions form,.modal-actions .button{width:100%}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition-duration:0s!important}
  .module-card:not(.not-implemented):not(.denied):hover{transform:none}
  .module-card:not(.not-implemented):not(.denied):hover .module-icon img,
  .module-card:not(.not-implemented):not(.denied):hover .module-link .arrow,
  .form input:focus,.form select:focus,button:hover,.button:hover,.module-link:hover{transform:none!important}
  .modal-dialog{transform:none!important}
}

/* Hardening visual e acessibilidade v0.4.4 */
:where(a,button,input,select,textarea):focus-visible{
  outline:2px solid var(--gray);
  outline-offset:2px;
}
.form input:focus-visible,.form select:focus-visible{
  border-color:var(--gray);
  box-shadow:0 0 0 3px var(--green-35);
}
.profile-avatar{
  background:var(--gray);
  color:var(--white);
  border:2px solid var(--green);
}
.panel-narrow{max-width:560px}
.admin-modules-note{
  margin:0;
  padding:11px 12px;
  border:1px solid var(--green-20);
  border-radius:10px;
  background:var(--green-08);
  color:var(--gray);
  font-size:13px;
  line-height:1.45;
}
.password-control{position:relative;display:block;width:100%}
.password-control input{padding-right:82px}
.password-toggle{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  width:auto;
  min-width:62px;
  padding:7px 8px;
  border-radius:8px;
  background:var(--white);
  border:1px solid var(--gray-14);
  color:var(--gray);
  font-size:11px;
  font-weight:800;
  box-shadow:none;
}
.password-toggle:hover{background:var(--gray-04);filter:none;transform:translateY(-50%)}
.password-toggle:active{transform:translateY(-50%) scale(.985)}
.caps-lock-warning{display:block;margin-top:5px;color:var(--danger);font-size:11px;font-weight:700}
.request-reference{font-size:12px!important;margin-top:-16px!important}
.request-reference code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--gray-07);padding:3px 6px;border-radius:6px}

/* Tela intermediária SSO usa o mesmo Design System/CSP do Portal */
.sso-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--white);
  color:var(--gray);
}
.sso-card{
  width:min(420px,100%);
  padding:32px;
  text-align:center;
  background:var(--white);
  border:1px solid var(--gray-14);
  border-radius:18px;
  box-shadow:0 16px 45px rgba(101,94,102,.12);
  animation:loginCardEnter 360ms var(--ease) both;
}
.sso-loader{
  width:38px;
  height:38px;
  margin:0 auto 18px;
  border:4px solid var(--green-20);
  border-top-color:var(--green);
  border-radius:50%;
  animation:ssoSpin .8s linear infinite;
}
.sso-card h1{margin:0 0 10px;font-size:27px;color:var(--gray)}
.sso-card p{color:var(--gray-70);line-height:1.5;margin:0 0 22px}
.sso-card form{margin:0}
.sso-fallback{font-size:13px;margin-top:14px!important;margin-bottom:0!important}
@keyframes ssoSpin{to{transform:rotate(360deg)}}

@media(max-width:420px){
  .sso-page{padding:16px}
  .sso-card{padding:26px 20px}
  .sso-card h1{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
  .sso-loader{animation:none;border-top-color:var(--green)}
}

/* Acesso externo Cliente — v0.5.0 */
.client-login-page{background:linear-gradient(180deg,var(--white),var(--gray-04));}
.client-login-card{max-width:520px}
.client-login-card .eyebrow{display:block;margin:2px 0 10px;text-align:center}
.client-login-card .login-brand p{max-width:390px;margin-left:auto;margin-right:auto}
.client-login-note{margin:18px 0 0;color:var(--gray-70);font-size:12px;line-height:1.5;text-align:center}
.bi-sync-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:22px}
.bi-sync-copy h2{margin:4px 0 6px}
.bi-sync-copy p{margin:0;color:var(--gray-70);font-size:13px;line-height:1.5}
.bi-sync-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.bi-sync-actions form{margin:0}
.integration-warning{grid-column:1/-1;margin:0;padding:10px 12px;border-radius:10px;background:rgba(157,45,45,.06);border:1px solid rgba(157,45,45,.18);color:var(--danger);font-size:12px}
.integration-warning code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--white);padding:2px 5px;border-radius:5px}
.client-access-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--green-20);border-radius:14px;background:var(--green-08)}
.client-access-config[hidden]{display:none}
.client-access-config fieldset,.client-access-config .password-note{grid-column:1/-1}
.client-access-fixed{display:flex;flex-direction:column;gap:2px;padding:11px 12px;background:var(--white);border:1px solid var(--gray-10);border-radius:10px}
.client-access-fixed span{font-size:11px;color:var(--gray-70);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.client-access-fixed strong{color:var(--gray);font-size:14px}
.client-access-fixed small{color:var(--gray-70);font-size:11px}
.client-access-config .check{align-items:flex-start}
.client-access-config .check span{display:flex;flex-direction:column;gap:2px}
.company-legal-name{display:block;color:var(--gray-70);font-size:11px;font-weight:500;line-height:1.35}
.empty-client-companies{margin:6px 0;color:var(--danger);font-size:12px;line-height:1.45}
button:disabled,.button:disabled{cursor:not-allowed;opacity:.55;filter:none;transform:none!important}

@media(max-width:720px){
  .bi-sync-panel{grid-template-columns:1fr}
  .bi-sync-actions{justify-content:flex-start}
  .client-access-config{grid-template-columns:1fr}
  .client-access-config fieldset,.client-access-config .password-note{grid-column:auto}
}

/* v0.5.0 — saída segura na troca de senha do Cliente */
.client-password-logout{margin-top:12px;display:flex;justify-content:center}
