/* Visitor journeys, resource discovery, and practical tools. */
:root{--portal-border:#bdcfd9;--portal-panel:#fff;--portal-tint:#eaf5f7}
html[data-contrast=high],html[data-contrast=dark]{--portal-border:var(--line);--portal-panel:var(--surface-accent);--portal-tint:var(--surface-accent)}
.page-heading{padding:24px 0 30px;max-width:900px}.page-heading h1{font-size:2.5rem;letter-spacing:-.04em;line-height:1.2;margin:14px 0 18px}.page-heading>p{font-size:1.0625rem;line-height:1.8;color:var(--muted);max-width:760px}
.portal-section{margin:48px 0}.portal-section h2,.section-heading h2{font-size:1.65rem;letter-spacing:-.035em;margin:10px 0 16px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:22px}.section-heading>a,.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--teal-text);font-weight:600;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.portal-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.8fr);gap:35px;padding:38px;align-items:center}.portal-hero h1{font-size:2.875rem;letter-spacing:-.045em}.portal-hero .hero-copy{max-width:100%}.portal-hero .publisher-line{font-size:.8125rem;line-height:1.7;margin-top:24px}
.reference-map{position:relative;z-index:2;background:var(--portal-panel);border:1px solid var(--portal-border);padding:22px;border-radius:14px}.map-label{font-size:.6875rem;font-weight:700;letter-spacing:.1em;color:var(--muted)}.map-node{padding:14px 12px;border:1px solid var(--portal-border);border-radius:8px;margin-top:12px}.map-node>span{display:block;font-size:.6875rem;letter-spacing:.08em;color:var(--teal-text)}.map-node strong{display:block;font-size:1.0625rem;margin-top:4px;color:var(--openforex-blue)}.map-node small{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px}.map-reference{background:var(--portal-tint);border-color:var(--teal-text)}.map-connector{display:block;text-align:center;color:var(--teal-text);height:20px}.reference-map>a{display:flex;gap:8px;align-items:center;font-size:.8125rem;margin-top:14px;text-decoration:underline;min-height:44px;color:var(--teal-text)}
.portal-facts{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap;padding:22px 6px;border-bottom:1px solid var(--portal-border);font-size:.875rem;color:var(--muted)}.portal-facts strong{color:var(--openforex-blue);margin-right:5px}
.journey-grid,.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.journey-card,.resource-card,.path-card,.tool-panel{background:var(--portal-panel);border:1px solid var(--portal-border);border-radius:12px;padding:26px;min-width:0;overflow-wrap:anywhere}.journey-card{display:flex;flex-direction:column}.journey-icon{display:grid;place-items:center;width:44px;height:44px;background:var(--portal-tint);color:var(--teal-text);border-radius:10px}.journey-icon .icon{width:24px;height:24px}.journey-card h3,.journey-card h2{font-size:1.2rem;line-height:1.4;margin:18px 0 10px;letter-spacing:-.02em}.journey-card p{font-size:1rem;line-height:1.8;color:var(--muted);margin:0 0 18px}.journey-card>a{display:flex;align-items:center;gap:8px;min-height:44px;font-size:.9375rem;font-weight:600;color:var(--teal-text);text-decoration:underline;margin-top:auto;text-underline-offset:4px}
.concept-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;list-style:none;counter-reset:concept;padding:0}.concept-steps>li{counter-increment:concept;min-width:0}.concept-steps>li::before{content:'0' counter(concept);display:block;font-size:1.875rem;font-weight:700;color:var(--teal-text);margin-bottom:12px}.concept-steps strong{font-size:1.0625rem;color:var(--openforex-blue)}.concept-steps p{color:var(--muted);line-height:1.8}.concept-steps a{text-decoration:underline;color:var(--teal-text)}
.resource-card{display:flex;flex-direction:column;padding:24px}.resource-meta{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;color:var(--muted);font-size:.75rem}.resource-card h3{font-size:1.1875rem;line-height:1.5;margin:16px 0 10px;letter-spacing:-.02em}.resource-card h3 a:hover{text-decoration:underline}.resource-card>p{color:var(--muted);font-size:.9375rem;line-height:1.8;margin:0 0 20px}.resource-actions{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:14px;border-top:1px solid var(--portal-border)}.resource-actions>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--teal-text);text-decoration:underline;font-size:.875rem}
:is(.resource-actions,.article-tools,.reading-summary,.tool-actions,.tool-panel,.library-controls) button{padding:9px 14px;min-height:44px;border:1px solid var(--muted);border-radius:7px;background:var(--surface);color:var(--openforex-blue);font-size:.9375rem;cursor:pointer;line-height:1.5;overflow-wrap:anywhere}.save-document[aria-pressed=true],[data-mark-read][aria-pressed=true]{border-width:2px;font-weight:700;background:var(--portal-tint)}
.portal-callout{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--portal-tint);border:1px solid var(--portal-border);border-left:4px solid var(--teal-text);border-radius:12px;padding:30px;margin:38px 0}.portal-callout>div{min-width:0;flex:1 1 300px}.portal-callout h2{font-size:1.65rem;line-height:1.35;margin:12px 0}.portal-callout p{color:var(--muted);line-height:1.8;margin-bottom:0}.portal-callout .button{font-size:.9375rem}
.link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.link-grid>a{display:flex;align-items:center;gap:14px;padding:22px;background:var(--portal-panel);border:1px solid var(--portal-border);border-radius:10px;color:var(--openforex-blue)}.link-grid>a>span{min-width:0;flex:1}.link-grid strong{display:block;font-size:1rem}.link-grid small{display:block;font-size:.875rem;color:var(--muted);margin-top:5px}.link-grid>a:hover strong{text-decoration:underline}.link-grid .icon{color:var(--teal-text);flex-shrink:0}
.path-grid{display:grid;grid-template-columns:1fr;gap:24px}.path-card h2{font-size:1.6rem;line-height:1.4;margin:14px 0}.path-card>p{max-width:750px;color:var(--muted)}.path-card ol{list-style-position:outside;padding-left:24px;margin:20px 0}.path-card li{padding:8px 4px;line-height:1.8}.path-card li a{display:inline-block;min-height:44px;padding:8px 0;color:var(--teal-text);text-decoration:underline}.read-badge{margin-left:10px;font-size:.8125rem;font-weight:700;border:1px solid var(--teal-text);border-radius:5px;padding:3px 6px;color:var(--teal-text)}.path-card .path-progress{font-weight:600;color:var(--teal-text)}
.local-note{color:var(--muted);font-size:.875rem;line-height:1.8;margin:26px 0}.local-note a{color:var(--teal-text);text-decoration:underline}.empty-panel{padding:38px 24px;border:1px dashed var(--muted);border-radius:12px;background:var(--portal-panel);text-align:center}.empty-panel h2{font-size:1.5rem}.reading-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.reading-summary button{display:flex;align-items:center;gap:8px}
.library-controls{display:grid;grid-template-columns:2fr 1.3fr 1fr;gap:14px;padding:22px;border:1px solid var(--portal-border);border-radius:10px;background:var(--portal-panel);align-items:end}.library-controls>div{min-width:0}.library-controls label,.tool-panel label{display:block;font-size:.9375rem;font-weight:600;color:var(--openforex-blue);margin:12px 0 8px}.library-controls select,.tool-panel :is(input,select,textarea){width:100%;max-width:100%;min-width:0;min-height:46px;border:1px solid var(--muted);border-radius:7px;padding:10px 12px;background:var(--surface);color:var(--ink);font:inherit;font-size:1rem;line-height:1.6}.tool-panel textarea{resize:vertical;min-height:120px}#filter-status{font-size:.9375rem;color:var(--muted)}
.article-tools{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 28px}.article-next{padding:26px;border:1px solid var(--portal-border);border-radius:10px;background:var(--portal-tint);margin:40px 0 25px}.article-next h2{margin:14px 0;font-size:1.5rem}.article-next .button{font-size:.9375rem;text-decoration:none}.article-next .text-link{margin-left:12px}.article-next .primary{color:#fff}html[data-contrast=dark] .article-next .primary{color:var(--surface)}
.lab-notice{padding:18px 22px;border-left:4px solid var(--teal-text);background:var(--portal-tint);border-radius:6px;margin:0 0 26px}.lab-notice strong{color:var(--openforex-blue)}.lab-notice p{margin:6px 0 0;font-size:.9375rem;line-height:1.8;color:var(--muted)}.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.tool-panel h2{font-size:1.5rem;line-height:1.4;letter-spacing:-.025em;margin:0 0 18px}.tool-panel fieldset{border:0;margin:0;padding:0;min-width:0}.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field-pair>div{min-width:0}.field-hint{font-size:.8125rem;color:var(--muted);line-height:1.7;margin:10px 0}.tool-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}.tool-panel .primary,.tool-actions .primary{background:var(--openforex-blue);color:#fff;border-color:var(--openforex-blue)}html[data-contrast=dark] :is(.tool-panel,.tool-actions) .primary{color:var(--surface)}
.form-error{color:#a52a18;font-weight:600;line-height:1.6}.form-error:empty{display:none}[aria-invalid=true]{border:2px solid #a52a18!important}html[data-contrast=dark] .form-error{color:#ffb6a9}html[data-contrast=dark] [aria-invalid=true]{border-color:#ffb6a9!important}
#lab-state{font-size:.9375rem;color:var(--muted)}#lab-output{display:block;font-size:2.75rem;line-height:1.3;font-weight:700;color:var(--openforex-blue);overflow-wrap:anywhere;margin:20px 0 8px}#lab-result-label{font-size:1rem;font-weight:600;color:var(--teal-text)}.calculation-steps{padding-left:24px}.calculation-steps li{margin:20px 0}.calculation-steps p,#lab-comparison{font-size:.9375rem;line-height:1.8;color:var(--muted)}.result-panel>.text-link{margin-top:22px}.result-panel button{display:inline-flex;align-items:center;gap:8px;max-width:100%}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.release-label{font-size:.75rem;font-weight:700;color:var(--teal-text);letter-spacing:.05em}.build-steps{padding-left:28px}.build-steps>li{padding:12px 0 28px 8px}.build-steps h2{font-size:1.5rem}.build-steps p{max-width:850px;color:var(--muted);line-height:1.8}.build-steps a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--teal-text);text-decoration:underline}.build-steps pre{max-width:100%;overflow:auto;padding:24px;background:var(--portal-panel);border:1px solid var(--portal-border);border-radius:10px;font-size:.9375rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.contribution-panel{margin:32px 0}.contribution-panel>p{color:var(--muted);line-height:1.8}.contribution-panel button[type=submit]{margin-top:20px;display:flex;gap:10px;align-items:center}#brief-status{color:var(--muted);font-size:.9375rem;line-height:1.8}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
#saved-library[hidden]{display:none}.document-footer{flex-wrap:wrap}
html:not([data-text-size="100"]) :is(.portal-hero,.lab-layout,.three-columns,.concept-steps){grid-template-columns:1fr}
html:not([data-text-size="100"]) .library-controls{grid-template-columns:1fr 1fr}
html.a11y-spacing :is(.journey-card p,.resource-card p,.portal-callout p,.calculation-steps p){line-height:1.8}
@media(max-width:1150px){.portal-hero{grid-template-columns:1fr}.reference-map{max-width:650px;width:100%}.concept-steps,.three-columns{grid-template-columns:1fr}.lab-layout{grid-template-columns:1fr}.library-controls{grid-template-columns:1fr 1fr}.library-controls>div:first-child{grid-column:1/-1}.portal-hero h1{font-size:2.5rem}}
@media(max-width:800px){.page-heading h1{font-size:2rem}.portal-hero{padding:26px 22px;gap:26px}.portal-hero h1{font-size:2rem}.portal-hero .hero-copy{max-width:100%}.journey-grid,.resource-grid,.link-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.portal-facts{gap:12px;flex-direction:column}.portal-section{margin:36px 0}.portal-callout{padding:24px}.journey-card,.resource-card,.path-card,.tool-panel{padding:22px}.page-heading{padding:14px 0 20px}.field-pair{grid-template-columns:1fr}.library-controls,html:not([data-text-size="100"]) .library-controls{grid-template-columns:1fr}.article-next{padding:20px}.article-next .text-link{margin-left:0}.reference-map{padding:18px}.tool-actions{align-items:stretch}.tool-actions>button{max-width:100%}.portal-callout>div{flex-basis:100%}}
@media(max-width:380px){.journey-card,.resource-card,.tool-panel,.path-card{padding:18px}.link-grid>a{padding:18px 14px}.portal-hero{padding:24px 18px}.reference-map{padding:14px}.build-steps{padding-left:22px}.build-steps>li{padding-left:0}.build-steps pre{padding:14px}.utility-actions>button{max-width:100%}}
@media print{
  .topbar,#sidebar,.utility,footer,.article-tools,.article-next,.document-footer,.article-aside,.skip,dialog,#reading-status{display:none!important}
  html,body{background:#fff!important;color:#000!important;font-size:12pt!important}main{margin:0;padding:0;max-width:none}.article-layout{display:block}.document{max-width:none;padding:0;color:#000!important}.document :is(p,li,h1,h2,h3,a){color:#000!important}.document pre{white-space:pre-wrap;break-inside:avoid}.table-scroll{overflow:visible}.document table{font-size:10pt}.document h2,.document h3{break-after:avoid}
}

.search-summary{display:block;font-size:.8125rem;line-height:1.7;color:var(--muted);margin-top:8px}#search-results a>span:last-child{min-width:0}
.source-details{border:1px solid var(--portal-border);border-radius:10px;padding:24px;margin:32px 0;background:var(--portal-panel)}
.source-details h2{font-size:1.35rem;margin:0 0 18px}.source-details dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 20px}.source-details dt{font-size:.8125rem;font-weight:700;color:var(--muted)}.source-details dd{margin:3px 0 0;font-size:.9375rem}.source-details .citation-text,.source-details .source-note{font-size:.875rem;line-height:1.8;overflow-wrap:anywhere}.source-details summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}.source-details details{border-top:1px solid var(--portal-border);margin-top:18px}.source-details details code{display:block;overflow-wrap:anywhere;white-space:normal;font-size:.8125rem}.source-details details p{font-size:.8125rem}.source-details li small{display:block;font-size:.75rem;color:var(--muted)}.source-details li{margin-bottom:10px}
@media(max-width:800px){.source-details{padding:18px}.source-details dl{grid-template-columns:1fr}}
