:root {
    --iics-navy: #092c38;
    --iics-navy-deep: #061f2a;
    --iics-green: #087765;
    --iics-green-dark: #055348;
    --iics-green-pale: #e6f3ee;
    --iics-gold: #d2aa50;
    --iics-gold-pale: #fbf4e2;
    --iics-ink: #18313a;
    --iics-muted: #6a7e83;
    --iics-surface: #fcfbf8;
    --iics-soft: #f0f4f1;
    --iics-line: #dbe6e1;
    --iics-white: #fff;
    --iics-shadow: 0 22px 60px rgba(9, 44, 56, .12);
    --iics-display: Georgia, "Times New Roman", serif;
}

.iics-portal {
    background: var(--iics-surface);
    color: var(--iics-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
    margin: -24px -15px 0;
    min-height: 100vh;
}

.iics-portal *, .iics-portal *::before, .iics-portal *::after { box-sizing: border-box; }
.iics-portal a { color: inherit; }
.iics-portal h1, .iics-portal h2, .iics-portal h3, .iics-portal p { margin-top: 0; }
.iics-portal button, .iics-portal input { font: inherit; }
.iics-portal a:focus-visible, .iics-portal button:focus-visible, .iics-portal input:focus-visible, .iics-portal summary:focus-visible { outline: 3px solid rgba(210, 170, 80, .72); outline-offset: 3px; }
.portal-container { margin: 0 auto; width: min(1180px, calc(100% - 56px)); }
.sr-only { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }

/* Shared header and navigation */
.portal-header { background: rgba(252, 251, 248, .94); border-bottom: 1px solid rgba(219, 230, 225, .9); box-shadow: 0 8px 28px rgba(9, 44, 56, .05); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px); }
.portal-header-inner { align-items: center; display: flex; justify-content: space-between; min-height: 82px; }
.portal-brand { align-items: center; display: inline-flex; gap: 12px; text-decoration: none; }
.portal-brand-logo { display: block; height: auto; object-fit: contain; width: 126px; }
.portal-brand-copy { border-left: 1px solid var(--iics-line); display: flex; flex-direction: column; gap: 1px; padding-left: 12px; }
.portal-brand-copy strong { color: var(--iics-green-dark); font-size: .86rem; letter-spacing: .16em; text-transform: uppercase; }
.portal-brand-copy small { color: var(--iics-muted); font-size: .68rem; letter-spacing: .03em; }
.portal-navigation { align-items: center; display: flex; gap: 24px; }
.portal-navigation a { color: #536b72; font-size: .83rem; font-weight: 650; text-decoration: none; }
.portal-navigation a:hover, .portal-navigation a:focus-visible, .portal-navigation .is-active { color: var(--iics-green); }
.portal-nav-action { border: 1px solid var(--iics-green); border-radius: 999px; color: var(--iics-green) !important; padding: 9px 16px; }
.portal-nav-action:hover, .portal-nav-action:focus-visible { background: var(--iics-green-pale); }
.portal-nav-register { color: var(--iics-green) !important; font-weight: 800 !important; }
.portal-nav-logout { background: transparent; border: 0; color: #536b72; cursor: pointer; font-size: .83rem; font-weight: 650; padding: 0; }
.portal-nav-logout:hover, .portal-nav-logout:focus-visible { color: var(--iics-green); }
.portal-header-back { color: var(--iics-green-dark); font-size: .84rem; font-weight: 750; text-decoration: none; }
.portal-header-back:hover { color: var(--iics-gold); }
.portal-menu-toggle { background: transparent; border: 1px solid var(--iics-line); border-radius: 8px; color: var(--iics-green); display: none; font-size: 1.1rem; padding: 7px 10px; }

/* Landing page */
.portal-hero { background: var(--iics-navy); color: var(--iics-white); overflow: hidden; padding: 94px 0 84px; position: relative; }
.portal-hero::before { background: radial-gradient(circle, rgba(38, 159, 128, .3), transparent 66%); content: ""; height: 560px; position: absolute; right: -160px; top: -250px; width: 560px; }
.portal-hero::after { background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 44px 44px; content: ""; inset: 0; mask-image: linear-gradient(to right, transparent, rgba(0, 0, 0, .8) 68%, transparent); pointer-events: none; position: absolute; }
.portal-hero-grid { align-items: center; display: grid; gap: 74px; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); position: relative; z-index: 1; }
.portal-eyebrow { color: var(--iics-gold); font-size: .68rem; font-weight: 850; letter-spacing: .19em; margin-bottom: 17px; text-transform: uppercase; }
.portal-hero h1 { color: var(--iics-white); font-family: var(--iics-display); font-size: clamp(3.2rem, 6vw, 5.7rem); font-weight: 500; letter-spacing: -.065em; line-height: .98; margin-bottom: 18px; max-width: 720px; }
.portal-hero-subtitle { color: #d9bb6c; font-family: var(--iics-display); font-size: clamp(1.35rem, 2.4vw, 2rem); letter-spacing: -.04em; margin-bottom: 20px; }
.portal-hero-lede { color: rgba(255, 255, 255, .72); font-size: 1.04rem; line-height: 1.75; margin-bottom: 30px; max-width: 570px; }
.portal-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 12px; }
.portal-button { align-items: center; border: 1px solid transparent; border-radius: 999px; cursor: pointer; display: inline-flex; font-size: .83rem; font-weight: 800; gap: 9px; justify-content: center; letter-spacing: .01em; min-height: 48px; padding: 12px 21px; text-decoration: none; transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, opacity .16s ease; }
.portal-button:hover { transform: translateY(-2px); }
.portal-button:disabled { cursor: wait; opacity: .62; transform: none; }
.portal-button-primary { background: var(--iics-gold); color: var(--iics-navy-deep) !important; }
.portal-button-primary:hover, .portal-button-primary:focus-visible { background: #e1bf70; }
.portal-button-secondary { border-color: rgba(255, 255, 255, .43); color: var(--iics-white) !important; }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .72); }
.portal-logout-button { border-color: rgba(255, 255, 255, .28); }
.portal-logout-status { color: #ffb2a8; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; min-height: 18px; }
.portal-button-outline { background: transparent; border-color: var(--iics-line); color: var(--iics-green-dark) !important; }
.portal-button-outline:hover, .portal-button-outline:focus-visible { background: var(--iics-green-pale); border-color: var(--iics-green); }
.portal-button-full { width: 100%; }
.portal-hero-note { color: rgba(255, 255, 255, .58); font-size: .76rem; margin: 23px 0 0; }
.portal-check { color: #e4c76d; margin-right: 7px; }
.portal-hero-media { min-height: 390px; position: relative; }
.portal-hero-media::before { border: 1px solid rgba(210, 170, 80, .4); border-radius: 50%; content: ""; height: 420px; position: absolute; right: -24px; top: -24px; width: 420px; }
.portal-hero-media::after { border: 1px solid rgba(111, 208, 180, .3); border-radius: 50%; content: ""; height: 300px; position: absolute; right: 38px; top: 40px; width: 300px; }
.portal-hero-media img { border: 8px solid rgba(255, 255, 255, .14); border-radius: 22px; box-shadow: 0 28px 70px rgba(0, 0, 0, .28); height: 360px; object-fit: cover; position: relative; width: 100%; z-index: 1; }
.portal-hero-media-card { align-items: center; background: rgba(252, 251, 248, .97); border-radius: 13px; bottom: -8px; box-shadow: 0 18px 42px rgba(0, 0, 0, .25); color: var(--iics-ink); display: flex; gap: 11px; padding: 14px 17px; position: absolute; right: 22px; width: min(245px, calc(100% - 22px)); z-index: 2; }
.portal-hero-media-card strong, .portal-hero-media-card small { display: block; }
.portal-hero-media-card strong { font-size: .75rem; }
.portal-hero-media-card small { color: var(--iics-muted); font-size: .68rem; margin-top: 2px; }
.portal-status-dot { background: #42ad81; border-radius: 50%; box-shadow: 0 0 0 5px rgba(66, 173, 129, .15); display: block; flex: 0 0 auto; height: 8px; width: 8px; }

.portal-trust-strip { background: var(--iics-navy-deep); color: var(--iics-white); }
.portal-trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.portal-trust-grid > div { align-items: flex-start; border-left: 1px solid rgba(255, 255, 255, .12); display: grid; gap: 4px 12px; grid-template-columns: 22px 1fr; padding: 23px 22px; }
.portal-trust-grid > div:first-child { border-left: 0; }
.portal-trust-grid span { color: #dfbe70; font-size: 1.08rem; grid-row: span 2; }
.portal-trust-grid strong { font-size: .8rem; letter-spacing: .01em; }
.portal-trust-grid small { color: rgba(255, 255, 255, .57); font-size: .7rem; }
.portal-section { padding: 102px 0; }
.portal-section-heading { align-items: end; display: flex; gap: 40px; justify-content: space-between; margin-bottom: 42px; }
.portal-section-heading h2, .portal-help-section h2 { color: var(--iics-navy); font-family: var(--iics-display); font-size: clamp(2.35rem, 4vw, 3.55rem); font-weight: 500; letter-spacing: -.06em; line-height: 1.02; margin-bottom: 0; }
.portal-section-heading > p { color: var(--iics-muted); font-size: .88rem; line-height: 1.7; margin-bottom: 4px; max-width: 390px; }
.portal-service-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, 1fr); }
.portal-service-card { --service-accent: var(--iics-green); background: var(--iics-white); border: 1px solid var(--iics-line); border-top: 4px solid var(--service-accent); border-radius: 16px; box-shadow: 0 12px 32px rgba(9, 44, 56, .05); display: flex; flex-direction: column; min-height: 300px; padding: 25px 22px 22px; transition: box-shadow .16s ease, transform .16s ease; }
.portal-service-card:hover { box-shadow: var(--iics-shadow); transform: translateY(-4px); }
.portal-service-obas { --service-accent: #0b806b; }
.portal-service-facility { --service-accent: #3d8aab; }
.portal-service-licom { --service-accent: #b98935; }
.portal-service-commercial { --service-accent: #7857a3; }
.portal-card-topline { align-items: center; display: flex; justify-content: space-between; margin-bottom: 25px; }
.portal-service-icon { align-items: center; background: #eef5f1; border-radius: 12px; color: var(--service-accent); display: inline-flex; height: 48px; justify-content: center; width: 48px; }
.portal-service-obas .portal-service-icon { background: #e4f3ed; }
.portal-service-facility .portal-service-icon { background: #e8f1f7; }
.portal-service-licom .portal-service-icon { background: #f8f0df; }
.portal-service-commercial .portal-service-icon { background: #f0eaf8; }
.portal-service-icon svg { fill: none; height: 25px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; width: 25px; }
.portal-audience { color: var(--iics-muted); font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-align: right; text-transform: uppercase; }
.portal-service-card h3 { color: var(--iics-navy); font-family: var(--iics-display); font-size: 1.48rem; font-weight: 500; letter-spacing: -.04em; line-height: 1.08; margin-bottom: 13px; }
.portal-service-card p { color: var(--iics-muted); font-size: .82rem; line-height: 1.65; margin-bottom: 23px; }
.portal-card-link { color: var(--service-accent) !important; font-size: .76rem; font-weight: 850; margin-top: auto; text-decoration: none; }
.portal-card-link:hover { text-decoration: underline; }

.portal-process-section { background: var(--iics-navy); color: var(--iics-white); padding: 100px 0; }
.portal-section-heading-light h2 { color: var(--iics-white); }
.portal-section-heading-light > p { color: rgba(255, 255, 255, .62); }
.portal-process-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.portal-process-card { border: 1px solid rgba(255, 255, 255, .15); border-radius: 16px; padding: 28px 24px; }
.portal-process-card > span { color: var(--iics-gold); font-family: var(--iics-display); font-size: 1.35rem; }
.portal-process-card h3 { color: var(--iics-white); font-family: var(--iics-display); font-size: 1.55rem; font-weight: 500; margin: 25px 0 8px; }
.portal-process-card p { color: rgba(255, 255, 255, .63); font-size: .82rem; line-height: 1.7; margin-bottom: 0; }
.portal-faq-section { background: var(--iics-soft); padding: 100px 0; }
.portal-faq-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); }
.portal-faq-grid details { background: var(--iics-white); border: 1px solid var(--iics-line); border-radius: 13px; padding: 20px; }
.portal-faq-grid summary { color: var(--iics-navy); cursor: pointer; font-size: .86rem; font-weight: 800; padding-right: 14px; }
.portal-faq-grid details p { color: var(--iics-muted); font-size: .78rem; line-height: 1.7; margin: 14px 0 0; }
.portal-help-section { background: var(--iics-gold-pale); padding: 82px 0; }
.portal-help-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: 1fr .85fr; }
.portal-help-section p { color: var(--iics-muted); font-size: .9rem; line-height: 1.7; max-width: 520px; }
.portal-help-box { align-items: flex-start; background: var(--iics-white); border: 1px solid rgba(185, 137, 53, .25); border-radius: 16px; box-shadow: 0 12px 30px rgba(120, 87, 36, .08); display: flex; gap: 15px; padding: 23px; }
.portal-help-icon { align-items: center; background: var(--iics-gold); border-radius: 50%; color: var(--iics-navy); display: inline-flex; flex: 0 0 auto; font-family: var(--iics-display); font-size: 1.25rem; height: 34px; justify-content: center; width: 34px; }
.portal-help-box strong, .portal-help-box small { display: block; }
.portal-help-box strong { color: var(--iics-navy); font-size: .83rem; }
.portal-help-box small { color: var(--iics-muted); font-size: .76rem; line-height: 1.7; margin-top: 5px; }
.portal-help-box a { color: var(--iics-green); font-weight: 750; }
.portal-footer { background: #f4f6f3; border-top: 1px solid var(--iics-line); padding: 33px 0; }
.portal-footer-inner { align-items: center; display: grid; gap: 24px; grid-template-columns: 1.3fr 1fr 1.5fr; }
.portal-footer-brand { display: grid; gap: 2px; grid-template-columns: 94px 1fr; }
.portal-footer-brand img { grid-row: span 2; width: 82px; }
.portal-footer-brand strong { color: var(--iics-navy); font-size: .8rem; }
.portal-footer-brand small, .portal-footer-inner p { color: var(--iics-muted); font-size: .7rem; margin: 0; }
.portal-footer-links { display: flex; flex-wrap: wrap; gap: 15px; }
.portal-footer-links a { color: var(--iics-green-dark); font-size: .74rem; font-weight: 750; text-decoration: none; }
.portal-footer-links a:hover { text-decoration: underline; }

/* Existing portal subpages and state components */
.portal-subpage { background: var(--iics-surface); }
.portal-page-hero { background: var(--iics-navy); color: var(--iics-white); padding: 48px 0 40px; }
.portal-page-hero h1 { color: var(--iics-white); font-family: var(--iics-display); font-size: clamp(2.7rem, 5vw, 4.6rem); font-weight: 500; letter-spacing: -.06em; line-height: 1; max-width: 760px; }
.portal-page-hero > .portal-container > p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .68); max-width: 950px; }
.portal-page-hero-compact { padding: 58px 0 52px; }
.portal-compact-section { padding-bottom: 68px; padding-top: 68px; }
.portal-obas-grid, .portal-dashboard-grid, .portal-registration-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr); }
.portal-application-heading { margin: 35px 0 30px; max-width: 680px; }
.portal-application-heading h1 { color: var(--iics-white); font-family: var(--iics-display); font-size: clamp(2.55rem, 5vw, 4.2rem); font-weight: 500; letter-spacing: -.06em; line-height: 1; }
.portal-application-heading > p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .68); max-width: 620px; }
.portal-application-grid { margin-bottom: 20px; }
.portal-applicant-details { margin: 18px 0; }
.portal-application-categories { margin-top: 0; }
.portal-obas-grid > .portal-panel:first-child .portal-eyebrow { color: var(--iics-white); }
.portal-panel, .portal-registration-card { background: var(--iics-white); border: 1px solid var(--iics-line); border-radius: 16px; box-shadow: 0 12px 34px rgba(9, 44, 56, .06); padding: 28px; }
.portal-panel-gold { background: var(--iics-gold-pale); border-color: rgba(185, 137, 53, .24); }
.portal-panel h2 { color: var(--iics-navy); font-family: var(--iics-display); font-size: 2rem; font-weight: 500; letter-spacing: -.05em; }
.portal-panel p, .portal-panel-note { color: var(--iics-muted); font-size: .84rem; line-height: 1.7; }
.portal-steps-list { color: var(--iics-muted); font-size: .83rem; margin: 0; padding-left: 20px; }
.portal-steps-list li { margin-bottom: 15px; padding-left: 5px; }
.portal-steps-list strong { color: var(--iics-navy); }
.portal-auth-callout { background: var(--iics-green-dark); color: var(--iics-white); padding: 66px 0; }
.portal-auth-callout-inner { align-items: center; display: flex; gap: 35px; justify-content: space-between; }
.portal-auth-callout h2 { color: var(--iics-white); font-family: var(--iics-display); font-size: 2.35rem; font-weight: 500; letter-spacing: -.05em; }
.portal-auth-callout p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .64); font-size: .84rem; }
.portal-record-section { background: var(--iics-soft); }
.portal-record-list { display: grid; gap: 10px; }
.portal-record-row { align-items: center; background: var(--iics-white); border: 1px solid var(--iics-line); border-radius: 12px; display: flex; gap: 20px; justify-content: space-between; padding: 17px 19px; text-decoration: none; }
.portal-record-row:hover { border-color: var(--iics-green); box-shadow: 0 8px 22px rgba(9, 44, 56, .07); }
.portal-record-row strong, .portal-record-row small { display: block; }
.portal-record-row strong { color: var(--iics-navy); font-size: .82rem; }
.portal-record-row small { color: var(--iics-muted); font-size: .7rem; margin-top: 3px; }
.portal-record-status { background: var(--iics-green-pale); border-radius: 999px; color: var(--iics-green-dark); font-size: .68rem; font-weight: 800; padding: 5px 9px; white-space: nowrap; }
.portal-notification-unread { border-left: 3px solid var(--iics-gold); }
.portal-facility-capacity { color: var(--iics-muted); display: block; font-size: .7rem; margin-bottom: 18px; }
.portal-detail-list { list-style: none; margin: 0; padding: 0; }
.portal-detail-list li { border-bottom: 1px solid var(--iics-line); padding: 11px 0; }
.portal-detail-list li:last-child { border-bottom: 0; }
.portal-detail-list strong, .portal-detail-list small { display: block; }
.portal-detail-list strong { color: var(--iics-navy); font-size: .77rem; }
.portal-detail-list small { color: var(--iics-muted); font-size: .7rem; margin-top: 3px; }
.portal-detail-actions { padding-bottom: 60px; }
.portal-empty-page { padding-top: 68px; }
.portal-booking-detail { margin-top: 22px; }
.portal-empty-state { background: var(--iics-white); border: 1px dashed var(--iics-line); border-radius: 14px; padding: 30px; text-align: center; }
.portal-subpage .portal-section .portal-button-secondary { border-color: var(--iics-line); color: var(--iics-green-dark) !important; }
.portal-empty-state strong { color: var(--iics-navy); display: block; font-size: .9rem; }
.portal-empty-state p { color: var(--iics-muted); font-size: .8rem; margin: 8px 0 18px; }
.portal-dashboard-cards { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); }
.portal-dashboard-cards > div { background: var(--iics-white); border: 1px solid var(--iics-line); border-radius: 13px; padding: 21px; }
.portal-dashboard-cards strong, .portal-dashboard-cards small { display: block; }
.portal-dashboard-cards strong { color: var(--iics-green-dark); font-family: var(--iics-display); font-size: 2rem; font-weight: 500; }
.portal-dashboard-cards small { color: var(--iics-muted); font-size: .7rem; margin-top: 3px; }
.portal-utility-page { align-items: center; display: flex; justify-content: center; min-height: 70vh; padding: 40px 0; }
.portal-utility-panel { background: var(--iics-white); border: 1px solid var(--iics-line); border-radius: 16px; box-shadow: var(--iics-shadow); max-width: 540px; padding: 38px; text-align: center; }
.portal-utility-panel h1 { color: var(--iics-navy); font-family: var(--iics-display); font-weight: 500; }
.portal-utility-panel p { color: var(--iics-muted); }

