/* Shared visual shell. Page-specific state, permissions and responsive menus remain owned by each page. */
:root{--site-paper:#faf9f6;--site-surface:#fff;--site-ink:#292b29;--site-muted:#62655f;--site-line:#e5e3dc;--site-accent:#c65320;--site-width:1200px;--site-radius:8px}
body:is(.ecbnet-landing,.ep-public,.platform-body,.ecbnet-organization,.ecbnet-admin){color:var(--site-ink);background:var(--site-paper);--en-accent:var(--site-accent);--eo-accent:var(--site-accent);--join-orange:var(--site-accent)}
.ecbnet-landing .hx-mast,.ep-public .public-header,.member-site-header.site-navigation-shell,.ep-public.recovery-page>header,.error-404-header{background:var(--site-surface);border-bottom:1px solid var(--site-line);color:var(--site-ink)}
.ecbnet-landing .hx-mast-inner,.ep-public .public-header-inner{width:min(var(--site-width),calc(100% - 48px));max-width:var(--site-width);min-height:76px;height:auto;padding-inline:0;margin-inline:auto}
.ecbnet-landing .hx-mast-inner{height:76px}
.ep-public .public-container,.ecbnet-landing .en-shell{width:min(var(--site-width),calc(100% - 48px));max-width:var(--site-width);margin-inline:auto}
.member-site-header.site-navigation-shell{min-height:76px;padding-inline:max(24px,calc((100% - var(--site-width))/2))}
.ep-public.recovery-page>header,.error-404-header{min-height:76px;padding-inline:max(24px,calc((100% - var(--site-width))/2))}
:is(.public-header,.hx-mast,.site-navigation-shell) :is(.site-nav-trigger,.public-nav>a,.member-public-nav>a){font-size:16px;min-height:44px;color:var(--site-ink)}
:is(.public-header,.hx-mast,.site-navigation-shell) .site-nav-panel{border:1px solid var(--site-line);border-radius:var(--site-radius);background:#fff}
.ep-public .ep-brand-dot,.ecbnet-landing .ecbnet-wordmark span,.eo-brand-dot,.member-brand-dot{color:var(--site-accent)}
.ep-public .ep-hero{padding-block:48px;background:var(--site-surface);border-bottom:1px solid var(--site-line)}
.ep-public .ep-hero-grid{gap:48px}
.ep-public .ep-breadcrumb{margin-bottom:24px;font-size:14px;color:var(--site-muted)}
.ep-public .ep-hero h1,.join-main h1{font-size:clamp(30px,3.4vw,44px);line-height:1.3;letter-spacing:-.045em}
.ep-public .ep-lead{font-size:16px;line-height:1.75;color:var(--site-muted)}
.ep-public .ep-hero-image{height:320px;border-radius:var(--site-radius)}
.ep-public .ep-section{padding-block:48px}
.ep-public :is(.ep-card,.ep-project-card,.public-contact-card),.join-review{border-radius:var(--site-radius);border-color:var(--site-line)}
.ep-public :is(.public-button,.hx-util-btn--solid),.ecbnet-landing .en-primary,.join-primary{background:var(--site-accent);border-color:var(--site-accent);color:#fff}
:is(.ep-public,.ecbnet-landing) :is(.public-button,.en-button),.join-primary,.join-secondary{min-height:48px;border-radius:var(--site-radius);font-size:16px;line-height:1.5}
:is(.ep-public,.ecbnet-landing) :is(.public-button,.en-button):disabled,.join-primary:disabled{opacity:.65;cursor:wait}
.ep-public .public-field>span,.join-field label{font-size:16px;line-height:1.5}
.ep-public .public-field :is(input:not([type=checkbox]):not([type=hidden]),select,textarea),.join-field :is(input,textarea){min-height:48px;font-size:16px;border-radius:var(--site-radius);border-color:#bfc3bb;background:#fff}
.contact-simple .public-contact-layout{max-width:680px}
.ep-public .policy-page{width:min(800px,calc(100% - 48px));margin-inline:auto;padding-block:48px}
.join-main{padding-block:48px}
.ep-public.recovery-page>main{width:min(680px,calc(100% - 48px));margin-inline:auto}
.ecbnet-landing .site-footer,.ep-public .public-footer,.join-footer,.ep-public.recovery-page>footer,.error-404-footer{background:var(--site-surface);color:var(--site-muted);border-top:1px solid var(--site-line)}
.ecbnet-landing .site-footer>div,.ep-public .public-footer>.public-container{max-width:var(--site-width);margin-inline:auto}
.join-footer,.ep-public.recovery-page>footer,.error-404-footer{padding-inline:max(24px,calc((100% - var(--site-width))/2));font-size:14px;line-height:1.7}
.platform-body .workspace,.ecbnet-organization .workspace-main,.ecbnet-admin .admin-main{box-sizing:border-box;max-width:var(--site-width);width:100%;min-width:0;margin-inline:auto}
.platform-body:not(.public-share-only){--ecb-member-paper:#f7f6f3;background:#f7f6f3}
.platform-body:not(.public-share-only) :is(.app-shell,.workspace,.view){background:#f7f6f3}
.platform-body:not(.public-share-only) .workspace{max-width:none;width:100%;padding-inline:clamp(16px,2.5vw,64px)}
.platform-body #view-dashboard{max-width:none;width:100%;box-sizing:border-box}
.platform-body:not(.public-share-only) .topbar{max-width:none;width:100%;box-sizing:border-box;margin-inline:0;background:transparent}
.platform-body .member-home-panel--updates{grid-column:auto;grid-template-columns:1fr;gap:20px}
.platform-body .member-home-panel--updates>section+section{border-left:0;border-top:1px solid #edf0f3;padding-left:0;padding-top:20px}
.platform-body #memberDashboard{font-size:15px;line-height:1.65;word-break:keep-all;overflow-wrap:anywhere}
.platform-body .member-home-topline h2{font-size:28px;line-height:1.45;letter-spacing:-.035em}
.platform-body .member-home-topline p,.platform-body .member-home-empty,.platform-body .member-home-activity p{font-size:15px;line-height:1.7;color:#59616b}
.platform-body .member-home-panel h3,.platform-body .member-home-profile strong{font-size:18px;line-height:1.5;letter-spacing:-.025em}
.platform-body .member-home-profile>p,.platform-body .member-home-shortcuts button,.platform-body .member-home-rail-counts span,.platform-body .member-home-expert span,.platform-body .member-home-panel-note{font-size:14px;line-height:1.65;color:#626b74}
.platform-body .member-home-panel header button,.platform-body .member-home-completion button{font-size:14px;line-height:1.5;min-height:32px;flex-shrink:0}
.platform-body .member-home-expert strong{font-size:16px;line-height:1.5}
.platform-body .member-home-expert em,.platform-body .member-home-activity-type,.platform-body .member-home-activity time{font-size:12px;line-height:1.5}
.platform-body .member-home-activity p{white-space:normal;overflow:visible;padding-block:10px}
.platform-body .member-home-expert p{flex-wrap:wrap}
@media(max-width:680px){.platform-body .member-home-topline h2{font-size:24px}}
.platform-body .topbar,.ecbnet-organization .page-heading,.ecbnet-admin .admin-topbar{border-color:var(--site-line)}
.platform-body .topbar h1,.ecbnet-organization .page-heading :is(h1,h2),.ecbnet-admin .admin-topbar h1{font-size:clamp(26px,3vw,36px);line-height:1.35;letter-spacing:-.04em}
.ecbnet-organization .auth-shell{min-height:calc(100dvh - 76px);background:var(--site-paper)}
.ecbnet-organization .auth-story{background:#fff;color:var(--site-ink);border-right:1px solid var(--site-line)}
.ecbnet-organization .auth-story :is(h1,.auth-logo strong,.auth-process strong){color:var(--site-ink)}
.ecbnet-organization .auth-story :is(p,small,.ecb-logotype-sub){color:var(--site-muted)}
.ecbnet-organization .auth-story h1{font-size:clamp(30px,3.4vw,44px);line-height:1.3}
.ecbnet-organization .auth-card-inner{border-radius:var(--site-radius)}
@media(max-width:760px){
 .ecbnet-landing .hx-mast-inner,.ep-public .public-header-inner{width:calc(100% - 32px);min-height:68px}
 .ecbnet-landing .hx-mast-inner{height:68px}
 .ep-public .public-container,.ecbnet-landing .en-shell{width:calc(100% - 32px)}
 .member-site-header.site-navigation-shell,.ep-public.recovery-page>header,.error-404-header{min-height:68px;padding-inline:16px}
 .ep-public .ep-hero,.ep-public .ep-section{padding-block:32px}
 .ep-public .ep-hero-grid{gap:24px}
 .ep-public .ep-hero-image{height:240px}
 .ep-public .ep-breadcrumb{margin-bottom:18px}
 .ep-public .policy-page,.ep-public.recovery-page>main{width:calc(100% - 32px);padding-block:32px}
 .join-main{padding-block:32px}
 .join-footer,.ep-public.recovery-page>footer,.error-404-footer{padding-inline:16px}
 .ecbnet-organization .auth-story{border-right:0;border-bottom:1px solid var(--site-line)}
}
/* The join header owns its compact grid and mobile menu positioning. */
body .site-header .ecb-tour-restart{height:44px;min-height:44px;padding:0 12px;font-size:14px;background:transparent;color:var(--site-muted);border:1px solid var(--site-line);box-shadow:none}
/* Reading controls stay above navigation at every viewport width. */
body > .site-utility-bar{margin:0;min-height:30px;border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:#faf9f6}
body > .site-utility-bar .site-utility-bar__inner{width:min(var(--site-width),calc(100% - 32px));min-height:30px;padding:0;margin-inline:auto;justify-content:flex-end;flex-wrap:nowrap;gap:6px}
body > .site-utility-bar .site-language{flex:0 1 auto;min-height:26px;margin:0;gap:4px}
body > .site-utility-bar .site-language__label,body > .site-utility-bar .site-language__globe{display:none}
body > .site-utility-bar :is(button,.site-language__select){height:26px;min-width:28px;font-size:12px;padding:0 6px}
body > .site-utility-bar .site-utility-bar__controls{min-height:26px}
body > .site-utility-bar .site-language__select{width:85px}
body > .site-utility-bar .site-language__notice:not([hidden]){position:absolute;right:16px;top:30px;z-index:100;max-width:280px;background:#fff;padding:8px;border:1px solid var(--site-line)}
@media(max-width:900px){.join-page .public-header-inner{width:100%;padding-inline:16px}}

/* Account entry points use the same compact form layout as inquiries. */
.ecbnet-organization .auth-shell{display:block;max-width:680px;min-height:0;margin:32px auto 48px;padding:0 16px}
.ecbnet-organization .auth-story{display:none}
.ecbnet-organization .auth-card{padding:0;min-height:0;background:transparent}
.ecbnet-organization .auth-card-inner{width:100%;max-width:none;padding:28px;border:1px solid var(--site-line);background:#fff;box-shadow:none}
.ecbnet-organization .auth-intro{color:var(--site-muted);margin:10px 0 24px}
.ecbnet-organization .login-form{gap:16px}
.ecbnet-organization .auth-card h2{font-size:28px;margin:24px 0 0}
.ecbnet-organization .auth-support{margin-top:20px;gap:12px;flex-wrap:wrap}
.ecbnet-organization .button-primary{background:var(--site-accent);border-color:var(--site-accent)}
.ecbnet-admin .auth-stage{display:block;width:min(680px,calc(100% - 32px));min-height:0;margin:32px auto 48px;grid-template-columns:none}
.ecbnet-admin .auth-stage>.auth-brand{display:none}
.ecbnet-admin .auth-stage>.auth-panel{padding:28px;border:1px solid var(--site-line);border-radius:8px;background:#fff}
.ecbnet-admin .auth-stage .auth-form{width:100%;max-width:none}
.ecbnet-admin .auth-stage .auth-form h2{font-size:28px;line-height:1.3}
.contact-simple .public-consent input{width:20px;height:20px;flex:0 0 20px}
.contact-simple .contact-consent-detail{font-size:13px;color:var(--site-muted);margin-top:8px}
.contact-simple .contact-consent-detail summary{cursor:pointer;min-height:32px}
.contact-simple .public-contact-optional summary{min-height:28px;padding:0}
@media(max-width:640px){.ecbnet-organization .auth-card-inner,.ecbnet-admin .auth-stage>.auth-panel{padding:22px 18px}.ecbnet-organization .auth-card h2{font-size:25px}}
