:root{
  --bg: oklch(98% 0.003 260);
  --surface: oklch(100% 0 0);
  --border: oklch(92% 0.006 260);
  --text: oklch(24% 0.02 260);
  --text-soft: oklch(52% 0.015 260);
  --accent: oklch(58% 0.16 265);
  --accent-dark: oklch(48% 0.16 265);
  --accent-soft: oklch(94% 0.03 265);
  --danger: oklch(58% 0.19 25);
  --danger-soft: oklch(95% 0.05 25);
  --success: oklch(62% 0.14 150);
  --success-soft: oklch(94% 0.05 150);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
  color:var(--text);
  min-height:100vh;
  background:
    radial-gradient(1200px 700px at 15% -10%, oklch(94% 0.04 265) 0%, transparent 60%),
    radial-gradient(1000px 600px at 105% 105%, oklch(95% 0.03 150) 0%, transparent 55%),
    var(--bg);
  display:flex;align-items:center;justify-content:center;
  padding:40px 16px;
}
a{color:var(--accent);text-decoration:none;}
a:hover{color:var(--accent-dark);}
input{font-family:inherit;}
button{font-family:inherit;cursor:pointer;}

.auth-wrap{width:100%;max-width:440px;display:flex;flex-direction:column;gap:28px;}
.auth-brand{display:flex;align-items:center;gap:10px;justify-content:center;}
.auth-brand-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--accent);color:white;}
.auth-brand-name{font-weight:700;font-size:17px;}

.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:36px;box-shadow:0 12px 32px oklch(0% 0 0 / 0.06);display:flex;flex-direction:column;gap:22px;}
.auth-card h1{font-size:20px;font-weight:900;margin:0;}
.auth-card .sub{font-size:13.5px;color:var(--text-soft);}

.field{display:flex;flex-direction:column;gap:7px;}
.field span.label{font-size:13px;font-weight:700;}
.field input[type=email],
.field input[type=password],
.field input[type=text]{
  padding:11px 14px;border-radius:10px;border:1px solid var(--border);font-size:14px;outline:none;width:100%;
}
.field input:focus{border-color:var(--accent);}

.checkbox-row{display:flex;align-items:flex-start;gap:9px;}
.checkbox-row input{margin-top:3px;width:15px;height:15px;}
.checkbox-row span{font-size:12.5px;color:var(--text-soft);line-height:1.5;}

.btn-primary{width:100%;padding:13px;border:none;border-radius:11px;background:var(--accent);color:white;font-weight:700;font-size:14.5px;box-shadow:0 1px 2px oklch(0% 0 0 / 0.1);}
.btn-primary:hover{background:var(--accent-dark);}

.auth-footer{text-align:center;font-size:13px;color:var(--text-soft);}

.alert{border-radius:10px;padding:11px 14px;font-size:13px;line-height:1.6;}
.alert-danger{background:var(--danger-soft);color:var(--danger);}
.alert-success{background:var(--success-soft);color:var(--success);}
