/* Firstcon Tech private entry layer ft-portal-1.0.1. Tested only with Forgejo 17.0.1.
 * Brand primary variables apply across the existing native light interface.
 * Layout selectors affect the public home and native sign-in page only.
 * Keep the native authentication DOM, scripts, navigation and footer intact. */
:root[data-theme="forgejo-light"] {
  --color-primary: #3b46f2;
  --color-primary-contrast: #fff;
  --color-primary-dark-1: #3039cc;
  --color-primary-dark-2: #1b2452;
  --color-primary-dark-3: #1b2452;
  --color-primary-dark-4: #131a3a;
  --color-primary-light-1: #3b46f2;
  --color-primary-light-2: #616af6;
  --color-primary-light-3: #9298fa;
  --color-primary-light-4: #b9bdfc;
  --color-primary-light-5: #d9dcfe;
  --color-primary-light-6: #eceefe;
  --color-primary-light-7: #f5f6ff;
  --color-primary-alpha-10: #3b46f219;
  --color-primary-alpha-20: #3b46f233;
  --color-primary-alpha-30: #3b46f24b;
  --color-primary-alpha-40: #3b46f266;
  --color-primary-alpha-50: #3b46f280;
  --color-primary-alpha-60: #3b46f299;
  --color-primary-alpha-70: #3b46f2b3;
  --color-primary-alpha-80: #3b46f2cc;
  --color-primary-alpha-90: #3b46f2e1;
  --color-accent: #3b46f2;
}
.page-footer .left-links > a[href="https://forgejo.org"],
.page-footer .right-links > a[href$="/assets/licenses.txt"] { display: none; }
.firstcon-about {
  max-width: 780px;
  margin: 2rem auto;
  padding: 2rem;
  color: #1b2452;
  background: #fff;
  border: 1px solid #dde2ee;
  border-radius: 16px;
  line-height: 1.75;
}
.firstcon-about-logo { width: min(100%, 244px); height: auto; margin-bottom: 1.5rem; }
.firstcon-about a { color: #3b46f2; text-decoration: underline; }
.firstcon-about a:focus-visible { outline: 3px solid #1b2452; outline-offset: 4px; }
.firstcon-about h1, .firstcon-about h2 { line-height: 1.3; color: #1b2452; }
@media (max-width: 600px) { .firstcon-about { margin: 1rem; padding: 1.5rem; } }
.firstcon-private {
  background: #f5f7fb;
  padding: clamp(2rem, 6vw, 5.5rem) 1.25rem;
  color: #1b2452;
}
.firstcon-private-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  max-width: 1120px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #dde2ee;
  border-radius: 20px;
  box-shadow: 0 16px 48px rgb(27 36 82 / 5%);
}
.firstcon-private-intro { padding: clamp(1.5rem, 4vw, 3.5rem); }
.firstcon-private-wordmark {
  display: block;
  width: min(100%, 244px);
  height: auto;
  margin: 0 0 2.5rem;
}
.firstcon-private-eyebrow,
.firstcon-private-access-label {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1.6;
}
.firstcon-private-eyebrow { color: #3b46f2; margin: 0 0 1rem; }
.firstcon-private h1 {
  color: #1b2452;
  font-size: clamp(1.75rem, 3.2vw, 2.65rem);
  font-weight: 700;
  line-height: 1.17;
  letter-spacing: -.025em;
  margin: 0 0 1.5rem;
  overflow-wrap: break-word;
}
.firstcon-private-description {
  color: #4b556b;
  font-size: 1.05rem;
  line-height: 1.7;
  max-width: 35rem;
  margin: 0;
}
.firstcon-private-access {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 3.6vw, 3rem);
  border-left: 1px solid #dde2ee;
  border-radius: 0 20px 20px 0;
  background: #f3f5ff;
}
.firstcon-private-access-label { color: #4b556b; margin: 0 0 .8rem; }
.firstcon-private h2 { color: #1b2452; font-size: 1.5rem; line-height: 1.3; margin: 0 0 1rem; }
.firstcon-private-access > p:not([class]) { color: #4b556b; line-height: 1.7; margin: 0 0 1.7rem; }
.firstcon-private a.firstcon-private-login {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 48px;
  padding: .9rem 1.1rem;
  border-radius: 8px;
  background: #3b46f2;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.5;
}
.firstcon-private a.firstcon-private-login:hover { background: #1b2452; color: #fff; }
.firstcon-private a.firstcon-private-login:focus-visible { outline: 3px solid #1b2452; outline-offset: 4px; }
.firstcon-private-note { color: #4b556b; font-size: .9rem; line-height: 1.7; margin: 1.3rem 0 0; }
.page-content.user.signin .ui.primary.button { background: #3b46f2; border-color: #3b46f2; color: #fff; }
.page-content.user.signin .ui.primary.button:hover { background: #1b2452; border-color: #1b2452; }
.page-content.user.signin .ui.primary.button:focus-visible { outline: 3px solid #1b2452; outline-offset: 4px; }
.page-content.user.signin .ui.form input:focus { border-color: #3b46f2; outline: 2px solid #3b46f2; outline-offset: 2px; }
.page-content.user.signin .firstcon-signin-brand { margin-bottom: 1.5rem; }
.page-content.user.signin .firstcon-signin-brand img { display: block; width: min(100%, 190px); height: auto; margin: 0 auto 1rem; }
.page-content.user.signin .firstcon-signin-brand p { color: #4b556b; text-align: center; line-height: 1.6; margin: 0; }
@media (max-width: 800px) {
  .firstcon-private-shell { grid-template-columns: minmax(0, 1fr); }
  .firstcon-private-access { border-left: 0; border-top: 1px solid #dde2ee; border-radius: 0 0 20px 20px; }
  .firstcon-private-wordmark { width: min(100%, 220px); margin-bottom: 2rem; }
}
@media (forced-colors: active) {
  .firstcon-private-shell, .firstcon-private-access { border: 1px solid CanvasText; }
  .firstcon-private a.firstcon-private-login { border: 2px solid LinkText; }
}
