@font-face {
  font-family:"Plus Jakarta Sans";
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
  src:url("/assets/fonts/plus-jakarta-sans-latin-variable.woff2") format("woff2")}

@font-face {
  font-family:"Servinet Utility Jakarta";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("/assets/fonts/jakarta-400-public-site.ttf") format("truetype")}

.portal-site {
  --portal-primary:#2057eb;
  --portal-background:#fff;
  --portal-ink:#152e4a;
  --portal-muted:#51647a;
  --portal-line:#d7dfe9;
  --portal-soft:#f3f6fa;
  --portal-radius:14px;
  --portal-button-radius:9px;
  margin:0;
  min-width:0;
  color:var(--portal-ink);
  background:var(--portal-background);
  font:400 1rem/1.65 "Plus Jakarta Sans",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  caret-color:var(--portal-primary);
  scrollbar-color:#8d9fb7 #f3f6fa}

.portal-site *,.portal-site *::before,.portal-site *::after {
  box-sizing:border-box}

.portal-site ::selection {
  color:#fff;
  background:var(--portal-primary)}

.portal-site a {
  color:var(--portal-primary);
  text-underline-offset:.22em}

.portal-site a:hover {
  text-decoration-thickness:2px}

.portal-site :focus-visible {
  outline:3px solid var(--portal-primary);
  outline-offset:4px}

.portal-site h1,.portal-site h2,.portal-site h3 {
  color:var(--portal-ink);
  line-height:1.18;
  letter-spacing:-.03em;
  text-wrap:balance;
  overflow-wrap:anywhere}

.portal-site h1 {
  margin:0 0 20px;
  font-size:clamp(2rem,3.6vw,3.5rem);
  font-weight:750}

.portal-site h2 {
  margin:0 0 14px;
  font-size:clamp(1.45rem,2.2vw,1.85rem);
  font-weight:750}

.portal-site h3 {
  font-size:1.15rem;
  margin:0 0 12px}

.portal-site p {
  margin:0 0 18px;
  max-width:70ch}

.portal-site img {
  max-width:100%}

.portal-skip {
  position:absolute;
  top:-100px;
  left:16px;
  z-index:10;
  padding:12px;
  background:#fff}

.portal-skip:focus {
  top:12px}

.portal-header {
  background:#fff;
  border-bottom:1px solid var(--portal-line)}

.portal-utility-bar {
  color:#d4e2f1;
  background:#102c4d;
  font:400 11px/1.65 "Servinet Utility Jakarta",Arial,sans-serif}

.portal-utility-inner {
  width:min(1280px,calc(100% - 112px));
  margin-inline:auto;
  height:31px;
  display:flex;
  align-items:center;
  justify-content:space-between}

.portal-utility-inner>span,.portal-utility-bar nav,.portal-utility-bar a {
  display:flex;
  align-items:center;
  gap:7px}

.portal-utility-bar nav {
  gap:25px}

.portal-utility-bar a {
  color:inherit;
  text-decoration:none}

.portal-utility-bar a:hover {
  color:#fff;
  text-decoration:underline}

.portal-utility-bar a:focus-visible {
  outline-color:#fff;
  outline-offset:2px}

/* Match the public site's container, including its intermediate width caps. */
@media(min-width:640px) { .portal-utility-inner { max-width:640px} }
@media(min-width:768px) { .portal-utility-inner { max-width:768px} }
@media(min-width:1024px) { .portal-utility-inner { max-width:1024px} }
@media(min-width:1280px) { .portal-utility-inner { max-width:1280px} }
@media(min-width:1536px) { .portal-utility-inner { max-width:1536px} }
@media(max-width:1150px) { .portal-utility-inner { width:calc(100% - 64px)} }
@media(max-width:650px) {
  .portal-utility-inner { width:calc(100% - 40px); height:28px; font-size:9px}
  .portal-utility-bar nav>a:first-child { display:none}
}

.portal-header-inner {
  width:min(1240px,calc(100% - 64px));
  margin:auto;
  display:flex;
  align-items:center;
  gap:28px;
  min-height:104px}

.portal-logo {
  flex:0 0 auto;
  display:flex;
  align-items:center}

.portal-logo img {
  width:180px;
  height:52px;
  object-fit:contain}

.portal-area-name {
  font-weight:700;
  min-width:0;
  overflow-wrap:anywhere}

.portal-header-actions {
  display:flex;
  gap:24px;
  align-items:center;
  margin-left:auto}

.portal-header-actions a {
  color:var(--portal-ink);
  font-size:.9rem;
  font-weight:600;
  text-decoration:none}

.portal-header-actions form {
  margin:0}

.portal-main {
  width:min(1180px,calc(100% - 64px));
  margin:0 auto}

.portal-entry {
  min-height:min(700px,calc(100svh - 210px));
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(36px,7vw,100px);
  align-items:center;
  padding-top:72px;
  padding-bottom:72px}

.portal-entry-intro {
  min-width:0}

.portal-entry-art {
  display:block;
  width:100%;
  height:auto;
  max-height:260px;
  object-fit:cover;
  border-radius:var(--portal-radius);
  margin-top:24px}

.portal-entry-intro>p {
  font-size:1.12rem;
  color:var(--portal-muted);
  max-width:36ch}

.portal-entry-detail {
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid var(--portal-line);
  color:var(--portal-muted)}

.portal-entry-detail p {
  font-size:.92rem}

.portal-entry-form {
  background:var(--portal-soft);
  padding:clamp(24px,3vw,40px);
  border-radius:var(--portal-radius);
  min-width:0}

.portal-form {
  display:grid;
  gap:20px}

.portal-field {
  display:grid;
  gap:8px;
  min-width:0}

.portal-field>label,.portal-field>span:first-child {
  font-size:.91rem;
  font-weight:650}

.portal-site input,.portal-site textarea,.portal-site select {
  min-width:0;
  width:100%;
  min-height:50px;
  padding:12px 14px;
  border:1px solid #7b8e9e;
  border-radius:8px;
  color:var(--portal-ink);
  background:#fff;
  font:inherit;
  line-height:1.4;
  accent-color:var(--portal-primary)}

.portal-site input::placeholder,.portal-site textarea::placeholder {
  color:#66778d;
  opacity:1}

.portal-site input[aria-invalid="true"] {
  border-color:#a51d30}

.portal-site input:autofill {
  color:var(--portal-ink)}

.portal-site input[type="checkbox"],.portal-site input[type="radio"] {
  width:auto;
  min-height:auto}

.portal-site input[type="file"] {
  overflow:hidden;
  text-overflow:ellipsis;
  padding:10px}

.portal-site textarea {
  resize:vertical}

.portal-site .portal-button,.portal-site button[type="submit"] {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:50px;
  padding:12px 20px;
  border:0;
  border-radius:var(--portal-button-radius);
  background:var(--portal-primary);
  color:#fff;
  font:700 .96rem/1.4 "Plus Jakarta Sans",Arial,sans-serif;
  text-decoration:none;
  cursor:pointer;
  transition:filter .15s ease-out}

.portal-button:hover,.portal-site button[type="submit"]:hover {
  filter:brightness(.92)}

.portal-site button:disabled {
  cursor:not-allowed;
  opacity:.55}

.portal-site .portal-button-quiet,.portal-site button.portal-button-quiet {
  color:var(--portal-ink);
  background:var(--portal-soft)}

.portal-form-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:.9rem}

.portal-fineprint,.portal-muted,.portal-site .muted {
  color:var(--portal-muted);
  font-size:.9rem}

.portal-fineprint {
  margin-top:22px!important;
  margin-bottom:0!important}

.portal-notice {
  border:1px solid #bfcee3;
  border-radius:8px;
  background:#f2f6fc;
  color:#193f6d;
  padding:14px 16px;
  margin-bottom:22px;
  font-size:.92rem;
  overflow-wrap:anywhere}

.portal-notice p:last-child {
  margin-bottom:0}

.portal-notice-error {
  background:#fff2f3;
  border-color:#e4a4ad;
  color:#8e1828}

.portal-notice-success {
  background:#eef9f4;
  border-color:#a5d6bd;
  color:#155536}

.portal-notice-warning {
  background:#fff8e9;
  border-color:#dec997;
  color:#745018}

.portal-banners {
  padding-bottom:36px;
  display:grid;
  gap:20px}

.portal-banner {
  border:1px solid var(--portal-line);
  border-radius:var(--portal-radius);
  padding:24px;
  overflow-wrap:anywhere}

.portal-banner img {
  display:block;
  max-height:220px;
  width:auto;
  object-fit:contain;
  margin-bottom:16px}

.portal-banner h2 {
  font-size:1.2rem}

.portal-footer {
  width:min(1240px,calc(100% - 64px));
  margin:0 auto;
  padding:24px 0 30px;
  border-top:1px solid var(--portal-line);
  display:flex;
  justify-content:space-between;
  gap:16px;
  font-size:.85rem;
  color:var(--portal-muted)}

.portal-site [hidden] {
  display:none!important}

.portal-dashboard {
  padding-top:40px;
  padding-bottom:48px}

.portal-summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:32px;
  padding:8px 0 32px}

.portal-summary>div:first-child {
  min-width:0}
.portal-summary h1 {
  font-size:clamp(1.75rem,3vw,2.5rem);
  margin-bottom:14px}

.portal-summary .metric {
  flex:0 0 auto;
  min-width:180px;
  text-align:right}

.portal-dashboard .metric>span {
  display:block;
  color:var(--portal-muted);
  font-size:.875rem}

.portal-dashboard .metric>strong {
  display:block;
  overflow-wrap:anywhere;
  font-size:1.125rem}

.portal-summary .metric>strong {
  font-size:2rem;
  font-variant-numeric:tabular-nums}

.metric-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:28px;
  padding:24px 0;
  border-top:1px solid var(--portal-line)}

.portal-section-nav {
  display:flex;
  flex-wrap:wrap;
  gap:10px 24px;
  padding:20px 0;
  border-top:1px solid var(--portal-line);
  border-bottom:1px solid var(--portal-line);
  margin-bottom:28px}

.portal-section-nav a {
  font-size:.875rem;
  font-weight:650;
  padding:6px 0}

.portal-dashboard .card {
  padding:32px 0;
  border-bottom:1px solid var(--portal-line);
  scroll-margin-top:20px}

.portal-dashboard .portal-options {
  display:flex;
  flex-wrap:wrap;
  gap:20px 48px}
.portal-options p {
  margin:6px 0 0}

.portal-table-scroll {
  max-width:100%;
  overflow-x:auto;
  margin-top:20px;
  border:1px solid var(--portal-line);
  border-radius:8px}

.portal-table-hint {
  margin:12px 0 0;
  font-size:.875rem;
  color:var(--portal-muted)}

.portal-site table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:.875rem;
  font-variant-numeric:tabular-nums}

.portal-site th {
  font-weight:650;
  background:var(--portal-soft);
  color:var(--portal-ink);
  white-space:nowrap}

.portal-site th,.portal-site td {
  padding:14px 16px;
  border-bottom:1px solid var(--portal-line);
  vertical-align:top}

.portal-site tbody tr:last-child td {
  border-bottom:0}
.portal-ip-link {
  white-space:nowrap}

.portal-site .portal-state {
  display:inline-block;
  width:fit-content;
  font-size:.875rem;
  font-weight:650;
  padding:4px 10px;
  border-radius:6px;
  white-space:nowrap}

.portal-state-success {
  background:#eaf5ef;
  color:#155536}
.portal-state-warning {
  background:#fff5df;
  color:#745018}

.portal-state-danger {
  background:#fff0f1;
  color:#8e1828}
.portal-state-neutral {
  background:#edf1f5;
  color:#46556b}

.traffic-header {
  display:flex;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap}
.traffic-note {
  color:var(--portal-muted);
  font-size:.875rem}

.traffic-tabs {
  display:flex;
  gap:8px;
  align-self:flex-start}
.traffic-tabs a {
  padding:8px 12px;
  border-radius:8px;
  background:var(--portal-soft);
  font-size:.875rem;
  text-decoration:none}

.traffic-tabs .is-active {
  background:var(--portal-primary);
  color:#fff}

.traffic-summary {
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  margin:24px 0}
.traffic-metric span {
  display:block;
  color:var(--portal-muted);
  font-size:.875rem}
.traffic-metric strong {
  font-size:1.25rem}

.payment-report-form {
  display:grid;
  gap:20px;
  max-width:900px;
  margin-top:24px}
.payment-report-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px}

.payment-report-form label {
  display:grid;
  gap:8px;
  min-width:0;
  font-size:.875rem;
  font-weight:650}
.payment-report-form button {
  justify-self:start;
  min-width:180px}

.portal-status,.portal-errors {
  padding:16px;
  border:1px solid var(--portal-line);
  border-radius:8px;
  margin-bottom:24px}
.portal-errors {
  background:#fff2f3;
  color:#8e1828}

@media(max-width:760px) {
  .portal-dashboard {
  padding-top:28px}
.portal-summary {
  flex-direction:column;
  align-items:stretch;
  gap:16px}
.portal-summary .metric {
  text-align:left}
.metric-grid {
  grid-template-columns:1fr;
  gap:16px}
.portal-section-nav {
  gap:8px 20px}
.payment-report-grid {
  grid-template-columns:1fr}
.payment-report-form button {
  width:100%}
.traffic-tabs {
  flex-wrap:wrap}
.portal-site th,.portal-site td {
  padding:12px}
.portal-dashboard .card {
  padding:28px 0}
}

@media(max-width:760px) {
.portal-header-inner {
  width:calc(100% - 40px);
  gap:16px;
  min-height:88px;
  flex-wrap:wrap;
  padding:16px 0}

.portal-logo img {
  width:148px;
  height:44px}
.portal-area-name {
  font-size:.88rem;
  margin-left:auto}

.portal-header-actions {
  width:100%;
  margin:0;
  justify-content:space-between;
  gap:16px}

.portal-header-actions a {
  font-size:.85rem;
  padding:4px 0}
.portal-main {
  width:calc(100% - 40px)}

.portal-entry {
  min-height:auto;
  grid-template-columns:1fr;
  gap:28px;
  padding-top:36px;
  padding-bottom:40px}

.portal-entry-intro>p {
  font-size:1rem;
  margin-bottom:0;
  max-width:100%}
.portal-entry-detail {
  display:none}

.portal-entry-form {
  padding:24px 20px}
.portal-site h1 {
  font-size:2rem;
  margin-bottom:14px}

.portal-site h2 {
  font-size:1.45rem}
.portal-form {
  gap:18px}
.portal-footer {
  width:calc(100% - 40px);
  flex-direction:column}
}

@media(prefers-reduced-motion:reduce) {
  .portal-site *,.portal-site *::before,.portal-site *::after {
  scroll-behavior:auto!important;
  transition:none!important}
}
.portal-support-form { max-width: 720px; }
.portal-support-ticket { padding-block: 20px; border-block-end: 1px solid var(--portal-line); }
.portal-support-ticket-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; }
.portal-support-ticket-heading h3 { margin: 0; overflow-wrap: anywhere; }
.portal-support-description { white-space: pre-wrap; overflow-wrap: anywhere; }
