@font-face { font-family: "Radio Canada"; src: url("fonts/RadioCanada-VariableFont_wdth,wght.woff2") format("woff2-variations"); font-weight: 300 700; font-stretch: 75% 100%; font-display: swap; }
@font-face { font-family: "Parkinsans"; src: url("fonts/Parkinsans-VariableFont_wght.woff2") format("woff2-variations"); font-weight: 300 800; font-display: swap; }

:root {
  --sdi-auth-yellow: #fbd54d;
  --sdi-auth-red: #9b4c4d;
  --sdi-auth-blue: #4975bd;
  --sdi-auth-white: #f7fbfb;
  --sdi-auth-font: "Radio Canada", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sdi-auth-display: "Parkinsans", "Radio Canada", system-ui, sans-serif;
  /* Canonical authenticated-workspace lockup and geometry contract. Native
     SFTPGo and gateway-owned pages consume the same primitives. */
  /* SFTPGo changes the root font size on authenticated pages, so these
     cross-document geometry values must remain invariant CSS pixels. */
  --sdi-workspace-header-height: 90px;
  --sdi-workspace-sidebar-header-height: 74.5px;
  --sdi-workspace-native-sidebar-min-height: 71.5px;
  --sdi-workspace-sidebar-width: 300px;
  --sdi-workspace-district-mark-width: 139.75px;
  --sdi-workspace-district-mark-height: 35.09375px;
  --sdi-workspace-lockup-gap: 11.05px;
  --sdi-workspace-lockup-glyph-size: 32.5px;
  --sdi-workspace-lockup-font: 800 14.56px/1 "Parkinsans", "Radio Canada", Arial, sans-serif;
  --sdi-workspace-lockup-letter-spacing: .12em;
  --sdi-workspace-role-padding: 4.8px 11.52px;
  --sdi-workspace-role-font: 800 10.56px/1 "Radio Canada", Arial, sans-serif;
  --sdi-workspace-role-admin-background: #9b4c4d;
  --sdi-workspace-role-portal-background: #31558f;
  --sdi-workspace-role-client-background: #075a62;
  --sdi-workspace-nav-glyph-size: 19.5px;
  --sdi-workspace-nav-icon-slot: 26px;
  --sdi-workspace-nav-icon-gap: 11.7px;
}

* { box-sizing: border-box; }

/* One server-bound central shell covers the native protocol UI from first
   paint through transitions. Native forms are revealed only when ready. */
html.sdi-auth-pending body { visibility: visible !important; overflow: hidden !important; }
html.sdi-auth-pending body > :not(.sdi-auth-initial):not(.sdi-auth-background):not(.sdi-auth-watermark):not(.sdi-auth-footer) { display: none !important; }
html.sdi-auth-ready body { visibility: visible !important; }

