* { box-sizing:border-box; }
:root { color-scheme:light; --cp-navy:#0b1d2c; --cp-muted:#637887; --cp-orange:#ffae3f; }
body.cp-page { margin:0; background:#f3f5f5; color:var(--cp-navy); font-family:system-ui,-apple-system,'Segoe UI',sans-serif; font-size:15px; line-height:1.5; }
.cp-page a { color:inherit; text-decoration:none; }
.cp-page button,.cp-page input,.cp-page select,.cp-page textarea { font:inherit; }
.cp-page button { cursor:pointer; }
.cp-page svg { width:22px; height:22px; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; fill:none; flex-shrink:0; }
.cp-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px max(24px,calc((100vw - 1140px)/2)); background:#091b2b; color:#fff; }
.cp-brand { display:flex; align-items:center; gap:20px; }
.cp-brand img { width:172px; max-height:58px; object-fit:contain; }
.cp-brand span { border-left:1px solid #ffffff25; padding-left:20px; font-size:12px; color:#b1c6d6; }
.cp-header nav { display:flex; align-items:center; gap:20px; font-size:12px; }
.cp-header form { margin:0; }
.cp-ghost { padding:8px 14px; border:1px solid #ffffff30; border-radius:9px; background:#ffffff08; color:#fff; }
.cp-main { max-width:1140px; margin:0 auto; padding:40px 24px 60px; min-height:calc(100dvh - 170px); }
.cp-page h1,.cp-page h2,.cp-page h3,.cp-page p { margin-top:0; }
.cp-page h1 { font-size:clamp(30px,4vw,48px); line-height:1.13; letter-spacing:-.04em; margin-bottom:18px; }
.cp-page h2 { font-size:25px; line-height:1.2; letter-spacing:-.025em; margin-bottom:12px; }
.cp-page h3 { font-size:17px; line-height:1.35; margin-bottom:8px; }
.cp-page p { color:var(--cp-muted); line-height:1.7; }
.cp-eyebrow { display:block; margin-bottom:12px; color:#b4741d; font-size:10px; font-weight:850; letter-spacing:.14em; }
.cp-login-layout,.cp-password-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:65px; align-items:center; padding:20px 0; }
.cp-login-copy { background:radial-gradient(ellipse at bottom left,#d6ebe540,transparent 70%); padding:24px 0; }
.cp-login-copy em { font-style:normal; color:#cc7b13; }
.cp-login-copy p { max-width:440px; }
.cp-benefits { display:grid; gap:19px; margin-top:35px; font-size:13px; }
.cp-benefits span { display:flex; align-items:center; gap:12px; }
.cp-benefits svg { color:#248c81; }
.cp-card { background:#fff; border:1px solid #dce5e8; border-radius:22px; box-shadow:0 16px 50px #102c4010; padding:30px; }
.cp-login-form { display:grid; gap:18px; }
.cp-login-form h2,.cp-login-form p { margin:0; }
.cp-login-form p { font-size:13px; }
.cp-page label { display:grid; gap:7px; color:#334b5d; font-size:12px; font-weight:700; }
.cp-page input,.cp-page select,.cp-page textarea { width:100%; min-width:0; padding:12px 14px; border:1px solid #cad8df; border-radius:10px; background:#f9fbfc; color:#172f42; font-size:15px; font-weight:400; }
.cp-page input,.cp-page select { min-height:46px; }
.cp-page textarea { resize:vertical; }
.cp-page input:focus-visible,.cp-page select:focus-visible,.cp-page textarea:focus-visible { outline:2px solid #ffb347; outline-offset:2px; }
.cp-page button:focus-visible,.cp-page a:focus-visible { outline:2px solid #c98325; outline-offset:3px; }
.cp-page small { color:var(--cp-muted); font-size:11px; }
.cp-primary { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:12px 19px; min-height:46px; border:0; border-radius:11px; background:linear-gradient(110deg,#ffbf59,#ff9b24); color:#142537!important; font-size:13px; font-weight:800; box-shadow:0 5px 15px #ff9b2420; }
.cp-primary:hover { filter:brightness(1.04); }
.cp-icon-badge { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:#edf5f3; color:#247f78; }
.cp-password-field { position:relative; }
.cp-password-field input { padding-right:73px; }
.cp-password-field button { position:absolute; right:7px; top:8px; padding:5px 8px; border:0; border-radius:7px; color:#577182; background:#eaf0f2; font-size:11px; }
.cp-help { color:#437388!important; font-size:12px; line-height:1.6; }
.cp-help:hover { text-decoration:underline; }
.cp-alert { margin-bottom:22px; border:1px solid; padding:14px 18px; border-radius:12px; font-size:13px; }
.cp-success { background:#e8f7ef; border-color:#a9ddc2; color:#176040; }
.cp-error { background:#fff0ed; border-color:#eac0b5; color:#9b3629; }
.cp-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; padding:30px; border:1px solid #284458; border-radius:23px; background:radial-gradient(ellipse at right,#20546870,transparent 60%),#0b2031; color:#fff; }
.cp-welcome h1 { font-size:36px; margin-bottom:10px; }
.cp-welcome p { margin:0; color:#b7cbd8; font-size:14px; }
.cp-welcome .cp-eyebrow { color:#ffcc89; }
.cp-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:26px; }
.cp-stats > a { display:flex; align-items:center; gap:14px; padding:22px; background:#fff; border:1px solid #dce5e8; border-radius:17px; transition:border-color .2s; }
.cp-stats > a:hover { border-color:#a4c1c7; }
.cp-stats > a > svg { margin-left:auto; width:17px; color:#8da4b2; }
.cp-stats strong { display:block; font-size:27px; line-height:1.2; margin-bottom:4px; }
.cp-stats span:not(.cp-icon-badge) { font-size:11px; color:var(--cp-muted); }
.cp-stats strong.cp-stat-text { font-size:15px; }
.cp-tabs { display:flex; gap:8px; flex-wrap:wrap; padding:6px; margin-bottom:28px; background:#e7edef; border-radius:12px; }
.cp-tabs a { padding:10px 16px; border-radius:8px; font-size:12px; font-weight:650; color:#607888; }
.cp-tabs a[aria-current] { background:#fff; color:#152f41; box-shadow:0 2px 6px #102c4009; }
.cp-section { margin:24px 0; }
.cp-section > header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.cp-section header h2 { margin:0; }
.cp-section header .cp-eyebrow { margin-bottom:6px; }
.cp-section header input { width:240px; font-size:12px; min-height:40px; background:#fff; }
.cp-section header a { font-size:12px; color:#477a91; }
.cp-documents { display:grid; gap:12px; }
.cp-document { display:flex; align-items:center; gap:18px; background:#fff; border:1px solid #dce5e8; border-radius:16px; padding:20px; }
.cp-document[hidden] { display:none; }
.cp-document-icon { display:grid; place-items:center; width:48px; height:55px; border-radius:12px; background:#fff2dd; color:#b77620; flex-shrink:0; }
.cp-document h3 { margin:6px 0 3px; overflow-wrap:anywhere; }
.cp-tag { display:inline-flex; align-items:center; font-size:10px; color:#377b78; background:#e9f4ef; padding:4px 8px; border-radius:6px; }
.cp-download { display:flex; align-items:center; justify-content:center; gap:8px; margin-left:auto; padding:10px 14px; border:1px solid #d0dfe5; border-radius:9px; font-size:12px; color:#2b586e!important; flex-shrink:0; }
.cp-download svg { width:17px; }
.cp-empty { text-align:center; padding:35px 24px; border:1px dashed #bacfd6; border-radius:17px; background:#ffffff60; }
.cp-empty > svg { width:33px; height:33px; color:#7896a6; margin-bottom:12px; }
.cp-empty p { font-size:13px; margin-bottom:14px; }
.cp-empty a { color:#277285; font-size:12px; font-weight:700; }
.cp-request { background:#fff; border:1px solid #dce5e8; border-radius:15px; margin-bottom:12px; }
.cp-request summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px; cursor:pointer; list-style:none; }
.cp-request summary::-webkit-details-marker { display:none; }
.cp-request summary small { display:block; margin-top:5px; }
.cp-status-new { background:#fff2dd; color:#986318; }
.cp-status-closed { background:#e8edef; color:#617780; }
.cp-request-content { border-top:1px solid #edf1f3; margin:0 20px; padding:18px 0; }
.cp-request-content p { font-size:14px; white-space:normal; overflow-wrap:anywhere; }
.cp-reply { padding:16px; border-left:3px solid #43a38f; border-radius:0 10px 10px 0; background:#f0f7f4; }
.cp-reply strong { font-size:12px; color:#247461; }
.cp-reply p { margin:8px 0 0; }
.cp-request-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:40px; align-items:start; }
.cp-request-layout > div { padding:25px 0; }
.cp-request-layout h2 { font-size:32px; }
.cp-footer { display:flex; justify-content:center; gap:20px; padding:20px; color:#7a8c96; font-size:11px; border-top:1px solid #dce5e8; }
.cp-footer a { color:#456e81; }
@media(max-width:800px) {
 .cp-header { padding:15px 20px; }
 .cp-brand span { display:none; }
 .cp-main { padding:26px 18px 40px; }
 .cp-login-layout,.cp-password-layout,.cp-request-layout { grid-template-columns:1fr; gap:22px; }
 .cp-login-copy { padding:0; }
 .cp-benefits { gap:13px; margin-top:22px; }
 .cp-login-copy h1 { font-size:37px; }
 .cp-stats { gap:10px; }
 .cp-stats > a { padding:15px; gap:10px; }
 .cp-stats > a > svg { display:none; }
 .cp-stats .cp-icon-badge { display:none; }
 .cp-welcome { padding:24px; }
}
@media(max-width:560px) {
 .cp-header { padding:13px 16px; }
 .cp-brand img { width:135px; }
 .cp-header nav { gap:12px; }
 .cp-card { padding:22px; border-radius:18px; }
 .cp-welcome { display:block; padding:23px; }
 .cp-welcome h1 { font-size:28px; overflow-wrap:anywhere; }
 .cp-welcome .cp-primary { margin-top:20px; }
 .cp-stats { grid-template-columns:1fr 1fr; }
 .cp-stats > a:last-child { grid-column:1/-1; }
 .cp-stats > a:last-child > svg { display:block; }
 .cp-stats > a:last-child > div { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
 .cp-tabs { gap:4px; }
 .cp-tabs a { padding:9px 10px; font-size:11px; }
 .cp-section > header { align-items:flex-start; flex-wrap:wrap; }
 .cp-section header input { width:100%; }
 .cp-document { display:grid; grid-template-columns:40px minmax(0,1fr); gap:12px; padding:16px; }
 .cp-document-icon { width:40px; height:48px; }
 .cp-download { grid-column:1/-1; width:100%; margin:0; }
 .cp-document h3 { font-size:15px; }
 .cp-page input,.cp-page select,.cp-page textarea { font-size:16px; }
 .cp-request summary { padding:16px; }
 .cp-request-content { margin:0 16px; }
 .cp-footer { flex-wrap:wrap; gap:10px; }
}
/* Keep the mobile sign-in form close to the top of the page. */
@media(max-width:560px) {
 .cp-main:has(.cp-login-layout) { padding:20px 16px 28px; min-height:0; }
 .cp-login-layout { gap:16px; padding:0; }
 .cp-login-copy .cp-eyebrow { margin-bottom:8px; font-size:9px; }
 .cp-login-copy h1 { font-size:28px; line-height:1.16; margin-bottom:0; }
 .cp-login-copy > p { display:none; }
 .cp-login-copy .cp-benefits { display:grid; gap:9px; margin-top:15px; font-size:12px; }
 .cp-login-copy .cp-benefits span { gap:9px; }
 .cp-login-copy .cp-benefits svg { width:18px; height:18px; }
 .cp-login-layout .cp-login-form { padding:20px; gap:13px; }
 .cp-login-layout .cp-login-form > .cp-icon-badge { display:none; }
 .cp-login-layout .cp-login-form h2 { font-size:21px; }
 .cp-login-layout .cp-login-form p { font-size:12px; line-height:1.5; }
 .cp-login-layout .cp-login-form label { gap:5px; }
 .cp-login-layout .cp-help { font-size:11px; line-height:1.5; }
}
@media(prefers-reduced-motion:reduce) { .cp-page * { transition:none!important; } }
