/* Pharmacy authentication: local, presentation-only overrides.
   Existing WTForms markup, submission and validation remain untouched. */
body.pharmacy-auth-login-premium {
  background: #fff !important;
  color: #071b42;
}

body.pharmacy-auth-login-premium::before { display: none; }
body.pharmacy-auth-login-premium main.flex-grow-1,
body.pharmacy-auth-login-premium main .main-container {
  background: #fff !important;
}
body.pharmacy-auth-login-premium main .main-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.pharmacy-auth-login-premium footer.bg-dark {
  padding: 28px 0 22px !important;
  color: #53617b !important;
  background: #fff !important;
  border-top: 1px solid #e5ebf5 !important;
}
body.pharmacy-auth-login-premium footer .text-secondary,
body.pharmacy-auth-login-premium footer a.text-secondary { color: #63718a !important; }
body.pharmacy-auth-login-premium footer h6 { color: #10244d !important; }
body.pharmacy-auth-login-premium footer .text-center.border-top {
  width: auto !important;
  min-height: 0 !important;
  margin: 20px 0 0 !important;
  padding: 18px 0 0 !important;
  color: #71809a !important;
  background: transparent !important;
  border-color: #e5ebf5 !important;
}

.pharmacy-auth-shell {
  width: min(100% - 48px, 1170px);
  margin: 66px auto 56px;
}
.pharmacy-login-card {
  display: grid;
  grid-template-columns: minmax(330px, .78fr) minmax(540px, 1.22fr);
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce6f4;
  border-radius: 22px;
  box-shadow: 0 20px 45px rgba(19, 45, 94, .10);
}
.pharmacy-login-story {
  display: flex;
  min-width: 0;
  min-height: 648px;
  padding: 48px 42px 34px;
  flex-direction: column;
  color: #0a214a;
  background: linear-gradient(135deg, #fff 0%, #f8fbff 100%);
  border-right: 1px solid #e4ebf5;
}
.pharmacy-story-icon,
.pharmacy-feature-icon {
  display: inline-grid;
  place-items: center;
  color: #0b66ff;
  background: #f0f6ff;
  border: 1px solid #e2ecfb;
}
.pharmacy-story-icon { width: 64px; height: 64px; margin-bottom: 34px; border-radius: 50%; font-size: 1.7rem; }
.pharmacy-story-kicker,
.pharmacy-login-intro > span {
  margin: 0 0 10px;
  color: #1264ed;
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.pharmacy-login-story h1 {
  margin: 0;
  color: #071b42;
  font-size: clamp(2rem, 2.8vw, 2.85rem);
  font-weight: 750;
  letter-spacing: -.055em;
  line-height: 1.12;
}
.pharmacy-story-rule { width: 40px; height: 3px; margin: 24px 0 26px; background: #0b67ff; border-radius: 100px; }
.pharmacy-feature-list { display: grid; gap: 0; }
.pharmacy-feature-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid #e7edf6;
}
.pharmacy-feature-icon { width: 50px; height: 50px; border-radius: 12px; font-size: 1.3rem; }
.pharmacy-feature-item strong,
.pharmacy-feature-item small { display: block; }
.pharmacy-feature-item strong { margin: 1px 0 5px; color: #10244d; font-size: .98rem; }
.pharmacy-feature-item small { color: #65738a; font-size: .79rem; line-height: 1.55; }
.pharmacy-login-register { margin-top: auto; padding-top: 24px; }
.pharmacy-login-register p { margin: 0 0 9px; color: #52617a; font-size: .83rem; }
.pharmacy-login-register a { color: #0c61eb; font-size: .88rem; font-weight: 750; text-decoration: none; }
.pharmacy-login-register a i { margin-left: 7px; font-size: .72rem; }

.pharmacy-login-form-area { min-width: 0; padding: 48px 58px 28px; }
.pharmacy-login-intro { padding-bottom: 27px; border-bottom: 1px solid #e1e9f4; }
.pharmacy-login-intro h2 { margin: 0 0 9px; color: #071b42; font-size: clamp(2rem, 3vw, 2.85rem); font-weight: 750; letter-spacing: -.055em; }
.pharmacy-login-intro p { max-width: 630px; margin: 0; color: #617089; font-size: .91rem; line-height: 1.55; }
.pharmacy-login-assurances { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.pharmacy-login-assurances span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 35px;
  padding: 7px 12px;
  color: #13264c;
  border: 1px solid #d9e5f5;
  border-radius: 7px;
  font-size: .77rem;
  font-weight: 650;
}
.pharmacy-login-assurances i { color: #10284f; }
.pharmacy-login-form-wrap { padding-top: 25px; }
.pharmacy-login-form-wrap fieldset { min-width: 0; padding: 0; border: 0; }
.pharmacy-login-form-wrap legend { margin-bottom: 5px; color: #10244d; font-size: 1rem; font-weight: 760; }
.pharmacy-login-form-wrap .auth-form-intro { margin-bottom: 19px; color: #6b7890; font-size: .83rem; }
.pharmacy-login-form-wrap .form-group { margin-bottom: 15px; }
.pharmacy-login-form-wrap .form-control-label { display: block; margin-bottom: 7px; color: #14264b; font-size: .8rem; font-weight: 720; }
.pharmacy-login-form-wrap .auth-input-shell { position: relative; }
.pharmacy-login-form-wrap .auth-input-shell > i {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 15px;
  color: #0e2a56;
  font-size: .95rem;
  pointer-events: none;
  transform: translateY(-50%);
}
.pharmacy-login-form-wrap .form-control {
  min-height: 46px;
  padding: 10px 14px 10px 42px;
  color: #14264b;
  background: #fff;
  border: 1px solid #cfdced;
  border-radius: 7px;
  box-shadow: none;
  font-size: .84rem;
}
.pharmacy-login-form-wrap .form-control:focus { border-color: #0966ff; box-shadow: 0 0 0 3px rgba(11, 102, 255, .11); }
.pharmacy-login-form-wrap .auth-inline-check { margin: 8px 0 20px; }
.pharmacy-login-form-wrap .form-check-label { color: #1d3054; font-size: .83rem; }
.pharmacy-login-form-wrap .form-check-input:checked { background-color: #0966ff; border-color: #0966ff; }
.pharmacy-login-form-wrap .auth-submit {
  width: 100%;
  min-height: 51px;
  color: #fff;
  background: linear-gradient(135deg, #0d6dff, #0757dc);
  border: 0;
  border-radius: 7px;
  box-shadow: 0 10px 20px rgba(7, 89, 222, .18);
  font-size: .92rem;
  font-weight: 750;
}
.pharmacy-login-form-wrap .auth-submit:hover { background: linear-gradient(135deg, #075fef, #064ac0); transform: translateY(-1px); }
.pharmacy-login-trust { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 28px; padding-top: 19px; border-top: 1px solid #e1e9f4; }
.pharmacy-login-trust span { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 24px; color: #203454; border-left: 1px solid #e1e9f4; font-size: .74rem; font-weight: 650; text-align: center; }
.pharmacy-login-trust span:first-child { border-left: 0; }
.pharmacy-login-trust i { color: #0ca44b; font-size: 1.05rem; }

@media (max-width: 900px) {
  .pharmacy-auth-shell { width: min(100% - 28px, 680px); margin: 32px auto 40px; }
  .pharmacy-login-card { grid-template-columns: 1fr; }
  /* Stacked on phones the login form leads and the story follows, so the first
     thing on screen is the thing you came to do. The divider therefore moves
     from the story's bottom edge to its top. Source order is unchanged, so the
     form still reads first for screen readers and keyboard order either way. */
  .pharmacy-login-form-area { order: 1; }
  .pharmacy-login-story { order: 2; }
  .pharmacy-login-story { min-height: 0; padding: 34px 30px; border-right: 0; border-top: 1px solid #e4ebf5; border-bottom: 0; }
  .pharmacy-story-icon { margin-bottom: 20px; }
  .pharmacy-feature-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
  .pharmacy-feature-item { grid-template-columns: 1fr; gap: 9px; padding: 0; border: 0; }
  .pharmacy-login-register { margin-top: 25px; }
  .pharmacy-login-form-area { padding: 36px 30px 25px; }
}
@media (max-width: 560px) {
  .pharmacy-auth-shell { width: min(100% - 20px, 480px); }
  .pharmacy-login-story, .pharmacy-login-form-area { padding-right: 21px; padding-left: 21px; }
  .pharmacy-feature-list { grid-template-columns: 1fr; }
  .pharmacy-feature-item { grid-template-columns: 50px 1fr; }
  .pharmacy-login-assurances { display: grid; grid-template-columns: 1fr; }
  .pharmacy-login-trust { grid-template-columns: 1fr; gap: 10px; }
  .pharmacy-login-trust span { justify-content: flex-start; padding-left: 0; border: 0; text-align: left; }
}
