
/* MEO module: password-visibility.css */
/**
 * FR - Rôle : positionne le contrôle d'affichage sans masquer le texte ni réduire la cible tactile.
 * EN - Role: position the visibility control without obscuring text or reducing its touch target.
 * FR - Données et invariants : la largeur du champ reste celle du formulaire et une réserve protège sa saisie.
 * EN - Data and invariants: the field keeps the form width and reserved space protects its entered text.
 * FR - Effets externes : les états survol, focus clavier et contraste restent visibles dans les thèmes clairs et sombres.
 * EN - External effects: hover, keyboard focus, and contrast states remain visible in light and dark themes.
 */
.password-field-control { position: relative; display: block; grid-column: 1 / -1; width: 100%; min-width: 0; }
.password-field-control > input { width: 100%; padding-inline-end: 3.5rem !important; }
.password-visibility-toggle {
  position: absolute; inset-inline-end: 2px; top: 50%; translate: 0 -50%; display: inline-grid; place-items: center;
  width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 10px !important;
  background: transparent !important; color: currentColor !important; box-shadow: none !important; cursor: pointer; z-index: 1;
}
.password-visibility-toggle:hover { background: color-mix(in srgb, currentColor 10%, transparent) !important; }
.password-visibility-toggle:focus-visible { outline: 3px solid #dff6f8 !important; outline-offset: -3px; }
.password-visibility-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 14px;
  border: 2px solid currentColor;
  border-radius: 75% 12%;
  transform: rotate(45deg);
}
.password-visibility-icon::before {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  inset: 2px auto auto 6px;
  border-radius: 50%;
  background: currentColor;
}
.password-visibility-toggle[aria-pressed="true"] .password-visibility-icon::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 28px;
  left: 8px;
  top: -9px;
  border-radius: 2px;
  background: currentColor;
  transform: rotate(-45deg);
}


