/* Fonts are SELF-HOSTED, not pulled from fonts.googleapis.com.
 * A top-level @import to a third-party host BLOCKS the whole
 * stylesheet: the browser won't apply login.css until the external
 * fetch resolves, so any latency/blockage there left the login page
 * rendering in the default PatternFly look ("carrot title, keycloak
 * colors") on the first page load while the fonts warmed the cache,
 * and correctly themed on the next. Both faces below are variable
 * fonts served from this theme's resources (see fonts/); font-display
 * swap means text falls back to system-ui instantly and swaps once the
 * woff2 arrives — the theme colors never wait on a network fetch. */
@font-face{
  font-family:'Bricolage Grotesque';font-style:normal;font-weight:600 800;
  font-stretch:100%;font-display:swap;
  src:url('../fonts/bricolage-grotesque-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 700;
  font-display:swap;
  src:url('../fonts/plus-jakarta-sans-latin.woff2') format('woff2');
}
/* carrot login theme — Keycloak 25 (PatternFly 4/5 DOM).
 * A carrot field at first light. The ambient scene is painted on
 * .login-pf-page (the element that fills the viewport) with !important,
 * because PatternFly's own login css paints a dark geometric pattern on
 * that same element and would otherwise cover a body-level background.
 * Animated furrows live on .login-pf-page::before at a negative stacking
 * layer (above the sky, below the card). Branding (green wordmark +
 * carrot icon) lives inside the white card; the default dark header
 * band is hidden. The password eye-toggle is folded inline into the
 * field as a single pill — no separate box, no underline. */
:root{
  --green:#2f7d32; --green-deep:#1f5d24;
  --orange:#e8741a; --orange-deep:#c2410c;
  --ink:#1c2620; --muted:#5d6b62; --line:#e4e9e5; --field:#f5f8f5;
  --display:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'Plus Jakarta Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:var(--body);color:var(--ink);background:#0d1a10}

.login-pf-page{
  position:relative;z-index:0;min-height:100vh;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;
  background:
    radial-gradient(40rem 14rem at 50% 4%, rgba(255,214,150,.55), transparent 70%),
    radial-gradient(120% 60% at 50% 2%, rgba(255,138,52,.50), rgba(232,116,26,.16) 34%, transparent 62%),
    radial-gradient(150% 70% at 50% 116%, rgba(86,176,82,.55), rgba(31,93,36,.30) 40%, transparent 72%),
    linear-gradient(180deg,#1a120a 0%,#241a10 26%,#16301d 64%,#0c2113 100%) !important;
}
.login-pf-page::before{
  content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background-image:
    repeating-linear-gradient(112deg, rgba(255,196,128,.10) 0 2px, transparent 2px 44px),
    radial-gradient(rgba(255,210,150,.10) 1.4px, transparent 1.7px);
  background-size:auto, 34px 34px;
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, transparent 34%, #000 60%, #000 100%);
          mask-image:linear-gradient(to bottom, transparent 0%, transparent 34%, #000 60%, #000 100%);
  animation:pan 40s linear infinite;
}
@keyframes pan{from{transform:translate(0,0)}to{transform:translate(44px,22px)}}

#kc-header{display:none}

.card-pf{
  position:relative;z-index:1;width:100%;max-width:432px;margin:0;padding:42px 38px 34px;
  background:#fff;border:none;border-radius:22px;
  box-shadow:0 34px 80px -28px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.04);
  animation:rise .6s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}

.login-pf-header{text-align:center;margin:0 0 24px;align-items:center}
.login-pf-header::before{
  content:"CARROT";display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:800;font-size:31px;line-height:1;
  letter-spacing:.03em;color:var(--green);
  background:url("data:image/png;base64,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") left center/18px 44px no-repeat;
  padding-left:26px;margin-bottom:14px;min-height:48px;
}
h1#kc-page-title{font-family:var(--body);font-weight:600;font-size:15px;color:var(--muted);margin:0}
.login-pf-header.kc-master::before{content:"CARROT-IDP";font-size:24px}

.form-group{margin-bottom:18px}
.pf-c-form__label,label{display:block;font-family:var(--body);font-weight:600;font-size:13px;color:var(--ink);margin-bottom:7px}

/* standalone field (username) */
.pf-c-form-control,input[type=text],input[type=password]{
  width:100%;font-family:var(--body);font-size:15px;color:var(--ink);
  background:var(--field);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.pf-c-form-control:focus,input[type=text]:focus,input[type=password]:focus{
  outline:none;border-color:var(--green);background:#fff;box-shadow:0 0 0 4px rgba(47,125,50,.15);
}
/* invalid state: PatternFly marks the field aria-invalid and paints a
   warning icon as a background image; left alone it tiles across the
   field. Kill the icon and mark the field with a static danger border
   instead — the alert banner already carries the message. */
.pf-c-form-control[aria-invalid=true],input[aria-invalid=true]{
  border-color:var(--orange-deep);
  background-image:none !important;
}

/* password row: the group IS the field pill; input + eye live inside it.
   This removes PatternFly's per-control bottom rule (the "underline"). */
.pf-c-input-group{
  display:flex;align-items:stretch;gap:0;
  background:var(--field);border:1.5px solid var(--line);border-radius:12px;
  overflow:hidden;transition:border-color .18s,box-shadow .18s,background .18s;
}
.pf-c-input-group:focus-within{border-color:var(--green);background:#fff;box-shadow:0 0 0 4px rgba(47,125,50,.15)}
.pf-c-input-group .pf-c-form-control,
.pf-c-input-group input[type=password]{
  flex:1;border:none !important;border-radius:0 !important;background:transparent !important;
  box-shadow:none !important;padding:12px 14px;
}
.pf-c-input-group .pf-c-form-control:focus,
.pf-c-input-group input[type=password]:focus{box-shadow:none !important}
.pf-c-input-group .pf-c-button.pf-m-control{
  width:48px;flex:none;border:0 !important;border-block:0 !important;border-block-end:0 !important;
  background:transparent !important;box-shadow:none !important;text-decoration:none !important;
  outline:0 !important;color:var(--muted);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .18s,transform .12s;
}
/* PatternFly 5 draws the control's visible border on its ::after pseudo
   (that is the "underline"); content:none removes the pseudo entirely. */
.pf-c-input-group .pf-c-button.pf-m-control::after{content:none !important;border:0 !important}
.pf-c-input-group .pf-c-button.pf-m-control:hover{color:var(--green);transform:scale(1.08)}
.pf-c-input-group .pf-c-button.pf-m-control:active{transform:scale(.96)}

.login-pf-settings{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.login-pf-settings a{color:var(--green-deep);font-weight:600}
.login-pf-settings a:hover{color:var(--orange-deep)}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}

#kc-form-buttons{margin-top:24px}
.pf-c-button.pf-m-primary,.btn-primary,input#kc-login{
  width:100%;font-family:var(--body);font-weight:700;font-size:15.5px;letter-spacing:.02em;
  color:#fff;background:var(--orange-deep);border:none;border-radius:13px;padding:13px 16px;cursor:pointer;
  box-shadow:0 12px 24px -10px rgba(194,65,12,.7);
  transition:transform .12s ease,background .18s,box-shadow .18s;
}
.pf-c-button.pf-m-primary:hover,.btn-primary:hover,input#kc-login:hover{background:var(--orange);transform:translateY(-1px);box-shadow:0 16px 28px -10px rgba(232,116,26,.78)}
.pf-c-button.pf-m-primary:active,input#kc-login:active{transform:translateY(0)}
.pf-c-button.pf-m-primary:focus-visible,input#kc-login:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(194,65,12,.32)}

.pf-c-alert,.alert-error,.alert{border-left:4px solid var(--orange-deep);border-radius:10px}
a{color:var(--green-deep)}

@media (prefers-reduced-motion:reduce){
  .login-pf-page::before,.card-pf{animation:none}
  *{transition:none!important}
}
