/* Shared visual language with /workspace/: slate canvas, cobalt system accents, orange action. */
:root {
  --home-blue: #2563eb;
  --home-blue-dark: #1d4ed8;
  --home-orange: #e06c38;
  --home-orange-dark: #cf5925;
  --home-ink: #0f172a;
  --home-muted: #64748b;
  --home-line: #e2e8f0;
}

html, body { min-height: 100%; }
body.login-pf {
  margin: 0;
  color: var(--home-ink);
  background: #f8fafc;
  font-family: Geist, Inter, "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.login-pf::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(ellipse 700px 400px at 50% 0, rgba(37, 99, 235, .07), transparent 70%),
    linear-gradient(to right, rgba(226, 232, 240, .35) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(226, 232, 240, .35) 1px, transparent 1px);
  background-size: auto, 40px 40px, 40px 40px;
  mask-image: linear-gradient(to bottom, #000 0, #000 65%, transparent 100%);
}
#keycloak-bg { display: none; }
.pf-v5-c-login { min-height: 100vh; background: transparent; }
.pf-v5-c-login__container {
  width: min(100% - 48px, 480px);
  margin: 0 auto;
  padding: 48px 0 64px;
}
.pf-v5-c-login__header { display: block; padding: 0 0 26px; }
#kc-header-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--home-ink);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.04em;
}
#kc-header-wrapper::before {
  display: grid;
  width: 32px;
  height: 32px;
  margin-right: 10px;
  place-items: center;
  content: "↗";
  color: #fff;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0;
  background: linear-gradient(135deg, var(--home-blue), var(--home-blue-dark));
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(37, 99, 235, .25);
}
.pf-v5-c-brand { display: none; }
.pf-v5-c-login__main {
  overflow: hidden;
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(226, 232, 240, .95);
  border-radius: 16px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .09);
}
.pf-v5-c-login__main::before {
  display: block;
  height: 4px;
  content: "";
  background: linear-gradient(90deg, var(--home-blue), #4f46e5);
}
.pf-v5-c-login__main-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 30px 32px 22px;
}
.pf-v5-c-title { color: var(--home-ink); font-size: 26px; font-weight: 700; letter-spacing: -.035em; }
.pf-v5-c-login__main-header-utilities { color: var(--home-muted); }
.pf-v5-c-login__main-header-utilities .pf-v5-c-form-control { min-width: 124px; }
.pf-v5-c-login__main-body { padding: 0 32px 28px; }
.pf-v5-c-form__label-text, .pf-v5-c-form__label { color: #334155; font-size: 13px; font-weight: 600; }
.pf-v5-c-form-control {
  min-height: 44px;
  color: var(--home-ink);
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  box-shadow: none;
}
.pf-v5-c-form-control:focus { border-color: var(--home-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, .14); }
.pf-v5-c-button.pf-m-primary {
  min-height: 44px;
  color: #fff;
  font-weight: 600;
  background: linear-gradient(135deg, var(--home-orange), var(--home-orange-dark));
  border: 0;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(207, 89, 37, .25);
}
.pf-v5-c-button.pf-m-primary:hover { background: linear-gradient(135deg, #d86431, #c14f1d); box-shadow: 0 6px 18px rgba(207, 89, 37, .34); }
.pf-v5-c-login__main-footer { padding: 0 32px 26px; color: var(--home-muted); }
.pf-v5-c-login__main-footer a, #kc-registration a, #kc-info a { color: var(--home-blue); font-weight: 600; }
.pf-v5-c-login__main-footer-band { border-top: 1px solid var(--home-line); }
.pf-v5-c-login__main-footer-band-item { color: var(--home-muted); }
.pf-v5-c-alert { border-radius: 8px; }
#kc-form-options { color: var(--home-muted); font-size: 12px; }
#kc-form-buttons { padding-top: 10px; }
@media (max-width: 600px) {
  .pf-v5-c-login__container { width: min(100% - 32px, 480px); padding-top: 32px; }
  .pf-v5-c-login__main-header, .pf-v5-c-login__main-body { padding-left: 22px; padding-right: 22px; }
  .pf-v5-c-login__main-footer { padding-left: 22px; padding-right: 22px; }
  .pf-v5-c-login__main-header { align-items: flex-start; flex-direction: column; }
}
