:root { --portal-ink:#202b4a; --portal-muted:#69738b; --portal-indigo:#4657cf; --portal-line:#e3e6f1; --portal-surface:#fff; }
* { box-sizing:border-box; }
.public-portal-page { background:linear-gradient(145deg,#f5f7ff 0,#eef1fb 48%,#f8f9fc 100%); color:var(--portal-ink); display:flex; flex-direction:column; min-height:100vh; }
.public-portal-header { align-items:center; display:flex; justify-content:space-between; margin:0 auto; max-width:1050px; padding:25px 30px; width:100%; }
.public-portal-header .brand { color:var(--portal-ink); text-decoration:none; }
.public-office-phone { color:#354276; display:grid; font-size:10px; line-height:1.25; text-align:right; text-decoration:none; }.public-office-phone span { color:#8b93a8; font-weight:700; }.public-office-phone strong { color:#3648b8; font-size:12px; margin-top:2px; }
.public-login-link { border:1px solid #d7dcef; border-radius:9px; color:#3d4db7; font-size:12px; font-weight:800; padding:9px 13px; text-decoration:none; }
.public-login-link:hover { background:#fff; color:#293aaf; }
.public-portal-content { flex:1; margin:0 auto; max-width:960px; padding:34px 30px 64px; width:100%; }
.public-portal-hero { margin:5px auto 30px; max-width:680px; text-align:center; }
.public-portal-hero .eyebrow { color:#5262cf; font-size:11px; font-weight:900; letter-spacing:1.3px; margin:0 0 10px; text-transform:uppercase; }
.public-portal-hero h1 { color:#202b4a; font-size:36px; letter-spacing:-1.1px; margin:0; }
.public-portal-hero > p:last-child { color:var(--portal-muted); font-size:14px; line-height:1.65; margin:12px auto 0; max-width:540px; }
.public-portal-form { display:grid; gap:18px; }
.public-portal-page .surface { background:rgba(255,255,255,.97); border:1px solid rgba(221,225,239,.9); box-shadow:0 16px 38px rgba(38,51,105,.07); }
.public-portal-page .form-surface,.public-portal-page .public-document-surface { padding:28px; }
.public-portal-page .surface-header { align-items:flex-start; gap:16px; }
.public-portal-page .surface-header h2 { color:#283354; font-size:17px; margin:0; }
.public-portal-page .surface-header p { color:#7a8399; font-size:12px; line-height:1.5; margin:6px 0 0; }
.portal-date { background:#f1f3ff; border-radius:20px; color:#4a5ac1; font-size:11px; font-weight:800; padding:7px 10px; white-space:nowrap; }
.public-portal-page .form-grid { gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:24px; }
.public-portal-page .field-group label { color:#434c67; font-size:12px; font-weight:800; margin-bottom:7px; }
.public-portal-page .field-group input,.public-portal-page .field-group select,.public-portal-page .field-group textarea { background:#fcfcfe; border-color:#dce0ed; border-radius:8px; font-size:13px; }
.public-portal-page .field-group input:focus,.public-portal-page .field-group select:focus,.public-portal-page .field-group textarea:focus { border-color:#7483df; box-shadow:0 0 0 3px rgba(70,87,207,.12); }
.public-portal-page input[readonly] { background:#f4f5f9; color:#6d7589; cursor:default; }
.public-portal-page .field-full { grid-column:1 / -1; }
.public-document-surface { padding-top:23px !important; }
.public-portal-page .document-inputs { margin-top:20px; }
.public-portal-page .document-file-row { background:#f9faff; border:1px dashed #cdd4ef; border-radius:9px; padding:9px; }
.public-portal-page .document-upload-actions { margin-top:11px; }
.public-form-actions { display:flex; justify-content:flex-end; padding-top:3px; }
.public-form-actions .button { min-width:170px; }
.public-success { background:#e8f8ef; border:1px solid #bee5cd; border-radius:9px; color:#18703f; font-size:13px; font-weight:700; margin:0 auto 18px; max-width:760px; padding:13px 15px; }
.public-portal-footer { color:#81899d; font-size:11px; padding:0 30px 26px; text-align:center; }
@media (max-width:650px) { .public-portal-header { padding:18px 20px; }.public-office-phone span { display:none; }.public-office-phone strong { font-size:11px; margin:0; }.public-portal-content { padding:24px 16px 42px; }.public-portal-hero { margin-bottom:22px; }.public-portal-hero h1 { font-size:29px; }.public-portal-page .form-surface,.public-portal-page .public-document-surface { padding:20px; }.public-portal-page .form-grid { grid-template-columns:1fr; }.public-portal-page .field-full { grid-column:auto; }.portal-date { margin-top:3px; }.public-form-actions .button { width:100%; } }
.public-portal-hero { align-items:center; display:grid; gap:36px; grid-template-columns:minmax(0,1fr) 245px; margin:5px 0 30px; max-width:none; text-align:left; }.public-hero-copy { max-width:570px; }.public-portal-hero .public-hero-copy > p:last-child { margin:12px 0 0; }.public-hero-photo { background:#e7e4e2; border:6px solid rgba(255,255,255,.9); border-radius:22px; box-shadow:0 18px 35px rgba(37,47,92,.18); height:300px; margin:0; overflow:hidden; transform:rotate(1.5deg); width:245px; }.public-hero-photo img { display:block; height:100%; object-fit:cover; object-position:center 18%; width:100%; }
.public-office-details { align-items:center; background:#fff; border:1px solid #e0e4f0; border-radius:13px; display:flex; gap:24px; justify-content:space-between; margin:0 0 22px; padding:19px 22px; }.public-office-details .eyebrow { color:#5262cf; font-size:10px; font-weight:900; letter-spacing:1px; margin:0 0 5px; text-transform:uppercase; }.public-office-details h2 { color:#2b3658; font-size:15px; margin:0 0 6px; }.public-office-details address { color:#69738b; font-size:12px; font-style:normal; line-height:1.6; margin:0; }.public-office-details .button { flex:0 0 auto; white-space:nowrap; }
@media (max-width:650px) { .public-portal-hero { gap:20px; grid-template-columns:1fr; text-align:center; }.public-portal-hero .public-hero-copy > p:last-child { margin-left:auto; margin-right:auto; }.public-hero-photo { height:250px; margin:0 auto; transform:none; width:205px; } }
@media (max-width:650px) { .public-office-details { align-items:flex-start; flex-direction:column; gap:14px; padding:18px; }.public-office-details .button { width:100%; } }
.public-office-actions { align-items:flex-end; display:flex; flex-direction:column; gap:10px; }.public-office-actions .public-office-phone { padding-right:2px; }.public-office-actions .button { min-width:175px; }
@media (max-width:650px) { .public-office-actions { align-items:stretch; width:100%; }.public-office-actions .public-office-phone { padding:0; text-align:left; }.public-office-actions .button { width:100%; } }
