.ds{--ic-bg:#fff;--ic-bg-3:#fff;--ic-bg-4:#f6f8fc;--ic-border:rgba(14,35,71,.10);--ic-border-2:#dfe5f1;--ic-ease:cubic-bezier(.4,0,.2,1);--ic-spring:cubic-bezier(.34,1.56,.64,1);--ic-gold-2:#1c47b8;--ic-gold-faint:#eaf0ff;--ic-gold-glow:rgba(35,88,220,.22);--ic-pine-deep:#0e2347;--ic-pine:#163a6e;--ic-pine-2:#1e4a8c;--ic-radius:16px;--ic-radius-sm:10px;--ic-radius-xl:20px;--ic-radius-pill:999px;--ic-shadow-sm:0 1px 8px rgba(14,35,71,.06);--ic-shadow-lg:0 24px 64px rgba(14,35,71,.16);--ic-teal:#2358dc;--ic-text-1:#0e2347;--ic-text-2:#5b667a;--ic-text-3:#5f6b7d;--ic-vital:#c7401f;--ic-font-h:'Poppins',system-ui,sans-serif;--ic-font-b:'Poppins',system-ui,sans-serif}
/* Login / My Account (v2): the classic auth, field, modal and account-shared rules (style.css) scoped under .ds on the ds palette. Generated; markup + imcure-login-auth.js unchanged. */
@keyframes icAuthFloat{ 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes icAuthChipIn{ from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes icAuthPanelIn{ from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes icShake{ 10%,90% { transform: translateX(-1px); } 20%,80% { transform: translateX(2px); } 30%,50%,70% { transform: translateX(-4px); } 40%,60% { transform: translateX(4px); } }
@keyframes icAuthSpin{ to { transform: rotate(360deg); } }
@keyframes icSuccessPulse{ 0% { box-shadow: 0 0 0 0 var(--ic-gold-glow); } 100% { box-shadow: 0 0 0 18px rgba(76,154,255,0); } }
.ds .ic-benefit-grid-tight{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 560px){.ds .ic-benefit-grid-tight{ grid-template-columns: 1fr; }}
.ds .ic-diagnostics-wrap .ic-benefit-card h3,.ds .ic-diagnostics-wrap .ic-tool-card h3,.ds .ic-diagnostics-wrap .ic-image-card h3,.ds .ic-diagnostics-wrap .ic-step-photo-card h3{ font-size: 1.02rem; }
.ds .ic-diagnostics-wrap .ic-benefit-card p,.ds .ic-diagnostics-wrap .ic-tool-card p,.ds .ic-diagnostics-wrap .ic-image-card p,.ds .ic-diagnostics-wrap .ic-step-photo-card p{ font-size: 0.88rem; }
.ds .ic-auth-wrap{ max-width: 1280px; margin: 0 auto; padding: 48px 40px 96px; }
@media (max-width: 768px){.ds .ic-auth-wrap{ padding: 0 0 64px; }}
.ds .ic-auth-shell{
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  min-height: 640px;
  border-radius: var(--ic-radius-xl);
  overflow: hidden;
  box-shadow: var(--ic-shadow-lg);
}
@media (max-width: 980px){.ds .ic-auth-shell{ grid-template-columns: 3fr 2fr; }}
@media (max-width: 860px){.ds .ic-auth-shell{ grid-template-columns: 1fr; border-radius: 0; box-shadow: none; }}
.ds .ic-auth-brand{
  position: relative;
  background: radial-gradient(120% 140% at 15% 0%, var(--ic-pine-2) 0%, var(--ic-pine) 45%, var(--ic-pine-deep) 100%);
  padding: 56px 48px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ds .ic-auth-brand::before{
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: .5;
  pointer-events: none;
}
.ds .ic-auth-brand-inner{ position: relative; z-index: 1; max-width: 480px; }
.ds .ic-auth-headline{
  font-family: var(--ic-font-h); font-size: clamp(1.7rem, 2.9vw, 2.3rem); font-weight: 800;
  letter-spacing: -0.03em; line-height: 1.18; color: #fff !important; margin: 14px 0 10px;
}
.ds .ic-auth-ecg{ display: flex; margin: 0 0 16px; }
.ds .ic-auth-sub{ font-family: var(--ic-font-b); font-size: 0.96rem; line-height: 1.7; color: rgba(255,255,255,.72); margin: 0 0 28px; max-width: 420px; }
.ds .ic-auth-illustration{ display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; }
.ds .ic-auth-illu-card{
  display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--ic-radius-sm); padding: 12px 16px; color: var(--ic-vital);
  backdrop-filter: blur(6px);
  animation: icAuthFloat 5s ease-in-out infinite;
}
.ds .ic-auth-illu-card div{ display: flex; flex-direction: column; font-family: var(--ic-font-b); }
.ds .ic-auth-illu-card strong{ font-size: 0.85rem; font-weight: 700; color: #fff; }
.ds .ic-auth-illu-card span{ font-size: 0.72rem; color: rgba(255,255,255,.6); }
.ds .ic-auth-illu-score{ animation-delay: 0s; }
.ds .ic-auth-illu-appt{ animation-delay: .7s; margin-left: 22px; }
.ds .ic-auth-illu-wallet{ animation-delay: 1.4s; }
.ds .ic-auth-chips{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.ds .ic-auth-chip{
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--ic-font-b); font-size: 0.74rem; font-weight: 600; color: #fff;
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--ic-radius-pill); padding: 6px 12px;
  opacity: 0; animation: icAuthChipIn .5s ease forwards;
}
.ds .ic-auth-chip svg{ color: var(--ic-vital); flex-shrink: 0; }
.ds .ic-auth-trustrow{ display: flex; flex-wrap: wrap; gap: 16px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); }
.ds .ic-auth-trust{ display: inline-flex; align-items: center; gap: 6px; font-family: var(--ic-font-b); font-size: 0.72rem; color: rgba(255,255,255,.62); }
.ds .ic-auth-trust svg{ color: var(--ic-vital); flex-shrink: 0; }
@media (max-width: 860px){.ds .ic-auth-brand{ padding: 40px 24px; }.ds .ic-auth-illustration{ display: none; }}
.ds .ic-auth-card-col{ display: flex; align-items: center; justify-content: center; background: var(--ic-bg-3); padding: 40px; }
.ds .ic-auth-card{ width: 100%; max-width: 430px; }
@media (max-width: 860px){.ds .ic-auth-card-col{ padding: 32px 20px 40px; }}
.ds .ic-auth-logo{ display: flex; justify-content: center; margin-bottom: 20px; }
.ds .ic-auth-logo img{ height: 34px; width: auto; }
.ds .ic-auth-logo .ich-logo-text{ font-family: var(--ic-font-h); font-weight: 800; font-size: 1.4rem; color: var(--ic-pine-deep); }
.ds .ic-auth-tabs{
  position: relative; display: grid; grid-template-columns: 1fr 1fr;
  background: var(--ic-bg-4); border-radius: var(--ic-radius-pill); padding: 4px; margin-bottom: 22px;
}
.ds .ic-auth-tab{
  position: relative; z-index: 1; border: none; background: none !important; cursor: pointer;
  font-family: var(--ic-font-b); font-size: 0.85rem; font-weight: 700; color: var(--ic-text-3) !important;
  padding: 10px 12px; border-radius: var(--ic-radius-pill); transition: color .25s var(--ic-ease);
}
.ds .ic-auth-tab:hover,.ds .ic-auth-tab:focus{ background: none !important; color: var(--ic-text-3) !important; }
.ds .ic-auth-tab.is-active,.ds .ic-auth-tab.is-active:hover,.ds .ic-auth-tab.is-active:focus{ color: #fff !important; }
.ds .ic-auth-tab-indicator{
  position: absolute; top: 4px; left: 4px; width: calc(50% - 4px); height: calc(100% - 8px);
  background: var(--ic-vital); border-radius: var(--ic-radius-pill);
  box-shadow: 0 4px 16px var(--ic-gold-glow);
  transition: transform .32s var(--ic-spring);
}
.ds .ic-auth-tabs.signup-active .ic-auth-tab-indicator{ transform: translateX(100%); }
.ds .ic-auth-heading{ font-family: var(--ic-font-h); font-size: 1.5rem; font-weight: 800; color: var(--ic-text-1); text-align: center; margin: 0 0 4px; letter-spacing: -0.02em; }
.ds .ic-auth-subheading{ font-family: var(--ic-font-b); font-size: 0.86rem; color: var(--ic-text-3); text-align: center; margin: 0 0 26px; }
.ds .ic-auth-panel{ display: none; animation: icAuthPanelIn .32s var(--ic-ease); }
.ds .ic-auth-panel.is-active{ display: block; }
.ds .ic-hp-field{ position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.ds .ic-field{ position: relative; margin-bottom: 16px; }
.ds .ic-field input,.ds .ic-field textarea{
  width: 100%; box-sizing: border-box; font-family: var(--ic-font-b); font-size: 0.92rem; color: var(--ic-text-1);
  background: var(--ic-bg); border: 1.5px solid var(--ic-border-2); border-radius: var(--ic-radius-sm);
  padding: 18px 14px 8px; outline: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.ds .ic-field textarea{ min-height: 68px; resize: vertical; font-family: inherit; line-height: 1.4; }
.ds .ic-field input:focus,.ds .ic-field textarea:focus{ border-color: var(--ic-vital); box-shadow: 0 0 0 4px var(--ic-gold-faint); }
.ds .ic-field label{
  position: absolute; left: 15px; top: 15px; font-family: var(--ic-font-b); font-size: 0.92rem; color: var(--ic-text-3);
  pointer-events: none; transition: all .18s var(--ic-ease); background: transparent;
}
.ds .ic-field.has-value label,.ds .ic-field.is-focused label{
  top: 6px; font-size: 0.68rem; font-weight: 700; color: var(--ic-vital); letter-spacing: .01em;
}
.ds .ic-field-pw input{ padding-right: 44px; }
.ds .ic-pw-toggle{
  position: absolute; right: 10px; top: 12px; background: none !important; border: none; cursor: pointer;
  color: var(--ic-text-3) !important; padding: 6px; display: flex;
}
.ds .ic-pw-toggle:hover,.ds .ic-pw-toggle:focus{ background: none !important; color: var(--ic-vital) !important; }
.ds .ic-pw-toggle .ic-eye-off{ display: none; }
.ds .ic-pw-toggle.is-showing .ic-eye{ display: none; }
.ds .ic-pw-toggle.is-showing .ic-eye-off{ display: block; }
.ds .ic-field-error{ margin: 5px 0 0; font-family: var(--ic-font-b); font-size: 0.74rem; color: #D0392B; min-height: 0; }
.ds .ic-field.has-error input{ border-color: #D0392B; }
.ds .ic-pw-strength{ display: none; align-items: center; gap: 8px; margin-top: 8px; }
.ds .ic-pw-strength.is-visible{ display: flex; }
.ds .ic-pw-strength-bar{ display: flex; gap: 4px; flex: 1; }
.ds .ic-pw-strength-bar i{ height: 4px; flex: 1; border-radius: 2px; background: var(--ic-border-2); }
.ds .ic-pw-strength-bar[data-level="0"] i:nth-child(1){ background: #D0392B; }
.ds .ic-pw-strength-bar[data-level="1"] i:nth-child(-n+1){ background: #E67E22; }
.ds .ic-pw-strength-bar[data-level="2"] i:nth-child(-n+2){ background: #F1C40F; }
.ds .ic-pw-strength-bar[data-level="3"] i:nth-child(-n+3){ background: var(--ic-teal); }
.ds .ic-pw-strength-bar[data-level="4"] i:nth-child(-n+4){ background: var(--ic-vital); }
.ds .ic-pw-strength-label{ font-family: var(--ic-font-b); font-size: 0.7rem; font-weight: 700; color: var(--ic-text-3); white-space: nowrap; }
.ds .ic-auth-row{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 8px; }
.ds .ic-checkbox{ display: inline-flex; align-items: center; gap: 8px; font-family: var(--ic-font-b); font-size: 0.8rem; color: var(--ic-text-2); cursor: pointer; user-select: none; }
.ds .ic-checkbox input{ position: absolute; opacity: 0; width: 18px; height: 18px; cursor: pointer; }
.ds .ic-checkbox-box{ width: 18px; height: 18px; flex-shrink: 0; border: 1.5px solid var(--ic-border-2); border-radius: 5px; background: var(--ic-bg); position: relative; transition: all .18s ease; }
.ds .ic-checkbox input:checked ~ .ic-checkbox-box{ background: var(--ic-vital); border-color: var(--ic-vital); }
.ds .ic-checkbox input:checked ~ .ic-checkbox-box::after{ content: ''; position: absolute; left: 5px; top: 1px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ds .ic-checkbox input:focus-visible ~ .ic-checkbox-box{ box-shadow: 0 0 0 3px var(--ic-gold-faint); }
.ds .ic-auth-link{ font-family: var(--ic-font-b); font-size: 0.8rem; font-weight: 600; color: var(--ic-vital); text-decoration: none; }
.ds .ic-auth-link:hover{ text-decoration: underline; }
.ds .ic-consent{ align-items: flex-start; margin: 4px 0 4px; line-height: 1.5; }
.ds .ic-consent .ic-checkbox-box{ margin-top: 1px; }
.ds .ic-consent a{ color: var(--ic-vital); font-weight: 600; }
.ds .ic-auth-submit{
  position: relative; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--ic-font-b); font-size: 0.92rem; font-weight: 700; color: #fff !important;
  background: var(--ic-vital) !important; border: none; border-radius: var(--ic-radius-pill); padding: 14px;
  cursor: pointer; box-shadow: 0 4px 20px var(--ic-gold-glow); transition: background .2s ease, box-shadow .2s ease, transform .15s ease;
  margin-top: 4px;
}
.ds .ic-auth-submit:hover,.ds .ic-auth-submit:focus{
  background: var(--ic-gold-2) !important; color: #fff !important; box-shadow: 0 6px 28px var(--ic-gold-glow); transform: translateY(-1px);
}
.ds .ic-auth-submit:active{ transform: translateY(0); }
.ds .ic-auth-spinner{ display: none; animation: icAuthSpin .7s linear infinite; }
.ds .ic-auth-submit.is-loading .ic-auth-submit-label{ visibility: hidden; }
.ds .ic-auth-submit.is-loading .ic-auth-spinner{ display: block; position: absolute; }
.ds .ic-auth-submit:disabled{ cursor: default; opacity: .85; }
.ds .ic-success-pulse .ic-auth-submit{ animation: icSuccessPulse .6s ease-out; }
.ds .ic-auth-divider{ display: flex; align-items: center; gap: 12px; margin: 22px 0; }
.ds .ic-auth-divider::before,.ds .ic-auth-divider::after{ content: ''; flex: 1; height: 1px; background: var(--ic-border); }
.ds .ic-auth-divider span{ font-family: var(--ic-font-b); font-size: 0.72rem; font-weight: 700; letter-spacing: .08em; color: var(--ic-text-3); }
.ds .ic-google-btn{
  width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--ic-font-b); font-size: 0.88rem; font-weight: 600; color: var(--ic-text-1) !important;
  background: var(--ic-bg-3) !important; border: 1.5px solid var(--ic-border-2); border-radius: var(--ic-radius-pill);
  padding: 12px; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease;
}
.ds .ic-google-btn:hover,.ds .ic-google-btn:focus{
  background: var(--ic-bg-3) !important; color: var(--ic-text-1) !important; border-color: var(--ic-border-2); box-shadow: var(--ic-shadow-sm);
}
.ds .ic-google-btn:disabled{ opacity: .6; cursor: default; }
.ds .ic-auth-switch-line{ text-align: center; font-family: var(--ic-font-b); font-size: 0.84rem; color: var(--ic-text-3); margin-top: 18px; }
.ds .ic-auth-switch-line a{ color: var(--ic-vital); font-weight: 700; text-decoration: none; }
.ds .ic-auth-switch-line a:hover{ text-decoration: underline; }
.ds .ic-auth-toast{
  position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 16px);
  font-family: var(--ic-font-b); font-size: 0.85rem; font-weight: 600; color: #fff;
  background: var(--ic-pine-deep); border-radius: var(--ic-radius-sm); padding: 12px 20px;
  box-shadow: var(--ic-shadow-lg); opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease;
  z-index: 200; max-width: 92vw;
}
.ds .ic-auth-toast.is-visible{ opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.ds .ic-auth-toast.is-success{ background: var(--ic-pine-deep); border: 1px solid var(--ic-vital); }
.ds .ic-auth-toast.is-error{ background: #5a1f1f; border: 1px solid #D0392B; }
.ds .ic-auth-security{ margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--ic-border); display: flex; flex-direction: column; gap: 8px; }
.ds .ic-auth-security p{ display: flex; align-items: center; gap: 8px; font-family: var(--ic-font-b); font-size: 0.74rem; color: var(--ic-text-3); margin: 0; }
.ds .ic-auth-security svg{ color: var(--ic-vital); flex-shrink: 0; }
.ds .ic-auth-legal{ justify-content: center; margin-top: 6px !important; }
.ds .ic-auth-legal a{ color: var(--ic-text-2); text-decoration: underline; }
.ds .ic-modal{
  position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center;
  background: rgba(15,23,32,.55); backdrop-filter: blur(4px);
  opacity: 0; pointer-events: none; transition: opacity .25s ease; padding: 20px;
}
.ds .ic-modal.is-open{ opacity: 1; pointer-events: auto; }
.ds .ic-modal-panel{
  width: 100%; max-width: 400px; background: var(--ic-bg-3); border-radius: var(--ic-radius-xl);
  padding: 32px 28px; box-shadow: var(--ic-shadow-lg); position: relative;
  transform: scale(.94) translateY(8px); transition: transform .28s var(--ic-spring);
}
.ds .ic-modal.is-open .ic-modal-panel{ transform: scale(1) translateY(0); }
.ds .ic-modal-close{ position: absolute; top: 16px; right: 16px; background: none !important; border: none; cursor: pointer; color: var(--ic-text-3) !important; padding: 6px; }
.ds .ic-modal-close:hover,.ds .ic-modal-close:focus{ background: none !important; color: var(--ic-vital) !important; }
.ds .ic-modal-panel h3{ font-family: var(--ic-font-h); font-size: 1.2rem; font-weight: 800; color: var(--ic-text-1); margin: 0 0 4px; }
.ds .ic-modal-sub{ font-family: var(--ic-font-b); font-size: 0.82rem; color: var(--ic-text-3); margin: 0 0 20px; }
.ds .ic-forgot-modes{ display: flex; gap: 8px; margin-bottom: 18px; }
.ds .ic-forgot-mode{
  flex: 1; border: 1.5px solid var(--ic-border-2); background: var(--ic-bg) !important; cursor: pointer;
  font-family: var(--ic-font-b); font-size: 0.8rem; font-weight: 700; color: var(--ic-text-3) !important;
  padding: 8px; border-radius: var(--ic-radius-pill); transition: all .2s ease;
}
.ds .ic-forgot-mode:hover,.ds .ic-forgot-mode:focus{ background: var(--ic-bg) !important; color: var(--ic-text-3) !important; }
.ds .ic-forgot-mode.is-active,.ds .ic-forgot-mode.is-active:hover,.ds .ic-forgot-mode.is-active:focus{
  background: var(--ic-vital) !important; border-color: var(--ic-vital); color: #fff !important;
}
.ds .ic-forgot-panel{ display: none; }
.ds .ic-forgot-panel.is-active{ display: block; }
.ds .ic-forgot-result{ margin-top: 12px; font-family: var(--ic-font-b); font-size: 0.78rem; color: var(--ic-gold-2); text-align: center; opacity: 0; }
.ds .ic-forgot-result.is-visible{ opacity: 1; }
.ds .ic-forgot-result.is-error{ color: #D0392B; }
.ds .ic-auth-benefits{ padding-top: 64px; }
.ds .ic-benefit-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 860px){.ds .ic-benefit-grid{ grid-template-columns: repeat(2, 1fr); }}
@media (max-width: 480px){.ds .ic-benefit-grid{ grid-template-columns: 1fr; }}
.ds .ic-benefit-card{ background: var(--ic-bg-4); border: 1px solid var(--ic-border); border-radius: var(--ic-radius); padding: 22px 20px; }
.ds .ic-benefit-icon{ display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--ic-gold-faint); color: var(--ic-vital); margin-bottom: 12px; }
.ds .ic-benefit-card h3{ font-family: var(--ic-font-h); font-size: 0.98rem; font-weight: 800; color: var(--ic-text-1); margin: 0 0 6px; }
.ds .ic-benefit-card p{ font-family: var(--ic-font-b); font-size: 0.82rem; color: var(--ic-text-3); margin: 0; line-height: 1.6; }
@media (prefers-reduced-motion: reduce){.ds .ic-auth-illu-card,.ds .ic-auth-chip,.ds .ic-auth-panel,.ds .ic-success-pulse .ic-auth-submit,.ds .ic-auth-spinner{ animation: none !important; }}
.ds .ic-book-actions .ich-cta-btn,.ds .ic-book-actions .ic-auth-submit{ margin-left: auto; }
.ds .ic-book-step-success .ic-modal-sub{ text-align: center; }
.ds .ic-pf-pw-wrap .ic-pw-toggle{
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  background: none !important; border: none; cursor: pointer; color: var(--ic-text-3) !important; padding: 6px; display: flex;
}
.ds .ic-pf-pw-wrap .ic-pw-toggle:hover,.ds .ic-pf-pw-wrap .ic-pw-toggle:focus{ background: none !important; color: var(--ic-vital) !important; }
.ds .ic-pf-pw-wrap .ic-pw-toggle .ic-eye-off{ display: none; }
.ds .ic-pf-pw-wrap .ic-pw-toggle.is-showing .ic-eye{ display: none; }
.ds .ic-pf-pw-wrap .ic-pw-toggle.is-showing .ic-eye-off{ display: flex; }
.ds .ic-pf-field .ic-pw-strength{ margin-top: 8px; }
