body{background:var(--bg-soft);}
  .auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
  @media (max-width:960px){ .auth{grid-template-columns:1fr;} .auth-side{display:none;} }

  /* 왼쪽 브랜드 패널 */
  .auth-side{
    background:
      radial-gradient(600px 340px at 20% 12%, rgba(94,234,212,.24), transparent 62%),
      linear-gradient(150deg,var(--deep-950),var(--deep-800) 55%,var(--brand-700) 160%);
    color:#fff;padding:56px 56px;display:flex;flex-direction:column;justify-content:space-between;
    position:relative;overflow:hidden;
  }
  .auth-side::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:56px 56px;
    mask-image:radial-gradient(closest-side at 30% 40%,#000 30%,transparent 100%);
    -webkit-mask-image:radial-gradient(closest-side at 30% 40%,#000 30%,transparent 100%);
  }
  .auth-side > *{position:relative;z-index:1;}
  .auth-side .logo{color:#fff;}
  .auth-side h2{font-size:clamp(26px,2.6vw,36px);font-weight:800;letter-spacing:-.035em;line-height:1.35;margin-top:44px;}
  .auth-side p{color:rgba(255,255,255,.62);margin-top:16px;font-size:15.5px;line-height:1.8;max-width:420px;}
  .auth-points{margin-top:34px;display:grid;gap:14px;}
  .auth-points li{display:flex;align-items:flex-start;gap:11px;font-size:15px;font-weight:600;color:rgba(255,255,255,.86);}
  .auth-points .chk{
    width:22px;height:22px;border-radius:7px;flex:0 0 22px;margin-top:1px;
    background:rgba(94,234,212,.2);border:1px solid rgba(94,234,212,.4);
    display:grid;place-items:center;color:#7EE0D3;
  }
  .auth-points .chk svg{width:12px;height:12px;}
  .auth-quote{
    border-left:3px solid rgba(94,234,212,.5);padding-left:18px;
    font-size:14.5px;color:rgba(255,255,255,.6);line-height:1.8;
  }
  .auth-quote b{color:#fff;display:block;margin-top:8px;font-size:13.5px;font-weight:700;}

  /* 오른쪽 폼 패널 */
  .auth-main{display:flex;align-items:center;justify-content:center;padding:40px 24px;}
  .auth-box{width:100%;max-width:412px;}
  .auth-box > .logo{justify-content:center;margin-bottom:30px;display:none;}
  @media (max-width:960px){ .auth-box > .logo{display:flex;} }
  .tabs{
    display:grid;grid-template-columns:1fr 1fr;gap:5px;background:var(--line-2);
    padding:5px;border-radius:13px;margin-bottom:28px;
  }
  .tabs button{
    padding:11px;border-radius:9px;font-size:14.5px;font-weight:700;color:var(--ink-3);transition:.22s var(--ease);
  }
  .tabs button.active{background:#fff;color:var(--brand-700);box-shadow:var(--shadow-sm);}
  .auth-title{font-size:25px;font-weight:800;letter-spacing:-.035em;text-align:center;}
  .auth-sub{font-size:14.5px;color:var(--ink-3);text-align:center;margin:9px 0 30px;}
  .pane{display:none;}
  .pane.on{display:block;animation:fade .3s var(--ease);}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .pw-wrap{position:relative;}
  .pw-toggle{
    position:absolute;right:6px;top:50%;transform:translateY(-50%);
    width:38px;height:38px;border-radius:9px;display:grid;place-items:center;color:var(--ink-4);
  }
  .pw-toggle:hover{background:var(--line-2);color:var(--ink-2);}
  .pw-toggle svg{width:18px;height:18px;}
  .agree{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--ink-3);line-height:1.6;margin-bottom:20px;}
  .agree input{width:20px;height:20px;margin-top:1px;accent-color:var(--brand-700);flex:0 0 20px;}
  .agree a{color:var(--brand-700);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
  .back{display:block;text-align:center;margin-top:20px;padding:12px 0;font-size:13.5px;color:var(--ink-4);font-weight:600;}
  .back:hover{color:var(--brand-700);}
  .strength{height:4px;border-radius:99px;background:var(--line-2);margin-top:9px;overflow:hidden;}
  .strength i{display:block;height:100%;width:0;border-radius:99px;transition:width .3s var(--ease),background .3s;}

  /* 좁은 화면에서는 브랜드 패널을 숨깁니다 (뒤에 와야 앞선 display:flex를 덮어씁니다) */
  @media (max-width:960px){
    .auth{grid-template-columns:1fr;}
    .auth-side{display:none;}
  }

/* ---------- 모바일 세부 조정 ---------- */
@media (max-width:768px){
  .auth-main{padding:32px 20px calc(32px + env(safe-area-inset-bottom));align-items:flex-start;}
  .auth-box{max-width:none;}
  .tabs button{padding:13px;}
  .pw-toggle{width:44px;height:44px;right:3px;}
  .auth-title{font-size:23px;}
  .agree{font-size:13.5px;gap:11px;}
}
