@import url('https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:wght@400;500;600;700;800&display=swap');

:root{
  --auth-teal:#208e90;
  --auth-teal-dark:#177477;
  --auth-gold:#b18a3d;
  --auth-ink:#283033;
  --auth-muted:#778184;
  --auth-line:#e6e9e7;
  --auth-canvas:#f4f6f4;
  --auth-white:#fff;
  --auth-danger:#c65d57;
  --auth-warning:#d19b35;
  --auth-success:#3a9270;
  --auth-shadow:0 24px 70px rgba(28,47,46,.14);
}

*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body.auth-body{font-family:'Wix Madefor Text',sans-serif;color:var(--auth-ink);background:
  radial-gradient(circle at 10% 10%,rgba(32,142,144,.12),transparent 31%),
  radial-gradient(circle at 88% 86%,rgba(177,138,61,.12),transparent 28%),
  var(--auth-canvas);}
button,input,select{font:inherit}
button,a{ -webkit-tap-highlight-color:transparent }
button{cursor:pointer}
a{color:inherit}

.auth-shell{min-height:100vh;display:grid;place-items:center;padding:34px}
.auth-card{width:min(1160px,100%);min-height:690px;display:grid;grid-template-columns:minmax(410px,.92fr) minmax(480px,1.08fr);overflow:hidden;border:1px solid rgba(40,48,51,.09);border-radius:22px;background:var(--auth-white);box-shadow:var(--auth-shadow)}
.auth-brand-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:52px 48px;color:#2f3433;background:linear-gradient(148deg,rgba(249,237,221,.96) 0%,rgba(249,237,221,.93) 52%,rgba(244,228,207,.92) 100%)}
.auth-brand-panel::before,.auth-brand-panel::after{content:"";position:absolute;border:1px solid rgba(177,138,61,.16);border-radius:50%;pointer-events:none}
.auth-brand-panel::before{width:440px;height:440px;right:-220px;top:-180px}
.auth-brand-panel::after{width:270px;height:270px;left:-125px;bottom:-115px;border-color:rgba(177,138,61,.28)}
.auth-brand-photo{position:absolute;inset:0;background:linear-gradient(rgba(249,237,221,.62),rgba(249,237,221,.68)),url('../../images/auth-acupuncture-hero.jpg') center center/cover no-repeat;opacity:.78;transform:scale(1.04);transform-origin:center;filter:saturate(.86) contrast(.97) brightness(1.04)}
.auth-brand-glow{position:absolute;inset:auto -90px 120px auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(177,138,61,.14),transparent 68%);filter:blur(1px)}
.auth-brand-logo{position:relative;z-index:2;display:inline-flex;align-items:center;width:min(340px,86%);min-height:auto;padding:0;border-radius:0;background:transparent;border:0;box-shadow:none}
.auth-brand-logo img{display:block;width:100%;height:auto;background:transparent}
.auth-brand-copy{position:relative;z-index:2;max-width:440px;margin-top:38px}
.auth-brand-copy small{display:inline-flex;align-items:center;gap:8px;color:#7d6c4e;font-size:10px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.auth-brand-copy small::before{content:"";width:24px;height:1px;background:var(--auth-gold)}
.auth-brand-copy h1{margin:15px 0 13px;font-family:Georgia,'Times New Roman',serif;font-size:38px;font-weight:500;line-height:1.14;letter-spacing:-.02em;text-wrap:balance}
.auth-brand-copy p{max-width:402px;margin:0;color:#5f625f;font-size:13px;line-height:1.75}
.auth-brand-features{position:relative;z-index:2;display:grid;gap:11px;margin-top:34px}
.auth-brand-feature{display:flex;align-items:center;gap:11px;color:#444a48;font-size:12px}
.auth-brand-feature i{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:8px;color:#208e90;background:rgba(255,255,255,.52);border:1px solid rgba(177,138,61,.22);font-style:normal;font-weight:800}
.auth-brand-footer{position:relative;z-index:2;color:#756e64;font-size:10px}
.auth-brand-footer b{color:#4f5553;font-weight:700}

.auth-form-panel{display:flex;align-items:center;padding:38px 56px;background:var(--auth-white)}
.auth-form-wrap{width:min(520px,100%);margin:auto}
.auth-form-logo-mobile{display:none;width:240px;margin:0 auto 25px;padding:0;border:0;border-radius:0;background:transparent}
.auth-form-logo-mobile img{display:block;width:100%}
.auth-kicker{margin:0 0 8px;color:var(--auth-teal);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.auth-form-wrap h2{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:30px;font-weight:500;letter-spacing:-.02em}
.auth-intro{margin:8px 0 26px;color:var(--auth-muted);font-size:12px;line-height:1.65}
.auth-intro strong{color:var(--auth-ink);font-weight:650}
.auth-form{display:grid;gap:15px}
.auth-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.auth-field{display:grid;gap:6px;min-width:0}
.auth-field>span,.auth-label-row>span{color:var(--auth-ink);font-size:11px;font-weight:650}
.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.auth-label-row a{color:var(--auth-muted);font-size:10px;text-decoration:none}
.auth-label-row a:hover{color:var(--auth-teal)}
.auth-field input,.auth-field select{width:100%;height:43px;padding:0 12px;border:1px solid var(--auth-line);border-radius:9px;outline:0;background:#fff;color:var(--auth-ink);font-size:12px;transition:border-color .15s,box-shadow .15s,background .15s}
.auth-field input::placeholder{color:#a7b0ae}
.auth-field input:focus,.auth-field select:focus{border-color:var(--auth-teal);box-shadow:0 0 0 3px rgba(32,142,144,.09)}
.auth-field small{color:var(--auth-muted);font-size:9px;line-height:1.45}
.auth-field.is-invalid input,.auth-field.is-invalid select,.auth-phone.is-invalid{border-color:var(--auth-danger);box-shadow:0 0 0 3px rgba(198,93,87,.08)}
.auth-field-error{display:none;color:var(--auth-danger)!important;font-size:9px!important;font-weight:600}
.auth-field.is-invalid .auth-field-error{display:block}
.auth-password{position:relative}
.auth-password input{padding-right:44px}
.auth-password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:#86918f}
.auth-password-toggle:hover{background:var(--auth-canvas);color:var(--auth-teal)}
.auth-password-toggle svg{width:17px;height:17px;pointer-events:none}

.auth-phone{display:grid;grid-template-columns:auto minmax(0,1fr);height:43px;overflow:hidden;border:1px solid var(--auth-line);border-radius:9px;background:#fff;transition:border-color .15s,box-shadow .15s}
.auth-phone:focus-within{border-color:var(--auth-teal);box-shadow:0 0 0 3px rgba(32,142,144,.09)}
.auth-phone-prefix{min-width:64px;height:100%;display:grid;place-items:center;padding:0 9px;border-right:1px solid var(--auth-line);background:var(--auth-canvas);color:var(--auth-ink);font-size:11px;font-weight:700}
.auth-phone input{height:100%;border:0!important;border-radius:0!important;box-shadow:none!important}

.auth-password-tools{display:grid;gap:8px;padding:11px 12px;border:1px solid var(--auth-line);border-radius:10px;background:#fafbfa}
.auth-strength-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.auth-strength-head b{font-size:10px;font-weight:700}
.auth-strength-head span{font-size:9px;color:var(--auth-muted);font-weight:700}
.auth-strength-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.auth-strength-bars i{height:5px;border-radius:99px;background:#e3e7e5;transition:background .18s}
.auth-password-tools[data-level="weak"] .auth-strength-bars i:nth-child(1){background:var(--auth-danger)}
.auth-password-tools[data-level="weak"] .auth-strength-head span{color:var(--auth-danger)}
.auth-password-tools[data-level="medium"] .auth-strength-bars i:nth-child(-n+2){background:var(--auth-warning)}
.auth-password-tools[data-level="medium"] .auth-strength-head span{color:#b47f1d}
.auth-password-tools[data-level="strong"] .auth-strength-bars i{background:var(--auth-success)}
.auth-password-tools[data-level="strong"] .auth-strength-head span{color:var(--auth-success)}
.auth-password-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--auth-muted);font-size:9px;line-height:1.45}
.auth-generate{flex:0 0 auto;border:0;background:transparent;color:var(--auth-teal);font-size:9px;font-weight:800;padding:2px 0}
.auth-generate:hover{text-decoration:underline}

.auth-check{display:flex;align-items:flex-start;gap:9px;color:var(--auth-muted);font-size:10px;line-height:1.55}
.auth-check input{width:15px;height:15px;margin:1px 0 0;accent-color:var(--auth-teal);flex:0 0 15px}
.auth-check a{color:var(--auth-teal);font-weight:650;text-decoration:none}
.auth-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.auth-submit,.auth-alternate-btn{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:50px;padding:12px 14px;border:1px solid var(--auth-teal-dark);border-radius:8px;font-size:17px;font-weight:500;line-height:1.35;text-align:center;text-decoration:none;box-shadow:none;transition:background-color .15s,border-color .15s,color .15s}
.auth-submit{background:var(--auth-teal-dark);color:#fff}
.auth-submit:hover{background:#126467;border-color:#126467}
.auth-submit:active{background:#10595c}
.auth-alternate-btn{background:#fff;color:var(--auth-teal-dark);border-color:#b3cecd}
.auth-alternate-btn:hover{background:#f0f7f6;border-color:var(--auth-teal-dark)}
.auth-alternate-btn:active{background:#e5f1f0}
.auth-submit:focus-visible,.auth-alternate-btn:focus-visible{outline:2px solid var(--auth-teal-dark);outline-offset:3px}
.auth-submit[disabled]{opacity:.65;cursor:not-allowed}
.auth-form-status{display:none;padding:10px 12px;border-radius:9px;font-size:10px;line-height:1.5}
.auth-form-status.show{display:block}
.auth-form-status.info{color:#3d6767;background:#eef8f7;border:1px solid #c8e3e1}
.auth-form-status.error{color:#984a47;background:#fff4f3;border:1px solid #efc5c2;margin-bottom:20px;}
.auth-switch{margin:20px 0 0;text-align:center;color:var(--auth-ink);font-size:14px;line-height:1.6}
.auth-switch a{color:var(--auth-teal-dark);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.auth-switch a:focus-visible{outline:2px solid var(--auth-teal-dark);outline-offset:3px}
.auth-security-note{display:flex;align-items:flex-start;gap:9px;margin:18px 0 0;padding:10px 11px;border-radius:9px;background:#fbf8f0;border:1px solid rgba(177,138,61,.24);color:#75613c;font-size:9px;line-height:1.55}
.auth-security-note i{font-style:normal;color:var(--auth-gold);font-weight:800}
.auth-footer{margin-top:24px;text-align:center;color:#526267;font-size:14px;line-height:1.6}

/* One registration acceptance row; full policy and choices stay in the dialog. */
.auth-privacy-field .auth-check,.auth-policy-dialog .auth-check{font-size:12px;line-height:1.6;color:var(--auth-ink);font-weight:400}
.auth-privacy-field .auth-check input,.auth-policy-dialog .auth-check input{width:18px;min-width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;padding:0;accent-color:var(--auth-teal)}
.auth-privacy-field .auth-check>span,.auth-policy-dialog .auth-check>span{min-width:0;overflow-wrap:anywhere}
.auth-privacy-field a,.auth-policy-dialog a{color:var(--auth-teal-dark);text-decoration:underline;text-underline-offset:2px}
.auth-privacy-field .auth-privacy-links{display:flex;flex-wrap:wrap;gap:3px 14px;padding-left:27px;font-size:11px;line-height:1.6}
.auth-privacy-field .auth-field-error{font-size:11px!important;line-height:1.6}
.auth-privacy-field a:focus-visible,.auth-policy-dialog a:focus-visible,.auth-policy-dialog input:focus-visible,.auth-policy-dialog button:focus-visible{outline:2px solid var(--auth-teal);outline-offset:3px}
.auth-policy-dialog{width:min(860px,calc(100vw - 40px));height:min(88vh,880px);height:min(88dvh,880px);max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--auth-line);border-radius:16px;background:var(--auth-white);color:var(--auth-ink);box-shadow:0 24px 80px rgba(28,47,46,.28);font-family:inherit;font-size:14px;line-height:1.7}
.auth-policy-dialog[open]{display:flex;flex-direction:column}
.auth-policy-dialog::backdrop{background:rgba(28,47,46,.48)}
body.auth-body:has(.auth-policy-dialog[open]){overflow:hidden}
.auth-policy-dialog-header,.auth-policy-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 auto;padding:16px 20px;background:#fff}
.auth-policy-dialog-header{border-bottom:1px solid var(--auth-line)}
.auth-policy-dialog-footer{border-top:1px solid var(--auth-line)}
.auth-policy-dialog h2{margin:0 0 10px;font-family:inherit;font-size:18px;line-height:1.4;font-weight:700;letter-spacing:0}
.auth-policy-dialog .legal-section h2{font-size:18px}
.auth-policy-dialog h3{margin:18px 0 8px;font-size:14px;line-height:1.5;font-weight:700}
.auth-policy-dialog p{margin:10px 0;font-size:14px;line-height:1.7}
.auth-policy-dialog .auth-policy-dialog-header h2{margin:0;font-size:20px}
.auth-policy-dialog-header p{margin:4px 0 0;color:var(--auth-muted);font-size:11px;line-height:1.5}
.auth-policy-dialog-footer small{flex:1;min-width:0;color:var(--auth-muted);font-size:11px;line-height:1.6}
.auth-policy-close{flex:0 0 auto;min-height:40px;padding:8px 14px;border:1px solid var(--auth-line);border-radius:8px;background:var(--auth-canvas);color:var(--auth-ink);font-size:12px;font-weight:650}
.auth-policy-close:hover{border-color:var(--auth-teal);color:var(--auth-teal-dark)}
.auth-policy-dialog-body{flex:1;min-height:0;padding:20px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;outline-offset:-3px}
.auth-policy-dialog .auth-policy-intro{margin:0 0 16px}
.auth-policy-dialog .legal-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.auth-policy-dialog .legal-nav a{padding:6px 9px;border:1px solid var(--auth-line);border-radius:7px;background:var(--auth-canvas);font-size:12px;line-height:1.5}
.auth-policy-dialog .legal-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--auth-line);scroll-margin-top:14px;overflow-wrap:anywhere}
.auth-policy-dialog address{font-style:normal}
.auth-policy-dialog .legal-recipient{margin-top:14px;padding:14px;border:1px solid var(--auth-line);border-radius:9px;background:#fafbfa}
.auth-policy-dialog .legal-recipient h3{margin-top:0}
.auth-policy-dialog dl{display:grid;grid-template-columns:70px minmax(0,1fr);gap:6px 10px;margin:0;font-size:13px;line-height:1.6}
.auth-policy-dialog dt{font-weight:700}
.auth-policy-dialog dd{min-width:0;margin:0;overflow-wrap:anywhere}
.auth-policy-dialog .auth-check{font-size:13px}
.auth-policy-dialog .legal-choice{margin-top:14px}
.auth-policy-dialog .auth-consent-options{display:grid;gap:12px;min-width:0;margin:18px 0 0;padding:14px;border:1px solid var(--auth-line);border-radius:9px;background:#fafbfa}
.auth-policy-dialog .auth-consent-options legend{padding:0 4px;color:var(--auth-ink);font-size:13px;font-weight:700}

@media(max-width:980px){
  .auth-shell{padding:24px}
  .auth-card{grid-template-columns:1fr;max-width:660px;min-height:auto}
  .auth-brand-panel{display:none}
  .auth-form-panel{padding:42px 46px}
  .auth-form-logo-mobile{display:block}
}
@media(max-width:620px){
  .auth-policy-dialog{width:calc(100vw - 20px);height:calc(100vh - 24px);height:calc(100dvh - 24px);border-radius:12px}
  .auth-policy-dialog-header,.auth-policy-dialog-footer{gap:10px;padding:12px 14px}
  .auth-policy-dialog .auth-policy-dialog-header h2{font-size:17px}
  .auth-policy-dialog-body{padding:16px}
  .auth-shell{padding:14px}
  .auth-card{border-radius:15px}
  .auth-form-panel{padding:30px 20px}
  .auth-grid-2{grid-template-columns:1fr}
  .auth-form-wrap h2{font-size:27px}
  .auth-password-hint{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  .auth-submit,.auth-alternate-btn{transition:none}
}

/* Password -> e-mail verification. Uses the existing Dura Akupunktur colors and hero. */
.auth-form-panel [hidden]{display:none!important}
.auth-otp-stage{animation:auth-otp-in .22s ease-out}
@keyframes auth-otp-in{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}
.auth-otp-label{display:block;margin:8px 0 12px;text-align:center;color:var(--auth-ink);font-size:13px;font-weight:700}
.auth-otp-entry{width:min(410px,100%);margin:2px auto 13px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 15px repeat(3,minmax(0,1fr));align-items:center;gap:9px;min-width:0}
.auth-otp-entry input.auth-otp-cell{display:block;position:static;opacity:1;visibility:visible;min-width:0;width:100%;height:62px;margin:0;padding:0;border:1.5px solid #cfdfdd;border-radius:12px;background:#fff;color:var(--auth-ink);font-family:inherit;font-size:25px;font-weight:700;line-height:1;text-align:center;letter-spacing:normal;box-shadow:0 2px 7px rgba(26,86,86,.035);outline:0;caret-color:var(--auth-teal);transition:border-color .15s,box-shadow .15s,background .15s;appearance:none;-webkit-appearance:none}
.auth-otp-entry input.auth-otp-cell:focus{border-color:var(--auth-teal);box-shadow:0 0 0 3px rgba(32,142,144,.13)}
.auth-otp-entry input.auth-otp-cell:not(:placeholder-shown){color:var(--auth-ink)}
.auth-otp-entry input.auth-otp-cell.is-filled{border-color:#99c9c3;background:#f7fcfb}
.auth-otp-separator{display:block;text-align:center;font-size:20px;color:#91a5a3;line-height:1}
.auth-otp-hint{margin:0 0 6px;text-align:center;color:var(--auth-muted);font-size:11px}
.auth-otp-resend-form,.auth-otp-cancel-form{display:flex;justify-content:center;margin-top:14px}
.auth-otp-resend,.auth-otp-back{padding:10px 14px;background:transparent;border:0;color:var(--auth-teal-dark);font-size:12px;font-weight:700;line-height:1.5}
.auth-otp-resend:disabled{color:#889b9b;cursor:default}
.auth-otp-resend:not(:disabled):hover,.auth-otp-back:hover{text-decoration:underline}
.auth-submit-wide{width:100%;margin-top:6px}
.auth-forgot-btn{display:inline-flex;align-items:center;justify-content:center;justify-self:center;min-height:36px;padding:7px 17px;margin-top:-1px;border:1px solid #b3cecd;border-radius:8px;background:#fff;color:var(--auth-teal-dark);font-size:11px;font-weight:700;text-decoration:none}
.auth-forgot-btn:hover{background:#f0f7f6;border-color:var(--auth-teal-dark)}
@media(max-width:620px){.auth-otp-entry{gap:5px;grid-template-columns:repeat(3,minmax(0,1fr)) 10px repeat(3,minmax(0,1fr))}.auth-otp-entry input.auth-otp-cell{height:51px;font-size:21px;border-radius:10px}}
@media(prefers-reduced-motion:reduce){.auth-otp-stage{animation:none}}
