/* Portal form cards on top of the ECCnew2 CSS. Season color = focus/border/button only, never field fill. */
.ecc-portal-card {
  --pf-card: #ffffff; --pf-ink: #0f172a; --pf-muted: #475569; --pf-line: #d5dee6;
  --pf-field: #f8fafc; --pf-field-ink: #0f172a; --pf-field-line: #cbd5e1; --pf-ph: #94a3b8;
  --pf-acc: var(--season-accent, var(--accent, #1a8fb8));
  max-width: 30rem; margin: -3.25rem auto 1.5rem; position: relative; z-index: 2;
  background: var(--pf-card); color: var(--pf-ink);
  border: 1px solid var(--pf-line); border-top: 3px solid var(--pf-acc); border-radius: 14px;
  padding: 2rem 1.9rem 1.7rem; box-shadow: 0 24px 60px rgba(7,17,25,.18), 0 2px 6px rgba(7,17,25,.06);
}
html[data-scheme="dark"] .ecc-portal-card {
  --pf-card: #0f2131; --pf-ink: #f4f8fb; --pf-muted: #b4c7d1; --pf-line: rgba(148,197,220,.22);
  --pf-field: #0a1620; --pf-field-ink: #f4f8fb; --pf-field-line: rgba(148,197,220,.32); --pf-ph: #7b93a1;
  box-shadow: 0 24px 60px rgba(0,0,0,.45);
}
.ecc-portal-card h2 { margin-top: 0; color: var(--pf-ink); }
.ecc-portal-card p { color: var(--pf-muted); }
.ecc-portal-card label {
  display: block; margin: 1.05rem 0 .4rem; color: var(--pf-ink);
  font-family: "Barlow Condensed", var(--ecc-display, sans-serif); font-weight: 700;
  font-size: .86rem; letter-spacing: .09em; text-transform: uppercase;
}
.ecc-portal-card form > label:first-of-type, .ecc-portal-card .row > div:first-child label { margin-top: 0; }
.ecc-portal-card .row label { margin-top: 0; }
.ecc-portal-card input[type="text"], .ecc-portal-card input[type="email"],
.ecc-portal-card input[type="password"], .ecc-portal-card select {
  display: block; width: 100%; box-sizing: border-box; height: 3rem; padding: 0 .9rem;
  font: 500 1.02rem/1.2 "Source Sans 3", system-ui, sans-serif;
  background-color: var(--pf-field) !important; color: var(--pf-field-ink) !important;
  border: 1px solid var(--pf-field-line); border-radius: 9px; box-shadow: none;
  transition: border-color .15s, box-shadow .15s; -webkit-appearance: none; appearance: none;
}
.ecc-portal-card select { background-image: linear-gradient(45deg, transparent 50%, var(--pf-muted) 50%), linear-gradient(135deg, var(--pf-muted) 50%, transparent 50%) !important;
  background-position: calc(100% - 1.15rem) 1.3rem, calc(100% - .8rem) 1.3rem; background-size: .35rem .35rem; background-repeat: no-repeat; padding-right: 2.2rem; }
.ecc-portal-card input::placeholder { color: var(--pf-ph); }
.ecc-portal-card input:hover, .ecc-portal-card select:hover { border-color: color-mix(in srgb, var(--pf-acc) 45%, var(--pf-field-line)); }
.ecc-portal-card input:focus, .ecc-portal-card select:focus {
  outline: none; border-color: var(--pf-acc);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pf-acc) 28%, transparent);
}
/* Kill browser autofill yellow/blue */
.ecc-portal-card input:-webkit-autofill, .ecc-portal-card input:-webkit-autofill:hover,
.ecc-portal-card input:-webkit-autofill:focus, .ecc-portal-card input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px var(--pf-field) inset !important;
  -webkit-text-fill-color: var(--pf-field-ink) !important; caret-color: var(--pf-field-ink);
  transition: background-color 9999s ease-out 0s;
}
.ecc-portal-card input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--pf-field) inset, 0 0 0 3px color-mix(in srgb, var(--pf-acc) 28%, transparent) !important; }
.ecc-portal-card input:autofill { background: var(--pf-field) !important; }
.ecc-portal-card .row { display: grid; gap: 0 .85rem; margin-bottom: 1.05rem; }
@media (min-width: 560px) { .ecc-portal-card .row { grid-template-columns: 1fr 1fr; } }
.ecc-portal-card .err { color: #dc2626; font-size: .9rem; margin: .4rem 0 0; }
html[data-scheme="dark"] .ecc-portal-card .err { color: #fca5a5; }
.ecc-portal-check {
  display: flex !important; align-items: center; gap: .6rem; margin: 1.15rem 0 0 !important;
  font: 600 .98rem "Source Sans 3", sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--pf-muted) !important; cursor: pointer;
}
.ecc-portal-check input { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--pf-acc); }
.ecc-portal-card .actions { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .95rem; align-items: stretch; text-align: center; }
.ecc-portal-card .actions .cta-primary { width: 100%; justify-content: center; min-height: 3rem; font-size: 1.05rem; border: 0; cursor: pointer; }
.ecc-portal-card .actions a:not(.cta-primary):not(.cta-ghost) {
  color: var(--pf-muted); text-decoration: none; font-weight: 600; padding-top: 1rem; border-top: 1px solid var(--pf-line);
}
.ecc-portal-card .actions a:not(.cta-primary):not(.cta-ghost)::after { content: " \2192"; color: var(--pf-acc); }
.ecc-portal-card .actions a:not(.cta-primary):not(.cta-ghost):hover { color: var(--pf-ink); }
.ecc-portal-card .actions .cta-ghost { width: 100%; justify-content: center; }
.ecc-portal-flash { max-width: 30rem; margin: 0 auto 1rem; background: color-mix(in srgb, var(--season-accent, #2eb5e0) 12%, var(--surface, #fff)); color: var(--text); border: 1px solid var(--season-accent, #2eb5e0); padding: .75rem 1rem; border-radius: 8px; }
/* ECC-MESSAGES portal user messages */
.ecc-nav-badge { display: inline-block; min-width: 1.3em; padding: 0 .4em; margin-left: .25em; border-radius: 999px; background: var(--season-accent, var(--accent, #1a8fb8)); color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.5; text-align: center; }
.ecc-msg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1.25rem; align-items: start; }
@media (max-width: 860px) { .ecc-msg-grid { grid-template-columns: 1fr; } }
.ecc-msg-new textarea, .ecc-chat-card textarea { width: 100%; border-radius: 10px; padding: .6rem .75rem; font: inherit; }
.ecc-msg-row { display: block; padding: .7rem .85rem; border-radius: 12px; text-decoration: none; color: inherit; border: 1px solid transparent; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ecc-msg-row + .ecc-msg-row { margin-top: .4rem; }
.ecc-msg-row:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(7,17,25,.14); border-color: var(--season-accent, var(--accent, #1a8fb8)); }
.ecc-msg-row-top { display: flex; gap: .5rem; align-items: center; }
.ecc-msg-row-top time { margin-left: auto; opacity: .7; font-size: .85rem; }
.ecc-msg-row-snip { display: block; opacity: .8; font-size: .92rem; margin-top: .15rem; }
.ecc-msg-row.is-unread strong, .ecc-msg-row.is-unread .ecc-msg-row-snip { font-weight: 800; opacity: 1; }
.ecc-msg-card, .ecc-msg-new, .ecc-msg-list { transition: transform .18s ease, box-shadow .18s ease; }
.ecc-msg-card:hover, .ecc-msg-new:hover, .ecc-msg-list:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(7,17,25,.14); }
.ecc-chat-card .ecc-chatlog { max-height: 56vh; overflow-y: auto; display: flex; flex-direction: column; gap: .5rem; padding: .25rem; margin-bottom: .75rem; }
.ecc-chat-card .ecc-msg { max-width: 82%; padding: .5rem .75rem; border-radius: 12px; background: rgba(127,127,127,.12); align-self: flex-start; }
.ecc-chat-card .ecc-msg-admin { align-self: flex-end; background: color-mix(in srgb, var(--season-accent, var(--accent, #1a8fb8)) 18%, transparent); }
.ecc-chat-card .ecc-msg-meta { font-size: .75rem; opacity: .7; margin-bottom: .15rem; }
.ecc-chat-card .ecc-msg-body { white-space: pre-wrap; word-break: break-word; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }