/* ToolsForModels V53 — one public visual system.
   Layout-specific styles keep their grids; this file owns type, chrome and controls. */
@font-face {
  font-family: 'Major Mono Display'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/MajorMonoDisplay-Regular.woff2') format('woff2');
}
:root {
  --tfm-background: #fff; --tfm-surface: #f6f5f3; --tfm-text: #1c1b1a;
  --tfm-muted: #625e58; --tfm-border: #dedbd6; --tfm-accent: #78612c;
  --tfm-font: system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --tfm-display: var(--tfm-font); --tfm-radius: 2px;
  --tfm-title-xl: clamp(1.85rem,4.3vw,3.6rem);
  --tfm-title-lg: clamp(1.45rem,2.6vw,2.15rem);
  --tfm-title-md: clamp(1.2rem,2vw,1.65rem);
}
html:is(:lang(en),:lang(fr),:lang(es),:lang(pt),:lang(de),:lang(it),:lang(pl),:lang(tr),:lang(id)) {
  --tfm-display: 'Major Mono Display',var(--tfm-font);
}
* { box-sizing: border-box; }
body.tfm-portal,body.castings-v14 {
  --ink: var(--tfm-text); --muted: var(--tfm-muted); --line: var(--tfm-border); --soft: var(--tfm-surface);
  --bg: #fff; --sans: var(--tfm-font); --serif: var(--tfm-display);
  --about-bg: #fff; --about-ink: var(--tfm-text); --about-sans: var(--tfm-font); --about-serif: var(--tfm-display);
  --tfm-unit-ivory: #fff; --tfm-unit-ink: var(--tfm-text); --tfm-unit-line: var(--tfm-border); --tfm-unit-red: var(--tfm-accent);
  --tfm-s2-paper: #fff; --tfm-s2-surface: #fff; --tfm-s2-ink: var(--tfm-text); --tfm-s2-muted: var(--tfm-muted);
  --tfm-s2-line: var(--tfm-border); --tfm-s2-accent: var(--tfm-accent); --tfm-s2-radius: 2px; --tfm-s2-radius-sm: 2px;
  margin: 0; background: var(--tfm-background); color: var(--tfm-text);
  font: 400 16px/1.65 var(--tfm-font); -webkit-font-smoothing: antialiased; overflow-x: visible;
}
.tfm-portal :is(h1,h2,h3),.castings-v14 :is(h1,h2,h3) {
  font-family: var(--tfm-display); font-weight: 400; font-synthesis: none;
  letter-spacing: -.035em; line-height: 1.22; text-wrap: balance; color: var(--tfm-text); overflow-wrap: anywhere;
}
.tfm-portal h1,.castings-v14 h1 { font-size: var(--tfm-title-xl); }
.tfm-portal h2,.castings-v14 h2 { font-size: var(--tfm-title-lg); }
.tfm-portal h3,.castings-v14 h3 { font-size: var(--tfm-title-md); }
.tfm-portal :is(button,input,select,textarea),.castings-v14 :is(button,input,select,textarea) { font-family: var(--tfm-font); }
.tfm-portal :is(a,button,input,select,textarea),.castings-v14 :is(a,button,input,select,textarea) { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-underline-offset: .22em; }
p { overflow-wrap: anywhere; }
img { max-width: 100%; height: auto; }
[hidden],.hidden,.tfm-legacy-header,.tfm-legacy-footer,.mobile-bottom-nav { display: none!important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.tfm-portal :is(a,button,input,select,textarea,summary):focus-visible,.castings-v14 :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--tfm-accent); outline-offset: 4px;
}
/* One header and footer, including the account and photo pages. */
.tfm-unit-shell,.tfm-portal .shell,.castings-v14 .shell { width: min(1180px,calc(100% - 48px)); margin-inline: auto; }
.tfm-unit-header { position: relative; z-index: 90; padding: 0; background: #fff; color: var(--tfm-text); border-bottom: 1px solid var(--tfm-border); }
.tfm-unit-headrow { min-height: 76px; display: flex; align-items: center; gap: 20px; }
.tfm-unit-identity { display: flex; align-items: center; min-width: 0; gap: 10px; }
.tfm-unit-header .tfm-unit-brand,.tfm-unit-footer .tfm-unit-footbrand {
  color: var(--tfm-text); text-decoration: none; white-space: nowrap;
  font: 750 1.05rem/1.2 var(--tfm-font); letter-spacing: -.045em;
}
.tfm-unit-module { color: var(--tfm-muted); font: 600 .62rem/1.3 var(--tfm-font); letter-spacing: .1em; text-transform: uppercase; border-left: 1px solid var(--tfm-border); padding-left: 10px; }
.tfm-unit-nav { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.tfm-unit-nav>a,.tfm-unit-navgroup>summary {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 9px;
  font: 600 .75rem/1.35 var(--tfm-font); text-decoration: none; white-space: nowrap; cursor: pointer;
  color: var(--tfm-text); background: transparent; border: 0; border-radius: 2px;
}
.tfm-unit-nav>a:hover,.tfm-unit-navgroup>summary:hover,.tfm-unit-navgroup-menu a:hover { background: var(--tfm-surface); }
.tfm-unit-nav a[aria-current=page] { text-decoration: underline; text-decoration-color: var(--tfm-accent); }
.tfm-unit-navgroup { position: relative; margin: 0; }
.tfm-unit-navgroup>summary { list-style: none; }
.tfm-unit-navgroup>summary::-webkit-details-marker { display: none; }
.tfm-unit-navgroup>summary::after { content: '⌄'; font-size: .7rem; }
.tfm-unit-navgroup-menu { position: absolute; top: 100%; left: 0; z-index: 110; min-width: 225px; padding: 8px; border: 1px solid var(--tfm-border); background: #fff; }
.tfm-unit-navgroup-menu a { display: flex; align-items: center; min-height: 44px; padding: 8px 12px; font: 500 .85rem/1.4 var(--tfm-font); text-decoration: none; }
.tfm-unit-lang { min-width: 0; max-width: 108px; min-height: 44px; padding: 8px 18px 8px 6px; border: 0; border-radius: 2px; background: #fff; color: var(--tfm-text); font: 600 .75rem/1.3 var(--tfm-font); cursor: pointer; }
.tfm-unit-menu-toggle { display: none; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 8px 0 8px 8px; background: transparent; color: var(--tfm-text); border: 0; border-radius: 2px; cursor: pointer; }
.tfm-unit-menu-label { font: 600 .75rem/1.3 var(--tfm-font); }
.tfm-unit-menu-icon { display: flex; flex-direction: column; justify-content: space-between; width: 18px; height: 12px; }
.tfm-unit-menu-icon span { height: 1px; width: 100%; background: currentColor; transition: transform .15s ease; }
.tfm-unit-menu-toggle[aria-expanded=true] .tfm-unit-menu-icon span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.tfm-unit-menu-toggle[aria-expanded=true] .tfm-unit-menu-icon span:nth-child(2) { opacity: 0; }
.tfm-unit-menu-toggle[aria-expanded=true] .tfm-unit-menu-icon span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.tfm-unit-footer { margin-top: clamp(28px,4vw,48px); background: #fff; color: var(--tfm-text); border-top: 1px solid var(--tfm-border); }
.tfm-unit-footer .tfm-unit-shell { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 100px; padding-block: 20px; }
.tfm-unit-footmeta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; font: 500 .8rem/1.5 var(--tfm-font); color: var(--tfm-muted); }
.tfm-unit-footmeta a { display: inline-flex; align-items: center; min-height: 44px; }
.tfm-unit-breadcrumb { width: min(1180px,calc(100% - 48px)); margin: 20px auto; color: var(--tfm-muted); font: 500 .8rem/1.5 var(--tfm-font); }
.tfm-language-coverage { color: var(--tfm-muted); }
/* Shared controls: ink primary, white secondary, plain text tertiary. */
.tfm-portal :is(.button,.btn,.v38-button,.tfm-v31-primary,.ial-btn,.intake-file-picker),
.castings-v14 .button,.tfm-portal :is(.sa button,.intake-actions a,.intake-actions button,#save,#submit,.actions button,.options button,.msg-compose button) {
  display: inline-flex; justify-content: center; align-items: center; gap: 12px; min-height: 48px;
  padding: 12px 20px; border: 1px solid var(--tfm-text); border-radius: var(--tfm-radius);
  background: var(--tfm-text); color: #fff; font: 600 .9rem/1.45 var(--tfm-font); text-decoration: none; cursor: pointer; box-shadow: none;
}
.tfm-portal :is(.button-outline,.secondary,.btn-secondary,.sa button.secondary,.ial-btn:not(.primary),.intake-file-picker,.intake-actions a:not(.primary),.intake-actions button),
.castings-v14 .button-outline,.tfm-portal .options button {
  background: #fff; color: var(--tfm-text); border: 1px solid var(--tfm-border);
}
.tfm-portal :is(.text-button,.v38-quiet),.castings-v14 .text-button { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 0; border: 0; border-radius: 0; background: transparent; color: var(--tfm-text); font: 500 .9rem/1.5 var(--tfm-font); text-decoration: underline; }
.tfm-portal button:disabled,.castings-v14 button:disabled { opacity: .5; cursor: wait; }
.tfm-portal :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select:not(.tfm-unit-lang)),
.castings-v14 :is(input:not([type=checkbox]):not([type=radio]),textarea,select:not(.tfm-unit-lang)) {
  min-height: 48px; max-width: 100%; padding: 12px 14px; border: 1px solid var(--tfm-border); border-radius: 2px;
  background: #fff; color: var(--tfm-text); font: 400 16px/1.5 var(--tfm-font); box-shadow: none;
}
.tfm-portal :is(input[type=checkbox],input[type=radio]),.castings-v14 :is(input[type=checkbox],input[type=radio]) { width: 20px; height: 20px; accent-color: var(--tfm-text); }
.tfm-portal :is(.panel,.auth-card,.sa fieldset,.sa-file,.tracking-row,.casting-return-panel,.msg-report-dialog) { border: 1px solid var(--tfm-border); border-radius: 2px; box-shadow: none; background: #fff; }
.tfm-portal :is(.lead,.v38-lead,.local-note,.email-action-note,.intake-notice),.castings-v14 .lead { color: var(--tfm-muted); }
/* Home. Card headings are part of the same title system as the hero. */
.tfm-portal .tfm-home { width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: clamp(20px,3vw,40px) 0; }
.tfm-home .v38-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: clamp(20px,3vw,44px); align-items: center; }
.tfm-portal .tfm-home .v38-copy h1 { font-size: var(--tfm-title-xl); line-height: 1.2; margin: .2em 0 .6em; max-width: 21ch; }
.tfm-home :is(.v38-overline,.v38-op-index,.v38-op-visual>span),.eyebrow { font: 500 .7rem/1.5 var(--tfm-font); letter-spacing: .13em; text-transform: uppercase; color: var(--tfm-muted); }
.tfm-home .v38-op-index { color: var(--tfm-accent); }
.tfm-home .v38-lead { max-width: 50ch; font-size: 1rem; line-height: 1.6; margin: 0 0 16px; }
.tfm-home .v38-overline { margin: 0 0 10px; }
.tfm-home .v38-photo { aspect-ratio: 4/5; overflow: hidden; background: var(--tfm-surface); }
.tfm-home .v38-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; filter: grayscale(1); }
.tfm-home .v38-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; margin: 16px 0 0; }
.tfm-home .v38-hero-bottom { color: var(--tfm-muted); font-size: .65rem; letter-spacing: .13em; margin-top: 36px; }
.tfm-home .v38-section-title { margin: clamp(28px,4vw,48px) 0 16px; }
.tfm-portal .tfm-home .v38-section-title h2 { font-size: var(--tfm-title-lg); margin: 12px 0 0; }
.tfm-home .v38-opportunities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.tfm-home .v38-op { min-width: 0; display: block; color: inherit; text-decoration: none; padding: 18px 0; border-top: 1px solid var(--tfm-border); }
.tfm-home .v38-op-visual { position: relative; aspect-ratio: 16/10; overflow: hidden; margin-bottom: 14px; background: var(--tfm-surface); }
.tfm-home .v38-op-visual img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.tfm-home .v38-op-visual>span { position: absolute; bottom: 16px; left: 16px; background: #fff; padding: 6px 12px; color: var(--tfm-text); }
.tfm-portal .tfm-home .v38-op h3 { font: 400 var(--tfm-title-md)/1.3 var(--tfm-display); letter-spacing: -.035em; margin: 18px 0 14px; }
.tfm-home .v38-op p { font: 400 1rem/1.6 var(--tfm-font); color: var(--tfm-muted); max-width: 48ch; margin: 0; }
.tfm-home .v38-op-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; font: 600 .88rem/1.5 var(--tfm-font); min-height: 48px; margin-top: 8px; }
.tfm-home .v38-tools { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.tfm-home .v38-tools>a { display: flex; flex-direction: column; min-width: 0; padding: 22px 0; border-top: 1px solid var(--tfm-border); text-decoration: none; overflow-wrap: anywhere; }
.tfm-home .v38-tools>a :is(strong,.v38-tool-title) { font: 400 clamp(1rem,1.5vw,1.22rem)/1.35 var(--tfm-display); letter-spacing: -.035em; margin: 14px 0; }
.tfm-home .v38-tools>a small { font-size: .88rem; line-height: 1.65; color: var(--tfm-muted); }
.tfm-home :is(.v38-tool-symbol,.v38-tool-arrow) { font-size: .9rem; }
.tfm-home .v38-tool-arrow { margin-top: 12px; }
.tfm-home .v38-photo-strip { display: flex; align-items: center; gap: 20px; text-decoration: none; border-block: 1px solid var(--tfm-border); padding: 20px 0; margin-top: 20px; }
.tfm-home .v38-photo-strip>span:nth-child(2) { flex: 1; min-width: 0; }
.tfm-home .v38-photo-strip strong { display: block; font: 400 clamp(1.1rem,2vw,1.4rem)/1.3 var(--tfm-display); letter-spacing: -.035em; }
.tfm-home .v38-photo-strip small { display: block; margin-top: 12px; color: var(--tfm-muted); font-size: .88rem; line-height: 1.65; }
.tfm-home .v38-strip-cta { flex: none; display: inline-flex; align-items: center; min-height: 44px; font-size: .88rem; }
.tfm-home-explore { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; padding: 20px 0; margin-top: 24px; border-bottom: 1px solid var(--tfm-border); align-items: center; }
.tfm-portal .tfm-home-explore h2 { font-size: var(--tfm-title-lg); margin: 0 0 16px; }
.tfm-home-explore p { margin: 0; color: var(--tfm-muted); max-width: 65ch; }
.tfm-home-explore a { display: inline-flex; align-items: center; min-height: 44px; }
/* Casting lists and preparation share the Home type scale. */
.castings-v14 .catalogue-intro { padding-top: 28px; padding-bottom: 20px; }
.castings-v14 :is(.catalogue-intro h1,.decision h1,.prepare-intro h1) { font: 400 var(--tfm-title-xl)/1.22 var(--tfm-display); letter-spacing: -.035em; }
.castings-v14 :is(.casting-card h3,.tracking-row h2) { font: 400 clamp(1.15rem,1.75vw,1.5rem)/1.35 var(--tfm-display); letter-spacing: -.035em; }
.castings-v14 :is(.editorial-section h2,.step-copy h2,.official-procedure h2,.casting-context-links h2,.results-heading h2,.casting-dialog h2) { font: 400 clamp(1.05rem,1.6vw,1.3rem)/1.35 var(--tfm-display); letter-spacing: -.025em; }
.castings-v14 .casting-card-summary { font-size: .9rem; line-height: 1.7; }
.castings-v14 .casting-card-link { padding-block: 18px; }
.castings-v14 :is(.search-row input,.search-row button) { min-height: 48px; border-radius: 2px; }
.castings-v14 .search-options { gap: 0 18px; margin-top: 6px; }
.castings-v14 .search-options :is(.check-label,.text-button) { min-height: 44px; }
.castings-v14 .search-options .check-label { display: inline-flex; align-items: center; gap: 9px; }
.castings-v14 .search-options input[type=checkbox] { width: 20px; height: 20px; margin: 0; }
.castings-v14 #casting-remote-only[aria-pressed=true] { color: var(--tfm-accent); font-weight: 700; }
.castings-v14 .casting-dialog { border: 1px solid var(--tfm-border); border-radius: 2px; box-shadow: none; }
.source-verification { border-top: 1px solid var(--tfm-border); margin-top: 32px; padding-top: 16px; color: var(--tfm-muted); font-size: .83rem; }
.source-verification summary { display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; font-weight: 600; }
.source-verification summary::before { content: '+'; }.source-verification[open] summary::before { content: '−'; }
.casting-context-links { border-top: 1px solid var(--tfm-border); margin-top: 40px; padding-top: 24px; }
.casting-context-links ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 28px; list-style: none; padding: 0; }
.casting-context-links li { min-width: 0; }
.casting-context-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 4px 0; border: 0; background: transparent; font: 400 .9rem/1.6 var(--tfm-font); text-decoration: underline; text-decoration-color: var(--tfm-border); }
.casting-return-panel { margin: 24px 0; padding: 24px; border: 1px solid var(--tfm-border); border-radius: 2px; }
.casting-return-panel:empty { display: none; }.casting-return-panel h2 { margin-top: 0; }
.casting-return-panel a { display: inline-flex; align-items: center; margin-right: 20px; min-height: 44px; }
/* Photos, signup, onboarding and account. */
.tfm-portal :is(.intake-shell,.sa) { width: min(900px,calc(100% - 48px)); max-width: 900px; margin: 0 auto; padding: 24px 0 40px; font: 400 1rem/1.65 var(--tfm-font); color: var(--tfm-text); }
.tfm-portal .intake-shell h1,.tfm-portal .sa h1 { font: 400 clamp(1.7rem,3.5vw,2.7rem)/1.25 var(--tfm-display); margin: 16px 0 24px; letter-spacing: -.035em; }
.tfm-portal .intake-shell h2 { font-size: var(--tfm-title-md); }
.tfm-portal :is(.sa fieldset,.panel) { padding: clamp(20px,3vw,32px); margin: 24px 0; }
.tfm-portal .sa legend { padding: 0 10px; font: 400 clamp(1rem,2vw,1.3rem)/1.4 var(--tfm-display); }
.tfm-portal .sa h2 { font-size: var(--tfm-title-md); }.tfm-portal .sa h3 { font-size: 1.05rem; }
.tfm-portal .sa-row { gap: 20px; }.tfm-portal .sa-row label { min-width: 0; }
.tfm-portal .sa nav { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 24px; font-size: .85rem; }
.tfm-portal .sa nav a { min-height: 44px; display: inline-flex; align-items: center; }
.tfm-portal .sa-preview { background: var(--tfm-surface); color: var(--tfm-text); padding: 24px; font: 400 .94rem/1.75 var(--tfm-font); white-space: pre-wrap; overflow-wrap: anywhere; }
.tfm-portal :is(.sa-file,.intake-photo) { border-color: var(--tfm-border); border-radius: 2px; }
.tfm-portal :is(#previews img,.intake-photo img,#preview img) { border-radius: 2px; }
.tfm-portal .intake-preview { padding: 0; border: 0; background: transparent; }
.tfm-portal[data-portal-page=signup]>main { width: min(640px,calc(100% - 48px)); max-width: 640px; margin: 28px auto 40px; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: #fff; }
.tfm-portal[data-portal-page=signup] h1 { font-size: clamp(1.7rem,3vw,2.5rem); }
.tfm-portal[data-portal-page=signup] h2 { font-size: 1.25rem; }
.tfm-signup-photo-first { padding: 12px 0 24px; }
.tfm-signup-photo-first p { color: var(--tfm-muted); }
.tfm-portal[data-portal-page=welcome]>main { width: min(800px,calc(100% - 48px)); max-width: 800px; padding: 0; margin: 24px auto 40px; }
.tfm-portal[data-portal-page=welcome] h1 { font-size: clamp(1.7rem,3vw,2.5rem); }
.tfm-portal[data-portal-page=welcome] h2 { font-size: 1.25rem; }
.tfm-portal .options button[aria-pressed=true] { background: var(--tfm-text); color: #fff; border-color: var(--tfm-text); }
.tfm-portal[data-portal-page=dashboard] .dash { background: #fff; padding-top: 24px; }
.tfm-portal .dash h1 { font: 400 var(--tfm-title-xl)/1.22 var(--tfm-display); }
.tfm-portal .tfm-v31-upload { margin: 32px 0; padding: 24px; background: var(--tfm-surface); border: 1px solid var(--tfm-border); border-radius: 2px; }
.tfm-portal .tfm-v31-upload h2 { font-size: 1.25rem; margin: 0 0 20px; }
.tfm-portal :is(.toolkit-phase,.module-card,.account-chip) { border-radius: 2px; border-color: var(--tfm-border); box-shadow: none; }
.tfm-portal .toolkit-phase>strong { font: 400 1.05rem/1.4 var(--tfm-display); }
/* Public information and native language guides use the same palette and type. */
.tfm-portal.about-page :is(h1,h2,h3) { font-family: var(--tfm-display); font-weight: 400; line-height: 1.25; letter-spacing: -.035em; }
.tfm-portal.about-page h1 { font-size: var(--tfm-title-xl); }
.tfm-portal.about-page h2 { font-size: var(--tfm-title-lg); }
.tfm-portal.about-page h3 { font-size: var(--tfm-title-md); }
.tfm-portal.about-page :is(.about-route,.about-action-card,.about-data) { border-radius: 2px; box-shadow: none; }
.tfm-portal .ial-shell :is(h1,h2,h3) { font-family: var(--tfm-display); font-weight: 400; line-height: 1.3; }
.tfm-portal .ial-shell h1 { font-size: var(--tfm-title-xl); }.tfm-portal .ial-shell h2 { font-size: var(--tfm-title-lg); }
.tfm-portal :is(.ial-card,.ial-context-links) { border-radius: 2px; border-color: var(--tfm-border); box-shadow: none; }
/* Messaging keeps its functional full-screen conversation on phones. */
.tfm-portal .msg-shell { width: min(1050px,calc(100% - 48px)); padding: 24px 0 40px; }
.tfm-portal .msg-head h1 { font: 400 clamp(1.7rem,3.5vw,2.7rem)/1.25 var(--tfm-display); }
.tfm-portal :is(.msg-compose button,.msg-actions button,.msg-report-dialog button) { min-height: 44px; border-radius: 2px; font-family: var(--tfm-font); }
.tfm-portal .msg-list button { background: #fff; color: var(--tfm-text); border-radius: 0; }
.tfm-portal .msg-list button.active { background: var(--tfm-surface); }
.tfm-portal .bubble { border-radius: 2px; background: var(--tfm-surface); }.tfm-portal .bubble.mine { background: var(--tfm-text); color: #fff; }
.tfm-portal .msg-thread { z-index: 100; }
@media(max-width:1100px) and (min-width:961px) { .tfm-unit-module { display: none; }.tfm-unit-headrow { gap: 8px; }.tfm-unit-nav>a,.tfm-unit-navgroup>summary { padding-inline: 6px; font-size: .7rem; } }
@media(max-width:960px) {
  .tfm-unit-header { position: sticky; top: 0; }
  .tfm-unit-header .tfm-unit-headrow { position: relative; min-height: 64px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 8px; }
  .tfm-unit-identity { grid-column: 1; grid-row: 1; overflow: hidden; }.tfm-unit-brand { overflow: hidden; text-overflow: ellipsis; }
  .tfm-unit-module { display: none; }.tfm-unit-lang { grid-column: 2; grid-row: 1; max-width: 96px; }
  .tfm-unit-menu-toggle { grid-column: 3; grid-row: 1; display: inline-flex; }
  .tfm-unit-header .tfm-mobile-menu-nav { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - 80px); margin: 0; padding: 16px 20px; display: none; flex-direction: column; align-items: stretch; gap: 0; border: 1px solid var(--tfm-border); background: #fff; overflow-y: auto; overscroll-behavior: contain; }
  .tfm-mobile-menu-open .tfm-mobile-menu-nav { display: flex; }
  .tfm-unit-nav>a,.tfm-unit-navgroup>summary { min-height: 48px; padding: 12px 0; font-size: .88rem; border-bottom: 1px solid var(--tfm-border); white-space: normal; }
  .tfm-unit-navgroup-menu { position: static; min-width: 0; padding: 0 0 8px 14px; border: 0; }
  .tfm-unit-navgroup-menu a { padding: 10px 0; }
}
@media(max-width:760px) {
  .tfm-unit-shell,.tfm-portal .shell,.castings-v14 .shell,.tfm-portal .tfm-home,.tfm-unit-breadcrumb { width: calc(100% - 36px); }
  .tfm-portal .tfm-home { padding-block: 18px 28px; }
  .tfm-home .v38-hero { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .tfm-portal .tfm-home .v38-copy h1 { max-width: 100%; font-size: clamp(1.5rem,6.4vw,1.85rem); line-height: 1.15; margin: 0 0 14px; }
  .tfm-home .v38-lead { font-size: .95rem; line-height: 1.55; margin-bottom: 12px; }
  .tfm-home .v38-actions { gap: 4px 16px; margin: 0; }
  .tfm-home .v38-photo { aspect-ratio: 3/2; max-height: 320px; }.tfm-home .v38-hero-bottom { display: none; }
  .tfm-home .v38-opportunities { grid-template-columns: minmax(0,1fr); gap: 0; }.tfm-home .v38-op { padding-block: 16px; }
  .tfm-home .v38-op-visual { aspect-ratio: 16/9; margin-bottom: 12px; }
  .tfm-home .v38-op-index { margin: 0 0 8px; }
  .tfm-portal .tfm-home .v38-op h3 { margin: 0 0 10px; }
  .tfm-home .v38-tools { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 20px; }
  .tfm-home .v38-photo-strip { flex-wrap: wrap; gap: 14px; }.tfm-home .v38-photo-strip>span:nth-child(2) { flex-basis: calc(100% - 40px); }.tfm-home .v38-strip-cta { margin-left: 30px; }
  .tfm-home-explore { grid-template-columns: minmax(0,1fr); }
  .casting-context-links ul { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 16px; }
  .casting-context-links a { font-size: .84rem; line-height: 1.45; overflow-wrap: anywhere; }
  .tfm-home .v38-tools>a { padding-block: 16px; }
  .tfm-home .v38-tools>a .v38-tool-title { margin-block: 8px; }
  .tfm-unit-footer .tfm-unit-shell { flex-direction: column; align-items: flex-start; gap: 14px; padding-block: 28px; }
  .tfm-unit-footmeta { gap: 8px 20px; }
  .tfm-portal :is(.sa,.intake-shell,.msg-shell),.tfm-portal[data-portal-page=signup]>main,.tfm-portal[data-portal-page=welcome]>main { width: calc(100% - 36px); }
  .tfm-portal .sa-row { grid-template-columns: minmax(0,1fr); gap: 0; }.tfm-portal .sa button { width: 100%; margin: 6px 0; }
  .tfm-portal :is(.sa fieldset,.panel) { padding: 20px 16px; }
  .tfm-portal .msg-head { padding-inline: 0; }
  .castings-v14 .catalogue-intro { padding-top: 20px; padding-bottom: 16px; }
  .castings-v14 .catalogue-intro .eyebrow { margin-bottom: 8px; font-size: .62rem; }
  .castings-v14 .catalogue-intro h1 { font-size: clamp(1.5rem,6.4vw,1.85rem); line-height: 1.15; }
  .castings-v14 .catalogue-intro .lead { margin-top: 10px; font-size: .9rem; line-height: 1.5; }
  .castings-v14 .search-options { gap: 0 14px; }
  .castings-v14 .search-options :is(.check-label,.text-button) { font-size: .75rem; }
  .castings-v14 .results-heading { padding: 12px 0 4px; gap: 12px; }
  .castings-v14 .results-heading h2 { font-size: .92rem; }
  .castings-v14 .results-heading>a { font-size: .7rem; }
  .castings-v14 .casting-card-link { padding-block: 16px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto!important; transition: none!important; } }
/* Reading copy and rectangular editorial imagery use the same baseline. */
.castings-v14 .editorial-section p { font-size: 1rem; line-height: 1.75; }
.castings-v14 :is(.casting-card-image,.detail-visual,.agency-logo) { border-radius: 2px; }
.tfm-portal.about-page :is(.about-hero,.about-why,.about-actions,.about-method,.about-trust,.about-cta) { background: #fff; color: var(--tfm-text); }
/* The shared language bridge appends a generic selector rule; keep chrome sizing explicit. */
.tfm-unit-header .tfm-unit-lang { width: 96px; max-width: 96px; flex: 0 0 96px; }
.tfm-portal a.secondary,.tfm-portal .intake-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid var(--tfm-border); border-radius: 2px; background: #fff; color: var(--tfm-text); font: 500 .9rem/1.45 var(--tfm-font); text-decoration: none; }
.tfm-unit-header .tfm-unit-lang { font: 600 .75rem/1.3 var(--tfm-font); }
.castings-v14 :is(.casting-card-image.agency-logo img,.detail-visual.agency-logo img) { border-radius: 2px; border-color: var(--tfm-border); }
/* About and the retained direct-application route use the same component geometry. */
.tfm-portal.about-page { --about-line: var(--tfm-border); --about-muted: var(--tfm-muted); --about-ivory: var(--tfm-surface); }
.tfm-portal :is(.about-route,.about-action-card,.about-trust-main,.about-data,.apply-card) { background: #fff; color: var(--tfm-text); border: 1px solid var(--tfm-border); border-radius: 2px; box-shadow: none; }
.tfm-portal .about-route li,.tfm-portal .apply-consent { background: var(--tfm-surface); border-radius: 2px; }
.tfm-portal :is(.about-btn,.apply-submit) { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--tfm-border); border-radius: 2px; background: #fff; color: var(--tfm-text); font: 600 .9rem/1.45 var(--tfm-font); text-decoration: none; }
.tfm-portal :is(.about-btn-dark,.apply-submit) { background: var(--tfm-text); color: #fff; border-color: var(--tfm-text); }
.tfm-portal :is(.apply-brand,.apply-lang) { display: none; }
.tfm-portal :is(.ial-visual img,.dash-signin img) { border-radius: 2px; filter: grayscale(1); }
.tfm-portal :is(.ial-hero,.ial-home-guide,.ial-content) { background: #fff; color: var(--tfm-text); }

/* Compact, contextual casting discovery; no additional filter panel. */
.home-casting-destinations{display:flex;align-items:center;gap:4px 16px;flex-wrap:wrap;margin:8px 0 0;font:500 .85rem/1.5 var(--tfm-font);color:var(--tfm-muted)}
.home-casting-destinations a{display:inline-flex;align-items:center;min-height:44px;color:var(--tfm-text);text-decoration:underline}

/* Compact recruiter identity keeps logos near their name, with editorial photos retained alongside the brief. */
.castings-v14 .decision .recruiter-identity { display: flex; align-items: center; gap: 10px; }
.castings-v14 .recruiter-identity img { width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; border: 1px solid var(--tfm-border); border-radius: 2px; }

/* Journey S2: explanations remain readable on the white dashboard. */
.tfm-portal[data-portal-page="dashboard"] :is(.dash-intro,[data-toolkit-lead],.toolkit-overview-head .eyebrow){color:var(--tfm-muted);}
