.portal-demo{--portal-aqua:#155f6c;background:var(--paper);color:var(--ink)}
.demo-banner{position:relative;z-index:5;display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding:12px 24px;background:var(--aqua-deep,#0c2c33);color:var(--cream);font-size:13px;line-height:1.5}
.demo-banner strong{text-transform:uppercase;letter-spacing:.1em;color:#a9e1e8;font-size:11px}
.portal-shell{display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1700px;margin:auto}
.portal-side{position:sticky;top:0;align-self:start;min-height:calc(100dvh - 50px);padding:38px 25px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:36px}
.portal-brand{display:flex;flex-direction:column;gap:18px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.portal-brand img{width:95px;height:auto}.portal-brand b{display:block;font-size:14px;letter-spacing:0;margin-top:5px}
.portal-side nav{display:grid;gap:8px}.portal-side nav a{display:flex;gap:17px;padding:12px 10px;border-radius:6px;font-family:var(--f-mono);font-size:11px;color:var(--portal-aqua)}
.portal-side nav a span{font-family:var(--f-body);font-size:14px;color:var(--ink)}.portal-side nav a:hover,.portal-side nav a:focus-visible{background:var(--panel)}
.side-note{border-top:1px solid var(--line);padding-top:26px}.side-note p{font-size:13px;color:var(--ink-dim);margin-top:12px}.back-link{font-size:13px;color:var(--portal-aqua)}
.portal-main{padding:clamp(25px,4.5vw,70px);min-width:0}.portal-heading{display:flex;align-items:start;justify-content:space-between;gap:25px;margin-bottom:36px}
.portal-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--portal-aqua)}
.portal-heading h1{font-family:var(--f-display);font-size:clamp(36px,4.5vw,64px);letter-spacing:-.03em;line-height:1.05;margin:18px 0 20px;text-transform:uppercase}.portal-heading em{font-style:normal;color:var(--portal-aqua)}
.portal-heading>div>p:last-child{color:var(--ink-dim);font-size:16px}.portal-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:12px 20px;border-radius:100px;border:1px solid var(--portal-aqua);background:var(--portal-aqua);color:var(--cream);font-size:12px;font-weight:700;line-height:1.4}
.portal-button:hover{background:#0c3943}.portal-button.secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}.portal-button.secondary:hover{background:var(--panel)}
.portal-button:disabled{opacity:.5;cursor:not-allowed}.portal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stat{padding:25px;border:1px solid var(--line);background:var(--panel);border-radius:10px}.stat h2{font-family:var(--f-display);font-size:clamp(30px,3vw,44px);letter-spacing:-.03em;margin:20px 0 4px;line-height:1.2}.stat h2 span{font-family:var(--f-body);font-size:12px;letter-spacing:0;margin-left:5px}.stat>p:not(.portal-label){font-size:14px}.stat-credit{background:#0c2c33;color:var(--cream)}.stat-credit .portal-label{color:#a9e1e8}.stat-credit a{display:block;font-size:12px;color:#a9e1e8;margin-top:17px}
.portal-status{display:inline-block;font-size:10px;padding:5px 8px;border:1px solid var(--line-strong);border-radius:30px;margin-top:14px}.sample-note{font-size:11px;color:var(--ink-dim);line-height:1.6;margin-top:14px}
.portal-section{padding-top:55px;scroll-margin-top:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.section-title h2{font-family:var(--f-display);font-size:clamp(24px,3vw,36px);line-height:1.2;text-transform:uppercase;margin-top:8px;letter-spacing:-.02em}.portal-chip{padding:6px 10px;background:var(--panel);border-radius:50px;font-size:10px;white-space:nowrap}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portal-card{padding:26px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.35);min-width:0}.portal-card h3{font-size:21px;font-family:var(--f-display);line-height:1.3;text-transform:uppercase;margin:12px 0}.portal-card>p{color:var(--ink-dim);font-size:14px}
.visit-progress{display:flex;gap:6px;margin-top:25px}.visit-progress span{flex:1;border-top:3px solid var(--line);padding-top:9px;font-size:10px;color:var(--ink-dim)}.visit-progress .done{border-color:var(--portal-aqua);color:var(--portal-aqua)}
.visit-grid details{margin-top:20px;font-size:13px}.visit-grid summary{cursor:pointer;color:var(--portal-aqua);font-weight:600}.visit-checklist{display:grid;gap:9px;margin-top:20px}.visit-checklist li::before{content:'✓';margin-right:12px;color:var(--portal-aqua)}
.credit-policy{padding:22px 25px;background:var(--panel);border-left:3px solid var(--portal-aqua);border-radius:0 8px 8px 0;font-size:14px}.credit-policy strong{font-size:18px}.credit-policy p{margin-top:6px;color:var(--ink-dim)}
.ledger-toolbar{display:flex;align-items:center;gap:16px;margin:24px 0 12px;font-size:12px}.portal-demo select,.portal-demo input:not([type=radio]):not([type=checkbox]){min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px;max-width:100%}
.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;min-width:490px}caption{text-align:left;padding:14px 18px;font-size:11px;color:var(--ink-dim);background:var(--paper-2)}th,td{padding:16px 18px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--panel);font-size:10px;text-transform:uppercase;letter-spacing:.08em}tbody tr:last-child td{border-bottom:0}td.earned{color:var(--portal-aqua);font-weight:700}td.used{color:#865416}
.section-intro{font-size:15px;color:var(--ink-dim);max-width:65ch;margin-bottom:25px}.request-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:start}.request-grid form{display:grid;gap:13px}fieldset{border:0;min-width:0}legend{font-size:13px;font-weight:700;margin-bottom:13px}.service-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-options label{padding:14px;display:flex;align-items:start;gap:9px;border:1px solid var(--line);border-radius:6px;font-size:12px;cursor:pointer}.service-options label:has(input:checked){border-color:var(--portal-aqua);background:#e2eeec}.service-options small{display:block;font-size:10px;margin-top:5px;color:var(--ink-dim)}input[type=radio],input[type=checkbox]{accent-color:var(--portal-aqua);width:16px;height:16px;flex-shrink:0;margin-top:2px}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}.form-two label{display:block;margin-bottom:8px;font-size:12px}.form-two input{width:100%}.request-grid form>label{font-size:12px}.request-grid small{font-size:11px;line-height:1.5;color:var(--ink-dim)}.form-two small{display:block;margin-top:7px}.credit-toggle{display:flex;gap:10px;align-items:center;margin-top:8px}.request-grid form>.portal-button{margin-top:12px}
.request-summary{position:sticky;top:25px;background:var(--panel)}.request-summary dl{margin-top:25px}.request-summary dl>div{display:flex;gap:15px;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}.request-summary dd{font-weight:700;text-align:right}.request-summary .summary-total{font-size:14px;color:var(--portal-aqua);border-bottom:0}.request-summary>p:last-of-type{font-size:12px;margin-top:20px}.demo-review{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.demo-review h4{font-size:15px}.demo-review p{font-size:12px;line-height:1.6;margin:12px 0 20px}.demo-review .portal-button{width:100%}.text-button{font-size:12px;text-decoration:underline;padding:12px 0;color:var(--portal-aqua)}.demo-message{line-height:1.6;font-size:12px;color:var(--portal-aqua)!important}.request-list{margin-top:20px}.request-list ul{display:grid;gap:12px}.request-list li{padding:16px;background:var(--paper-2);font-size:13px;border-radius:6px}.request-list li small{display:block;margin-top:6px;color:var(--ink-dim)}.portal-foot{padding:50px 0 20px;font-size:12px;color:var(--portal-aqua)}.portal-foot span{color:var(--ink-dim);font-size:11px}
[hidden]{display:none!important}
.portal-side,.portal-heading>div{min-width:0}.portal-heading h1{overflow-wrap:anywhere}.portal-side nav{max-width:100%}
@media(max-width:1100px){.portal-shell{grid-template-columns:205px minmax(0,1fr)}.portal-side{padding:30px 20px}.request-grid{grid-template-columns:1fr}.request-summary{position:static}.portal-stats{gap:10px}.stat{padding:20px}}
@media(max-width:800px){.portal-shell{grid-template-columns:1fr}.portal-side{position:static;min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:20px;gap:20px}.portal-brand{flex-direction:row;align-items:center}.portal-brand img{width:56px}.portal-side nav{display:flex;overflow:auto;gap:5px}.portal-side nav a{white-space:nowrap;font-size:9px;padding:9px;gap:7px}.portal-side nav a span{font-size:12px}.side-note,.back-link{display:none}.portal-main{padding:30px 20px}.portal-heading{flex-wrap:wrap}.portal-heading h1{font-size:40px}.portal-stats{grid-template-columns:1fr}.stat h2{font-size:37px;margin:12px 0 5px}.visit-grid{grid-template-columns:1fr}.section-title{flex-wrap:wrap}.ledger-toolbar{align-items:start;flex-direction:column;gap:8px}.form-two{grid-template-columns:1fr}.portal-section{padding-top:40px}.demo-banner{gap:5px;text-align:center;padding:12px 16px;font-size:11px}.demo-banner strong{width:100%}.portal-card{padding:22px}.service-options{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
