@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root {
  --ry-paper:#f5f2e8; --ry-panel:#fbf9f2; --ry-ink:#243b33; --ry-muted:#63736a;
  --ry-green:#315b4c; --ry-green-deep:#1d4037; --ry-green-soft:#e3ebdf;
  --ry-coral:#c8755f; --ry-line:#d8ded2; --ry-danger:#a4473e;
}
* { box-sizing:border-box; }
body.riyela-auth {
  min-height:100vh; min-height:100dvh; margin:0; padding:24px;
  display:flex; align-items:center; justify-content:center;
  color:var(--ry-ink); background:var(--ry-paper);
  font-family:"DM Sans","Avenir Next",sans-serif; -webkit-font-smoothing:antialiased;
  position:relative; isolation:isolate;
}
body.riyela-auth::before {
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 12% 16%,rgba(199,217,196,.52),transparent 34%),
             radial-gradient(ellipse at 94% 88%,rgba(212,126,102,.15),transparent 30%);
}
.riyela-auth :focus-visible { outline:3px solid var(--ry-coral); outline-offset:3px; }
.riyela-auth .login-container,.riyela-auth .register-container,.riyela-auth .container-box,
.riyela-auth .container.mt-4 {
  width:min(100%,480px); max-width:480px; margin:0 auto; padding:35px 38px;
  background:var(--ry-panel); border:1px solid var(--ry-line); border-radius:10px 10px 10px 3px;
  box-shadow:0 22px 60px rgba(36,59,51,.10); position:relative;
}
.riyela-auth .register-container { max-width:590px; padding:30px 38px; }
.riyela-auth .container.mt-4 { max-width:560px; margin:0; }
.riyela-auth .brand-logo { margin-bottom:24px; text-align:left; }
.riyela-auth .brand-logo h1 {
  margin:0 0 4px; color:var(--ry-green-deep); font:36px/1 var(--ry-display, "Instrument Serif", Georgia,serif);
  letter-spacing:-.03em;
}
.riyela-auth .brand-logo p { margin:0; color:var(--ry-muted); font-size:12px; }
.riyela-auth .login-title,.riyela-auth .register-title,.riyela-auth .page-title,
.riyela-auth h2.text-center {
  color:var(--ry-ink); font:32px/1.1 "Instrument Serif",Georgia,serif; text-align:left;
}
.riyela-auth .login-subtitle,.riyela-auth .register-subtitle,.riyela-auth .page-subtitle {
  color:var(--ry-muted); text-align:left; line-height:1.65; font-size:13px;
}
.riyela-auth .form-group label,.riyela-auth label { display:block; margin-bottom:6px; color:#43594e; font-size:12px; font-weight:700; }
.riyela-auth .form-control,.riyela-auth .form-control-modern,.riyela-auth input:not([type=hidden]) {
  min-height:45px; color:var(--ry-ink); background:#fffdf7; border:1px solid #cbd5c9;
  border-radius:5px; font:14px "DM Sans","Avenir Next",sans-serif;
}
.riyela-auth .form-control-modern { padding:10px 13px; }
.riyela-auth .form-control:focus,.riyela-auth .form-control-modern:focus,.riyela-auth input:focus {
  border-color:var(--ry-green); background:#fffdf7; box-shadow:0 0 0 3px rgba(49,91,76,.13); outline:0;
}
.riyela-auth .form-control-with-icon { padding-left:43px; }
.riyela-auth .input-icon { color:#84968a; }
.riyela-auth .btn-modern,.riyela-auth .btn-primary {
  min-height:48px; padding:11px 18px; color:#fffdf7; background:var(--ry-green); border:1px solid var(--ry-green);
  border-radius:5px 5px 5px 2px; font:700 13px "DM Sans","Avenir Next",sans-serif;
  box-shadow:none; transition:background .18s ease,transform .18s ease;
}
.riyela-auth .btn-modern:hover,.riyela-auth .btn-primary:hover { color:#fffdf7; background:var(--ry-green-deep); border-color:var(--ry-green-deep); transform:translateY(-1px); }
.riyela-auth .btn-modern:disabled,.riyela-auth button:disabled { opacity:.58; cursor:not-allowed; transform:none; }
.riyela-auth .auth-links { text-align:left; font-size:12px; }
.riyela-auth .auth-links a { color:var(--ry-green); font-weight:700; text-decoration:underline; text-decoration-color:rgba(49,91,76,.35); text-underline-offset:3px; }
.riyela-auth .auth-links a:hover { color:var(--ry-coral); }
.riyela-auth .divider { color:#8a968c; }
.riyela-auth .divider::before { background:var(--ry-line); }
.riyela-auth .divider span { background:var(--ry-panel); }
.riyela-auth .feature-highlights { background:#eef1e8; border:1px solid var(--ry-line); border-radius:6px; }
.riyela-auth .feature-highlights h6 { color:var(--ry-green); }
.riyela-auth .feature-item { color:var(--ry-muted); }
.riyela-auth .feature-item i,.riyela-auth .requirement.valid i { color:var(--ry-green); }
.riyela-auth .alert,.riyela-auth .alert-modern { border-radius:5px; }
.riyela-auth .alert-danger { color:#843c35; background:#f8e8e4; border:1px solid #edc9c0; }
.riyela-auth .alert-success { color:#356344; background:#e5f0e7; border:1px solid #c7ddcb; }
.riyela-auth .alert-info,.riyela-auth .alert-primary { color:#315c63; background:#e5eff0; border:1px solid #c8dddf; }
.riyela-auth .field-error,.riyela-auth .invalid-feedback { color:var(--ry-danger); }
.riyela-auth .form-text { color:var(--ry-muted) !important; font-size:11px; }
.riyela-auth h2.text-center { margin-bottom:20px; }
.riyela-auth p.text-center { color:var(--ry-muted); line-height:1.7; }
.riyela-auth .fade-in-up { animation:ry-auth-in .42s ease-out both; }
@keyframes ry-auth-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:560px) {
  body.riyela-auth { align-items:flex-start; padding:15px; }
  .riyela-auth .login-container,.riyela-auth .register-container,.riyela-auth .container-box,.riyela-auth .container.mt-4 { margin:auto; padding:25px 21px; }
  .riyela-auth .feature-list { grid-template-columns:1fr 1fr; }
}
@media(prefers-reduced-motion:reduce) { .riyela-auth *, .riyela-auth *::before,.riyela-auth *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
