/* Unidade 1D: somente os acessos, conforme referência 06. */
body:has(.g-access), body:has(#login-screen.flow-access:not([style*="display: none"])),
body:has(#screen-login.flow-access:not([style*="display: none"])) { background:#fff !important; zoom:1 !important; }
.g-access { min-height:100dvh; max-width:none !important; padding:32px !important; display:grid; align-items:center; background:#fff; }
.g-access > .g-topbar { display:none; }
.g-access #g-content { width:100%; }
.mobile-app-shell:has(> #screen-login.flow-access:not([style*="display: none"])) { display:flow-root !important; width:100%; max-width:none; min-height:100dvh; margin:0; background:#fff; }
.flow-access, #login-screen.flow-access, #screen-login.flow-access {
  position:relative !important; inset:auto !important; box-sizing:border-box; width:calc(100% - 64px); max-width:794px; min-height:518px; height:auto;
  margin:max(32px, calc((100dvh - 518px)/2)) auto; padding:0 !important;
  grid-template-columns:36.8% minmax(0,1fr); align-items:stretch; justify-content:stretch;
  border:1px solid #cbd5e1; border-radius:7px; overflow:hidden;
  background:#fff !important; color:#0b1930; box-shadow:none; font:14px/1.5 "Plus Jakarta Sans", "Segoe UI", sans-serif;
}
.flow-access:not([style*="display: none"]), #login-screen.flow-access:not([style*="display: none"]), #screen-login.flow-access:not([style*="display: none"]) { display:grid !important; }
.g-access .flow-access { width:100%; margin:0 auto; }
.flow-access *, .flow-access *::before, .flow-access *::after { box-sizing:border-box; }
.flow-access .flow-access-brand { display:grid; place-items:center; min-width:0; padding:32px; background:#fff1e5; }
.flow-access .flow-access-logo { display:block; width:164px; height:auto; margin:0; object-fit:contain; transform:translateY(-8px); }
.flow-access .flow-access-panel { display:flex; flex-direction:column; min-width:0; padding:50px 54px 12px; background:#fff; }
.flow-access .flow-access-context { display:flex; align-items:center; gap:14px; margin:0; color:#52647e; font-size:12px; line-height:18px; font-weight:600; background:transparent; }
.flow-access .flow-access-context::after { content:""; flex:1; height:1px; background:#d7dfe8; }
.flow-access .flow-access-title { margin:40px 0 24px; padding:0; background:transparent; color:#08172f !important; font:700 32px/42px "Plus Jakarta Sans", "Segoe UI", sans-serif; letter-spacing:-.035em; }
.flow-access .flow-access-form { display:grid; gap:18px; width:100%; margin:0; padding:0; background:transparent; border:0; box-shadow:none; }
.flow-access .flow-access-field { display:grid; gap:6px; margin:0; padding:0; background:transparent; }
.flow-access .flow-access-field label { margin:0; padding:0; background:transparent; color:#0b1930; font-size:14px; font-weight:600; line-height:18px; text-transform:none; letter-spacing:0; }
.flow-access .flow-access-password { position:relative; }
.flow-access .flow-access-input { display:block; width:100%; min-width:0; height:48px; margin:0; padding:12px 16px; border:1px solid #bac6d5; border-radius:6px; background:#fff !important; color:#0b1930 !important; font:400 16px/22px "Plus Jakarta Sans", "Segoe UI", sans-serif; letter-spacing:0; box-shadow:none; caret-color:#0b1930; }
.flow-access .flow-access-input::placeholder { color:#52647e !important; opacity:1; }
.flow-access .flow-access-password input { padding-right:52px; }
.flow-access .flow-access-eye { position:absolute; inset:2px 4px 2px auto; display:grid; place-items:center; width:44px; height:44px; margin:0; padding:12px; border:0; border-radius:4px; color:#52647e; background:transparent; cursor:pointer; }
.flow-access .flow-access-eye svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.flow-access .flow-access-eye .eye-slash { display:none; }
.flow-access .flow-access-eye[aria-pressed="true"] .eye-slash { display:block; }
.flow-access .flow-access-submit { width:100%; min-height:44px; height:44px; margin:2px 0 0; padding:8px 16px; border:0; border-radius:6px; background:#ff812b !important; color:#0b1930 !important; font:700 16px/24px "Plus Jakarta Sans", "Segoe UI", sans-serif; cursor:pointer; box-shadow:none !important; transform:none; }
.flow-access .flow-access-submit:hover:not(:disabled) { background:#f57522 !important; }
.flow-access .flow-access-submit:disabled { cursor:wait; opacity:.72; }
.flow-access .flow-access-remember { display:flex; align-items:center; gap:8px; min-height:44px; margin:0; font-size:14px; color:#52647e; cursor:pointer; }
.flow-access .flow-access-remember input { width:16px; height:16px; margin:0; accent-color:#0b1930; }
.flow-access .flow-access-form:has(.flow-access-remember) { row-gap:12px; }
.flow-access .flow-access-form:has(.flow-access-remember) .flow-access-field + .flow-access-field { margin-top:6px; }
.flow-access .flow-access-form:has(.flow-access-remember) .flow-access-submit { margin-top:8px; }
.flow-access .flow-access-form:has(.flow-access-remember) .flow-access-remember { margin-top:-12px; }
.flow-access .flow-access-footer { margin-top:auto; padding-top:12px; border-top:1px solid #d7dfe8; background:transparent; }
.flow-access .flow-access-footer a { display:inline-flex; align-items:center; gap:14px; min-height:44px; color:#b64608; font-size:14px; font-weight:500; text-decoration:none; text-underline-offset:4px; }
.flow-access .flow-access-footer a:hover { text-decoration:underline; }
.flow-access .flow-access-footer p { margin:0; color:#52647e; font-size:14px; }
.flow-access .flow-access-message, .flow-access #g-status { margin:0; padding:0; border:0; background:transparent; color:#52647e; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.flow-access .flow-access-message[role="alert"], .flow-access #g-status[data-tone="error"] { color:#a52f24; }
.flow-access .flow-access-message:empty, .flow-access #g-status:empty { display:none; }
.flow-access :is(button,input,a):focus-visible { outline:3px solid #0b1930 !important; outline-offset:3px; }
.flow-access ::selection { color:#0b1930; background:#ffdabf; }
@media(max-width:700px) {
  .g-access { padding:16px !important; align-items:start; }
  .flow-access, #login-screen.flow-access, #screen-login.flow-access { width:calc(100% - 32px); min-height:0; grid-template-columns:minmax(0,1fr); margin:16px auto; }
  .flow-access .flow-access-brand { padding:24px; }
  .flow-access .flow-access-logo { width:104px; }
  .flow-access .flow-access-panel { padding:28px 24px 16px; }
  .flow-access .flow-access-title { font-size:27px; line-height:36px; margin:24px 0; }
  .flow-access .flow-access-footer { margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .flow-access *, .flow-access *::before, .flow-access *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* IDs legados têm prioridade no Gestor Mobile; manter a composição06. */
#screen-login.flow-access .flow-access-title { margin:40px 0 24px !important; font-size:32px !important; line-height:42px !important; }
.g-access .flow-access .flow-access-input { font-size:16px; line-height:22px; }
@media(max-width:700px) {
  #screen-login.flow-access { height:auto !important; min-height:0 !important; }
  #screen-login.flow-access .flow-access-title { margin:24px 0 !important; font-size:27px !important; line-height:36px !important; }
  .flow-access .flow-access-logo { transform:none; }
}
