:root{
  --access-primary:#ff7a00;
  --access-primary-dark:#d85f00;
  --access-bg:#f6f8fb;
  --access-card:#ffffff;
  --access-text:#162033;
  --access-muted:#6b7280;
  --access-border:rgba(15,23,42,.12);
}
body.access-locked{
  min-height:100vh;
  overflow:hidden;
  background:linear-gradient(135deg,#fff7ed 0%,#f8fafc 48%,#eef6ff 100%);
}
body.access-locked #appRoot{
  display:none!important;
}
body.access-unlocked #appRoot{
  display:block;
}
.access-lock-screen{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    radial-gradient(circle at 18% 18%,rgba(255,122,0,.18),transparent 34%),
    radial-gradient(circle at 82% 12%,rgba(13,110,253,.13),transparent 36%),
    linear-gradient(135deg,#fff7ed 0%,#f8fafc 48%,#eef6ff 100%);
  color:var(--access-text);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.access-lock-card{
  width:min(100%,470px);
  border:1px solid var(--access-border);
  border-radius:28px;
  background:rgba(255,255,255,.93);
  box-shadow:0 24px 70px rgba(15,23,42,.18);
  overflow:hidden;
  backdrop-filter:blur(18px);
}
.access-lock-head{
  padding:28px 28px 18px;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.access-lock-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:20px;
}
.access-lock-icon{
  width:50px;
  height:50px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:linear-gradient(135deg,var(--access-primary),#ffb15f);
  box-shadow:0 10px 26px rgba(255,122,0,.3);
  font-size:24px;
  font-weight:800;
}
.access-lock-kicker{
  margin:0;
  color:var(--access-muted);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.access-lock-title{
  margin:0;
  font-size:26px;
  line-height:1.15;
  font-weight:800;
}
.access-lock-subtitle{
  margin:0;
  color:var(--access-muted);
  font-size:15px;
  line-height:1.55;
}
.access-lock-body{
  padding:24px 28px 28px;
}
.access-lock-label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  font-size:14px;
}
.access-lock-input-wrap{
  position:relative;
}
.access-lock-input{
  width:100%;
  height:50px;
  border:1px solid rgba(15,23,42,.16);
  border-radius:16px;
  padding:0 52px 0 16px;
  outline:none;
  font-size:16px;
  background:#fff;
  color:var(--access-text);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.access-lock-input:focus{
  border-color:var(--access-primary);
  box-shadow:0 0 0 4px rgba(255,122,0,.15);
}
.access-lock-eye{
  position:absolute;
  top:50%;
  right:10px;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border:0;
  border-radius:12px;
  background:#f3f4f6;
  cursor:pointer;
  font-size:16px;
}
.access-lock-options{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:14px 0 18px;
  color:var(--access-muted);
  font-size:13px;
  line-height:1.35;
}
.access-lock-options input{
  margin-top:2px;
}
.access-lock-button{
  width:100%;
  min-height:50px;
  border:0;
  border-radius:16px;
  background:linear-gradient(135deg,var(--access-primary),var(--access-primary-dark));
  color:#fff;
  font-weight:800;
  font-size:16px;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(255,122,0,.26);
}
.access-lock-button:disabled{
  opacity:.72;
  cursor:not-allowed;
}
.access-lock-error{
  display:none;
  margin:14px 0 0;
  border:1px solid rgba(220,38,38,.25);
  background:#fff1f2;
  color:#991b1b;
  border-radius:14px;
  padding:11px 13px;
  font-size:14px;
}
.access-lock-error.show{
  display:block;
}
.access-lock-note{
  margin:18px 0 0;
  padding:13px 14px;
  border:1px solid rgba(15,23,42,.09);
  border-radius:16px;
  background:#f8fafc;
  color:#475569;
  font-size:13px;
  line-height:1.45;
}
.access-logout-btn{
  border:1px solid rgba(220,38,38,.22);
  background:#fff;
  color:#b91c1c;
  border-radius:999px;
  padding:.5rem .85rem;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}
.access-logout-btn:hover{
  background:#fff1f2;
  color:#991b1b;
}
@media (max-width:520px){
  .access-lock-screen{padding:14px;align-items:stretch;}
  .access-lock-card{margin:auto;border-radius:22px;}
  .access-lock-head,.access-lock-body{padding-left:20px;padding-right:20px;}
  .access-lock-title{font-size:23px;}
}

.access-lock-user-input{
  margin-bottom:8px;
}
.access-lock-helper{
  margin:-2px 0 14px;
  color:var(--access-muted);
  font-size:12.5px;
  line-height:1.35;
}

.access-identity-reason{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:16px;
  border:1px solid rgba(13,110,253,.18);
  background:linear-gradient(135deg,#eff6ff,#ffffff);
  color:#334155;
}
.access-identity-info-icon{
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#0d6efd;
  color:#fff;
  font-weight:900;
  font-family:Georgia,serif;
}
.access-identity-reason strong{
  display:block;
  color:#1d4ed8;
  font-size:13px;
  margin-bottom:2px;
}
.access-identity-reason p{
  margin:0;
  color:#475569;
  line-height:1.4;
  font-size:12.5px;
}

/* V61.0.11 — modal de acesso mais limpo e tooltip informativo */
.access-lock-info-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 14px;
  padding:11px 13px;
  border-radius:16px;
  border:1px solid rgba(13,110,253,.14);
  background:linear-gradient(135deg,#f8fafc,#ffffff);
  color:#475569;
  font-size:13px;
  line-height:1.35;
}
.access-info-tooltip{
  position:relative;
  width:26px;
  height:26px;
  flex:0 0 26px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#0d6efd;
  color:#fff;
  font-weight:900;
  font-family:Georgia,serif;
  cursor:help;
  outline:none;
}
.access-info-tooltip-bubble{
  position:absolute;
  right:0;
  bottom:calc(100% + 10px);
  width:min(300px, calc(100vw - 72px));
  padding:12px 13px;
  border-radius:14px;
  background:#0f172a;
  color:#fff;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:12.5px;
  font-weight:600;
  line-height:1.45;
  box-shadow:0 18px 36px rgba(15,23,42,.24);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:10;
}
.access-info-tooltip-bubble::after{
  content:'';
  position:absolute;
  right:9px;
  top:100%;
  border:7px solid transparent;
  border-top-color:#0f172a;
}
.access-info-tooltip:hover .access-info-tooltip-bubble,
.access-info-tooltip:focus .access-info-tooltip-bubble{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
