/* Customer accounts share the storefront's typography, colors and spacing. */
.auth-dialog { display:none; width:min(900px,calc(100vw - 48px)); height:fit-content; max-height:calc(100dvh - 48px); margin:auto; padding:0; border:0; border-radius:0; background:#fff; color:#1a1a1a; opacity:1; transform:none; overflow:auto; }
.auth-dialog[open] { display:grid; grid-template-columns:.8fr 1fr; visibility:visible; align-items:stretch; justify-content:normal; transition:none; }
.auth-dialog::backdrop { background:#101a1666; backdrop-filter:blur(3px); }
.auth-editorial { position:relative; min-height:580px; background:#161b18; overflow:hidden; isolation:isolate; }
.auth-contours { position:absolute; inset:0; width:100%; height:100%; color:#6e8072; opacity:.38; }
.auth-route { stroke:#e2e8db; }
.auth-editorial::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,#161b18 86%); z-index:-1; }
.auth-editorial .auth-emblem { position:absolute; top:34px; left:32px; width:58px; height:58px; object-fit:contain; filter:brightness(0) invert(1); }
.auth-editorial-copy { position:absolute; bottom:42px; left:32px; right:24px; color:#f4f5ef; }
.auth-editorial-name { display:block; font:500 11px/1.4 var(--font-body); letter-spacing:4px; margin-bottom:22px; }
.auth-editorial-motto { display:block; font:500 clamp(32px,3.4vw,46px)/1.1 var(--font-display); letter-spacing:.4px; }
.auth-editorial-rule { display:block; width:40px; height:2px; background:#b9c7aa; margin-top:30px; }
.auth-panel { position:relative; padding:46px 42px 36px; min-width:0; }
.auth-panel .login-close { position:absolute; top:12px; right:12px; width:44px; height:44px; padding:13px; background:none; color:inherit; }
.auth-brand { display:inline-block; margin:0 0 32px; }
.auth-brand img { width:145px; height:auto; }
.auth-kicker { font-size:10px; letter-spacing:2px; font-weight:600; color:#657067; margin-bottom:12px; }
#authContent h2 { font:700 29px/1.2 var(--font-body); letter-spacing:-.5px; margin-bottom:12px; }
.auth-intro { font-size:13px; color:#646b65; line-height:1.8; margin-bottom:24px; }
.auth-field,.account-field { display:block; margin-bottom:18px; font-size:13px; font-weight:500; }
.auth-field > span:first-child,.account-field > span { display:block; margin-bottom:8px; }
.auth-input-wrap { position:relative; display:block; }
.auth-field input,.account-field input,.account-field select { width:100%; min-height:46px; padding:11px 13px; border:1px solid #cfd3cf; border-radius:0; background:white; font:400 15px var(--font-body); color:#17211b; }
.auth-field input[type="password"],.auth-field input[autocomplete="current-password"],.auth-field input[autocomplete="new-password"] { padding-right:60px; }
.auth-field input:focus,.account-field input:focus,.account-field select:focus { outline:2px solid #334a3a; outline-offset:1px; }
.auth-show { position:absolute; right:0; top:0; height:46px; min-width:56px; font-size:11px; padding:0 9px; color:#48584d; }
.auth-hint { margin:-6px 0 18px; font-size:11px; line-height:1.65; color:#737a75; }
.auth-options { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:11px; margin:-2px 0 18px; }
.auth-options label,.account-checkbox { display:flex; align-items:center; gap:8px; }
.auth-options input,.account-checkbox input { width:16px; height:16px; accent-color:#17211b; flex-shrink:0; }
.auth-options button { min-height:36px; text-decoration:underline; text-underline-offset:4px; }
.auth-submit { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; padding:12px 20px; border:1px solid #17211b; border-radius:0; background:#17211b; color:white; font:600 13px var(--font-body); letter-spacing:.3px; cursor:pointer; }
.auth-submit:hover { background:#35483b; }
.auth-submit:disabled { opacity:.6; cursor:wait; }
.auth-bottom { margin-top:24px; font-size:12px; text-align:center; color:#646b65; }
.auth-bottom button { min-height:40px; color:#17211b; text-decoration:underline; text-underline-offset:4px; margin-inline:4px; }
.auth-bottom button:last-child:not(:first-child) { display:block; margin:4px auto 0; color:#6d756f; font-size:11px; }
.auth-message,.account-message { padding:12px 14px; background:#edf3ee; border-left:2px solid #4e6956; color:#365540; font-size:12px; line-height:1.7; margin-bottom:20px; }
.auth-message.is-error,.account-message.is-error { background:#fff3f0; color:#943e2d; border-color:#b5604d; }
.auth-message[hidden],.account-message[hidden] { display:none; }
.is-authenticated::after { content:""; position:absolute; width:5px; height:5px; border-radius:50%; background:#466951; right:5px; top:5px; }
#loginToggle { position:relative; }
.account-page { min-height:65vh; max-width:1160px; padding:52px 24px 80px; margin:auto; }
.account-heading { margin-bottom:36px; }
.account-heading h1 { font:700 clamp(28px,3vw,42px)/1.2 var(--font-body); margin-bottom:12px; }
.account-heading > p:last-child { color:#6e756e; font-size:14px; }
.account-layout { display:grid; grid-template-columns:200px minmax(0,1fr); gap:52px; }
.account-nav { display:flex; flex-direction:column; align-items:stretch; gap:5px; }
.account-nav button { padding:15px 16px; text-align:left; font-size:14px; min-height:46px; }
.account-nav button[aria-current] { background:#f0f2ee; font-weight:600; border-left:2px solid #17211b; }
.account-nav button:last-child { color:#757a75; margin-top:20px; }
.account-panel { border:1px solid #e2e5df; padding:32px; min-width:0; }
.account-panel h2 { font:600 22px/1.3 var(--font-body); margin-bottom:12px; }
.account-panel form { max-width:500px; }
.account-verified { color:#48614d; font-size:12px; margin-bottom:25px; }
.account-description { color:#6e756e; font-size:13px; line-height:1.7; margin-bottom:24px; }
.account-field input:disabled { background:#f5f6f3; color:#686f69; opacity:1; }
.account-secondary { min-height:44px; padding:10px 20px; border:1px solid #bac2ba; font-size:13px; color:#17211b; background:#fff; }
.account-panel button:focus-visible,.auth-dialog button:focus-visible { outline:2px solid #334a3a; outline-offset:3px; }
.account-guest { max-width:620px; padding:50px 0 90px; margin:auto; text-align:center; }
.account-guest h1 { font:700 clamp(28px,4vw,44px)/1.2 var(--font-body); margin-bottom:20px; }
.account-guest > p:not(.auth-kicker) { font-size:14px; line-height:1.8; color:#6e756e; margin-bottom:30px; }
.account-guest-actions { display:flex; justify-content:center; gap:12px; margin-top:30px; }
.account-guest-actions .auth-submit { width:auto; min-width:130px; }
.address-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; }
.address-form { padding-top:20px; border-top:1px solid #e3e6e0; margin-bottom:28px; }
.address-form h3 { font-size:16px; margin-bottom:22px; }
.address-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.address-fields .account-field:nth-child(3),.address-fields .account-field:nth-child(4) { grid-column:1/-1; }
.account-checkbox { font-size:12px; margin-bottom:22px; min-height:32px; }
.address-form-actions { display:flex; gap:12px; align-items:center; }
.address-form-actions .auth-submit { width:auto; }
.address-list { display:grid; gap:16px; }
.address-card { padding:20px; border:1px solid #e2e5df; }
.address-card-head { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
.address-card-head h3 { font-size:15px; }
.address-card-head > span { font-size:10px; color:#4e6956; background:#f0f3ed; padding:4px 8px; }
.address-card p { font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.address-card-actions { display:flex; gap:20px; margin-top:12px; }
.address-card-actions button { font-size:12px; text-decoration:underline; text-underline-offset:4px; min-height:36px; }
.account-empty { padding:35px 20px; background:#f6f7f3; text-align:center; }
.account-empty h3 { font-size:16px; margin-bottom:12px; }
.account-empty p { font-size:13px; color:#6e756e; line-height:1.7; }
.account-preview { background:#fff5db; padding:12px 16px; font-size:12px; margin-bottom:25px; }
@media(max-width:700px) {
  .auth-dialog { width:100%; height:100dvh; max-height:100dvh; max-width:100%; margin:0; }
  .auth-dialog[open] { display:block; }
  .auth-editorial { display:none; }
  .auth-panel { padding:calc(32px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom)); }
  .auth-brand { margin-bottom:42px; }
  .auth-panel .login-close { top:max(12px,env(safe-area-inset-top)); right:12px; }
  #authContent h2 { font-size:28px; }
  .auth-field input,.account-field input,.account-field select { font-size:16px; min-height:48px; }
  .auth-options { flex-wrap:wrap; font-size:12px; }
  .auth-show { height:48px; font-size:12px; }
  .auth-submit { min-height:48px; font-size:14px; }
  .account-page { padding:32px 16px 48px; }
  .account-heading { margin-bottom:24px; }
  .account-heading h1 { font-size:28px; overflow-wrap:anywhere; }
  .account-layout { display:block; }
  .account-nav { flex-direction:row; overflow-x:auto; white-space:nowrap; gap:0; margin:0 -16px 24px; padding:0 16px; border-bottom:1px solid #e2e5df; }
  .account-nav button { padding:14px 12px; flex-shrink:0; font-size:13px; }
  .account-nav button[aria-current] { background:none; border-left:0; border-bottom:2px solid #17211b; }
  .account-nav button:last-child { margin:0 0 0 auto; font-size:12px; }
  .account-panel { padding:0; border:0; }
  .account-panel h2 { font-size:20px; }
  .account-field input { max-width:100%; }
  .address-fields { grid-template-columns:1fr; }
  .address-card { padding:18px; }
  .account-guest { padding:60px 0; }
  .account-guest-actions { flex-direction:column; }
}

.account-support-link { padding:15px 16px; min-height:46px; font-size:14px; display:block; }
@media(max-width:700px){.account-support-link{padding:14px 12px;font-size:13px;flex-shrink:0;}}