/* MEO module: brand-lockup.css */
/** Canonical MEO PET TRACKER lockup. The product name is embedded once in SVG. */
.meo-lockup{max-width:100%;display:inline-grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:center;gap:3px;color:#18323c;line-height:1;text-decoration:none}
.meo-lockup>img{content:var(--brand-logo-url);display:block;width:100%;height:auto;min-width:0}
.meo-lockup-label{display:none!important}
.meo-lockup-on-dark{padding:0;border-radius:0;color:#fff;background:transparent}
.meo-lockup-on-dark>img{filter:brightness(0) invert(1)!important}
@media(forced-colors:active){.meo-lockup-label{color:CanvasText}}


/* MEO module: auth.css */
:root{--ink:#18323c;--forest:#18323c;--orange:var(--brand-primary, #6e5367);--earth-action:var(--brand-primary, #6e5367);--mint:var(--brand-primary, #6e5367);--paper:#f3f6f8;--muted:#5f6e76;--line:#d5e0e5;--white:#ffffff}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}.auth-page{min-height:100vh;display:flex;flex-direction:column}.auth-nav{height:86px;padding:18px clamp(22px,5vw,70px);display:flex;align-items:center;justify-content:space-between}.auth-logo{width:116px}.auth-logo img{display:block;width:100%}.auth-nav>a:last-child{padding:10px 14px;border-radius:12px;color:var(--forest);text-decoration:none;font-size: 16px;font-weight:700}.auth-shell{width:min(1120px,calc(100% - 40px));margin:auto;display:grid;grid-template-columns:1fr minmax(390px,470px);gap:clamp(50px,9vw,130px);align-items:center;padding:35px 0 70px}.auth-shell.compact{max-width:1000px}.auth-story{padding:20px}.kicker,.step-label{color:var(--orange);font-size: 16px;font-weight:800;letter-spacing:.14em}.auth-story h1{margin:16px 0 18px;font-size:calc(clamp(45px,6vw,75px) - 2.6667px);line-height:.95;letter-spacing:-.065em}.auth-story>p{max-width:480px;color:var(--muted);font-size: 16px;line-height:1.7}.story-points{margin-top:31px;display:grid;gap:11px;color:var(--forest);font-size: 16px;font-weight:800}.auth-card{position:relative;padding:38px;border:1px solid var(--line);border-radius:28px;background:var(--white);box-shadow:0 24px 70px rgba(24,50,60,.1)}.auth-card h2{margin:9px 0 7px;font-size:calc(30px - 2.6667px);letter-spacing:-.045em}.auth-card>p{margin:0 0 24px;color:var(--muted);font-size: 16px;line-height:1.55}.mascot{width:58px;height:58px}.mascot img{width:100%}form{display:grid;gap:15px}label{display:grid;grid-template-columns:1fr auto;gap:7px;color:var(--ink);font-size: 16px;font-weight:700}label input{grid-column:1/-1;width:100%;height:49px;padding:0 14px;border:1.5px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;font:inherit;font-size: 16px;outline:0}label input:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgb(var(--brand-primary-rgb, 53 107 112) / .1)}label a,.auth-switch a,.back-link{color:var(--forest);font-weight:700;text-decoration:none}label small{grid-column:1/-1;color:var(--muted);font-size: 16px;font-weight:500}.check{display:flex;align-items:center;color:var(--muted);font-weight:600}.check input{width:18px;height:18px;flex:0 0 auto}.auth-primary,.auth-secondary,.auth-provider{min-height:49px;border:0;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size: 16px;font-weight:800;text-decoration:none;cursor:pointer}.auth-primary{color:#fff;background:var(--earth-action)}.auth-primary:hover{color:#fff;background:var(--forest)}.auth-primary.link{margin-top:20px}.auth-secondary{margin-top:10px;border:1.5px solid var(--line);color:var(--ink);background:#fff}.auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0;color:var(--muted);font-size: 16px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.auth-methods{display:grid;grid-template-columns:1fr 1fr;gap:9px}.auth-provider{gap:9px;border:1.5px solid var(--line);color:var(--ink);background:#fff}.auth-provider:hover{border-color:var(--orange)}.auth-provider b{font-size:16px}.auth-switch{margin:22px 0 0!important;text-align:center}.auth-alert,.biometric-status{margin-bottom:14px;padding:12px 13px;border-radius:11px;color:var(--brand-primary, #6e5367);background:#e8f8fa;font-size: 16px;line-height:1.5}.biometric-status{margin:12px 0 0;color:var(--forest);background:#e7f0f4}.auth-footer{padding:20px clamp(22px,5vw,70px);display:flex;justify-content:space-between;color:#8c9691;font-size: 16px}.success-mark,.google-mark{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:var(--forest);background:var(--mint);font-size:26px;font-weight:800}.google-mark{border:1px solid var(--line);color:#4285f4;background:#fff}.provider-note{margin-top:-3px!important;color:var(--orange)!important;font-weight:700}.sso-preview{margin:18px 0;padding:16px;border-radius:15px;background:#edf2f4;display:grid;gap:7px}.sso-preview strong,.sso-preview span{display:block}.sso-preview strong{font-size: 16px}.sso-preview span{color:var(--muted);font-size: 16px}.back-link{display:inline-block;margin-bottom:20px;font-size: 16px}@media(max-width:800px){.auth-nav{height:72px}.auth-shell,.auth-shell.compact{grid-template-columns:1fr;width:min(540px,calc(100% - 28px));gap:10px;padding:10px 0 45px}.auth-story{padding:10px 8px 22px}.auth-story h1{font-size:calc(43px - 2.6667px)}.story-points{display:none}.auth-card{padding:27px}.auth-footer{display:grid;gap:6px;text-align:center}.auth-methods{grid-template-columns:1fr}}
.auth-footer{align-items:end;gap:28px;color:#6f7b7f;font-size:16px}.auth-publisher{display:grid;gap:3px;margin:0;font-style:normal;line-height:1.45}.auth-publisher>span:first-child{color:var(--earth-action);font-weight:700}.auth-publisher strong{color:var(--ink)}.auth-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px}@media(max-width:800px){.auth-footer{gap:18px;text-align:left}.auth-footer nav{justify-content:flex-start}}

/* Authentication links stay visually clean while focus and active states remain explicit. */
.auth-page a { text-decoration: none !important; }

label select{grid-column:1/-1;width:100%;height:49px;padding:0 14px;border:1.5px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;font:inherit;font-size:16px;outline:0}label select:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgb(var(--brand-primary-rgb, 53 107 112) / .1)}
.auth-sim-status{margin:0;padding:14px 15px;border-radius:14px;color:#4b5f68;background:#edf2f4;font-size:16px;line-height:1.55;font-weight:650}.auth-sim-status.is-confirmed{color:#174c3b;background:#e4f2eb}.auth-sim-status.is-local_required{color:#47565d;background:#dff6f8}

/* Calm, scannable authentication footer: brand, legal routes and launch coverage. */
.auth-footer{margin-top:34px;padding:34px clamp(28px,5vw,72px);display:grid;grid-template-columns:minmax(330px,1.35fr) minmax(180px,.55fr) minmax(260px,.8fr);align-items:start;gap:clamp(28px,5vw,72px);color:rgba(255,255,255,.68);background:#090c0d}
.auth-footer-brand{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:start;gap:24px}.auth-footer-lockup{width:132px;color:#fff}.auth-footer-lockup img{width:100%;height:auto;filter:brightness(0) invert(1)}
.auth-publisher{gap:2px;color:rgba(255,255,255,.62)}.auth-publisher>span:first-child{color:var(--orange)}.auth-publisher strong{color:#fff}
.auth-footer-links,.auth-footer-coverage{display:grid;align-content:start;gap:13px}.auth-footer-links>strong,.auth-footer-coverage>strong{color:var(--brand-primary, #6e5367);font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.auth-footer nav{display:grid;justify-content:start;gap:10px}.auth-footer a{color:rgba(255,255,255,.75);font-weight:750}.auth-footer a:hover{color:#fff}.auth-footer-coverage span{max-width:280px;line-height:1.55}
.auth-scroll-top{position:fixed;z-index:169;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:48px;height:48px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--earth-action);box-shadow:0 14px 36px rgba(9,12,13,.24);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease,background .18s ease}.auth-scroll-top.is-visible{opacity:1;pointer-events:auto;transform:none}.auth-scroll-top:hover{background:var(--forest)}.auth-scroll-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.auth-page .auth-nav .public-usability-fab{position:static;min-height:44px;padding-inline:11px;border-radius:13px;color:var(--ink);background:var(--white);box-shadow:0 7px 20px rgba(16,45,58,.1);transform:none}
.auth-page .auth-nav .public-usability-fab img{filter:none}.auth-page.is-footer-visible .auth-scroll-top{opacity:0;pointer-events:none;transform:translateY(12px)}
@media(max-width:960px){.auth-footer{grid-template-columns:1fr 1fr}.auth-footer-brand{grid-column:1/-1}}
@media(max-width:620px){.auth-footer{padding:30px 24px calc(34px + env(safe-area-inset-bottom));grid-template-columns:1fr;gap:28px}.auth-footer-brand{grid-column:1;grid-template-columns:104px 1fr;gap:18px}.auth-footer-lockup{width:104px}.auth-footer-links,.auth-footer-coverage{padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}.auth-scroll-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}}

/* First-party modern authentication. All icons, scripts and fonts are local. */
.auth-provider-stack{display:grid;gap:10px}.auth-provider-wide{width:100%}.auth-provider img{width:21px;height:21px;object-fit:contain}.auth-provider.auth-passkey-provider img{width:20px;height:20px}.auth-modern-divider{margin:16px 0}.auth-modern-divider span{white-space:nowrap}.biometric-status:empty{display:none}.google-country-card{display:grid;gap:18px}.google-identity{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px;padding:13px;border-radius:16px;background:#edf2f4}.google-identity-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--forest);font-weight:800}.google-identity strong,.google-identity span{display:block}.google-identity span{margin-top:2px;color:var(--muted);overflow-wrap:break-word}.passkey-card{display:grid;gap:18px}.passkey-shield{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#e7f0f4}.passkey-shield img{width:27px;height:27px}.passkey-list{display:grid;gap:9px}.passkey-list article{padding:14px;border-radius:14px;background:#edf2f4;display:flex;justify-content:space-between;gap:16px}.passkey-list article span{color:var(--muted)}
@media(max-width:620px){.passkey-list article{display:grid;gap:4px}}
.google-profile-summary{margin:0 0 4px;padding:15px 17px;border:1px solid var(--line);border-radius:16px;background:#edf2f4}.google-profile-summary header{margin-bottom:11px;color:#267052;font-size:16px}.google-profile-summary dl{margin:0;display:grid;gap:9px}.google-profile-summary dl>div{display:grid;grid-template-columns:minmax(82px,.32fr) minmax(0,1fr);gap:14px;align-items:baseline}.google-profile-summary dt{color:var(--muted);font-weight:750}.google-profile-summary dd{min-width:0;margin:0;color:var(--ink);font-weight:700;overflow-wrap:break-word}@media(max-width:420px){.google-profile-summary dl>div{grid-template-columns:1fr;gap:2px}}

/* Login hierarchy: one primary route, then two real alternatives. */
main.auth-shell[tabindex="-1"]:focus{outline:0}.auth-modern-methods{display:grid;grid-template-columns:1fr;gap:10px}.auth-modern-methods .auth-provider{width:100%;min-width:0;padding:11px 16px;text-align:center;line-height:1.25}.auth-modern-methods .biometric-status{margin:2px 0 0}.auth-email-primary{padding:18px;border-radius:18px;background:color-mix(in srgb,var(--paper) 70%,var(--white))}.auth-password-fallback{margin-top:2px}.auth-password-fallback summary{min-height:49px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;display:flex;align-items:center;cursor:pointer;font-weight:700}.auth-password-fallback summary::before{content:'›';margin-right:9px;transition:transform .16s ease}.auth-password-fallback[open] summary::before{transform:rotate(90deg)}.auth-password-fallback form{margin-top:14px;padding:16px;border-radius:16px;background:var(--paper)}
@media(max-width:359px){.auth-card{padding:20px}.auth-modern-methods .auth-provider{font-size:16px}.auth-email-primary{padding:14px}}
@media(min-width:360px) and (max-width:479px){.auth-card{padding:24px}.auth-email-primary{padding:15px}}
@media(min-width:480px) and (max-width:719px){.auth-card{padding:30px}.auth-shell{max-width:600px}}
@media(min-width:720px) and (max-width:899px){.auth-shell{grid-template-columns:1fr;max-width:660px}.auth-story{padding-bottom:6px}.story-points{grid-template-columns:repeat(3,1fr);font-size:16px}}
@media(min-width:900px) and (max-width:1199px){.auth-shell{width:min(1040px,calc(100% - 48px));grid-template-columns:minmax(0,1fr) minmax(390px,450px);gap:54px}}
@media(min-width:1200px) and (max-width:1439px){.auth-shell{width:min(1160px,calc(100% - 64px));gap:78px}.auth-card{padding:40px}}
@media(min-width:1440px){.auth-shell{width:min(1240px,calc(100% - 80px));grid-template-columns:minmax(0,1fr) 480px;gap:96px}.auth-card{padding:42px}.auth-story h1{max-width:720px}}

.auth-submit-with-help{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px;align-items:center}.auth-context-help{width:44px;height:44px;padding:0;border:0;border-radius:50%;display:inline-grid;place-items:center;color:#fff;background:#050505;font:900 21px/1 system-ui,sans-serif;cursor:pointer}.auth-context-help img{display:block;width:24px;height:24px}.auth-context-help:hover,.auth-context-help:focus-visible{background:#18323c;outline:3px solid rgba(24,50,60,.24);outline-offset:3px}.auth-private-email .auth-context-help{vertical-align:middle;margin-left:6px}.auth-help-dialog{width:min(480px,calc(100vw - 32px));padding:0;border:0;border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.auth-help-dialog::backdrop{background:rgba(10,24,30,.56);backdrop-filter:blur(3px)}.auth-help-dialog-body{position:relative;padding:30px}.auth-help-dialog-body h2{margin:0 34px 10px 0;color:var(--ink);font-size:calc(26px - 2.6667px)}.auth-help-dialog-body p{margin:0 0 22px;color:var(--muted);line-height:1.6}.auth-help-dialog-body .auth-primary{width:100%}.auth-help-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border:0;border-radius:50%;color:#fff;background:#050505;font-size:24px;line-height:1;cursor:pointer}.auth-help-close:focus-visible{outline:3px solid rgba(24,50,60,.28);outline-offset:3px}
/* Guided subscription checkout. */
.auth-operator-cancel{margin:0;text-align:center}.auth-link-button{appearance:none;border:0;background:transparent;color:var(--forest);cursor:pointer;font:inherit;font-weight:700;padding:.65rem .8rem}.auth-link-button:hover,.auth-link-button:focus-visible{color:var(--earth-action)}
/* Guided subscription checkout. */
.checkout-price-summary{margin:18px 0;padding:20px;border-radius:18px;background:#edf3f5;display:grid;gap:6px}.checkout-price-summary span{font-weight:700}.checkout-price-summary strong{font-size:clamp(34px,6vw,52px);letter-spacing:-.05em}.checkout-price-summary small{color:var(--muted);font-size:16px;line-height:1.5}.checkout-reassurance{margin:0 0 22px;padding:0;list-style:none;display:grid;gap:9px;color:var(--muted)}.checkout-reassurance li{position:relative;padding-left:25px;line-height:1.45}.checkout-reassurance li:before{content:'✓';position:absolute;left:0;color:#267052;font-weight:800}
.auth-submit-with-help{grid-template-columns:minmax(0,1fr) 36px}.auth-context-help{width:33px;height:33px;font-size:35px}
.auth-login-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 16px;padding:5px;border:1px solid var(--line);border-radius:15px;background:var(--paper)}.auth-login-tab{min-height:42px;padding:8px 7px;border:0;border-radius:11px;color:var(--muted);background:transparent;font:800 15px/1.15 inherit;cursor:pointer}.auth-login-tab.is-active{color:var(--ink);background:#fff;box-shadow:0 3px 12px rgba(24,50,60,.1)}.auth-login-tab:focus-visible{outline:3px solid rgb(var(--brand-primary-rgb, 53 107 112) / .35);outline-offset:2px}.auth-login-panel[hidden]{display:none}.auth-panel-lead{margin:0 0 12px!important;color:var(--muted);font-size:16px;line-height:1.45}.auth-password-form{padding:16px;border-radius:16px;background:var(--paper)}
@media(max-width:430px){.auth-login-tab{font-size:16px;padding-inline:4px}.auth-login-tabs{gap:3px}}
.auth-login-tab{display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 4px;line-height:.95;white-space:normal}.auth-login-tab img{width:18px;height:18px}.auth-tab-google{font:950 18px/1 Arial,sans-serif;color:#4285f4}.auth-tab-password{font:950 12px/1 Arial,sans-serif;letter-spacing:1px}
.auth-login-tab.is-active img{filter:brightness(0) invert(1)}.auth-login-tab.is-active .auth-tab-google,.auth-login-tab.is-active .auth-tab-password{color:#fff}
.auth-context-help{background:#eef3f4!important;color:#18323c!important;border:1px solid rgba(24,50,60,.28)!important;box-shadow:none!important}.auth-context-help{width:27px!important;height:27px!important;font-size:32px!important;line-height:.72!important}
@media(min-width:900px){.auth-shell{width:min(1320px,calc(100% - 64px));grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:clamp(34px,5vw,72px)}.auth-card{padding:44px 48px}.auth-story{padding:24px 10px 24px 0}}
@media(min-width:720px) and (max-width:899px){.auth-shell{width:min(720px,calc(100% - 40px));grid-template-columns:1fr;gap:28px;padding:24px 0 54px}.auth-story{text-align:center;padding:18px 16px 4px}.auth-story h1{max-width:620px;margin-inline:auto}.auth-story>p{margin-inline:auto;max-width:620px}.story-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.story-points span{display:flex;justify-content:center;text-align:center}.auth-card{width:100%;padding:32px;border-radius:24px}}
.auth-login-tabs{position:relative;gap:4px;margin:2px 0 22px;padding:4px;border:1px solid color-mix(in srgb,var(--line) 82%,var(--forest));border-radius:16px;background:color-mix(in srgb,var(--paper) 72%,var(--white));box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.auth-login-tab{position:relative;min-height:40px;border-radius:12px;color:var(--muted);font-weight:700;font-size:16px;line-height:.86;transition:color .16s ease,background .16s ease,box-shadow .16s ease;white-space:nowrap}.auth-login-tab.is-active{color:#fff;background:var(--earth-action);box-shadow:0 7px 18px rgb(var(--brand-primary-rgb, 53 107 112) / .22)}.auth-login-tab:not(.is-active):hover{color:var(--ink);background:rgba(255,255,255,.72)}.auth-login-panel{animation:auth-panel-in .16s ease-out}@keyframes auth-panel-in{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:899px){.auth-shell{width:min(720px,calc(100% - 32px))}}
@media(max-width:520px){.auth-login-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.auth-login-tab{min-height:44px;white-space:normal;font-size:16px;line-height:.86}}
/* Canonical contextual help: compact black circular control. */
.auth-submit-with-help{grid-template-columns:minmax(0,1fr) 44px;gap:12px}
.auth-context-help{position:relative;width:40px!important;height:40px!important;min-width:40px!important;padding:0!important;border:0!important;border-radius:50%!important;display:grid!important;place-items:center;background:#111!important;color:#fff!important;box-shadow:0 6px 16px rgba(17,17,17,.16)!important;cursor:pointer;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}
.auth-context-help img{display:block!important;width:20px!important;height:20px!important;filter:brightness(0) invert(1)!important}
.auth-context-help:hover{background:#2a2a2a!important;transform:translateY(-1px);box-shadow:0 9px 22px rgba(17,17,17,.2)!important}
.auth-context-help:focus-visible{outline:3px solid rgb(var(--brand-primary-rgb, 53 107 112) / .28)!important;outline-offset:3px}
:root[data-theme="dark"] .auth-context-help{background:#050505!important;color:#fff!important}
.auth-card h2{font-size:calc(26px - 2.6667px)}
.auth-card>p{font-size:16px}
@media(min-width:900px){.auth-card{padding:52px 60px}.auth-login-tab{font-size:16px}}
/* Reserve one stable content window so switching methods never repositions the card. */
.auth-login-panel{min-height:350px;display:flex;flex-direction:column;justify-content:flex-start}
.auth-login-panel[hidden]{display:none}
.auth-login-panel>form,.auth-login-panel>.auth-modern-methods{width:100%}
.checkout-order-summary{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--blue) 7%,var(--white))}.checkout-order-summary h2{margin:6px 0 14px}.checkout-order-summary dl{margin:0;display:grid;gap:9px}.checkout-order-summary dl>div{display:flex;align-items:center;justify-content:space-between;gap:18px}.checkout-order-summary dt{color:var(--muted)}.checkout-order-summary dd{margin:0;font-weight:800}.checkout-order-summary .checkout-order-total{margin-top:5px;padding-top:12px;border-top:1px solid var(--line);font-size:18px}.checkout-order-summary .auth-secondary{margin:14px 0 0}

/* Canonical trust surface: shared visual rhythm with the public site and app. */
:root{--shadow-soft:0 10px 30px rgba(16,45,58,.07),0 2px 8px rgba(16,45,58,.035);--shadow-raised:0 24px 64px rgba(16,45,58,.12),0 4px 14px rgba(16,45,58,.05)}
.auth-page{background:linear-gradient(180deg,#f8fafb 0,var(--paper) 520px);text-rendering:optimizeLegibility}
.auth-nav{border-bottom:1px solid rgba(24,50,60,.07);background:rgba(255,255,255,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.auth-card{border-color:rgba(24,50,60,.11);box-shadow:var(--shadow-raised)}
.auth-primary,.auth-provider,.auth-secondary,.auth-login-tab{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
.auth-primary:hover,.auth-provider:hover,.auth-secondary:hover{transform:translateY(-1px)}
.auth-primary:active,.auth-provider:active,.auth-secondary:active{transform:translateY(0)}
.auth-brand-navigation{display:flex;align-items:center;gap:22px}.auth-back-to-site{min-height:40px;padding:0 12px;border-radius:11px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:16px;font-weight:650;text-decoration:none;transition:color .16s ease,background-color .16s ease}.auth-back-to-site:hover{color:var(--ink);background:#edf4f6}.auth-back-to-site:focus-visible{outline:3px solid rgb(var(--brand-primary-rgb, 53 107 112) / .28);outline-offset:2px}@media(max-width:620px){.auth-brand-navigation{gap:10px}.auth-back-to-site{padding-inline:8px;font-size:16px}.auth-back-to-site span{display:none}}

/* Fluid authentication layout: readable from narrow tablets to wide desktops. */
:root{--auth-text:clamp(.9375rem,.91rem + .12vw,1rem);--auth-small:clamp(.8125rem,.79rem + .1vw,.9rem);--auth-title:clamp(2.35rem,2rem + 2vw,3.75rem)}
.auth-page{font-size:var(--auth-text)}
.auth-nav{min-height:5.25rem;height:auto;padding:1rem clamp(1rem,4vw,4.5rem);gap:1rem}
.auth-logo{width:clamp(6.5rem,8vw,8.25rem)}
.auth-back-to-site{min-height:2.5rem;padding-inline:.75rem;font-size:var(--auth-small);font-weight:600}
.auth-shell{width:min(70rem,calc(100% - clamp(2rem,5vw,4rem)));grid-template-columns:minmax(20rem,.85fr) minmax(25rem,1.15fr);gap:clamp(2.5rem,5.5vw,5rem);padding:clamp(2.5rem,5vw,4rem) 0}
.auth-story{padding:clamp(.5rem,2vw,1.5rem)}
.auth-story h1{font-size:calc(var(--auth-title) - 2.6667px);font-weight:700;line-height:.98;letter-spacing:-.055em;text-wrap:balance}
.kicker,.step-label{font-size:var(--auth-small);font-weight:700}
.auth-story>p,.story-points,.auth-card>p,.auth-panel-lead,label,label input,label select,.auth-primary,.auth-secondary,.auth-provider,.auth-switch{font-size:var(--auth-text)}
.story-points{font-weight:650}
.auth-card{width:100%;max-width:36.5rem;min-width:0;justify-self:end;padding:clamp(1.75rem,3vw,2.5rem);border-radius:clamp(1.25rem,2vw,1.75rem);container-type:inline-size}
.auth-card h2{font-size:calc(clamp(1.45rem,1.25rem + .7vw,1.9rem) - 2.6667px);font-weight:700;line-height:1.15;text-wrap:balance}
.auth-login-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem;margin-bottom:1.25rem;padding:.3rem;border-radius:1rem}
.auth-login-tab{min-width:0;min-height:3rem;padding:.65rem .75rem;gap:.45rem;font-size:clamp(.8125rem,.78rem + .12vw,.9375rem);font-weight:650;line-height:1.2;white-space:normal;text-align:center;overflow-wrap:break-word}
.auth-login-tab img{width:1.125rem;height:1.125rem;flex:0 0 1.125rem}
.auth-primary,.auth-secondary,.auth-provider{min-height:3.125rem;font-weight:700}
.auth-login-panel{min-height:clamp(14.5rem,24vh,17.5rem)}
.auth-email-primary,.auth-password-form{padding:clamp(.875rem,2vw,1.125rem)}
@media(max-width:55.99rem){.auth-shell{grid-template-columns:1fr;width:min(36.5rem,calc(100% - 2rem));gap:1.5rem}.auth-story{text-align:center}.auth-story>p{margin-inline:auto}.story-points{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-card{width:100%;justify-self:center}}
@media(max-width:47.99rem){.auth-nav{align-items:flex-start;flex-wrap:wrap}.auth-nav-actions{margin-left:auto}.auth-story h1{font-size:calc(clamp(2.25rem,9vw,3.5rem) - 2.6667px)}.story-points{display:none}.auth-login-panel{min-height:17rem}}
@media(max-width:35rem){.auth-brand-navigation{width:100%;justify-content:space-between}.auth-nav-actions{width:100%;justify-content:flex-end}.auth-back-to-site span{display:inline}.auth-shell{width:calc(100% - 1.25rem)}.auth-card{padding:1.25rem}.auth-login-tab{min-height:2.875rem}.auth-submit-with-help{grid-template-columns:minmax(0,1fr) 2.75rem;gap:.5rem}}

/* Authentication uses the same calm preference dock as the marketing site.
   Regional and display choices no longer compete with the sign-in action. */
.auth-nav-help{min-height:2.75rem;padding:0 .85rem;border-radius:.75rem;display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);background:var(--white);box-shadow:0 .35rem 1.2rem rgba(16,45,58,.08);font-size:var(--auth-small);font-weight:650;text-decoration:none}
.auth-nav-help:hover{background:#edf4f6}.auth-nav-help:focus-visible{outline:.1875rem solid rgb(var(--brand-primary-rgb,53 107 112)/.28);outline-offset:.125rem}.auth-nav-help img{width:1.125rem;height:1.125rem}
.auth-preferences-dock{position:fixed;z-index:169;right:max(1.125rem,env(safe-area-inset-right));bottom:max(1.125rem,env(safe-area-inset-bottom));width:auto;max-width:calc(100vw - 2.25rem);min-height:4.125rem;padding:.5rem;border:1px solid rgba(24,50,60,.12);border-radius:1.25rem;display:grid;grid-template-columns:minmax(7.875rem,1fr) minmax(5.75rem,auto) minmax(9.375rem,auto) 2.75rem 2.75rem;gap:.4375rem;align-items:end;color:var(--ink);background:rgba(255,255,255,.96);box-shadow:0 1.125rem 3rem rgba(16,45,58,.16);backdrop-filter:blur(1.125rem);-webkit-backdrop-filter:blur(1.125rem)}
.auth-preference-field{min-width:0;display:grid;gap:.1875rem}.auth-preference-field>span{padding-inline:.4375rem;color:var(--muted);font-size:.6875rem;font-weight:650;line-height:1;letter-spacing:.055em;text-transform:uppercase}
.auth-preferences-dock :is(.auth-market,.language-picker){width:100%;height:2.75rem;border:0;border-radius:.75rem;background:#f3f6f8;box-shadow:none}
.auth-market{display:flex;align-items:center;overflow:hidden}.auth-market select{min-width:0;width:100%;height:2.75rem;padding:0 .45rem;border:0;color:var(--ink);background:transparent;font:650 .8125rem/1.2 inherit}.auth-market button{width:2rem;height:2.75rem;padding:0;border:0;color:var(--ink);background:transparent;font:inherit;font-weight:650;cursor:pointer}
.auth-preferences-dock .language-picker.is-enhanced{height:2.75rem;background:transparent}.auth-preferences-dock .language-picker.is-enhanced .language-picker-trigger{width:100%;min-width:5.75rem;height:2.75rem;border:0;border-radius:.75rem;background:#f3f6f8;box-shadow:none;font-size:.8125rem;font-weight:650}
.auth-preference-brand select{width:100%;height:2.75rem;padding:0 1.875rem 0 .625rem;border:0;border-radius:.75rem;color:var(--ink);background:#f3f6f8;font:inherit;font-size:.75rem;font-weight:620}
.auth-preference-action{width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem!important;padding:0!important;border:0!important;border-radius:.75rem!important;display:grid!important;place-items:center;color:var(--ink)!important;background:#f3f6f8!important;box-shadow:none!important;transform:none!important;cursor:pointer}.auth-preference-action:hover{background:color-mix(in srgb,var(--brand-primary) 13%,#f3f6f8)!important}.auth-preference-action b{font-size:1rem!important;font-weight:650;letter-spacing:-.04em}
.auth-preferences-dock .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
:root[data-theme="dark"] .auth-preferences-dock{border-color:rgba(255,255,255,.12);background:rgba(23,35,41,.96);box-shadow:0 1.125rem 3rem rgba(0,0,0,.3)}
:root[data-theme="dark"] .auth-preferences-dock :is(.auth-market,.language-picker),:root[data-theme="dark"] .auth-preferences-dock .language-picker.is-enhanced .language-picker-trigger,:root[data-theme="dark"] .auth-preference-brand select,:root[data-theme="dark"] .auth-preference-action{color:var(--ink)!important;background:#223138!important}
.auth-scroll-top{right:max(1.125rem,env(safe-area-inset-right));bottom:calc(6.125rem + env(safe-area-inset-bottom))}.auth-footer{padding-bottom:calc(2.125rem + 5.75rem + env(safe-area-inset-bottom))}.auth-page:has(.auth-cookie-banner:not([hidden])) .auth-preferences-dock{opacity:0;pointer-events:none;transform:translateY(.5rem)}
@media(max-width:47.99rem){.auth-nav{min-height:4.75rem;align-items:center;flex-wrap:nowrap}.auth-brand-navigation{min-width:0}.auth-nav-help span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.auth-nav-help{width:2.75rem;min-width:2.75rem;padding:0;display:grid;place-items:center}.auth-preferences-dock{right:max(.75rem,env(safe-area-inset-right));bottom:calc(.75rem + env(safe-area-inset-bottom));grid-template-columns:minmax(7.5rem,1fr) minmax(5.5rem,.8fr) minmax(8.75rem,1fr) 2.625rem 2.625rem}.auth-scroll-top{right:max(.875rem,env(safe-area-inset-right));bottom:calc(5.875rem + env(safe-area-inset-bottom))}}
@media(max-width:35rem){.auth-nav{min-height:4.5rem;padding-block:.75rem}.auth-brand-navigation{width:auto;justify-content:flex-start}.auth-back-to-site{white-space:nowrap}.auth-preferences-dock{right:max(.5rem,env(safe-area-inset-right));left:max(.5rem,env(safe-area-inset-left));max-width:none;min-height:8rem;padding:.4375rem;grid-template-columns:minmax(0,1fr) minmax(0,.82fr) 2.625rem 2.625rem;gap:.3125rem;border-radius:1.0625rem}.auth-preference-market{grid-column:1/3}.auth-preference-language{grid-column:3/5}.auth-preference-brand{grid-column:1/3;grid-row:2}.auth-preference-field>span{padding-inline:.3125rem;font-size:.625rem}.auth-market select,.auth-preferences-dock .language-picker.is-enhanced .language-picker-trigger{font-size:.75rem}.auth-preference-brand select{height:2.625rem;font-size:.6875rem}.auth-preference-action{width:2.625rem;min-width:2.625rem;height:2.625rem;min-height:2.625rem!important;align-self:end}.auth-footer{padding-bottom:calc(2.125rem + 9.25rem + env(safe-area-inset-bottom))}.auth-scroll-top{bottom:calc(9.875rem + env(safe-area-inset-bottom))}}
@media(max-width:26rem){.auth-back-to-site{width:2.5rem;min-width:2.5rem;padding:0;display:grid;place-items:center;font-size:0}.auth-back-to-site span{display:block;font-size:1rem}.auth-nav-help{width:2.5rem;min-width:2.5rem}.auth-logo{width:5.5rem}}

/* Keep focused controls and the end of each auth form clear of the floating dock. */
html:has(.auth-preferences-dock){scroll-padding-bottom:7rem}
.auth-card :is(input,select,button,a){scroll-margin-bottom:7rem}
.auth-login-tabs.auth-login-tabs-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.auth-page-ufoundme{--brand-primary:#ff704d;--brand-primary-rgb:255 112 77;--earth-action:#171327;--forest:#171327;--ink:#171327;--paper:#fbfaf7;--line:#e6e1dc;background:linear-gradient(140deg,#fffaf4,#f3edff)}
.auth-logo.auth-logo-ufoundme{width:clamp(8.5rem,12vw,11rem)}.auth-logo-ufoundme img{width:100%;height:auto;display:block}
.auth-page-ufoundme .auth-card{box-shadow:0 28px 75px rgba(23,19,39,.13)}
.auth-page-ufoundme .auth-login-tab.is-active{background:linear-gradient(135deg,#ff704d,#d542b2)}
.auth-page-ufoundme .registration-shell{min-height:calc(100svh - 86px);align-items:center;padding-block:clamp(1.5rem,4vh,3rem)}
.auth-page-ufoundme .registration-illustration{display:none}.auth-page-ufoundme .registration-card{max-width:34rem}
.ufm-registration-form{gap:1rem}.ufm-registration-consent{margin-top:.25rem;padding:.85rem;border-radius:.85rem;background:#f7f3ef}.ufm-registration-consent a{margin-left:.25rem}

/* UFoundMe! authentication: the shared identity engine gets its own FUB world. */
.auth-page-ufoundme{--ufm-coral:#ff704d;--ufm-pink:#d542b2;--ufm-blue:#2979c7;position:relative;isolation:isolate;background:radial-gradient(circle at 9% 18%,#ffd2a8 0 9%,transparent 28%),radial-gradient(circle at 88% 28%,#ecccf8 0 11%,transparent 31%),linear-gradient(142deg,#fff9ee 0,#fff 48%,#f2edff 100%)}
.auth-page-ufoundme::before{position:fixed;inset:0;z-index:-1;background:linear-gradient(120deg,#ffffff00 30%,#ff704d0c 30% 58%,#d542b20c 58%);content:'';pointer-events:none}
.auth-page-ufoundme .auth-nav{border-bottom-color:#ff704d20;background:#fffaf1d9}.auth-page-ufoundme .auth-shell{max-width:76rem;grid-template-columns:minmax(23rem,1.05fr) minmax(25rem,.95fr);gap:clamp(2.5rem,6vw,6rem)}
.auth-page-ufoundme .auth-story{position:relative}.auth-page-ufoundme .auth-story h1{max-width:36rem;color:#171327}.auth-page-ufoundme .auth-story h1::first-line{color:var(--ufm-coral)}.auth-page-ufoundme .kicker,.auth-page-ufoundme .step-label{color:var(--ufm-pink)}
.auth-page-ufoundme .story-points{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.auth-page-ufoundme .story-points>span{min-height:3.25rem;padding:.65rem .75rem;display:flex;align-items:center;border:1px solid #17132710;border-radius:1rem;background:#ffffffb8;font-size:.78rem;box-shadow:0 .6rem 1.8rem #1713270a}.auth-page-ufoundme .register-points>span{gap:.5rem}
.auth-page-ufoundme .auth-card{overflow:hidden;border:1px solid #ff704d30;border-radius:2rem;background:#fffdfbe8;box-shadow:0 2rem 5rem #592a4e20;backdrop-filter:blur(1rem)}.auth-page-ufoundme .auth-card::before{height:.42rem;position:absolute;inset:0 0 auto;background:linear-gradient(90deg,var(--ufm-coral),#ffae57,var(--ufm-pink));content:''}.auth-page-ufoundme .auth-card h2{color:#171327}.auth-page-ufoundme .auth-card input{border-color:#dacfd6;background:#fff}.auth-page-ufoundme .auth-card input:focus{border-color:var(--ufm-coral);box-shadow:0 0 0 4px #ff704d1c}.auth-page-ufoundme .auth-primary{background:linear-gradient(135deg,var(--ufm-coral),#ee546e 55%,var(--ufm-pink));box-shadow:0 .75rem 1.8rem #d542b228}.auth-page-ufoundme .auth-primary:hover{background:linear-gradient(135deg,#f65e3b,#c82da0)}.auth-page-ufoundme .auth-secondary,.auth-page-ufoundme .auth-provider{border-color:#d9ced7;background:#fffaf7}.auth-page-ufoundme .auth-switch a{color:#b62b91}.auth-page-ufoundme .ufm-registration-consent,.auth-page-ufoundme .auth-trust-note{background:#fff3ea}
.ufm-auth-mark{width:3.4rem;height:3.4rem;padding:.85rem;display:grid;place-items:center;border-radius:1.15rem;background:linear-gradient(135deg,#ffd36f,var(--ufm-coral));transform:rotate(-5deg)}.ufm-auth-mark img{width:100%;height:100%;filter:brightness(0) invert(1)}
.auth-page-ufoundme .auth-footer-ufoundme{background:#171327}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-brand{grid-template-columns:11rem minmax(0,1fr);align-items:center}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-brand p{margin:0;color:#c6c0ce}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-lockup{width:11rem}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-links>strong,.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-coverage>strong{color:#ff8a69}
.ufm-auth-scene{height:17rem;margin-top:1.25rem;position:relative;overflow:hidden;border-radius:2rem;background:linear-gradient(145deg,#ffcc6f,var(--ufm-coral) 54%,var(--ufm-pink));box-shadow:0 1.6rem 3.5rem #8b39512b}.ufm-auth-scene::before{position:absolute;inset:-15%;background:#ffffff22;content:'';-webkit-mask:url('/assets/icons/fa-paw.svg') 0 0/4.6rem 4.6rem;mask:url('/assets/icons/fa-paw.svg') 0 0/4.6rem 4.6rem;transform:rotate(-11deg);opacity:.65}.ufm-auth-orbit{position:absolute;border:1px solid #ffffff55;border-radius:50%}.ufm-auth-orbit.orbit-one{width:15rem;height:15rem;right:-3rem;top:-5rem}.ufm-auth-orbit.orbit-two{width:10rem;height:10rem;left:-2rem;bottom:-5rem}
.ufm-auth-phone{width:10.4rem;min-height:15.6rem;left:50%;bottom:-2rem;position:absolute;padding:.75rem .65rem 1rem;border:.42rem solid #171327;border-radius:2rem;color:#171327;background:#fff;text-align:center;transform:translateX(-50%) rotate(3deg);box-shadow:0 1rem 2.5rem #17132738}.ufm-auth-phone>i{width:3.6rem;height:.7rem;top:0;left:50%;position:absolute;border-radius:0 0 .6rem .6rem;background:#171327;transform:translateX(-50%)}.ufm-auth-phone>img{width:5.1rem;height:5.1rem;margin:.8rem auto .35rem;display:block;border:.3rem solid #ffd6b5;border-radius:50%;object-fit:cover}.ufm-auth-phone small,.ufm-auth-phone span{display:block;font-size:.5rem}.ufm-auth-phone strong{display:block;font-size:1.25rem}.ufm-auth-phone b{margin-top:.5rem;padding:.4rem .5rem;display:block;border-radius:.7rem;color:#fff;background:#171327;font-size:.5rem}.ufm-auth-badge{width:4.3rem;right:12%;bottom:1.1rem;position:absolute;filter:drop-shadow(0 .7rem 1rem #17132745);transform:rotate(-12deg)}
@media(max-width:55.99rem){.auth-page-ufoundme .auth-shell{grid-template-columns:1fr}.ufm-auth-scene{max-width:32rem;margin-inline:auto}.auth-page-ufoundme .story-points{max-width:32rem;margin-inline:auto;margin-top:1.2rem}}
@media(max-width:47.99rem){.ufm-auth-scene{height:13rem}.ufm-auth-phone{width:8.4rem;min-height:12rem}.ufm-auth-phone>img{width:3.8rem;height:3.8rem}.ufm-auth-badge{width:3.5rem}.auth-page-ufoundme .auth-story{padding-bottom:0}.auth-page-ufoundme .auth-story>p{margin-bottom:.75rem}}
@media(max-width:35rem){.auth-page-ufoundme .auth-story h1{font-size:2.45rem}.auth-page-ufoundme .story-points{display:none}.ufm-auth-scene{height:10.5rem;margin-top:.75rem;border-radius:1.5rem}.ufm-auth-phone{width:7rem;min-height:10rem;bottom:-2.3rem}.ufm-auth-phone>img{width:3rem;height:3rem;margin-top:.55rem}.ufm-auth-phone b{display:none}.ufm-auth-badge{right:7%;width:2.8rem}.auth-page-ufoundme .auth-card{border-radius:1.5rem}}
@media(max-width:47.99rem){.auth-shell{padding-bottom:7.5rem}}
@media(max-width:35rem){html:has(.auth-preferences-dock){scroll-padding-bottom:10rem}.auth-shell{padding-bottom:10.5rem}.auth-card :is(input,select,button,a){scroll-margin-bottom:10rem}}
@media(max-width:64rem){.auth-preferences-dock{right:max(.75rem,env(safe-area-inset-right));left:max(.75rem,env(safe-area-inset-left));bottom:calc(.75rem + env(safe-area-inset-bottom));width:auto;max-width:none;min-height:8rem;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:auto auto;gap:.375rem}.auth-preference-market{grid-column:1/3}.auth-preference-language{grid-column:3/5}.auth-preference-brand{grid-column:5/7}.auth-preferences-dock .theme-toggle{grid-column:1/4;grid-row:2;width:100%}.auth-preferences-dock .usability-toggle{grid-column:4/7;grid-row:2;width:100%}.auth-footer{padding-bottom:calc(2.125rem + 9.25rem + env(safe-area-inset-bottom))}.auth-scroll-top{bottom:calc(9.875rem + env(safe-area-inset-bottom))}html:has(.auth-preferences-dock){scroll-padding-bottom:10rem}.auth-shell{padding-bottom:10.5rem}.auth-card :is(input,select,button,a){scroll-margin-bottom:10rem}}
@media(max-width:35rem){.auth-preferences-dock{right:max(.5rem,env(safe-area-inset-right));left:max(.5rem,env(safe-area-inset-left));grid-template-columns:minmax(0,1fr) minmax(0,.82fr) 2.625rem 2.625rem}.auth-preference-market{grid-column:1/3}.auth-preference-language{grid-column:3/5}.auth-preference-brand{grid-column:1/3;grid-row:2}.auth-preferences-dock .theme-toggle{grid-column:3;grid-row:2;width:2.625rem}.auth-preferences-dock .usability-toggle{grid-column:4;grid-row:2;width:2.625rem}}

/* Touch-first progressive disclosure for login and registration preferences. */
.auth-preferences-handle{display:none}
@media(max-width:74.9375rem){
  .auth-preferences-dock{transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease}
  .auth-preferences-handle{position:absolute;z-index:2;top:-1.375rem;left:50%;min-width:10.5rem;min-height:3rem;padding:0 1.125rem;border:1px solid rgba(24,50,60,.14);border-radius:999px;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--ink);background:rgba(255,255,255,.98);box-shadow:0 .5rem 1.375rem rgba(16,45,58,.15);font:650 .8125rem/1.1 inherit;transform:translateX(-50%);touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}
  .auth-preferences-handle:focus-visible{outline:.1875rem solid var(--brand-secondary,var(--apricot));outline-offset:.1875rem}
  .auth-preferences-handle [data-preferences-dock-icon]{font-size:1.125rem;line-height:1}
  .auth-preferences-dock.is-collapsed{right:auto;left:50%;width:min(11.875rem,calc(100vw - 2rem));max-width:11.875rem;min-height:3rem;height:3rem;padding:0;grid-template:1fr/1fr;border-radius:999px;transform:translateX(-50%)}
  .auth-preferences-dock.is-collapsed>:not(.auth-preferences-handle){display:none!important}
  .auth-preferences-dock.is-collapsed .auth-preferences-handle{position:relative;inset:auto;width:100%;min-width:0;height:3rem;border:0;background:transparent;box-shadow:none;transform:none}
  :root[data-theme="dark"] .auth-preferences-handle{border-color:rgba(255,255,255,.15);color:var(--ink);background:rgba(23,35,41,.98)}
}
@media(prefers-reduced-motion:reduce){.auth-preferences-dock{transition:none}}

/* UFoundMe! registration — one calm decision path, never the shared MEO dock. */
.auth-page-ufoundme:has(.registration-shell) .auth-preferences-dock,.auth-page-ufoundme:has(.registration-shell) .auth-scroll-top{display:none!important}
.auth-page-ufoundme:has(.registration-shell) .auth-footer{padding-bottom:1.75rem}
.auth-page-ufoundme:has(.registration-shell) .registration-shell{width:min(70rem,calc(100% - 3rem));min-height:calc(100svh - 5.375rem);padding:2.25rem 0 3rem;grid-template-columns:minmax(0,1fr) minmax(25rem,28rem);gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.auth-page-ufoundme:has(.registration-shell) .registration-story{padding:0}.auth-page-ufoundme:has(.registration-shell) .registration-story h1{max-width:31rem;margin:.75rem 0 1rem;font-size:clamp(2.9rem,4.5vw,4.3rem);line-height:.94}.auth-page-ufoundme:has(.registration-shell) .registration-story>p{max-width:29rem;margin:0 0 1.25rem;font-size:.92rem;line-height:1.6}
.auth-page-ufoundme:has(.registration-shell) .story-points{max-width:32rem;margin-top:0;grid-template-columns:repeat(3,minmax(0,1fr))}.auth-page-ufoundme:has(.registration-shell) .story-points>span{min-height:4.1rem;padding:.65rem;align-items:flex-start;border-radius:.9rem;font-size:.68rem;line-height:1.35}.auth-page-ufoundme:has(.registration-shell) .register-points b{color:#171327}
.auth-page-ufoundme:has(.registration-shell) .ufm-auth-scene{height:12.5rem;max-width:32rem;margin-top:1rem;border-radius:1.5rem}.auth-page-ufoundme:has(.registration-shell) .ufm-auth-phone{width:8rem;min-height:11.8rem;bottom:-2.1rem;border-width:.34rem;border-radius:1.55rem}.auth-page-ufoundme:has(.registration-shell) .ufm-auth-phone>img{width:3.7rem;height:3.7rem}.auth-page-ufoundme:has(.registration-shell) .ufm-auth-phone strong{font-size:1rem}.auth-page-ufoundme:has(.registration-shell) .ufm-auth-badge{width:3.45rem;right:14%}
.auth-page-ufoundme:has(.registration-shell) .registration-card{width:100%;max-width:28rem;padding:2rem;border-radius:1.65rem;justify-self:end}.auth-page-ufoundme:has(.registration-shell) .registration-card h2{margin:.45rem 0 .3rem;font-size:1.45rem}.auth-page-ufoundme:has(.registration-shell) .registration-card>p{margin-bottom:1.25rem;font-size:.78rem}
.auth-page-ufoundme:has(.registration-shell) .ufm-registration-form{display:grid;grid-template-columns:1fr;gap:.85rem}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-form>*{grid-column:1!important}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-form label{font-size:.76rem}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-form label input:not([type=checkbox]){height:3rem;border-radius:.8rem;font-size:.82rem}
.auth-page-ufoundme:has(.registration-shell) .ufm-registration-consent{margin:0;padding:.8rem;align-items:flex-start;border:1px solid color-mix(in srgb,var(--ufm-brand-primary) 22%,transparent);border-radius:.85rem;background:var(--ufm-primary-soft)}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-consent input{margin-top:.08rem;accent-color:var(--ufm-brand-primary)}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-consent span{line-height:1.45}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-terms-help{width:1.65rem;height:1.65rem;min-width:1.65rem;margin-left:.3rem;padding:0;border:0;border-radius:50%;display:inline-grid;place-items:center;vertical-align:middle;color:#fff;background:var(--ufm-brand-primary);font:600 .82rem/1 "Inter",system-ui,sans-serif;cursor:pointer}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-terms-help:hover{background:var(--ufm-brand-secondary)}.auth-page-ufoundme:has(.registration-shell) .ufm-registration-terms-help:focus-visible{outline:3px solid color-mix(in srgb,var(--ufm-brand-primary) 28%,transparent);outline-offset:3px}
.auth-page-ufoundme:has(.registration-shell) .ufm-registration-consent-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem}
.auth-page-ufoundme:has(.registration-shell) .auth-trust-note{margin:0!important;padding:.7rem .8rem;display:flex;align-items:center;gap:.65rem;border:0;border-radius:.8rem;color:#625b67;background:#f6f2fa;font-size:.68rem;line-height:1.45}.auth-page-ufoundme:has(.registration-shell) .auth-trust-note img{width:1.1rem;height:1.1rem;flex:0 0 1.1rem}.auth-page-ufoundme:has(.registration-shell) .auth-primary{min-height:3.15rem;border-radius:.85rem;color:#fff!important;background:#28183b!important;box-shadow:none!important}.auth-page-ufoundme:has(.registration-shell) .auth-switch{margin-top:1.1rem!important;padding-top:1rem;border-top:1px solid #17132712;font-size:.72rem}.auth-page-ufoundme:has(.registration-shell) .auth-switch a{min-height:2.4rem;padding:0 .9rem;border:1px solid #1713272b;border-radius:999px;display:inline-flex;align-items:center;color:#171327}
@media(max-width:55.99rem){.auth-page-ufoundme:has(.registration-shell) .registration-shell{width:min(36rem,calc(100% - 2rem));padding:1.5rem 0 2.5rem;grid-template-columns:1fr;gap:1.5rem}.auth-page-ufoundme:has(.registration-shell) .registration-story{text-align:center}.auth-page-ufoundme:has(.registration-shell) .registration-story h1,.auth-page-ufoundme:has(.registration-shell) .registration-story>p{margin-inline:auto}.auth-page-ufoundme:has(.registration-shell) .registration-card{max-width:30rem;justify-self:center}.auth-page-ufoundme:has(.registration-shell) .ufm-auth-scene{display:none}}
@media(max-width:35rem){.auth-page-ufoundme:has(.registration-shell) .registration-shell{width:calc(100% - 1rem);padding-top:.8rem}.auth-page-ufoundme:has(.registration-shell) .registration-story h1{font-size:2.45rem}.auth-page-ufoundme:has(.registration-shell) .registration-story>p{font-size:.8rem}.auth-page-ufoundme:has(.registration-shell) .story-points{display:none}.auth-page-ufoundme:has(.registration-shell) .registration-card{padding:1.25rem;border-radius:1.25rem}.auth-page-ufoundme:has(.registration-shell) .auth-switch{display:grid;gap:.6rem}.auth-page-ufoundme:has(.registration-shell) .auth-switch a{justify-content:center}}
.auth-page-ufoundme:has(.registration-shell) :is(.auth-cookie-banner,.auth-cookie-dialog){display:none!important}
.auth-page-ufoundme :is(.auth-cookie-banner,.auth-cookie-dialog,.auth-preferences-dock,.auth-scroll-top){display:none!important}
.auth-page-ufoundme:has(.registration-shell) .registration-card{padding:1.45rem 1.65rem}
.auth-page-ufoundme:has(.registration-shell) .registration-card h2{margin:.3rem 0 .15rem;font-size:1.38rem}
.auth-page-ufoundme:has(.registration-shell) .registration-card>p{margin-bottom:.75rem;font-size:.74rem}
.auth-page-ufoundme:has(.registration-shell) .ufm-registration-form{gap:.6rem}
.auth-page-ufoundme:has(.registration-shell) .ufm-registration-consent{padding:.62rem .72rem}
.auth-page-ufoundme:has(.registration-shell) .auth-trust-note{padding:.58rem .72rem}
.auth-page-ufoundme:has(.registration-shell) .auth-primary{min-height:2.9rem}
.auth-page-ufoundme:has(.registration-shell) .auth-switch{margin-top:.75rem!important;padding-top:.75rem}

/* UFoundMe! public-site parity: login and register share one visual grammar. */
.auth-page-ufoundme{font-family:var(--ufm-font-primary,"Inter",system-ui,sans-serif)!important;color:var(--ufm-ink);background:linear-gradient(135deg,color-mix(in srgb,var(--ufm-brand-secondary) 9%,white),white 56%,color-mix(in srgb,var(--ufm-brand-primary) 8%,white))!important}
.auth-page-ufoundme::before{display:none!important}
.auth-page-ufoundme .auth-nav{height:82px;min-height:82px;padding:0 max(28px,5vw);border-bottom:1px solid #ece8e3;background:#fffdfaf2;backdrop-filter:blur(16px)}
.auth-page-ufoundme .auth-logo.auth-logo-ufoundme{width:10.3rem}.auth-page-ufoundme .auth-back-to-site,.auth-page-ufoundme .auth-nav-help{min-height:42px;border:1px solid #e6e1dc;border-radius:999px;color:var(--ufm-ink);background:#fff;text-decoration:none;font-size:.72rem;font-weight:750}.auth-page-ufoundme .auth-nav-help:hover,.auth-page-ufoundme .auth-back-to-site:hover{border-color:var(--ufm-brand-primary);background:var(--ufm-primary-soft)}
.auth-page-ufoundme .auth-story .kicker,.auth-page-ufoundme .step-label{color:#716b7a;font-size:.68rem;letter-spacing:.12em}.auth-page-ufoundme .auth-story .kicker::before,.auth-page-ufoundme .step-label::before{width:7px;height:7px;margin-right:8px;border-radius:50%;display:inline-block;background:var(--ufm-brand-primary);content:''}
.auth-page-ufoundme .auth-story h1{color:var(--ufm-ink);font-weight:680;letter-spacing:-.065em}.auth-page-ufoundme .auth-story h1::first-line{color:var(--ufm-brand-primary)}.auth-page-ufoundme .auth-story>p{color:#716b7a}
.auth-page-ufoundme .auth-card{border:1px solid #e6e1dc;border-radius:26px;background:#fff;box-shadow:0 18px 55px #17132712;backdrop-filter:none}.auth-page-ufoundme .auth-card::before{display:none}.auth-page-ufoundme .auth-card h2{color:var(--ufm-ink)}
.auth-page-ufoundme .auth-card :is(input,select,textarea){border-color:#ded8d1;border-radius:11px;color:var(--ufm-ink);background:#fbfaf8}.auth-page-ufoundme .auth-card :is(input,select,textarea):focus{border-color:var(--ufm-brand-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ufm-brand-primary) 15%,transparent)}
.auth-page-ufoundme .auth-primary{color:#fff!important;background:var(--ufm-ink)!important;box-shadow:0 12px 30px #17132720!important}.auth-page-ufoundme .auth-primary:hover{background:color-mix(in srgb,var(--ufm-ink) 86%,var(--ufm-brand-primary))!important}.auth-page-ufoundme .auth-secondary,.auth-page-ufoundme .auth-provider{border-color:#e6e1dc;background:#fff}.auth-page-ufoundme .auth-provider:hover,.auth-page-ufoundme .auth-secondary:hover{border-color:var(--ufm-brand-primary);background:var(--ufm-primary-soft)}
.auth-page-ufoundme .auth-login-tabs{padding:5px;border-radius:999px;background:#f4f0ec}.auth-page-ufoundme .auth-login-tab{border-radius:999px;color:#716b7a}.auth-page-ufoundme .auth-login-tab.is-active{color:var(--ufm-ink);background:#fff;box-shadow:0 4px 14px #17132712}
.auth-page-ufoundme .ufm-registration-consent,.auth-page-ufoundme .auth-trust-note{border-color:color-mix(in srgb,var(--ufm-brand-primary) 22%,transparent);background:var(--ufm-primary-soft)}.auth-page-ufoundme .ufm-registration-terms-help{color:#fff;background:var(--ufm-brand-primary)}
.auth-page-ufoundme .auth-switch a{color:var(--ufm-ink)!important}.auth-page-ufoundme .auth-footer-ufoundme{background:var(--ufm-ink)}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-links>strong,.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-coverage>strong{color:var(--ufm-brand-secondary)}
.auth-page-ufoundme .ufm-auth-scene{background:var(--ufm-brand-gradient)!important}

/* UFoundMe! authentication pages use the same complete dark footer hierarchy as the marketing site. */
.auth-footer-ufoundme{padding:4.25rem max(1.5rem,5vw) 1.5rem;display:block;color:#d6d1dd;background:#171327;font-size:.7rem}.ufm-auth-footer-grid{width:min(82.5rem,100%);margin:auto;display:grid;grid-template-columns:1.35fr .65fr .8fr 1.1fr;gap:6vw}.auth-footer-ufoundme .auth-footer-brand{display:block}.auth-footer-ufoundme .auth-footer-lockup{display:inline-flex}.auth-footer-ufoundme .auth-footer-lockup img{width:10.9375rem;height:auto;filter:brightness(0) invert(1)}.auth-footer-ufoundme p{margin:.75rem 0;color:#aaa4b4;font-size:.76rem;line-height:1.55}.auth-footer-ufoundme small{color:#817b89;font-size:.62rem}.auth-footer-ufoundme nav,.ufm-auth-footer-note{display:flex;flex-direction:column;align-items:flex-start;gap:.625rem}.auth-footer-ufoundme strong{margin-bottom:.375rem;color:#fff;font-size:.72rem}.auth-footer-ufoundme a{color:#c6c0ce;text-decoration:none;font-size:.7rem}.auth-footer-ufoundme a:hover,.auth-footer-ufoundme a:focus-visible{color:#fff;text-decoration:underline}.ufm-auth-footer-bottom{width:min(82.5rem,100%);margin:3.125rem auto 0;padding-top:1.25rem;display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #ffffff1b;color:#777180;font-size:.6rem}@media(max-width:56.25rem){.ufm-auth-footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:40.625rem){.auth-footer-ufoundme{padding:3.125rem 1.25rem 1.375rem}.ufm-auth-footer-grid{grid-template-columns:1fr;gap:2.125rem}.ufm-auth-footer-bottom{display:grid;gap:.4375rem}}
.auth-page-ufoundme .auth-footer.auth-footer-ufoundme{padding:4.25rem max(1.5rem,5vw) 1.5rem;display:block;background:#171327!important}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-brand{display:block;grid-template-columns:none}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-lockup{width:auto}@media(max-width:40.625rem){.auth-page-ufoundme .auth-footer.auth-footer-ufoundme{padding:3.125rem 1.25rem 1.375rem}}
.auth-page-ufoundme:has(.registration-shell) .auth-trust-note{width:100%;max-width:none;align-self:stretch;box-sizing:border-box}
@media(max-width:47.99rem){.auth-page-ufoundme .auth-nav{height:68px;min-height:68px;padding:0 14px}.auth-page-ufoundme .auth-logo.auth-logo-ufoundme{width:8.1rem}.auth-page-ufoundme .auth-back-to-site{border:0;background:transparent}.auth-page-ufoundme .auth-nav-help{width:42px;min-width:42px}}
/* UFoundMe! authentication content centres when it fits and scrolls naturally when taller. */
.auth-page-ufoundme .auth-shell{flex:1;min-height:calc(100svh - 82px);align-content:center}
.auth-page-ufoundme .auth-shell>*{min-width:0}
@media(max-width:47.99rem){.auth-page-ufoundme .auth-shell{min-height:calc(100svh - 68px);align-content:center}}
.auth-page-ufoundme,html:has(.auth-page-ufoundme){max-width:100%;overflow-x:clip}
.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-lockup{padding:8px;border-radius:12px;background:#fff}.auth-page-ufoundme .auth-footer-ufoundme .auth-footer-lockup img{filter:none}
.auth-tab-google{color:#1a5fb4}

/* Shared help controls keep a true circular silhouette even inside wrapped
   multilingual labels or constrained authentication grids. */
.auth-page-ufoundme .auth-context-help{
  box-sizing:border-box!important;
  width:40px!important;height:40px!important;
  min-width:40px!important;max-width:40px!important;
  min-height:40px!important;max-height:40px!important;
  aspect-ratio:1/1!important;flex:0 0 40px!important;
  align-self:center!important;line-height:1!important;
}
.auth-page-ufoundme .ufm-registration-terms-help{
  box-sizing:border-box!important;
  width:1.75rem!important;height:1.75rem!important;
  min-width:1.75rem!important;max-width:1.75rem!important;
  min-height:1.75rem!important;max-height:1.75rem!important;
  aspect-ratio:1/1!important;flex:0 0 1.75rem!important;
  align-self:center!important;line-height:1!important;
}

/* UFoundMe purchase checkout: two clear address chunks and one decision. */
.auth-shell:has(.ufm-checkout-card){width:min(68rem,calc(100% - 2rem));grid-template-columns:1fr;align-items:start;padding-top:2rem}
.ufm-checkout-card{max-width:68rem;justify-self:center;padding:clamp(1.25rem,3vw,2.5rem)}
.ufm-checkout-card>h1{margin:.55rem 0 .6rem;font-size:clamp(2rem,5vw,3.4rem);line-height:1;letter-spacing:-.045em}.ufm-checkout-card>p{max-width:48rem}
.ufm-checkout-card .checkout-price-summary{margin:1.25rem 0;padding:1rem;border:1px solid rgba(81,53,128,.16);background:#f7f3fa;gap:.55rem}.ufm-checkout-card .checkout-price-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.ufm-checkout-card .checkout-price-summary span{font-size:.82rem}.ufm-checkout-card .checkout-price-summary strong{font-size:.9rem;letter-spacing:0;white-space:nowrap}.ufm-checkout-card .checkout-price-summary .checkout-summary-total{margin-top:.35rem;padding-top:.75rem;border-top:1px solid rgba(81,53,128,.18)}.ufm-checkout-card .checkout-price-summary .checkout-summary-total :is(span,strong){color:#352052;font-size:1.08rem;font-weight:850}
.ufm-checkout-form{display:grid;gap:1rem}.checkout-address-card{min-width:0;margin:0;padding:1rem;border:1px solid rgba(53,32,82,.16);border-radius:1rem;display:grid;align-content:start;gap:.85rem;background:#fff}.checkout-address-card legend{padding:0 .5rem;color:#352052;font-size:.92rem;font-weight:850}.checkout-address-card legend span{width:1.65rem;height:1.65rem;margin-right:.5rem;border-radius:50%;display:inline-grid;place-items:center;color:#fff;background:#513580;font-size:.72rem}.checkout-address-card label{font-size:.84rem}.checkout-address-card :is(input,select,textarea){font-size:.92rem}.checkout-address-card textarea{grid-column:1/-1;width:100%;min-height:5rem;padding:.75rem;border:1.5px solid var(--line);border-radius:.8rem;resize:vertical;color:var(--ink);background:#fff;font:inherit}.checkout-address-card textarea:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgb(var(--brand-primary-rgb,53 107 112)/.1);outline:0}
.checkout-same-address{min-height:2.75rem;padding:.65rem .75rem;border-radius:.8rem;display:flex;align-items:center;gap:.6rem;background:#f7f3fa}.checkout-same-address input{width:1.2rem;height:1.2rem;flex:0 0 auto;accent-color:#513580}.checkout-different-label{margin:0;color:var(--muted);font-size:.76rem}.checkout-delivery-fields{display:grid;gap:.85rem}.checkout-delivery-fields[hidden]{display:none}.checkout-gift-message small{grid-column:1/-1;color:var(--muted);font-size:.72rem;font-weight:500}.checkout-terms{margin:.2rem 0;display:flex;align-items:flex-start;gap:.65rem}.checkout-terms input{width:1.2rem;height:1.2rem;flex:0 0 auto}.ufm-checkout-card .auth-help{text-align:center;color:var(--muted);font-size:.75rem}
.checkout-delivery-summary{margin:0 0 1rem;padding:1rem;border:1px solid rgba(81,53,128,.2);border-radius:1rem;display:flex;align-items:center;gap:.8rem;background:#fff}.checkout-delivery-summary>img{width:1.35rem;height:1.35rem}.checkout-delivery-summary>span{display:grid;gap:.2rem}.checkout-delivery-summary strong{color:#352052;font-size:.92rem}.checkout-delivery-summary small{color:var(--muted);font-size:.8rem;line-height:1.4}
.checkout-reminder{grid-column:1/-1;min-height:3.25rem;margin:0;padding:.8rem 1rem;border:1px solid rgba(81,53,128,.2);border-radius:1rem;display:flex;align-items:flex-start;gap:.7rem;color:#4b4255;background:#fbf9fc;font-size:.8rem;line-height:1.45}.checkout-reminder input{width:1.2rem;height:1.2rem;margin:.05rem 0 0;flex:0 0 auto;accent-color:#513580}.checkout-reminder span{font-weight:650}
@media(min-width:720px){.ufm-checkout-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.ufm-checkout-form>.checkout-terms,.ufm-checkout-form>.auth-primary{grid-column:1/-1}.ufm-checkout-card .checkout-price-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}.ufm-checkout-card .checkout-price-summary .checkout-summary-total{grid-column:1/-1}}
@media(max-width:359px){.auth-shell:has(.ufm-checkout-card){width:calc(100% - 1rem)}.ufm-checkout-card{padding:1rem}.checkout-address-card{padding:.8rem}.ufm-checkout-card .checkout-price-summary>div{align-items:flex-start;flex-direction:column;gap:.15rem}.ufm-checkout-card .checkout-price-summary strong{white-space:normal}}


/* MEO module: auth-i18n.css */
:root{--forest:#102d3a;--mint:var(--brand-primary, #3f7482)}.auth-nav-actions{display:flex;align-items:center;gap:10px}.auth-nav-actions>a{padding:10px 14px;border-radius:12px;color:var(--forest);text-decoration:none;font-size:16px;font-weight:850}.auth-language{padding:3px;border:1px solid var(--line);border-radius:10px;display:flex;gap:2px;background:#fff}.auth-language a{min-width:29px;padding:6px 5px;border-radius:7px;display:grid;place-items:center;color:var(--muted);text-decoration:none;font-size:16px;font-weight:950}.auth-language a.active{color:#fff;background:var(--forest)}.auth-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px}.auth-footer a{color:inherit;text-decoration:none}.auth-footer a:hover{color:var(--forest)}.auth-legal-note,.auth-prototype-note{margin:0!important;padding:12px;border-radius:11px;color:var(--muted);background:#eef1f2;font-size:16px!important;line-height:1.55!important}.auth-legal-note a{color:var(--forest);font-weight:900}.auth-prototype-note{color:#47565d;background:#dff6f8;font-weight:700}@media(max-width:560px){.auth-nav{padding-inline:16px}.auth-logo{width:96px}.auth-nav-actions{gap:5px}.auth-nav-actions>a{display:none}.auth-language a{min-width:27px}.auth-footer nav{justify-content:center}}


/* MEO module: auth-flow.css */
.register-points span {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Passwordless authentication - one code field and two quiet recovery actions. */
.auth-private-email {
  margin: 0 0 18px !important;
  padding: 12px 14px;
  border-radius: 13px;
  color: var(--muted) !important;
  background: color-mix(in srgb, var(--line) 38%, transparent);
}

.auth-private-email strong {
  color: var(--ink);
}

/* OTP help uses the same calm icon control as the first login step. */
.auth-private-email {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 12px;
  align-items: center;
}

.auth-private-email > span {
  min-width: 0;
}

.auth-private-email .auth-context-help {
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  color: #fff !important;
  background: #111 !important;
  box-shadow: 0 6px 16px rgba(17,17,17,.16) !important;
}

.auth-private-email .auth-context-help img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  filter: brightness(0) invert(1) !important;
}

.auth-private-email .auth-context-help:hover {
  background: #2a2a2a !important;
}

label input.auth-code-input {
  height: 62px;
  text-align: center;
  font-size: 28px;
  font-variant-numeric: tabular-nums;
  font-weight:700;
  letter-spacing: .24em;
}

.auth-otp-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}

.auth-otp-actions form {
  display: block;
}

.auth-otp-actions .auth-secondary {
  width: 100%;
  margin: 0;
}

.auth-text-action {
  width: 100%;
  min-height: 49px;
  padding: 8px 12px;
  border: 0;
  color: var(--ink);
  background: transparent;
  font: inherit;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
}

.auth-text-action:hover,
.auth-text-action:focus-visible {
  color: var(--earth-action);
}

.auth-password-fallback {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
}

.auth-password-fallback summary {
  padding: 14px 16px;
  cursor: pointer;
  font-size: 16px;
  font-weight:700;
}

.auth-password-fallback[open] summary {
  border-bottom: 1px solid var(--line);
}

.auth-password-fallback form {
  padding: 16px;
}

@media (max-width: 480px) {
  .auth-otp-actions {
    grid-template-columns: 1fr;
  }
}

.register-points b {
  color: #294956;
  font-weight:700;
}

:root[data-theme="dark"] .register-points b,
:root[data-theme="dark"] .auth-nav-actions > a {
  color: #eef5f6;
}

:root[data-theme="dark"] .auth-nav-actions > a:hover,
:root[data-theme="dark"] .auth-nav-actions > a:focus-visible {
  color: var(--brand-primary, #3f7482);
  background: rgba(255, 255, 255, .08);
}

.story-point-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: var(--orange);
  background: rgb(var(--brand-primary-rgb, 63 116 130) / .12);
}

.story-point-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Registration - wide, low-friction card designed to remain visible on compact laptops. */
.auth-shell.registration-shell {
  width: min(1240px, calc(100% - 40px));
  grid-template-columns: minmax(300px, .72fr) minmax(620px, 1.28fr);
  gap: clamp(30px, 5vw, 72px);
  align-items: start;
  padding: 18px 0 38px;
}

.registration-story {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 18px 12px 0;
}

.registration-story h1 {
  margin-top: 12px;
  font-size: calc(clamp(42px, 4.7vw, 64px) - 2.6667px);
}

.registration-story > p {
  margin-bottom: 18px;
}

.registration-illustration {
  position: relative;
  margin: 24px 0 0;
  min-height: 190px;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: 0 22px 55px rgba(24, 50, 60, .14);
}

.registration-illustration::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(16, 45, 58, .18));
}

.registration-illustration img {
  width: 100%;
  height: 100%;
  min-height: 190px;
  display: block;
  object-fit: cover;
}

.registration-illustration > .registration-ai-badge {
  position: absolute;
  z-index: 2;
  top: 14px;
  left: 14px;
  width: min(126px, calc(100% - 28px));
  filter: drop-shadow(0 5px 14px rgba(0, 0, 0, .24));
  pointer-events: none;
}

.registration-illustration > .registration-ai-badge img {
  width: 100%;
  height: auto;
  min-height: 0;
  object-fit: contain;
}

.registration-card {
  width: 100%;
  padding: 28px 32px;
}

.registration-card > p {
  margin-bottom: 17px;
}

.registration-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
}

.registration-form > label:nth-of-type(3),
.registration-form > .auth-sim-status,
.registration-form > .auth-adult-choice,
.registration-form > .check,
.registration-form > .auth-primary {
  grid-column: 1 / -1;
}

.auth-trust-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 !important;
  padding: 11px 12px;
  border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
  border-radius: 13px;
  color: var(--muted);
  background: color-mix(in srgb, var(--paper) 76%, white);
  font-size: 16px;
  line-height: 1.45;
}

.auth-trust-note img {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin-top: 1px;
}

.auth-trust-note a {
  color: var(--ink);
  font-weight:700;
}

.registration-form .auth-sim-status{display:grid;grid-template-columns:minmax(120px,auto) 1fr;align-items:start;gap:8px 14px;padding:14px 16px}.registration-form .auth-sim-status[hidden]{display:none!important}.registration-form .auth-sim-status strong{white-space:nowrap;color:var(--ink);font-weight:700}.registration-form .auth-sim-status span{min-width:0}.auth-adult-choice{display:grid;gap:5px}.auth-adult-choice small{display:flex;align-items:flex-start;gap:8px;padding-left:28px;color:var(--muted);font-size:16px;line-height:1.4}.auth-adult-choice small img{width:17px;height:17px;flex:0 0 17px}.auth-inline-link{display:inline;padding:2px 5px;border:0;border-radius:6px;color:var(--earth-action);background:rgb(var(--brand-primary-rgb, 63 116 130) / .1);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.auth-terms-modal{width:min(720px,calc(100% - 28px));max-height:min(780px,calc(100vh - 30px));padding:28px;border:0;border-radius:24px;color:var(--ink);background:var(--white);box-shadow:0 36px 100px rgba(8,29,37,.3)}.auth-terms-modal::backdrop{background:rgba(11,30,38,.66);backdrop-filter:blur(5px)}.auth-terms-modal-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.auth-terms-modal-head h2{margin:0;font-size:calc(26px - 2.6667px)}.auth-terms-modal-head>button{width:40px;height:40px;border:0;border-radius:50%;color:var(--ink);background:var(--paper);font-size:25px;cursor:pointer}.auth-terms-modal>p{color:var(--muted);line-height:1.55}.auth-terms-modal ul{display:grid;gap:9px;margin:18px 0;padding-left:22px;color:var(--ink);line-height:1.45}.auth-terms-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px}.auth-terms-modal-actions>a{color:var(--earth-action);font-weight:700}.auth-terms-modal-actions .auth-primary{min-width:150px;padding:0 18px}

@media (max-width:620px){.registration-form .auth-sim-status{grid-template-columns:1fr}}

.auth-footer{grid-template-columns:minmax(360px,1.4fr) minmax(210px,.7fr) minmax(230px,.75fr);align-items:start}.auth-footer-brand{align-items:start}.auth-publisher,.auth-publisher>span,.auth-publisher>strong{font-size:13pt}.auth-publisher{align-self:start;line-height:1.48}.auth-publisher>span,.auth-publisher>strong{display:block}.auth-footer-links,.auth-footer-coverage{padding:0;border:0;gap:10px}.auth-footer-links>strong,.auth-footer-coverage>strong{min-height:22px;margin:0;color:var(--brand-primary, #3f7482)}.auth-footer-links nav{display:grid;gap:8px}.auth-footer-links a{display:inline-flex;width:max-content;align-items:center;gap:7px;color:rgba(255,255,255,.84)!important;line-height:1.35;text-decoration:none}.auth-footer-links a::after{content:'›';color:var(--brand-primary, #3f7482);font-size:19px;line-height:1;transition:transform .18s ease}.auth-footer-links a:hover,.auth-footer-links a:focus-visible{color:#fff!important}.auth-footer-links a:hover::after,.auth-footer-links a:focus-visible::after{transform:translateX(3px)}@media(max-width:960px){.auth-footer{grid-template-columns:1fr 1fr}.auth-footer-brand{grid-column:1/-1}}@media(max-width:620px){.auth-footer{grid-template-columns:1fr}.auth-footer-brand{grid-column:1}.auth-footer-links,.auth-footer-coverage{padding-top:0;border-top:0}}

:root[data-theme="dark"] .auth-page{background:radial-gradient(circle at 18% 12%,rgba(46,91,105,.28),transparent 30%),linear-gradient(145deg,#091419 0%,#0d2028 58%,#101a1e 100%)}:root[data-theme="dark"] .registration-card{border-color:rgba(255,255,255,.1);background:rgba(20,36,43,.94);box-shadow:0 34px 90px rgba(0,0,0,.32)}:root[data-theme="dark"] .registration-story>p{color:#b9c7cc}:root[data-theme="dark"] .registration-illustration{border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.32)}:root[data-theme="dark"] .pet-kind span,:root[data-theme="dark"] .auth-trust-note{border-color:rgba(255,255,255,.11);color:#c2cdd1;background:rgba(32,52,60,.88)}:root[data-theme="dark"] .registration-form .auth-sim-status{border:1px solid rgba(255,255,255,.08);color:#d6e2e5;background:#20323a}:root[data-theme="dark"] .registration-form .auth-sim-status.is-confirmed{color:#c9eadf;background:#1c3833}:root[data-theme="dark"] .registration-form .auth-sim-status.is-local_required{color:#dff6f8;background:var(--brand-primary, #3f7482)}:root[data-theme="dark"] .auth-inline-link,:root[data-theme="dark"] .auth-terms-modal-actions>a{color:var(--brand-primary, #3f7482)}:root[data-theme="dark"] .auth-terms-modal{border:1px solid rgba(255,255,255,.1);background:#14242b}:root[data-theme="dark"] .auth-terms-modal-head>button{color:#f3f5f4;background:#223840}:root[data-theme="dark"] .auth-terms-modal>p{color:#b9c7cc}:root[data-theme="dark"] .auth-adult-choice small{color:#aebdc2}:root[data-theme="dark"] .registration-card input,:root[data-theme="dark"] .registration-card select{border-color:#3a5059;background:#0f1d23}:root[data-theme="dark"] .registration-card input:focus,:root[data-theme="dark"] .registration-card select:focus{border-color:var(--brand-primary, #3f7482);box-shadow:0 0 0 4px rgb(var(--brand-primary-rgb, 63 116 130) / .14)}

.auth-help-steps{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:18px 0}.auth-help-steps article{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--paper) 72%,white)}.auth-help-steps article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;background:var(--ink);font-weight:700}.auth-help-steps strong{display:block;margin:1px 0 3px}.auth-help-steps p{margin:0;color:var(--muted);font-size:16px;line-height:1.4}.auth-help-support{padding:12px 14px;border-radius:13px;color:var(--ink);background:#e8f8fa;font-weight:800;text-align:center}:root[data-theme="dark"] .auth-help-steps article{border-color:rgba(255,255,255,.1);background:#1d3139}:root[data-theme="dark"] .auth-help-steps article>span{color:#162a32;background:var(--brand-primary, #3f7482)}:root[data-theme="dark"] .auth-help-support{color:#d9f7fa;background:var(--brand-primary, #3f7482)}@media(max-width:560px){.auth-help-steps{grid-template-columns:1fr}.auth-terms-modal{padding:22px}.auth-terms-modal-actions{align-items:stretch;flex-direction:column}.auth-terms-modal-actions .auth-primary{width:100%}}

@media (max-width: 960px) {
  .auth-shell.registration-shell {
    width: min(720px, calc(100% - 28px));
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .registration-story { padding: 8px 8px 0; }
  .registration-story h1 { font-size: calc(43px - 2.6667px); }
  .registration-illustration { min-height: 150px; margin-top: 16px; }
  .registration-illustration img { min-height: 150px; max-height: 210px; }
}

@media (max-width: 560px) {
  .registration-card { padding: 24px 20px; }
  .registration-form { grid-template-columns: 1fr; }
  .registration-form > * { grid-column: 1 !important; }
  .registration-illustration { display: none; }
}

.auth-card label select {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 49px;
  padding: 0 42px 0 14px;
  border: 1.5px solid var(--line);
  border-radius: 13px;
  color: var(--ink);
  background: var(--white);
  font: inherit;
  font-size: 16px;
}

.auth-logo {
  width: 136px;
}

@media (max-width: 560px) {
  .auth-logo {
    width: 118px;
  }
}

/* Email verification - one clear state, one short route, one recovery action. */
.auth-shell.compact.verification-shell {
  width: min(1120px, calc(100% - 40px));
  max-width: 1120px !important;
  grid-template-columns: minmax(0, .95fr) minmax(430px, 1.05fr);
  gap: 0;
  padding: 0;
  border-radius: 32px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 34px 90px rgba(16, 45, 58, .14);
}

.auth-story.verification-story {
  position: relative;
  min-height: 570px;
  padding: clamp(38px, 4.5vw, 62px);
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 74% 64%, rgba(242, 201, 164, .2), transparent 29%),
    linear-gradient(145deg, #102d3a 0%, #173f4b 60%, #1c4751 100%);
  isolation: isolate;
}

.auth-story.verification-story::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .34;
  background-image: radial-gradient(rgba(255, 255, 255, .22) .7px, transparent .7px);
  background-size: 18px 18px;
  mask-image: linear-gradient(135deg, #000, transparent 74%);
}

.auth-story.verification-story .kicker {
  color: #dff6f8;
}

.auth-story.verification-story h1 {
  max-width: 520px;
  margin: 18px 0 20px;
  color: #fff;
  font-size: calc(clamp(42px, 4.4vw, 62px) - 2.6667px);
  line-height: 1.01;
  letter-spacing: -.055em;
}

.auth-story.verification-story > p {
  max-width: 520px;
  margin: 0;
  color: rgba(255, 255, 255, .78);
  font-size: 18px;
  line-height: 1.65;
}

.verification-visual {
  position: relative;
  width: min(370px, 90%);
  height: 176px;
  margin: 24px auto 2px;
  transform: scale(.88);
}

.verification-orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.verification-orbit.orbit-one {
  width: 240px;
  height: 150px;
}

.verification-orbit.orbit-two {
  width: 330px;
  height: 200px;
}

.verification-envelope {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 154px;
  height: 112px;
  padding: 13px 17px;
  border-radius: 28px;
  color: #102d3a;
  background: #ffffff;
  box-shadow: 0 24px 48px rgba(0, 0, 0, .24);
  transform: translate(-50%, -50%) rotate(-3deg);
}

.verification-envelope svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.verification-mascot {
  position: absolute;
  left: calc(50% + 52px);
  top: calc(50% + 25px);
  width: 54px;
  height: 54px;
  padding: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 13px 30px rgba(0, 0, 0, .25);
}

.verification-mascot img {
  display: block;
  width: 100%;
  height: 100%;
}

.verification-spark {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand-primary, #3f7482);
  box-shadow: 0 0 0 7px rgb(var(--brand-secondary-rgb, 236 122 68) / .13);
}

.verification-spark.spark-one {
  left: 8%;
  top: 31%;
}

.verification-spark.spark-two {
  right: 4%;
  bottom: 25%;
  width: 7px;
  height: 7px;
  background: var(--brand-primary, #3f7482);
  box-shadow: 0 0 0 6px rgba(242, 201, 164, .12);
}

.verification-promises {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.verification-promises span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 13px;
  border-radius: 999px;
  color: rgba(255, 255, 255, .88);
  background: rgba(255, 255, 255, .09);
  font-weight: 750;
}

.verification-promises svg {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  fill: none;
  stroke: var(--brand-primary, #3f7482);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.auth-card.verification-card {
  align-self: stretch;
  padding: clamp(38px, 4.2vw, 60px);
  border: 0;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--white);
  box-shadow: none;
}

.verification-status {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--ink);
  background: rgb(var(--brand-secondary-rgb, 236 122 68) / .11);
  font-weight:700;
}

.verification-status > span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 0 5px rgb(var(--brand-secondary-rgb, 236 122 68) / .12);
}

.auth-card.verification-card h2 {
  margin: 18px 0 10px;
  font-size: calc(clamp(32px, 2.8vw, 42px) - 2.6667px);
  line-height: 1.06;
  letter-spacing: -.05em;
}

.auth-card.verification-card > .verification-lead {
  margin: 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.58;
}

.verification-lead strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
}

.verification-next {
  margin: 24px 0 18px;
  padding: 22px;
  border-radius: 22px;
  background: rgba(16, 45, 58, .055);
}

.verification-next h3 {
  margin: 0 0 18px;
  color: var(--ink);
  font-size: max(16px, calc(18px - 2.6667px));
  letter-spacing: -.02em;
}

.verification-route {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
}

.verification-route-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 6px 18px rgba(16, 45, 58, .08);
}

.verification-route-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.verification-route-icon.mascot-route img {
  width: 23px;
  height: 23px;
}

.verification-route p {
  margin: 0;
  color: var(--ink);
  font-weight: 780;
  line-height: 1.35;
}

.verification-route-line {
  width: 1px;
  height: 13px;
  margin: 3px 0 3px 18px;
  background: rgba(16, 45, 58, .2);
}

.verification-route-line + .verification-route-icon {
  grid-column: 1;
}

.verification-tip {
  margin: 0 0 15px !important;
  color: var(--muted) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.verification-actions {
  display: grid;
  gap: 10px;
}

.verification-actions form {
  gap: 0;
}

.verification-actions .auth-primary,
.verification-actions .auth-secondary {
  min-height: 54px;
  margin: 0;
  padding: 12px 18px;
  color: #fff;
  font-size: 16px;
  font-weight:700;
  text-decoration: none;
}

.verification-actions .auth-secondary {
  color: var(--ink);
  background: transparent;
}

.verification-actions .auth-secondary:hover {
  background: rgba(16, 45, 58, .06);
}

.auth-card.verification-card .auth-alert {
  margin: 0 0 16px;
  padding: 14px 16px;
  font-size: 16px;
  line-height: 1.45;
}

.auth-card.verification-card .auth-alert.success {
  color: #245346;
  background: #edf6f1;
}

@media (max-width: 899px) {
  .verification-shell,
  .auth-shell.compact.verification-shell {
    width: min(690px, calc(100% - 34px));
    grid-template-columns: 1fr;
    margin-block: 18px 36px;
  }

  .auth-story.verification-story {
    min-height: 0;
    padding: 40px 44px 32px;
    text-align: left;
  }

  .auth-story.verification-story > p {
    margin-inline: 0;
  }

  .verification-visual {
    position: absolute;
    right: -35px;
    bottom: -31px;
    width: 270px;
    height: 180px;
    margin: 0;
    opacity: .78;
    transform: scale(.78);
    transform-origin: right bottom;
  }

  .verification-promises {
    position: relative;
    z-index: 1;
    max-width: 420px;
  }

  .auth-card.verification-card {
    width: 100%;
    max-width: none;
    padding: 42px 44px;
  }
}

@media (max-width: 560px) {
  .verification-shell,
  .auth-shell.compact.verification-shell {
    width: calc(100% - 20px) !important;
    margin-block: 8px 24px;
    border-radius: 26px;
  }

  .auth-story.verification-story {
    padding: 34px 24px 29px;
  }

  .auth-story.verification-story h1 {
    max-width: 380px;
    margin-top: 14px;
    font-size: calc(clamp(36px, 10.5vw, 48px) - 2.6667px);
  }

  .auth-story.verification-story > p {
    font-size: 16px;
    line-height: 1.55;
  }

  .verification-visual {
    display: none;
  }

  .verification-promises {
    display: grid;
    gap: 7px;
    margin-top: 22px;
  }

  .verification-promises span {
    width: fit-content;
    padding: 8px 11px;
    background: rgba(255, 255, 255, .08);
  }

  .auth-card.verification-card {
    padding: 32px 22px 24px;
  }

  .auth-card.verification-card h2 {
    font-size: calc(clamp(32px, 9.5vw, 42px) - 2.6667px);
  }

  .verification-next {
    margin-top: 24px;
    padding: 18px 16px;
  }
}

@media (max-width: 359px) {
  .auth-story.verification-story {
    padding-inline: 20px;
  }

  .auth-card.verification-card {
    padding-inline: 18px;
  }

  .verification-next {
    padding-inline: 14px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .verification-envelope {
    animation: meo-envelope-settle .72s cubic-bezier(.2, .78, .28, 1) both;
  }

  .verification-mascot {
    animation: meo-mascot-arrive .78s .16s cubic-bezier(.2, .8, .26, 1) both;
  }

  .verification-status > span {
    animation: meo-status-pulse 2.4s ease-in-out infinite;
  }
}

@keyframes meo-envelope-settle {
  from { opacity: 0; transform: translate(-50%, -42%) rotate(3deg) scale(.9); }
  to { opacity: 1; transform: translate(-50%, -50%) rotate(-3deg) scale(1); }
}

@keyframes meo-mascot-arrive {
  from { opacity: 0; transform: translateY(12px) scale(.82); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes meo-status-pulse {
  0%, 100% { box-shadow: 0 0 0 5px rgb(var(--brand-secondary-rgb, 236 122 68) / .12); }
  50% { box-shadow: 0 0 0 8px rgb(var(--brand-secondary-rgb, 236 122 68) / .04); }
}

:root[data-theme="dark"] .auth-shell.compact.verification-shell {
  background: #172329;
  box-shadow: 0 34px 90px rgba(0, 0, 0, .34);
}

:root[data-theme="dark"] .auth-card.verification-card {
  background: #172329;
}

:root[data-theme="dark"] .verification-next {
  background: #223138;
}

:root[data-theme="dark"] .verification-route-icon {
  color: #f3f5f4;
  background: #101c21;
  box-shadow: none;
}

:root[data-theme="dark"] .verification-status {
  color: #f3f5f4;
  background: rgb(var(--brand-secondary-rgb, 236 122 68) / .16);
}

:root[data-theme="dark"] .verification-actions .auth-secondary {
  color: #f3f5f4;
}

:root[data-theme="dark"] .verification-actions .auth-secondary:hover {
  background: rgba(255, 255, 255, .06);
}

:root[data-theme="dark"] .auth-card.verification-card .auth-alert.success {
  color: #d4eee5;
  background: #203b35;
}

.registration-card .auth-switch {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  text-align: center;
}
.registration-card .auth-switch a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  margin-left: 6px;
  padding: 7px 12px;
  border: 1px solid currentColor;
  border-radius: 11px;
  color: var(--earth-action) !important;
  font-weight:700;
  text-decoration: none;
}
.registration-card .auth-switch a::after { content: "\2192"; font-size: 1.08em; }
.registration-card .auth-switch a:hover,
.registration-card .auth-switch a:focus-visible { color: var(--brand-primary, #3f7482) !important; }
:root[data-theme="dark"] .registration-card .auth-switch { border-top-color: rgba(255,255,255,.14); color: #c2ccd0; }
:root[data-theme="dark"] .registration-card .auth-switch a { color: var(--brand-primary, #3f7482) !important; }

.auth-help-link{display:inline-flex!important;align-items:center;gap:8px}.auth-help-link img{width:18px;height:18px}.auth-nav-actions .auth-help-link{min-height:44px}@media(max-width:560px){.auth-nav{height:auto;min-height:118px;align-items:flex-start;flex-wrap:wrap}.auth-logo{margin-top:4px}.auth-nav-actions{width:100%;justify-content:flex-start}.auth-nav-actions .auth-help-link{width:44px;padding:0!important;display:grid!important;place-items:center;background:var(--white);box-shadow:0 7px 20px rgba(16,45,58,.1)}.auth-nav-actions .auth-help-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.auth-nav-actions .auth-help-link img{width:20px;height:20px}:root[data-theme="dark"] .auth-nav-actions .auth-help-link{background:#172b34}:root[data-theme="dark"] .auth-nav-actions .auth-help-link img{filter:brightness(0) invert(1)}}

.auth-cookie-banner{position:fixed;z-index:420;right:20px;bottom:20px;left:20px;width:min(1100px,calc(100% - 40px));margin:auto;padding:20px 22px;border:1px solid rgba(255,255,255,.14);border-radius:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:26px;color:#fff;background:rgba(15,37,46,.97);box-shadow:0 28px 90px rgba(3,12,16,.38);backdrop-filter:blur(18px)}.auth-cookie-banner[hidden]{display:none}.auth-cookie-banner strong{font-size:18px}.auth-cookie-banner p{max-width:720px;margin:6px 0 0;color:rgba(255,255,255,.76);font-size:16px;line-height:1.5}.auth-cookie-actions{display:flex;gap:10px}.auth-cookie-actions button{min-height:46px;padding:0 17px;border:1px solid rgba(255,255,255,.34);border-radius:13px;color:#fff;background:transparent;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.auth-cookie-actions button:hover,.auth-cookie-actions button:focus-visible,.auth-cookie-actions .is-primary{border-color:var(--earth-action);background:var(--earth-action)}.auth-cookie-dialog{width:min(620px,calc(100% - 28px));padding:28px;border:0;border-radius:24px;color:var(--ink);background:var(--white);box-shadow:0 36px 100px rgba(8,29,37,.34)}.auth-cookie-dialog::backdrop{background:rgba(8,25,32,.7);backdrop-filter:blur(6px)}.auth-cookie-dialog>span{color:var(--earth-action);font-weight:700;letter-spacing:.08em}.auth-cookie-dialog h2{margin:8px 44px 20px 0}.auth-cookie-close{position:absolute;top:18px;right:18px;width:40px;height:40px;border:0;border-radius:50%;color:var(--ink);background:var(--paper);font-size:26px;cursor:pointer}.auth-cookie-row{min-height:86px;padding:16px 17px;border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f7f9fa}.auth-cookie-row:first-of-type{border-radius:16px 16px 0 0}.auth-cookie-row+.auth-cookie-row{border-top:0;border-radius:0 0 16px 16px}.auth-cookie-row strong,.auth-cookie-row small{display:block}.auth-cookie-row small{margin-top:4px;color:var(--muted);font-size:16px;line-height:1.4}.auth-cookie-row>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#287d69;font-weight:800}.auth-cookie-row+.auth-cookie-row>span{color:#69797f;background:#e3e9eb}.auth-cookie-dialog-actions{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.auth-cookie-dialog-actions a{color:var(--earth-action);font-weight:700}.auth-cookie-dialog-actions .auth-primary{min-width:130px;padding-inline:18px}:root[data-theme="dark"] .auth-cookie-dialog{border:1px solid rgba(255,255,255,.1);background:#14242b}:root[data-theme="dark"] .auth-cookie-row{border-color:#39505a;background:#1c3038}:root[data-theme="dark"] .auth-cookie-close{color:#fff;background:#263d46}@media(max-width:700px){.auth-cookie-banner{right:12px;bottom:12px;left:12px;width:auto;grid-template-columns:1fr;gap:16px;padding:18px}.auth-cookie-actions{display:grid;grid-template-columns:1fr 1fr}.auth-cookie-actions button{padding-inline:12px}}@media(max-width:430px){.auth-cookie-actions{grid-template-columns:1fr}.auth-cookie-dialog-actions{align-items:stretch;flex-direction:column}.auth-cookie-dialog-actions .auth-primary{width:100%}}
.reset-password-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:12px 0;padding:11px 12px;list-style:none;border-radius:12px;background:var(--paper);font-size:14.5px;line-height:1.4}.reset-password-checklist li{display:flex;align-items:center;gap:7px;color:var(--muted)}.reset-password-checklist li span{display:grid;place-items:center;flex:0 0 18px;height:18px;border-radius:50%;color:transparent;background:var(--line);font-size:14.5px;font-weight:700}.reset-password-checklist li.is-valid{color:#17633e}.reset-password-checklist li.is-valid span{color:#fff;background:#2b9d68}@media(max-width:520px){.reset-password-checklist{grid-template-columns:1fr}}
.reset-link-verified{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#17633e;font-size:14.5px;font-weight:700}.reset-link-verified span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#fff;background:#2b9d68}

@media(max-width:359px){.auth-footer-brand{grid-template-columns:1fr;gap:14px}.auth-footer-lockup{width:124px}.auth-publisher{max-width:100%}}


/* MEO module: responsive-shared.css */
/* Seven MEO responsive thresholds: 360 / 480 / 720 / 900 / 1200 / 1440 / 1920. */
@media(max-width:359px){.auth-nav,.mk-nav{padding-inline:15px}.auth-logo,.mk-nav>a{width:94px}.auth-shell{width:calc(100% - 18px)!important}.auth-story h1{font-size:calc(35px - 2.6667px)}.auth-card{padding:20px;border-radius:21px}.hero{padding-inline:16px}.hero h1{font-size:calc(48px - 2.6667px)}.hero-visual{min-height:310px}.section,.wide-band,.privacy{padding-inline:17px}.float-card{transform:scale(.85)}.logo-line{padding-inline:17px}.mk-footer{padding-inline:18px}}
@media(min-width:360px) and (max-width:479px){.auth-story h1{font-size:calc(40px - 2.6667px)}.auth-card{padding:25px}.auth-shell{width:calc(100% - 24px)}.hero{padding-inline:20px}.hero h1{font-size:calc(54px - 2.6667px)}.hero-visual{min-height:340px}.section,.wide-band,.privacy{padding-inline:21px}}
@media(min-width:480px) and (max-width:719px){.auth-shell{width:min(560px,calc(100% - 38px))}.auth-card{padding:34px}.auth-story h1{font-size:calc(49px - 2.6667px)}.hero{padding-inline:32px}.hero h1{font-size:calc(66px - 2.6667px)}.hero-visual{min-height:450px}.section,.wide-band,.privacy{padding-inline:34px}}
@media(min-width:720px) and (max-width:899px){.auth-shell{width:min(690px,calc(100% - 50px));grid-template-columns:1fr}.auth-story{text-align:center}.auth-story>p{margin-inline:auto}.auth-card{max-width:520px;width:100%;margin:auto}.hero{padding-inline:48px}.feature-grid{grid-template-columns:1fr 1fr}.feature:last-child{grid-column:1/-1}.section,.wide-band,.privacy{padding-inline:50px}}
@media(min-width:900px) and (max-width:1199px){.auth-shell{width:min(1000px,calc(100% - 60px));grid-template-columns:1fr 430px;gap:60px}.auth-story h1{font-size:calc(60px - 2.6667px)}.hero{padding-inline:60px}.hero h1{font-size:calc(76px - 2.6667px)}.section,.wide-band,.privacy{padding-inline:62px}.feature-grid{gap:12px}.feature{padding:22px}}
@media(min-width:1200px) and (max-width:1439px){.auth-shell{max-width:1140px}.auth-card{padding:40px}.hero{padding-inline:80px}.section,.wide-band{padding-inline:82px}}
@media(min-width:1440px) and (max-width:1919px){.auth-shell{max-width:1280px;grid-template-columns:1fr 500px}.auth-story h1{font-size:calc(80px - 2.6667px)}.auth-card{padding:45px}.hero,.section,.wide-band{max-width:1680px;margin-inline:auto}.hero h1{font-size:calc(105px - 2.6667px)}}
@media(min-width:1920px){.auth-shell{max-width:1480px;grid-template-columns:1fr 540px}.auth-story h1{font-size:calc(94px - 2.6667px)}.auth-card{padding:50px}.hero,.section,.privacy{max-width:1800px;margin-inline:auto}.hero h1{font-size:calc(122px - 2.6667px)}.feature{min-height:480px}.mk-nav,.mk-footer{padding-inline:max(80px,calc((100vw - 1800px)/2))}}


/* MEO module: theme.css */
/* Inter 4.1 is served locally. License: vendor/LICENSE-Inter.txt (OFL-1.1). */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/InterVariable.woff2') format('woff2-variations')}
@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/InterVariable-Italic.woff2') format('woff2-variations')}
.theme-toggle{width:44px;min-width:44px;height:44px;padding:0;border:1px solid var(--line,#d5e0e5);border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:0;flex:0 0 auto;color:var(--ink,#18323c);background:var(--white,var(--panel,#ffffff));box-shadow:0 7px 18px rgba(16,45,58,.07);font:inherit;font-weight:900;cursor:pointer}
.theme-toggle:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(16,45,58,.12)}
.theme-toggle:focus-visible{outline:3px solid rgb(var(--brand-primary-rgb, 63 116 130) / .5);outline-offset:3px}
.theme-toggle [data-theme-icon]{font-size:17px;line-height:1}.theme-toggle [data-theme-label]{display:none!important}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--ink:#f3f5f4;--muted:#a7b3b7;--paper:#0d1519;--white:#172329;--panel:#172329;--line:#304148;--sky:#172a32;--apricot:var(--brand-primary, #3f7482)}}
:root[data-theme="dark"]{--ink:#f3f5f4;--muted:#a7b3b7;--paper:#0d1519;--white:#172329;--panel:#172329;--line:#304148;--sky:#172a32;--apricot:var(--brand-primary, #3f7482);--blue:#23444d}
[data-theme="dark"] body,[data-theme="dark"] .legal-page{color:var(--ink);background:var(--paper)}
[data-theme="dark"] .public-header{border-color:rgba(255,255,255,.08);background:rgba(13,21,25,.94)}
[data-theme="dark"] .public-brand,[data-theme="dark"] .auth-logo,[data-theme="dark"] .go-logo,[data-theme="dark"] .brand{padding:6px 9px;border-radius:12px;background:#fff}[data-theme="dark"] .public-brand img,[data-theme="dark"] .auth-logo img,[data-theme="dark"] .go-logo img,[data-theme="dark"] .brand img{filter:none}
[data-theme="dark"] .public-primary a:hover,[data-theme="dark"] .public-signin:hover,[data-theme="dark"] .public-menu-links>a:hover,[data-theme="dark"] .public-menu-signin:hover{background:#223138}
[data-theme="dark"] .public-primary a.active,[data-theme="dark"] .public-menu-links>a.active{color:#142127;background:#f3f5f4;font-weight:950}
[data-theme="dark"] .public-language,[data-theme="dark"] .auth-language,[data-theme="dark"] .public-menu-panel{background:#172329}
[data-theme="dark"] .public-language a.active,[data-theme="dark"] .auth-language a.active{color:#172329;background:#f3f5f4}
[data-theme="dark"] .public-newsletter,[data-theme="dark"] .public-dialog,[data-theme="dark"] .auth-card{background:#172329}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea,[data-theme="dark"] .auth-secondary,[data-theme="dark"] .auth-provider{color:var(--ink);border-color:var(--line);background:#101c21}
[data-theme="dark"] .cookie-row,[data-theme="dark"] .public-dialog-close,[data-theme="dark"] .auth-legal-note,[data-theme="dark"] .sso-preview{background:#223138}
[data-theme="dark"] .public-cookie-options{border-color:var(--line);background:#172329}[data-theme="dark"] .cookie-row{background:transparent}[data-theme="dark"] .public-cookie-actions .public-cookie-policy{color:var(--ink);border-color:var(--line);background:#101c21}
[data-theme="dark"] .auth-prototype-note{color:#dff6f8;background:#17424b}[data-theme="dark"] .auth-alert{color:#dff6f8;background:#17424b}
[data-theme="dark"] .biometric-status{color:#d7e5e8;background:#21363e}
[data-theme="dark"] .mk-float,[data-theme="dark"] .mk-country-list article,[data-theme="dark"] .guide-flow article{background:rgba(23,35,41,.94)}
[data-theme="dark"] .mk-feature.earth,[data-theme="dark"] .mk-final,[data-theme="dark"] .guide-help,[data-theme="dark"] .coverage-sources{background:var(--brand-primary, #3f7482)}
[data-theme="dark"] .mk-feature.light,[data-theme="dark"] .guide-faq,[data-theme="dark"] .plan-card:not(.featured),[data-theme="dark"] .price-table-wrap,[data-theme="dark"] .coverage-roadmap article,[data-theme="dark"] .coverage-table,[data-theme="dark"] .coverage-effort li{background:var(--white)}
[data-theme="dark"] .mk-benelux,[data-theme="dark"] .price-structure,[data-theme="dark"] .guide-whatsapp,[data-theme="dark"] .coverage-scale{background:var(--sky)}
[data-theme="dark"] .mk-text-link,[data-theme="dark"] .guide-link{color:var(--ink)}
[data-theme="dark"] .mk-alert-stack i,[data-theme="dark"] .plan-prices>div,[data-theme="dark"] .guide-help li{color:var(--ink);background:#223138}
[data-theme="dark"] .mk-final p,[data-theme="dark"] .guide-help p,[data-theme="dark"] .coverage-sources>p{color:#c3ced1}
[data-theme="dark"] .legal-subnav-shell{background:rgba(13,21,25,.96)}
[data-theme="dark"] .legal-subnav a:hover,[data-theme="dark"] .legal-toc{background:#223138}
[data-theme="dark"] .legal-document,[data-theme="dark"] .legal-table-scroll tbody td,[data-theme="dark"] .legal-table-scroll tbody tr:nth-child(even) td{background:var(--white)}
[data-theme="dark"] .legal-section-body>p,[data-theme="dark"] .legal-list li,[data-theme="dark"] .legal-table-scroll tbody td{color:#c5d0d3}
[data-theme="dark"] .legal-callout,[data-theme="dark"] .legal-table-scroll tbody th,[data-theme="dark"] .legal-sources{background:#22353d}
[data-theme="dark"] .legal-callout p,[data-theme="dark"] .legal-sources summary{color:var(--ink)}
[data-theme="dark"] .card,[data-theme="dark"] .safe-card,[data-theme="dark"] .device-card,[data-theme="dark"] .device-tab,[data-theme="dark"] .pet-roster-card,[data-theme="dark"] .profile-hero,[data-theme="dark"] .settings-menu,[data-theme="dark"] .settings-content,[data-theme="dark"] dialog,[data-theme="dark"] .drawer,[data-theme="dark"] .go-alert{background:var(--panel)}
[data-theme="dark"] .icon-button,[data-theme="dark"] .pet-switcher,[data-theme="dark"] .button:not(.primary),[data-theme="dark"] .command,[data-theme="dark"] .switch-pet-option,[data-theme="dark"] .go-pet{color:var(--ink);background:#172329}
[data-theme="dark"] .map-source-pill,[data-theme="dark"] .coverage-picker,[data-theme="dark"] .go-map-status,[data-theme="dark"] .go-coverage{color:var(--ink);background:rgba(23,35,41,.94)}
[data-theme="dark"] .maplibregl-canvas{filter:brightness(.72) saturate(.78) contrast(1.08)}
[data-theme="dark"] .maplibregl-popup-content{color:var(--ink);background:#172329}
[data-theme="dark"] .go-language{background:rgba(255,255,255,.08)}
[data-theme="dark"] .go-language a[aria-current="page"]{color:#142127;background:#f3f5f4}
[data-theme="dark"] .go-head .theme-toggle{width:36px;height:36px;border:0;background:#172329;box-shadow:none}

/* Marketing night mode: every surface and action keeps an explicit contrast. */
[data-theme="dark"] .mk-hero,
[data-theme="dark"] .mk-page-hero,
[data-theme="dark"] .mk-product-hero,
[data-theme="dark"] .mk-how-hero{background:radial-gradient(circle at 82% 18%,rgb(var(--brand-primary-rgb, 63 116 130) / .16),transparent 30%),linear-gradient(145deg,#0d1519,#142329 66%,#172a32)}
[data-theme="dark"] .mk-hero:before,[data-theme="dark"] .mk-page-hero:after{border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .mk-proof{color:var(--muted);border-color:var(--line);background:rgba(23,35,41,.94)}
[data-theme="dark"] .mk-proof b,[data-theme="dark"] .mk-float strong,[data-theme="dark"] .mk-country-list strong{color:var(--ink)}
[data-theme="dark"] .mk-story,[data-theme="dark"] .mk-product-pain,[data-theme="dark"] .mk-how-journey,[data-theme="dark"] .mk-testimonials{background:var(--white)}
[data-theme="dark"] .mk-reassurance,[data-theme="dark"] .mk-product-proof,[data-theme="dark"] .mk-how-cards>li,[data-theme="dark"] .mk-testimonial-grid blockquote{background:var(--paper)}
[data-theme="dark"] .mk-privacy{background:linear-gradient(180deg,#0d1519,#172329)}
[data-theme="dark"] .mk-feature.light{background:linear-gradient(145deg,#172329,#1b2a30)}
[data-theme="dark"] .mk-feature.earth{background:linear-gradient(145deg,var(--brand-primary, #3f7482),var(--brand-primary, #3f7482))}
[data-theme="dark"] .mk-feature.earth h3,[data-theme="dark"] .mk-feature.earth>span,[data-theme="dark"] .mk-device-row i:nth-child(3){color:var(--ink)}
[data-theme="dark"] .mk-country-list article,[data-theme="dark"] .mk-tracker-facts article,[data-theme="dark"] .mk-product-hero-visual{border-color:transparent;background:#172329}
[data-theme="dark"] .mk-tracker-presale{border-color:var(--brand-primary, #3f7482);background:linear-gradient(135deg,var(--brand-primary, #3f7482),var(--brand-primary, #3f7482))}
[data-theme="dark"] .mk-tracker-presale>strong,[data-theme="dark"] .mk-tracker-facts strong,[data-theme="dark"] .mk-how-result{color:var(--ink)}
[data-theme="dark"] .mk-tracker-presale>small{color:#dff6f8}
[data-theme="dark"] .mk-how-result,[data-theme="dark"] .mk-alert-stack i{background:#22353d}
[data-theme="dark"] .mk-final{color:var(--ink);background:linear-gradient(135deg,var(--brand-primary, #3f7482),#26383e)}
[data-theme="dark"] .mk-final .mk-kicker,[data-theme="dark"] .mk-final h2{color:var(--ink)}
[data-theme="dark"] .mk-main-cta,[data-theme="dark"] .mk-tracker-presale>a,[data-theme="dark"] .public-cta{color:#fff!important;background:var(--brand-primary, #3f7482)}
[data-theme="dark"] .mk-main-cta:hover,[data-theme="dark"] .mk-tracker-presale>a:hover,[data-theme="dark"] .public-cta:hover{color:#fff!important;background:var(--brand-primary, #3f7482)}
[data-theme="dark"] .mk-text-link{color:#f3f5f4}
[data-theme="dark"] .mk-story-controls>button{color:#142127;background:#f3f5f4}
[data-theme="dark"] .mk-story-dots button span{background:#77878d}
[data-theme="dark"] .mk-story-dots button[aria-pressed="true"] span{background:var(--brand-primary, #3f7482)}
[data-theme="dark"] .mk-proof,[data-theme="dark"] .mk-steps li,[data-theme="dark"] .mk-country-list article,[data-theme="dark"] .mk-how-cards>li{border-color:var(--line)}
@media(max-width:1080px){.public-header .public-menu{margin-left:auto}.public-menu-theme{margin-left:auto}}
@media(max-width:560px){.theme-toggle:not(.public-menu-theme),.public-menu-theme{width:44px;min-width:44px;height:44px;padding:0}}
@media print{.theme-toggle{display:none!important}:root[data-theme="dark"]{--ink:#111;--muted:#444;--paper:#fff;--white:#fff;--panel:#fff;--line:#bbb}:root[data-theme="dark"] body,:root[data-theme="dark"] .legal-page{color:#111!important;background:#fff!important}}


/* MEO module: premium.css */
/* MEO safety premium mineral design layer.
 * Cool neutral surfaces replace the previous beige range while preserving the
 * logo's navy and coral identity. Accessibility rules load after this file.
 */

body {
  text-rendering: optimizeLegibility;
}

:where(main, [role="main"]) {
  isolation: isolate;
}

:where(main, [role="main"]) :where(h1, h2, h3) {
  text-wrap: balance;
}

:where(main, [role="main"]) :where(p, li) {
  text-wrap: pretty;
}

.public-header {
  box-shadow: 0 10px 34px rgba(16, 45, 58, .055);
}

.public-primary a,
.public-signin,
.public-cta {
  letter-spacing: -.012em;
}

.public-newsletter {
  border: 0;
  box-shadow: 0 22px 60px rgba(0, 0, 0, .18);
}

.public-footer nav a,
.public-cookie-link {
  padding-block: 3px;
  line-height: 1.45;
}

.public-dialog {
  border: 0;
}

.mk-hero {
  background:
    radial-gradient(circle at 84% 12%, var(--sky, #e4f0f5) 0%, transparent 36%),
    linear-gradient(180deg, var(--white, #fff) 0%, var(--paper, #f3f6f8) 100%);
}

.mk-hero h1 {
  line-height: .94;
  letter-spacing: -.058em;
}

.mk-section-head h2,
.mk-how h2,
.mk-benelux h2,
.mk-privacy h2,
.mk-final h2 {
  line-height: 1;
  letter-spacing: -.052em;
}

.mk-hero-copy > p,
.mk-section-head > p,
.mk-how-intro > p,
.mk-benelux > div > p,
.mk-privacy p,
.mk-final p {
  max-width: 68ch;
  line-height: 1.7;
}

.mk-feature,
.mk-country-list article,
.mk-story-card {
  border: 0;
  box-shadow: 0 20px 58px rgba(16, 45, 58, .09);
}

.mk-feature.light,
.mk-country-list article,
.mk-story {
  background: var(--white, #fff);
}

.mk-how {
  background: var(--navy, #102d3a);
}

.mk-feature.earth {
  background: linear-gradient(145deg, #dff6f8 0%, var(--brand-primary, #3f7482) 100%);
}

.mk-benelux {
  background: linear-gradient(145deg, #e4f0f5 0%, #f3f6f8 100%);
}

.mk-final {
  background: linear-gradient(135deg, #dff6f8 0%, #e4f0f5 100%);
}

.mk-text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  
  
}

.auth-card,
.card,
.safe-card,
.device-card,
.pet-roster-card,
.profile-hero,
.settings-menu,
.settings-content,
.family-panel,
.admin-panel,
.admin-metrics article,
.vet-card,
.vet-form-shell {
  border: 0;
  box-shadow: 0 22px 64px rgba(16, 45, 58, .085);
}

.auth-card,
.card,
.device-card,
.pet-roster-card,
.profile-hero,
.settings-menu,
.settings-content {
  background: var(--white, var(--panel, #fff));
}

:where(.auth-story, .mk-section-head, .mk-how-intro, .family-hero, .admin-intro, .vet-section-head) > p {
  max-width: 68ch;
  line-height: 1.7;
}

@media (max-width: 560px) {
  .mk-hero h1 {
    font-size: calc(clamp(44px, 14vw, 56px) - 2.6667px);
    line-height: .98;
    letter-spacing: -.048em;
  }

  .mk-section-head h2,
  .mk-how h2,
  .mk-benelux h2,
  .mk-privacy h2,
  .mk-final h2 {
    font-size: calc(clamp(38px, 11vw, 48px) - 2.6667px);
    line-height: 1.03;
  }
}

@media (prefers-contrast: more) {
  .public-header {
    border-bottom: 2px solid var(--ink, #18323c);
    box-shadow: none;
  }

  .public-cta,
  .auth-card,
  .card,
  .mk-feature {
    box-shadow: none;
  }

  .public-footer nav a,
  .public-cookie-link {
    color: #fff;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mk-story-card img,
  .public-cta,
  .vet-button,
  .theme-toggle {
    transition: none !important;
  }
}


/* MEO module: accessibility.css */
/* MEO readable-type floor: 12pt equivalent for screen interfaces. */
@media screen {
  :root {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    font-size: 16px !important;
    line-height: 1.5;
    max-width: 100%;
  }

  :where(main, header, footer, nav, section, article, aside, form, fieldset, dialog, div) {
    min-width: 0;
  }

  :where(img, picture, video) {
    max-width: 100%;
    height: auto;
  }

  :where(pre, code, .legal-table-scroll, .coverage-table, .price-structure, .admin-table-scroll) {
    max-width: 100%;
  }

  :where(pre, .legal-table-scroll, .coverage-table, .price-structure, .admin-table-scroll) {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  dialog {
    box-sizing: border-box;
    max-width: calc(100% - 24px);
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    overflow: auto;
    overscroll-behavior: contain;
  }

  /*
   * Keep the established heading hierarchy and code-native SVG icon sizing.
   * Everything else that can carry readable copy receives the 16px floor.
   */
  :where(body, body *)
    :not(:where(
      h1, h2, h3, h4, h5, h6,
      h1 *, h2 *, h3 *, h4 *, h5 *, h6 *,
      svg, svg *,
      [aria-hidden="true"], [aria-hidden="true"] *,
      script, style, link, meta
    )) {
    font-size: 16px !important;
  }

  :where(p, li, dt, dd, th, td, caption, figcaption, blockquote, address, small) {
    line-height: 1.5 !important;
  }

  :where(a, button, input, select, textarea, label, legend, summary, output, time) {
    line-height: 1.35 !important;
  }

  :where(button, select, textarea, summary, input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), [role="button"], [role="tab"], [role="radio"], [role="checkbox"]) {
    min-height: 44px;
    min-width: 44px;
  }

  :where(label:has(input[type="checkbox"]), label:has(input[type="radio"])) {
    min-height: 44px;
    align-items: center;
  }

  :where(input[type="checkbox"], input[type="radio"]) {
    min-width: 20px;
    min-height: 20px;
  }

  :where(p, li, dt, dd, th, td, small, label, a, button, output) {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }

  input::placeholder,
  textarea::placeholder {
    font-size: 16px !important;
    opacity: .72;
  }

  :where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"], [role="tab"], [role="radio"], [role="checkbox"]):focus-visible {
    outline: 3px solid #fff !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px #102d3a !important;
  }

  :where(input, select, textarea)[aria-invalid="true"] {
    border-width: 2px !important;
    border-style: solid !important;
    outline: 2px solid currentColor;
    outline-offset: 2px;
  }

  :where([role="alert"], .auth-alert, .scan-error, .photo-error, .admin-step-up-error, .admin-reseller-flash.is-error) {
    border-inline-start: 4px solid currentColor !important;
  }

  :where(.admin-status, .status, .pill, .device-pill) {
    border: 1px solid currentColor;
  }

  :where(a[aria-current="page"], a[aria-current="true"]) {
    text-decoration: none !important;
    
    
  }

  :where(button[aria-pressed="true"], [role="tab"][aria-selected="true"], [role="radio"][aria-checked="true"]) {
    box-shadow: inset 0 0 0 2px currentColor;
  }

  :where(main, footer, dialog) :where(p, li, small, address) a[href]:not(.button):not(.public-cta):not(.auth-primary):not(.auth-secondary) {
    text-decoration: none !important;
    font-weight: 700;
  }

  /* Existing declarations that already use !important need equal-strength fixes. */
  .auth-legal-note,
  .auth-prototype-note,
  .maplibregl-ctrl-attrib {
    font-size: 16px !important;
  }

  /* The only pre-existing sub-16px heading is a plan-card heading. */
  .plan-card h3 {
    font-size: max(16px, calc(18px - 2.6667px)) !important;
    line-height: 1.25 !important;
  }

  .admin-gateway-evidence-grid .admin-alert h3 {
    font-size: max(16px, calc(16px - 2.6667px)) !important;
    line-height: 1.25 !important;
  }

  .admin-dashboard-compact .admin-alert h3 {
    font-size: max(16px, calc(16px - 2.6667px)) !important;
    line-height: 1.25 !important;
  }

  /* A counter is meaningful copy rather than a decorative glyph. */
  .coverage-effort li::before {
    font-size: 16px !important;
  }

  .rail-expanded .rail-action::after {
    font-size: 16px !important;
  }

  .rail-button[title]::after,.rail-action[title]::after {
    font-size: 16px !important;
  }

  /* Let formerly compact shells grow instead of clipping two-line labels. */
  .public-header-inner,
  .auth-nav,
  .go-head {
    height: auto !important;
  }

  .public-header-inner {
    min-height: 78px;
    padding-block: 10px;
  }

  .auth-nav {
    min-height: 86px;
  }

  .go-head {
    min-height: 72px;
  }

  .public-footer-social,
  .public-footer-bottom,
  .auth-footer,
  .page-head,
  .head-actions,
  .top-actions,
  .modal-actions {
    flex-wrap: wrap;
  }

  .public-newsletter form > div,
  .newsletter-field {
    min-height: 52px;
  }

  .public-newsletter button,
  .newsletter-field button {
    min-width: 108px;
    padding-inline: 14px;
  }

  .language-picker select,
  .language-picker button,
  .public-language a,
  .auth-language a {
    min-width: 44px;
    min-height: 44px;
  }

  .go-language a {
    width: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  :where(
    .public-primary a, .public-signin, .public-cta, .public-menu-panel a,
    .public-footer nav a, .public-cookie-link, .public-footer-social a,
    .auth-nav-actions > a, .auth-primary, .auth-secondary, .auth-provider,
    .go-logo, .go-locate, .rail-button, .rail-action, .icon-button, .avatar,
    .app-language-switcher select, .app-language-switcher button, .help-link, .site-footer a, .social-share a,
    .footer-link-button
  ) {
    min-width: 44px;
    min-height: 44px;
  }

  .pwa-notice {
    width: min(480px, calc(100% - 28px));
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
  }

  .pwa-notice .pwa-action {
    grid-column: 2;
    justify-self: start;
  }

  .pwa-notice .pwa-close {
    grid-column: 3;
    grid-row: 1;
  }

  .go-alert {
    grid-template-columns: 44px minmax(0, 1fr) !important;
  }

  .go-alert time {
    grid-column: 2;
    justify-self: start;
  }

  .go-nav b {
    width: auto;
    min-width: 22px;
    height: 22px;
    padding-inline: 5px;
  }

  .go-coverage select,
  .coverage-picker select {
    max-width: 190px !important;
  }

  .legal-table-scroll,
  .coverage-table,
  .price-structure {
    overscroll-behavior-inline: contain;
  }

  @media (max-width: 1080px) {
    .public-header-inner {
      min-height: 68px;
    }
  }

  @media (max-width: 720px) {
    .auth-nav,
    .auth-nav-actions,
    .go-head,
    .go-title,
    .go-section-head {
      flex-wrap: wrap;
    }

    .auth-nav-actions {
      justify-content: flex-end;
    }

    .go-head {
      height: auto !important;
    }

    .public-dialog,
    .auth-card,
    .modal-body,
    .usability-dialog {
      max-width: calc(100vw - 20px);
    }

    .pwa-notice {
      max-height: calc(100dvh - 20px);
      overflow: auto;
    }
  }

  @media (max-width: 560px) {
    .auth-nav {
      min-height: 72px;
    }

    .public-dialog,
    .auth-card,
    .modal-body {
      overflow-wrap: break-word;
      word-break: normal;
      hyphens: none;
    }

    .public-newsletter form > div,
    .newsletter-field {
      height: auto;
    }

    .pwa-notice {
      right: 10px;
      width: calc(100% - 20px);
    }
  }

  @media (max-width: 359px) {
    .go-language a {
      width: 44px;
    }

    .go-head {
      gap: 5px;
      padding-inline: 8px;
    }

    .go-head > a.go-logo {
      width: 68px;
    }
  }
}

.admin-animal-history-grid h5 {
    font-size: max(16px, calc(18px - 2.6667px)) !important;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-delay: 0s !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  :where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"], [role="tab"], [role="radio"], [role="checkbox"]):focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }

  :where(button, input, select, textarea, summary, [role="button"], [role="tab"], [role="radio"], [role="checkbox"], .admin-status, .status, .pill, .device-pill) {
    border: 1px solid ButtonText !important;
    forced-color-adjust: auto;
  }

  :where([aria-current="page"], [aria-selected="true"], [aria-pressed="true"], [aria-checked="true"]) {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }

  :where([role="alert"], .auth-alert, .scan-error, .photo-error, .admin-step-up-error, .admin-reseller-flash.is-error) {
    border-inline-start: 4px double CanvasText !important;
  }
}

/* Link states use colour, weight, surfaces and a strong keyboard focus ring.
 * Product copy deliberately has no underline or overline. */
html:root body :where(*, *::before, *::after) {
  text-decoration: none !important;
  text-decoration-line: none !important;
}
/* Keyboard users receive a visible first action only when it receives focus. */
.skip-link {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  left: max(12px, env(safe-area-inset-left));
  z-index: 10000;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 10px 16px;
  border-radius: 12px;
  background: #18323c;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(15, 35, 43, 0.24);
  transform: translateY(calc(-100% - 32px));
  transition: transform 160ms ease;
}

/* Keep the keyboard shortcut out of the visual layout until it receives focus.
 * Clipping is deliberately combined with the off-canvas transform so a stale
 * browser stylesheet cannot expose the link as ordinary page copy. */
.skip-link:not(:focus):not(:focus-visible) {
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link:focus,
.skip-link:focus-visible {
  width: auto;
  height: auto;
  min-height: 44px;
  padding: 10px 16px;
  overflow: visible;
  clip-path: none;
  white-space: normal;
  transform: translateY(0);
  outline: 3px solid var(--brand-primary, #3f7482);
  outline-offset: 3px;
}


/* MEO module: usability.css */
.usability-toggle {
  min-width: 44px;
  min-height: 44px;
  padding: 0 11px;
  border: 0;
  border-radius: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  flex: 0 0 auto;
  color: var(--ink, #18323c);
  background: var(--white, #ffffff);
  box-shadow: 0 7px 20px rgba(16, 45, 58, .1);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

/* Legal map attribution is metadata, not reading copy: keep it present and discreet. */
.meo-map-credits,.meo-map-credits :is(strong,span,a),
html[data-readability="comfort"] .meo-map-credits,
html[data-readability="comfort"] .meo-map-credits :is(strong,span,a),
html[data-readability="clear"] .meo-map-credits,
html[data-readability="clear"] .meo-map-credits :is(strong,span,a){font-size:calc(1px * 10)!important;line-height:1.15!important}

.usability-toggle:hover { box-shadow: 0 11px 26px rgba(16, 45, 58, .15); }
.usability-toggle:focus-visible { outline: 3px solid rgb(var(--brand-secondary-rgb, 236 122 68) / .52); outline-offset: 3px; }
.usability-toggle > b { font-size: 17px !important; letter-spacing: -.05em; }
.usability-toggle [data-usability-label] { font-size: 16px !important; }

.public-usability-fab {
  position: fixed;
  z-index: 170;
  left: max(22px, env(safe-area-inset-left));
  bottom: max(22px, env(safe-area-inset-bottom));
  min-height: 48px;
  padding-inline: 15px;
  border-radius: 999px;
  color: #fff;
  background: var(--navy, #102d3a);
  box-shadow: 0 14px 36px rgba(9, 12, 13, .24);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.public-usability-fab:hover {
  background: var(--earth-action, var(--brand-primary, #3f7482));
  box-shadow: 0 17px 42px rgba(9, 12, 13, .3);
  transform: translateY(-2px);
}
.public-usability-fab img {
  width: 22px;
  height: 22px;
  filter: brightness(0) invert(1);
}
body:has(.public-cookie-banner:not([hidden])) .public-usability-fab { bottom: 132px; }

@media (max-width: 1199px) {
  .public-usability-fab { bottom: calc(82px + env(safe-area-inset-bottom)); }
  body:has(.public-cookie-banner:not([hidden])) .public-usability-fab { bottom: calc(214px + env(safe-area-inset-bottom)); }
}

.usability-dialog {
  box-sizing: border-box;
  width: min(540px, calc(100% - 32px));
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  padding: clamp(26px, 5vw, 42px);
  border: 0;
  border-radius: 30px;
  color: var(--ink, #18323c);
  background: var(--white, #ffffff);
  box-shadow: 0 36px 100px rgba(5, 19, 25, .36);
  overflow: auto;
  overscroll-behavior: contain;
}

.usability-dialog::backdrop { background: rgba(7, 20, 25, .68); backdrop-filter: blur(7px); }
.usability-dialog[open] { display: block; }
.usability-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 13px;
  color: var(--ink, #18323c);
  background: rgba(24, 50, 60, .08);
  font-size: 24px !important;
  cursor: pointer;
}
.usability-badge {
  width: 54px;
  height: 54px;
  border-radius: 17px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #102d3a;
  font-size: 21px !important;
  font-weight: 950;
}
.usability-dialog h2 { margin: 18px 48px 9px 0; font-size: calc(clamp(30px, 5vw, 42px) - 2.6667px); line-height: 1.05; letter-spacing: -.045em; }
.usability-dialog > p { margin: 0; color: var(--muted, #68747a); font-size: 16px !important; line-height: 1.6 !important; }
.usability-choices { margin: 25px 0 18px; display: grid; gap: 10px; }
.usability-choice {
  width: 100%;
  min-height: 78px;
  padding: 13px 15px;
  border: 2px solid transparent;
  border-radius: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px;
  color: var(--ink, #18323c);
  background: rgba(24, 50, 60, .065);
  text-align: left;
  cursor: pointer;
}
.usability-choice:hover { background: rgba(24, 50, 60, .11); }
.usability-choice.is-selected { border-color: currentColor; color: #fff; background: #102d3a; box-shadow: 0 13px 30px rgba(16, 45, 58, .2); }
.usability-choice strong,
.usability-choice span { grid-column: 1; }
.usability-choice.is-selected::after {
  content: '✓';
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  font-size: 22px;
  font-weight: 950;
}
.usability-choice strong { font-size: 18px !important; }
.usability-choice span { color: var(--muted, #68747a); font-size: 16px !important; line-height: 1.45 !important; }
.usability-choice.is-selected span { color: rgba(255, 255, 255, .76); }
.usability-dialog > small { display: block; color: var(--muted, #68747a); font-size: 16px !important; line-height: 1.5 !important; }

html[data-readability="comfort"] { --muted: #4d5c62; --line: #b9c7cd; }
html[data-readability="clear"] { --muted: #3e4c52; --line: #93a3aa; }

@media screen {
  html[data-readability="comfort"] body,
  html[data-readability="comfort"] :where(body, body *):not(:where(h1, h2, h3, h4, h5, h6, h1 *, h2 *, h3 *, h4 *, h5 *, h6 *, svg, svg *, [aria-hidden="true"], [aria-hidden="true"] *, script, style, link, meta)) {
    font-size: 18px !important;
  }
  html[data-readability="clear"] body,
  html[data-readability="clear"] :where(body, body *):not(:where(h1, h2, h3, h4, h5, h6, h1 *, h2 *, h3 *, h4 *, h5 *, h6 *, svg, svg *, [aria-hidden="true"], [aria-hidden="true"] *, script, style, link, meta)) {
    font-size: 20px !important;
  }
  html[data-readability="comfort"] :where(p, li, label, a, button, input, select, textarea, small),
  html[data-readability="clear"] :where(p, li, label, a, button, input, select, textarea, small) {
    line-height: 1.55 !important;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }
  html[data-readability="comfort"] :where(button, input:not([type="checkbox"]):not([type="radio"]), select, textarea, summary, [role="button"], [role="radio"]) { min-width: 50px; min-height: 50px; }
  html[data-readability="clear"] :where(button, input:not([type="checkbox"]):not([type="radio"]), select, textarea, summary, [role="button"], [role="radio"]) { min-width: 56px; min-height: 56px; }
  html[data-readability="comfort"] :where(label:has(input[type="checkbox"]), label:has(input[type="radio"])) { min-height: 50px; }
  html[data-readability="clear"] :where(label:has(input[type="checkbox"]), label:has(input[type="radio"])) { min-height: 56px; }
}

:root[data-theme="dark"] .usability-toggle:not(.public-usability-fab),
:root[data-theme="dark"] .usability-dialog { color: #f3f5f4; background: #172329; }
:root[data-theme="dark"] .public-usability-fab { color: #fff; background: var(--brand-primary, #3f7482); }
:root[data-theme="dark"] .usability-close,
:root[data-theme="dark"] .usability-choice { color: #f3f5f4; background: #223138; }
:root[data-theme="dark"] .usability-choice.is-selected { color: #fff; background: var(--brand-primary, #3f7482); }
:root[data-theme="dark"] .usability-choice.is-selected span { color: #fff; }

@media (max-width: 680px) {
  .auth-nav-actions .usability-toggle [data-usability-label],
  .top-actions .usability-toggle [data-usability-label],
  .go-head .usability-toggle [data-usability-label] { display: none; }
  .auth-nav-actions .usability-toggle,
  .top-actions .usability-toggle,
  .go-head .usability-toggle { width: 44px; padding: 0; }
  .public-usability-fab {
    left: max(14px, env(safe-area-inset-left));
    bottom: calc(82px + env(safe-area-inset-bottom));
    width: 48px;
    min-width: 48px;
    height: 48px;
    padding: 0;
  }
  .public-usability-fab [data-usability-label] { display: none; }
  body:has(.public-cookie-banner:not([hidden])) .public-usability-fab { bottom: calc(246px + env(safe-area-inset-bottom)); }
}

@media (max-width: 420px) {
  .usability-dialog { width: calc(100% - 20px); padding: 25px 20px; border-radius: 24px; }
  .usability-dialog h2 { margin-right: 40px; font-size: calc(30px - 2.6667px); }
  .usability-choice { min-height: 74px; padding: 13px 14px; }
}

/*
 * Keep the marketing hero's quiet secondary action clear of the persistent
 * 48 px accessibility control on narrow screens. The primary CTA retains the
 * full line and remains the first obvious action.
 */
@media (max-width: 560px) {
  .mk-actions .mk-text-link {
    width: calc(100% - 60px);
    min-height: 48px;
    margin-left: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .usability-dialog::backdrop { backdrop-filter: none; }
  .usability-toggle,
  .usability-choice,
  .usability-close { transition: none !important; }
}

@media (forced-colors: active) {
  .usability-toggle,
  .usability-close,
  .usability-choice,
  .usability-dialog {
    border: 1px solid ButtonText;
    box-shadow: none;
    forced-color-adjust: auto;
  }

  .usability-choice.is-selected {
    border: 3px double Highlight;
  }
}

@media print { .usability-toggle, .usability-dialog { display: none !important; } }

/* The mobile map toolbar is spatial navigation, not reading copy. Keep it
   compact even when the global readable-type floor or a readability mode is active. */
@media screen and (max-width:1199px){
  html :is(.map-route-fullscreen .map-data-toggle .segment,.map-route-fullscreen .map-layer-toggle .segment){font-size:14.5px!important;line-height:1.1!important;font-weight:500!important;min-height:32px!important;height:32px!important}
  html .map-route-fullscreen .map-data-toggle{min-height:38px!important;height:38px!important}
  html .map-route-fullscreen .map-layer-toggle{min-height:32px!important;height:32px!important}
  html .map-route-fullscreen .map-position-chevron{min-width:48px!important;width:48px!important;min-height:25px!important;height:25px!important;font-size:14.5px!important}
  html .map-route-fullscreen .map-latest-position :is(.eyebrow,strong,p){font-size:14.5px!important;line-height:1.35!important}
  html :is(.map-route-fullscreen .segmented,.map-route-fullscreen .map-position-chevron,.map-route-fullscreen .map-panel){border-color:transparent!important}
  html :is(.map-route-fullscreen .segment,.rail .rail-button,.rail .rail-action){text-align:center!important;justify-content:center!important}
}


/* MEO module: language-picker.css */
/**
 * FR - Sélecteur linguistique commun, compact et utilisable sans JavaScript.
 * EN - Shared compact language picker with a complete non-JavaScript fallback.
 */
.language-picker {
  min-width: 0;
  margin: 0;
  padding: 3px;
  border: 1px solid var(--line, #d5e0e5);
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--ink, #18323c);
  background: #fff;
  box-shadow: 0 7px 18px rgba(16, 45, 58, .06);
}

.language-picker select {
  min-width: 0;
  width: 154px;
  min-height: 44px;
  padding: 6px 30px 6px 10px;
  border: 0;
  border-radius: 9px;
  color: inherit;
  background-color: transparent;
  font: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
}

.language-picker button {
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--navy, var(--forest, #102d3a));
  font: inherit;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.language-picker select:focus-visible,
.language-picker button:focus-visible {
  outline: 3px solid var(--apricot, var(--brand-primary, #6e5367));
  outline-offset: 2px;
}

.language-picker button:hover {
  background: #183d4d;
}

.language-picker.is-enhanced button {
  display: none;
}

.language-picker.is-enhanced{position:relative;padding:0;border:0;background:transparent;box-shadow:none}.language-picker.is-enhanced select,.language-picker.is-enhanced>button[type="submit"]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.language-picker.is-enhanced .language-picker-trigger{position:relative;width:auto;min-width:184px;min-height:48px;padding:0 14px;border:1px solid var(--line,#d5e0e5);border-radius:15px;display:grid;grid-template-columns:28px 1fr 20px;align-items:center;gap:8px;color:var(--ink,#18323c);background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(16,45,58,.1);font-size:16px;font-weight:850;text-align:left}.language-picker-globe{position:relative;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:#fff;background:var(--ink,#18323c)}.language-picker-globe::before{content:"";width:14px;height:14px;border:1.7px solid currentColor;border-radius:50%;background:linear-gradient(90deg,transparent 44%,currentColor 45% 55%,transparent 56%),linear-gradient(transparent 44%,currentColor 45% 55%,transparent 56%)}.language-picker-globe::after{content:"";position:absolute;width:6px;height:14px;border:1.4px solid currentColor;border-top-color:transparent;border-bottom-color:transparent;border-radius:50%}.language-picker-chevron{color:var(--muted,#5f6e76);font-size:20px;transition:transform .18s ease}.language-picker.is-open .language-picker-chevron{transform:rotate(180deg)}.language-picker.is-enhanced .language-picker-menu{position:absolute;z-index:520;top:calc(100% + 9px);right:0;width:276px;padding:8px;border:1px solid var(--line,#d5e0e5);border-radius:18px;color:var(--ink,#18323c);background:rgba(255,255,255,.98);box-shadow:0 24px 70px rgba(9,28,36,.2);backdrop-filter:blur(18px)}.language-picker.is-enhanced .language-picker-menu[hidden]{display:none}.language-picker.is-enhanced .language-picker-option{width:100%;min-height:48px;padding:7px 10px;border:0;border-radius:12px;display:grid;grid-template-columns:38px 1fr 22px;align-items:center;gap:9px;color:inherit;background:transparent;font:inherit;font-size:16px;font-weight:750;text-align:left}.language-picker.is-enhanced .language-picker-option:hover,.language-picker.is-enhanced .language-picker-option:focus-visible{color:var(--ink,#18323c);background:#edf3f5;outline:0}.language-picker-code{color:var(--muted,#5f6e76);font-weight:900}.language-picker-check{opacity:0;color:var(--earth-action,var(--brand-primary, #6e5367));font-size:18px}.language-picker-option[aria-selected="true"]{color:var(--ink,#18323c);background:#e8f8fa!important}.language-picker-option[aria-selected="true"] .language-picker-check{opacity:1}[data-theme="dark"] .language-picker.is-enhanced .language-picker-trigger,[data-theme="dark"] .language-picker.is-enhanced .language-picker-menu{color:#f3f5f4;border-color:rgba(255,255,255,.16);background:rgba(20,36,43,.98)}[data-theme="dark"] .language-picker-globe{color:#18323c;background:var(--brand-primary, #6e5367)}[data-theme="dark"] .language-picker.is-enhanced .language-picker-option:hover,[data-theme="dark"] .language-picker.is-enhanced .language-picker-option:focus-visible{color:#fff;background:#263c45}[data-theme="dark"] .language-picker-option[aria-selected="true"]{color:#fff;background:var(--brand-primary, #6e5367)!important}@media(max-width:560px){.language-picker.is-enhanced .language-picker-trigger{min-width:144px;padding-inline:10px}.language-picker.is-enhanced .language-picker-menu{position:fixed;top:auto;right:12px;bottom:12px;left:12px;width:auto;max-height:min(520px,calc(100dvh - 24px));overflow:auto;padding:10px;border-radius:22px}.language-picker.is-enhanced .language-picker-option{min-height:52px}}

/* Compact header control: the full language names remain available inside
   the menu while the persistent toolbar only exposes the active code. */
.language-picker.is-enhanced .language-picker-trigger{min-width:96px;min-height:44px;padding:0 10px;border-radius:14px;grid-template-columns:26px auto 14px;gap:7px;box-shadow:0 7px 18px rgba(16,45,58,.07);font-size:16px;letter-spacing:.04em}
.language-picker.is-enhanced .language-picker-menu{top:calc(100% + 8px);width:208px;padding:6px;border-radius:16px;box-shadow:0 20px 55px rgba(9,28,36,.18)}
.language-picker.is-enhanced .language-picker-option{min-height:44px;padding-block:5px;font-size:16px}
.language-picker-separator{height:1px;margin:6px 8px;background:var(--line,#d5e0e5)}
@media(max-width:560px){.language-picker.is-enhanced .language-picker-trigger{min-width:88px;padding-inline:8px}}

.rail-language-switcher{display:none}
.public-preferences-dock .language-picker.is-enhanced .language-picker-menu{top:auto;right:0;bottom:calc(100% + 8px)}
@media(max-width:899px){
  .rail-language-switcher{display:flex;width:100%;margin-top:auto;margin-bottom:8px}
  .rail-language-switcher .language-picker-trigger{width:100%;grid-template-columns:26px 1fr 14px}
  .rail-language-switcher .language-picker-menu{position:absolute;inset:auto 0 calc(100% + 8px) 0;width:100%;max-height:min(380px,55dvh);overflow:auto}
}
@media(max-width:560px){.public-preferences-dock .language-picker.is-enhanced .language-picker-menu{position:fixed;top:auto;right:8px;bottom:calc(154px + env(safe-area-inset-bottom));left:8px;width:auto;max-height:min(460px,calc(100dvh - 174px - env(safe-area-inset-bottom)))}}

[data-theme="dark"] .language-picker {
  color: #f3f5f4;
  background: #172329;
  border-color: rgba(255, 255, 255, .18);
}

[data-theme="dark"] .language-picker select {
  color-scheme: dark;
}

@media (max-width: 560px) {
  .language-picker {
    max-width: 100%;
  }

  .language-picker select {
    width: min(154px, calc(100vw - 132px));
  }
}

.public-menu .language-picker {
  width: 100%;
}

.public-menu .language-picker select {
  width: auto;
  flex: 1 1 auto;
}

.go-language select {
  width: 64px;
}

@media (max-width: 479px) {
  .go-head .language-picker {
    padding: 2px;
  }

  .go-head .language-picker select {
    width: 52px;
    padding-inline: 8px 22px;
  }
}

@media (max-width: 560px) {
  .auth-language select {
    width: min(110px, calc(100vw - 202px));
  }
}

@media (forced-colors: active) {
  .language-picker,
  .language-picker select,
  .language-picker button {
    border: 1px solid ButtonText;
    forced-color-adjust: auto;
  }
}


/* MEO module: brand-palette.css */
/**
 * MEO Safety - backwards-compatible default palette.
 *
 * Named, immutable identities now live in brand-themes/*.css. This fallback
 * prevents an unpainted first frame before theme.js restores the saved choice.
 */
:root {
  --meo-brand-primary: #6e5367;
  --meo-brand-secondary: #c9a7a7;
}


/* MEO module: brand-themes/meo-prune-rose-v1.css */
/**
 * MEO Safety — immutable colour identity: Prune & Rose, V1.
 * This file is append-only: publish a new -vN file instead of editing it.
 */
:root[data-brand-theme='meo-prune-rose-v1'] {
  --meo-brand-primary: #6e5367;
  --meo-brand-secondary: #c9a7a7;
  --meo-brand-on-primary: #ffffff;
  --meo-brand-on-action: #ffffff;
  --meo-brand-on-secondary: #3e2e3a;
  --meo-brand-logo-url: url('/assets/brand/oem/meo-logo-oem-6e5367-c9a7a7.svg?v=1');
  --meo-brand-mascot-url: url('/assets/brand/oem/meo-mascot-o-oem-6e5367-c9a7a7.svg?v=1');
}


/* MEO module: brand-themes/meo-turquoise-navy-v1.css */
/**
 * MEO Safety — immutable colour identity: Turquoise & Navy, V1.
 * This file is append-only: publish a new -vN file instead of editing it.
 */
:root[data-brand-theme='meo-turquoise-navy-v1'] {
  --meo-brand-primary: #47bbd6;
  --meo-brand-secondary: #223452;
  --meo-brand-on-primary: #000000;
  --meo-brand-on-action: #000000;
  --meo-brand-on-secondary: #ffffff;
  --meo-brand-logo-url: url('/assets/brand/official/meo-logo.svg?v=1');
  --meo-brand-mascot-url: url('/assets/brand/oem/meo-mascot-o-oem-47bbd6-223452.svg?v=1');
}


/* MEO module: brand-themes/meo-petroleum-orange-v1.css */
/**
 * MEO Safety — immutable colour identity: Bleu pétrole & orange · V1.
 * Generated as meo-petroleum-orange-v1; create a new -vN file instead of editing it.
 */
:root[data-brand-theme='meo-petroleum-orange-v1'] {
  --meo-brand-primary: #3f7482;
  --meo-brand-secondary: #ec7a44;
  --meo-brand-on-primary: #ffffff;
  --meo-brand-on-action: #ffffff;
  --meo-brand-on-secondary: #000000;
  --meo-brand-logo-url: url('/assets/brand/oem/meo-logo-oem-3f7482-ec7a44.svg?v=1');
  --meo-brand-mascot-url: url('/assets/brand/oem/meo-mascot-o-oem-3f7482-ec7a44.svg?v=1');
}


/* MEO module: brand-theme.css */
/**
 * MEO Safety - canonical OEM/ODM theme.
 *
 * FR - Chaque identité versionnée fournit seulement deux couleurs et ses actifs.
 * Les variantes structurelles sont calculées ici sans réécrire cette feuille.
 * Les états de sécurité restent stables pour toutes les identités partenaires.
 * EN - Each versioned identity supplies only two colours and its assets.
 * Structural variants are calculated here without rewriting this stylesheet.
 * Safety states remain stable across every partner identity.
 */
@font-face {
  font-family: 'Lexend';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/Lexend-Vietnamese-Variable.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Lexend';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/Lexend-LatinExt-Variable.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lexend';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/Lexend-Latin-Variable.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Named-theme inputs. Fallbacks prevent an unpainted frame while the saved
   * selection is restored from the closed local catalogue. */
  --brand-primary: var(--meo-brand-primary, #6e5367);
  --brand-secondary: var(--meo-brand-secondary, #c9a7a7);

  /* Calculated visual structure. Never replace these with copied hex values. */
  --brand-text: var(--meo-brand-reading, color-mix(in srgb, var(--brand-primary) 56%, black));
  --brand-background: color-mix(in srgb, var(--brand-secondary) 8%, white);
  --brand-surface: color-mix(in srgb, var(--brand-secondary) 2%, white);
  --brand-surface-tint: color-mix(in srgb, var(--brand-secondary) 7%, var(--brand-background));
  --brand-surface-strong: color-mix(in srgb, var(--brand-secondary) 15%, var(--brand-background));
  --brand-surface-emphasis: color-mix(in srgb, var(--brand-primary) 88%, black);
  --brand-surface-emphasis-strong: color-mix(in srgb, var(--brand-primary) 68%, black);
  --brand-surface-gradient: linear-gradient(145deg, var(--brand-surface), var(--brand-surface-tint));
  --brand-secondary-gradient: linear-gradient(145deg, var(--brand-secondary-soft), var(--brand-surface-strong));
  --brand-emphasis-gradient: linear-gradient(145deg, var(--brand-surface-emphasis), var(--brand-surface-emphasis-strong));
  --brand-alert: #d97706;
  --brand-alert-background: #fef3c7;
  --brand-positive: #2f7d52;
  --brand-positive-background: #e8f5ed;
  --brand-font: 'Lexend', 'Noto Sans', 'Noto Sans Devanagari', 'Noto Sans Greek', 'Inter', 'Open Sans', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --brand-logo-url: var(--meo-brand-logo-url, url('/assets/brand/oem/meo-logo-oem-6e5367-c9a7a7.svg?v=1'));
  --brand-mascot-url: var(--meo-brand-mascot-url, url('/assets/brand/oem/meo-mascot-o-oem-6e5367-c9a7a7.svg?v=1'));

  /* Derived automatically: partners never maintain copied RGB or dark values. */
  --brand-primary-rgb: from var(--brand-primary) r g b;
  --brand-secondary-rgb: from var(--brand-secondary) r g b;
  --brand-primary-dark: color-mix(in srgb, var(--brand-primary) 78%, black);
  --brand-primary-darker: color-mix(in srgb, var(--brand-primary) 62%, black);
  --brand-secondary-dark: color-mix(in srgb, var(--brand-secondary) 48%, black);
  --brand-secondary-hover: var(--meo-brand-secondary-hover, color-mix(in srgb, var(--brand-secondary) 82%, var(--brand-primary)));
  --brand-primary-soft: color-mix(in srgb, var(--brand-primary) 10%, var(--brand-background));
  --brand-secondary-soft: color-mix(in srgb, var(--brand-secondary) 18%, var(--brand-background));
  --brand-primary-border: color-mix(in srgb, var(--brand-primary) 42%, var(--brand-background));
  --brand-secondary-border: color-mix(in srgb, var(--brand-secondary) 38%, var(--brand-background));
  --brand-alert-dark: color-mix(in srgb, var(--brand-alert) 72%, black);
  --brand-muted: var(--meo-brand-reading-muted, color-mix(in srgb, var(--brand-text) 68%, white));
  --brand-line: color-mix(in srgb, var(--brand-primary) 18%, var(--brand-background));
  /* Complete semantic roles: every shell can be recoloured from the same two
   * inputs without copying a palette hex into component CSS. */
  --brand-reading: var(--meo-brand-reading, var(--brand-text));
  --brand-reading-muted: var(--meo-brand-reading-muted, var(--brand-muted));
  --brand-link: var(--meo-brand-link, var(--brand-primary-dark));
  --brand-link-hover: var(--meo-brand-link-hover, var(--brand-primary-darker));
  --brand-rail-background: var(--meo-brand-rail-background, color-mix(in srgb, var(--brand-primary) 58%, black));
  --brand-footer-background: var(--meo-brand-footer-background, color-mix(in srgb, var(--brand-primary) 42%, black));
  --brand-on-dark: var(--meo-brand-on-dark, white);
  --brand-on-dark-muted: var(--meo-brand-on-dark-muted, white);
  --brand-on-dark-accent: var(--meo-brand-on-dark-accent, white);
  --brand-dark-line: color-mix(in srgb, var(--brand-secondary) 22%, transparent);
  --brand-navigation-hover: var(--meo-brand-navigation-hover, color-mix(in srgb, var(--brand-secondary) 10%, var(--brand-rail-background)));
  --brand-navigation-active: var(--meo-brand-navigation-active, color-mix(in srgb, var(--brand-secondary) 18%, var(--brand-rail-background)));
  --brand-icon-surface: var(--brand-primary-soft);
  /* Tile and inline-SVG roles are derived once for every current and future
   * OEM identity. Semantic success, warning and danger variants opt out. */
  --brand-tile-surface: var(--meo-brand-tile-surface, color-mix(in srgb, var(--brand-secondary) 7%, var(--brand-surface)));
  --brand-tile-surface-hover: var(--meo-brand-tile-surface-hover, color-mix(in srgb, var(--brand-secondary) 13%, var(--brand-surface)));
  --brand-tile-border: color-mix(in srgb, var(--brand-primary) 24%, var(--brand-background));
  --brand-tile-shadow: 0 10px 28px color-mix(in srgb, var(--brand-primary) 11%, transparent);
  /* Reading is derived darker than primary-dark for bright OEM primaries;
   * this keeps monochrome tile glyphs at WCAG AA without palette exceptions. */
  --brand-tile-icon: var(--meo-brand-tile-icon, var(--brand-reading));
  --brand-tile-icon-surface: var(--meo-brand-tile-icon-surface, color-mix(in srgb, var(--brand-primary) 13%, var(--brand-surface)));
  --brand-tile-icon-border: color-mix(in srgb, var(--brand-primary) 26%, var(--brand-surface));
  --brand-tile-icon-emphasis: var(--brand-primary);
  --brand-tile-icon-on-emphasis: var(--brand-on-primary);
  --brand-action: var(--brand-primary);
  --brand-action-hover: var(--meo-brand-action-hover, var(--brand-primary-dark));
  --brand-on-primary: var(--meo-brand-on-primary, #ffffff);
  --brand-on-action: var(--meo-brand-on-action, var(--brand-on-primary));
  --brand-on-action-hover: var(--meo-brand-on-action-hover, var(--brand-on-action));
  --brand-on-secondary: var(--meo-brand-on-secondary, var(--brand-text));
  --brand-on-secondary-hover: var(--meo-brand-on-secondary-hover, var(--brand-on-secondary));
  --brand-heading: var(--meo-brand-heading, var(--brand-primary-dark));
  --brand-focus: var(--meo-brand-focus, var(--brand-primary-dark));
  --brand-cyan-halo: color-mix(in srgb, var(--brand-secondary) 18%, transparent);
  --brand-cold-shadow: 0 14px 36px color-mix(in srgb, var(--brand-primary) 16%, transparent);
  --brand-cold-shadow-soft: 0 6px 20px color-mix(in srgb, var(--brand-primary) 10%, transparent);
  --brand-focus-ring: 0 0 0 4px color-mix(in srgb, var(--brand-focus) 34%, transparent);

  /* Stable aliases keep PHP, PWA, Admin and React surfaces aligned. */
  --brand: var(--brand-primary) !important;
  --brand-dark: var(--brand-text) !important;
  --primary: var(--brand-primary) !important;
  --primary-dark: var(--brand-primary-dark) !important;
  --teal: var(--brand-primary) !important;
  --earth-action: var(--brand-action) !important;
  --mint2: var(--brand-primary) !important;
  --admin-earth: var(--brand-action) !important;
  --blog-accent: var(--brand-primary) !important;
  --blog-accent-dark: var(--brand-primary-dark) !important;

  --secondary: var(--brand-secondary) !important;
  --accent: var(--brand-secondary) !important;
  --success: var(--brand-positive) !important;
  --success-soft: var(--brand-positive-background) !important;
  --coral: var(--brand-alert-dark) !important;
  --apricot: var(--brand-secondary-soft) !important;
  --orange: var(--brand-secondary) !important;
  --warning: var(--brand-alert-dark) !important;
  --warning-soft: var(--brand-alert-background) !important;
  --alert-text: var(--brand-text);
  --alert-marker: var(--brand-alert);
  --alert-background: var(--brand-alert-background);
}

/* Accessibility-role completion for identities published before the v2 OEM
 * generator. The historical theme files remain immutable; future identities
 * receive the same roles directly in their own versioned stylesheet. */
:root[data-brand-theme='meo-prune-rose-v1'] {
  --meo-brand-reading:#3e2e3a;--meo-brand-reading-muted:#746971;--meo-brand-heading:#564150;
  --meo-brand-link:#564150;--meo-brand-link-hover:#443340;--meo-brand-on-action-hover:#ffffff;
  --meo-brand-on-secondary-hover:#3e2e3a;--meo-brand-secondary-hover:#b9989b;--meo-brand-focus:#6e5367;
  --meo-brand-rail-background:#493744;--meo-brand-navigation-hover:#5c4853;--meo-brand-navigation-active:#6a545e;
  --meo-brand-footer-background:#2e232b;--meo-brand-on-dark:#ffffff;--meo-brand-on-dark-muted:#ede1e1;--meo-brand-on-dark-accent:#d8c0c0;
  --meo-brand-tile-surface:#faf7f7;--meo-brand-tile-surface-hover:#f7f2f2;--meo-brand-tile-icon:#564150;--meo-brand-tile-icon-surface:#ebe7ea;
}
:root[data-brand-theme='meo-turquoise-navy-v1'] {
  --meo-brand-reading:#111111;--meo-brand-reading-muted:#545454;--meo-brand-heading:#111111;
  --meo-brand-link:#2c7485;--meo-brand-link-hover:#111111;--meo-brand-on-action-hover:#000000;
  --meo-brand-on-secondary-hover:#ffffff;--meo-brand-secondary-hover:#294c6a;--meo-brand-focus:#3792a7;
  --meo-brand-rail-background:#2f7b8d;--meo-brand-navigation-hover:#2d7084;--meo-brand-navigation-active:#2c697e;
  --meo-brand-footer-background:#1e4f5a;--meo-brand-on-dark:#ffffff;--meo-brand-on-dark-muted:#ffffff;--meo-brand-on-dark-accent:#ffffff;
  --meo-brand-tile-surface:#ecedf0;--meo-brand-tile-surface-hover:#dfe1e6;--meo-brand-tile-icon:#2c7485;--meo-brand-tile-icon-surface:#e4f3f7;
}
:root[data-brand-theme='meo-petroleum-orange-v1'] {
  --meo-brand-reading:#234149;--meo-brand-reading-muted:#4b636a;--meo-brand-heading:#315a65;
  --meo-brand-link:#315a65;--meo-brand-link-hover:#274851;--meo-brand-on-action-hover:#ffffff;
  --meo-brand-on-secondary-hover:#000000;--meo-brand-secondary-hover:#cd794f;--meo-brand-focus:#3f7482;
  --meo-brand-rail-background:#2a4d56;--meo-brand-navigation-hover:#475453;--meo-brand-navigation-active:#5c5951;
  --meo-brand-footer-background:#1a3137;--meo-brand-on-dark:#ffffff;--meo-brand-on-dark-muted:#f9d2bf;--meo-brand-on-dark-accent:#ffffff;
  --meo-brand-tile-surface:#fef3ee;--meo-brand-tile-surface-hover:#fdebe3;--meo-brand-tile-icon:#315a65;--meo-brand-tile-icon-surface:#e6eaeb;
}

/* Structural colours apply only in light mode. Explicit night mode keeps its
 * reviewed dark palette and therefore never receives dark text on dark cards. */
:root:not([data-theme='dark']) {
  --text: var(--brand-text) !important;
  --ink: var(--brand-text) !important;
  --ink-2: var(--brand-muted) !important;
  --muted: var(--brand-muted) !important;
  --background: var(--brand-background) !important;
  --bg: var(--brand-background) !important;
  --paper: var(--brand-background) !important;
  --surface-soft: var(--brand-background) !important;
  --soft: var(--brand-background) !important;
  --line: var(--brand-line) !important;
  --border: var(--brand-line) !important;
  --surface: var(--brand-surface) !important;
  --panel: var(--brand-surface) !important;
  --white: var(--brand-surface) !important;
  --shadow: var(--brand-cold-shadow) !important;
  --shadow-soft: var(--brand-cold-shadow-soft) !important;
  --sky: color-mix(in srgb, var(--brand-primary) 7%, var(--brand-background)) !important;
  /* Legacy PHP, Prototype and Superadmin aliases. They are deliberately kept
   * here instead of recolouring each historical stylesheet by hand. */
  --forest: var(--brand-rail-background) !important;
  --navy: var(--brand-primary-darker) !important;
  --panel: var(--brand-surface) !important;
  --prototype-footer-bg: var(--brand-footer-background) !important;
  --admin-ink: var(--brand-reading) !important;
  --admin-muted: var(--brand-reading-muted) !important;
  --admin-paper: var(--brand-background) !important;
  --admin-panel: var(--brand-surface) !important;
  --admin-navy: var(--brand-primary-darker) !important;
  --admin-sky: var(--brand-primary-soft) !important;
  --admin-line: var(--brand-line) !important;
  --admin-panel-border: 1px solid var(--brand-line) !important;
  --legal-ink: var(--brand-reading) !important;
  --legal-copy: var(--brand-reading-muted) !important;
  --legal-accent: var(--brand-primary) !important;
  --legal-accent-dark: var(--brand-primary-dark) !important;
  --legal-line: var(--brand-line) !important;
  --legal-paper: var(--brand-background) !important;
  --legal-white: var(--brand-surface) !important;
}

body,
button,
input,
select,
textarea {
  font-family: var(--brand-font) !important;
}

/* Route every standard light-surface reference through the reviewed coloured
 * SVG and version its URL so a palette update is visible immediately. */
img[src$='meo-logo.svg'],
img[src*='meo-logo.svg?'],
img[src$='MEO-logo.svg'],
img[src*='MEO-logo.svg?'],
img[src$='meo-logo-accessible.svg'],
img[src*='meo-logo-accessible.svg?'],
img[src*='/assets/brand/oem/meo-logo-oem-'] {
  content: var(--brand-logo-url);
}

/* Dark surfaces keep the same themed SVG source, then render it as a clean
 * white signature. The transparent lockup avoids the former white cartouche. */
.meo-lockup-on-dark {
  padding: 0 !important;
  border-radius: 0 !important;
  color: #fff !important;
  background: transparent !important;
}

.meo-lockup-on-dark > img {
  filter: brightness(0) invert(1) !important;
}

/* Keep the historic mascot untouched. The active OEM theme redirects image
 * and CSS-background consumers to its immutable palette-specific variant. */
img[src$='MEO-mascot-o.svg'],
img[src*='MEO-mascot-o.svg?'],
img[src*='/assets/brand/oem/meo-mascot-o-oem-'] {
  content: var(--brand-mascot-url);
}

:where(.pet-face,.pet-big,.pin,.onboard-art,.mini-mascot) {
  background-image: var(--brand-mascot-url) !important;
}

body {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.52;
}

:root:not([data-theme='dark']) body {
  color: var(--brand-text);
  background-color: var(--brand-background);
  background-image:
    radial-gradient(circle at 88% 4%, var(--brand-cyan-halo), transparent 24rem),
    linear-gradient(180deg, color-mix(in srgb, var(--brand-secondary) 5%, var(--brand-background)), var(--brand-background) 36rem);
  background-attachment: fixed;
}

/* Navy actions preserve strong white-text contrast on every viewport. */
:root:not([data-theme='dark']) :where(
  .public-cta,
  .public-newsletter button,
  .public-newsletter-dialog button[type='submit'],
  .public-cookie-save,
  .newsletter-flow-card button,
  .newsletter-flow-action,
  .price2 button,
  .price2-cta a,
  .price2-tracker a,
  .prototype-promo-dialog form button,
  .mk-live-offer > a,
  .mk-main-cta,
  .mk-tracker-presale > a,
  .auth-primary,
  .registration-card button[type='submit'],
  .contact-form button[type='submit'],
  .button.primary,
  .button[data-variant='primary'],
  .app-back-to-top,
  .back-top
) {
  color: var(--brand-on-action) !important;
  background: var(--brand-action) !important;
  border-color: var(--brand-action) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--brand-primary) 22%, transparent) !important;
}

:root:not([data-theme='dark']) :where(
  .public-cta,
  .public-newsletter button,
  .price2 button,
  .price2-cta a,
  .mk-main-cta,
  .mk-tracker-presale > a,
  .auth-primary,
  .registration-card button[type='submit'],
  .contact-form button[type='submit'],
  .button.primary,
  .button[data-variant='primary']
):hover {
  color: var(--brand-on-action-hover) !important;
  background: var(--brand-action-hover) !important;
  border-color: var(--brand-action-hover) !important;
}

:root:not([data-theme='dark']) :where(.status-success,.toast-success,.is-success,[data-status='success']) {
  color: var(--brand-text) !important;
  border-color: var(--brand-primary) !important;
  background: var(--brand-positive-background) !important;
}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--brand-focus) !important;
  outline-offset: 3px;
  box-shadow: var(--brand-focus-ring) !important;
}

/* Calm structure: subtly pink surfaces, prune borders and diffuse shadows. */
:root:not([data-theme='dark']) :where(
  .card,
  .auth-card,
  .registration-card,
  .settings-panel,
  .settings-hub-content,
  .metric-card,
  .plan,
  .blog-latest-card,
  .blog-article-shell,
  .legal-card,
  .public-newsletter-dialog,
  .modal-content,
  .drawer
):not(.dark) {
  border-color: var(--brand-line) !important;
  background-color: var(--brand-surface-tint) !important;
  box-shadow: var(--brand-cold-shadow-soft) !important;
}

/* Selected navigation and primary actions use the deep prune identity. */
:root:not([data-theme='dark']) :where(
  .segment.active,
  .settings-hub-nav button.active,
  .settings-hub-nav a.active,
  .public-menu-links a[aria-current='page'],
  .tabs [aria-selected='true'],
  .rail-button.active,
  .bottom-nav a.active,
  .mobile-bottom-nav a.active
) {
  color: var(--brand-on-primary) !important;
  background: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}

:root:not([data-theme='dark']) :where(
  .settings-hub-nav svg,
  .metric-card svg,
  .telemetry-gauge svg,
  .public-feature svg,
  .feature-icon,
  .card-icon
) {
  color: var(--brand-primary);
}

/* Important badges use the powdered-rose emotional accent. */
:root:not([data-theme='dark']) :where(.badge-accent,.tag-accent,.pill-accent,.is-important) {
  color: var(--brand-text) !important;
  border-color: var(--brand-secondary-border) !important;
  background: var(--brand-secondary-soft) !important;
}

/* Secondary actions stay visibly actionable without competing with the main
 * CTA. Dark prune text preserves AA contrast on powdered rose. */
:root:not([data-theme='dark']) :where(
  .button.secondary,
  .button[data-variant='secondary'],
  .auth-secondary,
  .public-signin,
  .secondary-action,
  .tracking-pause-toggle
) {
  color: var(--brand-on-secondary) !important;
  background: var(--brand-secondary) !important;
  border-color: var(--brand-secondary) !important;
  box-shadow: 0 6px 18px color-mix(in srgb, var(--brand-primary) 12%, transparent) !important;
}

:root:not([data-theme='dark']) :where(
  .button.secondary,
  .button[data-variant='secondary'],
  .auth-secondary,
  .public-signin,
  .secondary-action,
  .tracking-pause-toggle
):hover {
  color: var(--brand-on-secondary-hover) !important;
  background: var(--brand-secondary-hover) !important;
  border-color: var(--brand-primary-border) !important;
}

:root:not([data-theme='dark']) :where(h1,h2,h3,.page-title,.section-title) {
  color: var(--brand-heading);
}

:root:not([data-theme='dark']) :where(input,select,textarea) {
  color: var(--brand-text);
  border-color: var(--brand-line);
  background: var(--brand-surface);
}

/* Orange is a marker, never the low-contrast paragraph colour on butter. */
:root:not([data-theme='dark']) :where(.alert, .warning, .auth-alert, [role='alert']) {
  color: var(--alert-text) !important;
  border-color: var(--alert-marker) !important;
  background-color: var(--alert-background) !important;
}

@media (max-width: 480px) {
  body { font-size: 15px; }
}

/* Professional typography hierarchy
 *
 * Lexend has a generous visual footprint: moderate sizes and weights create
 * more authority than oversized, ultra-bold copy. The scale below keeps one
 * clear editorial focus while making controls and supporting information calm.
 */
:where(h1,h2,h3,h4,h5,h6){font-weight:520!important;text-wrap:balance}
:where(h1,h2){letter-spacing:-.035em!important}
:where(h3,h4,h5,h6){letter-spacing:-.018em!important}
:where(p,li,dd,dt,small){font-weight:400}
:where(strong,b){font-weight:550}
:where(button,[role='button'],.button,summary,label,nav a){font-weight:520!important}
:where(.eyebrow,.kicker,.mk-kicker,.step-label,.legal-kicker,.settings-nav-kicker){font-size:.6875rem!important;font-weight:550!important;letter-spacing:.09em!important}

/* Marketing and editorial headings: confident, never billboard-sized. */
:where(.mk-hero,.mk-page-hero,.mk-product-hero-copy,.coverage-hero,.pricing-intro,.ulule-page) h1{
  font-size:calc(clamp(2.25rem,3.8vw,3.55rem) - 0.1667rem)!important;
  font-weight:540!important;
  line-height:1.02!important;
  letter-spacing:-.04em!important;
}
:where(.mk-section-head,.mk-how,.mk-benelux,.mk-privacy,.mk-final,.mk-editorial-head,.mk-tracker-copy) h2{
  font-size:calc(clamp(1.75rem,2.8vw,2.65rem) - 0.1667rem)!important;
  font-weight:530!important;
  line-height:1.08!important;
  letter-spacing:-.034em!important;
}
:where(.mk-feature,.mk-editorial-card,.mk-tracker-facts,.tracker-purchase,.plan,.coverage-scale) h3{
  font-size:calc(clamp(1.1rem,1.5vw,1.45rem) - 0.1667rem)!important;
  font-weight:520!important;
  line-height:1.22!important;
}
:where(.mk-hero-copy>p,.mk-page-hero>p,.mk-page-hero p,.mk-editorial-head p,.mk-product-hero-copy>p,.coverage-hero p){
  font-size:clamp(.925rem,1vw,1rem)!important;
  line-height:1.58!important;
}

/* Blog, legal and authentication pages use a quieter reading scale. */
:where(.blog-hero,.blog-article-shell,.legal-hero) h1{
  font-size:calc(clamp(1.9rem,3.2vw,2.9rem) - 0.1667rem)!important;
  font-weight:540!important;
  line-height:1.06!important;
  letter-spacing:-.036em!important;
}
:where(.article-lead,.blog-article-shell>article>header p,.legal-hero-inner>p){font-size:1rem!important;line-height:1.6!important}
:where(.article-body,.blog-content,.legal-section-body){font-size:.98rem!important;line-height:1.64!important}
.auth-story h1{font-size:calc(clamp(2.2rem,4vw,2.95rem) - 0.1667rem)!important;font-weight:540!important;line-height:1.07!important;letter-spacing:-.035em!important}
.auth-card h2{font-size:calc(1.35rem - 0.1667rem)!important;font-weight:530!important;line-height:1.2!important}
:where(.auth-story>p,.auth-card>p){font-size:.95rem!important;line-height:1.55!important}

/* Product UI, dashboard and administrative surfaces. */
:where(.page-head,.settings-page>.page-head,.pet-hub-page>.page-head) h1{
  font-size:calc(clamp(1.55rem,2vw,1.95rem) - 0.1667rem)!important;
  font-weight:540!important;
  line-height:1.1!important;
  letter-spacing:-.032em!important;
}
:where(.page-head,.settings-section-head,.section-title)>p{font-size:.92rem!important;line-height:1.5!important}
:where(.card,.settings-hub-content,.settings-panel,.drawer,.modal-body){font-weight:400}
:where(.card,.settings-hub-content,.settings-panel,.drawer,.modal-body) :where(h2,h3,h4,strong,b){font-weight:520!important}
:where(.button,.segment,.rail-button,.rail-action,.notification-button,.settings-hub-nav button,.auth-primary,.auth-secondary,.auth-provider,.auth-login-tab,.public-cta,.public-primary a,.public-signin,.menu-button,.public-menu-toggle,.public-quick-menu,.public-cookie-link,.public-newsletter button,.language-picker-trigger,.public-menu-links>a,.public-menu-actions>a,.public-preference-action,.public-preferences-dock button,.public-preferences-dock select){
  font-size:.84375rem!important;
  font-weight:520!important;
  letter-spacing:-.005em;
}
:where(.button,.notification-button,.settings-hub-nav button,.auth-primary,.auth-secondary,.auth-provider,.public-cta,.public-primary a,.public-signin,.menu-button,.public-menu-links>a,.public-menu-actions>a,.public-preference-action){
  min-height:2.625rem!important;
  padding:.55rem .875rem!important;
  border-radius:.75rem!important;
  line-height:1.2!important;
}
:where(.segment,.auth-login-tab){min-height:2.25rem!important;padding:.45rem .7rem!important;line-height:1.15!important}
.public-header :where(nav a,.public-signin,.public-menu-links>a,.public-menu-actions>a){font-size:.84375rem!important;font-weight:500!important}
.public-dialog h2{font-size:clamp(1.3rem,2vw,1.6rem)!important;font-weight:530!important;line-height:1.15!important}
:where(.status,.tag,.badge,.pill,.live-status,.notification-badge){font-weight:540!important}
:where(.telemetry-gauge,.metric-card,.window-metrics,.battery-reading,.subscription-price,.price-summary) strong{font-weight:580!important}
:where(.telemetry-gauge,.metric-card,.window-metrics,.overview-window-card,.overview-status-card,.battery-reading) :where(span,b,small){font-weight:500!important}

@media(max-width:560px){
  :where(.mk-hero,.mk-page-hero,.mk-product-hero-copy,.coverage-hero,.pricing-intro,.ulule-page) h1{font-size:calc(clamp(1.85rem,8.2vw,2.35rem) - 0.1667rem)!important}
  :where(.mk-section-head,.mk-how,.mk-benelux,.mk-privacy,.mk-final,.mk-editorial-head,.mk-tracker-copy) h2{font-size:calc(clamp(1.55rem,6.5vw,2rem) - 0.1667rem)!important}
  :where(.blog-hero,.blog-article-shell,.legal-hero) h1{font-size:calc(clamp(1.75rem,7.5vw,2.2rem) - 0.1667rem)!important}
  .auth-story h1{font-size:calc(clamp(1.95rem,8.2vw,2.35rem) - 0.1667rem)!important}
  .auth-card h2{font-size:calc(1.25rem - 0.1667rem)!important}
  :where(.page-head,.settings-page>.page-head,.pet-hub-page>.page-head) h1{font-size:calc(clamp(1.5rem,6.3vw,1.75rem) - 0.1667rem)!important}
  :where(.button,.notification-button,.settings-hub-nav button,.auth-primary,.auth-secondary,.auth-provider,.public-cta,.public-primary a,.public-signin,.menu-button,.public-menu-actions>a,.public-preference-action){min-height:2.75rem!important}
}

/* Product page: compact professional type scale for Lexend. */
body.mk-page-product{font-size:.9rem!important}
body.mk-page-product .mk-product-hero-copy h1{font-size:calc(clamp(2.1rem,3.7vw,3.15rem) - 0.1667rem)!important;font-weight:540!important;line-height:1.05!important;letter-spacing:-.038em!important}
body.mk-page-product :is(.mk-section-head,.mk-privacy,.mk-final,.mk-ufoundme) h2{font-size:calc(clamp(1.55rem,2.3vw,2.2rem) - 0.1667rem)!important;font-weight:530!important;line-height:1.12!important;letter-spacing:-.03em!important}
body.mk-page-product :is(.mk-feature,.mk-tracker-facts) h3{font-size:max(16px, calc(clamp(1rem,1.15vw,1.2rem) - 0.1667rem))!important;font-weight:520!important;line-height:1.25!important}
body.mk-page-product :is(.mk-product-pain,.mk-product-proof,.mk-privacy,.mk-final) :is(p,li,small,span){font-size:.9rem!important;line-height:1.58!important}
body.mk-page-product .mk-tracker-facts article strong{font-size:.94rem!important;font-weight:540!important;line-height:1.35!important}
body.mk-page-product .mk-tracker-presale>strong{font-size:clamp(1.1rem,1.4vw,1.35rem)!important;font-weight:560!important}
body.mk-page-product .mk-tracker-presale>:is(p,small){font-size:.875rem!important}
body.mk-page-product :is(.mk-main-cta,.mk-text-link,.mk-tracker-presale>a){font-size:.84375rem!important;font-weight:520!important}
@media(max-width:560px){body.mk-page-product .mk-product-hero-copy h1{font-size:calc(clamp(1.9rem,8vw,2.25rem) - 0.1667rem)!important}body.mk-page-product :is(.mk-section-head,.mk-privacy,.mk-final,.mk-ufoundme) h2{font-size:calc(clamp(1.45rem,6.4vw,1.85rem) - 0.1667rem)!important}body.mk-page-product .mk-product-hero-copy>p{font-size:.9375rem!important}}

.meo-powered-by {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: inherit;
  font-size: .625rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
  opacity: .82;
}

.meo-powered-by > span { white-space: nowrap; }

.meo-powered-by > img {
  display: block;
  width: auto;
  height: 1.25rem;
  max-width: 2.4rem;
  object-fit: contain;
}

.meo-footer-signature {
  width: min(calc(100% - 48px), 1360px);
  margin: 18px auto 0;
  padding-top: 18px;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  border-top: 1px solid rgb(255 255 255 / .12);
  color: rgb(255 255 255 / .72);
}

.meo-footer-signature .meo-powered-by--footer {
  gap: .65rem;
  font-size: .6875rem;
  opacity: 1;
}

.meo-footer-signature .meo-powered-by--footer > img {
  width: auto;
  min-width: 72px;
  max-width: 96px;
  height: 2.15rem;
}

@media (max-width: 560px) {
  .meo-footer-signature {
    width: calc(100% - 32px);
    justify-content: flex-start;
  }
}

/* Text fallback retained for the authentication card. */
.meo-powered-by strong {
  font-weight: 850;
  letter-spacing: 0;
  text-transform: none;
}

.auth-card > .meo-powered-by {
  display: flex;
  justify-content: center;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border, color-mix(in srgb, var(--brand-primary) 18%, white));
  color: var(--muted, inherit);
}

/* Secondary text remains AA-readable on light surfaces. */
:where(.eyebrow, .kicker, .step-label, .mk-kicker, .price2-hero > span, .price2-simulator header span) {
  color: var(--brand-secondary-dark) !important;
}

/* On dark surfaces the exact secondary colour has ample contrast. */
:where(.public-footer, .auth-footer, .app-rail, .admin-sidebar, [data-theme="dark"])
  :where(.eyebrow, .kicker, .step-label, .mk-kicker) {
  color: var(--brand-on-dark-accent) !important;
}

/* Full OEM shell coverage -------------------------------------------------
 * These selectors deliberately live at the end of the canonical theme: the
 * theme endpoint is loaded after legacy, prototype and React stylesheets. */
:root:not([data-theme='dark']) :where(body, main, .app-main, .admin-main, .superadmin-main) {
  color: var(--brand-reading);
}

:root:not([data-theme='dark']) :where(
  .lead,
  .page-head > p,
  .section-heading > p,
  .settings-section-head > p,
  .card > p,
  .settings-panel > p,
  .help-card > p,
  .legal-card > p
) {
  color: var(--brand-reading-muted);
}

:root:not([data-theme='dark']) :where(main, .app-main, .admin-main, .superadmin-main)
  a:not(.button):not([class*='primary']):not([aria-current='page']) {
  color: var(--brand-link);
}

:root:not([data-theme='dark']) :where(main, .app-main, .admin-main, .superadmin-main)
  a:not(.button):not([class*='primary']):not([aria-current='page']):hover {
  color: var(--brand-link-hover);
}

:root:not([data-theme='dark']) :where(.app-rail, .rail, .admin-sidebar, .sidebar, .side-nav) {
  color: var(--brand-on-dark) !important;
  background: var(--brand-rail-background) !important;
  border-color: var(--brand-dark-line) !important;
}

:root:not([data-theme='dark']) :where(.app-rail, .rail, .admin-sidebar, .sidebar, .side-nav)
  :where(a, button, .rail-button, .rail-action, .nav-item) {
  color: var(--brand-on-dark-muted) !important;
  border-color: transparent !important;
}

:root:not([data-theme='dark']) .admin-sidebar :where(.admin-nav-block, .admin-sidebar-identity) {
  color: var(--brand-on-dark-muted) !important;
  background: transparent !important;
  border-color: var(--brand-dark-line) !important;
}

:root:not([data-theme='dark']) :where(.mobile-menu-open .rail, .mobile-menu-open.rail-expanded .rail) {
  color: var(--brand-on-dark) !important;
  background: var(--brand-rail-background) !important;
}

:root:not([data-theme='dark']) :where(.app-rail, .rail, .admin-sidebar, .sidebar, .side-nav)
  :where(a, button, .rail-button, .rail-action, .nav-item):hover {
  color: var(--brand-on-dark) !important;
  background: var(--brand-navigation-hover) !important;
}

:root:not([data-theme='dark']) :where(
  .rail-nav a.active,
  .rail-nav a[aria-current='page'],
  .rail-button.active,
  .admin-sidebar a.active,
  .admin-sidebar a[aria-current='page'],
  .sidebar a.active,
  .side-nav a.active
) {
  color: var(--brand-on-dark) !important;
  background: var(--brand-navigation-active) !important;
  box-shadow: inset 3px 0 0 var(--brand-on-dark-accent) !important;
}

:root:not([data-theme='dark']) :where(.public-footer, .app-footer, .site-footer, .auth-footer, .admin-footer, .superadmin-footer) {
  color: var(--brand-on-dark) !important;
  background: var(--brand-footer-background) !important;
  border-color: var(--brand-dark-line) !important;
}

:root:not([data-theme='dark']) :where(.public-footer, .app-footer, .site-footer, .auth-footer, .admin-footer, .superadmin-footer)
  :where(p, span, small, address, dd, dt, li, label, .muted, .app-footer-legal) {
  color: var(--brand-on-dark-muted) !important;
}

:root:not([data-theme='dark']) :where(.public-footer, .app-footer, .site-footer, .auth-footer, .admin-footer, .superadmin-footer)
  :where(h2, h3, h4, strong, b) {
  color: var(--brand-on-dark) !important;
}

:root:not([data-theme='dark']) :where(.public-footer, .app-footer, .site-footer, .auth-footer, .admin-footer, .superadmin-footer)
  :where(a, button:not([type='submit'])) {
  color: var(--brand-on-dark-accent) !important;
}

:root:not([data-theme='dark']) :where(.public-footer, .app-footer, .site-footer, .auth-footer, .admin-footer, .superadmin-footer)
  :where(a, button:not([type='submit'])):hover {
  color: var(--brand-on-dark) !important;
}

:root:not([data-theme='dark']) :where(
  .public-footer-share,
  .public-footer-publisher,
  .meo-footer-signature,
  .app-footer-legal,
  .site-footer hr
) {
  border-color: var(--brand-dark-line) !important;
}

:root:not([data-theme='dark']) :where(.public-footer-share button, .public-footer-share a, .app-footer-social a) {
  color: var(--brand-on-dark) !important;
  border-color: var(--brand-dark-line) !important;
  background: var(--brand-navigation-hover) !important;
}

/* Complete surface recolouring -------------------------------------------
 * Component styles may keep their historical geometry, but their flat fills,
 * cards, type, actions and footers must consume the semantic OEM roles. The
 * selectors intentionally exclude semantic success/warning/danger states. */
:root:not([data-theme='dark']) :where(main, .app-main, .admin-main, .superadmin-main) :where(
  .card,
  [class$='-card'],
  [class*='-card '],
  [class$='-panel'],
  [class*='-panel '],
  [class$='-tile'],
  [class*='-tile '],
  [class$='-box'],
  [class*='-box ']
):not(.dark):not(.is-featured):not(.alert):not(.warning):not(.danger):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-tone='dark']):not([data-status]) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-tile-border) !important;
  background-color: var(--brand-tile-surface) !important;
  box-shadow: var(--brand-tile-shadow) !important;
}

/* Every visible tile icon follows the active OEM identity. The supported icon
 * system uses inline SVG with currentColor, so geometry stays untouched while
 * stroke and intentional filled shapes inherit the semantic tile role. */
:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .telemetry-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]) {
  color: var(--brand-tile-icon) !important;
  border-color: var(--brand-tile-icon-border) !important;
  background: var(--brand-tile-icon-surface) !important;
}

:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .telemetry-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]) svg {
  color: inherit !important;
  stroke: currentColor;
}

:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .telemetry-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
) svg [fill='currentColor'] {
  fill: currentColor !important;
}

/* Legacy tiles that still reference a local SVG through <img> cannot inherit
 * currentColor across the document boundary. Their icon surface therefore
 * uses the derived dark brand role and the monochrome asset is rendered white. */
:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]):has(> img[src$='.svg'], > img[src*='.svg?']) {
  color: var(--brand-on-dark) !important;
  background: var(--brand-surface-emphasis) !important;
}

:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]) > img[src$='.svg'],
:root:not([data-theme='dark']) :where(
  .tile-icon,
  .card-icon,
  .settings-card-icon,
  .setting-tile > span:first-child,
  .settings-tile > span:first-child,
  .summary-icon,
  .metric-icon,
  .billing-summary-icon,
  .contact-card-icon,
  .onboarding-feature-icon,
  .event-icon,
  .safe-icon,
  .checkout-product-icon
):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]) > img[src*='.svg?'] {
  filter: brightness(0) invert(1) !important;
}

:root:not([data-theme='dark']) :where(
  .tile-icon.is-emphasis,
  .card-icon.is-emphasis,
  .settings-card-icon.is-emphasis,
  .summary-icon.is-emphasis,
  .billing-summary-icon.is-emphasis,
  .contact-card-icon.is-emphasis
) {
  color: var(--brand-tile-icon-on-emphasis) !important;
  background: var(--brand-tile-icon-emphasis) !important;
}

@media (hover: hover) {
  :root:not([data-theme='dark']) :where(
    [class$='-tile'],
    [class*='-tile ']
  ):not(.alert):not(.warning):not(.danger):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-status]):hover {
    background-color: var(--brand-tile-surface-hover) !important;
  }
}

:root:not([data-theme='dark']) :where(main, .app-main, .admin-main, .superadmin-main) :where(
  .card,
  [class$='-card'],
  [class*='-card '],
  [class$='-panel'],
  [class*='-panel '],
  [class$='-tile'],
  [class*='-tile ']
):not(.dark):not(.is-featured):not(.alert):not(.warning):not(.danger):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-tone='dark']):not([data-status])
  :where(h1, h2, h3, h4, h5, h6, strong, b) {
  color: var(--brand-heading) !important;
}

:root:not([data-theme='dark']) :where(main, .app-main, .admin-main, .superadmin-main) :where(
  .card,
  [class$='-card'],
  [class*='-card '],
  [class$='-panel'],
  [class*='-panel '],
  [class$='-tile'],
  [class*='-tile ']
):not(.dark):not(.is-featured):not(.alert):not(.warning):not(.danger):not(.is-success):not(.is-available):not(.is-warning):not(.is-critical):not(.is-unavailable):not([data-tone='dark']):not([data-status])
  :where(p, li, dd, dt, small, .muted) {
  color: var(--brand-reading-muted) !important;
}

/* Marketing colour cards are explicit because their legacy backgrounds are
 * gradients and therefore cannot be replaced by background-color alone. */
:root:not([data-theme='dark']) :where(
  .mk-feature.light,
  .mk-product-hero,
  .mk-product-pain,
  .mk-product-proof,
  .mk-privacy,
  .price-option-card,
  .subscription-price-card,
  .tracker-price-card,
  .tracker-offer-price
) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-line) !important;
  background: var(--brand-surface-gradient) !important;
}

:root:not([data-theme='dark']) :where(
  .mk-feature.earth,
  .mk-final,
  .final-cta,
  .price2-simulator,
  .price2-comparison,
  .plan.recommended,
  .plan-card.is-highlighted,
  .subscription-plan-card.is-highlighted
) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-secondary-border) !important;
  background: var(--brand-secondary-gradient) !important;
}

:root:not([data-theme='dark']) :where(
  .mk-feature.dark,
  .mk-editorial,
  .mk-ufoundme,
  .shop-card.is-featured,
  .admin-card,
  [data-tone='dark']
) {
  color: var(--brand-on-dark) !important;
  border-color: var(--brand-dark-line) !important;
  background: var(--brand-emphasis-gradient) !important;
}

:root:not([data-theme='dark']) :where(
  .mk-feature.dark,
  .mk-editorial,
  .mk-ufoundme,
  .shop-card.is-featured,
  .admin-card,
  [data-tone='dark']
) :where(h1, h2, h3, h4, h5, h6, strong, b) {
  color: var(--brand-on-dark) !important;
}

:root:not([data-theme='dark']) :where(
  .mk-feature.dark,
  .mk-editorial,
  .mk-ufoundme,
  .shop-card.is-featured,
  .admin-card,
  [data-tone='dark']
) :where(p, li, dd, dt, small, .muted) {
  color: var(--brand-on-dark-muted) !important;
}

/* Shared secondary controls and the floating preference card also follow the
 * palette. Destructive actions keep their dedicated danger semantics. */
:root:not([data-theme='dark']) :where(
  .menu-button,
  .public-preference-action,
  .public-preferences-dock select,
  .public-preferences-dock .global-market,
  .public-preferences-dock .global-language,
  .button.secondary,
  .button[data-variant='secondary']
) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-secondary-border) !important;
  background: var(--brand-secondary-soft) !important;
}

:root:not([data-theme='dark']) :where(.public-preferences-dock, .global-preferences) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-line) !important;
  background: color-mix(in srgb, var(--brand-surface) 94%, transparent) !important;
  box-shadow: var(--brand-cold-shadow-soft) !important;
}

:root:not([data-theme='dark']) :where(
  .button:not(.secondary):not([data-variant='secondary']):not(.danger):not([data-variant='danger']),
  .tracker-buy-button,
  .plan-cta,
  .checkout-button,
  .skip-link
) {
  color: var(--brand-on-action) !important;
  border-color: var(--brand-action) !important;
  background: var(--brand-action) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--brand-primary) 22%, transparent) !important;
}

/* Final interaction fence: legacy component sheets may still declare white
 * hover text. These selectors execute after them and bind every common action
 * family to its independently calculated normal and hover foreground. */
:root:not([data-theme='dark']) :where(
  .button:not(.secondary):not(.button-secondary):not([data-variant='secondary']):not(.danger):not([data-variant='danger']),
  .auth-button:not(.secondary), .public-pwa-install, .calculator-submit,
  .family-primary, .family-invite button, .tracker-buy-button, .plan-cta,
  .checkout-button, .skip-link
):hover {
  color: var(--brand-on-action-hover) !important;
  border-color: var(--brand-action-hover) !important;
  background: var(--brand-action-hover) !important;
}

:root:not([data-theme='dark']) :where(
  .button-secondary, .auth-button.secondary, .family-secondary
) {
  color: var(--brand-reading) !important;
  border-color: var(--brand-secondary-border) !important;
  background: var(--brand-secondary-soft) !important;
}

:root:not([data-theme='dark']) :where(
  .button-secondary, .auth-button.secondary, .family-secondary
):hover {
  color: var(--brand-on-secondary-hover) !important;
  border-color: var(--brand-primary-border) !important;
  background: var(--brand-secondary-hover) !important;
}

:root:not([data-theme='dark']) :where(
  .auth-login-tab.is-active,
  .public-primary a.active,
  .public-primary a[aria-current='page'],
  .calculator-plan-options input:checked + span
) {
  color: var(--brand-on-primary) !important;
  border-color: var(--brand-primary) !important;
  background: var(--brand-primary) !important;
}

/* Every footer shell, including the prototype and public launch variants,
 * receives the same derived background and on-dark typography. */
:root:not([data-theme='dark']) :where(
  .prototype-footer,
  .public-footer,
  .app-footer,
  .site-footer,
  .auth-footer,
  .admin-footer,
  .superadmin-footer,
  .newsletter-flow-footer
) {
  color: var(--brand-on-dark) !important;
  border-color: var(--brand-dark-line) !important;
  background: var(--brand-footer-background) !important;
}

/* Versioned identity selector. It is a single two-choice control so colour
 * identity remains distinct from the adjacent day/night and readability tools. */
.brand-theme-picker {
  min-width: 10rem;
  display: grid;
  gap: .2rem;
  color: var(--brand-reading);
}

.brand-theme-picker > span {
  color: var(--brand-reading-muted);
  font-size: .625rem;
  font-weight: 650;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.brand-theme-picker select {
  width: 100%;
  min-height: 2.65rem;
  padding: 0 2rem 0 .75rem;
  border: 1px solid var(--brand-line);
  border-radius: .75rem;
  color: var(--brand-reading);
  background: var(--brand-surface-tint);
  font: inherit;
  font-size: .75rem;
  font-weight: 550;
}

.brand-theme-picker--compact {
  align-self: center;
}

@media (max-width: 560px) {
  .brand-theme-picker--compact {
    width: 100%;
    min-width: 0;
  }
}

