/* V402 account entry uses the public site's existing InnerVital design tokens. */
.patient-login-open { overflow: hidden; }
.patient-login-dialog { --pine:#153f35; --ivory:#fbfaf5; --ink:#213f35; --line:#d6dfd4; --radius:18px; --sage-2:#edf1e8; font-family:Inter,Arial,sans-serif; }
.patient-login-dialog form { display:grid; gap:16px; text-align:left; }
.patient-login-dialog label { display:grid; gap:6px; font-size:.9rem; font-weight:600; }
.patient-login-dialog input { width:100%; box-sizing:border-box; padding:12px; min-height:46px; border:1px solid #92a398; border-radius:8px; font:inherit; color:var(--ink); background:white; }
.patient-login-dialog input:focus-visible { outline:3px solid #806030; outline-offset:3px; }
.patient-login-dialog button { font:inherit; cursor:pointer; }
.patient-login-dialog .btn { align-items:center; justify-content:center; gap:10px; padding:12px; border:1px solid var(--pine); }
.patient-login-dialog .primary { background:var(--pine); color:white; }
.patient-login-dialog .secondary { background:transparent; color:var(--pine); }
.patient-login-dialog .patient-login-forgot { border:0; background:transparent; color:var(--pine); text-decoration:underline; }
.patient-login-dialog [role=alert] { border:1px solid #96552e; }
.patient-login-dialog [disabled] { opacity:.72; cursor:not-allowed; }
.patient-login-dialog {
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--ink);
  background: var(--ivory);
  box-shadow: 0 24px 100px rgb(12 44 37 / 25%);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.patient-login-dialog::backdrop { background: rgb(12 44 37 / 48%); backdrop-filter: blur(3px); }
.patient-login-content { position: relative; padding: 32px; text-align: center; }
.patient-login-dialog .patient-login-close {
  position: absolute; top: 12px; right: 12px; display: grid; place-items: center;
  width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent;
  color: var(--pine); font: 400 30px/1 Inter, sans-serif; cursor: pointer;
}
.patient-login-dialog .patient-login-close:hover { background: var(--sage-2); }
.patient-login-logo { width: 170px; height: auto; margin: 12px auto 30px; }
.patient-login-dialog .eyebrow { margin: 0 0 12px; color: #806030; }
.patient-login-dialog h2 { margin: 0 0 12px; font-size: clamp(1.8rem, 5vw, 2.2rem); }
.patient-login-dialog #patient-login-introduction { margin: 0 0 24px; color: #4d6159; font-size: .94rem; line-height: 1.55; }
.patient-login-dialog .btn { display: flex; width: 100%; min-height: 48px; border-radius: 12px; font-size: .95rem; }
.patient-login-google-icon { font: 800 18px/1 Manrope, sans-serif; }
.patient-login-dialog [aria-disabled="true"] { color: #586961; background: #edf0e9; border-color: #cdd6cd; box-shadow: none; cursor: default; }
.patient-login-availability, .patient-login-explanation { margin: 10px 0; color: #53655d; font-size: .79rem; line-height: 1.55; }
.patient-login-divider { display: flex; align-items: center; gap: 16px; margin: 18px 0; color: #53655d; font-size: .8rem; }
.patient-login-divider::before, .patient-login-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.patient-login-forgot { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: .85rem; font-weight: 600; }
.patient-login-new { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 18px; }
.patient-login-new > p:first-child { margin: 0 0 12px; font-size: .9rem; }
.patient-login-new > p:last-child { margin-bottom: 0; }
.patient-login-dialog .patient-login-new-button { background:#f0e5cf; border-color:#8a672e; color:#153f35; box-shadow:inset 0 0 0 1px rgb(255 255 255 / 55%); font-weight:800; }
.patient-login-dialog .patient-login-new-button:hover { background:#e4d2af; border-color:#6f511f; }
.patient-login-dialog .patient-login-new-button:focus-visible { outline:3px solid #806030; outline-offset:4px; }
.patient-login-status { padding: 12px; border-radius: 10px; background: var(--sage-2); color: var(--pine); font-size: .85rem; }
.patient-login-password { position:relative; display:block; }
.patient-login-password input { padding-right:68px; }
.patient-login-password button { position:absolute; right:4px; top:4px; min-width:56px; min-height:38px; border:0; border-radius:7px; background:var(--sage-2); color:var(--pine); font-size:.78rem; font-weight:700; }
.patient-login-account-summary { display:grid; gap:3px; margin:0; padding:13px 14px; border:1px solid var(--line); border-radius:10px; background:white; overflow-wrap:anywhere; }
.patient-login-account-summary strong { color:var(--pine); }
.patient-login-account-summary span { color:#53655d; font-size:.82rem; }
.patient-login-legal { margin:16px 0 4px; color:#53655d; font-size:.76rem; line-height:1.55; }
.patient-login-existing { margin:16px 0 0; color:#53655d; font-size:.82rem; }
.patient-login-existing .patient-login-forgot { padding-inline:3px; }
.patient-login-dialog [hidden] { display: none !important; }
.patient-login-dialog a:focus-visible, .patient-login-dialog button:focus-visible { outline: 3px solid #806030; outline-offset: 4px; }
.wabash-booking-section .patient-booking-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; }
.wabash-booking-section .patient-booking-actions { display: flex; flex-direction: column; gap: 12px; min-width: 240px; }
.wabash-booking-section .patient-booking-entry h2 { max-width: 20ch; }
.wabash-booking-section .patient-booking-entry p:last-child { margin-bottom: 0; }
.page-community-health .institution-hero h1 { text-wrap: balance; }
@media (max-width: 700px) {
  .patient-login-content { padding: 28px 24px; }
  .patient-login-dialog { max-height: calc(100dvh - 24px); }
  .wabash-booking-section .patient-booking-entry { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .wabash-booking-section .patient-booking-actions { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .patient-login-dialog, .patient-login-dialog * { scroll-behavior: auto; } }

.patient-login-action-stack{display:flex;flex-direction:column;gap:12px}.patient-login-action-stack>.btn{margin:0;width:100%}
