/* Interface density (SaaS dashboard scale) and horizontal-overflow guards. Loaded after accessibility.css.
   Base element sizes use :where() so screen-specific titles (heroes, cards) keep their own scale. */
.platform{font-size:var(--font-size-base);line-height:1.5}
:where(.platform) h1{font-size:28px;line-height:1.2;letter-spacing:-.4px}
:where(.platform) h2{font-size:var(--font-size-xl);line-height:1.35}
:where(.platform) h3{font-size:var(--font-size-md);line-height:1.4}
.platform .pheading{flex-wrap:wrap;gap:var(--space-3) var(--space-5);margin-bottom:22px}
.platform .pheading>div{min-width:0}
.platform .pheading h1{font-size:28px;line-height:1.2;letter-spacing:-.4px;overflow-wrap:break-word}
.platform .pheading p,.platform .settings-page .pheading p{font-size:var(--font-size-base);line-height:1.55;margin-top:6px}
.platform .heading-icon{width:52px;height:52px;border-radius:14px;flex:0 0 52px}
.platform .heading-icon svg{width:26px;height:26px}
.platform .pbox h2{font-size:var(--font-size-xl);line-height:1.35;margin-bottom:14px}
.platform .pbox h3{font-size:var(--font-size-md);line-height:1.4}
.platform .settings-form h2,.platform .featured-project h2{font-size:20px}
.platform .selection-card h2,.platform .review-film h2{font-size:var(--font-size-xl)}
.platform .pexplore-hero h1{font-size:var(--font-size-4xl)}
.platform .message-heading h1{font-size:clamp(24px,2.2vw,30px)}
.platform .member-hero-copy h1{font-size:30px}
.platform .laurel-heading h1,.platform .portfolio-photo-view h1{font-size:28px}
.platform .search-hero h1{font-size:clamp(26px,2.4vw,32px)}
.platform .cms-article h1{font-size:clamp(26px,2.4vw,32px)}
.platform .pauth-form h1{font-size:28px}
.filmmaker-dashboard .dash-welcome h1{font-size:var(--font-size-4xl)}
.platform .ptabs a,.platform .ptabs button{font-size:var(--font-size-sm)}
/* Back-office forms and tables. */
.platform .admin-list-filters .pfield input,.platform .admin-list-filters .pfield select{font-size:var(--font-size-base);min-height:40px}
.platform .operation-status{font-size:var(--font-size-base);line-height:1.55}
.platform .operation-status .ptable{font-size:var(--font-size-sm)}
/* Text size preferences: Standard is the default; Large and Extra large stay comfortable without inflating layouts. */
.platform.a11y-text-large{font-size:var(--font-size-md)}
.platform.a11y-text-large :is(.pcontent,.pfull,.pworkspace,.filmmaker-dashboard) :is(p,a,button,input,select,textarea,label,td,th,li,small),
.platform.a11y-text-large :is(.pcard,.pbox,.ptable,.dash-panel) :is(p,a,button,input,select,textarea,label,td,th,li,small){font-size:max(1em,14.5px)!important;line-height:max(1.45em,21px)!important}
.platform.a11y-text-xlarge{font-size:17px}
.platform.a11y-text-xlarge :is(.pcontent,.pfull,.pworkspace,.filmmaker-dashboard) :is(p,a,button,input,select,textarea,label,td,th,li,small),
.platform.a11y-text-xlarge :is(.pcard,.pbox,.ptable,.dash-panel) :is(p,a,button,input,select,textarea,label,td,th,li,small){font-size:max(1em,16.5px)!important;line-height:max(1.5em,24px)!important}
.platform.a11y-text-large .filmmaker-dashboard{--dash-copy:15px;--dash-meta:13px;--dash-heading:19px}
.platform.a11y-text-xlarge .filmmaker-dashboard{--dash-copy:17px;--dash-meta:15px;--dash-heading:21px}
.platform.a11y-text-large .pheading h1{font-size:30px}.platform.a11y-text-xlarge .pheading h1{font-size:var(--font-size-4xl)}
/* Overflow guards: the page never scrolls sideways; wide components scroll inside themselves. */
.platform .pworkspace>*,.platform .pwork-main,.platform main>*,.platform .pbox,.platform .pcard{min-width:0}
.platform main :is([class*=grid],[class*=layout],[class*=columns])>*{min-width:0}
.platform main :is(img,video,iframe,embed,object,canvas,svg:not(.icon)){max-width:100%}
.platform main :is(p,li,dd,dt,small,label,h1,h2,h3,h4,blockquote,figcaption,[data-user-content]){overflow-wrap:break-word}
.platform main :is(code,kbd,samp,.mono){overflow-wrap:anywhere;word-break:break-word}
.platform main pre{max-width:100%;overflow-x:auto}
.platform :is(.ptable-wrap,.table-scroll,.ptable-scroll){max-width:100%;overflow-x:auto}
.platform .ptabs{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.platform .ptabs:has(>.pbtn){flex-wrap:wrap;overflow-x:visible;gap:var(--space-2);padding-bottom:10px}
.platform .ptabs:has(>.pbtn)>.pbtn{white-space:nowrap}
.platform main select{max-width:100%}
.platform .project-types{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.platform .file-row{min-width:0;flex-wrap:wrap}
.platform .file-row>*{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){
 :where(.platform) h1,.platform .pheading h1{font-size:var(--font-size-3xl)}
 .platform.a11y-text-large .pheading h1,.platform.a11y-text-xlarge .pheading h1{font-size:26px}
 .platform .pexplore-hero h1,.platform .member-hero-copy h1{font-size:26px}
 .filmmaker-dashboard .dash-welcome h1{font-size:28px}
 .platform .pheading>a,.platform .pheading>.pbtn,.platform .pheading>form{max-width:100%}
}
@media(max-width:600px){
 .platform .heading-icon{width:42px;height:42px;flex-basis:42px;border-radius:var(--radius-md)}
 .platform .heading-icon svg{width:22px;height:22px}
 .platform .pheading p{font-size:var(--font-size-sm)}
}
