
:root{
  --cems-green-900:#083f28;
  --cems-green-800:#0b6b3a;
  --cems-green-700:#157347;
  --cems-gold-600:#caa24b;
  --cems-gold-500:#d8b86a;
  --cems-line:#dbe4eb;
  --cems-text:#102033;
  --cems-muted:#64748b;
  --cems-card:#ffffff;
  --cems-shadow:0 28px 60px rgba(15,23,42,.14);
}
*{box-sizing:border-box}
body.cems-auth-body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--cems-text);
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(216,184,106,.20), transparent 24%),
    radial-gradient(circle at bottom right, rgba(11,107,58,.18), transparent 22%),
    linear-gradient(180deg,#f7fafc 0%, #edf2f7 100%);
}
.wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.card{
  width:min(620px,100%);background:rgba(255,255,255,.96);border:1px solid rgba(219,228,235,.9);border-radius:28px;box-shadow:var(--cems-shadow);overflow:hidden;backdrop-filter:blur(10px)
}
.head{
  display:flex;gap:16px;align-items:center;padding:22px 22px 18px;
  background:
    radial-gradient(circle at top right, rgba(216,184,106,.18), transparent 24%),
    linear-gradient(135deg,#0b6b3a 0%, #157347 62%, #b59c3d 100%);
  color:#fff;
}
.logo{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:18px;padding:8px;border:1px solid rgba(255,255,255,.35);box-shadow:0 18px 28px rgba(0,0,0,.14)}
.ttl{min-width:0}
.ttl h1{margin:0;font-size:30px;line-height:1.05;letter-spacing:-.03em}
.ttl .sub{margin-top:8px;font-size:13px;line-height:1.55;color:#e7f9ef}
.body{padding:24px}
.row,.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:640px){.row,.row2{grid-template-columns:1fr}}
.field{margin-top:14px}
label{display:block;font-weight:900;color:var(--cems-green-900);font-size:13px;letter-spacing:.02em}
input,select{
  width:100%;padding:14px 16px;border:1px solid var(--cems-line);border-radius:16px;font-size:15px;margin-top:8px;outline:none;background:#fff;line-height:1.4
}
input:focus,select:focus{border-color:rgba(11,107,58,.45);box-shadow:0 0 0 4px rgba(11,107,58,.10)}
.hint{font-size:12px;color:var(--cems-muted);margin-top:10px;line-height:1.6}
.msg,.err{margin-top:12px;padding:12px 14px;border-radius:16px;font-size:13px;font-weight:800;line-height:1.55}
.msg{background:#fff8e8;border:1px solid #f2db9e;color:#6d4d06}
.err,.msg.red{background:#fff1f0;border:1px solid #f2c6c1;color:#9d2424}
.btn{
  margin-top:16px;width:100%;padding:14px 16px;border:0;border-radius:18px;background:linear-gradient(135deg,#d7b05a 0%, #c99d3e 100%);font-weight:900;font-size:15px;cursor:pointer;color:#0f172a;
  box-shadow:0 16px 28px rgba(201,157,62,.24)
}
.btn:disabled{opacity:.6;cursor:not-allowed}
.toggle{white-space:nowrap;padding:0 16px;border:1px solid var(--cems-line);background:#f8fafc;border-radius:16px;cursor:pointer;font-size:13px;font-weight:900;color:var(--cems-green-900)}
.pw-wrap{display:flex;align-items:stretch;gap:10px;margin-top:8px}.pw-wrap input{margin-top:0}
.switch{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.linkbtn{
  display:inline-flex;align-items:center;gap:8px;padding:11px 14px;border-radius:16px;border:1px solid var(--cems-line);background:#fff;text-decoration:none;color:var(--cems-text);font-weight:900;transition:.16s ease
}
.linkbtn:hover{border-color:rgba(11,107,58,.28);transform:translateY(-1px);box-shadow:0 10px 18px rgba(15,23,42,.06)}
.foot{padding:14px 20px;border-top:1px solid var(--cems-line);color:#718096;font-size:11px;text-align:center;background:#fbfdff}
