/* Login e escolha de unidade */
.login { min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 16px; overflow: auto; }
.login-card { width: min(400px, 100%); padding: 24px; gap: 14px; }
.login-marca { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.login-marca .rail-logo { display: inline-flex; align-items: center; justify-content: center; margin: 0; cursor: default; }
.login-demo { line-height: 1.7; }
/* O login não passa pela auditoria de telas: o olho de mostrar a senha precisa da área de toque de 40px. */
.login-card .btn-icon { width: 40px; height: 40px; }
.link { border: 0; background: none; color: var(--accent); cursor: pointer; padding: 0; text-decoration: underline; font-size: inherit; }
.boot { height: 100dvh; }
/* Esqueleto imediato do index.html (rodada 2, item 25): aparece na primeira pintura, antes do JS. */
.boot-esq { display: none; height: 100%; }
:root[data-boot="login"] .boot-esq-login { display: grid; place-items: center; }
:root[data-boot="app"] .boot-esq-app { display: grid; grid-template-columns: 64px minmax(260px, 340px) 1fr; gap: var(--gap, 12px); padding: var(--gap, 12px); box-sizing: border-box; }
.boot-card { width: min(380px, calc(100vw - 32px)); display: grid; gap: 14px; padding: 28px; border-radius: var(--radius, 14px); background: var(--surface); box-shadow: var(--brilho), var(--elev-2); }
.boot-rail, .boot-lista, .boot-painel { border-radius: var(--radius, 12px); background: var(--surface); box-shadow: var(--brilho), var(--elev-1); }
.boot-lista { display: grid; align-content: start; gap: 10px; padding: 14px; }
.boot-painel { padding: 14px; }
.boot-bloco { display: block; border-radius: var(--radius-sm, 8px); background: var(--tonal, var(--line)); animation: boot-pulso 1.2s ease-in-out infinite; }
.boot-marca { width: 44px; height: 44px; border-radius: 12px; }
.boot-linha { width: 40%; height: 12px; }
.boot-campo { height: 38px; }
.boot-botao { height: 40px; background: var(--accent-soft); }
.boot-item { height: 52px; }
.boot-topo { height: 44px; width: 60%; }
@keyframes boot-pulso { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .boot-bloco { animation: none; } }
@media (max-width: 767px) { :root[data-boot="app"] .boot-esq-app { grid-template-columns: 1fr; } .boot-rail, .boot-painel { display: none; } }
/* Duas portas de entrada: filial (HubMed) e franqueadora (e-mail). */
.login-modos { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: var(--radius-sm); background: var(--tonal); }
.login-modo { border: 0; border-radius: var(--radius-xs); padding: 8px 6px; background: transparent; color: var(--ink-soft); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.login-modo[aria-selected="true"] { background: var(--surface); color: var(--accent); box-shadow: var(--brilho), var(--elev-1); }
.login-modo:focus-visible { outline: none; box-shadow: var(--anel-foco); }
