/* WellSense public authentication experience */
:root { --auth-ink:#17241a; --auth-muted:#6e786d; --auth-olive:#31552d; --auth-olive-dark:#1c3920; --auth-sage:#e7eee0; --auth-cream:#fbfaf6; --auth-copper:#a96840; }
.auth-page { margin:0; min-width:320px; background:#dfe5d9; color:var(--auth-ink); font-family:'DM Sans',Arial,sans-serif; }
.auth-page *, .auth-page *::before, .auth-page *::after { box-sizing:border-box; }
.auth-page [hidden] { display:none!important; }
.auth-frame { min-height:100vh; overflow:hidden; position:relative; display:flex; flex-direction:column; background:var(--auth-cream); }
.auth-frame::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.5; background:radial-gradient(circle at 10% 16%,#fff 0 2px,transparent 3px),radial-gradient(circle at 90% 40%,#d7e4cf 0 1px,transparent 2px); background-size:28px 28px,34px 34px; mask-image:linear-gradient(to bottom,#000,transparent 75%); }
.auth-login .auth-frame { background:linear-gradient(90deg,#fbfaf6 0%,#fbfaf6ed 34%,#fbfaf69c 58%,#fbfaf62b 100%),url('../img/auth-login-bg.jpg') center/cover no-repeat; }
.auth-register .auth-frame { background:linear-gradient(180deg,#fbfaf6 0%,#fbfaf6e8 52%,#fbfaf600 100%),url('../img/auth-register-bg.jpg') center bottom/cover no-repeat; }
.auth-header { width:min(1320px,calc(100% - 72px)); margin:0 auto; padding:24px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; position:relative; z-index:1; }
.auth-header img { width:clamp(175px,18vw,225px); height:auto; display:block; }
.auth-back { display:inline-flex; align-items:center; gap:10px; padding:10px 16px; border:1px solid #dce4d6; border-radius:999px; color:#304b31; font-size:14px; font-weight:600; text-decoration:none; background:#ffffff9c; transition:.2s ease; }
.auth-back span { font-size:19px; line-height:1; }
.auth-back:hover { color:var(--auth-olive-dark); background:#fff; border-color:#b8c9b4; transform:translateX(-2px); }
.auth-main { width:min(1180px,calc(100% - 72px)); margin:18px auto 0; flex:1; position:relative; z-index:1; }
.auth-login .auth-main { display:grid; grid-template-columns:minmax(300px,.86fr) minmax(450px,1.14fr); gap:clamp(42px,7vw,110px); align-items:center; padding-bottom:58px; }
.auth-story { max-width:405px; padding-bottom:18px; }
.auth-story::before,.auth-card::before { content:'WELLSENSE  /  YOUR HEALTH, YOUR WAY'; display:block; margin-bottom:20px; color:var(--auth-copper); font-size:11px; font-weight:700; letter-spacing:.2em; }
.auth-story h1 { max-width:440px; margin:0 0 20px; color:#132016; font:500 clamp(36px,3.8vw,54px)/1.08 'DM Sans',Arial,sans-serif; letter-spacing:-.035em; }
.auth-story h1 em { color:var(--auth-copper); font-weight:500; }
.auth-story>p { max-width:360px; margin:0 0 24px; color:#59655a; font-size:15px; line-height:1.55; }
.auth-benefits { display:grid; gap:13px; list-style:none; padding:0; margin:0; }
.auth-benefits li { display:flex; align-items:center; gap:13px; }
.auth-benefits i,.auth-security>i { display:grid; flex:0 0 40px; width:40px; height:40px; place-items:center; border-radius:50%; background:var(--auth-sage); color:var(--auth-olive); font-size:18px; }
.auth-benefits strong { display:block; color:#2b392c; font-size:13px; font-weight:600; }
.auth-benefits span { display:block; margin-top:1px; color:#7b857a; font-size:12px; }
.auth-story blockquote { max-width:320px; margin:24px 0 0; padding:15px 20px; border-left:2px solid #b98a62; border-radius:0 14px 14px 0; background:#ffffff9c; color:#3a493b; font:italic 500 19px/1.3 'DM Sans',Arial,sans-serif; }
.auth-story blockquote span { display:inline; color:#b98a62; font-size:32px; line-height:0; }
.auth-card-layout { min-width:0; align-self:start; }
.auth-card { position:relative; padding:42px 44px 28px; border:1px solid #ffffff; border-radius:28px; background:#fffffff2; box-shadow:0 22px 70px #394a2b14,0 2px 6px #394a2b0b; backdrop-filter:blur(16px); }
.auth-card::before { margin-bottom:12px; }
.auth-card h1,.auth-card h2 { margin:0 0 8px; color:#172117; font:500 clamp(28px,2.8vw,36px)/1.1 'DM Sans',Arial,sans-serif; letter-spacing:-.025em; }
.auth-card-label { margin:0 0 14px; color:var(--auth-olive); font-size:16px; font-weight:600; }
.auth-intro { max-width:500px; margin:0 0 28px; color:var(--auth-muted); font-size:15px; line-height:1.55; }
.auth-card label { display:block; margin-bottom:14px; color:#354238; font-size:13px; font-weight:600; letter-spacing:.01em; }
.auth-card input:not([type='checkbox']),.auth-card select { width:100%; min-width:0; min-height:54px; margin-top:8px; padding:13px 15px; border:1px solid #d7dfd4; border-radius:12px; outline:0; background:#fff; color:#253328; font:500 15px 'DM Sans',Arial,sans-serif; transition:border-color .2s,box-shadow .2s,background .2s; }
.auth-card input::placeholder { color:#9aa39a; font-weight:400; }
.auth-card input:not([type='checkbox']):focus,.auth-card select:focus { border-color:#789b71; background:#fff; box-shadow:0 0 0 4px #e5eee1; }
.auth-name-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:4px; }
.auth-phone { position:relative; display:flex; overflow:visible; margin-bottom:19px; border:1px solid #d7dfd4; border-radius:12px; background:#fff; transition:border-color .2s,box-shadow .2s; }
.auth-phone:focus-within { border-color:#789b71; box-shadow:0 0 0 4px #e5eee1; }
.auth-phone select[hidden] { display:none; }
.auth-country-picker { position:relative; z-index:10; flex:0 0 150px; width:150px; align-self:stretch; }
.auth-country-trigger { display:flex; width:100%; min-height:54px; align-items:center; justify-content:space-between; gap:7px; padding:0 12px; border:0; border-right:1px solid #e4e9e0; background:#f7faf5; color:#253328; font:500 14px 'DM Sans',Arial,sans-serif; cursor:pointer; }
.auth-country-trigger i { color:#6f806e; font-size:12px; }
.auth-country-menu { position:absolute; z-index:30; top:calc(100% + 8px); left:0; display:block; width:320px; max-height:calc(100vh - 24px); padding:9px; border:1px solid #dbe5d7; border-radius:14px; background:#fff; box-shadow:0 18px 45px #263b2526; }
.auth-country-menu.is-dropup { top:auto; bottom:calc(100% + 8px); }
.auth-country-search { display:flex!important; align-items:center; gap:8px; margin:0!important; padding:0 11px; border:1px solid #d7e1d4; border-radius:9px; background:#f8fbf6; color:#7b8979; }
.auth-country-search input { min-height:38px!important; margin:0!important; padding:8px 0!important; border:0!important; background:transparent!important; box-shadow:none!important; font-size:13px!important; }
.auth-country-options { display:grid; max-height:min(280px,calc(100vh - 105px)); margin-top:8px; overflow-y:auto; overscroll-behavior:contain; }
.auth-country-option { display:grid; grid-template-columns:24px 1fr auto; gap:8px; align-items:center; width:100%; padding:9px 8px; border:0; border-radius:8px; background:#fff; color:#334336; font:500 12px 'DM Sans',Arial,sans-serif; text-align:left; cursor:pointer; }
.auth-country-option:hover,.auth-country-option[aria-selected='true'] { background:#eef5e9; color:#284b2c; }
.auth-country-option strong { color:#71806f; font-size:11px; font-weight:600; }
.auth-country-flag { font-size:16px; text-align:center; }
.auth-country-empty { margin:12px 5px 6px; color:#7b877a; font-size:12px; text-align:center; }
.auth-phone input { flex:1; margin:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; }
.auth-submit { display:flex; width:100%; min-height:52px; align-items:center; justify-content:center; gap:15px; padding:12px 20px; border:1px solid var(--auth-olive-dark); border-radius:13px; background:linear-gradient(110deg,#254928,#3c6538); color:#fff; font:500 15px 'DM Sans',Arial,sans-serif; text-decoration:none; cursor:pointer; box-shadow:0 9px 20px #31552d26; transition:transform .2s,box-shadow .2s,background .2s; }
.auth-submit span { font-size:20px; line-height:1; transition:transform .2s; }
.auth-submit:hover { color:#fff; background:linear-gradient(110deg,#1e3e22,#315a30); box-shadow:0 12px 25px #31552d38; transform:translateY(-2px); }
.auth-submit:hover span { transform:translateX(3px); }
.auth-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.auth-hint { margin:12px 0 0; color:#8a9388; font-size:12px; text-align:center; }
.auth-divider { display:flex; align-items:center; gap:13px; margin:24px 0 17px; color:#a0a99e; font-size:11px; font-weight:700; letter-spacing:.14em; }
.auth-divider::before,.auth-divider::after { content:''; flex:1; height:1px; background:#e2e7de; }
.auth-switch p { margin:0 0 15px; color:#748075; font-size:13px; text-align:center; }
.auth-card a:not(.auth-submit) { color:var(--auth-copper); text-underline-offset:3px; font-weight:600; }
.auth-security { display:flex; align-items:center; gap:12px; margin:22px 0 0; padding:15px; border:1px solid #e0e9dc; border-radius:15px; background:#f4f8f0; }
.auth-security>i { flex-basis:36px; width:36px; height:36px; font-size:16px; }
.auth-security strong { display:block; color:#365037; font-size:12px; }
.auth-security p { margin:2px 0 0; color:#7c887b; font-size:11px; }
.auth-register .auth-main { width:min(1240px,calc(100% - 72px)); margin-top:10px; }
.auth-steps { display:flex; max-width:650px; list-style:none; padding:0; margin:0 auto 30px; }
.auth-steps li { position:relative; flex:1; color:#8a9588; font-size:12px; font-weight:600; text-align:center; }
.auth-steps li::before { content:''; position:absolute; top:16px; right:50%; left:-50%; height:1px; background:#d8e1d4; }
.auth-steps li:first-child::before { display:none; }
.auth-steps span { position:relative; z-index:1; display:grid; width:34px; height:34px; place-items:center; margin:0 auto 7px; border:5px solid #fbfaf6; border-radius:50%; background:#e3eae0; color:#687568; font-size:12px; }
.auth-steps [aria-current='step'] { color:var(--auth-olive); }
.auth-steps [aria-current='step'] span,.auth-steps .is-complete span { background:var(--auth-olive); color:#fff; }
.auth-steps .is-complete { color:#5e715e; }
.auth-register .auth-card-layout { display:grid; grid-template-columns:minmax(0,1.38fr) minmax(260px,.62fr); gap:16px; }
.auth-register .auth-card { padding:38px 44px 27px; }
.auth-register .auth-card::before { content:'STEP 01  /  YOUR WELLNESS JOURNEY'; }
.auth-register .auth-intro { margin-bottom:26px; }
.auth-register-aside { position:relative; overflow:hidden; min-height:430px; padding:35px 30px; border-radius:28px; background:linear-gradient(145deg,#244529 0%,#3d6339 100%); color:#f5f7ee; box-shadow:0 22px 50px #31552d1c; }
.auth-register-aside::before { content:''; position:absolute; right:-85px; bottom:-125px; width:310px; height:310px; border:1px solid #ffffff2e; border-radius:50%; box-shadow:0 0 0 28px #ffffff0b,0 0 0 58px #ffffff08; }
.auth-register-aside::after { content:'✦'; position:absolute; top:25px; right:27px; color:#d3dfb8; font-size:19px; }
.auth-leaf { position:relative; z-index:1; display:block; width:66px; height:76px; object-fit:contain; margin:0 0 25px auto; filter:brightness(0) invert(1); opacity:.82; }
.auth-handwriting { position:relative; z-index:1; max-width:220px; margin:0 0 32px; font:500 30px/1.1 'DM Sans',Arial,sans-serif; letter-spacing:-.02em; }
.auth-handwriting::after { content:''; display:block; width:52px; height:2px; margin-top:17px; background:#d0dda9; }
.auth-register-aside ul { position:relative; z-index:1; display:grid; gap:17px; list-style:none; padding:0; margin:0; }
.auth-register-aside li { display:flex; align-items:flex-start; gap:10px; color:#e5eddd; font-size:12px; line-height:1.45; }
.auth-register-aside i { flex:0 0 auto; color:#c4d99a; font-size:16px; }
.auth-journey { margin:28px 0 42px; color:#496348; font:500 24px/1.15 'DM Sans',Arial,sans-serif; text-align:center; }
.auth-journey em { color:var(--auth-copper); font-style:normal; }
.auth-message { margin:0 0 18px; padding:11px 14px; border:1px solid #f1d1c2; border-radius:11px; background:#fff4ef; color:#88442c; font-size:12px; overflow-wrap:anywhere; }
.auth-message.is-info { border-color:#d6e5ce; background:#eff7ec; color:#31582f; }
.auth-card .auth-consent { display:flex; align-items:flex-start; gap:9px; margin:0 0 17px; color:#697468; font-size:11px; font-weight:400; line-height:1.5; }
.auth-consent input { flex:0 0 auto; width:16px; height:16px; margin:1px 0 0; accent-color:var(--auth-olive); }
.auth-otp { margin-bottom:17px!important; font-size:25px!important; letter-spacing:.5em; text-align:center; }
.auth-verify-actions { display:flex; justify-content:space-between; gap:14px; margin-top:15px; }
.auth-verify-actions button { padding:5px 0; border:0; background:none; color:var(--auth-copper); font:600 12px 'DM Sans',Arial,sans-serif; text-decoration:underline; cursor:pointer; }
.auth-verify-actions button:disabled { color:#9ba39a; cursor:default; }
.auth-optional { color:#8b958b; font-size:11px; font-weight:400; }
.auth-success-icon { display:block; color:#5b853f; font-size:45px; }
.auth-success { padding:8px 0 4px; text-align:center; }
.auth-success-mark { display:grid; place-items:center; width:72px; height:72px; margin:0 auto 15px; border:1px solid #c9ddbd; border-radius:50%; background:linear-gradient(145deg,#f2f8ee,#e1efd9); color:#4e7b43; box-shadow:0 8px 20px #5777491c; font-size:34px; }
.auth-success-kicker { margin:0 0 6px; color:#6e8b5d; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.auth-success h3 { margin:0 auto 10px; color:#304a32; font:500 clamp(22px,2.3vw,28px)/1.15 'DM Sans',Arial,sans-serif; }
.auth-success-copy { max-width:360px; margin:0 auto 22px; color:#6c786c; font-size:13px; line-height:1.6; }
.auth-success-actions { display:grid; gap:10px; }
.auth-success-actions .auth-submit { margin:0; text-decoration:none; }
.auth-success-link { color:#a56643; font-size:12px; font-weight:600; text-decoration:underline; }
.auth-page :focus-visible { outline:3px solid #b9855e; outline-offset:3px; }
.auth-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px max(36px,calc((100% - 1320px)/2)); color:#829080; font-size:11px; position:relative; z-index:1; }
.auth-footer p { margin:0; }
.auth-footer nav { display:flex; flex-wrap:wrap; gap:15px; }
.auth-footer a { color:inherit; text-decoration:none; }
.auth-footer a:hover { color:var(--auth-olive); }
.auth-footer a+a { padding-left:15px; border-left:1px solid #ccd7c9; }
@media (max-width:900px) { .auth-header,.auth-main,.auth-register .auth-main { width:min(680px,calc(100% - 40px)); } .auth-login .auth-main { grid-template-columns:1fr; gap:20px; } .auth-story { max-width:600px; padding:0; } .auth-story h1 { font-size:46px; } .auth-story>p { margin-bottom:17px; } .auth-benefits,.auth-story blockquote { display:none; } .auth-register .auth-card-layout { grid-template-columns:1fr; } .auth-register-aside { min-height:auto; padding:24px 28px; } .auth-register-aside ul { grid-template-columns:1fr 1fr; } .auth-handwriting { margin-bottom:22px; } .auth-leaf { position:absolute; top:20px; right:25px; } }
@media (max-width:620px) { .auth-header,.auth-main,.auth-register .auth-main { width:calc(100% - 32px); } .auth-header { padding:18px 0; } .auth-header img { width:170px; } .auth-back { padding:8px 11px; font-size:12px; } .auth-main { margin-top:8px; } .auth-login .auth-main { gap:12px; padding-bottom:25px; } .auth-story h1 { margin-bottom:11px; font-size:36px; } .auth-story::before { margin-bottom:12px; font-size:9px; } .auth-card,.auth-register .auth-card { padding:28px 20px 20px; border-radius:20px; } .auth-card::before { margin-bottom:10px; font-size:9px; } .auth-card h1,.auth-card h2 { font-size:29px; } .auth-intro { font-size:14px; margin-bottom:23px; } .auth-name-row { grid-template-columns:1fr; gap:0; } .auth-card input:not([type='checkbox']),.auth-card select { min-height:51px; } .auth-phone select { flex-basis:98px; width:98px; padding-inline:8px; } .auth-phone input { padding-inline:11px!important; font-size:14px!important; } .auth-steps { margin-bottom:22px; } .auth-steps li { font-size:10px; } .auth-steps span { width:32px; height:32px; border-width:4px; } .auth-steps li::before { top:15px; } .auth-register-aside { display:none; } .auth-journey { margin:23px 0 32px; font-size:22px; } .auth-footer { flex-direction:column; gap:8px; padding:14px 16px; text-align:center; } }
/* Desktop registration: keep the complete first step and legal footer within one viewport. */
@media (min-width:901px) {
  .auth-register .auth-frame { height:100vh; min-height:660px; }
  .auth-register .auth-header { padding-block:12px; }
  .auth-register .auth-main { margin-top:0; display:flex; flex-direction:column; }
  .auth-register .auth-steps { margin-bottom:16px; }
  .auth-register .auth-card-layout { flex:1; min-height:0; }
  .auth-register .auth-card { height:100%; padding:27px 34px 18px; }
  .auth-register .auth-card::before { margin-bottom:9px; }
  .auth-register .auth-card h1 { font-size:clamp(36px,3.4vw,48px); }
  .auth-register .auth-intro { margin-bottom:18px; }
  .auth-register .auth-card label { margin-bottom:10px; }
  .auth-register .auth-card input:not([type='checkbox']), .auth-register .auth-card select { min-height:47px; padding-block:10px; }
  .auth-register .auth-phone { margin-bottom:13px; }
  .auth-register .auth-consent { margin-bottom:13px; }
  .auth-register .auth-submit { min-height:50px; }
  .auth-register .auth-hint { margin-top:9px; }
  .auth-register .auth-divider { margin-block:16px 11px; }
  .auth-register-aside { min-height:0; height:100%; padding:24px 28px; border:1px solid #fff; background:linear-gradient(180deg,#fffdf8e8 0%,#fffaf1b5 47%,#e7eee0c2 100%),url('../img/auth-register-bg.jpg') center bottom/cover no-repeat; color:var(--auth-ink); box-shadow:0 22px 50px #394a2b14; }
  .auth-register-aside::before { border-color:#6c86634d; box-shadow:0 0 0 28px #6c86631c,0 0 0 58px #6c866312; }
  .auth-register-aside::after { color:var(--auth-copper); }
  .auth-register-aside .auth-leaf { width:56px; height:62px; margin-bottom:12px; filter:none; opacity:.9; }
  .auth-register-aside .auth-handwriting { margin-bottom:22px; color:#263b28; font-size:38px; }
  .auth-register-aside .auth-handwriting::after { background:var(--auth-copper); }
  .auth-register-aside ul { gap:11px; }
  .auth-register-aside li { color:#3d5140; font-size:11px; }
  .auth-register-aside i { color:#6d9459; }
  .auth-register .auth-journey { margin-block:12px 19px; font-size:25px; }
  .auth-register .auth-footer { padding-block:9px; }
}
@media (prefers-reduced-motion:reduce) { .auth-submit,.auth-submit span,.auth-back { transition:none; } }

/* Registration uses the same composition as login; only its copy and fields differ. */
.auth-register .auth-steps,
.auth-register .auth-register-aside,
.auth-register .auth-journey { display:none; }
.auth-register .auth-card::before { content:'WELLSENSE  /  YOUR HEALTH, YOUR WAY'; }
@media (min-width:901px) {
  .auth-register .auth-frame { height:auto; min-height:100vh; }
  .auth-register .auth-header { padding-block:24px; }
  .auth-register .auth-main { width:min(1180px,calc(100% - 72px)); margin:18px auto 0; display:grid; grid-template-columns:minmax(300px,.86fr) minmax(450px,1.14fr); gap:clamp(42px,7vw,110px); align-items:center; padding-bottom:58px; }
  .auth-register .auth-card-layout { display:block; align-self:start; min-width:0; }
  .auth-register .auth-card { height:auto; padding:42px 44px 28px; }
  .auth-register .auth-intro { margin-bottom:28px; }
}
@media (max-width:900px) {
  .auth-register .auth-main { display:flex; flex-direction:column; gap:20px; }
  .auth-register .auth-story { max-width:600px; padding:0; }
  .auth-register .auth-card-layout { width:100%; }
}
@media (min-width:901px) {
  .auth-frame { height:100vh; min-height:660px; }
  .auth-header { padding-block:14px; }
  .auth-main, .auth-register .auth-main { margin-top:8px; padding-bottom:22px; }
  .auth-story { padding-bottom:0; }
  .auth-story::before, .auth-card::before { margin-bottom:12px; }
  .auth-story h1 { font-size:clamp(42px,3.9vw,54px); margin-bottom:16px; }
  .auth-story>p { margin-bottom:19px; font-size:14px; }
  .auth-benefits { gap:9px; }
  .auth-benefits i { flex-basis:36px; width:36px; height:36px; font-size:16px; }
  .auth-card { padding:28px 34px 18px; }
  .auth-card h1, .auth-card h2 { font-size:clamp(30px,2.9vw,38px); }
  .auth-card-label { margin-bottom:10px; font-size:17px; }
  .auth-intro { margin-bottom:18px; font-size:14px; }
  .auth-card label { margin-bottom:9px; }
  .auth-card input:not([type='checkbox']), .auth-card select { min-height:47px; padding-block:10px; }
  .auth-phone { margin-bottom:13px; }
  .auth-submit { min-height:49px; }
  .auth-security { margin-top:13px; padding:11px 13px; }
  .auth-divider { margin-block:16px 11px; }
  .auth-switch p { margin-bottom:10px; }
  .auth-footer { padding-block:9px; }
}

/* Keep registration typography aligned with the reduced login hierarchy. */
@media (min-width:901px) {
  .auth-register .auth-story h1 { font-size:clamp(38px,3.5vw,48px); }
  .auth-register .auth-card h1 { font-size:clamp(28px,2.6vw,34px); }
  .auth-register .auth-intro { font-size:14px; }
}

/* Registration must remain naturally scrollable on shorter screens. */
.auth-register .auth-frame { height:auto; min-height:100vh; overflow-x:hidden; overflow-y:visible; }
.auth-frame { height:auto; min-height:100vh; overflow-x:hidden; overflow-y:visible; }
.auth-footer { background:#e8f1e3 !important; color:#182318 !important; }
.auth-footer a { color:#182318 !important; }

/* Login and registration use one shared heading scale and weight. */
.auth-login .auth-story h1,
.auth-register .auth-story h1 {
  font-size:clamp(42px,3.9vw,54px);
  font-weight:500;
  line-height:1.08;
}
.auth-login .auth-card h2,
.auth-register .auth-card h1 {
  font-size:clamp(30px,2.9vw,38px);
  font-weight:500;
  line-height:1.1;
}
.auth-register .auth-story h1 em { white-space:nowrap; }
@media (max-width:900px) {
  .auth-login .auth-story h1,
  .auth-register .auth-story h1 { font-size:46px; }
  .auth-login .auth-card h2,
  .auth-register .auth-card h1 { font-size:32px; }
}
@media (max-width:620px) {
  .auth-login .auth-story h1,
  .auth-register .auth-story h1 { font-size:36px; }
  .auth-login .auth-card h2,
  .auth-register .auth-card h1 { font-size:29px; }
}

.auth-login-panel { margin-top:4px; }
.auth-coach-destination { margin-top:16px; padding:18px; border:1px solid #dbe7d7; border-radius:18px; background:linear-gradient(145deg,#f8fbf6,#f2f7ef); }
.auth-coach-destination h3 { margin:0 0 6px; color:var(--auth-ink); font:500 22px/1.2 'DM Sans',Arial,sans-serif; }
.auth-coach-destination-copy { margin:0 0 15px; color:var(--auth-muted); font-size:13px; line-height:1.5; }
.auth-coach-destination .auth-login-options { gap:9px; }
.auth-coach-destination .auth-login-option { padding:12px 13px; border-color:#d4e1d0; border-radius:14px; background:#fff; text-decoration:none!important; }
.auth-coach-destination .auth-login-option:hover { border-color:#89a77e; background:#fbfdf9; box-shadow:0 6px 14px #45683a14; }
.auth-coach-destination .auth-login-option strong { color:#31552d; font-size:14px; font-weight:600; text-decoration:none; }
.auth-coach-destination .auth-login-option small { color:#748274; font-size:11px; text-decoration:none; }
.auth-confirmation-label { margin:0 0 4px; color:var(--auth-copper); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.auth-login-panel h3 { margin:0 0 6px; color:var(--auth-ink); font:500 24px/1.15 'DM Sans',Arial,sans-serif; }
.auth-login-panel>p:not(.auth-confirmation-label) { margin:0 0 17px; color:var(--auth-muted); font-size:13px; }
.auth-login-options { display:grid; gap:10px; }
.auth-login-option { display:flex; align-items:center; gap:12px; width:100%; padding:13px 14px; border:1px solid #dce6d8; border-radius:13px; background:#f8fbf6; color:var(--auth-ink); text-align:left; cursor:pointer; transition:.2s ease; }
.auth-login-option:hover { border-color:#9ab397; background:#f0f7ed; transform:translateY(-1px); }
.auth-login-option>i { display:grid; flex:0 0 35px; width:35px; height:35px; place-items:center; border-radius:50%; background:#e5efdf; color:var(--auth-olive); font-size:16px; }
.auth-login-option span { flex:1; }
.auth-login-option strong,.auth-login-option small { display:block; }
.auth-login-option strong { font-size:13px; }
.auth-login-option small { margin-top:2px; color:var(--auth-muted); font-size:11px; }
.auth-login-option>b { color:var(--auth-copper); font-size:18px; }
.auth-text-button { display:block; margin:15px auto 0; padding:3px 0; border:0; background:none; color:var(--auth-copper); font:600 12px 'DM Sans',Arial,sans-serif; text-decoration:underline; cursor:pointer; }
.auth-login-otp-copy { margin:0 0 17px; color:var(--auth-muted); font-size:13px; line-height:1.5; }
.auth-password-verified { display:flex; align-items:center; gap:8px; margin:0 0 14px; padding:10px 12px; border:1px solid #cfe0c8; border-radius:11px; background:#f1f7ee; color:#315c35; font-size:12px; font-weight:700; }
.auth-password-verified i { font-size:17px; }
.auth-password-hint { margin:-5px 0 16px; color:var(--auth-muted); font-size:10px; line-height:1.45; }
.auth-submit b { font-size:20px; font-weight:400; line-height:1; }
@media (min-width:901px) { .auth-login-options { gap:8px; } .auth-login-option { padding:10px 12px; } .auth-login-option>i { flex-basis:32px; width:32px; height:32px; } }
@media (max-width:620px) { .auth-country-picker { flex-basis:112px; width:112px; } .auth-country-trigger { min-height:51px; padding-inline:9px; font-size:12px; } .auth-country-menu { width:min(300px,calc(100vw - 48px)); } }
/* Registration has a compact footer directly below the form, so keep its
   complete country list above the phone field instead of over the actions. */
body.auth-register .auth-country-menu { top:auto; bottom:calc(100% + 8px); }

/* Keep the calling-code control compact and let the phone input fill the
   remaining width without overflowing the shared phone-field border. */
.auth-phone {
  width:100%;
  min-width:0;
  overflow:visible;
  border:0;
  border-radius:12px;
  isolation:isolate;
}
.auth-phone::after {
  content:'';
  position:absolute;
  z-index:20;
  inset:0;
  border:1px solid #d7dfd4;
  border-radius:12px;
  pointer-events:none;
}
.auth-phone:focus-within::after { border-color:#789b71; }
.auth-country-picker {
  position:relative;
  z-index:30;
  flex:0 0 96px!important;
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
  }
.auth-country-trigger {
  min-width:0;
  padding-inline:9px;
  font-size:12px;
  overflow:hidden;
  white-space:nowrap;
}
.auth-phone > input#mobile {
  width:0;
  min-width:0;
  flex:1 1 auto;
  box-sizing:border-box;
}
@media (max-width:620px) {
  .auth-country-picker {
    flex-basis:82px!important;
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
  }
  .auth-country-trigger {
    gap:4px;
    padding-inline:7px;
    font-size:11px;
  }
}

/* Required coach referral belongs to the form, with its own inline feedback. */
.auth-referral {
  margin:0 0 20px;
  padding:17px 18px;
  border:1px solid #e0e7da;
  border-radius:16px;
  background:linear-gradient(135deg,#f8faf5,#f3f7ef);
}
.auth-referral-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.auth-referral-heading h3 { margin:0; color:#304631; font:600 14px/1.3 'DM Sans',Arial,sans-serif; }
.auth-required { padding:3px 8px; border:1px solid #dde5d6; border-radius:6px; background:#fff9; color:#70816b; font-size:10px; font-weight:500; line-height:1.4; }
.auth-card .auth-referral label { margin:0 0 7px; font-size:12px; font-weight:500; color:#5d6b59; }
.auth-referral-control { display:flex; align-items:stretch; gap:8px; }
.auth-card .auth-referral-control input { flex:1; width:0; min-height:46px; margin:0; padding:11px 12px; font-size:13px; border-radius:10px; }
.auth-referral-verify { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:7px; min-width:90px; min-height:46px; padding:10px 12px; border:1px solid #cbd9c4; border-radius:10px; background:#e7efdf; color:#355631; font:600 12px/1.3 'DM Sans',Arial,sans-serif; cursor:pointer; transition:background .2s,border-color .2s; }
.auth-referral-verify:hover { background:#dce8d2; border-color:#9db58e; }
.auth-referral-verify:disabled { cursor:wait; opacity:.7; }
.auth-referral-help { margin:9px 0 0; color:#798473; font-size:11px; line-height:1.5; text-align:left; }
.auth-referral-error { margin:9px 0 0; color:#a05036; font-size:12px; line-height:1.5; }
.auth-referral.has-error .auth-referral-control input { border-color:#c48b75; }
.auth-referral-match { display:flex; align-items:flex-start; gap:11px; margin-top:13px; padding-top:13px; border-top:1px solid #dce7d4; }
.auth-referral-check { display:grid; flex:0 0 28px; width:28px; height:28px; place-items:center; border-radius:50%; background:#deecd5; color:#426b36; font-size:16px; font-weight:600; }
.auth-referral-match strong { display:block; color:#355531; font-size:13px; font-weight:600; line-height:1.5; }
.auth-referral-match p { margin:3px 0 0; color:#73826b; font-size:11px; line-height:1.5; }
.auth-referral.is-verified .auth-referral-verify { background:#f6faf2; border-color:#d3e1c9; color:#597c48; }
.auth-country-trigger { border-radius:12px 0 0 12px; }
.auth-phone > input#mobile { border-radius:0 12px 12px 0!important; }
@media (min-width:901px) {
  .auth-register .auth-card { padding:28px 32px 22px; }
  .auth-register .auth-intro { margin-bottom:20px; }
  .auth-register .auth-referral { margin-bottom:17px; padding:14px 16px; }
  .auth-register .auth-card::before { font-size:10px; letter-spacing:.17em; }
  .auth-register .auth-main { padding-bottom:30px; }
}
@media (max-width:620px) {
  .auth-referral { padding:14px; margin-bottom:18px; border-radius:13px; }
  .auth-referral-heading { margin-bottom:11px; }
  .auth-card .auth-referral-control input { padding-inline:10px; font-size:12px; }
  .auth-referral-verify { min-width:76px; padding-inline:9px; font-size:11px; }
  .auth-referral-match strong { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .auth-referral-verify { transition:none; } }
@media (max-width:360px) {
  .auth-header { gap:10px; }
  .auth-header img { width:145px; }
  .auth-back { flex-shrink:0; gap:6px; padding:8px 10px; font-size:11px; white-space:nowrap; }
}

/* One balanced desktop composition for both authentication flows. */
@media (min-width:901px) {
  .auth-page .auth-header {
    width:min(1440px,calc(100% - 96px));
    padding-block:24px;
  }
  .auth-page .auth-main {
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    align-items:center;
    align-content:center;
    gap:clamp(48px,6vw,112px);
    width:min(1320px,calc(100% - 96px));
    margin:0 auto;
    padding-block:32px 48px;
  }
  .auth-page .auth-card-layout { width:100%; max-width:640px; justify-self:end; align-self:center; }
  .auth-page .auth-story { width:100%; max-width:540px; padding:0; }
  .auth-page .auth-story h1 { max-width:540px; font-size:clamp(42px,3.5vw,60px); line-height:1.12; margin-bottom:22px; }
  .auth-page .auth-story h1 em { display:block; white-space:normal; }
  .auth-page .auth-story>p { max-width:440px; font-size:16px; line-height:1.65; margin-bottom:28px; }
  .auth-page .auth-story::before { margin-bottom:20px; font-size:11px; line-height:1.6; }
  .auth-page .auth-benefits { gap:17px; }
  .auth-page .auth-benefits i { flex-basis:42px; width:42px; height:42px; font-size:18px; }
  .auth-page .auth-benefits strong { font-size:14px; line-height:1.5; }
  .auth-page .auth-benefits span { font-size:13px; line-height:1.5; }
  .auth-page .auth-story blockquote { max-width:360px; margin-top:30px; padding:18px 22px; font-size:21px; line-height:1.4; }
  .auth-page .auth-card { padding:36px 36px 28px; }
  .auth-page .auth-card::before { margin-bottom:16px; font-size:10px; letter-spacing:.16em; line-height:1.6; }
  .auth-page .auth-card h1,.auth-page .auth-card h2 { font-size:clamp(30px,2.5vw,38px); margin-bottom:12px; }
  .auth-page .auth-intro { margin-bottom:24px; font-size:15px; }
  .auth-page .auth-card-label { margin-bottom:12px; font-size:15px; }
  .auth-page .auth-card label { font-size:13px; margin-bottom:12px; }
  .auth-page .auth-card input:not([type='checkbox']) { min-height:50px; padding-block:12px; }
  .auth-page .auth-phone { margin-bottom:18px; }
  .auth-page .auth-country-trigger { min-height:50px; }
  .auth-page .auth-submit { min-height:52px; font-size:15px; }
  .auth-page .auth-card .auth-consent { font-size:11px; margin-bottom:17px; }
  .auth-page .auth-card .auth-referral label { font-size:12px; margin-bottom:7px; }
  .auth-page .auth-referral-control input { min-height:46px; padding-block:11px; }
  .auth-page .auth-referral { padding:16px; margin-bottom:19px; }
  .auth-page .auth-divider { margin-block:22px 15px; }
  .auth-page .auth-security { margin-top:20px; padding:15px; }
  .auth-page .auth-footer { padding:14px max(48px,calc((100% - 1440px)/2)); }
}
/* Scale the content with a large display, while keeping form lines readable. */
@media (min-width:1600px) {
  .auth-page .auth-header { padding-block:30px; }
  .auth-page .auth-header img { width:245px; }
  .auth-page .auth-main { width:min(1440px,calc(100% - 160px)); padding-block:28px 40px; }
  .auth-page .auth-story h1 { font-size:clamp(60px,3.4vw,68px); max-width:600px; }
  .auth-page .auth-story { max-width:600px; }
  .auth-page .auth-story>p { max-width:470px; font-size:17px; }
  .auth-page .auth-benefits strong { font-size:15px; }
  .auth-page .auth-benefits span { font-size:14px; }
  .auth-page .auth-card { padding:42px 44px 32px; border-radius:30px; }
  .auth-page .auth-card h1,.auth-page .auth-card h2 { font-size:40px; }
  .auth-page .auth-intro { font-size:16px; margin-bottom:28px; }
  .auth-page .auth-card label { font-size:14px; }
  .auth-page .auth-card input:not([type='checkbox']) { min-height:54px; font-size:16px; }
  .auth-page .auth-country-trigger { min-height:54px; font-size:13px; }
  .auth-page .auth-submit { min-height:56px; font-size:16px; }
  .auth-page .auth-card .auth-consent { font-size:12px; }
  .auth-page .auth-card .auth-referral label { font-size:13px; }
  .auth-page .auth-referral-heading h3 { font-size:15px; }
  .auth-page .auth-referral-control input { min-height:48px; font-size:14px; }
  .auth-page .auth-referral-verify { min-width:96px; font-size:13px; }
  .auth-page .auth-referral-help,.auth-page .auth-referral-match p { font-size:12px; }
  .auth-page .auth-referral-match strong { font-size:14px; }
  .auth-page .auth-security strong { font-size:13px; }
  .auth-page .auth-security p { font-size:12px; }
  .auth-page .auth-hint { font-size:13px; }
  .auth-page .auth-switch p { font-size:14px; }
}
/* Short desktop windows should scroll from the header, without squeezing fields. */
@media (min-width:901px) and (max-height:800px) {
  .auth-page .auth-main { padding-block:20px 32px; }
  .auth-page .auth-header { padding-block:18px; }
}
@media (min-width:1600px) {
  .auth-page .auth-login-panel h3 { font-size:28px; }
  .auth-page .auth-login-panel>p:not(.auth-confirmation-label),
  .auth-page .auth-login-otp-copy { font-size:15px; }
  .auth-page .auth-login-option { padding:15px 16px; }
  .auth-page .auth-login-option strong { font-size:15px; }
  .auth-page .auth-login-option small { font-size:13px; }
  .auth-page .auth-login-option>i { flex-basis:40px; width:40px; height:40px; font-size:19px; }
  .auth-page .auth-text-button,.auth-page .auth-verify-actions button { font-size:13px; }
  .auth-page .auth-password-hint { font-size:12px; }
}
/* The password action label uses the button type scale; only its arrow is larger. */
.auth-submit #password-setup-action { font:inherit; line-height:1.3; }
.auth-submit:hover #password-setup-action { transform:none; }
.auth-page .auth-card .auth-referral .auth-coach-choice { display:flex; align-items:flex-start; gap:9px; margin:14px 0 0; padding-top:13px; border-top:1px solid #e0e7da; color:#4f6748; font-size:12px; font-weight:500; line-height:1.5; cursor:pointer; }
.auth-coach-choice input { flex:0 0 auto; width:16px; height:16px; margin:1px 0 0; accent-color:var(--auth-olive); }
.auth-coach-match-help { margin:8px 0 0 25px; color:#798473; font-size:12px; line-height:1.5; }