.sdi-credential-facts {
  display: grid;
  gap: .55rem;
  margin: 1rem 0;
}
.sdi-credential-facts div {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  gap: .75rem;
}
.sdi-credential-facts dt { color: rgba(237,254,255,.72); font-weight: 700; }
.sdi-credential-facts dd { margin: 0; overflow-wrap: anywhere; color: var(--sdi-auth-white); }
.sdi-credential-label { display: block; margin: 1rem 0 .4rem; font-weight: 700; }
.sdi-credential-key {
  width: 100%;
  max-height: 18rem;
  margin: .7rem 0 0;
  overflow: auto;
  white-space: pre;
  padding: .8rem;
  border: 1px solid rgba(140,232,237,.55);
  border-radius: .65rem;
  background: #062f34;
  color: #edfeff;
  font: .78rem/1.45 ui-monospace, "Cascadia Mono", Consolas, monospace;
}
.sdi-credential-actions { display: grid; gap: .6rem; margin-top: 1rem; }
.sdi-private-key-controls { display: inline-flex !important; align-items: center; flex-wrap: nowrap; width: max-content; gap: .45rem; }
.sdi-icon-action {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-grid;
  place-items: center;
  flex: 0 0 2.25rem;
  padding: .48rem;
  border: 1px solid var(--sdi-paper-rule, rgba(216,255,255,.28));
  border-radius: .5rem;
  background: var(--sdi-paper-control, rgba(3,79,86,.7));
  color: var(--sdi-paper-ink, #fff);
  cursor: pointer;
}
.sdi-icon-action svg { width: 1.1rem; height: 1.1rem; }
.sdi-icon-action:hover { border-color: currentColor; }
.sdi-icon-action:disabled { cursor: not-allowed; opacity: .38; }
.sdi-icon-action:focus-visible { outline: 3px solid var(--sdi-auth-yellow); outline-offset: 3px; }

.sdi-auth-canvas {
  --ak-global--background-image: none;
  position: relative;
  min-width: 20rem;
  min-height: 100svh;
  margin: 0;
  overflow: hidden;
  background-color: #063f45;
  background-image:
    radial-gradient(ellipse at 50% -16%, rgba(184, 247, 249, .7) 0%, rgba(82, 196, 202, .24) 27%, transparent 58%),
    linear-gradient(180deg, #07939d 0%, #087b82 48%, #063f45 100%);
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: var(--sdi-auth-white);
  font-family: var(--sdi-auth-font);
  line-height: 1.5;
}

.sdi-auth-background,
.sdi-auth-background::before,
.sdi-auth-background::after {
  position: fixed;
  inset: -18%;
  pointer-events: none;
  content: "";
}

.sdi-auth-background {
  z-index: 0;
  opacity: .9;
  background:
    radial-gradient(circle at 18% 28%, rgba(178, 248, 250, .24) 0 3%, rgba(84, 198, 204, .1) 13%, transparent 32%),
    radial-gradient(circle at 82% 72%, rgba(162, 240, 242, .17) 0 4%, rgba(54, 170, 178, .09) 15%, transparent 34%),
    radial-gradient(ellipse at 50% 46%, rgba(184, 248, 249, .13), transparent 44%);
  filter: blur(1.1rem);
  animation: sdi-specular-orbit 16s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}

.sdi-auth-background::before {
  background:
    radial-gradient(ellipse at 42% 8%, rgba(229, 255, 255, .38) 0%, rgba(153, 239, 242, .13) 18%, transparent 47%),
    radial-gradient(ellipse at 68% 84%, rgba(120, 225, 230, .14), transparent 38%);
  mix-blend-mode: screen;
  animation: sdi-specular-sweep 11s ease-in-out infinite alternate;
}

.sdi-auth-background::after {
  inset: 0;
  background:
    radial-gradient(circle at 44% 24%, rgba(229,255,255,.84) 0 2px, rgba(229,255,255,.28) 3px, transparent 6px),
    radial-gradient(circle at 74% 36%, rgba(229,255,255,.7) 0 1.5px, rgba(229,255,255,.2) 3px, transparent 5px),
    radial-gradient(circle at 33% 59%, rgba(229,255,255,.72) 0 1.5px, rgba(229,255,255,.18) 3px, transparent 5px),
    radial-gradient(circle at 58% 76%, rgba(229,255,255,.42) 0 1px, transparent 4px);
  filter: drop-shadow(0 0 .35rem rgba(217,255,255,.8));
  animation: sdi-auth-particles 9s ease-in-out infinite alternate;
}

@keyframes sdi-specular-orbit {
  0% { transform: translate3d(-3%, -2%, 0) scale(1.02) rotate(-1deg); }
  50% { transform: translate3d(2%, 1%, 0) scale(1.07) rotate(.5deg); }
  100% { transform: translate3d(4%, -1%, 0) scale(1.03) rotate(1deg); }
}

@keyframes sdi-specular-sweep {
  from { transform: translate3d(-7%, -2%, 0) scale(.98); opacity: .68; }
  to { transform: translate3d(8%, 3%, 0) scale(1.08); opacity: 1; }
}

@keyframes sdi-auth-particles {
  from { transform: translate3d(-.5rem, .25rem, 0); opacity: .6; }
  to { transform: translate3d(.75rem, -.7rem, 0); opacity: 1; }
}

.sdi-skip-link {
  position: fixed;
  z-index: 20;
  inset: .75rem auto auto .75rem;
  padding: .7rem 1rem;
  border-radius: 999px;
  background: #fff;
  color: #121f22;
  transform: translateY(-180%);
}
.sdi-skip-link:focus { transform: translateY(0); }

.sdi-auth-layout {
  position: relative;
  z-index: 1;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 3rem 1rem;
}

.sdi-auth-card, .pf-c-login__main[part="main"].sdi-auth-card {
  width: min(25rem, calc(100vw - 2rem));
  overflow: hidden !important;
  border: 1px solid rgba(210, 255, 255, .28) !important;
  border-radius: 1.15rem !important;
  background: linear-gradient(155deg, rgba(5, 100, 108, .66), rgba(8, 124, 132, .52)) !important;
  box-shadow: 0 1.25rem 4.25rem rgba(1, 45, 50, .26), inset 0 1px 0 rgba(255,255,255,.11) !important;
  -webkit-backdrop-filter: blur(1.15rem) saturate(115%) !important;
  backdrop-filter: blur(1.15rem) saturate(115%) !important;
  transform: translateY(-1.25rem);
}
.sdi-auth-card-expanded { width: min(31rem, calc(100vw - 2rem)); }

.sdi-auth-loading-card > :not(.sdi-auth-header):not(.sdi-auth-loading-state) { display: none !important; }
.sdi-auth-loading-state {
  min-height: 11.5rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 1.25rem;
  padding: 2rem;
}
.sdi-auth-loading-copy {
  margin: 0;
  color: var(--sdi-auth-white);
  text-align: center;
  font-size: .9rem;
  line-height: 1.5;
}
.sdi-auth-spinner {
  display: block;
  width: 2.25rem;
  height: 2.25rem;
  border: .22rem solid rgba(220, 255, 255, .24);
  border-top-color: var(--sdi-auth-yellow);
  border-radius: 50%;
  transform-origin: center;
  will-change: transform;
  -webkit-animation: sdi-auth-spin .75s linear infinite;
  animation: sdi-auth-spin .75s linear infinite;
}
@keyframes sdi-auth-spin { to { transform: rotate(360deg); } }

.sdi-auth-header, .pf-c-login__main[part="main"] > .sdi-auth-header {
  min-height: 3.35rem !important;
  display: grid !important;
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  gap: .65rem !important;
  padding: .75rem 1.15rem !important;
  border-bottom: 1px solid rgba(210,255,255,.12) !important;
  background: linear-gradient(180deg, rgba(2, 83, 91, .68), rgba(3, 104, 112, .42)) !important;
}

.sdi-product {
  max-width: none;
  margin: 0;
  color: #fff;
  font: 760 .95rem/1 var(--sdi-auth-display);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.sdi-transfer-mark {
  width: 1.75rem;
  height: 1.75rem;
  display: block;
}

.sdi-role-pill {
  padding: .3rem .72rem;
  border-radius: 999px;
  background: var(--sdi-auth-red);
  color: #fff;
  font: 800 .66rem/1 var(--sdi-auth-font);
  letter-spacing: .12em;
  text-transform: uppercase;
  box-shadow: 0 .2rem .75rem rgba(67, 13, 17, .18);
}
.sdi-role-pill-error { background: rgba(251,213,77,.18); color: var(--sdi-auth-yellow); border: 1px solid rgba(251,213,77,.38); }
.sdi-role-pill-portal { background: var(--sdi-auth-blue); }
.sdi-role-pill-client { background: #075a62; }
.sdi-role-pill[hidden] { display: none; }

.sdi-auth-body { padding: 1.65rem 1.2rem 1.35rem; text-align: center; }
.sdi-auth-card-expanded .sdi-auth-body { padding: 1.8rem 1.5rem; text-align: left; }
.sdi-auth-choice-list { display: grid; gap: .72rem; }
.sdi-auth-choice-list .sdi-auth-helper { margin: .1rem 0 .35rem; }
.sdi-auth-choice-list .sdi-auth-choice-heading { color: rgba(242,255,255,.86); font-size: .78rem; letter-spacing: .035em; }
.sdi-auth-choice-list .sdi-auth-copy { margin-bottom: .55rem; }
.sdi-workspace-chooser .sdi-auth-card { width: min(27rem, calc(100vw - 2rem)); }
.sdi-workspace-chooser .sdi-auth-body { padding: 1.6rem; }
.sdi-workspace-chooser .sdi-auth-recovery-title { margin: 0 0 .4rem; font-size: 1.2rem; text-align: left; }
.sdi-workspace-action { justify-content: flex-start !important; border-radius: .7rem !important; padding: .75rem .85rem !important; }
.sdi-workspace-action .sdi-role-pill { min-width: 4.35rem; text-align: center; }
.sdi-workspace-label { min-width: 0; text-align: left; }
.sdi-kicker { margin: 0 0 .5rem; color: #a8edf0; font-size: .78rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.sdi-auth-body > h1 { margin: 0; font: 700 clamp(1.65rem, 6vw, 2.35rem)/1.1 var(--sdi-auth-display); letter-spacing: -.03em; }
.sdi-auth-recovery-title { margin: 0; font: 700 1.3rem/1.2 var(--sdi-auth-display); }
.sdi-auth-copy { margin: .8rem 0 1.25rem; color: rgba(236,254,255,.75); }

.sdi-auth-action, .pf-c-button.sdi-auth-action {
  min-height: 2.65rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .55rem !important;
  width: 100%;
  padding: .55rem 1rem !important;
  border: 1px solid rgba(216,255,255,.26) !important;
  border-radius: 999px !important;
  background: rgba(3, 79, 86, .7) !important;
  box-shadow: 0 .45rem 1.15rem rgba(0, 44, 49, .2), inset 0 1px 0 rgba(255,255,255,.06) !important;
  color: #fff !important;
  font: 700 .86rem/1.2 var(--sdi-auth-font) !important;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.sdi-auth-action:hover { background: rgba(3, 69, 76, .92) !important; border-color: rgba(230,255,255,.55) !important; transform: translateY(-1px); }
.sdi-auth-action:active { transform: translateY(0); }
.sdi-auth-action:focus-visible, .sdi-auth-footer a:focus-visible, .sdi-skip-link:focus-visible { outline: 3px solid var(--sdi-auth-yellow); outline-offset: 3px; }

.sdi-microsoft-mark { width: .88rem; height: .88rem; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 1px; flex: 0 0 auto; }
.sdi-microsoft-mark i:nth-child(1) { background: #f25022; }
.sdi-microsoft-mark i:nth-child(2) { background: #7fba00; }
.sdi-microsoft-mark i:nth-child(3) { background: #00a4ef; }
.sdi-microsoft-mark i:nth-child(4) { background: #ffb900; }
.sdi-google-mark {
  width: .95rem;
  height: .95rem;
  display: inline-block;
  flex: 0 0 auto;
  /* Exact official standalone G already pinned for notification delivery. */
  background: url("data:image/png;base64,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") center / contain no-repeat;
}
.sdi-email-mark {
  position: relative;
  width: 1rem;
  height: .72rem;
  border: 1.5px solid currentColor;
  border-radius: .12rem;
}
.sdi-email-mark::after {
  position: absolute;
  inset: .05rem .08rem auto;
  height: .46rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: rotate(45deg) skew(-8deg, -8deg);
  transform-origin: center;
}
.sdi-auth-back {
  justify-self: center;
  margin-top: .15rem;
  color: rgba(236,254,255,.78);
  font-size: .76rem;
  font-weight: 650;
}
.sdi-auth-back:hover { color: #fff; }
button.sdi-auth-back { padding: 0; border: 0; background: transparent; font-family: inherit; line-height: inherit; text-decoration: underline; cursor: pointer; }
.sdi-auth-back:focus-visible { outline: 3px solid var(--sdi-auth-yellow); outline-offset: 3px; }
.sdi-auth-helper { margin: .75rem 0 0; color: rgba(230,255,255,.58); font-size: .7rem; font-weight: 650; text-align: center; }
.sdi-auth-alert { margin: .8rem 0 0; padding: .7rem .85rem; border: 1px solid #e49292; border-radius: .75rem; background: rgba(188,88,89,.2); color: #f4d3d4; font-size: .8rem; }

.sdi-auth-watermark {
  position: absolute;
  pointer-events: none;
  left: 50%;
  bottom: 22%;
  width: clamp(12rem, 16vw, 17rem);
  height: auto;
  opacity: .13;
  transform: translateX(-50%);
  filter: brightness(0) invert(1);
}

.sdi-auth-footer {
  position: fixed;
  z-index: 2;
  left: 50%;
  bottom: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: min(48rem, calc(100% - 2rem));
  color: rgba(232,255,255,.72);
  font-size: .68rem;
  font-weight: 650;
  transform: translateX(-50%);
}
.sdi-auth-footer a { color: inherit; text-decoration: none; }
.sdi-auth-footer a:hover { color: #fff; text-decoration: underline; }

/* The credential workspace shares login branding, not its compact card geometry. */
.sdi-auth-paper {
  --sdi-paper: #fff;
  --sdi-paper-ink: #173b40;
  --sdi-paper-muted: #506d72;
  --sdi-paper-rule: #cee0e2;
  --sdi-paper-control: #f2f8f8;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  overflow: auto;
}
.sdi-auth-paper .sdi-auth-layout {
  flex: 1;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  min-height: 0;
  padding: clamp(1rem, 2.5vw, 2.5rem);
  padding-bottom: 0;
}
.sdi-auth-paper .sdi-auth-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  transform: none;
}
.sdi-auth-paper .sdi-auth-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 0;
  background: var(--sdi-paper);
  color: var(--sdi-paper-ink);
  text-align: left;
}
.sdi-credential-content { flex: 1; padding: clamp(1.25rem, 3vw, 3rem); }
.sdi-auth-paper .sdi-auth-helper { margin: 0 0 .6rem; color: var(--sdi-paper-muted); text-align: left; letter-spacing: .08em; text-transform: uppercase; }
.sdi-auth-paper .sdi-auth-recovery-title { font-size: clamp(1.5rem, 2.5vw, 2.1rem); overflow-wrap: anywhere; }
.sdi-auth-paper .sdi-auth-copy { color: var(--sdi-paper-muted); }
.sdi-auth-paper .sdi-credential-facts { margin: 0; gap: 0; }
.sdi-auth-paper .sdi-credential-facts > div { grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr); align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--sdi-paper-rule); }
.sdi-auth-paper .sdi-credential-facts dt { color: var(--sdi-paper-muted); }
.sdi-auth-paper .sdi-credential-facts dd { display: flex; align-items: center; gap: .6rem; min-width: 0; color: var(--sdi-paper-ink); }
.sdi-credential-facts dd > span { flex: 1; min-width: 0; overflow-x: auto; white-space: nowrap; font: .9rem/1.5 ui-monospace, "Cascadia Mono", Consolas, monospace; }
.sdi-credential-facts [data-connection-access] { color: var(--sdi-paper-muted); font: inherit; }
.sdi-copy-field {
  display: grid;
  place-items: center;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  padding: .5rem;
  border: 1px solid var(--sdi-paper-rule);
  border-radius: .5rem;
  background: var(--sdi-paper-control);
  color: var(--sdi-paper-ink);
  cursor: pointer;
}
.sdi-copy-field svg { width: 1.1rem; height: 1.1rem; }
.sdi-copy-field:hover { border-color: currentColor; }
.sdi-copy-field:focus-visible { outline: 3px solid #087e88; outline-offset: 3px; }
.sdi-copy-check, .sdi-copy-field[data-copied] .sdi-copy-icon { display: none; }
.sdi-copy-field[data-copied] .sdi-copy-check { display: block; }
.sdi-auth-paper .sdi-credential-key { background: var(--sdi-paper-control); color: var(--sdi-paper-ink); border-color: var(--sdi-paper-rule); }
.sdi-private-key-row dd { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem !important; }
.sdi-private-key-row form { grid-column: 2; min-width: max-content; margin: 0; }
.sdi-private-key-row dd > .sdi-private-key-controls { grid-column: 2; }
.sdi-private-key-row .sdi-credential-key { grid-column: 1 / -1; }
.sdi-private-key-row .sdi-private-key-message { grid-column: 1 / -1; margin: .35rem 0 0; }
.sdi-public-key-row dd { display: block !important; }
.sdi-public-key-form { display: grid; gap: .6rem; max-width: 42rem; margin: .65rem 0 0; }
:is(.sdi-auth-paper, .client-workspace) .sdi-public-key-form :is(textarea, input[type="file"]) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--sdi-paper-rule);
  border-radius: .5rem;
  background: var(--sdi-paper-control);
  color: var(--sdi-paper-ink);
  color-scheme: light;
}
.sdi-public-key-form textarea { min-height: 5rem; padding: .65rem .75rem; resize: vertical; font: .82rem/1.45 ui-monospace, "Cascadia Mono", Consolas, monospace; }
.sdi-auth-paper .sdi-public-key-form textarea::placeholder,
.client-workspace .sdi-public-key-form textarea::placeholder { color: var(--sdi-paper-muted); opacity: 1; }
.sdi-public-key-form input[type="file"] { min-height: 2.5rem; padding: .35rem; font: .82rem/1.5 var(--sdi-auth-font); }
:is(.sdi-auth-paper, .client-workspace) .sdi-public-key-form input[type="file"]::file-selector-button {
  margin-inline-end: .75rem;
  padding: .35rem .65rem;
  border: 1px solid var(--sdi-paper-rule);
  border-radius: .4rem;
  background: var(--sdi-paper);
  color: var(--sdi-paper-ink);
  font: 700 .82rem/1.3 var(--sdi-auth-font);
  cursor: pointer;
}
:is(.sdi-auth-paper, .client-workspace) .sdi-public-key-form :is(textarea, input[type="file"]):focus-visible { outline: 3px solid #087e88; outline-offset: 2px; }
[data-theme="dark"] .client-workspace .sdi-public-key-form :is(textarea, input[type="file"]) { color-scheme: dark; }
.sdi-public-key-form .sdi-secondary-action { justify-self: start; }
.sdi-private-key-state, .sdi-credential-unavailable { align-self: center; color: var(--sdi-paper-muted); font-family: var(--sdi-auth-font); }
.sdi-credential-secondary-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.sdi-credential-general-status { margin: .65rem 0 0; color: var(--sdi-paper-muted); font-size: .82rem; text-align: right; }
.sdi-credential-general-status[hidden] { display: none; }
.sdi-secondary-action {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .55rem .8rem;
  border: 1px solid var(--sdi-paper-rule);
  border-radius: .55rem;
  background: var(--sdi-paper-control);
  color: var(--sdi-paper-ink);
  font: 700 .82rem/1.2 var(--sdi-auth-font);
  cursor: pointer;
}
.sdi-secondary-action svg { width: 1.1rem; height: 1.1rem; }
.sdi-secondary-action:hover { border-color: currentColor; }
.sdi-secondary-action:focus-visible { outline: 3px solid #087e88; outline-offset: 3px; }
.sdi-auth-paper .sdi-auth-action { background: #075a62 !important; }
.sdi-auth-paper .sdi-auth-action:hover { background: #06474e !important; }
.sdi-auth-paper details { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--sdi-paper-rule); }
.sdi-auth-paper summary { cursor: pointer; font-weight: 700; }
.sdi-auth-paper label.sdi-auth-copy { display: block; }
.sdi-auth-paper select,
.sdi-client-credential-card select {
  width: min(100%, 30rem);
  margin: .35rem 0 1rem;
  padding: .68rem .8rem;
  border: 1px solid var(--sdi-paper-rule);
  border-radius: .5rem;
  background: var(--sdi-paper-control);
  color: var(--sdi-paper-ink);
  font: 600 .9rem/1.3 var(--sdi-auth-font);
}
.sdi-auth-paper input[type="checkbox"] { accent-color: #087e88; }
.sdi-credential-danger { margin-top: 1.5rem; padding: 1rem 1.2rem 1.2rem !important; border: 1px solid #b94a55 !important; border-radius: .65rem; background: color-mix(in srgb, #b94a55 6%, var(--sdi-paper)); }
.sdi-credential-danger summary { color: #a32736; }
.sdi-danger-action { display: inline-flex; align-items: center; justify-content: center; min-height: 2.5rem; padding: .55rem 1rem; border: 1px solid #b94a55; border-radius: .55rem; background: var(--sdi-paper); color: #a32736; font: 700 .85rem/1.2 var(--sdi-auth-font); cursor: pointer; }
.sdi-danger-action:hover { background: #a32736; color: #fff; }
.sdi-danger-action:focus-visible { outline: 3px solid #b94a55; outline-offset: 2px; }
[data-theme="dark"] .sdi-credential-danger summary, [data-theme="dark"] .sdi-danger-action { color: #ff9ea7; }
[data-theme="dark"] .sdi-danger-action:hover { color: #fff; }
.sdi-credential-banner {
  --sdi-banner-rail: #087e88;
  margin-top: 1rem;
  padding: .8rem 1rem;
  border: 1px solid var(--sdi-paper-rule);
  border-inline-start: .32rem solid var(--sdi-banner-rail);
  border-radius: .55rem;
  background: var(--sdi-paper-control);
  color: var(--sdi-paper-ink);
}
.sdi-credential-banner[hidden] { display: none; }
.sdi-credential-banner[data-state="success"] { --sdi-banner-rail: #168060; }
.sdi-credential-banner[data-state="warning"] { --sdi-banner-rail: #b17b00; }
.sdi-credential-banner[data-state="error"] { --sdi-banner-rail: #ba3f4b; }
.sdi-credential-status { margin: 0; color: inherit !important; }
.sdi-credential-recovery { margin: .35rem 0 0; }
.sdi-credential-recovery a { color: inherit; font-weight: 700; text-underline-offset: .18em; }
.sdi-credential-bottom { display: flex; justify-content: flex-end; padding: 1rem clamp(1.25rem, 3vw, 3rem); background: #08646d; }
.sdi-credential-bottom .sdi-auth-action { width: auto; min-width: 16rem; }
.sdi-auth-paper .sdi-auth-watermark { z-index: -1; bottom: 2rem; }
.sdi-auth-paper .sdi-auth-footer { position: relative; left: auto; bottom: auto; transform: none; width: auto; flex-wrap: wrap; margin: 0; padding: 1.2rem 1rem; }
@media (max-width: 52rem) {
  .sdi-credential-bottom .sdi-auth-action { width: 100%; min-width: 0; }
}
@media (max-width: 38rem) {
  .sdi-auth-paper .sdi-credential-facts > div { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
  .sdi-auth-paper .sdi-credential-facts dt { font-size: .8rem; }
}
@media (prefers-color-scheme: dark) {
  .sdi-auth-paper { --sdi-paper: #102e33; --sdi-paper-ink: #edfeff; --sdi-paper-muted: #b1cdd1; --sdi-paper-rule: #35585e; --sdi-paper-control: #173d43; }
  .sdi-auth-paper .sdi-public-key-form :is(textarea, input[type="file"]) { color-scheme: dark; }
  .sdi-copy-field:focus-visible { outline-color: var(--sdi-auth-yellow); }
}

/* Authentik renders each flow layer in its own shadow root. The bounded
   authentik-flow adapter loads this shared stylesheet into those roots so the
   Client journey uses the same header, glass card, fields, and actions as the
   gateway-owned Admin entry without changing Authentik's form behavior. */
.pf-c-login {
  position: relative !important;
  z-index: 1;
  min-height: 100svh !important;
  display: grid !important;
  place-items: center !important;
  padding: 3rem 1rem !important;
  background: transparent !important;
  color: var(--sdi-auth-white) !important;
  font-family: var(--sdi-auth-font) !important;
}
.pf-c-login::before, .pf-c-login::after,
.pf-c-login__header, .pf-c-login__footer { display: none !important; }
ak-locale-select { position: fixed !important; top: 1rem; left: 1rem; }

.pf-c-login__main[part="main"] {
  width: min(25rem, calc(100vw - 2rem)) !important;
  max-width: 25rem !important;
  padding: 0 !important;
}

.pf-c-login__main[part="main"] > .pf-c-login__main-header.pf-c-brand {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.pf-c-login__main[part="main"] .branding-logo {
  width: 1.75rem !important;
  height: 1.75rem !important;
  object-fit: contain !important;
}

:host(ak-flow-card) .pf-c-login__main-header {
  padding: 1.65rem 1.2rem .75rem !important;
  text-align: center !important;
}

:host(ak-flow-card) .pf-c-title {
  margin: 0 !important;
  color: #fff !important;
  font: 700 clamp(1.55rem, 5vw, 2rem)/1.12 var(--sdi-auth-display) !important;
  letter-spacing: -.025em !important;
}
:host(ak-flow-card) .pf-c-title.sdi-auth-choice-heading {
  color: rgba(242,255,255,.86) !important;
  font: 650 .78rem/1.5 var(--sdi-auth-font) !important;
  letter-spacing: .035em !important;
}

:host(ak-flow-card) .pf-c-login__main-body {
  padding: 0 !important;
}

:host(ak-flow-card) .pf-c-login__main-footer {
  padding: 0 1.2rem 1.35rem !important;
  background: transparent !important;
}

.pf-c-form {
  display: grid !important;
  gap: 1rem !important;
  padding: .45rem 1.2rem 1.35rem !important;
}

.pf-c-form__group { display: grid !important; gap: .45rem !important; }

.pf-c-form__label-text {
  color: rgba(242,255,255,.86) !important;
  font: 700 .78rem/1.3 var(--sdi-auth-font) !important;
  letter-spacing: .035em;
}

.pf-c-form-control {
  width: 100% !important;
  min-height: 3rem !important;
  padding: .72rem .9rem !important;
  border: 1px solid rgba(216,255,255,.28) !important;
  border-radius: .72rem !important;
  background: rgba(2,67,73,.5) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
  color: #fff !important;
  font: 500 .92rem/1.3 var(--sdi-auth-font) !important;
}

.pf-c-form-control::placeholder { color: rgba(230,255,255,.52) !important; }
.pf-c-form-control:hover { border-color: rgba(230,255,255,.48) !important; }
.pf-c-form-control:focus { border-color: var(--sdi-auth-yellow) !important; outline: 2px solid rgba(251,213,77,.28) !important; outline-offset: 1px !important; }

.pf-c-form__group.pf-m-action { margin-top: 1.15rem !important; }
.sdi-auth-email-step[hidden], .sdi-auth-native-choices[hidden] { display: none !important; }
.ak-c-fieldset.sdi-auth-native-choices { padding: .75rem 0 0 !important; border-top: 0 !important; }
.pf-c-button.pf-m-primary,
.pf-c-button.source-button {
  --pf-c-button--after--BorderWidth: 0;
}

.pf-c-button.pf-m-block { width: 100% !important; }

.ak-c-fieldset {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .72rem !important;
  margin: 0 !important;
  padding: 1.15rem 0 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(210,255,255,.12) !important;
}

.pf-c-button.source-button { width: 100% !important; margin: 0 !important; }
.pf-c-button.source-button img { width: 1.1rem !important; height: 1.1rem !important; }
.pf-c-button:focus-visible { outline: 3px solid var(--sdi-auth-yellow) !important; outline-offset: 3px !important; }

@media (max-width: 38rem) {
  .sdi-auth-card { transform: translateY(-1rem); }
  .sdi-auth-watermark { bottom: 17%; width: 12rem; }
  .sdi-auth-footer { bottom: 1rem; flex-wrap: wrap; gap: .35rem 1rem; }
  .sdi-auth-footer span:first-child { flex-basis: 100%; text-align: center; }
  .pf-c-login__main[part="main"] { transform: translateY(-1rem); }
  .ak-c-fieldset { grid-template-columns: 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .sdi-auth-background, .sdi-auth-background::before, .sdi-auth-background::after { animation: none !important; }
}

@media (forced-colors: active) {
  .sdi-auth-card, .sdi-auth-action { border: 2px solid CanvasText; }
  .sdi-role-pill { border: 1px solid CanvasText; }
}
