:root {
      --navy:#2F315F;
      --pink:#FF6A95;
      --bg:#F9F6FB;
      --text:#252236;
      --muted:#7C7890;
      --border:#E6DEEF;
      --white:#fff;
      --danger:#FFF0F3;
      --danger-text:#9D3352;
    }
    * { box-sizing:border-box; }
    body {
      margin:0;
      min-height:100vh;
      display:grid;
      place-items:center;
      padding:24px;
      font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",Meiryo,sans-serif;
      background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);
      color:var(--text);
    }
    .card {
      width:min(100%,440px);
      background:var(--white);
      border:1px solid var(--border);
      border-radius:26px;
      padding:30px;
      box-shadow:0 14px 34px rgba(47,49,95,.08);
    }
    h1 {
      margin:0 0 8px;
      color:var(--navy);
      font-size:1.8rem;
    }
    p {
      margin:0 0 22px;
      color:var(--muted);
      font-weight:700;
    }
    label {
      display:block;
      margin:16px 0 7px;
      font-weight:800;
      color:var(--navy);
    }
    input {
      width:100%;
      border:1px solid var(--border);
      border-radius:14px;
      padding:13px 14px;
      font-size:1rem;
      outline:none;
    }
    input:focus {
      border-color:var(--pink);
      box-shadow:0 0 0 4px rgba(255,106,149,.12);
    }
    button {
      width:100%;
      margin-top:22px;
      border:0;
      border-radius:999px;
      padding:13px 16px;
      background:var(--navy);
      color:#fff;
      font-weight:900;
      font-size:1rem;
      cursor:pointer;
    }
    button:disabled {
      opacity:.55;
      cursor:not-allowed;
    }
    .error {
      display:none;
      margin-top:16px;
      padding:12px 14px;
      border-radius:14px;
      background:var(--danger);
      color:var(--danger-text);
      border:1px solid #F2BFD0;
      font-weight:800;
    }
    .small {
      margin-top:18px;
      font-size:.84rem;
      color:var(--muted);
    }
header { background:#fff; border-bottom:1px solid var(--border); width:100%; }
.header-inner { max-width:860px; margin:0 auto; padding:18px 22px; display:flex; justify-content:space-between; align-items:center; }
.brand { font-weight:900; color:var(--navy); }
.header-inner a { color:var(--navy); font-weight:800; text-decoration:none; }
body.auth-page-left { display:block; padding:0; }
.auth-main { max-width:520px; margin:0 auto; padding:38px 22px; }
.message { display:none; margin-top:16px; padding:12px 14px; border-radius:14px; font-weight:800; }
.message.error { display:block; background:var(--danger); color:var(--danger-text); border:1px solid #F2BFD0; }
.message.ok { display:block; background:#EEF8F4; color:#23624A; border:1px solid #CFE9DE; }