/* Login */
.portal-auth-page { background: var(--iics-surface); margin: -24px -15px 0; }
.portal-auth-layout { display: grid; grid-template-columns: minmax(360px, .92fr) minmax(450px, 1.08fr); min-height: 100vh; }
.portal-auth-visual { background-image: var(--portal-auth-image); background-position: center; background-size: cover; color: var(--iics-white); min-height: 700px; position: relative; }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(6, 31, 42, .96), rgba(5, 83, 72, .67) 56%, rgba(5, 83, 72, .32)); inset: 0; position: absolute; }
.portal-auth-visual-content { display: flex; flex-direction: column; height: 100%; justify-content: space-between; padding: 42px clamp(30px, 5vw, 80px); position: relative; z-index: 1; }
.portal-auth-brand { align-items: center; color: var(--iics-white); display: inline-flex; gap: 14px; text-decoration: none; }
.portal-auth-brand img { background: rgba(255, 255, 255, .94); border-radius: 7px; padding: 4px; width: 150px; }
.portal-auth-brand span { border-left: 1px solid rgba(255, 255, 255, .35); font-size: .77rem; font-weight: 800; letter-spacing: .06em; padding-left: 14px; text-transform: uppercase; }
.portal-auth-welcome { margin: auto 0; max-width: 470px; padding: 80px 0; }
.portal-auth-welcome h1 { color: var(--iics-white); font-family: var(--iics-display); font-size: clamp(2.8rem, 5vw, 4.8rem); font-weight: 500; letter-spacing: -.065em; line-height: 1.02; }
.portal-auth-welcome p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .7); font-size: .98rem; max-width: 390px; }
.portal-auth-visual-footer { color: rgba(255, 255, 255, .52); display: flex; font-size: .65rem; font-weight: 800; gap: 12px; letter-spacing: .17em; }
.portal-auth-form-panel { align-items: center; display: flex; justify-content: center; padding: 48px clamp(28px, 7vw, 100px); }
.portal-auth-form-inner { max-width: 440px; width: 100%; }
.portal-mobile-back { color: var(--iics-green); font-size: .75rem; font-weight: 800; text-decoration: none; }
.portal-auth-form-inner > .portal-mobile-back:first-child { display: none; }
.portal-auth-heading { margin: 52px 0 28px; }
.portal-auth-heading h2, .portal-registration-card h2 { color: var(--iics-navy); font-family: var(--iics-display); font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.03; }
.portal-auth-heading p:not(.portal-eyebrow), .portal-form-intro { color: var(--iics-muted); font-size: .83rem; line-height: 1.7; }
.portal-form-field { color: var(--iics-navy); display: block; font-size: .74rem; font-weight: 800; margin-bottom: 18px; }
.portal-form-field > span:first-child { display: block; margin-bottom: 7px; }
.portal-form-field b { color: var(--iics-green); }
.portal-form-field input { background: var(--iics-white); border: 1px solid #cfded8; border-radius: 8px; color: var(--iics-ink); display: block; font-size: .84rem; font-weight: 500; min-height: 48px; padding: 12px 14px; width: 100%; }
.portal-form-field input::placeholder { color: #a1afb0; }
.portal-form-field input:focus { border-color: var(--iics-green); box-shadow: 0 0 0 3px rgba(8, 119, 101, .1); outline: 0; }
.portal-field-help { color: var(--iics-muted); display: block; font-size: .68rem; font-weight: 500; margin-top: 6px; }
.portal-password-input { display: block; position: relative; }
.portal-password-input input { padding-right: 60px; }
.portal-password-toggle { background: transparent; border: 0; color: var(--iics-green); cursor: pointer; font-size: .72rem; font-weight: 800; padding: 7px; position: absolute; right: 7px; top: 7px; }
.portal-auth-options { align-items: center; display: flex; font-size: .72rem; justify-content: space-between; margin: 3px 0 22px; }
.portal-auth-options > a, .portal-auth-create a, .portal-form-help a { color: var(--iics-green); font-weight: 800; text-decoration: none; }
.portal-auth-options > a:hover, .portal-auth-create a:hover, .portal-form-help a:hover { text-decoration: underline; }
.portal-form-check { align-items: flex-start; color: var(--iics-muted); display: flex; font-size: .73rem; font-weight: 500; gap: 9px; line-height: 1.5; margin: 18px 0 23px; }
.portal-form-check input { accent-color: var(--iics-green); flex: 0 0 auto; height: 16px; margin-top: 1px; width: 16px; }
.portal-form-check a { color: var(--iics-green); font-weight: 750; }
.portal-form-check-inline { margin: 0; }
.portal-form-status { color: var(--iics-muted); font-size: .76rem; line-height: 1.6; min-height: 22px; }
.portal-form-status.is-error { color: #b34b4b; }
.portal-form-status.is-success { color: var(--iics-green-dark); }
.portal-form-status.is-loading { color: var(--iics-green); }
.portal-auth-divider { align-items: center; color: #a6b4b0; display: flex; gap: 12px; font-size: .73rem; margin: 23px 0 18px; }
.portal-auth-divider::before, .portal-auth-divider::after { background: var(--iics-line); content: ""; flex: 1; height: 1px; }
.portal-auth-divider span { text-transform: uppercase; }
.portal-ums-login { gap: 11px; }
.portal-ums-login-icon { align-items: center; background: var(--iics-green-dark); border-radius: 50%; color: var(--iics-white); display: inline-flex; font-family: var(--iics-display); font-size: .75rem; height: 23px; justify-content: center; width: 23px; }
.portal-auth-note, .portal-auth-create, .portal-form-help { color: var(--iics-muted); font-size: .72rem; text-align: center; }
.portal-auth-note { line-height: 1.55; margin: 12px 0 29px; }
.portal-auth-create { border-top: 1px solid var(--iics-line); margin: 0; padding-top: 22px; }
.portal-auth-home-link { display: none; }
.portal-alert { border-radius: 10px; display: grid; font-size: .75rem; gap: 2px; line-height: 1.5; margin-bottom: 22px; padding: 12px 14px; }
.portal-alert a { color: var(--iics-green); font-weight: 800; }
.portal-alert-info { background: var(--iics-green-pale); color: var(--iics-green-dark); }

/* Registration wizard */
.portal-registration-shell { background: linear-gradient(135deg, #eff6f1, var(--iics-surface) 48%, var(--iics-gold-pale)); padding: 78px 0 100px; }
.portal-registration-grid { align-items: start; gap: 65px; grid-template-columns: minmax(300px, .72fr) minmax(500px, 1fr); }
.portal-registration-intro { padding-top: 14px; }
.portal-registration-intro h1 { color: var(--iics-navy); font-family: var(--iics-display); font-size: clamp(2.7rem, 4.2vw, 4.5rem); font-weight: 500; letter-spacing: -.065em; line-height: 1; }
.portal-registration-intro > p:not(.portal-eyebrow) { color: var(--iics-muted); font-size: .92rem; line-height: 1.75; max-width: 440px; }
.portal-registration-benefits { display: grid; gap: 20px; margin: 35px 0; }
.portal-registration-benefits > div { align-items: flex-start; display: flex; gap: 12px; }
.portal-registration-benefits > div > span:first-child { align-items: center; background: var(--iics-green-pale); border-radius: 50%; color: var(--iics-green); display: inline-flex; flex: 0 0 auto; font-size: .72rem; font-weight: 900; height: 26px; justify-content: center; width: 26px; }
.portal-registration-benefits strong, .portal-registration-benefits small { display: block; }
.portal-registration-benefits strong { color: var(--iics-navy); font-size: .8rem; }
.portal-registration-benefits small { color: var(--iics-muted); font-size: .72rem; line-height: 1.55; margin-top: 2px; }
.portal-registration-image { align-items: end; background-position: center; background-size: cover; border-radius: 15px; display: flex; min-height: 170px; overflow: hidden; padding: 18px; position: relative; }
.portal-registration-image::before { background: linear-gradient(transparent, rgba(6, 31, 42, .82)); content: ""; inset: 0; position: absolute; }
.portal-registration-image > span { color: var(--iics-white); font-size: .72rem; font-weight: 800; letter-spacing: .05em; position: relative; }
.portal-registration-image small { color: rgba(255, 255, 255, .68); font-size: .66rem; font-weight: 500; letter-spacing: 0; }
.portal-registration-card { padding: 33px; }
.portal-wizard-progress { align-items: center; display: flex; margin-bottom: 35px; }
.portal-wizard-step { align-items: center; color: #a2b0ad; display: flex; flex: 0 0 auto; gap: 7px; }
.portal-wizard-step span { align-items: center; border: 1px solid #cbdad4; border-radius: 50%; display: inline-flex; font-size: .68rem; font-weight: 850; height: 26px; justify-content: center; width: 26px; }
.portal-wizard-step strong { display: none; font-size: .68rem; white-space: nowrap; }
.portal-wizard-step.is-active, .portal-wizard-step.is-complete { color: var(--iics-green); }
.portal-wizard-step.is-active span, .portal-wizard-step.is-complete span { background: var(--iics-green); border-color: var(--iics-green); color: var(--iics-white); }
.portal-wizard-line { background: var(--iics-line); flex: 1; height: 1px; margin: 0 9px; }
.portal-wizard-panel[hidden], .portal-registration-success[hidden] { display: none; }
.portal-wizard-panel h2 { margin-bottom: 10px; }
.portal-wizard-panel > .portal-eyebrow { margin-bottom: 12px; }
.portal-wizard-actions { align-items: center; border-top: 1px solid var(--iics-line); display: flex; justify-content: space-between; margin-top: 29px; padding-top: 22px; }
.portal-registration-callout { align-items: flex-start; background: var(--iics-green-pale); border-radius: 10px; color: var(--iics-green-dark); display: flex; font-size: .72rem; gap: 10px; line-height: 1.55; margin: 18px 0 0; padding: 13px 14px; }
.portal-registration-callout > span { align-items: center; background: var(--iics-green); border-radius: 50%; color: var(--iics-white); display: inline-flex; flex: 0 0 auto; font-size: .65rem; font-weight: 900; height: 19px; justify-content: center; width: 19px; }
.portal-registration-callout p { margin: 0; }
.portal-registration-callout-gold { background: var(--iics-gold-pale); color: #735a22; }
.portal-registration-callout-gold > span { background: var(--iics-gold); color: var(--iics-navy); }
.portal-review-list { border: 1px solid var(--iics-line); border-radius: 10px; margin: 22px 0 0; }
.portal-review-list > div { border-bottom: 1px solid var(--iics-line); display: flex; gap: 20px; justify-content: space-between; padding: 13px 14px; }
.portal-review-list > div:last-child { border-bottom: 0; }
.portal-review-list dt { color: var(--iics-muted); font-size: .72rem; }
.portal-review-list dd { color: var(--iics-navy); font-size: .77rem; font-weight: 800; margin: 0; text-align: right; }
.portal-registration-success { padding: 20px 0; text-align: center; }
.portal-registration-success .portal-eyebrow { margin-top: 22px; }
.portal-registration-success h2 { margin-bottom: 10px; }
.portal-registration-success > p:not(.portal-eyebrow) { color: var(--iics-muted); font-size: .83rem; line-height: 1.7; margin: 0 auto 25px; max-width: 380px; }
.portal-success-icon { align-items: center; background: var(--iics-green); border-radius: 50%; color: var(--iics-white); display: inline-flex; font-size: 1.5rem; height: 54px; justify-content: center; width: 54px; }

@media (min-width: 920px) {
    .portal-wizard-step strong { display: block; }
}

@media (max-width: 980px) {
    .portal-navigation { gap: 15px; }
    .portal-hero-grid { gap: 42px; }
    .portal-service-grid { grid-template-columns: repeat(2, 1fr); }
    .portal-footer-inner { grid-template-columns: 1fr 1fr; }
    .portal-footer-inner p { grid-column: 1 / -1; }
    .portal-registration-grid { gap: 34px; grid-template-columns: .8fr 1fr; }
    .portal-registration-image { min-height: 140px; }
}

@media (max-width: 760px) {
    .portal-container { width: min(100% - 36px, 560px); }
    .portal-header-inner { min-height: 70px; }
    .portal-brand-logo { width: 104px; }
    .portal-brand-copy { padding-left: 9px; }
    .portal-menu-toggle { display: inline-flex; }
    .portal-navigation { align-items: stretch; background: rgba(252, 251, 248, .98); border-bottom: 1px solid var(--iics-line); display: none; flex-direction: column; gap: 0; left: 0; padding: 9px 18px 17px; position: absolute; right: 0; top: 69px; }
    .portal-navigation.is-open { display: flex; }
    .portal-navigation a { padding: 10px 0; }
    .portal-nav-action { text-align: center; }
    .portal-hero { padding: 64px 0 58px; }
    .portal-hero-grid, .portal-help-grid, .portal-dashboard-grid, .portal-obas-grid { grid-template-columns: 1fr; }
    .portal-hero-media { margin-top: 12px; min-height: 280px; }
    .portal-hero-media img { height: 280px; }
    .portal-hero-media::before { height: 300px; width: 300px; }
    .portal-hero-media::after { height: 220px; width: 220px; }
    .portal-trust-grid { grid-template-columns: 1fr; }
    .portal-trust-grid > div, .portal-trust-grid > div:first-child { border-bottom: 1px solid rgba(255, 255, 255, .12); border-left: 0; }
    .portal-trust-grid > div:last-child { border-bottom: 0; }
    .portal-section, .portal-process-section, .portal-faq-section { padding: 68px 0; }
    .portal-section-heading { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 30px; }
    .portal-service-grid, .portal-process-grid, .portal-faq-grid { grid-template-columns: 1fr; }
    .portal-service-card { min-height: 250px; }
    .portal-help-grid { gap: 27px; }
    .portal-footer-inner { grid-template-columns: 1fr; }
    .portal-footer-inner p { grid-column: auto; }
    .portal-page-hero { padding: 36px 0 30px; }
    .portal-auth-callout-inner { align-items: flex-start; flex-direction: column; }
    .portal-auth-layout { display: block; }
    .portal-auth-visual { min-height: 330px; }
    .portal-auth-visual-content { padding: 27px 25px; }
    .portal-auth-welcome { margin-top: 40px; padding: 20px 0; }
    .portal-auth-welcome h1 { font-size: 2.75rem; }
    .portal-auth-welcome p:not(.portal-eyebrow) { font-size: .84rem; }
    .portal-auth-visual-footer { display: none; }
    .portal-auth-form-panel { padding: 42px 21px 50px; }
    .portal-auth-form-inner > .portal-mobile-back:first-child { display: inline-block; }
    .portal-auth-heading { margin: 34px 0 26px; }
    .portal-auth-home-link { display: block; margin-top: 23px; text-align: center; }
    .portal-registration-shell { padding: 43px 0 65px; }
    .portal-registration-grid { grid-template-columns: 1fr; }
    .portal-registration-intro { padding-top: 0; }
    .portal-registration-intro h1 { font-size: 2.8rem; }
    .portal-registration-image { display: none; }
    .portal-registration-card { padding: 23px 19px; }
    .portal-wizard-step strong { display: none; }
}

@media (max-width: 420px) {
    .portal-brand-copy { display: none; }
    .portal-hero h1 { font-size: 3rem; }
    .portal-button { width: 100%; }
    .portal-hero-actions { align-items: stretch; flex-direction: column; }
    .portal-auth-options { align-items: flex-start; flex-direction: column; gap: 12px; }
    .portal-review-list > div { align-items: flex-start; flex-direction: column; gap: 4px; }
    .portal-review-list dd { text-align: left; }
    .portal-wizard-actions .portal-button { width: auto; }
}

/* Futuristic digital-services theme */
:root {
    --iics-navy: #061923;
    --iics-navy-deep: #031017;
    --iics-green: #00d6a3;
    --iics-green-dark: #00a985;
    --iics-green-pale: #0d302f;
    --iics-gold: #f3c963;
    --iics-gold-pale: #302814;
    --iics-ink: #e6f5f2;
    --iics-muted: #91adb2;
    --iics-surface: #061923;
    --iics-soft: #0a222c;
    --iics-line: #1a4650;
    --iics-white: #f7fffd;
    --iics-shadow: 0 24px 70px rgba(0, 0, 0, .34);
    --iics-display: "Space Grotesk", Inter, ui-sans-serif, system-ui, sans-serif;
}

.iics-portal {
    background: var(--iics-surface);
    color: var(--iics-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-header {
    background: rgba(3, 16, 23, .78);
    border-bottom: 1px solid rgba(0, 214, 163, .16);
    box-shadow: 0 12px 40px rgba(0, 0, 0, .22);
}

.portal-header::after {
    background: linear-gradient(90deg, transparent, var(--iics-green), transparent);
    content: "";
    height: 1px;
    left: 12%;
    opacity: .55;
    position: absolute;
    right: 12%;
    top: 100%;
}

.portal-brand-logo { filter: brightness(0) invert(1) drop-shadow(0 0 12px rgba(0, 214, 163, .18)); }
.portal-brand-copy { border-left-color: rgba(0, 214, 163, .3); }
.portal-brand-copy strong { color: var(--iics-green); font-family: var(--iics-display); letter-spacing: .2em; }
.portal-brand-copy small { color: #8faeb2; }
.portal-navigation a { color: #aac2c4; }
.portal-navigation a:hover, .portal-navigation a:focus-visible, .portal-navigation .is-active { color: var(--iics-green); }
.portal-nav-action { border-color: var(--iics-green); box-shadow: 0 0 0 1px rgba(0, 214, 163, .08), 0 0 22px rgba(0, 214, 163, .08); }
.portal-nav-action:hover, .portal-nav-action:focus-visible { background: rgba(0, 214, 163, .12); }
.portal-menu-toggle { background: rgba(0, 214, 163, .08); border-color: rgba(0, 214, 163, .35); color: var(--iics-green); }

.portal-hero {
    background: radial-gradient(circle at 82% 18%, rgba(0, 214, 163, .16), transparent 26%), radial-gradient(circle at 12% 85%, rgba(243, 201, 99, .08), transparent 24%), var(--iics-navy-deep);
    padding: 106px 0 95px;
}

.portal-hero::before {
    background: radial-gradient(circle, rgba(0, 214, 163, .22), transparent 68%);
    filter: blur(3px);
}

.portal-hero::after {
    background-image: linear-gradient(rgba(0, 214, 163, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 214, 163, .08) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(to right, transparent, rgba(0, 0, 0, .94) 48%, transparent);
    opacity: .7;
}

.portal-hero-copy { position: relative; }
.portal-hero-copy::before {
    color: rgba(0, 214, 163, .48);
    content: "IICS // SECURE_SERVICE_NODE";
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .62rem;
    letter-spacing: .18em;
    position: absolute;
    right: 0;
    top: -42px;
}

.portal-eyebrow { color: var(--iics-green); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .64rem; letter-spacing: .22em; }
.portal-hero h1 { font-family: var(--iics-display); font-weight: 700; letter-spacing: -.075em; text-shadow: 0 0 35px rgba(0, 214, 163, .13); }
.portal-hero-subtitle { color: var(--iics-gold); font-family: var(--iics-display); font-weight: 500; letter-spacing: -.04em; }
.portal-hero-lede { color: #a8c2c4; }
.portal-button { border-radius: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; letter-spacing: .03em; text-transform: uppercase; }
.portal-button-primary { background: var(--iics-green); box-shadow: 0 0 25px rgba(0, 214, 163, .18); color: #031017 !important; }
.portal-button-primary:hover, .portal-button-primary:focus-visible { background: #54e7bf; box-shadow: 0 0 32px rgba(0, 214, 163, .3); }
.portal-button-secondary { border-color: rgba(230, 245, 242, .34); color: var(--iics-white) !important; }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { background: rgba(0, 214, 163, .1); border-color: var(--iics-green); }
.portal-button-outline { background: rgba(0, 214, 163, .04); border-color: rgba(0, 214, 163, .4); color: var(--iics-green) !important; }
.portal-button-outline:hover, .portal-button-outline:focus-visible { background: rgba(0, 214, 163, .12); border-color: var(--iics-green); }
.portal-check { color: var(--iics-gold); }
.portal-hero-note { color: #78969b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .67rem; letter-spacing: .02em; }

.portal-hero-media::before, .portal-hero-media::after { border-color: rgba(0, 214, 163, .36); }
.portal-hero-media::before { border-style: dashed; }
.portal-hero-media img { border: 1px solid rgba(0, 214, 163, .5); border-radius: 9px; box-shadow: 0 28px 90px rgba(0, 0, 0, .52), 0 0 0 10px rgba(0, 214, 163, .03); filter: saturate(.82) contrast(1.05); }
.portal-hero-media-card { background: rgba(5, 27, 36, .92); border: 1px solid rgba(0, 214, 163, .3); border-radius: 7px; box-shadow: 0 16px 45px rgba(0, 0, 0, .35), 0 0 22px rgba(0, 214, 163, .08); color: var(--iics-white); }
.portal-hero-media-card small { color: #8ca9ad; }
.portal-status-dot { background: var(--iics-green); box-shadow: 0 0 0 5px rgba(0, 214, 163, .12), 0 0 18px rgba(0, 214, 163, .62); }

.portal-trust-strip { background: #020e14; border-bottom: 1px solid rgba(0, 214, 163, .12); border-top: 1px solid rgba(0, 214, 163, .12); }
.portal-trust-grid > div { border-left-color: rgba(0, 214, 163, .13); }
.portal-trust-grid span { color: var(--iics-green); }
.portal-trust-grid strong { color: #d9efeb; font-family: var(--iics-display); }
.portal-trust-grid small { color: #78969b; }

.portal-section { background: var(--iics-surface); }
.portal-section-heading h2, .portal-help-section h2 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 650; letter-spacing: -.07em; }
.portal-section-heading > p { color: var(--iics-muted); }
.portal-service-grid { gap: 14px; }
.portal-service-card {
    background: linear-gradient(145deg, rgba(14, 42, 51, .88), rgba(6, 25, 35, .96));
    border: 1px solid rgba(119, 178, 180, .18);
    border-top: 2px solid var(--service-accent);
    border-radius: 8px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035), 0 18px 36px rgba(0, 0, 0, .2);
    min-height: 320px;
    position: relative;
    overflow: hidden;
}
.portal-service-card::after { color: rgba(0, 214, 163, .18); content: "//"; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.7rem; position: absolute; right: 18px; top: 10px; }
.portal-service-card:hover { border-color: var(--service-accent); box-shadow: 0 22px 55px rgba(0, 0, 0, .35), 0 0 25px rgba(0, 214, 163, .08); transform: translateY(-5px); }
.portal-service-icon { background: rgba(0, 214, 163, .08) !important; border: 1px solid rgba(0, 214, 163, .3); border-radius: 7px; }
.portal-service-facility .portal-service-icon { border-color: rgba(61, 138, 171, .5); }
.portal-service-licom .portal-service-icon { border-color: rgba(243, 201, 99, .5); }
.portal-service-commercial .portal-service-icon { border-color: rgba(148, 117, 205, .5); }
.portal-audience { color: #769398; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .58rem; }
.portal-service-card h3 { color: var(--iics-white); font-family: var(--iics-display); font-size: 1.45rem; font-weight: 650; }
.portal-service-card p { color: #8eaaae; }
.portal-card-link { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .03em; text-transform: uppercase; }

.portal-process-section { background: radial-gradient(circle at 80% 0%, rgba(0, 214, 163, .1), transparent 32%), #031017; border-bottom: 1px solid rgba(0, 214, 163, .12); border-top: 1px solid rgba(0, 214, 163, .12); }
.portal-process-card { background: rgba(8, 34, 44, .6); border-color: rgba(0, 214, 163, .18); border-radius: 8px; }
.portal-process-card > span { color: var(--iics-green); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.portal-process-card h3 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 650; }
.portal-process-card p { color: #83a0a5; }
.portal-faq-section { background: #081f29; }
.portal-faq-grid details { background: rgba(7, 29, 39, .86); border-color: rgba(0, 214, 163, .16); border-radius: 8px; }
.portal-faq-grid summary { color: var(--iics-white); font-family: var(--iics-display); }
.portal-faq-grid details p { color: #8eaaae; }
.portal-help-section { background: radial-gradient(circle at 90% 0%, rgba(243, 201, 99, .13), transparent 30%), #10282c; }
.portal-help-section p { color: #9cb5b6; }
.portal-help-box { background: rgba(6, 25, 35, .82); border-color: rgba(243, 201, 99, .3); border-radius: 8px; box-shadow: 0 18px 42px rgba(0, 0, 0, .22); }
.portal-help-box strong { color: var(--iics-white); }
.portal-help-box small { color: #96afb2; }
.portal-help-box a { color: var(--iics-green); }
.portal-help-icon { background: var(--iics-gold); color: var(--iics-navy-deep); }
.portal-footer { background: #020e14; border-top-color: rgba(0, 214, 163, .15); }
.portal-footer-brand img { filter: brightness(0) invert(1); }
.portal-footer-brand strong { color: var(--iics-white); }
.portal-footer-brand small, .portal-footer-inner p { color: #718d92; }
.portal-footer-links a { color: var(--iics-green); }

.portal-page-hero { background: radial-gradient(circle at 85% 10%, rgba(0, 214, 163, .16), transparent 30%), var(--iics-navy-deep); border-bottom: 1px solid rgba(0, 214, 163, .15); }
.portal-page-hero h1 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 700; }
.portal-page-hero > .portal-container > p:not(.portal-eyebrow) { color: #9cb7ba; }
.portal-panel, .portal-registration-card, .portal-utility-panel { background: linear-gradient(145deg, rgba(14, 42, 51, .92), rgba(5, 23, 32, .98)); border-color: rgba(0, 214, 163, .17); border-radius: 8px; box-shadow: var(--iics-shadow); }
.portal-panel h2, .portal-utility-panel h1 { color: var(--iics-white); font-family: var(--iics-display); }
.portal-panel p, .portal-panel-note, .portal-utility-panel p { color: #91adb2; }
.portal-panel-gold { background: rgba(48, 40, 20, .76); border-color: rgba(243, 201, 99, .24); }
.portal-record-section { background: #081f29; }
.portal-record-row, .portal-dashboard-cards > div, .portal-empty-state { background: rgba(8, 34, 44, .86); border-color: rgba(0, 214, 163, .16); }
.portal-record-row strong, .portal-dashboard-cards strong, .portal-empty-state strong { color: var(--iics-white); }
.portal-record-row small, .portal-dashboard-cards small, .portal-empty-state p { color: #8ba7ab; }
.portal-record-status { background: rgba(0, 214, 163, .12); color: var(--iics-green); }
.portal-detail-list li, .portal-review-list > div { border-bottom-color: rgba(0, 214, 163, .14); }
.portal-detail-list strong, .portal-review-list dd { color: var(--iics-white); }
.portal-detail-list small { color: #8ba7ab; }
.portal-empty-state { border-style: dashed; }

.portal-auth-page { background: #031017; }
.portal-auth-layout { background: #031017; }
.portal-auth-visual { background-color: #061923; }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(3, 16, 23, .96), rgba(0, 94, 78, .78) 56%, rgba(3, 16, 23, .4)); }
.portal-auth-visual::after { background-image: linear-gradient(rgba(0, 214, 163, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 214, 163, .12) 1px, transparent 1px); background-size: 32px 32px; content: ""; inset: 0; opacity: .45; pointer-events: none; position: absolute; }
.portal-auth-brand img { background: transparent; border: 0; filter: brightness(0) invert(1) drop-shadow(0 0 16px rgba(0, 214, 163, .18)); padding: 0; }
.portal-auth-brand span { border-left-color: rgba(0, 214, 163, .35); color: #c7e8e3; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.portal-auth-welcome h1 { font-family: var(--iics-display); font-weight: 700; }
.portal-auth-welcome p:not(.portal-eyebrow) { color: #a3c0c0; }
.portal-auth-visual-footer { color: rgba(0, 214, 163, .65); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.portal-auth-form-panel { background: #061923; }
.portal-auth-heading h2, .portal-registration-card h2 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 700; }
.portal-auth-heading p:not(.portal-eyebrow), .portal-form-intro { color: #91adb2; }
.portal-form-field { color: #d8efeb; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.portal-form-field input { background: #071f2a; border-color: rgba(0, 214, 163, .22); border-radius: 6px; color: var(--iics-white); }
.portal-form-field input::placeholder { color: #55747a; }
.portal-form-field input:focus { border-color: var(--iics-green); box-shadow: 0 0 0 3px rgba(0, 214, 163, .13), 0 0 20px rgba(0, 214, 163, .08); }
.portal-field-help, .portal-auth-note, .portal-auth-create, .portal-form-help { color: #78969b; }
.portal-password-toggle, .portal-auth-options > a, .portal-auth-create a, .portal-form-help a { color: var(--iics-green); }
.portal-auth-options { color: #91adb2; }
.portal-form-check { color: #91adb2; }
.portal-form-status { color: #91adb2; }
.portal-auth-divider::before, .portal-auth-divider::after, .portal-auth-create, .portal-wizard-actions { border-color: rgba(0, 214, 163, .16); }
.portal-auth-divider { color: #66858a; }
.portal-ums-login-icon { background: var(--iics-green); color: var(--iics-navy-deep); }
.portal-alert-info { background: rgba(0, 214, 163, .1); color: #a9ded3; }

.portal-registration-shell { background: radial-gradient(circle at 10% 10%, rgba(0, 214, 163, .12), transparent 28%), radial-gradient(circle at 90% 80%, rgba(243, 201, 99, .1), transparent 26%), #061923; }
.portal-registration-intro h1 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 700; }
.portal-registration-intro > p:not(.portal-eyebrow) { color: #91adb2; }
.portal-registration-benefits strong { color: var(--iics-white); }
.portal-registration-benefits small { color: #86a3a7; }
.portal-registration-benefits > div > span:first-child { background: rgba(0, 214, 163, .12); color: var(--iics-green); }
.portal-registration-image { border: 1px solid rgba(0, 214, 163, .26); border-radius: 8px; }
.portal-registration-image::before { background: linear-gradient(transparent, rgba(3, 16, 23, .94)); }
.portal-wizard-step { color: #5e7d82; }
.portal-wizard-step span { border-color: rgba(0, 214, 163, .28); }
.portal-wizard-step.is-active, .portal-wizard-step.is-complete { color: var(--iics-green); }
.portal-wizard-step.is-active span, .portal-wizard-step.is-complete span { background: var(--iics-green); border-color: var(--iics-green); color: var(--iics-navy-deep); }
.portal-wizard-line { background: rgba(0, 214, 163, .18); }
.portal-registration-callout { background: rgba(0, 214, 163, .1); color: #a9ded3; }
.portal-registration-callout > span { background: var(--iics-green); color: var(--iics-navy-deep); }
.portal-registration-callout-gold { background: rgba(243, 201, 99, .1); color: #e4ca82; }
.portal-registration-callout-gold > span { background: var(--iics-gold); color: var(--iics-navy-deep); }
.portal-review-list { border-color: rgba(0, 214, 163, .17); }
.portal-review-list dt { color: #78969b; }
.portal-success-icon { background: var(--iics-green); color: var(--iics-navy-deep); box-shadow: 0 0 25px rgba(0, 214, 163, .25); }

@media (max-width: 760px) {
    .portal-navigation { background: rgba(3, 16, 23, .98); border-bottom-color: rgba(0, 214, 163, .18); }
    .portal-hero { padding: 78px 0 62px; }
    .portal-hero-copy::before { display: none; }
    .portal-auth-form-panel { background: #061923; }
}

/* Preserve the colored UMS crest; only the wordmark asset is white. */
.portal-brand-logo { filter: drop-shadow(0 0 12px rgba(0, 214, 163, .18)); }
.portal-auth-brand img { filter: drop-shadow(0 0 16px rgba(0, 214, 163, .18)); }
.portal-footer-brand img { filter: none; }
.portal-service-home-link {
    align-items: center;
    border: 1px solid rgba(0, 214, 163, .42);
    border-radius: 50%;
    color: var(--iics-green) !important;
    display: inline-flex;
    font-size: 0;
    height: 34px;
    justify-content: center;
    margin-bottom: 22px;
    position: relative;
    text-decoration: none;
    width: 34px;
}
.portal-service-home-link::before {
    border: 1.5px solid currentColor;
    border-top: 0;
    border-radius: 1px;
    content: "";
    height: 10px;
    margin-top: 5px;
    position: absolute;
    width: 13px;
}
.portal-service-home-link::after {
    border-left: 1.5px solid currentColor;
    border-top: 1.5px solid currentColor;
    content: "";
    height: 9px;
    position: absolute;
    top: 8px;
    transform: rotate(45deg);
    width: 9px;
}
.portal-service-home-link:hover { background: rgba(0, 214, 163, .12); border-color: var(--iics-gold); color: var(--iics-gold) !important; }

/* Medium services catalogue with compact service cards. */
.portal-services-page .portal-container { width: min(1080px, calc(100% - 48px)); }
.portal-services-page .portal-page-hero { padding-bottom: 62px; padding-top: 62px; }
.portal-services-page .portal-section { padding-bottom: 72px; padding-top: 72px; }
.portal-services-page .portal-service-grid { gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.portal-services-page .portal-service-card { min-height: 250px; padding: 20px 18px 18px; }
.portal-services-page .portal-card-topline { margin-bottom: 19px; }
.portal-services-page .portal-service-icon { height: 42px; width: 42px; }
.portal-services-page .portal-service-icon svg { height: 21px; width: 21px; }
.portal-services-page .portal-service-card h3 { font-size: 1.2rem; }
.portal-services-page .portal-service-card p { font-size: .76rem; line-height: 1.55; }
.portal-services-page .portal-card-link { font-size: .65rem; }

@media (max-width: 980px) {
    .portal-services-page .portal-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .portal-services-page .portal-container { width: min(100% - 36px, 560px); }
    .portal-services-page .portal-page-hero { padding-bottom: 48px; padding-top: 48px; }
    .portal-services-page .portal-section { padding-bottom: 58px; padding-top: 58px; }
    .portal-services-page .portal-service-grid { grid-template-columns: 1fr; }
    .portal-services-page .portal-service-card { min-height: 218px; }
}

/* Facility availability calendar. */
.portal-calendar-section { background: var(--iics-navy-deep); color: var(--iics-white); }
.portal-calendar-section .portal-section-heading h2 { color: var(--iics-white); }
.portal-calendar-section .portal-section-heading > p { color: rgba(255, 255, 255, .62); }
.portal-calendar {
    background: linear-gradient(145deg, rgba(13, 48, 59, .92), rgba(4, 24, 33, .94));
    border: 1px solid rgba(0, 214, 163, .2);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .24), inset 0 1px 0 rgba(255, 255, 255, .05);
    padding: 20px;
    backdrop-filter: blur(22px);
}
.portal-calendar-toolbar { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 13px; }
.portal-calendar-navigation { align-items: center; display: flex; gap: 8px; }
.portal-calendar-navigation strong { color: var(--iics-white); font-family: var(--iics-display); font-size: 1.35rem; font-weight: 500; margin-left: 8px; }
.portal-calendar-button { align-items: center; background: rgba(0, 214, 163, .07); border: 1px solid rgba(0, 214, 163, .24); border-radius: 6px; color: var(--iics-green); cursor: pointer; display: inline-flex; justify-content: center; min-height: 36px; padding: 7px 10px; }
.portal-calendar-button:hover, .portal-calendar-button:focus-visible { background: rgba(0, 214, 163, .16); border-color: var(--iics-green); color: #9df3d8; }
.portal-calendar-today { color: #9ebbbd; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; }
.portal-calendar-filter { display: grid; gap: 5px; min-width: 205px; }
.portal-calendar-filter span { color: #8babaf; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.portal-calendar-filter select { background: #071f2a; border: 1px solid rgba(0, 214, 163, .24); border-radius: 6px; color: var(--iics-white); min-height: 40px; padding: 8px 10px; }
.portal-calendar-status { color: #8babaf; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; min-height: 20px; }
.portal-calendar-status.is-loading { color: var(--iics-green); }
.portal-calendar-status.is-ready { color: #9fe5cf; }
.portal-calendar-status.is-error { color: #ff9a91; }
.portal-calendar-status.is-empty { color: var(--iics-gold); }
.portal-calendar-layout { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr) 260px; }
.portal-calendar-grid-wrap { min-width: 0; }
.portal-calendar-weekdays, .portal-calendar-grid { display: grid; gap: 6px; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.portal-calendar-weekdays { color: #8babaf; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .6rem; gap: 6px; margin-bottom: 6px; text-align: center; text-transform: uppercase; }
.portal-calendar-day { background: rgba(2, 21, 29, .52); border: 1px solid rgba(0, 214, 163, .12); border-radius: 7px; color: #d6e8e5; cursor: pointer; min-height: 100px; padding: 8px; text-align: left; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.portal-calendar-day:hover, .portal-calendar-day:focus-visible, .portal-calendar-day.is-selected { background: rgba(0, 214, 163, .11); border-color: var(--iics-green); }
.portal-calendar-day:hover { transform: translateY(-1px); }
.portal-calendar-day.is-outside { opacity: .38; }
.portal-calendar-day.is-today .portal-calendar-day-number { background: var(--iics-gold); color: var(--iics-navy-deep); }
.portal-calendar-day-number { align-items: center; border-radius: 50%; display: inline-flex; font-size: .72rem; height: 24px; justify-content: center; width: 24px; }
.portal-calendar-day-events { display: grid; gap: 4px; margin-top: 8px; }
.portal-calendar-chip { background: rgba(0, 214, 163, .12); border-left: 2px solid var(--iics-green); color: #b9eee0; display: block; font-size: .58rem; overflow: hidden; padding: 3px 4px; text-overflow: ellipsis; white-space: nowrap; }
.portal-calendar-more { color: var(--iics-gold); font-size: .58rem; }
.portal-calendar-details { background: rgba(2, 21, 29, .58); border: 1px solid rgba(0, 214, 163, .16); border-radius: 10px; min-height: 100%; padding: 18px; }
.portal-calendar-details h3 { color: var(--iics-white); font-family: var(--iics-display); font-size: 1.2rem; font-weight: 500; line-height: 1.2; }
.portal-calendar-event-list { display: grid; gap: 8px; }
.portal-calendar-event { background: rgba(0, 214, 163, .07); border-left: 2px solid var(--iics-green); display: grid; gap: 3px; padding: 10px; }
.portal-calendar-event strong { color: var(--iics-white); font-size: .75rem; line-height: 1.35; }
.portal-calendar-event span, .portal-calendar-event small { color: #9ebbbd; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .61rem; }
.portal-calendar-empty { color: #8babaf; font-size: .73rem; line-height: 1.6; }

@media (max-width: 760px) {
    .portal-calendar { padding: 14px; }
    .portal-calendar-toolbar { align-items: stretch; flex-direction: column; }
    .portal-calendar-navigation { justify-content: space-between; }
    .portal-calendar-filter, .portal-calendar-filter select { width: 100%; }
    .portal-calendar-layout { grid-template-columns: 1fr; }
    .portal-calendar-weekdays, .portal-calendar-grid { gap: 3px; }
    .portal-calendar-day { min-height: 72px; padding: 5px; }
    .portal-calendar-chip { font-size: .5rem; }
    .portal-calendar-day-events { gap: 2px; margin-top: 4px; }
}

/* Glass digital surfaces: login, registration and dashboard */
.portal-auth-page,
.portal-registration-page,
.portal-subpage {
    background:
        radial-gradient(circle at 15% 8%, rgba(0, 214, 163, .1), transparent 23%),
        radial-gradient(circle at 88% 18%, rgba(243, 201, 99, .08), transparent 20%),
        #031017;
    position: relative;
}

.portal-auth-page::before,
.portal-registration-page::before,
.portal-subpage::before {
    background-image: linear-gradient(rgba(0, 214, 163, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 214, 163, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    content: "";
    inset: 0;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, .8), transparent 72%);
    pointer-events: none;
    position: absolute;
}

.portal-auth-layout,
.portal-registration-shell,
.portal-subpage > * {
    position: relative;
    z-index: 1;
}

.portal-auth-form-panel {
    align-items: center;
    background: transparent;
    position: relative;
}

.portal-auth-form-inner {
    background: linear-gradient(145deg, rgba(13, 42, 52, .76), rgba(4, 21, 30, .78));
    border: 1px solid rgba(0, 214, 163, .2);
    border-radius: 18px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .05), 0 0 36px rgba(0, 214, 163, .04);
    max-width: 500px;
    padding: 42px;
    position: relative;
    backdrop-filter: blur(24px);
}

.portal-auth-form-inner::before,
.portal-registration-card::before {
    background: linear-gradient(90deg, transparent, rgba(0, 214, 163, .66), transparent);
    content: "";
    height: 1px;
    left: 15%;
    position: absolute;
    right: 15%;
    top: 0;
}

.portal-auth-heading { margin-top: 25px; }
.portal-auth-heading h2, .portal-registration-card h2 { text-shadow: 0 0 24px rgba(0, 214, 163, .08); }
.portal-auth-form .portal-button-primary { min-height: 54px; }
.portal-form-field input {
    background: rgba(2, 14, 20, .5);
    border-color: rgba(137, 194, 191, .24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}
.portal-form-field input:hover { border-color: rgba(0, 214, 163, .42); }
.portal-auth-divider { margin-top: 28px; }
.portal-ums-login { background: rgba(0, 214, 163, .06); min-height: 52px; }
.portal-auth-note { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .64rem; }
.portal-alert { background: rgba(0, 214, 163, .08); border: 1px solid rgba(0, 214, 163, .2); }

.portal-registration-shell {
    background: transparent;
    min-height: calc(100vh - 82px);
}

.portal-registration-intro { position: relative; }
.portal-registration-intro::after {
    background: linear-gradient(var(--iics-green), transparent);
    content: "";
    height: 190px;
    opacity: .4;
    position: absolute;
    right: -32px;
    top: 0;
    width: 1px;
}

.portal-registration-card {
    background: linear-gradient(145deg, rgba(13, 42, 52, .8), rgba(4, 21, 30, .84));
    border-color: rgba(0, 214, 163, .22);
    border-radius: 18px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .05);
    overflow: hidden;
    padding: 38px;
    position: relative;
    backdrop-filter: blur(24px);
}

.portal-wizard-progress {
    background: rgba(2, 14, 20, .34);
    border: 1px solid rgba(0, 214, 163, .12);
    border-radius: 10px;
    padding: 12px 15px;
}

.portal-registration-callout,
.portal-review-list {
    background: rgba(2, 14, 20, .34);
    border: 1px solid rgba(0, 214, 163, .16);
}

.portal-registration-callout-gold { border-color: rgba(243, 201, 99, .2); }
.portal-review-list { border-radius: 10px; }
.portal-review-list > div { padding: 15px 16px; }

.portal-subpage { min-height: 100vh; }
.portal-subpage .portal-page-hero {
    background: linear-gradient(120deg, rgba(3, 16, 23, .94), rgba(8, 49, 55, .78)), radial-gradient(circle at 88% 10%, rgba(0, 214, 163, .2), transparent 30%);
    overflow: hidden;
}

.portal-subpage .portal-page-hero::after {
    background: linear-gradient(90deg, transparent, rgba(0, 214, 163, .42), transparent);
    bottom: 0;
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    right: 0;
}

.portal-dashboard-cards { gap: 16px; }
.portal-dashboard-cards > div {
    background: linear-gradient(145deg, rgba(13, 42, 52, .82), rgba(4, 21, 30, .78));
    border: 1px solid rgba(0, 214, 163, .18);
    border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 18px 40px rgba(0, 0, 0, .2);
    overflow: hidden;
    position: relative;
}
.portal-dashboard-cards > div::before { background: var(--iics-green); content: ""; height: 2px; left: 0; position: absolute; right: 0; top: 0; }
.portal-dashboard-cards > div:nth-child(2)::before { background: #4dc9df; }
.portal-dashboard-cards > div:nth-child(3)::before { background: var(--iics-gold); }
.portal-dashboard-cards > div:nth-child(4)::before { background: #9b7bea; }
.portal-dashboard-cards strong { color: var(--iics-white); font-family: var(--iics-display); font-size: 2.25rem; font-weight: 700; }
.portal-dashboard-cards small { color: #86a6aa; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; }

.portal-record-section { background: rgba(3, 16, 23, .62); }
.portal-dashboard-grid > div {
    background: rgba(9, 34, 44, .42);
    border: 1px solid rgba(0, 214, 163, .11);
    border-radius: 14px;
    padding: 23px;
    backdrop-filter: blur(16px);
}
.portal-dashboard-grid .portal-section-heading { margin-bottom: 25px; }
.portal-record-row {
    background: rgba(4, 21, 30, .7);
    border-color: rgba(0, 214, 163, .15);
    border-radius: 9px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}
.portal-record-row:hover { background: rgba(10, 47, 55, .8); border-color: var(--iics-green); box-shadow: 0 0 25px rgba(0, 214, 163, .1); }
.portal-record-row strong { color: #e4f7f2; }
.portal-record-row small { color: #78999e; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; letter-spacing: .03em; }
.portal-record-status { border: 1px solid rgba(0, 214, 163, .22); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .02em; }
.portal-empty-state { background: rgba(4, 21, 30, .56); border-color: rgba(0, 214, 163, .2); }

@media (max-width: 760px) {
    .portal-auth-form-inner { border-radius: 13px; padding: 28px 22px; }
    .portal-registration-intro::after { display: none; }
    .portal-registration-card { border-radius: 13px; padding: 25px 20px; }
    .portal-dashboard-grid > div { padding: 17px; }
}

/* Medium-height subpage hero used across the portal service pages. */
.portal-page-hero.portal-page-hero-compact {
    min-height: 230px;
    padding-bottom: 38px;
    padding-top: 44px;
}

@media (max-width: 760px) {
    .portal-page-hero.portal-page-hero-compact {
        min-height: 0;
        padding-bottom: 32px;
        padding-top: 38px;
    }
}

.portal-applicant-panel {
    background: linear-gradient(145deg, rgba(13, 42, 52, .86), rgba(4, 21, 30, .9));
    border-color: rgba(0, 214, 163, .2);
}
.portal-applicant-panel h2, .portal-applicant-panel dt { color: var(--iics-white); }
.portal-applicant-panel dd { color: #b9eee0; }

/* Light futuristic surfaces with campus imagery used as a soft background shadow. */
:root {
    --iics-navy: #123944;
    --iics-navy-deep: #0b2c36;
    --iics-green: #078c78;
    --iics-green-dark: #056b5c;
    --iics-green-pale: #e4f5ef;
    --iics-gold: #c9952f;
    --iics-gold-pale: #fcf5e6;
    --iics-ink: #17363e;
    --iics-muted: #607a80;
    --iics-surface: #f6fbf9;
    --iics-soft: #edf6f3;
    --iics-line: #cfe3dc;
    --iics-white: #ffffff;
    --iics-shadow: 0 22px 60px rgba(18, 57, 68, .13);
}

.iics-portal { background: var(--iics-surface); color: var(--iics-ink); }
.portal-header { background: rgba(255, 255, 255, .9); border-bottom-color: rgba(207, 227, 220, .9); box-shadow: 0 8px 28px rgba(18, 57, 68, .08); }
.portal-hero {
    background: linear-gradient(112deg, rgba(241, 252, 248, .98), rgba(224, 246, 239, .88)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover;
    color: var(--iics-navy);
}
.portal-hero::before { background: radial-gradient(circle, rgba(0, 181, 145, .18), transparent 66%); }
.portal-hero::after { background-image: linear-gradient(rgba(18, 57, 68, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(18, 57, 68, .06) 1px, transparent 1px); }
.portal-hero h1 { color: var(--iics-navy); text-shadow: 0 10px 28px rgba(18, 57, 68, .1); }
.portal-hero-subtitle { color: var(--iics-green-dark); }
.portal-hero-lede { color: #4c6d72; }
.portal-hero-note { color: #5d7b7e; }
.portal-button-secondary { border-color: rgba(18, 57, 68, .28); color: var(--iics-navy) !important; }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { background: rgba(255, 255, 255, .7); border-color: var(--iics-green); }
.portal-hero-media::before { border-color: rgba(201, 149, 47, .34); }
.portal-hero-media::after { border-color: rgba(7, 140, 120, .28); }
.portal-hero-media img { border-color: rgba(255, 255, 255, .82); box-shadow: 0 30px 80px rgba(18, 57, 68, .24), 0 0 0 14px rgba(7, 140, 120, .07); }
.portal-hero-media-card { background: rgba(255, 255, 255, .96); box-shadow: 0 18px 42px rgba(18, 57, 68, .16); }
.portal-subpage { background: var(--iics-surface); }
.portal-subpage .portal-page-hero { background: linear-gradient(112deg, rgba(241, 252, 248, .97), rgba(226, 247, 240, .86)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; color: var(--iics-navy); position: relative; }
.portal-subpage .portal-page-hero::before { background: url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; content: ''; inset: 0; opacity: .08; pointer-events: none; position: absolute; }
.portal-subpage .portal-page-hero > .portal-container { position: relative; z-index: 1; }
.portal-subpage .portal-page-hero h1 { color: var(--iics-navy); text-shadow: 0 10px 28px rgba(18, 57, 68, .09); }
.portal-subpage .portal-page-hero > .portal-container > p:not(.portal-eyebrow) { color: #4c6d72; }
.portal-subpage .portal-page-hero .portal-header-back { color: var(--iics-green-dark); }
.portal-dashboard-cards > div { background: rgba(255, 255, 255, .92); border-color: var(--iics-line); box-shadow: 0 18px 40px rgba(18, 57, 68, .08); }
.portal-dashboard-cards strong { color: var(--iics-navy); }
.portal-record-section { background: #edf6f3; }
.portal-dashboard-grid > div { background: rgba(255, 255, 255, .82); border-color: rgba(7, 140, 120, .16); box-shadow: 0 18px 40px rgba(18, 57, 68, .07); }
.portal-record-row { background: rgba(255, 255, 255, .94); border-color: var(--iics-line); box-shadow: 0 8px 22px rgba(18, 57, 68, .05); }
.portal-record-row:hover { background: #ffffff; border-color: var(--iics-green); box-shadow: 0 12px 28px rgba(7, 140, 120, .12); }
.portal-record-row strong { color: var(--iics-navy); }
.portal-empty-state { background: rgba(255, 255, 255, .76); border-color: rgba(7, 140, 120, .25); }
.portal-auth-page { background: var(--iics-surface); }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(9, 57, 67, .82), rgba(5, 119, 101, .54) 56%, rgba(5, 119, 101, .2)); }
.portal-auth-form-panel { background: rgba(246, 251, 249, .86); }
.portal-auth-form-inner { background: rgba(255, 255, 255, .84); border: 1px solid rgba(207, 227, 220, .88); border-radius: 18px; box-shadow: 0 24px 60px rgba(18, 57, 68, .1); padding: 34px; }
.portal-registration-shell { background: linear-gradient(135deg, #f0faf6, var(--iics-surface) 48%, #fdf8ec); }
.portal-registration-card { background: rgba(255, 255, 255, .88); border-color: rgba(7, 140, 120, .2); box-shadow: 0 30px 80px rgba(18, 57, 68, .12), inset 0 1px 0 rgba(255, 255, 255, .8); }
.portal-registration-image { box-shadow: 0 22px 48px rgba(18, 57, 68, .16), 0 0 0 10px rgba(7, 140, 120, .06); }
.portal-registration-image::before { background: linear-gradient(transparent, rgba(9, 57, 67, .64)); }

/* Robotic interface palette: electric blue, signal teal and UMS gold. */
:root {
    --iics-blue: #2864f0;
    --iics-blue-deep: #173f9d;
    --iics-blue-pale: #eaf0ff;
    --iics-teal: #069f9a;
    --iics-teal-deep: #067572;
    --iics-teal-pale: #e5f8f5;
    --iics-gold: #d39b28;
    --iics-gold-bright: #edbc45;
}

.portal-header { box-shadow: 0 8px 30px rgba(23, 63, 157, .1); }
.portal-navigation a:hover, .portal-navigation a:focus-visible, .portal-navigation .is-active { color: var(--iics-blue); }
.portal-nav-action { border-color: var(--iics-teal); color: var(--iics-teal-deep) !important; }
.portal-nav-action:hover, .portal-nav-action:focus-visible { background: var(--iics-teal-pale); }
.portal-nav-register { color: var(--iics-blue) !important; }
.portal-nav-logout:hover, .portal-nav-logout:focus-visible { color: var(--iics-blue); }
.portal-brand-copy strong { color: var(--iics-blue-deep); }
.portal-header-back { color: var(--iics-teal-deep); }
.portal-header-back:hover { color: var(--iics-gold); }
.portal-eyebrow { color: var(--iics-gold); text-shadow: 0 0 18px rgba(211, 155, 40, .16); }
.portal-hero {
    background: linear-gradient(112deg, rgba(239, 247, 255, .97), rgba(225, 249, 245, .84)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover;
}
.portal-hero::before { background: radial-gradient(circle, rgba(40, 100, 240, .18), transparent 62%); }
.portal-hero::after { background-image: linear-gradient(rgba(40, 100, 240, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(6, 159, 154, .08) 1px, transparent 1px); }
.portal-hero-subtitle { color: var(--iics-teal-deep); }
.portal-hero-media::before { border-color: rgba(211, 155, 40, .42); }
.portal-hero-media::after { border-color: rgba(40, 100, 240, .35); }
.portal-hero-media img { box-shadow: 0 30px 80px rgba(23, 63, 157, .22), 0 0 0 14px rgba(6, 159, 154, .08); }
.portal-button-primary { background: var(--iics-gold-bright); }
.portal-button-primary:hover, .portal-button-primary:focus-visible { background: #f3ca62; }
.portal-button-outline { border-color: rgba(40, 100, 240, .28); color: var(--iics-blue-deep) !important; }
.portal-button-outline:hover, .portal-button-outline:focus-visible { background: var(--iics-blue-pale); border-color: var(--iics-blue); }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { border-color: var(--iics-blue); }
.portal-trust-strip { background: linear-gradient(110deg, #102f76, #0b5660); }
.portal-trust-grid > div span { color: var(--iics-gold-bright); }
.portal-process-section { background: linear-gradient(130deg, #102f76, #092f3d); }
.portal-service-card { border-color: rgba(40, 100, 240, .15); box-shadow: 0 14px 34px rgba(23, 63, 157, .08); }
.portal-service-card:hover { box-shadow: 0 20px 52px rgba(23, 63, 157, .16), 0 0 0 1px rgba(40, 100, 240, .12); }
.portal-service-obas { --service-accent: var(--iics-teal); }
.portal-service-facility { --service-accent: var(--iics-blue); }
.portal-service-licom { --service-accent: var(--iics-gold); }
.portal-service-commercial { --service-accent: var(--iics-blue-deep); }
.portal-service-obas .portal-service-icon { background: var(--iics-teal-pale); }
.portal-service-facility .portal-service-icon { background: var(--iics-blue-pale); }
.portal-service-licom .portal-service-icon { background: #fff5df; }
.portal-service-commercial .portal-service-icon { background: #e8eeff; }
.portal-subpage .portal-page-hero { background: linear-gradient(112deg, rgba(239, 247, 255, .97), rgba(225, 249, 245, .85)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; }
.portal-subpage .portal-page-hero::before { background-image: linear-gradient(rgba(40, 100, 240, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(6, 159, 154, .08) 1px, transparent 1px), url('/assets/iics_portal/images/iics_public_access_hero.png'); background-size: 42px 42px, 42px 42px, cover; opacity: .12; }
.portal-subpage .portal-page-hero::after { background: linear-gradient(90deg, transparent, rgba(40, 100, 240, .4), rgba(211, 155, 40, .55), transparent); }
.portal-dashboard-cards > div { border-color: rgba(40, 100, 240, .2); }
.portal-dashboard-cards > div::before { background: var(--iics-teal); }
.portal-dashboard-cards > div:nth-child(2)::before { background: var(--iics-blue); }
.portal-dashboard-cards > div:nth-child(3)::before { background: var(--iics-gold); }
.portal-dashboard-cards > div:nth-child(4)::before { background: var(--iics-blue-deep); }
.portal-record-row:hover { border-color: var(--iics-teal); box-shadow: 0 12px 28px rgba(6, 159, 154, .14); }
.portal-record-status { background: var(--iics-teal-pale); border-color: rgba(6, 159, 154, .24); color: var(--iics-teal-deep); }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(16, 47, 118, .78), rgba(6, 117, 114, .54) 56%, rgba(6, 159, 154, .2)); }
.portal-auth-form-inner { box-shadow: 0 24px 60px rgba(23, 63, 157, .12); }
.portal-form-field input:hover { border-color: rgba(40, 100, 240, .45); }
.portal-form-field input:focus { border-color: var(--iics-blue); box-shadow: 0 0 0 3px rgba(40, 100, 240, .12); }
.portal-form-field b, .portal-password-toggle { color: var(--iics-teal); }
.portal-form-status.is-loading { color: var(--iics-blue); }
.portal-form-status.is-success { color: var(--iics-teal-deep); }
.portal-auth-options > a, .portal-auth-create a, .portal-form-help a { color: var(--iics-blue); }
.portal-ums-login { background: rgba(40, 100, 240, .06); border-color: rgba(40, 100, 240, .24); }
.portal-ums-login-icon { background: var(--iics-blue-deep); }
.portal-registration-card { border-color: rgba(40, 100, 240, .2); box-shadow: 0 30px 80px rgba(23, 63, 157, .12), inset 0 1px 0 rgba(255, 255, 255, .8); }
.portal-registration-intro::after { background: linear-gradient(var(--iics-blue), var(--iics-teal), transparent); }
.portal-registration-benefits > div > span:first-child { background: var(--iics-teal-pale); color: var(--iics-teal-deep); }
.portal-wizard-step.is-active, .portal-wizard-step.is-complete { color: var(--iics-blue); }
.portal-wizard-step.is-active span, .portal-wizard-step.is-complete span { background: var(--iics-blue); border-color: var(--iics-blue); }
.portal-wizard-step span { border-color: rgba(40, 100, 240, .35); }
.portal-calendar { border-color: rgba(40, 100, 240, .3); }
.portal-calendar-button { border-color: rgba(40, 100, 240, .32); color: #72a0ff; }
.portal-calendar-button:hover, .portal-calendar-button:focus-visible { border-color: var(--iics-blue); color: #b9ccff; }
.portal-calendar-chip { border-left-color: var(--iics-teal); background: rgba(6, 159, 154, .14); }
.portal-calendar-day:hover, .portal-calendar-day:focus-visible, .portal-calendar-day.is-selected { border-color: var(--iics-blue); }

/* Final UMS teal-green and gold direction. */
:root {
    --iics-blue: #078f82;
    --iics-blue-deep: #075b59;
    --iics-blue-pale: #e5f7f3;
    --iics-teal: #00a98f;
    --iics-teal-deep: #06766b;
    --iics-teal-pale: #e1f7f1;
    --iics-gold: #c99225;
    --iics-gold-bright: #e9b94e;
}

.portal-header { box-shadow: 0 8px 30px rgba(7, 91, 89, .1); }
.portal-hero { background: linear-gradient(112deg, rgba(239, 252, 248, .98), rgba(224, 247, 240, .88)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; }
.portal-hero::before { background: radial-gradient(circle, rgba(0, 169, 143, .2), transparent 62%); }
.portal-hero::after { background-image: linear-gradient(rgba(7, 143, 130, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(201, 146, 37, .08) 1px, transparent 1px); }
.portal-hero-media::after { border-color: rgba(0, 169, 143, .35); }
.portal-hero-media img { box-shadow: 0 30px 80px rgba(7, 91, 89, .22), 0 0 0 14px rgba(0, 169, 143, .08); }
.portal-trust-strip { background: linear-gradient(110deg, #075b59, #0b7770); }
.portal-process-section { background: linear-gradient(130deg, #075b59, #063f47); }
.portal-service-card { border-color: rgba(7, 143, 130, .17); box-shadow: 0 14px 34px rgba(7, 91, 89, .08); }
.portal-service-card:hover { box-shadow: 0 20px 52px rgba(7, 91, 89, .16), 0 0 0 1px rgba(0, 169, 143, .14); }
.portal-service-facility { --service-accent: var(--iics-teal); }
.portal-service-commercial { --service-accent: var(--iics-blue-deep); }
.portal-subpage .portal-page-hero { background: linear-gradient(112deg, rgba(239, 252, 248, .98), rgba(224, 247, 240, .88)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; }
.portal-subpage .portal-page-hero::before { background-image: linear-gradient(rgba(7, 143, 130, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(201, 146, 37, .08) 1px, transparent 1px), url('/assets/iics_portal/images/iics_public_access_hero.png'); }
.portal-subpage .portal-page-hero::after { background: linear-gradient(90deg, transparent, rgba(0, 169, 143, .42), rgba(201, 146, 37, .58), transparent); }
.portal-dashboard-cards > div { border-color: rgba(7, 143, 130, .2); }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(7, 91, 89, .82), rgba(6, 117, 114, .54) 56%, rgba(0, 169, 143, .22)); }
.portal-auth-form-inner { box-shadow: 0 24px 60px rgba(7, 91, 89, .12); }
.portal-form-field input:hover { border-color: rgba(0, 169, 143, .45); }
.portal-form-field input:focus { border-color: var(--iics-teal); box-shadow: 0 0 0 3px rgba(0, 169, 143, .12); }
.portal-registration-card { border-color: rgba(7, 143, 130, .2); box-shadow: 0 30px 80px rgba(7, 91, 89, .12), inset 0 1px 0 rgba(255, 255, 255, .8); }
.portal-registration-intro::after { background: linear-gradient(var(--iics-teal), var(--iics-gold), transparent); }
.portal-calendar { border-color: rgba(0, 169, 143, .3); }
.portal-calendar-button { border-color: rgba(0, 169, 143, .32); color: #54cdb8; }
.portal-calendar-button:hover, .portal-calendar-button:focus-visible { border-color: var(--iics-teal); color: #b7f1e2; }
.portal-calendar-day:hover, .portal-calendar-day:focus-visible, .portal-calendar-day.is-selected { border-color: var(--iics-teal); }

/* Classic UMS theme reset: navy, green, gold, white and neutral surfaces. */
:root {
    --iics-navy: #092c38;
    --iics-navy-deep: #061f2a;
    --iics-green: #087765;
    --iics-green-dark: #055348;
    --iics-green-pale: #e6f3ee;
    --iics-gold: #d2aa50;
    --iics-gold-pale: #fbf4e2;
    --iics-ink: #18313a;
    --iics-muted: #6a7e83;
    --iics-surface: #fcfbf8;
    --iics-soft: #f0f4f1;
    --iics-line: #dbe6e1;
    --iics-white: #ffffff;
    --iics-shadow: 0 22px 60px rgba(9, 44, 56, .12);
}

.iics-portal { background: var(--iics-surface); color: var(--iics-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.portal-header { background: rgba(252, 251, 248, .94); border-bottom: 1px solid rgba(219, 230, 225, .9); box-shadow: 0 8px 28px rgba(9, 44, 56, .05); }
.portal-brand-copy strong { color: var(--iics-green-dark); }
.portal-navigation a:hover, .portal-navigation a:focus-visible, .portal-navigation .is-active { color: var(--iics-green); }
.portal-nav-action { border-color: var(--iics-green); color: var(--iics-green) !important; box-shadow: none; }
.portal-nav-action:hover, .portal-nav-action:focus-visible { background: var(--iics-green-pale); }
.portal-nav-register { color: var(--iics-green) !important; }
.portal-nav-logout:hover, .portal-nav-logout:focus-visible { color: var(--iics-green); }
.portal-header-back { color: var(--iics-green-dark); }
.portal-header-back:hover { color: var(--iics-gold); }
.portal-menu-toggle { background: transparent; border-color: var(--iics-line); color: var(--iics-green); }
.portal-eyebrow { color: var(--iics-gold); font-family: inherit; font-size: .68rem; letter-spacing: .19em; text-shadow: none; }

.portal-hero { background: linear-gradient(120deg, rgba(9, 44, 56, .97), rgba(5, 83, 72, .9)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; color: var(--iics-white); padding: 94px 0 84px; }
.portal-hero::before { background: radial-gradient(circle, rgba(38, 159, 128, .3), transparent 66%); }
.portal-hero::after { background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(to right, transparent, rgba(0, 0, 0, .8) 68%, transparent); opacity: 1; }
.portal-hero-copy::before { display: none; }
.portal-hero h1 { color: var(--iics-white); font-family: var(--iics-display); font-size: clamp(3.2rem, 6vw, 5.7rem); font-weight: 500; letter-spacing: -.065em; text-shadow: none; }
.portal-hero-subtitle { color: #d9bb6c; font-family: var(--iics-display); font-weight: 400; }
.portal-hero-lede { color: rgba(255, 255, 255, .72); }
.portal-hero-note { color: rgba(255, 255, 255, .58); font-family: inherit; font-size: .76rem; letter-spacing: normal; }
.portal-button { border-radius: 999px; font-family: inherit; font-size: .83rem; letter-spacing: .01em; text-transform: none; }
.portal-button-primary { background: var(--iics-gold); box-shadow: none; color: var(--iics-navy-deep) !important; }
.portal-button-primary:hover, .portal-button-primary:focus-visible { background: #e1bf70; box-shadow: none; }
.portal-button-secondary { border-color: rgba(255, 255, 255, .43); color: var(--iics-white) !important; }
.portal-button-secondary:hover, .portal-button-secondary:focus-visible { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .72); }
.portal-button-outline { background: transparent; border-color: var(--iics-line); color: var(--iics-green-dark) !important; }
.portal-button-outline:hover, .portal-button-outline:focus-visible { background: var(--iics-green-pale); border-color: var(--iics-green); }
.portal-hero-media::before { border-color: rgba(210, 170, 80, .4); border-style: solid; }
.portal-hero-media::after { border-color: rgba(111, 208, 180, .3); }
.portal-hero-media img { border: 8px solid rgba(255, 255, 255, .14); border-radius: 22px; box-shadow: 0 28px 70px rgba(0, 0, 0, .28); filter: none; }
.portal-hero-media-card { background: rgba(252, 251, 248, .97); border: 0; border-radius: 13px; box-shadow: 0 18px 42px rgba(0, 0, 0, .25); color: var(--iics-ink); }
.portal-hero-media-card small { color: var(--iics-muted); }
.portal-status-dot { background: #42ad81; box-shadow: 0 0 0 5px rgba(66, 173, 129, .15); }
.portal-trust-strip { background: var(--iics-navy-deep); border: 0; }
.portal-trust-grid > div { border-left-color: rgba(255, 255, 255, .12); }
.portal-trust-grid span { color: #dfbe70; }
.portal-trust-grid strong { color: var(--iics-white); font-family: inherit; }
.portal-trust-grid small { color: rgba(255, 255, 255, .57); }

.portal-section { background: var(--iics-surface); }
.portal-section-heading h2, .portal-help-section h2 { color: var(--iics-navy); font-family: var(--iics-display); font-weight: 500; letter-spacing: -.06em; }
.portal-section-heading > p { color: var(--iics-muted); }
.portal-service-card { background: var(--iics-white); border: 1px solid var(--iics-line); border-top: 4px solid var(--service-accent); border-radius: 16px; box-shadow: 0 12px 32px rgba(9, 44, 56, .05); min-height: 300px; overflow: visible; }
.portal-service-card::after { display: none; }
.portal-service-card:hover { border-color: var(--iics-line); box-shadow: var(--iics-shadow); transform: translateY(-4px); }
.portal-service-icon { background: #eef5f1 !important; border: 0; border-radius: 12px; }
.portal-service-card h3 { color: var(--iics-navy); font-family: var(--iics-display); font-weight: 500; }
.portal-service-card p { color: var(--iics-muted); }
.portal-card-link { font-family: inherit; letter-spacing: normal; text-transform: none; }
.portal-process-section { background: var(--iics-navy); border: 0; }
.portal-process-card { background: transparent; border-color: rgba(255, 255, 255, .14); border-radius: 0; }
.portal-process-card > span { color: var(--iics-gold); font-family: var(--iics-display); }
.portal-process-card h3 { color: var(--iics-white); font-family: var(--iics-display); font-weight: 500; }
.portal-process-card p { color: rgba(255, 255, 255, .62); }
.portal-faq-section { background: var(--iics-soft); }
.portal-faq-grid details { background: var(--iics-white); border-color: var(--iics-line); border-radius: 13px; }
.portal-faq-grid summary { color: var(--iics-navy); font-family: inherit; }
.portal-faq-grid details p { color: var(--iics-muted); }
.portal-help-section { background: var(--iics-gold-pale); }
.portal-help-section p { color: var(--iics-muted); }
.portal-help-box { background: var(--iics-white); border-color: rgba(185, 137, 53, .25); border-radius: 16px; box-shadow: 0 12px 30px rgba(120, 87, 36, .08); }
.portal-help-box strong { color: var(--iics-navy); }
.portal-help-box small { color: var(--iics-muted); }
.portal-help-box a { color: var(--iics-green); }

.portal-subpage .portal-page-hero { background: linear-gradient(120deg, rgba(9, 44, 56, .97), rgba(5, 83, 72, .9)), url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover; color: var(--iics-white); }
.portal-subpage .portal-page-hero::before { background: transparent; opacity: 0; }
.portal-subpage .portal-page-hero::after { background: linear-gradient(90deg, transparent, rgba(0, 119, 101, .42), transparent); }
.portal-subpage .portal-page-hero h1 { color: var(--iics-white); text-shadow: none; }
.portal-subpage .portal-page-hero > .portal-container > p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .68); }
.portal-subpage .portal-page-hero .portal-header-back { color: var(--iics-green); }
.portal-panel, .portal-registration-card { background: var(--iics-white); border-color: var(--iics-line); box-shadow: 0 12px 34px rgba(9, 44, 56, .06); }
.portal-panel h2 { color: var(--iics-navy); }
.portal-panel p, .portal-panel-note { color: var(--iics-muted); }
.portal-record-section { background: var(--iics-soft); }
.portal-dashboard-cards > div, .portal-dashboard-grid > div { background: var(--iics-white); border-color: var(--iics-line); box-shadow: 0 12px 32px rgba(9, 44, 56, .06); }
.portal-dashboard-cards > div::before { background: var(--iics-green); }
.portal-dashboard-cards > div:nth-child(2)::before { background: #3d8aab; }
.portal-dashboard-cards > div:nth-child(3)::before { background: var(--iics-gold); }
.portal-dashboard-cards > div:nth-child(4)::before { background: #7857a3; }
.portal-dashboard-cards strong { color: var(--iics-green-dark); }
.portal-record-row { background: var(--iics-white); border-color: var(--iics-line); box-shadow: none; }
.portal-record-row:hover { background: var(--iics-white); border-color: var(--iics-green); box-shadow: 0 8px 22px rgba(9, 44, 56, .07); }
.portal-record-row strong { color: var(--iics-navy); }
.portal-record-row small { color: var(--iics-muted); font-family: inherit; }
.portal-record-status { background: var(--iics-green-pale); border-color: transparent; color: var(--iics-green-dark); font-family: inherit; }
.portal-empty-state { background: var(--iics-white); border-color: var(--iics-line); }

.portal-auth-page { background: var(--iics-surface); }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(6, 31, 42, .96), rgba(5, 83, 72, .67) 56%, rgba(5, 83, 72, .32)); }
.portal-auth-form-panel { background: transparent; }
.portal-auth-form-inner { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.portal-auth-heading h2, .portal-registration-card h2 { color: var(--iics-navy); }
.portal-form-field { color: var(--iics-navy); }
.portal-form-field input { background: var(--iics-white); border-color: #cfded8; color: var(--iics-ink); }
.portal-form-field input:hover, .portal-form-field input:focus { border-color: var(--iics-green); }
.portal-form-field input:focus { box-shadow: 0 0 0 3px rgba(8, 119, 101, .1); }
.portal-password-toggle { color: var(--iics-green); }
.portal-auth-options > a, .portal-auth-create a, .portal-form-help a { color: var(--iics-green); }
.portal-form-status.is-success { color: var(--iics-green-dark); }
.portal-form-status.is-loading { color: var(--iics-green); }
.portal-ums-login { background: transparent; border-color: var(--iics-line); }
.portal-ums-login-icon { background: var(--iics-green-dark); }

.portal-registration-shell { background: linear-gradient(135deg, #eff6f1, var(--iics-surface) 48%, var(--iics-gold-pale)); }
.portal-registration-card { border-radius: 16px; box-shadow: 0 12px 34px rgba(9, 44, 56, .06); padding: 33px; }
.portal-registration-intro::after { background: linear-gradient(var(--iics-green), transparent); }
.portal-registration-benefits > div > span:first-child { background: var(--iics-green-pale); color: var(--iics-green); }
.portal-wizard-step.is-active, .portal-wizard-step.is-complete { color: var(--iics-green); }
.portal-wizard-step.is-active span, .portal-wizard-step.is-complete span { background: var(--iics-green); border-color: var(--iics-green); }
.portal-registration-image { box-shadow: 0 12px 34px rgba(9, 44, 56, .12); }
.portal-registration-callout { background: var(--iics-green-pale); color: var(--iics-green-dark); }
.portal-registration-callout-gold { background: var(--iics-gold-pale); color: #735a22; }
.portal-review-list { background: var(--iics-white); border-color: var(--iics-line); }
.portal-review-list dt { color: var(--iics-muted); }
.portal-review-list dd { color: var(--iics-navy); }

.portal-applicant-panel { background: var(--iics-white); border-color: var(--iics-line); }
.portal-applicant-panel h2, .portal-applicant-panel dt { color: var(--iics-navy); }
.portal-applicant-panel dd { color: var(--iics-ink); }
.portal-obas-grid > .portal-panel:first-child .portal-eyebrow { color: var(--iics-gold); }

/* Keep the calendar functional while returning it to the original light surface language. */
.portal-calendar-section { background: var(--iics-soft); color: var(--iics-ink); }
.portal-calendar-section .portal-section-heading h2 { color: var(--iics-navy); }
.portal-calendar-section .portal-section-heading > p { color: var(--iics-muted); }
.portal-calendar { background: rgba(255, 255, 255, .94); border-color: var(--iics-line); box-shadow: 0 22px 60px rgba(9, 44, 56, .1); }
.portal-calendar-navigation strong { color: var(--iics-navy); }
.portal-calendar-button { background: var(--iics-green-pale); border-color: var(--iics-line); color: var(--iics-green-dark); }
.portal-calendar-button:hover, .portal-calendar-button:focus-visible { background: var(--iics-green-pale); border-color: var(--iics-green); color: var(--iics-green-dark); }
.portal-calendar-filter span, .portal-calendar-weekdays { color: var(--iics-muted); }
.portal-calendar-filter select { background: var(--iics-white); border-color: var(--iics-line); color: var(--iics-ink); }
.portal-calendar-status { color: var(--iics-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.portal-calendar-status.is-loading { color: var(--iics-green); }
.portal-calendar-status.is-ready { color: var(--iics-green-dark); }
.portal-calendar-status.is-error { color: #b34b4b; }
.portal-calendar-status.is-empty { color: #8a6d2d; }
.portal-calendar-day { background: var(--iics-white); border-color: var(--iics-line); color: var(--iics-ink); }
.portal-calendar-day:hover, .portal-calendar-day:focus-visible, .portal-calendar-day.is-selected { background: var(--iics-green-pale); border-color: var(--iics-green); }

/* Portal-only OBAS application tracking and related documents. */
.portal-obas-detail-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-progress-panel { background: linear-gradient(145deg, rgba(4, 19, 47, .96), rgba(7, 77, 102, .92)); border-color: rgba(18, 169, 155, .38); }
.portal-progress-panel h2, .portal-progress-panel .portal-eyebrow { color: #fff; }
.portal-progress-list { list-style: none; margin: 20px 0 0; padding: 0; }
.portal-progress-step { align-items: center; display: flex; gap: 12px; min-height: 48px; position: relative; }
.portal-progress-step:not(:last-child)::after { background: rgba(255, 255, 255, .2); content: ""; height: 22px; left: 15px; position: absolute; top: 38px; width: 2px; }
.portal-progress-marker { align-items: center; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .26); border-radius: 50%; color: rgba(255, 255, 255, .75); display: inline-flex; flex: 0 0 31px; font-size: .68rem; font-weight: 800; height: 31px; justify-content: center; width: 31px; }
.portal-progress-step strong, .portal-progress-step small { display: block; }
.portal-progress-step strong { color: rgba(255, 255, 255, .72); font-size: .78rem; }
.portal-progress-step small { color: rgba(255, 255, 255, .48); font-size: .66rem; margin-top: 2px; }
.portal-progress-complete .portal-progress-marker { background: var(--iics-green); border-color: var(--iics-green); color: #fff; }
.portal-progress-complete strong, .portal-progress-current strong { color: #fff; }
.portal-progress-current .portal-progress-marker { background: var(--iics-gold); border-color: var(--iics-gold); color: var(--iics-navy); box-shadow: 0 0 0 4px rgba(216, 168, 62, .2); }
.portal-progress-current small { color: #f1ca70; }
.portal-progress-cancelled .portal-progress-marker { background: #b34b4b; border-color: #b34b4b; color: #fff; }
.portal-summary-list { display: grid; gap: 10px; margin: 16px 0 0; }
.portal-summary-list div { align-items: baseline; border-bottom: 1px solid var(--iics-line); display: flex; gap: 16px; justify-content: space-between; padding-bottom: 9px; }
.portal-summary-list div:last-child { border-bottom: 0; padding-bottom: 0; }
.portal-summary-list dt { color: var(--iics-muted); font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.portal-summary-list dd { color: var(--iics-navy); font-size: .78rem; font-weight: 700; margin: 0; text-align: right; }
.portal-related-document + .portal-related-document { border-top: 1px solid var(--iics-line); margin-top: 18px; padding-top: 18px; }
.portal-related-document h2 { font-size: 1rem; }

@media (max-width: 760px) {
  .portal-obas-detail-grid { grid-template-columns: 1fr; }
  .portal-summary-list div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .portal-summary-list dd { text-align: left; }
}

/* Compact futuristic authentication surfaces. */
.portal-auth-page,
.portal-registration-page {
  background: linear-gradient(135deg, #e7f0fb 0%, #f8fbff 48%, #fff5dc 100%);
}
.portal-auth-layout { min-height: 100vh; }
.portal-auth-visual { min-height: 640px; }
.portal-auth-visual-content { padding: 26px clamp(24px, 4vw, 58px); }
.portal-auth-brand img { width: 118px; }
.portal-auth-brand span { font-size: .68rem; }
.portal-auth-welcome { max-width: 420px; padding: 46px 0; }
.portal-auth-welcome h1 {
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 800;
  letter-spacing: -.045em;
}
.portal-auth-welcome p:not(.portal-eyebrow) { font-size: .86rem; line-height: 1.65; }
.portal-auth-form-panel { padding: 24px clamp(18px, 5vw, 60px); }
.portal-auth-form-inner {
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(201, 216, 236, .9);
  border-radius: 16px;
  box-shadow: 0 22px 58px rgba(4, 19, 47, .14), inset 0 1px 0 rgba(255, 255, 255, .9);
  max-width: 410px;
  padding: 24px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.portal-auth-heading { margin: 26px 0 19px; }
.portal-auth-heading h2,
.portal-registration-card h2 {
  font-size: clamp(1.45rem, 2.4vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.12;
}
.portal-auth-heading p:not(.portal-eyebrow),
.portal-form-intro { font-size: .76rem; line-height: 1.55; }
.portal-form-field { font-size: .7rem; font-weight: 800; margin-bottom: 12px; }
.portal-form-field > span:first-child { margin-bottom: 5px; }
.portal-form-field input { font-size: .82rem; min-height: 43px; padding: 9px 12px; }
.portal-auth-options { font-size: .68rem; margin: 2px 0 15px; }
.portal-auth-form .portal-button-primary,
.portal-ums-login { min-height: 44px; }
.portal-auth-divider { margin: 17px 0 13px; }
.portal-auth-note { font-size: .66rem; margin: 9px 0 17px; }
.portal-auth-create { font-size: .7rem; padding-top: 15px; }

.portal-registration-shell { padding: 42px 0 55px; }
.portal-registration-grid { gap: 36px; grid-template-columns: minmax(270px, .78fr) minmax(440px, 1fr); }
.portal-registration-intro { padding-top: 4px; }
.portal-registration-intro h1 {
  font-size: clamp(2.25rem, 3.7vw, 3.35rem);
  font-weight: 800;
  letter-spacing: -.045em;
}
.portal-registration-intro > p:not(.portal-eyebrow) { font-size: .82rem; line-height: 1.6; }
.portal-registration-benefits { gap: 12px; margin: 22px 0; }
.portal-registration-benefits strong { font-size: .74rem; font-weight: 800; }
.portal-registration-benefits small { font-size: .68rem; line-height: 1.45; }
.portal-registration-image { min-height: 145px; }
.portal-registration-card {
  background: rgba(255, 255, 255, .8);
  border: 1px solid rgba(40, 100, 240, .18);
  border-radius: 16px;
  box-shadow: 0 22px 58px rgba(4, 19, 47, .13), inset 0 1px 0 rgba(255, 255, 255, .9);
  padding: 24px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.portal-wizard-progress { margin-bottom: 22px; }
.portal-wizard-step strong { font-size: .64rem; font-weight: 800; }
.portal-wizard-step span { height: 24px; width: 24px; }
.portal-wizard-panel h2 { margin-bottom: 7px; }
.portal-wizard-panel > .portal-eyebrow { margin-bottom: 8px; }
.portal-wizard-actions { margin-top: 19px; padding-top: 15px; }
.portal-registration-callout { font-size: .68rem; margin-top: 13px; padding: 10px 11px; }
.portal-review-list { margin: 14px 0 0; }
.portal-registration-success { padding: 14px 0; }

@media (max-width: 760px) {
  .portal-auth-visual { min-height: 260px; }
  .portal-auth-visual-content { padding: 21px 19px; }
  .portal-auth-welcome { margin-top: 28px; padding: 12px 0; }
  .portal-auth-welcome h1 { font-size: 2.35rem; }
  .portal-auth-form-panel { padding: 23px 15px 34px; }
  .portal-auth-form-inner { max-width: 430px; padding: 20px 17px; }
  .portal-registration-shell { padding: 28px 0 40px; }
  .portal-registration-grid { gap: 22px; }
  .portal-registration-intro h1 { font-size: 2.35rem; }
  .portal-registration-card { padding: 20px 17px; }
  .portal-wizard-step strong { display: none; }
}
.portal-calendar-day.is-today .portal-calendar-day-number { background: var(--iics-gold); color: var(--iics-navy-deep); }
.portal-calendar-chip { background: var(--iics-green-pale); border-left-color: var(--iics-green); color: var(--iics-green-dark); }
.portal-calendar-more { color: #8a6d2d; }
.portal-calendar-details { background: var(--iics-white); border-color: var(--iics-line); }
.portal-calendar-details h3 { color: var(--iics-navy); }
.portal-calendar-event { background: var(--iics-green-pale); border-left-color: var(--iics-green); }
.portal-calendar-event strong { color: var(--iics-navy); }
.portal-calendar-event span, .portal-calendar-event small, .portal-calendar-empty { color: var(--iics-muted); }

/* Compact blue / gold glassmorphism theme. Keep this as the final layer so the
   portal can evolve without changing the existing page templates or routes. */
:root {
  --iics-navy: #09234a;
  --iics-navy-deep: #04132f;
  --iics-green: #12a99b;
  --iics-green-dark: #08756e;
  --iics-green-pale: #e2f8f5;
  --iics-gold: #d8a83e;
  --iics-gold-pale: #fff5dc;
  --iics-ink: #142d52;
  --iics-muted: #637895;
  --iics-surface: #edf3fb;
  --iics-soft: #e4edf8;
  --iics-line: #c9d8ec;
  --iics-shadow: 0 20px 55px rgba(4, 19, 47, .14);
}

.iics-portal {
  color: var(--iics-ink);
  background:
    radial-gradient(circle at 8% 5%, rgba(36, 112, 210, .1), transparent 28rem),
    radial-gradient(circle at 95% 12%, rgba(216, 168, 62, .1), transparent 24rem),
    linear-gradient(135deg, #f7fbff 0%, var(--iics-surface) 54%, #fffaf0 100%);
}

.portal-container { width: min(1120px, calc(100% - 44px)); }
.portal-section { padding: 72px 0; }
.portal-section-heading { margin-bottom: 28px; }
.portal-section-heading h2 { font-size: clamp(2rem, 3.5vw, 3rem); letter-spacing: -.035em; }

.portal-header {
  background: rgba(255, 255, 255, .72);
  border-bottom: 1px solid rgba(201, 216, 236, .78);
  box-shadow: 0 8px 28px rgba(4, 19, 47, .07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.portal-header .portal-container { min-height: 68px; }
.portal-brand-mark { filter: drop-shadow(0 4px 10px rgba(4, 19, 47, .16)); }
.portal-brand-text strong { color: var(--iics-navy); }
.portal-brand-text span { color: var(--iics-muted); }
.portal-nav a, .portal-nav-logout { color: var(--iics-ink); }
.portal-nav a:hover, .portal-nav a:focus-visible, .portal-nav-logout:hover, .portal-nav-logout:focus-visible { color: var(--iics-green-dark); }
.portal-nav .portal-nav-login { color: var(--iics-navy); }
.portal-nav .portal-nav-register { background: linear-gradient(135deg, var(--iics-gold), #f1ca70); color: var(--iics-navy-deep); box-shadow: 0 8px 18px rgba(216, 168, 62, .22); }

.portal-hero, .portal-subpage .portal-page-hero {
  position: relative;
  isolation: isolate;
  background:
    linear-gradient(120deg, rgba(4, 19, 47, .94), rgba(9, 35, 74, .82) 52%, rgba(5, 92, 97, .72)),
    url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .12);
}
.portal-hero::before, .portal-subpage .portal-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 82% 18%, rgba(216, 168, 62, .27), transparent 19rem),
    linear-gradient(135deg, transparent 44%, rgba(18, 169, 155, .16) 44%, transparent 70%);
  pointer-events: none;
}
.portal-hero::after, .portal-subpage .portal-page-hero::after {
  background: linear-gradient(90deg, transparent, var(--iics-gold), var(--iics-green), transparent);
  opacity: .9;
}
.portal-hero h1, .portal-subpage .portal-page-hero h1 { color: #fff; letter-spacing: -.045em; text-shadow: 0 8px 24px rgba(4, 19, 47, .25); }
.portal-hero p, .portal-subpage .portal-page-hero > .portal-container > p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .76); }
.portal-hero .portal-eyebrow, .portal-subpage .portal-page-hero .portal-eyebrow { color: #f1ca70; }
.portal-hero .portal-hero-image, .portal-hero img { filter: drop-shadow(0 24px 30px rgba(4, 19, 47, .42)); }
.portal-hero .portal-button-primary, .portal-page-hero .portal-button-primary { background: linear-gradient(135deg, var(--iics-gold), #f2ce76); color: var(--iics-navy-deep); box-shadow: 0 12px 25px rgba(216, 168, 62, .24); }
.portal-hero .portal-button-secondary, .portal-page-hero .portal-button-secondary { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .38); color: #fff; backdrop-filter: blur(12px); }
.portal-hero .portal-button-secondary:hover, .portal-page-hero .portal-button-secondary:hover { background: rgba(255, 255, 255, .18); }
.portal-page-hero { padding: 66px 0 58px; }
.portal-page-hero.portal-page-hero-compact { min-height: 250px; padding: 48px 0 42px; }
.portal-header-back { color: #f1ca70; }

.portal-services-section, .portal-trust-strip { background: transparent; }
.portal-service-grid { gap: 16px; }
.portal-service-card {
  min-height: 230px;
  padding: 20px 18px 18px;
  border: 1px solid rgba(201, 216, 236, .88);
  border-radius: 14px;
  background: rgba(255, 255, 255, .64);
  box-shadow: 0 14px 36px rgba(4, 19, 47, .08), inset 0 1px 0 rgba(255, 255, 255, .75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.portal-service-card:hover { border-color: rgba(18, 169, 155, .6); box-shadow: 0 18px 42px rgba(4, 19, 47, .13), 0 0 0 1px rgba(216, 168, 62, .14); transform: translateY(-4px); }
.portal-service-card h3 { color: var(--iics-navy); }
.portal-service-card p { color: var(--iics-muted); }
.portal-service-card > a { color: var(--iics-green-dark); }
.portal-service-card:nth-child(1) .portal-service-icon { background: linear-gradient(135deg, #d9f7f3, #bcebe5); color: var(--iics-green-dark); }
.portal-service-card:nth-child(2) .portal-service-icon { background: linear-gradient(135deg, #e0ebff, #c6d9fb); color: #2760a8; }
.portal-service-card:nth-child(3) .portal-service-icon { background: linear-gradient(135deg, #fff0c5, #f8d98b); color: #825d13; }
.portal-service-card:nth-child(4) .portal-service-icon { background: linear-gradient(135deg, #e4e7ff, #ccd0fa); color: #4a4e9a; }
.portal-process-section, .portal-trust-strip { background: linear-gradient(135deg, #061a3b, #092f62 58%, #075d63); color: #fff; }
.portal-process-section h2, .portal-trust-strip h2 { color: #fff; }
.portal-process-section p, .portal-trust-strip p { color: rgba(255, 255, 255, .72); }
.portal-process-step, .portal-trust-strip > .portal-container > div { border-color: rgba(255, 255, 255, .15); background: rgba(255, 255, 255, .07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); backdrop-filter: blur(12px); }
.portal-process-step-number { color: #f1ca70; }


.portal-panel, .portal-registration-card, .portal-dashboard-grid > div, .portal-dashboard-cards > div {
  border-color: rgba(201, 216, 236, .9);
  background: rgba(255, 255, 255, .66);
  box-shadow: var(--iics-shadow), inset 0 1px 0 rgba(255, 255, 255, .75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.portal-panel h2, .portal-dashboard-grid h2, .portal-dashboard-cards h2 { color: var(--iics-navy); }
.portal-panel p, .portal-panel-note { color: var(--iics-muted); }
.portal-record-section { background: linear-gradient(135deg, rgba(228, 237, 248, .78), rgba(255, 250, 240, .72)); }
.portal-dashboard-cards > div::before { background: var(--iics-green); }
.portal-dashboard-cards > div:nth-child(2)::before { background: #3c78c4; }
.portal-dashboard-cards > div:nth-child(3)::before { background: var(--iics-gold); }
.portal-dashboard-cards > div:nth-child(4)::before { background: #6d64b3; }
.portal-dashboard-cards strong { color: var(--iics-green-dark); }
.portal-record-row { background: rgba(255, 255, 255, .72); border-color: rgba(201, 216, 236, .86); box-shadow: 0 8px 22px rgba(4, 19, 47, .06); }
.portal-record-row:hover { background: rgba(255, 255, 255, .94); border-color: rgba(18, 169, 155, .64); box-shadow: 0 12px 28px rgba(4, 19, 47, .1); }
.portal-record-row strong { color: var(--iics-navy); }
.portal-record-row small { color: var(--iics-muted); }
.portal-record-status { background: var(--iics-green-pale); color: var(--iics-green-dark); }
.portal-empty-state { background: rgba(255, 255, 255, .58); border-color: var(--iics-line); }

.portal-auth-page { background: linear-gradient(135deg, #e7f0fb, #fff8e8); }
.portal-auth-visual { background: #061a3b; }
.portal-auth-visual-overlay { background: linear-gradient(145deg, rgba(4, 19, 47, .96), rgba(7, 77, 102, .7) 56%, rgba(216, 168, 62, .22)); }
.portal-auth-form-panel { background: transparent; }
.portal-auth-form-inner { padding: 28px; border: 1px solid rgba(201, 216, 236, .9); border-radius: 18px; background: rgba(255, 255, 255, .72); box-shadow: var(--iics-shadow); backdrop-filter: blur(18px); }
.portal-auth-heading h2, .portal-registration-card h2 { color: var(--iics-navy); }
.portal-form-field { color: var(--iics-navy); }
.portal-form-field input { background: rgba(255, 255, 255, .82); border-color: var(--iics-line); color: var(--iics-ink); }
.portal-form-field input:hover, .portal-form-field input:focus { border-color: var(--iics-green); }
.portal-form-field input:focus { box-shadow: 0 0 0 3px rgba(18, 169, 155, .14); }
.portal-password-toggle, .portal-auth-options > a, .portal-auth-create a, .portal-form-help a { color: var(--iics-green-dark); }
.portal-ums-login { background: rgba(255, 255, 255, .45); border-color: var(--iics-line); }
.portal-ums-login-icon { background: linear-gradient(135deg, var(--iics-navy), #2760a8); color: #000; }
.portal-auth-form-inner .portal-button-primary, .portal-registration-card .portal-button-primary { background: linear-gradient(135deg, var(--iics-green), #087c9a); color: #fff; box-shadow: 0 12px 24px rgba(18, 169, 155, .24); }

.portal-registration-shell { background: linear-gradient(135deg, #e7f1fb 0%, #f8fbff 52%, #fff5dc 100%); }
.portal-registration-card { border-radius: 18px; padding: 28px; }
.portal-registration-image { box-shadow: 0 22px 38px rgba(4, 19, 47, .2); filter: saturate(.92) contrast(1.03); }
.portal-registration-callout { background: rgba(226, 248, 245, .78); color: var(--iics-green-dark); border-color: rgba(18, 169, 155, .2); }
.portal-registration-callout-gold { background: rgba(255, 245, 220, .82); color: #735a22; border-color: rgba(216, 168, 62, .22); }
.portal-wizard-step.is-active, .portal-wizard-step.is-complete { color: var(--iics-green-dark); }
.portal-wizard-step.is-active span, .portal-wizard-step.is-complete span { background: var(--iics-green); border-color: var(--iics-green); }
.portal-review-list { background: rgba(255, 255, 255, .65); border-color: var(--iics-line); }
.portal-review-list dt { color: var(--iics-muted); }
.portal-review-list dd { color: var(--iics-navy); }

.portal-applicant-panel { background: rgba(255, 255, 255, .68); border-color: var(--iics-line); }
.portal-applicant-panel h2, .portal-applicant-panel dt { color: var(--iics-navy); }
.portal-applicant-panel dd { color: var(--iics-ink); }
.portal-obas-grid > .portal-panel:first-child .portal-eyebrow { color: var(--iics-green-dark); }

.portal-calendar-section { background: linear-gradient(135deg, #e5eef9, #fff8e8); color: var(--iics-ink); }
.portal-calendar-section .portal-section-heading h2 { color: var(--iics-navy); }
.portal-calendar-section .portal-section-heading > p { color: var(--iics-muted); }
.portal-calendar { background: rgba(255, 255, 255, .66); border-color: rgba(201, 216, 236, .9); box-shadow: var(--iics-shadow); backdrop-filter: blur(16px); }
.portal-calendar-navigation strong { color: var(--iics-navy); }
.portal-calendar-button { background: rgba(226, 248, 245, .82); border-color: var(--iics-line); color: var(--iics-green-dark); }
.portal-calendar-button:hover, .portal-calendar-button:focus-visible { background: var(--iics-green-pale); border-color: var(--iics-green); color: var(--iics-green-dark); }
.portal-calendar-filter span, .portal-calendar-weekdays { color: var(--iics-muted); }
.portal-calendar-filter select { background: rgba(255, 255, 255, .8); border-color: var(--iics-line); color: var(--iics-ink); }
.portal-calendar-status { color: var(--iics-muted); }
.portal-calendar-status.is-loading { color: var(--iics-green-dark); }
.portal-calendar-status.is-ready { color: #2760a8; }
.portal-calendar-status.is-error { color: #b34b4b; }
.portal-calendar-status.is-empty { color: #8a6d2d; }
.portal-calendar-day { background: rgba(255, 255, 255, .7); border-color: var(--iics-line); color: var(--iics-ink); }
.portal-calendar-day:hover, .portal-calendar-day:focus-visible, .portal-calendar-day.is-selected { background: var(--iics-green-pale); border-color: var(--iics-green); }
.portal-calendar-day.is-today .portal-calendar-day-number { background: var(--iics-gold); color: var(--iics-navy-deep); }
.portal-calendar-chip { background: var(--iics-green-pale); border-left-color: var(--iics-green); color: var(--iics-green-dark); }
.portal-calendar-more { color: #8a6d2d; }
.portal-calendar-details { background: rgba(255, 255, 255, .7); border-color: var(--iics-line); }
.portal-calendar-details h3 { color: var(--iics-navy); }
.portal-calendar-event { background: rgba(226, 248, 245, .78); border-left-color: var(--iics-green); }
.portal-calendar-event strong { color: var(--iics-navy); }
.portal-calendar-event span, .portal-calendar-event small, .portal-calendar-empty { color: var(--iics-muted); }

@media (max-width: 760px) {
  .portal-container { width: min(100% - 36px, 560px); }
  .portal-section { padding: 54px 0; }
  .portal-page-hero { padding: 50px 0 42px; }
  .portal-page-hero.portal-page-hero-compact { min-height: 0; padding: 42px 0 36px; }
  .portal-service-card { min-height: 0; padding: 18px 16px 16px; }
  .portal-auth-form-inner, .portal-registration-card { padding: 22px 18px; }
  .portal-hero h1, .portal-subpage .portal-page-hero h1 { font-size: clamp(2.15rem, 11vw, 3.25rem); }
}

/* Services directory: keep the page focused on small, scannable service cards. */
.portal-services-page {
  min-height: 100vh;
}
.portal-services-directory {
  min-height: 100vh;
  padding: 34px 0 52px;
}
.portal-services-directory .portal-container {
  width: min(920px, calc(100% - 44px));
}
.portal-services-heading {
  align-items: center;
  display: flex;
  gap: 24px;
  margin-bottom: 22px;
}
.portal-services-heading > div { flex: 1; }
.portal-services-heading h1 {
  color: var(--iics-navy);
  font-size: clamp(1.8rem, 3.4vw, 2.55rem);
  letter-spacing: -.04em;
  line-height: 1.05;
  margin: 4px 0 0;
}
.portal-services-heading .portal-eyebrow { color: var(--iics-green-dark); margin: 0; }
.portal-services-heading .portal-service-home-link {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 6px;
  margin: 0;
  white-space: nowrap;
}
.portal-services-heading .portal-service-home-link span { font-size: 1rem; line-height: 1; }
.portal-services-page .portal-service-grid {
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.portal-services-page .portal-service-card {
  min-height: 188px;
  padding: 15px 14px 14px;
  border-radius: 12px;
}
.portal-services-page .portal-card-topline { margin-bottom: 12px; }
.portal-services-page .portal-service-icon { height: 36px; width: 36px; }
.portal-services-page .portal-service-card h3 { font-size: 1rem; line-height: 1.2; }
.portal-services-page .portal-service-card p { font-size: .7rem; line-height: 1.45; margin: 8px 0 12px; }
.portal-services-page .portal-card-link { font-size: .62rem; }
.portal-services-page .portal-audience { font-size: .55rem; }

@media (max-width: 980px) {
  .portal-services-page .portal-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .portal-services-directory { padding: 24px 0 40px; }
  .portal-services-directory .portal-container { width: min(100% - 36px, 560px); }
  .portal-services-heading { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 18px; }
  .portal-services-page .portal-service-grid { grid-template-columns: 1fr; }
  .portal-services-page .portal-service-card { min-height: 0; }
}

/* Dashboard hero: compact welcome area so the records appear sooner. */
.portal-dashboard-page > .portal-page-hero.portal-page-hero-compact {
  min-height: 0;
  padding: 28px 0 24px;
}
.portal-dashboard-page > .portal-page-hero h1 {
  font-size: clamp(2rem, 4vw, 3.35rem);
  margin-bottom: 10px;
}
.portal-dashboard-page > .portal-page-hero .portal-hero-actions { margin-top: 16px; }
.portal-dashboard-page > .portal-page-hero .portal-logout-status { min-height: 0; margin: 6px 0 0; }

@media (max-width: 760px) {
  .portal-dashboard-page > .portal-page-hero.portal-page-hero-compact { padding: 28px 0 22px; }
  .portal-dashboard-page > .portal-page-hero h1 { font-size: clamp(1.8rem, 9vw, 2.6rem); }
}

/* Dark glass header for the landing and registration portal shells. */
.portal-header {
  background: linear-gradient(135deg, rgba(4, 19, 47, .9), rgba(9, 35, 74, .82) 58%, rgba(7, 93, 99, .76));
  border-bottom-color: rgba(255, 255, 255, .16);
  box-shadow: 0 12px 34px rgba(4, 19, 47, .24), inset 0 1px 0 rgba(255, 255, 255, .1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.portal-header::after { background: linear-gradient(90deg, transparent, var(--iics-gold), var(--iics-green), transparent); }
.portal-brand-copy { border-left-color: rgba(255, 255, 255, .22); }
.portal-brand-copy strong { color: #fff; }
.portal-brand-copy small { color: rgba(255, 255, 255, .62); }
.portal-navigation a, .portal-nav-logout { color: rgba(255, 255, 255, .78); }
.portal-navigation a:hover, .portal-navigation a:focus-visible, .portal-navigation .is-active,
.portal-nav-logout:hover, .portal-nav-logout:focus-visible { color: #f1ca70; }
.portal-nav-action { border-color: rgba(216, 168, 62, .78); color: #f1ca70 !important; }
.portal-nav-action:hover, .portal-nav-action:focus-visible { background: rgba(216, 168, 62, .14); }
.portal-nav-register { color: #f1ca70 !important; }
.portal-menu-toggle { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .25); color: #f1ca70; }

@media (max-width: 760px) {
  .portal-navigation { background: rgba(4, 19, 47, .96); border-bottom-color: rgba(255, 255, 255, .14); box-shadow: 0 18px 28px rgba(4, 19, 47, .22); }
  .portal-navigation a, .portal-nav-logout { color: rgba(255, 255, 255, .82); }
}

/* Dashboard service launcher: services stay hidden until the user asks for them. */
html.portal-launcher-open { overflow: hidden; }
.portal-service-launcher {
  align-items: center;
  display: grid;
  inset: 0;
  justify-items: center;
  padding: 24px;
  position: fixed;
  z-index: 100;
}
.portal-service-launcher[hidden] { display: none; }
.portal-service-launcher-backdrop {
  background: rgba(3, 13, 34, .72);
  border: 0;
  cursor: pointer;
  inset: 0;
  position: absolute;
  width: 100%;
}
.portal-service-launcher-panel {
  background: linear-gradient(145deg, rgba(12, 39, 83, .96), rgba(5, 25, 58, .94));
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 20px;
  box-shadow: 0 30px 90px rgba(3, 13, 34, .48), inset 0 1px 0 rgba(255, 255, 255, .14);
  color: #fff;
  max-height: min(680px, calc(100vh - 48px));
  max-width: 850px;
  overflow: auto;
  padding: 26px;
  position: relative;
  width: min(100%, 850px);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
.portal-service-launcher-heading {
  align-items: flex-start;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin-bottom: 22px;
}
.portal-service-launcher-heading h2 { color: #fff; font-size: clamp(1.65rem, 3vw, 2.35rem); letter-spacing: -.04em; margin: 3px 0 6px; }
.portal-service-launcher-heading p:not(.portal-eyebrow) { color: rgba(255, 255, 255, .68); font-size: .78rem; line-height: 1.55; margin: 0; max-width: 540px; }
.portal-service-launcher-heading .portal-eyebrow { color: #f1ca70; margin: 0; }
.portal-service-launcher-close {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 1.35rem;
  height: 34px;
  line-height: 1;
  width: 34px;
}
.portal-service-launcher-close:hover, .portal-service-launcher-close:focus-visible { background: rgba(216, 168, 62, .2); border-color: #f1ca70; color: #f1ca70; }
.portal-service-launcher-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-service-launcher-card {
  align-items: center;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 13px;
  color: #fff;
  display: flex;
  gap: 12px;
  min-height: 78px;
  padding: 13px;
  text-decoration: none;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.portal-service-launcher-card:hover, .portal-service-launcher-card:focus-visible { background: rgba(255, 255, 255, .14); border-color: rgba(216, 168, 62, .72); color: #fff; transform: translateY(-2px); }
.portal-service-launcher-card .portal-service-icon { flex: 0 0 auto; height: 38px; width: 38px; }
.portal-service-launcher-card strong, .portal-service-launcher-card small { display: block; }
.portal-service-launcher-card strong { font-size: .82rem; line-height: 1.3; }
.portal-service-launcher-card small { color: rgba(255, 255, 255, .6); font-size: .64rem; margin-top: 4px; }
.portal-service-launcher-arrow { color: #f1ca70; font-size: 1.1rem; margin-left: auto; }
.portal-service-launcher-directory { color: #f1ca70; display: inline-block; font-size: .7rem; font-weight: 800; margin-top: 20px; text-decoration: none; }
.portal-service-launcher-directory:hover { color: #fff; text-decoration: underline; }

.portal-access-prompt { z-index: 120; }
.portal-access-prompt .portal-service-launcher-panel { max-width: 600px; }
.portal-access-prompt-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.portal-access-prompt-actions .portal-button { min-height: 44px; }
.portal-access-prompt-actions .portal-button-outline { border-color: rgba(255, 255, 255, .3); color: #fff !important; }
.portal-access-prompt-actions .portal-button-outline:hover,
.portal-access-prompt-actions .portal-button-outline:focus-visible { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .7); }

@media (max-width: 620px) {
  .portal-service-launcher { padding: 14px; }
  .portal-service-launcher-panel { border-radius: 16px; padding: 20px 16px; }
  .portal-service-launcher-grid { grid-template-columns: 1fr; }
  .portal-access-prompt-actions .portal-button { width: 100%; }
}

/* Compact shared container rhythm: reduce empty vertical space without clipping content. */
.portal-container { height: auto; min-height: 0; }
.portal-header-inner { min-height: 62px; }
.portal-section { padding-bottom: 56px; padding-top: 56px; }
.portal-page-hero { padding-bottom: 46px; padding-top: 54px; }
.portal-page-hero.portal-page-hero-compact { min-height: 0; padding-bottom: 24px; padding-top: 26px; }
.portal-process-section { padding-bottom: 42px; padding-top: 42px; }
.portal-help-section { padding-bottom: 36px; padding-top: 36px; }

@media (max-width: 760px) {
  .portal-header-inner { min-height: 58px; }
  .portal-section { padding-bottom: 42px; padding-top: 42px; }
  .portal-page-hero { padding-bottom: 38px; padding-top: 42px; }
  .portal-page-hero.portal-page-hero-compact { padding-bottom: 18px; padding-top: 22px; }
  .portal-process-section { padding-bottom: 34px; padding-top: 34px; }
  .portal-help-section { padding-bottom: 30px; padding-top: 30px; }
}

/* Shorter guide and contact/help bands on the landing page. */
.portal-process-section {
  padding: 48px 0;
}
.portal-process-section .portal-section-heading { margin-bottom: 22px; }
.portal-process-card {
  min-height: 142px;
  padding: 17px 18px;
}
.portal-process-card h3 { margin: 14px 0 6px; }
.portal-process-card p { line-height: 1.5; }
.portal-help-section {
  padding: 42px 0;
}
.portal-help-grid { gap: 28px; }
.portal-help-section h2 { font-size: clamp(1.8rem, 3.2vw, 2.65rem); }
.portal-help-section p { font-size: .8rem; line-height: 1.55; }
.portal-help-box {
  gap: 12px;
  padding: 16px 18px;
}
.portal-help-box small { line-height: 1.5; }

@media (max-width: 760px) {
  .portal-process-section { padding: 38px 0; }
  .portal-process-section .portal-section-heading { margin-bottom: 20px; }
  .portal-help-section { padding: 34px 0; }
}

/* Dashboard workspace polish: clearer live status and stronger information hierarchy. */
.portal-dashboard-insight {
  align-items: center;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  color: rgba(255, 255, 255, .78);
  display: inline-flex;
  font-size: .68rem;
  gap: 10px;
  margin-top: 14px;
  padding: 7px 12px;
  backdrop-filter: blur(10px);
}
.portal-dashboard-insight .portal-status-dot { background: #7ce2b9; box-shadow: 0 0 0 4px rgba(124, 226, 185, .14), 0 0 16px rgba(124, 226, 185, .46); }
.portal-dashboard-page .portal-hero-actions { margin-top: 14px; }
.portal-dashboard-page .portal-compact-section { padding-bottom: 42px; padding-top: 38px; }
.portal-dashboard-page .portal-dashboard-cards { gap: 14px; }
.portal-dashboard-page .portal-dashboard-cards > div {
  min-height: 92px;
  padding: 17px 18px;
}
.portal-dashboard-page .portal-dashboard-cards small { font-size: .62rem; letter-spacing: .08em; }
.portal-dashboard-page .portal-record-section { padding-bottom: 54px; padding-top: 54px; }
.portal-dashboard-page .portal-dashboard-grid { gap: 18px; }
.portal-dashboard-page .portal-dashboard-grid > div { border-radius: 16px; padding: 22px; }
.portal-dashboard-page .portal-dashboard-grid .portal-section-heading { margin-bottom: 20px; }
.portal-dashboard-page .portal-dashboard-grid .portal-section-heading h2 { font-size: clamp(1.55rem, 2.6vw, 2.15rem); }

@media (max-width: 760px) {
  .portal-dashboard-insight { border-radius: 12px; line-height: 1.35; }
  .portal-dashboard-page .portal-compact-section { padding-bottom: 34px; padding-top: 30px; }
  .portal-dashboard-page .portal-record-section { padding-bottom: 40px; padding-top: 40px; }
  .portal-dashboard-page .portal-dashboard-grid > div { padding: 18px; }
}

.portal-dashboard-profile {
  align-items: center;
  background: rgba(255, 255, 255, .86);
  border: 1px solid var(--iics-line);
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(9, 44, 56, .06);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(230px, 1.1fr) minmax(260px, 1fr) auto;
  margin-bottom: 18px;
  padding: 20px 22px;
}

.portal-dashboard-profile-identity {
  align-items: center;
  display: flex;
  gap: 13px;
  min-width: 0;
}

.portal-dashboard-profile-avatar {
  align-items: center;
  background: linear-gradient(135deg, var(--iics-teal, var(--iics-green)), var(--iics-blue, var(--iics-green-dark)));
  border-radius: 13px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 46px;
  font-size: 1.15rem;
  font-weight: 800;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.portal-dashboard-profile .portal-eyebrow { margin-bottom: 3px; }
.portal-dashboard-profile h2 { color: var(--iics-navy); font-size: 1.2rem; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-dashboard-profile-identity small { color: var(--iics-muted); display: block; font-size: .7rem; margin-top: 3px; }
.portal-dashboard-profile-details { display: grid; gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.portal-dashboard-profile-details div { min-width: 0; }
.portal-dashboard-profile-details dt { color: var(--iics-muted); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.portal-dashboard-profile-details dd { color: var(--iics-ink); font-size: .78rem; margin: 2px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-dashboard-profile-link { color: var(--iics-green-dark); font-size: .72rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.portal-dashboard-profile-link:hover, .portal-dashboard-profile-link:focus-visible { color: var(--iics-blue, var(--iics-green)); text-decoration: underline; }

@media (max-width: 760px) {
  .portal-dashboard-profile { align-items: stretch; grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .portal-dashboard-profile-details { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 420px) {
  .portal-dashboard-profile-details { grid-template-columns: 1fr; }
}

.portal-dashboard-home-link,
.portal-home-icon-link {
  flex: 0 0 46px;
  padding-left: 0;
  padding-right: 0;
  width: 46px;
}
.portal-dashboard-home-link svg,
.portal-home-icon-link svg { display: inline-block; fill: none; flex: 0 0 auto; height: 17px; overflow: visible; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 17px; }

@media (max-width: 420px) {
  .portal-dashboard-home-link,
  .portal-home-icon-link { width: 46px; }
}

/* Medium service-page heading, including the OBAS hero. */
.portal-subpage .portal-page-hero h1 {
  font-size: clamp(2.1rem, 3.6vw, 3.25rem);
}

@media (max-width: 760px) {
  .portal-subpage .portal-page-hero h1 {
    font-size: 2.25rem;
  }
}

/* Compact futuristic glass login surface. */
.portal-auth-page {
  min-height: 100vh;
  overflow: hidden;
}
.portal-auth-layout {
  grid-template-columns: minmax(320px, .9fr) minmax(400px, 1.1fr);
  min-height: min(760px, 100vh);
}
.portal-auth-visual { min-height: 620px; }
.portal-auth-visual-content { padding: 28px clamp(24px, 4vw, 58px); }
.portal-auth-brand img { width: 124px; }
.portal-auth-welcome { padding: 36px 0; }
.portal-auth-welcome h1 { font-size: clamp(2.35rem, 4vw, 3.8rem); }
.portal-auth-form-panel { padding: 24px clamp(20px, 4vw, 60px); }
.portal-auth-form-inner {
  background: linear-gradient(145deg, rgba(255, 255, 255, .78), rgba(236, 245, 255, .58));
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(4, 19, 47, .18), inset 0 1px 0 rgba(255, 255, 255, .9), 0 0 28px rgba(40, 100, 240, .08);
  max-width: 420px;
  padding: 26px 28px;
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}
.portal-auth-heading { margin: 18px 0 20px; }
.portal-auth-heading h2 { font-size: clamp(1.7rem, 2.6vw, 2.25rem); }
.portal-form-field { margin-bottom: 13px; }
.portal-form-field > span:first-child { margin-bottom: 5px; }
.portal-form-field input { min-height: 44px; padding: 10px 13px; }
.portal-auth-options { margin-bottom: 16px; }
.portal-auth-form .portal-button-primary { min-height: 48px; }
.portal-auth-divider { margin: 18px 0 13px; }
.portal-ums-login { min-height: 46px; }
.portal-auth-note { margin: 10px 0 20px; }
.portal-auth-create { padding-top: 16px; }

@media (max-width: 760px) {
  .portal-auth-layout { display: block; min-height: 0; }
  .portal-auth-visual { min-height: 270px; }
  .portal-auth-visual-content { padding: 22px 20px; }
  .portal-auth-welcome { padding: 18px 0; }
  .portal-auth-welcome h1 { font-size: 2.35rem; }
  .portal-auth-form-panel { padding: 26px 16px 36px; }
  .portal-auth-form-inner { max-width: 440px; padding: 20px 18px; }
}

/* Final compact overrides for the login and registration cards. */
.portal-auth-form-inner {
  background: rgba(255, 255, 255, .78);
  border: 1px solid rgba(201, 216, 236, .9);
  border-radius: 16px;
  box-shadow: 0 22px 58px rgba(4, 19, 47, .14), inset 0 1px 0 rgba(255, 255, 255, .9);
  max-width: 410px;
  padding: 24px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.portal-auth-heading { margin: 26px 0 19px; }
.portal-auth-heading h2,
.portal-registration-card h2 { font-size: clamp(1.45rem, 2.4vw, 1.9rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.12; }
.portal-auth-welcome h1, .portal-registration-intro h1 { font-weight: 800; }
.portal-auth-welcome h1 { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.portal-auth-heading p:not(.portal-eyebrow), .portal-form-intro { font-size: .76rem; line-height: 1.55; }
.portal-form-field { font-size: .7rem; font-weight: 800; margin-bottom: 12px; }
.portal-form-field input { font-size: .82rem; min-height: 43px; padding: 9px 12px; }
.portal-auth-form .portal-button-primary, .portal-ums-login { min-height: 44px; }
.portal-registration-shell { padding: 42px 0 55px; }
.portal-registration-grid { gap: 36px; grid-template-columns: minmax(270px, .78fr) minmax(440px, 1fr); }
.portal-registration-intro h1 { font-size: clamp(2.25rem, 3.7vw, 3.35rem); letter-spacing: -.045em; }
.portal-registration-intro > p:not(.portal-eyebrow) { font-size: .82rem; line-height: 1.6; }
.portal-registration-benefits { gap: 12px; margin: 22px 0; }
.portal-registration-benefits strong { font-size: .74rem; font-weight: 800; }
.portal-registration-benefits small { font-size: .68rem; line-height: 1.45; }
.portal-registration-image { min-height: 145px; }
.portal-registration-card { border-radius: 16px; padding: 24px; }
.portal-wizard-progress { margin-bottom: 22px; }
.portal-wizard-step strong { font-size: .64rem; font-weight: 800; }
.portal-wizard-panel h2 { margin-bottom: 7px; }
.portal-wizard-actions { margin-top: 19px; padding-top: 15px; }
.portal-registration-callout { font-size: .68rem; margin-top: 13px; padding: 10px 11px; }

@media (max-width: 760px) {
  .portal-auth-form-inner { max-width: 430px; padding: 20px 17px; }
  .portal-auth-welcome { margin-top: 28px; padding: 12px 0; }
  .portal-auth-welcome h1, .portal-registration-intro h1 { font-size: 2.35rem; }
  .portal-auth-form-panel { padding: 23px 15px 34px; }
  .portal-registration-shell { padding: 28px 0 40px; }
  .portal-registration-grid { gap: 22px; grid-template-columns: 1fr; }
  .portal-registration-card { padding: 20px 17px; }
  .portal-wizard-step strong { display: none; }
}

/* Light glass finish for authentication cards. */
.portal-auth-page { background: linear-gradient(135deg, #eef6ff 0%, #f9fcff 52%, #fff8e8 100%); }
.portal-auth-form-panel {
  background-image: linear-gradient(rgba(242, 249, 255, .78), rgba(255, 250, 235, .82)), url('/assets/iics_portal/images/iics_login_futuristic_ums.png');
  background-position: center;
  background-size: cover;
}
.portal-auth-form-inner,
.portal-registration-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(238, 247, 255, .78));
  border-color: rgba(133, 177, 224, .35);
  box-shadow: 0 20px 48px rgba(25, 77, 132, .12), inset 0 1px 0 rgba(255, 255, 255, .96), 0 0 26px rgba(40, 100, 240, .06);
}
.portal-auth-heading h2, .portal-registration-card h2 { color: #173764; }
.portal-auth-heading p:not(.portal-eyebrow) { color: #294d78; font-size: .78rem; font-weight: 700; line-height: 1.55; }
.portal-form-intro { color: #5c7190; }
.portal-form-field { color: #173764; }
.portal-form-field input { background: rgba(255, 255, 255, .88); border-color: rgba(133, 177, 224, .5); color: #173764; }
.portal-form-field input::placeholder { color: #8ca1ba; }
.portal-registration-intro h1 { color: #173764; }
.portal-registration-intro > p:not(.portal-eyebrow) { color: #5c7190; }

/* Keep registration visually consistent with the light futuristic login view. */
.portal-registration-page { background: #eef6ff; }
.portal-registration-shell {
  background-image: linear-gradient(rgba(238, 247, 255, .84), rgba(255, 249, 232, .86)), url('/assets/iics_portal/images/iics_login_futuristic_ums.png');
  background-position: center;
  background-size: cover;
}
.portal-registration-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(237, 247, 255, .78));
  border-color: rgba(133, 177, 224, .4);
  box-shadow: 0 22px 58px rgba(25, 77, 132, .14), inset 0 1px 0 rgba(255, 255, 255, .96);
}
.portal-registration-intro h1,
.portal-registration-card h2,
.portal-wizard-panel h2 { font-weight: 800; }
.portal-registration-benefits strong,
.portal-wizard-step strong,
.portal-wizard-actions .portal-button { font-weight: 800; }
.portal-registration-card,
.portal-registration-card h2,
.portal-registration-card .portal-form-field,
.portal-registration-card .portal-form-intro,
.portal-registration-card .portal-form-help,
.portal-registration-card .portal-review-list dt,
.portal-registration-card .portal-review-list dd { color: #111827; }
.portal-registration-card .portal-form-field input { color: #111827; }
.portal-registration-card .portal-registration-callout,
.portal-registration-card .portal-registration-callout p { color: #111827; }

/* Futuristic enterprise dashboard ------------------------------------------------ */
.portal-dashboard-futuristic {
  --future-bg: #030b1b;
  --future-sidebar: #061327;
  --future-card: #091a32;
  --future-blue: #168bff;
  --future-cyan: #00d9ff;
  --future-purple: #8855ff;
  --future-green: #00d9a3;
  --future-gold: #ffbd59;
  --future-text: #f4f8ff;
  --future-muted: #9cb3d1;
  --future-border: #1d3c60;
  background: var(--future-bg);
  color: var(--future-text);
  min-height: 100vh;
  margin: -24px -15px 0;
  overflow: hidden;
  position: relative;
}
.portal-dashboard-futuristic::before {
  background-image: linear-gradient(rgba(22, 139, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(22, 139, 255, .035) 1px, transparent 1px);
  background-size: 42px 42px;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.portal-dashboard-futuristic a { color: inherit; }
.portal-future-shell { display: grid; grid-template-columns: 246px minmax(0, 1fr); min-height: 100vh; position: relative; z-index: 1; }
.portal-future-sidebar { background: linear-gradient(180deg, rgba(6, 19, 39, .98), rgba(3, 11, 27, .96)); border-right: 1px solid rgba(29, 60, 96, .76); display: flex; flex-direction: column; min-height: 100vh; padding: 25px 14px 18px; position: sticky; top: 0; z-index: 20; }
.portal-future-brand { border-bottom: 1px solid rgba(156, 179, 209, .12); margin-bottom: 29px; padding: 0 10px 23px; }
.portal-future-brand a { align-items: center; display: flex; gap: 11px; text-decoration: none; }
.portal-future-brand strong { color: var(--future-text); display: block; font-size: 1.08rem; letter-spacing: .17em; line-height: 1; }
.portal-future-brand small { color: var(--future-muted); display: block; font-size: .48rem; letter-spacing: .19em; margin-top: 6px; }
.portal-future-brand-mark { display: grid; gap: 3px; grid-template-columns: repeat(3, 5px); height: 23px; transform: skew(-19deg); width: 24px; }
.portal-future-brand-mark span { background: var(--future-cyan); border-radius: 2px; box-shadow: 0 0 11px rgba(0, 217, 255, .7); display: block; height: 23px; }
.portal-future-brand-mark span:nth-child(2) { background: var(--future-blue); height: 18px; margin-top: 5px; }
.portal-future-brand-mark span:nth-child(3) { background: var(--future-gold); height: 12px; margin-top: 11px; }
.portal-future-nav { display: flex; flex: 1; flex-direction: column; gap: 5px; }
.portal-future-nav-label { color: #5d789d; font-size: .55rem; font-weight: 800; letter-spacing: .16em; margin: 0 11px 8px; text-transform: uppercase; }
.portal-future-nav-label-lower { margin-top: 25px; }
.portal-future-nav a, .portal-future-sidebar-bottom a, .portal-future-sidebar-bottom button { align-items: center; background: transparent; border: 0; border-radius: 9px; color: var(--future-muted); display: flex; font: inherit; font-size: .78rem; gap: 13px; padding: 11px 12px; text-align: left; text-decoration: none; transition: background .18s ease, color .18s ease, transform .18s ease; width: 100%; }
.portal-future-nav a:hover, .portal-future-sidebar-bottom a:hover, .portal-future-sidebar-bottom button:hover { background: rgba(22, 139, 255, .11); color: var(--future-text); transform: translateX(2px); }
.portal-future-nav a.is-active { background: linear-gradient(90deg, rgba(22, 139, 255, .22), rgba(22, 139, 255, .04)); box-shadow: inset 3px 0 var(--future-blue), 0 0 20px rgba(22, 139, 255, .08); color: var(--future-text); }
.portal-nav-icon { align-items: center; color: var(--future-cyan); display: inline-flex; font-size: 1rem; height: 19px; justify-content: center; width: 19px; }
.portal-future-nav-count { align-items: center; background: var(--future-cyan); border-radius: 10px; color: #021221; display: inline-flex; font-size: .58rem; height: 17px; justify-content: center; margin-left: auto; min-width: 17px; padding: 0 5px; }
.portal-future-sidebar-bottom { border-top: 1px solid rgba(156, 179, 209, .12); padding-top: 13px; }
.portal-future-sidebar-bottom button { cursor: pointer; }
.portal-future-main { min-width: 0; }
.portal-future-topbar { align-items: center; background: rgba(3, 11, 27, .82); border-bottom: 1px solid rgba(29, 60, 96, .7); display: flex; gap: 20px; min-height: 76px; padding: 15px clamp(20px, 4vw, 52px); position: sticky; top: 0; z-index: 15; }
.portal-future-menu-toggle { background: transparent; border: 1px solid var(--future-border); border-radius: 8px; color: var(--future-text); cursor: pointer; display: none; font-size: 1rem; height: 38px; width: 38px; }
.portal-future-search { align-items: center; background: rgba(9, 26, 50, .72); border: 1px solid rgba(29, 60, 96, .85); border-radius: 8px; color: var(--future-muted); display: flex; gap: 10px; max-width: 410px; padding: 0 13px; width: 100%; }
.portal-future-search span { color: var(--future-cyan); font-size: 1.2rem; }
.portal-future-search input { background: transparent; border: 0; color: var(--future-text); font: inherit; font-size: .75rem; min-height: 40px; outline: 0; width: 100%; }
.portal-future-search input::placeholder { color: #6f88a8; }
.portal-future-topbar-actions { align-items: center; display: flex; gap: 18px; margin-left: auto; }
.portal-future-notification { align-items: center; color: var(--future-muted); display: inline-flex; font-size: 1.35rem; position: relative; text-decoration: none; }
.portal-future-notification b { align-items: center; background: var(--future-cyan); border: 2px solid var(--future-bg); border-radius: 10px; color: #021221; display: flex; font-size: .52rem; height: 17px; justify-content: center; min-width: 17px; position: absolute; right: -8px; top: -6px; }
.portal-future-user-menu { position: relative; }
.portal-future-user-menu summary { align-items: center; cursor: pointer; display: flex; gap: 9px; list-style: none; }
.portal-future-user-menu summary::-webkit-details-marker { display: none; }
.portal-future-avatar { align-items: center; background: linear-gradient(135deg, var(--future-blue), var(--future-purple)); border: 1px solid rgba(0, 217, 255, .65); border-radius: 50%; box-shadow: 0 0 15px rgba(22, 139, 255, .3); color: white; display: inline-flex; font-size: .75rem; font-weight: 800; height: 34px; justify-content: center; width: 34px; }
.portal-future-user-copy { display: flex; flex-direction: column; gap: 2px; }
.portal-future-user-copy strong { color: var(--future-text); font-size: .72rem; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-future-user-copy small { color: var(--future-muted); font-size: .58rem; }
.portal-future-user-menu summary > span:last-child { color: var(--future-muted); font-size: .8rem; }
.portal-future-user-dropdown { background: #0b213d; border: 1px solid var(--future-border); border-radius: 10px; box-shadow: 0 18px 36px rgba(0, 0, 0, .32); min-width: 150px; padding: 7px; position: absolute; right: 0; top: calc(100% + 12px); z-index: 30; }
.portal-future-user-dropdown a, .portal-future-user-dropdown button { background: transparent; border: 0; border-radius: 6px; color: var(--future-muted); display: block; font: inherit; font-size: .7rem; padding: 9px 10px; text-align: left; text-decoration: none; width: 100%; }
.portal-future-user-dropdown a:hover, .portal-future-user-dropdown button:hover { background: rgba(22, 139, 255, .12); color: var(--future-text); }
.portal-future-user-dropdown button { cursor: pointer; }
.portal-future-content { margin: 0 auto; max-width: 1560px; padding: 32px clamp(20px, 4vw, 52px) 56px; }
.portal-future-hero { background: linear-gradient(105deg, rgba(7, 29, 58, .97), rgba(6, 25, 49, .82) 54%, rgba(6, 25, 49, .45)), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; border: 1px solid rgba(29, 60, 96, .9); border-radius: 16px; box-shadow: 0 20px 52px rgba(0, 0, 0, .22), inset 0 1px rgba(255, 255, 255, .06); min-height: 258px; overflow: hidden; padding: 40px clamp(25px, 5vw, 66px); position: relative; }
.portal-future-hero::before { background: radial-gradient(circle, rgba(0, 217, 255, .13) 0 1px, transparent 2px); background-size: 22px 22px; content: ""; inset: 0; opacity: .3; pointer-events: none; position: absolute; }
.portal-future-hero-copy { position: relative; z-index: 2; }
.portal-future-kicker { color: var(--future-cyan); font-size: .57rem; font-weight: 800; letter-spacing: .18em; margin: 0 0 11px; text-transform: uppercase; }
.portal-future-kicker span { background: var(--future-cyan); border-radius: 50%; box-shadow: 0 0 10px var(--future-cyan); display: inline-block; height: 6px; margin-right: 5px; width: 6px; }
.portal-future-hero h1 { color: var(--future-text); font-size: clamp(2rem, 4vw, 3.35rem); letter-spacing: -.045em; line-height: 1; margin: 0 0 13px; }
.portal-future-hero-copy > p:not(.portal-future-kicker) { color: var(--future-muted); font-size: .94rem; margin: 0; }
.portal-future-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 27px; }
.portal-future-button { align-items: center; border: 1px solid transparent; border-radius: 7px; display: inline-flex; font-size: .7rem; font-weight: 800; gap: 10px; justify-content: center; min-height: 38px; padding: 0 16px; text-decoration: none; transition: box-shadow .2s ease, transform .2s ease, background .2s ease; }
.portal-future-button:hover { transform: translateY(-2px); }
.portal-future-button-primary { background: linear-gradient(135deg, var(--future-blue), #0c68dd); box-shadow: 0 7px 20px rgba(22, 139, 255, .25); color: #fff !important; }
.portal-future-button-primary:hover { box-shadow: 0 9px 26px rgba(22, 139, 255, .45); }
.portal-future-button-ghost { border-color: rgba(156, 179, 209, .32); color: var(--future-text); }
.portal-future-button-ghost:hover { background: rgba(255, 255, 255, .06); }
.portal-future-hero-orbit { height: 210px; opacity: .9; position: absolute; right: 10%; top: 28px; width: 230px; }
.portal-orbit-core { align-items: center; background: linear-gradient(145deg, #1079e7, #0c345e); border: 1px solid rgba(0, 217, 255, .8); border-radius: 50%; box-shadow: 0 0 34px rgba(0, 217, 255, .28), inset 0 0 20px rgba(255, 255, 255, .14); color: white; display: flex; font-size: .8rem; font-weight: 800; height: 70px; justify-content: center; left: 80px; letter-spacing: .16em; position: absolute; top: 73px; width: 70px; }
.portal-orbit-ring { border: 1px solid rgba(0, 217, 255, .42); border-radius: 50%; height: 145px; left: 43px; position: absolute; top: 35px; transform: rotate(-25deg); width: 145px; }
.portal-orbit-ring-two { border-color: rgba(255, 189, 89, .45); height: 190px; left: 20px; top: 12px; transform: rotate(52deg) scaleY(.45); }
.portal-orbit-node { background: var(--future-cyan); border-radius: 50%; box-shadow: 0 0 12px var(--future-cyan); height: 8px; position: absolute; width: 8px; }
.portal-orbit-node-one { left: 30px; top: 104px; }
.portal-orbit-node-two { background: var(--future-gold); box-shadow: 0 0 12px var(--future-gold); right: 17px; top: 59px; }
.portal-future-hero-grid { background-image: linear-gradient(rgba(0, 217, 255, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 217, 255, .12) 1px, transparent 1px); background-size: 24px 24px; height: 220px; opacity: .14; position: absolute; right: -30px; top: 0; transform: perspective(280px) rotateY(-22deg) rotateX(40deg); width: 330px; }
.portal-future-metrics { display: grid; gap: 13px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 18px 0 38px; }
.portal-future-metric { align-items: center; background: linear-gradient(145deg, rgba(9, 26, 50, .92), rgba(7, 21, 41, .75)); border: 1px solid var(--future-border); border-radius: 11px; display: flex; gap: 12px; min-width: 0; padding: 17px 16px; position: relative; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.portal-future-metric:hover { border-color: rgba(0, 217, 255, .6); box-shadow: 0 8px 26px rgba(0, 0, 0, .22), 0 0 18px rgba(22, 139, 255, .1); transform: translateY(-2px); }
.portal-future-metric > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.portal-future-metric-icon { align-items: center; border: 1px solid currentColor; border-radius: 8px; display: inline-flex; flex: 0 0 35px; font-size: 1rem; height: 35px; justify-content: center; }
.portal-future-metric strong { color: var(--future-text); font-size: 1.35rem; line-height: 1; }
.portal-future-metric small { color: var(--future-text); font-size: .66rem; font-weight: 800; margin-top: 6px; }
.portal-future-metric em { color: var(--future-muted); font-size: .57rem; font-style: normal; margin-top: 3px; }
.portal-future-metric-arrow { color: var(--future-muted); font-size: .9rem; margin-left: auto; align-self: flex-start; }
.portal-future-metric-blue { color: var(--future-blue); }
.portal-future-metric-purple { color: var(--future-purple); }
.portal-future-metric-gold { color: var(--future-gold); }
.portal-future-metric-green { color: var(--future-green); }
.portal-future-section { margin-bottom: 37px; }
.portal-future-section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 16px; }
.portal-future-section-heading .portal-future-kicker { margin-bottom: 6px; }
.portal-future-section-heading h2 { color: var(--future-text); font-size: 1.13rem; letter-spacing: -.02em; margin: 0; }
.portal-future-section-heading > a { color: var(--future-cyan); font-size: .66rem; font-weight: 800; text-decoration: none; }
.portal-future-section-heading > a span { margin-left: 5px; }
.portal-future-service-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portal-future-service-card, .portal-future-panel { background: linear-gradient(145deg, rgba(9, 26, 50, .92), rgba(7, 21, 41, .78)); border: 1px solid var(--future-border); border-radius: 13px; box-shadow: inset 0 1px rgba(255, 255, 255, .025), 0 12px 35px rgba(0, 0, 0, .12); }
.portal-future-service-card { min-height: 315px; padding: 20px; position: relative; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.portal-future-service-card:hover { border-color: rgba(0, 217, 255, .48); box-shadow: inset 0 1px rgba(255, 255, 255, .05), 0 15px 35px rgba(0, 0, 0, .24), 0 0 22px rgba(22, 139, 255, .08); transform: translateY(-3px); }
.portal-future-service-top { align-items: center; display: flex; justify-content: space-between; }
.portal-future-service-icon { align-items: center; background: rgba(22, 139, 255, .13); border: 1px solid rgba(22, 139, 255, .48); border-radius: 9px; color: var(--future-cyan); display: inline-flex; font-size: 1.25rem; height: 38px; justify-content: center; width: 38px; }
.portal-future-service-state { color: var(--future-muted); font-size: .57rem; }
.portal-future-service-card h3 { color: var(--future-text); font-size: .96rem; margin: 19px 0 8px; }
.portal-future-service-card > p { color: var(--future-muted); font-size: .66rem; line-height: 1.55; margin: 0; min-height: 42px; }
.portal-future-service-card ul { border-top: 1px solid rgba(156, 179, 209, .12); list-style: none; margin: 16px 0 13px; padding: 10px 0 0; }
.portal-future-service-card li { margin: 0; }
.portal-future-service-card li a { color: var(--future-muted); display: flex; font-size: .63rem; justify-content: space-between; padding: 4px 0; text-decoration: none; }
.portal-future-service-card li a:hover { color: var(--future-cyan); }
.portal-future-service-card li a span { color: var(--future-blue); }
.portal-future-service-link { bottom: 17px; color: var(--future-cyan) !important; font-size: .65rem; font-weight: 800; position: absolute; text-decoration: none; }
.portal-future-service-link span { margin-left: 5px; }
.portal-future-service-facility .portal-future-service-icon { color: var(--future-gold); }
.portal-future-service-licom .portal-future-service-icon { color: var(--future-purple); }
.portal-future-service-commercial .portal-future-service-icon { color: var(--future-green); }
.portal-future-lower-grid { display: grid; gap: 14px; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .85fr); margin-bottom: 18px; }
.portal-future-panel { padding: 22px; }
.portal-future-timeline { list-style: none; margin: 0; padding: 0; }
.portal-future-timeline li { align-items: center; border-bottom: 1px solid rgba(156, 179, 209, .1); display: flex; gap: 12px; min-height: 65px; padding: 9px 0; }
.portal-future-timeline li:last-child { border-bottom: 0; }
.portal-future-timeline-icon { align-items: center; background: rgba(22, 139, 255, .12); border: 1px solid rgba(22, 139, 255, .35); border-radius: 50%; color: var(--future-cyan); display: inline-flex; flex: 0 0 31px; font-size: .9rem; height: 31px; justify-content: center; }
.portal-future-icon-facility { color: var(--future-gold); }
.portal-future-icon-licom, .portal-future-icon-commercial { color: var(--future-purple); }
.portal-future-timeline li > div { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.portal-future-timeline li a { display: flex; flex-direction: column; gap: 3px; text-decoration: none; }
.portal-future-timeline li a strong { color: var(--future-text); font-size: .69rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-future-timeline li a span, .portal-future-timeline li small { color: var(--future-muted); font-size: .58rem; }
.portal-future-timeline li small { margin-top: 5px; }
.portal-future-status { border: 1px solid rgba(156, 179, 209, .25); border-radius: 10px; color: var(--future-muted); display: inline-block; font-size: .52rem; font-weight: 800; padding: 4px 7px; white-space: nowrap; }
.portal-future-status-approved, .portal-future-status-completed, .portal-future-status-paid, .portal-future-status-verified { border-color: rgba(0, 217, 163, .35); color: var(--future-green); }
.portal-future-status-pending, .portal-future-status-invoiced, .portal-future-status-pending-payment, .portal-future-status-pending-for-payment { border-color: rgba(255, 189, 89, .4); color: var(--future-gold); }
.portal-future-status-rejected, .portal-future-status-cancelled { border-color: rgba(255, 107, 107, .4); color: #ff8989; }
.portal-future-notifications { display: flex; flex-direction: column; }
.portal-future-notification-item { align-items: flex-start; border-bottom: 1px solid rgba(156, 179, 209, .1); display: flex; gap: 10px; padding: 11px 0; text-decoration: none; }
.portal-future-notification-item:last-child { border-bottom: 0; }
.portal-future-notification-dot { background: #46617f; border-radius: 50%; flex: 0 0 7px; height: 7px; margin-top: 5px; }
.portal-future-notification-item.is-unread .portal-future-notification-dot { background: var(--future-cyan); box-shadow: 0 0 9px var(--future-cyan); }
.portal-future-notification-item span:last-child { display: flex; flex-direction: column; gap: 4px; }
.portal-future-notification-item strong { color: var(--future-text); font-size: .65rem; }
.portal-future-notification-item small { color: var(--future-muted); font-size: .55rem; line-height: 1.4; }
.portal-future-empty { align-items: center; color: var(--future-muted); display: flex; flex-direction: column; min-height: 150px; justify-content: center; text-align: center; }
.portal-future-empty > span { color: var(--future-cyan); font-size: 1.5rem; margin-bottom: 8px; }
.portal-future-empty strong { color: var(--future-text); font-size: .72rem; }
.portal-future-empty p { font-size: .62rem; line-height: 1.5; margin: 7px 0 0; max-width: 250px; }
.portal-future-empty-large { min-height: 220px; }
.portal-future-empty-large .portal-future-button { margin-top: 16px; }
.portal-future-applications-panel { margin-bottom: 0; }
.portal-future-record-count { color: var(--future-muted); font-size: .6rem; }
.portal-future-filters { align-items: end; border-bottom: 1px solid rgba(156, 179, 209, .12); display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; padding-bottom: 15px; }
.portal-future-filters label { display: flex; flex: 1 1 145px; flex-direction: column; gap: 5px; }
.portal-future-filters label span { color: var(--future-muted); font-size: .55rem; font-weight: 800; }
.portal-future-filters input, .portal-future-filters select { background: rgba(3, 11, 27, .65); border: 1px solid rgba(29, 60, 96, .9); border-radius: 6px; color: var(--future-text); font: inherit; font-size: .65rem; min-height: 34px; padding: 0 9px; }
.portal-future-filters input::placeholder { color: #6f88a8; }
.portal-future-filters select option { background: var(--future-card); }
.portal-future-filter-reset { background: transparent; border: 1px solid rgba(156, 179, 209, .3); border-radius: 6px; color: var(--future-muted); cursor: pointer; font: inherit; font-size: .62rem; min-height: 34px; padding: 0 12px; }
.portal-future-filter-reset:hover { border-color: var(--future-cyan); color: var(--future-cyan); }
.portal-future-table-wrap { overflow-x: auto; }
.portal-future-table { border-collapse: collapse; min-width: 650px; width: 100%; }
.portal-future-table th { color: #6f88a8; font-size: .55rem; font-weight: 800; letter-spacing: .08em; padding: 13px 9px; text-align: left; text-transform: uppercase; }
.portal-future-table td { border-top: 1px solid rgba(156, 179, 209, .1); color: var(--future-muted); font-size: .63rem; padding: 13px 9px; vertical-align: middle; }
.portal-future-table td:first-child { min-width: 180px; }
.portal-future-table td a { text-decoration: none; }
.portal-future-table td:first-child a { display: flex; flex-direction: column; gap: 4px; }
.portal-future-table td strong { color: var(--future-text); font-size: .67rem; }
.portal-future-table td small { color: var(--future-muted); font-size: .57rem; }
.portal-future-service-label { align-items: center; color: var(--future-muted); display: inline-flex; font-size: .57rem; font-weight: 800; gap: 6px; }
.portal-future-service-label i { color: var(--future-cyan); font-size: .9rem; font-style: normal; }
.portal-future-row-action { color: var(--future-cyan) !important; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.portal-future-row-action span { margin-left: 3px; }
.portal-future-pagination { align-items: center; color: var(--future-muted); display: flex; font-size: .6rem; justify-content: space-between; padding-top: 16px; }
.portal-future-pagination div { display: flex; gap: 6px; }
.portal-future-pagination button { background: transparent; border: 1px solid rgba(156, 179, 209, .25); border-radius: 6px; color: var(--future-muted); cursor: pointer; font: inherit; font-size: .58rem; min-height: 29px; padding: 0 9px; }
.portal-future-pagination button:not(:disabled):hover { border-color: var(--future-cyan); color: var(--future-cyan); }
.portal-future-pagination button:disabled { cursor: not-allowed; opacity: .4; }
.portal-dashboard-futuristic button:focus-visible, .portal-dashboard-futuristic a:focus-visible, .portal-dashboard-futuristic input:focus-visible, .portal-dashboard-futuristic select:focus-visible, .portal-dashboard-futuristic summary:focus-visible { outline: 2px solid var(--future-cyan); outline-offset: 3px; }
.portal-dashboard-futuristic [hidden] { display: none !important; }
.portal-sr-only { height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0, 0, 0, 0); }

@media (max-width: 1200px) {
  .portal-future-shell { grid-template-columns: 215px minmax(0, 1fr); }
  .portal-future-content { padding-left: 28px; padding-right: 28px; }
  .portal-future-hero-orbit { right: 3%; transform: scale(.84); }
}
@media (max-width: 980px) {
  .portal-future-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-future-service-grid { grid-template-columns: 1fr; }
  .portal-future-service-card { min-height: 260px; }
  .portal-future-service-card > p { min-height: auto; }
  .portal-future-lower-grid { grid-template-columns: 1fr; }
  .portal-future-sidebar { padding-left: 8px; padding-right: 8px; }
  .portal-future-nav a span:last-child, .portal-future-sidebar-bottom a span:last-child, .portal-future-sidebar-bottom button span:last-child, .portal-future-nav-label, .portal-future-brand small { display: none; }
  .portal-future-brand { padding-left: 6px; padding-right: 6px; }
  .portal-future-brand a { justify-content: center; }
  .portal-future-nav a, .portal-future-sidebar-bottom a, .portal-future-sidebar-bottom button { justify-content: center; padding-left: 0; padding-right: 0; }
  .portal-future-nav-count { display: inline-flex !important; margin-left: -9px; margin-top: -15px; }
}
@media (max-width: 760px) {
  .portal-dashboard-futuristic { margin: -14px -15px 0; }
  .portal-future-shell { display: block; }
  .portal-future-sidebar { bottom: 0; box-shadow: 14px 0 35px rgba(0, 0, 0, .35); left: 0; max-width: 270px; padding: 25px 14px 18px; position: fixed; transform: translateX(-105%); transition: transform .22s ease; width: 78vw; }
  .portal-future-sidebar.is-open { transform: translateX(0); }
  .portal-future-nav a span:last-child, .portal-future-sidebar-bottom a span:last-child, .portal-future-sidebar-bottom button span:last-child, .portal-future-nav-label, .portal-future-brand small { display: inline; }
  .portal-future-brand { padding-left: 10px; padding-right: 10px; }
  .portal-future-brand a { justify-content: flex-start; }
  .portal-future-nav a, .portal-future-sidebar-bottom a, .portal-future-sidebar-bottom button { justify-content: flex-start; padding-left: 12px; padding-right: 12px; }
  .portal-future-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .portal-future-topbar { gap: 10px; min-height: 64px; padding: 11px 16px; }
  .portal-future-search { max-width: none; }
  .portal-future-search input { min-height: 36px; }
  .portal-future-user-copy, .portal-future-user-menu summary > span:last-child { display: none; }
  .portal-future-topbar-actions { gap: 10px; }
  .portal-future-content { padding: 19px 16px 36px; }
  .portal-future-hero { min-height: 305px; padding: 27px 22px; }
  .portal-future-hero h1 { font-size: 2rem; max-width: 260px; }
  .portal-future-hero-orbit { bottom: -28px; opacity: .5; right: -35px; top: auto; transform: scale(.68); }
  .portal-future-metrics { gap: 9px; margin-bottom: 31px; }
  .portal-future-metric { gap: 8px; padding: 12px 10px; }
  .portal-future-metric-icon { flex-basis: 29px; height: 29px; }
  .portal-future-metric strong { font-size: 1.05rem; }
  .portal-future-metric small { font-size: .58rem; }
  .portal-future-metric em, .portal-future-metric-arrow { display: none; }
  .portal-future-panel { padding: 16px; }
  .portal-future-section-heading h2 { font-size: 1rem; }
  .portal-future-filters label { flex-basis: 120px; }
  .portal-future-filter-reset { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-dashboard-futuristic *, .portal-dashboard-futuristic *::before, .portal-dashboard-futuristic *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.portal-record-row-status { align-items: center; display: inline-flex; gap: 8px; }
.portal-quotation-details-icon { align-items: center; background: rgba(255, 189, 89, .14); border: 1px solid rgba(255, 189, 89, .42); border-radius: 7px; color: #ffbd59; display: inline-flex; flex: 0 0 auto; height: 29px; justify-content: center; width: 29px; }
.portal-quotation-details-icon svg { fill: none; height: 15px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 15px; }
.portal-obas-detail-futuristic .portal-quotation-details-icon-hero { gap: 7px; margin-left: 9px; padding: 0 9px; text-decoration: none; width: auto; }
.portal-obas-detail-futuristic .portal-quotation-details-icon-hero span { font-size: .6rem; font-weight: 800; }
.portal-obas-detail-futuristic .portal-quotation-details-icon-hero:hover { background: rgba(255, 189, 89, .22); color: #ffcf7a; }

/* Medium-sized OBAS detail view using the dashboard's futuristic surfaces. */
.portal-obas-detail-futuristic {
  --obas-bg: #030b1b;
  --obas-card: #091a32;
  --obas-border: #1d3c60;
  --obas-text: #f4f8ff;
  --obas-muted: #9cb3d1;
  --obas-blue: #168bff;
  --obas-cyan: #00d9ff;
  --obas-gold: #ffbd59;
  background: var(--obas-bg);
  color: var(--obas-text);
  margin: -24px -15px 0;
  min-height: 100vh;
}
.portal-obas-detail-futuristic .portal-page-hero { background: linear-gradient(105deg, rgba(3, 11, 27, .94), rgba(9, 26, 50, .84)), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; border-bottom: 1px solid var(--obas-border); padding: 30px 0 26px; position: relative; }
.portal-obas-detail-futuristic .portal-container { max-width: 1120px; }
.portal-obas-detail-futuristic .portal-header-back { color: var(--obas-cyan); font-size: .68rem; }
.portal-obas-detail-futuristic .portal-header-back:hover { color: var(--obas-gold); }
.portal-obas-detail-futuristic .portal-eyebrow { color: var(--obas-cyan); font-size: .58rem; margin-bottom: 9px; }
.portal-obas-detail-futuristic .portal-page-hero .portal-eyebrow { margin-top: 24px; }
.portal-obas-detail-futuristic .portal-page-hero h1 { color: var(--obas-text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(1.8rem, 3.8vw, 2.75rem); font-weight: 800; letter-spacing: -.045em; margin-bottom: 9px; }
.portal-obas-detail-futuristic .portal-page-hero p:not(.portal-eyebrow) { color: var(--obas-muted); font-size: .75rem; }
.portal-obas-detail-futuristic .portal-status-pill { background: rgba(22, 139, 255, .12); border: 1px solid rgba(0, 217, 255, .35); border-radius: 999px; color: var(--obas-cyan); display: inline-block; font-size: .62rem; font-weight: 800; margin-top: 11px; padding: 5px 10px; }
.portal-obas-detail-futuristic .portal-progress-status .portal-status-pill { margin-top: 0; }
.portal-obas-detail-futuristic .portal-section { padding: 22px 0; }
.portal-obas-detail-futuristic .portal-record-section { background: #030b1b; }
.portal-obas-detail-futuristic .portal-compact-section { background: #030b1b; }
.portal-obas-detail-futuristic .portal-obas-detail-grid, .portal-obas-detail-futuristic .portal-obas-grid { gap: 14px; }
.portal-obas-detail-futuristic .portal-panel { background: linear-gradient(135deg, rgba(14, 38, 69, .88), rgba(7, 22, 44, .78)); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(74, 137, 194, .36); border-radius: 12px; box-shadow: 0 10px 24px rgba(0, 0, 0, .16); padding: 14px; }
.portal-obas-detail-futuristic .portal-panel-gold { background: linear-gradient(135deg, rgba(66, 52, 42, .86), rgba(21, 34, 56, .82)); border-color: rgba(255, 189, 89, .34); }
.portal-obas-detail-futuristic .portal-progress-panel { background: linear-gradient(135deg, rgba(12, 50, 83, .9), rgba(7, 27, 57, .82)); border-color: rgba(0, 217, 255, .28); }
.portal-obas-detail-futuristic .portal-panel h2 { color: var(--obas-text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 1rem; font-weight: 800; letter-spacing: -.02em; margin-bottom: 9px; }
.portal-obas-detail-futuristic .portal-panel p, .portal-obas-detail-futuristic .portal-panel-note { color: var(--obas-muted); font-size: .7rem; line-height: 1.6; }
.portal-obas-detail-futuristic .portal-progress-panel h2, .portal-obas-detail-futuristic .portal-progress-panel .portal-eyebrow { color: var(--obas-text); }
.portal-obas-detail-futuristic .portal-progress-list { margin-top: 14px; }
.portal-obas-detail-futuristic .portal-progress-step { min-height: 43px; }
.portal-obas-detail-futuristic .portal-progress-step:not(:last-child)::after { background: rgba(156, 179, 209, .22); height: 18px; left: 14px; top: 35px; }
.portal-obas-detail-futuristic .portal-progress-marker { background: #061327; border-color: var(--obas-border); color: var(--obas-muted); height: 29px; width: 29px; }
.portal-obas-detail-futuristic .portal-progress-step strong { color: var(--obas-muted); font-size: .7rem; }
.portal-obas-detail-futuristic .portal-progress-step small { color: #6f88a8; font-size: .58rem; }
.portal-obas-detail-futuristic .portal-progress-complete .portal-progress-marker { background: #168bff; border-color: #168bff; color: #fff; }
.portal-obas-detail-futuristic .portal-progress-current .portal-progress-marker { background: var(--obas-gold); border-color: var(--obas-gold); box-shadow: 0 0 0 3px rgba(255, 189, 89, .16); color: #071b32; }
.portal-obas-detail-futuristic .portal-progress-complete strong, .portal-obas-detail-futuristic .portal-progress-current strong { color: var(--obas-text); }
.portal-obas-detail-futuristic .portal-progress-current small { color: var(--obas-gold); }
.portal-obas-detail-futuristic .portal-summary-list { gap: 8px; margin-top: 12px; }
.portal-obas-detail-futuristic .portal-summary-list div { border-bottom-color: rgba(156, 179, 209, .14); padding-bottom: 7px; }
.portal-obas-detail-futuristic .portal-summary-list dt { color: #6f88a8; font-size: .57rem; }
.portal-obas-detail-futuristic .portal-summary-list dd { color: var(--obas-text); font-size: .68rem; }
.portal-obas-detail-futuristic .portal-related-document + .portal-related-document { border-top-color: rgba(156, 179, 209, .14); margin-top: 13px; padding-top: 13px; }
.portal-obas-detail-futuristic .portal-detail-list li { border-bottom-color: rgba(156, 179, 209, .14); padding: 9px 0; }
.portal-obas-detail-futuristic .portal-quotation-download { gap: 8px; margin-top: 16px; min-height: 36px; padding: 8px 13px; }
.portal-obas-detail-futuristic .portal-quotation-download svg { fill: none; height: 15px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 15px; }
.portal-obas-detail-futuristic .portal-quotation-download-icon { align-items: center; display: inline-flex; justify-content: center; padding: 0; width: 36px; }
.portal-obas-detail-futuristic .portal-detail-list strong { color: var(--obas-text); font-size: .68rem; }
.portal-obas-detail-futuristic .portal-detail-list small { color: var(--obas-muted); font-size: .6rem; }
.portal-obas-detail-futuristic .portal-detail-actions { padding-bottom: 34px; }
.portal-obas-detail-header-actions { display: flex; gap: 8px; }
.portal-obas-detail-futuristic .portal-obas-detail-header-actions .portal-home-icon-link { border-color: rgba(156, 179, 209, .32); color: var(--obas-text) !important; }
.portal-obas-detail-futuristic .portal-obas-detail-header-actions .portal-home-icon-link:hover { border-color: var(--obas-cyan); color: var(--obas-cyan) !important; }
.portal-obas-detail-futuristic .portal-button-secondary { border-color: var(--obas-border); color: var(--obas-text) !important; }
.portal-obas-detail-futuristic .portal-button-secondary:hover { background: rgba(22, 139, 255, .12); border-color: var(--obas-blue); }
.portal-obas-detail-futuristic .portal-empty-page { background: var(--obas-bg); }
.portal-obas-detail-futuristic .portal-empty-page .portal-panel { max-width: 720px; margin: 0 auto; }

@media (max-width: 760px) {
  .portal-obas-detail-futuristic { margin: -14px -15px 0; }
  .portal-obas-detail-futuristic .portal-page-hero { padding: 23px 0 21px; }
  .portal-obas-detail-futuristic .portal-section { padding: 16px 0; }
  .portal-obas-detail-futuristic .portal-panel { padding: 12px; }
}

/* Restrained finish: keep the futuristic palette without heavy gradients or glass blur. */
.portal-dashboard-futuristic { background: #030b1b; }
.portal-dashboard-futuristic::before { opacity: .45; }
.portal-future-sidebar { background: #061327; }
.portal-future-topbar { background: #030b1b; }
.portal-future-search { background: #091a32; }
.portal-future-user-dropdown { background: #091a32; }
.portal-future-hero { background: linear-gradient(rgba(9, 26, 50, .9), rgba(9, 26, 50, .9)), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; }
.portal-future-button-primary { background: #168bff; box-shadow: 0 6px 16px rgba(22, 139, 255, .2); }
.portal-future-button-primary:hover { box-shadow: 0 8px 20px rgba(22, 139, 255, .3); }
.portal-orbit-core { background: #0d3560; }
.portal-future-metric, .portal-future-service-card, .portal-future-panel { background: #091a32; box-shadow: 0 10px 24px rgba(0, 0, 0, .16); }
.portal-future-metric:hover, .portal-future-service-card:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, .22), 0 0 14px rgba(22, 139, 255, .08); }
.portal-future-filters input, .portal-future-filters select { background: #061327; }
.portal-dashboard-futuristic .portal-service-launcher-panel { backdrop-filter: none; -webkit-backdrop-filter: none; }

/* Full-width dashboard finish without the left navigation rail. */
.portal-dashboard-futuristic .portal-future-shell { display: block; }
.portal-dashboard-futuristic .portal-future-main { min-width: 0; width: 100%; }
.portal-dashboard-futuristic .portal-future-topbar { gap: 24px; padding-left: clamp(22px, 5vw, 72px); padding-right: clamp(22px, 5vw, 72px); }
.portal-dashboard-futuristic .portal-future-topbar-brand { align-items: center; display: inline-flex; flex: 0 0 auto; gap: 10px; text-decoration: none; }
.portal-dashboard-futuristic .portal-future-ums-logo { display: block; height: 33px; object-fit: contain; width: 124px; }
.portal-dashboard-futuristic .portal-future-portal-icon { align-items: center; border: 1px solid rgba(0, 214, 163, .34); border-radius: 8px; color: var(--future-cyan); display: inline-flex; flex: 0 0 34px; height: 34px; justify-content: center; text-decoration: none; transition: background .18s ease, border-color .18s ease, color .18s ease; width: 34px; }
.portal-dashboard-futuristic .portal-future-portal-icon svg { fill: none; height: 16px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 16px; }
.portal-dashboard-futuristic .portal-future-portal-icon:hover, .portal-dashboard-futuristic .portal-future-portal-icon:focus-visible { background: rgba(0, 214, 163, .1); border-color: var(--future-cyan); color: var(--future-gold); }
.portal-dashboard-futuristic .portal-future-user-trigger { align-items: center; background: transparent; border: 0; color: inherit; cursor: pointer; display: flex; font: inherit; gap: 9px; padding: 0; text-align: left; }
.portal-dashboard-futuristic .portal-future-user-trigger:hover .portal-future-user-copy strong, .portal-dashboard-futuristic .portal-future-user-trigger:focus-visible .portal-future-user-copy strong { color: var(--future-cyan); }
.portal-dashboard-futuristic .portal-future-user-trigger-arrow { color: var(--future-muted); font-size: .8rem; }
.portal-dashboard-futuristic .portal-profile-launcher-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: 14px; padding: 18px; }
.portal-dashboard-futuristic .portal-profile-launcher-toolbar { align-items: center; display: flex; justify-content: space-between; margin-bottom: 14px; }
.portal-dashboard-futuristic .portal-profile-launcher-toolbar > span { color: rgba(255, 255, 255, .48); font-size: .56rem; font-weight: 800; letter-spacing: .16em; }
.portal-dashboard-futuristic .portal-profile-launcher-summary { align-items: center; display: flex; gap: 13px; }
.portal-dashboard-futuristic .portal-profile-launcher-avatar { align-items: center; background: linear-gradient(135deg, var(--future-blue), var(--future-purple)); border: 1px solid rgba(0, 217, 255, .65); border-radius: 50%; box-shadow: 0 0 20px rgba(22, 139, 255, .28); color: #fff; display: inline-flex; flex: 0 0 52px; font-size: 1rem; font-weight: 800; height: 52px; justify-content: center; width: 52px; }
.portal-dashboard-futuristic .portal-profile-launcher-summary strong, .portal-dashboard-futuristic .portal-profile-launcher-summary small { display: block; }
.portal-dashboard-futuristic .portal-profile-launcher-summary strong { color: #fff; font-size: .95rem; }
.portal-dashboard-futuristic .portal-profile-launcher-summary small { color: rgba(255, 255, 255, .64); font-size: .7rem; margin-top: 4px; }
.portal-profile-launcher-details { display: grid; gap: 9px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 18px 0; }
.portal-profile-launcher-details div { background: rgba(3, 11, 27, .28); border: 1px solid rgba(156, 179, 209, .12); border-radius: 9px; padding: 11px; }
.portal-profile-launcher-details dt { color: rgba(255, 255, 255, .5); font-size: .57rem; text-transform: uppercase; }
.portal-profile-launcher-details dd { color: #fff; font-size: .7rem; margin: 5px 0 0; overflow-wrap: anywhere; }
.portal-profile-launcher-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.portal-profile-launcher-actions .portal-service-launcher-card { flex: 1 1 230px; min-height: 60px; }
.portal-profile-logout { align-items: center; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .18); border-radius: 7px; color: #fff; cursor: pointer; display: inline-flex; font: inherit; height: 30px; justify-content: center; padding: 0; width: 30px; }
.portal-profile-logout svg { fill: none; height: 14px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 14px; }
.portal-profile-logout:hover, .portal-profile-logout:focus-visible { border-color: rgba(255, 189, 89, .7); color: var(--future-gold); }
.portal-profile-launcher-actions .portal-logout-status { flex-basis: 100%; color: var(--future-gold); font-size: .65rem; margin: 0; }
.portal-dashboard-futuristic .portal-future-hero { background: linear-gradient(102deg, rgba(3, 11, 27, .94) 0%, rgba(5, 25, 55, .82) 48%, rgba(3, 11, 27, .42) 100%), radial-gradient(circle at 82% 30%, rgba(0, 217, 255, .2), transparent 30%), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; }
.portal-dashboard-futuristic .portal-future-hero::after { background-image: linear-gradient(90deg, rgba(0, 217, 255, .1) 1px, transparent 1px), linear-gradient(rgba(0, 217, 255, .1) 1px, transparent 1px), linear-gradient(135deg, transparent 42%, rgba(255, 189, 89, .14) 50%, transparent 58%); background-size: 44px 44px, 44px 44px, 100% 100%; content: ""; inset: 0; opacity: .2; pointer-events: none; position: absolute; z-index: 0; }
.portal-dashboard-futuristic .portal-future-hero-orbit, .portal-dashboard-futuristic .portal-future-hero-grid { z-index: 1; }

@media (max-width: 760px) {
  .portal-dashboard-futuristic .portal-future-topbar { gap: 12px; }
  .portal-dashboard-futuristic .portal-future-ums-logo { height: 28px; width: 104px; }
  .portal-dashboard-futuristic .portal-future-user-copy { display: none; }
  .portal-dashboard-futuristic .portal-profile-launcher-details { grid-template-columns: 1fr; }
}

/* Keep the dashboard in the same emerald, gold and navy palette as the portal landing page. */
.portal-dashboard-futuristic {
  --future-bg: #061923;
  --future-sidebar: #031017;
  --future-card: #0a222c;
  --future-blue: #00a985;
  --future-cyan: #00d6a3;
  --future-purple: #d2aa50;
  --future-green: #00d6a3;
  --future-gold: #f3c963;
  --future-text: #f7fffd;
  --future-muted: #91adb2;
  --future-border: #1a4650;
  background: #061923;
}
.portal-dashboard-futuristic::before { background-image: linear-gradient(rgba(0, 214, 163, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 214, 163, .035) 1px, transparent 1px); }
.portal-dashboard-futuristic .portal-future-topbar { background: #031017; border-bottom-color: rgba(0, 214, 163, .16); }
.portal-dashboard-futuristic .portal-future-search { background: #0a222c; border-color: rgba(0, 214, 163, .24); }
.portal-dashboard-futuristic .portal-future-hero { background: linear-gradient(102deg, rgba(3, 16, 23, .94) 0%, rgba(4, 43, 45, .82) 48%, rgba(3, 16, 23, .42) 100%), radial-gradient(circle at 82% 30%, rgba(0, 214, 163, .2), transparent 30%), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; }
.portal-dashboard-futuristic .portal-future-hero::after { background-image: linear-gradient(90deg, rgba(0, 214, 163, .1) 1px, transparent 1px), linear-gradient(rgba(0, 214, 163, .1) 1px, transparent 1px), linear-gradient(135deg, transparent 42%, rgba(243, 201, 99, .14) 50%, transparent 58%); }
.portal-dashboard-futuristic .portal-future-button-primary { background: #00d6a3; box-shadow: 0 6px 18px rgba(0, 214, 163, .2); color: #031017 !important; }
.portal-dashboard-futuristic .portal-future-button-primary:hover { background: #54e7bf; box-shadow: 0 8px 24px rgba(0, 214, 163, .3); }
.portal-dashboard-futuristic .portal-orbit-core { background: linear-gradient(145deg, #00a985, #07534f); }
.portal-dashboard-futuristic .portal-future-metric, .portal-dashboard-futuristic .portal-future-service-card, .portal-dashboard-futuristic .portal-future-panel { background: #0a222c; border-color: #1a4650; }
.portal-dashboard-futuristic .portal-future-metric:hover, .portal-dashboard-futuristic .portal-future-service-card:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, .22), 0 0 16px rgba(0, 214, 163, .1); }
.portal-dashboard-futuristic .portal-future-filters input, .portal-dashboard-futuristic .portal-future-filters select { background: #031017; border-color: rgba(0, 214, 163, .22); }
.portal-dashboard-futuristic .portal-service-launcher-panel { background: linear-gradient(145deg, rgba(6, 53, 58, .98), rgba(3, 27, 35, .97)); border-color: rgba(0, 214, 163, .28); }
.portal-dashboard-futuristic .portal-profile-launcher-card { background: rgba(0, 214, 163, .06); border-color: rgba(0, 214, 163, .2); }

/* Application details use the same landing/dashboard visual language. */
.portal-obas-detail-futuristic {
  --obas-bg: #061923;
  --obas-card: #0a222c;
  --obas-border: #1a4650;
  --obas-text: #f7fffd;
  --obas-muted: #91adb2;
  --obas-blue: #00a985;
  --obas-cyan: #00d6a3;
  --obas-gold: #f3c963;
  background: #061923;
}
.portal-obas-detail-futuristic .portal-page-hero { background: linear-gradient(102deg, rgba(3, 16, 23, .94) 0%, rgba(4, 43, 45, .82) 48%, rgba(3, 16, 23, .42) 100%), radial-gradient(circle at 82% 30%, rgba(0, 214, 163, .18), transparent 30%), url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover; border-bottom-color: rgba(0, 214, 163, .22); }
.portal-obas-detail-futuristic .portal-record-section, .portal-obas-detail-futuristic .portal-compact-section { background: #061923; }
.portal-obas-detail-futuristic .portal-panel { background: linear-gradient(135deg, rgba(10, 34, 44, .9), rgba(3, 16, 23, .82)); border-color: rgba(0, 214, 163, .22); }
.portal-obas-detail-futuristic .portal-panel-gold { background: linear-gradient(135deg, rgba(64, 55, 32, .84), rgba(10, 34, 44, .86)); border-color: rgba(243, 201, 99, .34); }
.portal-obas-detail-futuristic .portal-progress-panel { background: linear-gradient(135deg, rgba(5, 62, 59, .9), rgba(3, 27, 35, .84)); border-color: rgba(0, 214, 163, .3); }
.portal-obas-detail-futuristic .portal-status-pill { background: rgba(0, 214, 163, .1); border-color: rgba(0, 214, 163, .38); color: var(--obas-cyan); }
.portal-obas-detail-futuristic .portal-progress-marker { background: #031017; border-color: var(--obas-border); }
.portal-obas-detail-futuristic .portal-progress-complete .portal-progress-marker { background: var(--obas-green, #00a985); border-color: var(--obas-green, #00a985); }
.portal-obas-detail-futuristic .portal-progress-current .portal-progress-marker { background: var(--obas-gold); border-color: var(--obas-gold); box-shadow: 0 0 0 3px rgba(243, 201, 99, .16); }

/* Public SpaceHub reservation form. */
.portal-booking-section { background: linear-gradient(135deg, rgba(228, 237, 248, .74), rgba(255, 250, 240, .72)); }
.portal-booking-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); }
.portal-booking-form, .portal-booking-schedule { min-width: 0; padding: 24px; }
.portal-booking-form-heading { align-items: flex-start; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 8px; }
.portal-booking-form-heading h2, .portal-booking-form-heading h3 { color: var(--iics-navy); margin: 0; }
.portal-booking-form-heading h2 { font-size: 1.35rem; }
.portal-booking-form-heading h3 { font-size: 1rem; }
.portal-booking-step { background: var(--iics-green-pale); border: 1px solid rgba(8, 119, 101, .18); border-radius: 999px; color: var(--iics-green-dark); font-size: .6rem; font-weight: 800; letter-spacing: .08em; padding: 7px 9px; white-space: nowrap; }
.portal-booking-account { background: rgba(230, 243, 238, .72); border: 1px solid var(--iics-line); border-radius: 10px; display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); margin: 18px 0; padding: 13px; }
.portal-booking-account div { min-width: 0; }
.portal-booking-account span, .portal-booking-account strong { display: block; }
.portal-booking-account span { color: var(--iics-muted); font-size: .59rem; letter-spacing: .08em; text-transform: uppercase; }
.portal-booking-account strong { color: var(--iics-navy); font-size: .75rem; margin-top: 4px; overflow-wrap: anywhere; }
.portal-booking-fields { display: grid; gap: 0 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-booking-field-wide { grid-column: 1 / -1; }
.portal-booking-page .portal-form-field select, .portal-booking-page .portal-form-field textarea { background: rgba(255, 255, 255, .86); border: 1px solid var(--iics-line); border-radius: 7px; color: var(--iics-ink); font: inherit; font-size: .82rem; min-height: 43px; padding: 9px 12px; width: 100%; }
.portal-booking-page .portal-form-field textarea { min-height: 76px; resize: vertical; }
.portal-booking-page .portal-form-field select:focus, .portal-booking-page .portal-form-field textarea:focus { border-color: var(--iics-green); box-shadow: 0 0 0 3px rgba(8, 119, 101, .1); outline: 0; }
.portal-booking-page .portal-form-field select:disabled { background: #eef3f0; color: #899994; cursor: not-allowed; }
.portal-booking-subheading { border-top: 1px solid var(--iics-line); margin-top: 7px; padding-top: 19px; }
.portal-booking-participants { display: grid; gap: 0 14px; grid-template-columns: repeat(3, 1fr); }
.portal-booking-participants .portal-form-field { margin-bottom: 0; }
.portal-booking-actions { align-items: center; border-top: 1px solid var(--iics-line); display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; padding-top: 18px; }
.portal-booking-actions .portal-button-primary { border: 0; }
.portal-booking-rows { display: grid; gap: 12px; }
.portal-booking-row { background: rgba(240, 246, 244, .74); border: 1px solid var(--iics-line); border-radius: 11px; padding: 14px; }
.portal-booking-row.is-ready { border-color: rgba(8, 119, 101, .3); }
.portal-booking-row.is-error { border-color: rgba(179, 75, 75, .38); }
.portal-booking-row-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 10px; }
.portal-booking-row-heading strong { color: var(--iics-navy); font-size: .78rem; }
.portal-booking-remove-row { background: transparent; border: 0; color: #a34d4d; cursor: pointer; font-size: .65rem; padding: 3px 0; }
.portal-booking-remove-row:hover, .portal-booking-remove-row:focus-visible { color: #7d2929; text-decoration: underline; }
.portal-booking-row-fields { display: grid; gap: 0 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-booking-row-fields .portal-form-field { margin-bottom: 10px; }
.portal-booking-row-fields .portal-form-field span { font-size: .62rem; }
.portal-booking-row-fields .portal-form-field select { font-size: .72rem; min-height: 38px; padding: 7px 8px; }
.portal-booking-row-status { color: var(--iics-muted); font-size: .65rem; line-height: 1.45; margin: 0; min-height: 16px; }
.portal-booking-row-status.is-loading { color: #2760a8; }
.portal-booking-row-status.is-ready { color: var(--iics-green-dark); }
.portal-booking-row-status.is-error { color: #a34d4d; }
.portal-booking-add-row { border-color: var(--iics-line); color: var(--iics-green-dark) !important; font-size: .72rem; margin-top: 14px; padding: 8px 12px; }
.portal-booking-guidance { align-items: flex-start; background: var(--iics-gold-pale); border: 1px solid rgba(210, 170, 80, .28); border-radius: 9px; display: flex; gap: 9px; margin-top: 18px; padding: 12px; }
.portal-booking-guidance > span { align-items: center; background: var(--iics-gold); border-radius: 50%; color: var(--iics-navy-deep); display: inline-flex; flex: 0 0 18px; font-size: .68rem; font-weight: 800; height: 18px; justify-content: center; }
.portal-booking-guidance p { color: #786335; font-size: .68rem; line-height: 1.55; margin: 0; }
.portal-booking-guidance a { color: var(--iics-green-dark); font-weight: 800; }
.portal-service-coming-soon { cursor: default; opacity: .72; }
.portal-future-service-link.portal-service-coming-soon { color: var(--iics-muted); }
.portal-verification-page { background: linear-gradient(135deg, #eef5f2, #f8f4e9); min-height: 100vh; }
.portal-verification-shell { align-items: center; display: flex; justify-content: center; min-height: calc(100vh - 76px); padding: 34px 20px 54px; }
.portal-verification-card { background: rgba(255, 255, 255, .94); border: 1px solid var(--iics-line); border-radius: 16px; box-shadow: 0 18px 45px rgba(11, 40, 55, .12); max-width: 520px; padding: 34px; text-align: center; width: 100%; }
.portal-verification-card h1 { color: var(--iics-navy); font-size: clamp(1.55rem, 3vw, 2rem); margin: 8px 0 10px; }
.portal-verification-card > p:not(.portal-eyebrow):not(.portal-form-status) { color: var(--iics-muted); line-height: 1.6; margin: 0 auto; max-width: 420px; }
.portal-verification-card .portal-success-icon { align-items: center; background: var(--iics-green-pale); border: 1px solid rgba(8, 119, 101, .2); border-radius: 50%; color: var(--iics-green-dark); display: inline-flex; font-size: 1.2rem; font-weight: 800; height: 48px; justify-content: center; width: 48px; }
.portal-verification-card .portal-success-icon.is-error { background: #fff0ed; border-color: rgba(179, 75, 75, .2); color: #a33e3e; }
.portal-verification-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.portal-verification-actions .portal-button { min-width: 150px; }
.portal-booking-document { border-top: 1px solid var(--iics-line); margin-top: 17px; padding-top: 17px; }
.portal-booking-document .portal-form-field { margin-bottom: 0; }
.portal-booking-document input[type="file"] { background: rgba(255, 255, 255, .86); border: 1px dashed rgba(8, 119, 101, .36); border-radius: 8px; color: var(--iics-ink); cursor: pointer; font: inherit; font-size: .74rem; padding: 9px; width: 100%; }
.portal-booking-document input[type="file"]:focus { border-color: var(--iics-green); box-shadow: 0 0 0 3px rgba(8, 119, 101, .1); outline: 0; }
.portal-booking-payment-note { align-items: flex-start; background: rgba(255, 248, 225, .78); border: 1px solid rgba(210, 170, 80, .3); border-radius: 9px; display: flex; gap: 9px; margin-top: 12px; padding: 11px 12px; }
.portal-booking-payment-note > span { color: #b38725; flex: 0 0 auto; font-size: .9rem; line-height: 1.35; }
.portal-booking-payment-note p { color: #66582f; font-size: .68rem; line-height: 1.5; margin: 0; }
.portal-booking-payment-note strong { color: #574615; }
.portal-booking-detail .portal-booking-payment-note { margin-top: 15px; max-width: 620px; }
.portal-booking-review[hidden] { display: none; }
.portal-booking-review { align-items: center; display: flex; inset: 0; justify-content: center; padding: 20px; position: fixed; z-index: 1200; }
.portal-booking-review-backdrop { background: rgba(3, 15, 31, .62); border: 0; inset: 0; position: absolute; }
.portal-booking-review-card { background: #fff; border: 1px solid rgba(8, 119, 101, .22); border-radius: 15px; box-shadow: 0 24px 70px rgba(3, 15, 31, .28); max-height: min(760px, calc(100vh - 40px)); max-width: 650px; overflow: auto; padding: 24px; position: relative; width: 100%; }
.portal-booking-review-heading { align-items: flex-start; display: flex; justify-content: space-between; }
.portal-booking-review-heading h2 { color: var(--iics-navy); font-size: 1.35rem; margin: 0; }
.portal-booking-review-close { background: transparent; border: 0; color: var(--iics-muted); cursor: pointer; font-size: 1.5rem; line-height: 1; padding: 0 3px; }
.portal-booking-review-summary { background: #f4f8f6; border: 1px solid var(--iics-line); border-radius: 10px; margin-top: 18px; padding: 14px; }
.portal-booking-review-summary dl { display: grid; gap: 8px 14px; grid-template-columns: 110px 1fr; margin: 0 0 15px; }
.portal-booking-review-summary dt { color: var(--iics-muted); font-size: .63rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.portal-booking-review-summary dd { color: var(--iics-ink); font-size: .76rem; margin: 0; overflow-wrap: anywhere; }
.portal-booking-review-lines { border-top: 1px solid var(--iics-line); color: var(--iics-navy); font-size: .72rem; padding-top: 12px; }
.portal-booking-review-lines > strong { display: block; margin-bottom: 8px; }
.portal-booking-review-lines > div { align-items: center; border-top: 1px solid rgba(217, 228, 223, .8); display: flex; gap: 12px; justify-content: space-between; padding: 8px 0; }
.portal-booking-review-lines span { min-width: 0; }
.portal-booking-review-lines small { color: var(--iics-muted); display: block; font-size: .65rem; margin-top: 2px; }
.portal-booking-review-lines strong { white-space: nowrap; }
.portal-booking-review-total { align-items: center; border-top: 1px solid var(--iics-line); color: var(--iics-navy); display: flex; font-size: .86rem; justify-content: space-between; margin-top: 5px; padding-top: 13px; }
.portal-booking-review-total strong { color: var(--iics-green-dark); font-size: 1.05rem; }
.portal-booking-review-note { background: var(--iics-gold-pale); border: 1px solid rgba(210, 170, 80, .28); border-radius: 8px; color: #66582f; font-size: .7rem; line-height: 1.5; margin: 14px 0 0; padding: 10px 12px; }
.portal-booking-review-actions { border-top: 1px solid var(--iics-line); display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; padding-top: 16px; }
body.portal-booking-review-open { overflow: hidden; }

@media (max-width: 900px) {
  .portal-booking-layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .portal-booking-form, .portal-booking-schedule { padding: 17px 15px; }
  .portal-booking-account, .portal-booking-fields, .portal-booking-participants { grid-template-columns: 1fr; }
  .portal-booking-field-wide { grid-column: auto; }
  .portal-booking-actions { align-items: stretch; flex-direction: column-reverse; }
  .portal-booking-actions .portal-button { text-align: center; width: 100%; }
  .portal-booking-review-card { padding: 18px 15px; }
  .portal-booking-review-actions { flex-direction: column-reverse; }
  .portal-booking-review-actions .portal-button { text-align: center; width: 100%; }
}

/* Compact, scrollable registration surface with a futuristic glass background. */
.portal-registration-page {
  background:
    linear-gradient(120deg, rgba(238, 247, 255, .78), rgba(255, 249, 232, .84)),
    url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover fixed;
  min-height: 100vh;
  overflow: visible;
}
.portal-registration-shell {
  background: transparent;
  align-items: center;
  display: flex;
  overflow: visible;
  min-height: calc(100vh - 62px);
  padding: 20px 0 24px;
}
.portal-registration-grid {
  align-items: center;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(230px, .72fr) minmax(410px, 1fr);
  max-width: 960px;
}
.portal-registration-intro {
  margin: 0;
  max-width: 410px;
  padding: 0;
  text-align: left;
}
.portal-registration-intro::after { display: none; }
.portal-registration-intro h1 {
  color: #111827;
  font-size: clamp(1.85rem, 3.2vw, 2.75rem);
  margin-bottom: 6px;
}
.portal-registration-intro > p:not(.portal-eyebrow) {
  color: #1f2937;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
  max-width: 410px;
}
.portal-registration-benefits {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 16px 0 0;
  text-align: left;
}
.portal-registration-benefits > div {
  align-items: flex-start;
  background: rgba(255, 255, 255, .56);
  border: 1px solid rgba(133, 177, 224, .3);
  border-radius: 10px;
  display: flex;
  gap: 7px;
  padding: 9px;
}
.portal-registration-benefits > div > span:first-child {
  flex: 0 0 20px;
  font-size: .58rem;
  height: 20px;
  width: 20px;
}
.portal-registration-benefits strong,
.portal-registration-benefits small {
  color: #111827 !important;
  display: block;
  font-weight: 800;
}
.portal-registration-benefits strong { font-size: .68rem; }
.portal-registration-benefits small {
  font-size: .6rem;
  line-height: 1.35;
  margin-top: 2px;
}
.portal-registration-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(237, 247, 255, .76));
  border-radius: 16px;
  margin: 0 auto;
  max-width: 580px;
  overflow: visible;
  padding: 18px;
}
.portal-registration-card .portal-form-field { margin-bottom: 8px; }
.portal-registration-card .portal-form-field input { min-height: 39px; padding: 7px 10px; }
.portal-registration-card .portal-field-help { font-size: .58rem; margin-top: 3px; }
.portal-wizard-progress { margin-bottom: 12px; padding: 8px 10px; }
.portal-form-check { font-size: .63rem; line-height: 1.35; margin: 7px 0 8px; }
.portal-wizard-actions { margin-top: 11px; padding-top: 10px; }
.portal-registration-card .portal-form-help { font-size: .65rem; margin-top: 11px; }

@media (max-width: 760px) {
  .portal-registration-page { background-attachment: scroll; }
  .portal-registration-shell { display: block; min-height: 0; padding: 22px 0 34px; }
  .portal-registration-grid { display: block; width: min(calc(100% - 24px), 620px); }
  .portal-registration-intro { margin: 0 auto 15px; max-width: 620px; text-align: center; }
  .portal-registration-intro > p:not(.portal-eyebrow) { margin: 0 auto; }
  .portal-registration-benefits { grid-template-columns: 1fr; }
  .portal-registration-benefits > div { padding: 8px 9px; }
  .portal-registration-card { padding: 17px 14px; }
}
.portal-obas-detail-futuristic .portal-quotation-download { background: var(--obas-cyan); box-shadow: 0 6px 18px rgba(0, 214, 163, .18); color: #031017 !important; }
.portal-obas-detail-futuristic .portal-quotation-download:hover { background: #54e7bf; }
.portal-obas-detail-futuristic .portal-obas-detail-header-actions .portal-home-icon-link { border-color: rgba(0, 214, 163, .32); }
.portal-obas-detail-futuristic .portal-obas-detail-header-actions .portal-home-icon-link:hover { border-color: var(--obas-cyan); color: var(--obas-gold) !important; }

/* Keep the OBAS access prompt compact: actions stay inline instead of becoming full-width cards. */
.portal-access-prompt .portal-service-launcher-panel { max-width: 560px; padding: 22px; }
.portal-access-prompt .portal-service-launcher-heading { gap: 14px; margin-bottom: 16px; }
.portal-access-prompt .portal-service-launcher-heading h2 { font-size: clamp(1.25rem, 2.5vw, 1.7rem); }
.portal-access-prompt .portal-service-launcher-heading p:not(.portal-eyebrow) { font-size: .7rem; }
.portal-access-prompt-actions { align-items: center; gap: 8px; }
.portal-access-prompt-actions .portal-button {
  border-radius: 8px;
  font-size: .66rem;
  gap: 5px;
  min-height: 32px;
  padding: 7px 10px;
  width: auto;
}
.portal-access-prompt-actions .portal-button span { font-size: .8rem; line-height: 1; }

@media (max-width: 620px) {
  .portal-access-prompt .portal-service-launcher-panel { padding: 18px 15px; }
  .portal-access-prompt-actions .portal-button { flex: 0 1 auto; width: auto; }
}

/* UMS glass verification surface: public customer access over the campus digital backdrop. */
.portal-verification-page {
  background:
    linear-gradient(115deg, rgba(3, 18, 46, .92), rgba(4, 67, 78, .72) 52%, rgba(8, 25, 49, .78)),
    url('/assets/iics_portal/images/iics_public_access_hero.png') center / cover;
  color: #10253c;
  min-height: 100vh;
  overflow: hidden;
  position: relative;
}
.portal-verification-page::before {
  background-image: linear-gradient(rgba(92, 240, 224, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(92, 240, 224, .08) 1px, transparent 1px);
  background-size: 42px 42px;
  content: "";
  inset: 0;
  mask-image: linear-gradient(110deg, rgba(0, 0, 0, .9), transparent 72%);
  opacity: .58;
  pointer-events: none;
  position: absolute;
}
.portal-verification-page::after {
  background: radial-gradient(circle at 78% 24%, rgba(255, 203, 96, .24), transparent 24%), radial-gradient(circle at 14% 82%, rgba(0, 217, 255, .18), transparent 28%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.portal-verification-page .portal-header {
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  background: rgba(3, 15, 35, .58);
  border-bottom: 1px solid rgba(171, 238, 230, .18);
  position: relative;
  z-index: 2;
}
.portal-verification-page .portal-header-back {
  border-color: rgba(196, 237, 230, .26);
  color: #eafdfa;
}
.portal-verification-page .portal-header-back:hover,
.portal-verification-page .portal-header-back:focus-visible {
  border-color: rgba(255, 203, 96, .72);
  color: #ffcf7a;
}
.portal-verification-shell {
  min-height: calc(100vh - 76px);
  padding: 44px 20px 64px;
  position: relative;
  z-index: 1;
}
.portal-verification-card {
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  background: linear-gradient(145deg, rgba(255, 255, 255, .88), rgba(232, 249, 247, .68));
  border: 1px solid rgba(224, 255, 249, .64);
  border-radius: 20px;
  box-shadow: 0 28px 80px rgba(1, 11, 30, .38), inset 0 1px rgba(255, 255, 255, .82);
  max-width: 560px;
  padding: 34px clamp(22px, 5vw, 46px) 30px;
}
.portal-verification-card-top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: center;
  margin-bottom: 22px;
}
.portal-verification-chip {
  border: 1px solid rgba(13, 74, 93, .16);
  border-radius: 999px;
  color: #31566d;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .08em;
  padding: 6px 10px;
  text-transform: uppercase;
}
.portal-verification-chip span { color: #087765; font-size: .82rem; margin-right: 4px; }
.portal-verification-chip-public { background: rgba(255, 203, 96, .2); border-color: rgba(189, 139, 37, .28); }
.portal-verification-chip-public span { color: #a87312; }
.portal-verification-card .portal-success-icon {
  background: linear-gradient(145deg, rgba(0, 214, 163, .14), rgba(0, 217, 255, .12));
  border-color: rgba(0, 137, 135, .28);
  box-shadow: 0 0 0 6px rgba(0, 214, 163, .07), 0 8px 24px rgba(0, 108, 129, .14);
  color: #087765;
}
.portal-verification-card .portal-eyebrow { color: #087765; font-size: .58rem; letter-spacing: .15em; margin-top: 16px; }
.portal-verification-card h1 { color: #0b2d48; font-weight: 800; letter-spacing: -.035em; }
.portal-verification-card > p:not(.portal-eyebrow):not(.portal-form-status):not(.portal-verification-note) { color: #3f5c70; }
.portal-verification-note {
  align-items: center;
  color: #4d6b78;
  display: flex;
  font-size: .66rem;
  gap: 7px;
  justify-content: center;
  line-height: 1.45;
  margin: 18px auto 0;
  max-width: 390px;
}
.portal-verification-note span { color: #bc8617; font-size: 1rem; }
.portal-verification-card .portal-button-primary { box-shadow: 0 8px 22px rgba(0, 135, 119, .2); }
.portal-verification-card .portal-button-outline { border-color: rgba(8, 119, 101, .3); color: #087765 !important; }

@media (max-width: 560px) {
  .portal-verification-shell { padding: 28px 14px 42px; }
  .portal-verification-card { border-radius: 16px; padding: 27px 18px 24px; }
  .portal-verification-chip { font-size: .52rem; }
  .portal-verification-card h1 { font-size: 1.55rem; }
  .portal-verification-actions { flex-direction: column; }
  .portal-verification-actions .portal-button { width: 100%; }
}

/* IICS-only password recovery and reset surfaces. */
.portal-password-page {
  background:
    linear-gradient(120deg, rgba(238, 247, 255, .78), rgba(255, 249, 232, .84)),
    url('/assets/iics_portal/images/iics_login_futuristic_ums.png') center / cover fixed;
  margin: -24px -15px 0;
  min-height: 100vh;
  overflow: visible;
}
.portal-password-page .portal-header {
  background: rgba(3, 18, 46, .68);
  border-bottom-color: rgba(255, 255, 255, .18);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.portal-password-page .portal-header-back { color: #fff; }
.portal-password-shell {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: calc(100vh - 70px);
  padding: 34px 18px 50px;
}
.portal-password-card {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(237, 247, 255, .74)),
    var(--portal-password-image) center / cover;
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 18px;
  box-shadow: 0 25px 70px rgba(4, 19, 47, .2), inset 0 1px 0 rgba(255, 255, 255, .95);
  max-width: 510px;
  overflow: hidden;
  padding: 30px;
  position: relative;
  width: 100%;
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}
.portal-password-card::before {
  background: linear-gradient(135deg, rgba(40, 100, 240, .1), rgba(0, 217, 255, .04) 48%, rgba(255, 189, 89, .12));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.portal-password-card-content { position: relative; z-index: 1; }
.portal-password-card .portal-mobile-back { display: none; }
.portal-password-card .portal-auth-heading { margin: 17px 0 22px; }
.portal-password-card .portal-auth-heading h1 {
  color: #173764;
  font-size: clamp(1.65rem, 3vw, 2.2rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.12;
  margin: 0 0 8px;
}
.portal-password-card .portal-auth-heading p:not(.portal-eyebrow) {
  color: #294d78;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.55;
  margin: 0;
}
.portal-password-card .portal-form-field { color: #173764; }
.portal-password-card .portal-form-field input {
  background: rgba(255, 255, 255, .8);
  border-color: rgba(133, 177, 224, .52);
  color: #111827;
}
.portal-password-card .portal-password-toggle { color: #087c9a; }
.portal-password-card .portal-form-status { min-height: 22px; }
.portal-password-help {
  align-items: flex-start;
  background: rgba(255, 255, 255, .42);
  border: 1px solid rgba(133, 177, 224, .24);
  border-radius: 9px;
  color: #294d78;
  display: flex;
  font-size: .65rem;
  gap: 8px;
  line-height: 1.45;
  margin-top: 17px;
  padding: 9px 10px;
}
.portal-password-help span { color: #087c9a; font-size: .9rem; line-height: 1; }
.portal-password-help p { margin: 0; }
.portal-password-card .portal-auth-create { border-top: 1px solid rgba(133, 177, 224, .24); margin-top: 18px; padding-top: 15px; }
.portal-password-card .portal-auth-create a { color: #087c9a; font-weight: 800; }

@media (max-width: 560px) {
  .portal-password-page { background-attachment: scroll; }
  .portal-password-shell { min-height: 0; padding: 24px 13px 38px; }
  .portal-password-card { border-radius: 15px; padding: 21px 17px; }
  .portal-password-card .portal-mobile-back { display: inline-block; }
}
