/* Portal × Hub. Opt-in presentation layer; Admin and other pages keep their existing styles. */
body.portal-hub {
  --hub-bg:#070b14; --hub-panel:#101a2b; --hub-elevated:#172438; --hub-field:#081222;
  --hub-text:#f4f7fb; --hub-muted:#b5c0d1; --hub-line:#293a51; --hub-accent:#238bff;
  --hub-accent-text:#78bcff; --hub-cyan:#35d3ff; --hub-on-accent:#061323; --hub-tint:#142e4e;
  --hub-facet:#143b67; --hub-positive:#77e8ac;
  --bg:var(--hub-bg); --panel:var(--hub-panel); --text:var(--hub-text); --muted:var(--hub-muted);
  --brand:var(--hub-accent); --brand-2:var(--hub-cyan); --maxw:1240px; --rail-width:260px;
  color-scheme:dark; color:var(--hub-text); background:var(--hub-bg); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.portal-hub[data-portal-theme="pink"] { --hub-bg:#19020d; --hub-panel:#2a0619; --hub-elevated:#361023; --hub-field:#210313; --hub-text:#fff1f6; --hub-muted:#d1b9c6; --hub-line:#633247; --hub-accent:#ff2b84; --hub-accent-text:#ff8ac0; --hub-cyan:#ff82bf; --hub-on-accent:#19020d; --hub-tint:#4c102e; --hub-facet:#6f1240; }
body.portal-hub[data-portal-theme="graphite"] { --hub-bg:#15181c; --hub-panel:#1b1f24; --hub-elevated:#252c33; --hub-field:#171d23; --hub-text:#f1f3f5; --hub-muted:#bdc6d0; --hub-line:#485360; --hub-accent:#5c7188; --hub-accent-text:#b4c9e0; --hub-cyan:#a9c2da; --hub-on-accent:#fff; --hub-tint:#303e4e; --hub-facet:#3a4c60; }
body.portal-hub[data-portal-theme="rose_mist"] { --hub-bg:#ffe5ec; --hub-panel:#ffeef2; --hub-elevated:#ffdae4; --hub-field:#fff0f5; --hub-text:#4a2730; --hub-muted:#73515d; --hub-line:#c58b9c; --hub-accent:#fb6f92; --hub-accent-text:#a2204c; --hub-cyan:#bd285e; --hub-on-accent:#381923; --hub-tint:#ffd0df; --hub-facet:#fba2bd; --hub-positive:#246b48; color-scheme:light; }
body.portal-hub [hidden] { display:none!important; }
body.portal-hub a { color:var(--hub-accent-text); }
body.portal-hub :is(a,button,input,select):focus-visible { outline:3px solid var(--hub-cyan); outline-offset:4px; }
body.portal-hub .hub-header { position:relative; top:auto; z-index:30; background:var(--hub-field); border-bottom:1px solid var(--hub-line); backdrop-filter:none; }
body.portal-hub .hub-header .bar { max-width:1240px; padding:20px 32px; gap:25px; min-height:92px; }
body.portal-hub .hub-brand { display:flex; align-items:center; gap:10px; flex-shrink:0; color:var(--hub-text); text-decoration:none; }
body.portal-hub .hub-brand-crop { width:42px; height:44px; overflow:hidden; position:relative; flex-shrink:0; }
body.portal-hub .hub-brand-crop img { position:absolute; width:72px; height:72px; max-width:none; left:-15px; top:-6px; }
body.portal-hub .hub-wordmark { font-size:24px; font-weight:750; letter-spacing:-1px; line-height:1.1; }
body.portal-hub .hub-wordmark small { display:block; margin-top:6px; font-size:9px; font-weight:500; letter-spacing:1.8px; color:var(--hub-muted); }
body.portal-hub .hub-header nav { display:flex; flex:1; align-items:center; gap:20px; margin:0; flex-wrap:nowrap; overflow:visible; }
body.portal-hub .hub-main-nav { display:flex; justify-content:center; flex:1; gap:5px; }
body.portal-hub .hub-account-nav { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
body.portal-hub .hub-header .nav { white-space:nowrap; color:var(--hub-muted); font-size:13px; font-weight:650; padding:12px 16px; border:1px solid transparent; border-radius:12px; background:transparent; }
body.portal-hub .hub-header .nav:hover { background:var(--hub-panel); color:var(--hub-text); }
body.portal-hub .hub-main-nav .nav.active { color:var(--hub-text); border-color:color-mix(in srgb,var(--hub-accent) 55%,var(--hub-line)); background:linear-gradient(145deg,var(--hub-elevated),var(--hub-tint)); box-shadow:inset 0 1px 0 #ffffff10,0 0 22px color-mix(in srgb,var(--hub-accent) 10%,transparent); }
body.portal-hub .hub-main-nav .nav.active:after { background:var(--hub-accent); left:20px; right:20px; height:2px; box-shadow:0 0 8px color-mix(in srgb,var(--hub-accent) 50%,transparent); }
body.portal-hub .hub-header .hub-register { border-color:var(--hub-line); color:var(--hub-text); }
body.portal-hub .hub-profile { display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--hub-text); }
body.portal-hub .hub-avatar { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--hub-accent); border-radius:50%; background:var(--hub-tint); color:var(--hub-text); font-size:11px; font-weight:700; flex-shrink:0; }
body.portal-hub #userChip { border:0; background:none; color:var(--hub-text); padding:0; font-size:12px; max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.portal-hub .hub-header #langMenu { background:var(--hub-elevated); color:var(--hub-text); border:1px solid var(--hub-line); }
body.portal-hub main.hub-main { position:relative; isolation:isolate; max-width:1240px; min-height:calc(100vh - 190px); padding:38px 32px 60px; overflow:clip; }
body.portal-hub .hub-main:before,body.portal-hub .hub-main:after { content:""; position:absolute; pointer-events:none; z-index:-1; top:0; right:0; width:72%; height:650px; }
body.portal-hub .hub-main:before { background:linear-gradient(155deg,color-mix(in srgb,var(--hub-facet) 55%,transparent),transparent 65%); clip-path:polygon(22% 0,100% 0,73% 47%,100% 92%,0 69%,50% 43%); }
body.portal-hub .hub-main:after { background:linear-gradient(135deg,transparent 40%,color-mix(in srgb,var(--hub-accent) 13%,transparent) 40.3%,transparent 65%); clip-path:polygon(37% 0,100% 0,83% 59%,100% 87%,0 100%,48% 48%); }
body.portal-hub :is(h1,h2,h3) { color:var(--hub-text); }
body.portal-hub h1 { font-size:44px; line-height:1.12; letter-spacing:-1.7px; font-weight:750; }
body.portal-hub h2 { font-size:24px; letter-spacing:-.7px; line-height:1.25; }
body.portal-hub h3 { font-size:18px; letter-spacing:-.4px; line-height:1.35; }
body.portal-hub p { line-height:1.7; color:var(--hub-muted); }
body.portal-hub .hub-eyebrow { display:flex; align-items:center; gap:9px; font-size:11px; font-weight:750; letter-spacing:2.2px; text-transform:uppercase; color:var(--hub-accent-text); margin-bottom:14px; }
body.portal-hub .hub-eyebrow:before { content:""; width:3px; height:12px; background:var(--hub-accent); border-radius:2px; flex-shrink:0; }
body.portal-hub .hub-page-head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
body.portal-hub .hub-page-head p { margin-top:10px; font-size:14px; }
body.portal-hub .hub-page-note { max-width:190px; border-left:1px solid var(--hub-line); padding-left:18px; font-size:12px; }
body.portal-hub .hub-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:12px 17px; line-height:1.4; font-family:inherit; font-size:13px; font-weight:650; text-decoration:none; border:1px solid var(--hub-line); border-radius:10px; background:linear-gradient(135deg,var(--hub-elevated),var(--hub-panel)); color:var(--hub-text); cursor:pointer; }
body.portal-hub .hub-button.hub-primary { background:linear-gradient(110deg,var(--hub-cyan),var(--hub-accent) 60%); color:var(--hub-on-accent); border-color:var(--hub-accent); }
body.portal-hub:is([data-portal-theme="graphite"],[data-portal-theme="rose_mist"]) .hub-button.hub-primary { background:var(--hub-accent); }
body.portal-hub .hub-button:hover { filter:brightness(1.12); }
body.portal-hub .hub-button[disabled] { opacity:.6; cursor:default; filter:none; }
body.portal-hub .hub-link { color:var(--hub-accent-text); font-size:13px; font-weight:650; text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
body.portal-hub .hub-link:hover { text-decoration:underline; }
body.portal-hub button.hub-link { border:0; background:none; padding:0; font-family:inherit; cursor:pointer; }
body.portal-hub .hub-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:25px; }
body.portal-hub .hub-home-hero { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:35px; min-height:450px; margin-bottom:40px; }
body.portal-hub .hub-home-copy h1 { font-size:54px; max-width:600px; }
body.portal-hub .hub-home-copy>p { margin-top:21px; max-width:410px; font-size:15px; }
body.portal-hub .hub-platforms { margin-top:20px; font-size:12px; color:var(--hub-muted); }
body.portal-hub .hub-hero-art { display:flex; justify-content:center; align-items:center; min-height:440px; position:relative; }
body.portal-hub .hub-hero-art img { width:auto; height:440px; max-width:100%; object-fit:contain; filter:drop-shadow(0 10px 24px color-mix(in srgb,var(--hub-accent) 12%,transparent)); }
body.portal-hub .hub-section-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:24px 0 20px; }
body.portal-hub .hub-section-head p { margin-top:8px; font-size:13px; }
body.portal-hub .hub-destinations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
body.portal-hub .hub-surface { background:linear-gradient(135deg,var(--hub-elevated),var(--hub-panel)); border:1px solid var(--hub-line); border-radius:16px; padding:25px; min-width:0; }
body.portal-hub .hub-destination { display:flex; flex-direction:column; gap:14px; }
body.portal-hub .hub-destination p { font-size:13px; }
body.portal-hub .hub-destination .hub-link { margin-top:auto; padding-top:7px; }
body.portal-hub .hub-section-icon { display:block; font-size:22px; color:var(--hub-accent-text); margin-bottom:8px; }
body.portal-hub .hub-community { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:28px; padding:30px; background:linear-gradient(115deg,var(--hub-tint),var(--hub-panel)); border:1px solid var(--hub-line); border-radius:16px; }
body.portal-hub .hub-community p { font-size:13px; margin-top:9px; }
body.portal-hub .hub-portal-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; align-items:start; gap:28px; }
body.portal-hub .hub-feed { min-width:0; }
body.portal-hub .hub-feed-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:20px; flex-wrap:wrap; }
body.portal-hub .hub-feed-heading h2 { font-size:21px; }
body.portal-hub #portal-posts { display:flex; flex-direction:column; gap:20px; }
body.portal-hub #portal-posts>.post { padding:22px; border:1px solid var(--hub-line); border-radius:16px; background:linear-gradient(135deg,var(--hub-panel),var(--hub-elevated)); box-shadow:none; min-width:0; margin:0; }
body.portal-hub #portal-posts>.post>.grid.two { display:grid; grid-template-columns:150px minmax(0,1fr); gap:22px; }
body.portal-hub #portal-posts>.post>.grid.two>div { min-width:0; }
body.portal-hub #portal-posts>.post:first-child { padding:28px 0 22px; border:0; border-radius:0; background:linear-gradient(105deg,var(--hub-bg),color-mix(in srgb,var(--hub-panel) 65%,transparent)); border-bottom:1px solid var(--hub-line); }
body.portal-hub #portal-posts>.post:first-child>.grid.two { grid-template-columns:1.12fr .88fr; gap:24px; }
body.portal-hub #portal-posts>.post:first-child>.grid.two>.tsb-cover-shell { order:2; }
body.portal-hub #portal-posts>.post:first-child>.grid.two>div:not(.tsb-cover-shell) { order:1; }
body.portal-hub #portal-posts .tsb-cover-shell-feed { height:150px; border-radius:12px; background:var(--hub-field); }
body.portal-hub #portal-posts>.post:first-child .tsb-cover-shell-feed { height:320px; background:radial-gradient(ellipse at center,var(--hub-tint),transparent 72%); }
body.portal-hub #portal-posts>.post:first-child .tsb-cover-image { object-fit:contain; }
body.portal-hub #portal-posts :is(.post-title-en,.post-title-pt) { display:block; font-size:19px; font-weight:750; line-height:1.28; letter-spacing:-.5px; color:var(--hub-text); }
body.portal-hub #portal-posts>.post:first-child :is(.post-title-en,.post-title-pt) { font-size:32px; line-height:1.15; letter-spacing:-1px; }
body.portal-hub #portal-posts .snippet-text { color:var(--hub-muted); font-size:13px; margin-top:12px; }
body.portal-hub #portal-posts .snippet-text :is(p,li) { color:var(--hub-muted); }
body.portal-hub #portal-posts .post-footer-row { padding-top:14px; margin-top:16px; border-top:1px solid var(--hub-line); }
body.portal-hub #portal-posts .post-footer-left { display:flex; flex-wrap:wrap; gap:7px; }
body.portal-hub #portal-posts .btn { background:var(--hub-panel); color:var(--hub-text); border:1px solid var(--hub-line); border-radius:8px; font-size:12px; }
body.portal-hub #portal-posts .post-toggle { color:var(--hub-accent-text); }
body.portal-hub #portal-posts>.post:first-child .post-toggle { background:var(--hub-accent); color:var(--hub-on-accent); border-color:var(--hub-accent); margin-top:16px!important; font-weight:700; padding:11px 14px; }
body.portal-hub #portal-posts .post-lang-btn.active { background:var(--hub-tint); border-color:var(--hub-accent); }
body.portal-hub #portal-posts .post-more-menu { background:var(--hub-elevated); border-color:var(--hub-line); z-index:12; }
body.portal-hub .hub-post-kicker { display:block; margin-bottom:17px; color:var(--hub-accent-text); font-size:11px; letter-spacing:2px; text-transform:uppercase; font-weight:700; }
body.portal-hub .hub-aside { display:flex; flex-direction:column; gap:19px; }
body.portal-hub .hub-aside h3 { margin-bottom:11px; }
body.portal-hub .hub-aside p { font-size:13px; }
body.portal-hub .hub-aside .hub-link { margin-top:17px; }
body.portal-hub .hub-app-card { position:relative; isolation:isolate; overflow:hidden; background:linear-gradient(145deg,var(--hub-tint),var(--hub-panel)); }
body.portal-hub .hub-app-card:before { content:""; position:absolute; inset:5px -20px 10px 35%; clip-path:polygon(40% 0,100% 15%,55% 100%,0 70%); background:color-mix(in srgb,var(--hub-accent) 8%,transparent); z-index:-1; }
body.portal-hub .hub-app-label { font-size:13px; color:var(--hub-accent-text); margin-bottom:22px; }
body.portal-hub .hub-app-card h3 { font-size:24px; line-height:1.15; }
body.portal-hub .hub-downloads { display:flex; gap:7px; flex-wrap:wrap; margin-top:20px; }
body.portal-hub .hub-downloads span { padding:7px 10px; border:1px solid var(--hub-line); border-radius:8px; font-size:12px; color:var(--hub-muted); background:var(--hub-field); }
body.portal-hub .hub-aside-row { padding:14px 0; border-top:1px solid var(--hub-line); }
body.portal-hub .hub-aside-row strong { display:block; font-size:13px; margin-bottom:6px; }
body.portal-hub .hub-aside-row p { font-size:12px; }
body.portal-hub .hub-account-layout { display:grid; grid-template-columns:185px minmax(0,1fr); gap:25px; align-items:start; }
body.portal-hub .hub-account-side { padding:0; overflow:hidden; }
body.portal-hub .hub-account-identity { padding:23px 18px; border-bottom:1px solid var(--hub-line); }
body.portal-hub .hub-account-identity .hub-avatar { height:48px; width:48px; font-size:15px; margin-bottom:14px; }
body.portal-hub .hub-account-identity strong { display:block; font-size:13px; overflow-wrap:anywhere; }
body.portal-hub .hub-account-identity p { margin-top:7px; font-size:11px; }
body.portal-hub .hub-account-menu { display:flex; flex-direction:column; padding:9px; gap:5px; margin:0; }
body.portal-hub .hub-account-menu button { padding:12px 10px; font-size:12px; font-weight:600; line-height:1.4; font-family:inherit; text-align:left; border:1px solid transparent; border-radius:10px; background:none; color:var(--hub-muted); cursor:pointer; }
body.portal-hub .hub-account-menu button[aria-pressed="true"] { color:var(--hub-text); border-color:var(--hub-line); background:linear-gradient(145deg,var(--hub-elevated),var(--hub-tint)); }
body.portal-hub .hub-account-content { min-width:0; }
body.portal-hub .hub-member-card { position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(120deg,var(--hub-panel),var(--hub-tint)); border:1px solid var(--hub-line); border-radius:16px; padding:28px; min-height:235px; }
body.portal-hub .hub-member-card:after { content:""; position:absolute; right:-30px; top:0; height:100%; width:45%; background:color-mix(in srgb,var(--hub-accent) 12%,transparent); clip-path:polygon(45% 0,100% 0,70% 100%,0 70%); z-index:-1; }
body.portal-hub .hub-member-card h2 { font-size:35px; margin:26px 0 12px; letter-spacing:-1.1px; }
body.portal-hub .hub-member-card p { font-size:13px; max-width:450px; }
body.portal-hub .hub-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; font-size:11px; letter-spacing:1.7px; text-transform:uppercase; color:var(--hub-muted); }
body.portal-hub .hub-state { color:var(--hub-positive); background:color-mix(in srgb,var(--hub-positive) 9%,var(--hub-panel)); padding:5px 9px; border-radius:100px; letter-spacing:0; text-transform:none; font-size:11px; }
body.portal-hub .hub-account-cards { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-top:19px; }
body.portal-hub .hub-account-cards h3 { font-size:16px; margin-bottom:14px; }
body.portal-hub .hub-detail-row { display:flex; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid var(--hub-line); font-size:12px; color:var(--hub-muted); }
body.portal-hub .hub-detail-row:last-of-type { border:0; }
body.portal-hub .hub-detail-row strong { color:var(--hub-text); font-weight:500; text-align:right; overflow-wrap:anywhere; }
body.portal-hub .hub-account-cards .hub-link { margin-top:17px; }
body.portal-hub .hub-quiet-note { font-size:12px; color:var(--hub-muted); line-height:1.65; }
body.portal-hub .hub-settings-panel { min-height:390px; }
body.portal-hub .hub-settings-panel>p { font-size:13px; margin:10px 0 25px; }
body.portal-hub .hub-setting { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:22px 0; border-top:1px solid var(--hub-line); }
body.portal-hub .hub-setting label,body.portal-hub .hub-setting strong { font-size:14px; font-weight:650; }
body.portal-hub .hub-setting p { font-size:12px; margin-top:7px; }
body.portal-hub .hub-setting select { font:inherit; font-size:14px; background:var(--hub-field); border:1px solid var(--hub-line); border-radius:9px; color:var(--hub-text); padding:11px; max-width:180px; }
body.portal-hub .hub-footer { max-width:1240px; margin:auto; padding:24px 32px; border-top:1px solid var(--hub-line); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; font-size:11px; color:var(--hub-muted); }
body.portal-hub .hub-footer nav { display:flex; gap:18px; margin:0; }
body.portal-hub .hub-footer :is(a,button) { color:var(--hub-muted); font:inherit; background:none; border:0; text-decoration:none; cursor:pointer; }
body.portal-hub .hub-footer :is(a,button):hover { color:var(--hub-text); text-decoration:underline; }
body.portal-hub .hub-skip { position:absolute; left:20px; top:-90px; padding:12px 20px; background:var(--hub-accent); color:var(--hub-on-accent); z-index:100; border-radius:8px; }
body.portal-hub .hub-skip:focus { top:12px; }
body.portal-hub #private-auth-gate { color:var(--hub-text); background:var(--hub-bg); }
body.portal-hub #vault-change-password-modal .auth-modal-card { background:var(--hub-panel); color:var(--hub-text); border-color:var(--hub-line); }
body.portal-hub #vault-change-password-modal .auth-modal-card header { position:static; background:transparent; backdrop-filter:none; }
@media(max-width:1050px) { body.portal-hub #userChip { display:none!important; } body.portal-hub .hub-header .bar { padding-inline:24px; gap:18px; } body.portal-hub .hub-header .nav { padding-inline:12px; } body.portal-hub .hub-portal-layout { grid-template-columns:minmax(0,1fr) 230px; gap:22px; } body.portal-hub .hub-home-copy h1 { font-size:46px; } body.portal-hub .hub-account-layout { grid-template-columns:160px minmax(0,1fr); gap:20px; } }
@media(max-width:800px) { body.portal-hub .hub-header .bar { flex-wrap:wrap; } body.portal-hub .hub-header nav { flex:1 1 100%; justify-content:space-between; gap:12px; } body.portal-hub .hub-main-nav { flex:none; } body.portal-hub .hub-account-nav { gap:3px; } body.portal-hub .hub-wordmark { font-size:22px; } body.portal-hub .hub-home-hero { gap:20px; } body.portal-hub .hub-hero-art img { height:365px; } body.portal-hub .hub-home-copy h1 { font-size:42px; } body.portal-hub .hub-account-cards { grid-template-columns:1fr; } body.portal-hub #portal-posts>.post:first-child>.grid.two { grid-template-columns:1fr; } body.portal-hub #portal-posts>.post:first-child>.grid.two>.tsb-cover-shell { order:1; height:240px; } body.portal-hub #portal-posts>.post:first-child>.grid.two>div:not(.tsb-cover-shell) { order:2; } }
@media(max-width:680px) { body.portal-hub main.hub-main { padding:28px 20px 42px; } body.portal-hub .hub-header .bar { padding:17px 20px 13px; gap:16px; } body.portal-hub .hub-header nav { display:contents; } body.portal-hub .hub-main-nav { order:3; flex:1 1 100%; justify-content:stretch; } body.portal-hub .hub-main-nav .nav { flex:1; text-align:center; font-size:12px; } body.portal-hub .hub-account-nav { margin-left:auto; } body.portal-hub .hub-account-nav .nav { font-size:11px; padding:9px 8px; } body.portal-hub .hub-account-nav .hub-register { display:none; } body.portal-hub .hub-account-nav #logoutBtn { font-size:11px; } body.portal-hub .hub-brand-crop { width:34px; height:38px; } body.portal-hub .hub-brand-crop img { width:62px; height:62px; left:-13px; top:-5px; } body.portal-hub .hub-wordmark { font-size:21px; } body.portal-hub .hub-wordmark small { font-size:8px; letter-spacing:1.2px; } body.portal-hub .hub-page-head { align-items:flex-start; margin-bottom:24px; } body.portal-hub h1 { font-size:36px; letter-spacing:-1.2px; } body.portal-hub .hub-page-note { display:none; } body.portal-hub .hub-home-hero { grid-template-columns:1fr; min-height:0; gap:15px; } body.portal-hub .hub-home-copy h1 { font-size:44px; } body.portal-hub .hub-home-copy>p { font-size:14px; } body.portal-hub .hub-hero-art { min-height:330px; } body.portal-hub .hub-hero-art img { height:330px; } body.portal-hub .hub-destinations,body.portal-hub .hub-portal-layout,body.portal-hub .hub-account-layout { grid-template-columns:1fr; } body.portal-hub .hub-destination { padding:24px; } body.portal-hub .hub-community { flex-direction:column; align-items:flex-start; padding:25px; gap:18px; } body.portal-hub .hub-aside { margin-top:10px; } body.portal-hub #portal-posts>.post>.grid.two { grid-template-columns:90px minmax(0,1fr); gap:15px; } body.portal-hub #portal-posts .tsb-cover-shell-feed { height:115px; } body.portal-hub #portal-posts>.post:first-child>.grid.two { grid-template-columns:1fr; } body.portal-hub #portal-posts>.post:first-child :is(.post-title-en,.post-title-pt) { font-size:29px; } body.portal-hub #portal-posts>.post { padding:18px; } body.portal-hub .hub-account-identity { display:none; } body.portal-hub .hub-account-menu { flex-direction:row; gap:3px; padding:6px; } body.portal-hub .hub-account-menu button { flex:1; text-align:center; padding:13px 4px; font-size:11px; } body.portal-hub .hub-member-card { padding:24px; } body.portal-hub .hub-member-card h2 { font-size:30px; } body.portal-hub .hub-setting { flex-wrap:wrap; gap:14px; } body.portal-hub .hub-setting>div { flex:1 1 170px; } body.portal-hub .hub-setting select { width:100%; max-width:100%; } body.portal-hub .hub-footer { padding:23px 20px 65px; align-items:flex-start; flex-direction:column; } body.portal-hub .hub-footer nav { flex-wrap:wrap; gap:14px; } body.portal-hub .hub-main:before,body.portal-hub .hub-main:after { width:100%; } }
@media(max-width:380px) { body.portal-hub .hub-header .bar { padding-inline:16px; } body.portal-hub .hub-wordmark { font-size:19px; } body.portal-hub .hub-wordmark small { font-size:7px; } body.portal-hub .hub-profile { display:none; } body.portal-hub .hub-account-nav { gap:0; } body.portal-hub .hub-account-nav .nav { padding-inline:6px; } body.portal-hub .hub-home-copy h1 { font-size:40px; } body.portal-hub #portal-posts>.post>.grid.two { grid-template-columns:1fr; } body.portal-hub #portal-posts>.post:first-child>.grid.two { grid-template-columns:1fr; } body.portal-hub .hub-detail-row { flex-wrap:wrap; } }
@media(pointer:coarse) { body.portal-hub :is(.hub-link,.hub-footer a,.hub-footer button,.hub-account-menu button,.hub-header .nav) { min-height:44px; display:inline-flex; align-items:center; } body.portal-hub .hub-main-nav .nav { justify-content:center; } body.portal-hub #portal-posts .btn { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { body.portal-hub *,body.portal-hub *:before,body.portal-hub *:after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Login and registration share the Hub shell; form IDs and auth handlers stay intact. */
body.portal-hub.hub-auth main.auth-wrap { max-width:1240px; margin:0 auto; padding:44px 32px 56px; }
body.portal-hub.hub-auth .hub-auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,500px); align-items:center; gap:72px; }
body.portal-hub.hub-auth .hub-auth-story { min-width:0; padding:12px 0; }
body.portal-hub.hub-auth .hub-auth-story h2 { max-width:450px; font-size:48px; line-height:1.08; letter-spacing:-1.8px; font-weight:750; }
body.portal-hub.hub-auth .hub-auth-story>p { max-width:370px; font-size:14px; margin-top:20px; }
body.portal-hub.hub-auth .hub-auth-art { height:300px; display:flex; justify-content:center; margin:12px 0 18px; position:relative; }
body.portal-hub.hub-auth .hub-auth-art:before { content:""; position:absolute; inset:12% 8%; background:radial-gradient(ellipse,var(--hub-tint),transparent 70%); z-index:-1; }
body.portal-hub.hub-auth .hub-auth-art img { height:100%; width:auto; max-width:100%; object-fit:contain; filter:drop-shadow(0 12px 28px color-mix(in srgb,var(--hub-accent) 16%,transparent)); }
body.portal-hub.hub-auth .hub-auth-signature { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:18px; border-top:1px solid var(--hub-line); font-size:11px; color:var(--hub-muted); }
body.portal-hub.hub-auth .hub-auth-signature>span:first-child { font-weight:700; color:var(--hub-accent-text); }
body.portal-hub.hub-auth .auth-card { min-width:0; width:100%; padding:32px; background:linear-gradient(140deg,var(--hub-elevated),var(--hub-panel) 65%); border:1px solid var(--hub-line); border-radius:20px; box-shadow:0 24px 70px #00000024,inset 0 1px 0 #ffffff08; }
body.portal-hub.hub-auth .auth-head { position:static; top:auto; z-index:auto; backdrop-filter:none; background:none; border:0; padding:0; border-radius:0; margin:0 0 28px; }
body.portal-hub.hub-auth .auth-head:before { content:""; display:block; width:32px; height:3px; margin-bottom:20px; background:var(--hub-accent); box-shadow:0 0 16px color-mix(in srgb,var(--hub-accent) 40%,transparent); border-radius:2px; }
body.portal-hub.hub-auth .auth-head h1 { font-size:36px; line-height:1.12; letter-spacing:-1.2px; margin:0 0 12px; }
body.portal-hub.hub-auth .auth-head .muted { font-size:14px; opacity:1; color:var(--hub-muted); line-height:1.65; }
body.portal-hub.hub-auth .auth-form { margin-top:0; gap:18px; }
body.portal-hub.hub-auth .field { min-width:0; }
body.portal-hub.hub-auth .field label { color:var(--hub-text); opacity:1; font-size:13px; font-weight:600; margin-bottom:8px; }
body.portal-hub.hub-auth .field input:is([type="email"],[type="password"],[type="text"]) { background:var(--hub-field); color:var(--hub-text); border:1px solid var(--hub-line); border-radius:10px; padding:13px 14px; min-height:48px; font-size:16px; }
body.portal-hub.hub-auth .tsb-password>input:is([type="password"],[type="text"]) { padding-right:48px; }
body.portal-hub.hub-auth .field input::placeholder { color:var(--hub-muted); opacity:.8; font-size:13px; }
body.portal-hub.hub-auth .field input:hover { border-color:color-mix(in srgb,var(--hub-accent) 45%,var(--hub-line)); }
body.portal-hub.hub-auth .field input:focus { border-color:var(--hub-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--hub-accent) 15%,transparent); }
body.portal-hub.hub-auth .field .checkbox { color:var(--hub-muted); font-weight:400; margin-bottom:0; }
body.portal-hub.hub-auth .tsb-eye { color:var(--hub-muted); width:36px; height:36px; right:6px; border-radius:8px; }
body.portal-hub.hub-auth .tsb-eye:hover { color:var(--hub-text); background:var(--hub-tint); }
body.portal-hub.hub-auth .auth-inline-link,body.portal-hub.hub-auth .auth-card a:not(.btn) { color:var(--hub-accent-text); }
body.portal-hub.hub-auth .auth-inline-link { min-height:32px; }
body.portal-hub.hub-auth :is(.auth-card,.auth-modal-card) .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; height:auto; padding:11px 16px; font-family:inherit; font-size:13px; font-weight:650; border-radius:10px; border:1px solid var(--hub-accent); background:var(--hub-accent); color:var(--hub-on-accent); box-shadow:none; }
body.portal-hub.hub-auth :is(.auth-card,.auth-modal-card) .btn.primary { min-height:48px; background:linear-gradient(110deg,var(--hub-cyan),var(--hub-accent) 60%); }
body.portal-hub.hub-auth:is([data-portal-theme="graphite"],[data-portal-theme="rose_mist"]) .auth-card .btn.primary { background:var(--hub-accent); }
body.portal-hub.hub-auth :is(.auth-card,.auth-modal-card) .btn.ghost { color:var(--hub-text); border-color:var(--hub-line); background:var(--hub-field); }
body.portal-hub.hub-auth #register-success-state #reg-go-login-btn { color:var(--hub-on-accent)!important; box-shadow:none; }
body.portal-hub.hub-auth :is(.auth-card,.auth-modal-card) .btn:disabled { opacity:.6; cursor:default; filter:none; }
body.portal-hub.hub-auth .auth-foot { padding-top:22px; margin-top:22px; border-top:1px solid var(--hub-line); font-size:13px; opacity:1; }
body.portal-hub.hub-auth .auth-foot p { margin:0; font-size:13px; }
body.portal-hub.hub-auth { --hub-auth-error:#ff959d; }
body.portal-hub.hub-auth[data-portal-theme="rose_mist"] { --hub-auth-error:#a51f40; }
body.portal-hub.hub-auth .msg { overflow-wrap:anywhere; }
body.portal-hub.hub-auth .msg.error { color:var(--hub-auth-error); }
body.portal-hub.hub-auth .msg.success { color:var(--hub-positive); }
body.portal-hub.hub-auth .msg.info { color:var(--hub-accent-text); }
body.portal-hub.hub-auth .msg:empty { display:none; }
body.portal-hub.hub-auth .notice.verify-tip { color:var(--hub-text); background:var(--hub-tint); border-color:var(--hub-line); font-size:13px; text-align:left; line-height:1.7; }
body.portal-hub.hub-auth .notice.verify-tip a { color:var(--hub-accent-text); }
body.portal-hub.hub-auth .auth-register-success .muted { color:var(--hub-muted); opacity:1; overflow-wrap:anywhere; }
body.portal-hub.hub-auth .auth-modal-backdrop { background:#020713b8; backdrop-filter:blur(8px); }
body.portal-hub.hub-auth .auth-modal-card { background:var(--hub-panel); color:var(--hub-text); border:1px solid var(--hub-line); border-radius:16px; padding:25px; max-height:80vh; overflow-y:auto; }
body.portal-hub.hub-auth .auth-modal-card>p { font-size:13px; }
body.portal-hub.hub-auth .auth-modal-actions { flex-wrap:wrap; }
body.portal-hub.hub-auth .hub-account-nav [aria-current="page"] { color:var(--hub-text); border-color:var(--hub-line); background:var(--hub-tint); }
@media(max-width:1050px) { body.portal-hub.hub-auth .hub-auth-layout { gap:36px; grid-template-columns:minmax(0,1fr) minmax(0,470px); } body.portal-hub.hub-auth .hub-auth-story h2 { font-size:40px; } }
@media(max-width:800px) { body.portal-hub.hub-auth .hub-auth-layout { grid-template-columns:minmax(0,540px); justify-content:center; gap:0; } body.portal-hub.hub-auth .hub-auth-story { display:none; } body.portal-hub.hub-auth main.auth-wrap { padding:36px 24px 48px; } }
@media(max-width:480px) { body.portal-hub.hub-auth main.auth-wrap { padding:24px 16px 36px; } body.portal-hub.hub-auth .auth-card { padding:25px 20px; border-radius:16px; } body.portal-hub.hub-auth .auth-head h1 { font-size:31px; } body.portal-hub.hub-auth .auth-head { margin-bottom:24px; } body.portal-hub.hub-auth .auth-form { gap:16px; } body.portal-hub.hub-auth .auth-foot { font-size:12px; } }
body.portal-hub.hub-auth .hub-main-nav .nav.active { color:var(--hub-muted); border-color:transparent; background:transparent; box-shadow:none; }
body.portal-hub.hub-auth .hub-main-nav .nav.active:after { display:none; }
/* The footer opens the consent choices; keep the floating toggle off the forms. */
body.portal-hub.hub-auth .tsb-analytics-manage-btn { display:none; }
