/* The portal's own touches, on top of the shared AirChain theme. Kept in a file
   (not inline) because the page security policy only allows our own files. */

@font-face {
  font-family: "Montserrat";
  src: url("/static/Montserrat-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}

.portal-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  padding: 0 28px;
  background: #222221;
  box-shadow: inset 0 -2px 0 #F36F1F;
}
.portal-topbar img { height: 26px; display: block; }
.portal-topbar .portal-where { color: #ECEEF1; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; }

.portal-main { max-width: 560px; margin: 72px auto; padding: 0 20px; }
.portal-main .card { background: var(--surface); text-align: left; }
.portal-main h1 { font-size: 24px; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 10px; }
.portal-main p { color: var(--fg-2); margin: 0 0 22px; }
.portal-main a.btn { text-decoration: none; display: inline-flex; align-items: center; }
.portal-main .portal-notice { color: var(--fg); font-weight: 600; }
.portal-main form { margin: 0; }

/* ── Signed-in pages ────────────────────────────────────────────────── */

.portal-nav { display: flex; align-items: center; gap: 20px; }
.portal-nav a { color: #ECEEF1; font-size: 13px; font-weight: 600; text-decoration: none; }
.portal-nav a:hover { color: #fff; text-decoration: underline; }
.portal-nav form { margin: 0; }
.portal-signout {
  font: 600 13px var(--font); color: #ECEEF1; background: transparent;
  border: 1px solid rgba(255, 254, 250, 0.25); border-radius: 999px; padding: 6px 14px; cursor: pointer;
}
.portal-signout:hover { border-color: rgba(255, 254, 250, 0.6); }

.portal-main.portal-wide { max-width: 1040px; margin-top: 40px; }
.portal-main .card + .card { margin-top: 20px; }
.portal-main h2 { font-size: 16px; font-weight: 700; margin: 22px 0 10px; }
.portal-main .card > h2:first-child { margin-top: 0; }
.portal-quiet { color: var(--fg-3); font-size: 12.5px; }
.portal-hint { color: var(--fg-3); font-size: 12.5px; }
.portal-main p.portal-hint { margin: 10px 0 0; }

.portal-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; }
.portal-market + .portal-market { margin-top: 8px; }
.portal-market .portal-row { border-top: 1px solid var(--hairline); }
.portal-person { border-top: 1px solid var(--hairline); padding: 14px 0; }
.portal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

.portal-main .field { display: grid; }
.portal-main .field input, .portal-main .field select { width: 100%; box-sizing: border-box; }
.portal-main input[type=email] { font: 500 14px var(--font); }
.portal-form-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-top: 10px; }
.portal-form-row .field { flex: 1 1 180px; margin-bottom: 0; }

.portal-access { list-style: none; margin: 6px 0 0; padding: 0; }
.portal-access li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 13.5px; }

.portal-checks { display: flex; flex-wrap: wrap; gap: 8px 20px; border: 0; margin: 0 0 14px; padding: 0; }
.portal-checks legend { font-size: 13px; font-weight: 600; margin-bottom: 8px; padding: 0; }
.portal-checks label { display: flex; align-items: center; gap: 6px; font-size: 13.5px; }
