/* GCIT application profile: @gcit-dev/design-tokens 0.1.1, gcitLight.
   Framework-neutral mapping, scoped to the customer portal. Marketing stays
   on gcit-design 1.0.1. See docs/CUSTOMER_JOURNEYS.md for provenance/review. */
.portal-surface {
  --p-background: #fff; --p-foreground: hsl(0 0% 10%);
  --p-primary: hsl(208 65% 23%); --p-primary-foreground: #fff;
  --p-secondary: hsl(210 40% 96%); --p-muted: hsl(215 16% 47%);
  --p-border: hsl(220 13% 91%); --p-ring: hsl(174 62% 47%);
  --p-radius: .625rem;
  background: var(--p-background); color: var(--p-foreground);
}
.portal-surface h1,.portal-surface h2,.portal-surface h3 {font-family: Poppins, sans-serif; font-weight:300; color:var(--p-primary); letter-spacing:-.02em;}
.portal-surface h1 {font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.2;}
.portal-footer {margin-top:60px;border-top:1px solid var(--p-border);color:var(--p-muted);font-size:.8rem;line-height:1.8;}
.portal-footer>div {max-width:1152px;margin:auto;padding:26px 24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.portal-footer a {text-decoration:underline;text-underline-offset:3px;color:var(--p-primary);}
.portal-mobile-menu {display:none;}
.protect-selector {margin:24px 0;max-width:650px;}
.protect-status {display:flex;justify-content:space-between;align-items:center;gap:20px;border-block:1px solid var(--p-border);padding:24px 0;margin:30px 0;}
.protect-status p {margin-top:8px;color:var(--p-muted);font-size:.9rem;}
.protect-url,.protect-hash {overflow-wrap:anywhere;word-break:break-word;}
.protect-image-sources {margin-top:20px;line-height:1.7;color:var(--p-primary);}
.protect-image-sources dt {margin-top:16px;font-weight:500;}
.protect-image-sources dd {margin-top:4px;}
.portal-notice.agent-record-notice{margin-top:24px}.portal-stats .agent-record-value{font-size:1.45rem;line-height:1.6}
.agent-record-facts{margin:24px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 32px;line-height:1.7;color:var(--p-primary)}
.agent-record-facts dt{font-size:.8rem;color:var(--p-muted);margin-bottom:5px}.agent-record-facts dd{font-size:.9rem;overflow-wrap:anywhere}
.agent-check-row{align-items:flex-start}.agent-check-row .portal-badge{margin-top:3px}
@media(max-width:680px){.agent-record-facts{grid-template-columns:1fr}.protect-evidence .portal-section-heading{flex-wrap:wrap;gap:16px}.portal-stats .agent-record-value{font-size:1.05rem}}
.portal-surface section[id] {scroll-margin-top:120px;}
.protect-evidence {max-width:1050px;margin:auto;}
.protect-evidence>.portal-link {display:inline-block;margin-bottom:28px;}
.protect-evidence-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;}
.protect-capture {margin-top:24px;border:1px solid var(--p-border);border-radius:8px;overflow:hidden;}
.protect-capture img {display:block;width:100%;height:auto;}
.protect-capture figcaption {padding:12px;font-size:.8rem;line-height:1.6;color:var(--p-muted);}
.protect-subheading {font-size:1.1rem;margin-top:24px;}
.protect-list {list-style:disc;padding-left:20px;line-height:1.7;margin-top:16px;}
.protect-timeline {margin-top:24px;border-left:2px solid var(--p-border);padding-left:22px;}
.protect-timeline li {padding-bottom:24px;font-size:.9rem;line-height:1.7;}
.protect-timeline p,.protect-report>p {overflow-wrap:anywhere;}
.service-budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}
.service-budget-grid .portal-panel{margin:0;padding:24px}.service-budget-grid h3,.service-workspace h3{font-size:1.05rem;line-height:1.6}.service-budget-grid .portal-section-heading{flex-wrap:wrap;gap:12px}
.service-budget-progress{width:100%;height:8px;margin:18px 0;accent-color:var(--p-primary)}
.service-budget-progress::-webkit-progress-bar{background:var(--p-border)}.service-budget-progress::-webkit-progress-value{background:var(--p-primary)}.service-budget-progress::-moz-progress-bar{background:var(--p-primary)}
.service-workspace{padding:26px 0;border-bottom:1px solid var(--p-border)}.service-workspace>p{margin-top:12px}.service-workspace .portal-section-heading{flex-wrap:wrap;gap:14px}
@media(max-width:680px){.service-budget-grid{grid-template-columns:1fr}.service-budget-grid .portal-panel{padding:20px}}
.protect-timeline strong {font-weight:500;display:block;margin:8px 0;}
.protect-priority {font:500 1.6rem Poppins,sans-serif;color:var(--p-primary);text-align:right;}
.protect-priority small {display:block;font:400 .75rem Inter,sans-serif;color:var(--p-muted);}
.protect-hash {display:block;font-size:.75rem;margin-top:12px;}
.portal-button:disabled,.portal-link:disabled {opacity:.55;cursor:not-allowed;}
@media(max-width:680px) {.protect-evidence-grid{display:block;}.protect-status{align-items:flex-start;flex-wrap:wrap;}.protect-evidence .portal-next-step h2{font-size:1.15rem;}}
.portal-surface h2 {font-size:1.4rem;line-height:1.4;}
.portal-surface :focus-visible {outline:3px solid var(--p-primary);outline-offset:3px;box-shadow:0 0 0 2px var(--p-ring);}
.portal-layout {display:grid;grid-template-columns:208px minmax(0,1fr);gap:48px;align-items:start;}
.portal-sidebar {position:sticky;top:100px;min-width:0;}
.portal-eyebrow {font-size:.9rem;color:var(--p-muted);margin-bottom:12px;}
.portal-org {font-weight:500;font-size:1.05rem;margin-bottom:12px;overflow-wrap:anywhere;}
.portal-nav {display:grid;gap:5px;margin:28px 0;}
.portal-nav a {padding:12px 14px;border-radius:6px;font-size:.9rem;color:var(--p-primary);border-left:3px solid transparent;}
.portal-nav a:hover {background:var(--p-secondary);}
.portal-nav a[aria-current] {background:var(--p-secondary);border-left-color:var(--p-ring);font-weight:600;}
.portal-sidebar-footer {border-top:1px solid var(--p-border);padding-top:20px;font-size:.8rem;color:var(--p-muted);overflow-wrap:anywhere;}
.portal-sidebar-footer form {margin-top:12px;}
.portal-workspace {min-width:0;}
.portal-page-heading {margin-bottom:32px;}
.portal-page-heading>p:last-child {max-width:42rem;margin-top:14px;color:var(--p-muted);line-height:1.65;}
.portal-panel {border:1px solid var(--p-border);padding:28px;border-radius:var(--p-radius);background:var(--p-background);margin-bottom:24px;}
.portal-panel>h2 {margin-bottom:14px;}
.portal-muted {color:var(--p-muted);font-size:.9rem;line-height:1.6;}
.portal-form {display:grid;gap:12px;margin-top:22px;}
.portal-form label,.portal-label {font-size:.9rem;font-weight:500;}
.portal-form input:not([type=hidden]):not([type=checkbox]),.portal-form select,.portal-form textarea {width:100%;min-width:0;min-height:46px;border:1px solid #aab6c2;border-radius:6px;padding:11px 13px;background:white;color:var(--p-foreground);font-size:1rem;}
.portal-form input::placeholder {color:var(--p-muted);}
.portal-form>button {justify-self:start;}
.portal-button {display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:44px;padding:11px 18px;border:1px solid var(--p-primary);border-radius:7px;background:var(--p-primary);color:white;font-size:.9rem;font-weight:500;line-height:1.4;cursor:pointer;text-decoration:none;}
.portal-button:hover {background:#0e2d47;color:#fff;}
.portal-button-secondary {background:#fff;color:var(--p-primary);border-color:#abb9c5;}
.portal-button-secondary:hover {background:var(--p-secondary);color:var(--p-primary);}
.portal-button:disabled {opacity:.65;cursor:wait;}
.portal-link {color:var(--p-primary);text-decoration:underline;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center;font-size:.9rem;}
.portal-link.hidden {display:none;}
.portal-input-row {display:flex;gap:12px;align-items:stretch;}
.portal-input-row>input,.portal-input-row>select {flex:1;}
.portal-input-row>.portal-button {flex-shrink:0;}
.portal-badge {display:inline-flex;align-items:center;padding:5px 8px;border-radius:4px;background:var(--p-secondary);color:var(--p-primary);font-size:.75rem;line-height:1.4;font-weight:500;white-space:nowrap;}
.portal-badge-pending {background:#fff3df;color:#7c4a06;}
.portal-notice {padding:16px 18px;border:1px solid #b3d7ce;border-left:4px solid #147b68;background:#f1f9f6;border-radius:6px;margin:0 0 24px;line-height:1.6;font-size:.9rem;}
.portal-notice-error {border-color:#ecc1b7;border-left-color:#a33720;background:#fff5f2;color:#852c1a;}
.portal-next-step {padding:28px;background:var(--p-secondary);border-radius:var(--p-radius);border-top:3px solid var(--p-ring);display:flex;align-items:flex-start;gap:28px;justify-content:space-between;}
.portal-next-step>div {flex:1;}
.portal-next-step p:last-child {color:var(--p-primary);font-size:.9rem;line-height:1.7;margin-top:12px;}
.portal-next-step .portal-eyebrow {color:var(--p-primary);}
.portal-next-step>.portal-button,.portal-next-step>form {flex-shrink:0;align-self:center;}
.portal-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:30px 0;border-bottom:1px solid var(--p-border);}
.portal-stats dt {font-size:.8rem;color:var(--p-muted);margin-bottom:8px;}
.portal-stats dd {font-family:Poppins,sans-serif;font-size:2rem;color:var(--p-primary);font-weight:300;}
.portal-stats dd span {font:400 .8rem Inter,sans-serif;color:var(--p-muted);}
.portal-section {margin-top:32px;}
.portal-section-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.portal-checklist {margin-top:20px;}
.portal-checklist li {display:flex;gap:18px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--p-border);}
.portal-checklist li>.portal-badge {min-width:75px;justify-content:center;}
.portal-checklist strong {font-weight:500;font-size:.95rem;}
.portal-checklist p {color:var(--p-muted);font-size:.85rem;margin-top:5px;line-height:1.6;}
.portal-support {margin-top:30px;border-top:1px solid var(--p-border);padding-top:26px;}
.portal-support p {margin-top:12px;color:var(--p-muted);line-height:1.6;font-size:.9rem;}
.portal-actions {display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px;}
.portal-help {border-top:1px solid var(--p-border);padding:18px 0;margin-top:20px;}
.portal-help summary {color:var(--p-primary);font-size:.95rem;font-weight:500;cursor:pointer;min-height:30px;}
.portal-help>p {margin-top:12px;color:var(--p-muted);font-size:.85rem;line-height:1.6;}
.portal-instructions {list-style:decimal;padding-left:22px;margin:16px 0;font-size:.9rem;line-height:1.7;}
.portal-instructions li {padding:4px 0;overflow-wrap:anywhere;}
.portal-copy {display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--p-secondary);padding:14px;border-radius:6px;margin-bottom:16px;}
.portal-copy code {overflow-wrap:anywhere;flex:1;min-width:180px;font-size:.8rem;}
.portal-small {font-size:.8rem;line-height:1.65;color:var(--p-muted);margin-top:18px;}
.portal-small a {text-decoration:underline;}
.portal-checkbox {display:flex;gap:12px;align-items:center;min-height:44px;}
.portal-checkbox input {width:19px;height:19px;accent-color:var(--p-primary);}
.portal-records {margin-top:18px;border-top:1px solid var(--p-border);}
.portal-report-row,.portal-request-row {display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--p-border);font-size:.9rem;}
.portal-report-row>div,.portal-request-row>div {flex:1;min-width:0;overflow-wrap:anywhere;}
.portal-records strong {font-weight:500;}
.portal-records p {font-size:.8rem;color:var(--p-muted);margin-top:6px;}
.portal-report-row:hover {background:var(--p-secondary);}
.portal-empty {padding:30px 0;color:var(--p-muted);line-height:1.7;font-size:.95rem;}
.portal-empty .portal-button {margin-top:20px;}
.portal-plan-name {color:var(--p-primary);font-size:1.1rem;margin:12px 0;}
.portal-login-layout {display:grid;grid-template-columns:1fr 430px;gap:80px;align-items:start;padding:32px 0;}
.portal-login-intro {padding-top:28px;}
.portal-login-intro>p:not(.portal-eyebrow) {line-height:1.7;margin-top:22px;color:var(--p-muted);max-width:420px;}
.portal-login-steps {counter-reset:login-step;margin:30px 0;}
.portal-login-steps li {display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--p-border);font-size:.95rem;color:var(--p-primary);}
.portal-login-steps li::before {counter-increment:login-step;content:'0' counter(login-step);font:300 1.1rem Poppins,sans-serif;color:var(--p-muted);}
.portal-login-panel {padding:32px;}
.portal-login-panel .portal-button {width:100%;}
.portal-login-panel .portal-muted strong {font-weight:500;color:var(--p-primary);overflow-wrap:anywhere;}
.portal-code-input {font-size:1.7rem!important;letter-spacing:.4em;text-align:center;}
.portal-divider {display:flex;align-items:center;gap:14px;color:var(--p-muted);font-size:.8rem;margin:24px 0;}
.portal-divider::before,.portal-divider::after {content:'';height:1px;background:var(--p-border);flex:1;}
@media(max-width:900px) {.portal-layout {grid-template-columns:165px minmax(0,1fr);gap:25px;}.portal-next-step{display:block;}.portal-next-step>.portal-button,.portal-next-step>form{margin-top:20px;}.portal-login-layout {grid-template-columns:1fr 390px;gap:30px;}}
@media(max-width:680px) {
 .portal-layout {display:block;}.portal-sidebar {position:static;margin-bottom:30px;}.portal-org,.portal-sidebar>.portal-eyebrow,.portal-sidebar>.portal-badge {display:none;}
 .portal-nav {display:none;}.portal-mobile-menu {display:block;border-bottom:1px solid var(--p-border);padding-bottom:12px;color:var(--p-primary);font-size:.9rem;}.portal-mobile-menu summary{padding:12px 0;cursor:pointer;}.portal-mobile-menu nav{display:grid;gap:4px;padding-bottom:10px;}.portal-mobile-menu a{padding:12px;border-radius:6px;}.portal-mobile-menu a[aria-current]{background:var(--p-secondary);font-weight:500;}
 .portal-sidebar-footer{display:none;}.portal-panel{padding:22px 18px;}.portal-input-row{flex-direction:column;}.portal-next-step{padding:24px 20px;}
 .portal-stats{gap:16px;}.portal-stats dt{font-size:.75rem;}.portal-stats dd{font-size:1.7rem;}.portal-report-row,.portal-request-row{flex-wrap:wrap;}.portal-report-row>div,.portal-request-row>div{flex-basis:100%;}
 .portal-login-layout{display:block;padding:0;}.portal-login-intro{padding:0 0 26px;}.portal-login-intro h1{font-size:2rem;}.portal-login-steps{display:none;}.portal-login-intro>p:not(.portal-eyebrow){margin-top:14px;}.portal-login-panel{padding:24px 20px;}
}
.agent-connect{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:28px}.agent-connect h3{font:400 1.1rem Poppins,sans-serif;color:var(--p-primary)}.agent-endpoint{border-left:1px solid var(--p-border);padding-left:30px}.agent-endpoint p{margin:16px 0}.agent-endpoint>code{display:block;overflow-wrap:anywhere;background:var(--p-secondary);padding:16px;font-size:.85rem}.agent-secret{display:block;width:100%;resize:none;overflow-wrap:anywhere;margin:12px 0;padding:16px;font:400 .9rem monospace;border:1px solid var(--p-border);background:var(--p-secondary)}.agent-key-reveal label{display:block;margin-top:18px}.agent-url{overflow-wrap:anywhere}
@media(max-width:680px){.agent-connect{display:block}.agent-endpoint{margin-top:28px;padding:24px 0 0;border-left:0;border-top:1px solid var(--p-border)}}
@media print {.site-header,footer,.portal-sidebar,.portal-actions,.portal-help,form,.agent-key-reveal{display:none!important;}.portal-layout{display:block;}.portal-panel{break-inside:avoid;}}

/* Protect casework uses the existing application tokens. */
.protect-case{margin:30px 0}.protect-case h2{margin-top:5px}.protect-next-action{font-size:1.08rem;line-height:1.7;margin:20px 0 12px;max-width:55rem}.protect-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;counter-reset:case-step;margin:28px 0;padding:0;list-style:none}.protect-progress li{border-top:2px solid var(--p-ring);padding-top:14px;font-size:.9rem;line-height:1.6;color:var(--p-primary)}.protect-progress li:before{counter-increment:case-step;content:counter(case-step) '. ';font-weight:600}.protect-authority{margin-top:26px;padding-top:24px;border-top:1px solid var(--p-border)}.protect-authority>p{font-size:.9rem;line-height:1.7;margin:12px 0;color:var(--p-muted)}.protect-authority .portal-form{max-width:700px}.protect-report{padding:24px 0;border-bottom:1px solid var(--p-border)}.protect-report>p{margin:12px 0;line-height:1.7}.protect-report h3{font-size:1.2rem}.protect-report-text{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--p-secondary);font:400 .85rem/1.8 Inter,sans-serif;padding:22px;margin:20px 0;max-height:560px;overflow:auto}.protect-case .portal-notice{margin-top:22px}
@media(max-width:680px){.protect-progress{grid-template-columns:1fr;gap:14px}.protect-case .portal-section-heading,.protect-report .portal-section-heading{align-items:flex-start;flex-direction:column;gap:14px}.protect-report-text{padding:16px}}
