/* Native Moodle account forms in the portal's blue/lavender card system.
   All rules are scoped: authentication, consent and form validation stay native. */
body.ezechiel-auth-page {
  --ez-clouds:var(--ambient-clouds);
  --ez-card-shadow:0 0 5px 1px rgba(40,42,48,.17),-4px 7px 16px -1px rgba(40,42,48,.17),inset 0 0 10px rgba(255,255,255,.08);
  --ez-control-shadow:0 4px 10px rgba(49,42,67,.17);
  --ez-ink:#25212d; --ez-secondary:#716c78; --ez-link:#155b80;
  display:block!important; margin:0; min-height:100dvh; color:var(--ez-ink); font-family:Montserrat,Arial,sans-serif;
  background-color:#fbfcfe; background-image:var(--ez-clouds); background-attachment:fixed;
  background-size:100vw 100dvh; font-size:14px; line-height:1.5;
}
.ezechiel-auth-page .ez-auth-canvas { min-height:calc(100dvh - 28px); margin:14px 0 14px 88px; padding:24px 28px 18px; border-radius:22px 0 0 22px; background:var(--portal-canvas-background); box-shadow:var(--portal-canvas-shadow); isolation:isolate; }
.ezechiel-auth-page .ez-auth-brand { display:flex; justify-content:center; margin:6px auto 25px; }
.ezechiel-auth-page .ez-auth-brand a { display:grid; justify-items:center; gap:5px; color:#111; text-decoration:none; }
.ezechiel-auth-page .ez-auth-brand strong { display:flex; align-items:center; gap:9px; font-size:clamp(19px,2.2vw,33px); font-weight:400; letter-spacing:.12em; line-height:1.2; }
.ezechiel-auth-page .ez-auth-brand img { width:25px; height:33px; object-fit:contain; }
.ezechiel-auth-page .ez-auth-brand small { font-size:8px; font-weight:400; color:#918b94; }
.ezechiel-auth-page .ez-auth-topbar { width:min(100%,480px); margin:0 auto 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ezechiel-auth-page a { color:var(--ez-link); text-underline-offset:3px; }
.ezechiel-auth-page a:hover { color:#5147aa; }
.ezechiel-auth-page .ez-auth-back { font-size:12px; font-weight:600; text-decoration:none; }
.ezechiel-auth-page .ez-auth-main { width:min(100%,480px); margin:0 auto; }
.ezechiel-auth-page .ez-auth-card { position:relative; isolation:isolate; padding:30px; border:1px solid rgba(255,255,255,.3); border-radius:24px; background-image:linear-gradient(rgba(255,255,255,.38),rgba(255,255,255,.38)),var(--ez-clouds); background-size:100vw 100dvh; background-attachment:fixed; box-shadow:var(--ez-card-shadow); }
.ezechiel-auth-page .ez-auth-card:before { content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; pointer-events:none; box-shadow:inset 0 0 0 1px #fff,inset 0 0 9px 3px rgba(255,255,255,.65); }
.ezechiel-auth-page .ez-auth-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.ezechiel-auth-page .ez-auth-kicker { display:block; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ez-secondary); margin-bottom:5px; }
.ezechiel-auth-page .ez-auth-heading h1 { margin:0; font-size:27px; font-weight:800; letter-spacing:-.03em; line-height:1.2; }
.ezechiel-auth-page .ez-auth-icon { width:44px; height:44px; display:grid; place-items:center; flex:0 0 44px; color:#6355b3; border:1px solid #d4cdf3; background:rgba(232,229,255,.65); border-radius:15px; }
.ezechiel-auth-page .ez-auth-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ezechiel-auth-page .ez-auth-copy { margin:0 0 24px; font-size:12px; color:var(--ez-secondary); }
.ezechiel-auth-page .ez-auth-footer { width:min(100%,480px); padding:22px 0 0; margin:auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:10px; color:var(--ez-secondary); }
.ezechiel-auth-page .ez-auth-bottomlink { border-top:1px solid rgba(126,116,153,.15); padding-top:18px; margin:22px 0 0; font-size:12px; text-align:center; }
.ezechiel-auth-page .ez-login-form { display:grid; gap:16px; }
.ezechiel-auth-page .ez-auth-field { display:grid; gap:6px; }
.ezechiel-auth-page label { color:var(--ez-ink); font-size:12px; font-weight:700; }
.ezechiel-auth-page .form-control,.ezechiel-auth-page .custom-select,.ezechiel-auth-page select {
  color:var(--ez-ink); font:500 13px/1.5 Montserrat,Arial,sans-serif; max-width:100%; min-height:45px;
  background:rgba(255,255,255,.88); border:1px solid rgba(126,116,153,.28); border-radius:15px; padding:11px 13px;
  box-shadow:0 3px 9px rgba(56,48,82,.07); transition:border-color .12s,box-shadow .12s;
}
.ezechiel-auth-page .form-control:focus,.ezechiel-auth-page select:focus { outline:0; border-color:#948aca; box-shadow:0 0 0 3px rgba(145,131,203,.25); background:#fff; }
.ezechiel-auth-page .btn,.ezechiel-auth-page input[type=submit] { border:1px solid rgba(72,133,174,.25); border-radius:999px; padding:10px 18px; min-height:43px; height:auto; font:700 12px/1.5 Montserrat,Arial,sans-serif; color:var(--ez-link); background:rgba(255,255,255,.74); box-shadow:var(--ez-control-shadow); transition:background .12s,box-shadow .12s; }
.ezechiel-auth-page .btn:hover { background:#fff; box-shadow:0 6px 14px rgba(45,40,61,.22); transform:none; }
.ezechiel-auth-page .btn-primary { color:#155b80; background:linear-gradient(120deg,rgba(185,221,239,.92),rgba(207,216,239,.9)); }
.ezechiel-auth-page .btn-primary:hover { color:#155b80; background:linear-gradient(120deg,#c5e4f1,#d9dff3); }
.ezechiel-auth-page .btn:focus-visible,.ezechiel-auth-page a:focus-visible { outline:3px solid rgba(116,100,184,.6); outline-offset:3px; }
.ezechiel-auth-page .ez-auth-submit,.ezechiel-auth-page .login-identityprovider-btn { width:100%; }
.ezechiel-auth-page .login-identityprovider-btn { display:flex; align-items:center; justify-content:center; gap:9px; }
.ezechiel-auth-page .ez-password-box { position:relative; }
.ezechiel-auth-page .ez-password-box .form-control { width:100%; padding-right:46px; }
.ezechiel-auth-page .ez-password-toggle { position:absolute; right:7px; top:5px; width:35px; height:35px; display:grid; place-items:center; border:0; border-radius:10px; color:#77717d; background:transparent; box-shadow:none; padding:0; }
.ezechiel-auth-page .ez-password-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; }
.ezechiel-auth-page .ez-password-toggle[aria-pressed=true] { color:#5147aa; background:#eeeafa; }
.ezechiel-auth-page .ez-auth-forgot { margin:3px 0 0; font-size:11px; text-align:right; }
.ezechiel-auth-page .ez-auth-divider { display:flex; align-items:center; gap:10px; margin:20px 0 14px; font-size:10px; color:var(--ez-secondary); }
.ezechiel-auth-page .ez-auth-divider:before,.ezechiel-auth-page .ez-auth-divider:after { content:""; height:1px; flex:1; background:rgba(126,116,153,.18); }
.ezechiel-auth-page .ez-auth-options { display:grid; gap:9px; }
.ezechiel-auth-page .ez-auth-signup { font-size:12px; text-align:center; margin:22px 0 0; }
.ezechiel-auth-page .ez-auth-cookie { font-size:10px; margin:18px auto 0; display:block; border:0; box-shadow:none; min-height:0; background:transparent; padding:4px; }
.ezechiel-auth-page .alert { font-size:12px; border-radius:14px; padding:12px 14px; }
.ezechiel-auth-page .alert-danger { border:1px solid #e7b4be; background:#fff0f3; color:#853a4b; }
.ezechiel-auth-page .alert-info { border:1px solid #bdd9eb; background:rgba(234,245,253,.92); color:#315f78; }
/* Keep Moodle mform elements and hidden security fields; only change their layout. */
.ezechiel-auth-page .mform { margin:0; }
.ezechiel-auth-page .mform .fitem { display:block; margin:0 0 16px!important; }
.ezechiel-auth-page .mform .fitem > .col-form-label,.ezechiel-auth-page .mform .fitem > .col-md-3 { max-width:100%; width:100%; flex:none; padding:0 0 6px!important; text-align:left!important; }
.ezechiel-auth-page .mform .fitem > .felement,.ezechiel-auth-page .mform .fitem > .col-md-9 { max-width:100%; width:100%; flex:none; padding:0; }
.ezechiel-auth-page .mform .fitem .form-control:not([type=checkbox]):not([type=radio]) { width:100%; }
.ezechiel-auth-page .mform fieldset { margin:0; padding:0; border:0; }
.ezechiel-auth-page .mform legend { font-size:15px; font-weight:700; margin:18px 0 12px; }
.ezechiel-auth-page .mform .fdescription,.ezechiel-auth-page .mform .form-text { font-size:11px; color:var(--ez-secondary); }
.ezechiel-auth-page .mform .invalid-feedback { font-size:12px; color:#9a344b; }
.ezechiel-auth-page .mform .is-invalid { border-color:#c6637c; }
.ezechiel-auth-page .mform .form-inline,.ezechiel-auth-page .mform .fgroup { gap:9px; flex-wrap:wrap; }
.ezechiel-auth-page .mform input[type=checkbox] { accent-color:#7974b1; }
.ezechiel-auth-page #fgroup_id_buttonar { position:static!important; inset:auto!important; width:100%!important; transform:none!important; background:transparent!important; border:0!important; padding:12px 0 0!important; box-shadow:none!important; backdrop-filter:none!important; }
.ezechiel-auth-page #fgroup_id_buttonar > .col-form-label { display:none; }
.ezechiel-auth-page #fgroup_id_buttonar .rui-form-element-group { gap:10px; }
.ezechiel-auth-page #fgroup_id_buttonar .fitem { margin:0!important; }
.ezechiel-auth-page #id_changepassword > legend { display:none; }
.ezechiel-auth-page .mform .fstatic,.ezechiel-auth-page .mform .fitem .col-md-9 { font-size:12px; }
.ezechiel-auth-page .generalbox { padding:0!important; background:transparent; border:0; box-shadow:none; }
.ezechiel-auth-page .generalbox p,.ezechiel-auth-page #notice p { font-size:12px; }
.ezechiel-auth-page .rui-login-form { padding:0; }
.ezechiel-auth-page .rui-login-lang-wrapper { position:static; }
.ezechiel-auth-page .ez-auth-language .btn { font-size:10px; padding:4px 9px; min-height:30px; box-shadow:none; }
.ezechiel-auth-page .ez-auth-language .dropdown-menu { font-size:12px; background:#fbfaff; border-radius:14px; box-shadow:var(--ez-card-shadow); }
.ezechiel-auth-page .ez-auth-language .rui-navbar-lang { position:relative!important; inset:auto!important; transform:none!important; }
.ezechiel-policy-page .ez-auth-main,.ezechiel-policy-page .ez-auth-topbar,.ezechiel-policy-page .ez-auth-footer { width:min(100%,760px); }
.ezechiel-policy-page .ez-auth-card h2 { font-size:20px; }
.ezechiel-policy-page .ez-auth-card h3 { font-size:16px; }
.ezechiel-policy-page .ez-auth-card p,.ezechiel-policy-page .ez-auth-card li { font-size:13px; line-height:1.6; }
.ezechiel-policy-page .ez-auth-card .float-right { float:none!important; }
.ezechiel-auth-page .eupopup-container { max-width:min(460px,calc(100vw - 32px)); margin:16px; padding:18px; border:1px solid rgba(255,255,255,.85); border-radius:20px; background:rgba(249,248,255,.98); color:var(--ez-ink); box-shadow:var(--ez-card-shadow); font-size:12px; }
.ezechiel-auth-page .eupopup-container .eupopup-body { color:var(--ez-ink); font-size:12px; }
.ezechiel-auth-page .eupopup-container .eupopup-closebutton { color:var(--ez-secondary); background:rgba(255,255,255,.8); border-radius:9px; }
.ezechiel-auth-page .eupopup-container .eupopup-button { color:var(--ez-link); background:rgba(200,226,240,.85); border-radius:12px; }
.ezechiel-auth-page .eupopup-container a { color:var(--ez-link)!important; }
.ezechiel-auth-page .modal-content { border:1px solid #fff; border-radius:24px; background:#faf9fe; color:var(--ez-ink); box-shadow:var(--ez-card-shadow); }
.ezechiel-auth-page .modal-header,.ezechiel-auth-page .modal-footer { border-color:rgba(126,116,153,.15); }
.ezechiel-auth-page .modal-title { font-size:18px; }
.ezechiel-auth-page .modal-body { font-size:13px; }
@media(max-width:700px) {
  body.ezechiel-auth-page { background-attachment:scroll; }
  .ezechiel-auth-page .ez-auth-canvas { margin:0; min-height:100dvh; padding:22px 16px; border-radius:0; box-shadow:none; }
  .ezechiel-auth-page .ez-auth-brand { margin-bottom:22px; }
  .ezechiel-auth-page .ez-auth-card { padding:24px 21px; border-radius:22px; background-attachment:scroll; background-size:100vw 100dvh; }
  .ezechiel-auth-page .ez-auth-heading h1 { font-size:24px; }
  .ezechiel-auth-page .form-control,.ezechiel-auth-page select { font-size:16px; }
  .ezechiel-auth-page .btn,.ezechiel-auth-page .form-control { transition:none; }
}
@media(prefers-reduced-motion:reduce) { .ezechiel-auth-page *, .ezechiel-auth-page *:before { animation:none!important; transition:none!important; } }

/* Native form headings inherit the same clear surface as the portal. */
/* Override xy's reverse flex heading and mobile container gutters as one form layout. */
.ezechiel-auth-page .mform .rui-ftoggler { margin:0 0 12px!important; padding:0!important; }
.ezechiel-auth-page .mform .ftoggler { flex-direction:row!important; justify-content:flex-start!important; background:transparent!important; border:0; border-radius:0; padding:0; box-shadow:none; }
.ezechiel-auth-page .mform .ftoggler h3 { display:block!important; width:100%; margin:0!important; font-size:14px; line-height:1.45; text-align:left; color:var(--ez-ink); }
.ezechiel-auth-page .mform .fcontainer { padding:0!important; margin:0!important; }
/* Reset search sections: separate them from the introduction, group headings with their fields. */
.ezechiel-auth-reset-page .mform { margin-top:20px; }
.ezechiel-auth-reset-page .mform .rui-ftoggler { margin-bottom:6px!important; }
.ezechiel-policy-page .policy_buttons { display:flex; justify-content:flex-end; gap:12px; }
.ezechiel-policy-page .policy_buttons > .float-end { display:none; }
@media(min-width:701px) and (max-width:1080px) { .ezechiel-auth-page .ez-auth-canvas { margin-left:76px; } }
@media(min-width:1500px) { .ezechiel-auth-page .ez-auth-canvas { margin-left:clamp(108px,5.8vw,126px); } }

/* Post-registration messages keep native text and targets within the common account card. */
.ezechiel-auth-status-page .ez-auth-card { overflow-wrap:anywhere; }
.ezechiel-auth-status-page .ez-auth-icon { color:#22688c; background:rgba(221,240,250,.8); border-color:#c5e0ed; }
.ezechiel-auth-confirmed .ez-auth-icon { color:#32836a; background:rgba(227,246,236,.85); border-color:#c4e3d3; }
.ezechiel-auth-status-page .generalbox { width:100%!important; max-width:none!important; margin:0!important; text-align:left!important; font-size:13px; line-height:1.7; color:var(--ez-ink); }
.ezechiel-auth-status-page .generalbox h3 { margin:4px 0 12px; font-size:19px; font-weight:700; line-height:1.4; }
.ezechiel-auth-status-page .generalbox p { margin:0 0 16px; font-size:13px; line-height:1.7; }
.ezechiel-auth-status-page .generalbox p:last-child { margin-bottom:0; }
.ezechiel-auth-status-page :is(.continuebutton,.singlebutton) { display:block; margin:24px 0 0!important; width:100%; }
.ezechiel-auth-status-page :is(.continuebutton,.singlebutton) form { margin:0; width:100%; }
.ezechiel-auth-status-page :is(.continuebutton,.singlebutton) .btn { width:100%; min-height:44px; }
