/* R41 · frontend typography and content density. Load after component styles.
   No viewport scaling, media geometry, dock offsets, business state or admin reset. */
.product-body .phone,
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) {
 --app-page-title:20px;
 --app-module-title:17px;
 --app-item-title:15px;
 --app-body-size:14px;
 --app-meta-size:12px;
 --app-nickname-size:19px;
 --app-balance-size:30px;
 --app-price-size:22px;
 --app-title-leading:1.35;
 --app-body-leading:1.6;
 --app-meta-leading:1.55;
 --app-card-pad:14px;
 --app-gap:12px;
 --app-section-gap:16px;
 --app-control-height:44px;
}
@media(max-width:350px) {
 .product-body .phone,
 .workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) {
  --app-page-title:18px;--app-module-title:16px;--app-nickname-size:18px;
  --app-balance-size:28px;--app-price-size:20px;--app-card-pad:12px;--app-gap:10px;
 }
}
@media(min-width:1024px) {
 .product-body .phone,
 .workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) {
  --app-page-title:22px;--app-module-title:18px;--app-nickname-size:20px;
  --app-balance-size:32px;--app-price-size:24px;--app-body-size:15px;
  --app-meta-size:13px;--app-card-pad:16px;--app-gap:14px;--app-section-gap:20px;
 }
}

/* Use regional system glyphs in content; preserve playback/navigation typography. */
.product-body .phone :is(.account-page,.benefit-page,.creator-page,.studio-page,.generation-page,.channel-page,.finance-page,.catalog-page,.drama-detail,.sheet-body,#messageRecords,.message-tabs,.route-panel>h1),
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) {
 font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.product-body .phone :is(.account-page,.benefit-page) .account-note {font-size:var(--app-meta-size);line-height:var(--app-meta-leading);}
.product-body .phone .studio-page :is(.studio-idea-heading,.studio-history-heading) h2 {font-size:var(--app-module-title);line-height:1.45;letter-spacing:0;}

/* Page titles are semantic targets, not a global h1 rule. */
.product-body .phone :is(
 .account-page>h1,.benefit-heading h1,.vip-hero>h1,.official-hero h1,
 .creator-heading h1,.channel-heading h1,.finance-heading h1,
 .generation-heading h1,.generation-task-heading h1,.studio-heading h1,
 .catalog-heading h1,.unavailable-page h1,.drama-unavailable h1,
 .route-panel:has(>#messageRecords)>h1,.route-panel:has(>.task-card)>h1,
 .route-panel:has(>.wait-orb)>h1,.generation-page:is([data-view=result],[data-view=unavailable])>h1
) {font-size:var(--app-page-title);line-height:var(--app-title-leading);letter-spacing:0;margin:6px 0 10px;font-weight:650;overflow-wrap:anywhere;}
.product-body .phone #routePanel:has(>.studio-page[data-studio-view=home]) {
 --studio-topbar-title-size:var(--app-page-title);
 --studio-hero-title-min:var(--app-page-title);
 --studio-hero-title-max:var(--app-page-title);
}
.product-body .phone .studio-page[data-studio-view=home]>.studio-heading>div>h1[data-ui-key="studio.home.title"] {
 font-size:var(--app-page-title);line-height:var(--app-title-leading);margin:6px 0 10px;letter-spacing:0;
}
.product-body .phone .route-panel>.route-top>:nth-child(2) {font-size:18px;line-height:1.4;}
.product-body .phone :is(.studio-heading,.generation-heading,.benefit-heading,.catalog-heading,.finance-heading) {gap:var(--app-gap);margin-block:4px var(--app-section-gap);}
.product-body .phone :is(.creator-heading,.channel-heading,.vip-hero,.official-hero) {min-height:0;padding-block:4px 8px;margin-block:4px var(--app-section-gap);}
.product-body .phone :is(.creator-heading,.channel-heading)>div {max-width:100%;}
.product-body .phone :is(.creator-heading,.channel-heading)>img {width:112px;opacity:.2;}

/* The content regions exclude feed captions, playback controls and nav labels. */
.product-body .phone :is(.account-page,.benefit-page,.creator-page,.studio-page,.generation-page,.channel-page,.finance-page) {font-size:var(--app-body-size);line-height:var(--app-body-leading);}
.product-body .phone :is(
 .account-page>p,.benefit-heading p,.vip-hero>p,.official-hero>p,
 .creator-heading p,.channel-heading p,.finance-heading p,.studio-heading p,
 .generation-heading p,.generation-task-heading p,.privilege-row p,
 .creator-qualification p,.recovery-choice p,.message-main small,
 .unavailable-page p,.drama-unavailable p
) {font-size:var(--app-body-size);line-height:var(--app-body-leading);margin-block:6px 10px;}
.product-body .phone :is(
 .account-note,.account-eyebrow,.account-section-heading>span,.account-section-heading>small,
 .member-card p,.member-dates,.wallet-card small,.wallet-summary>span,.wallet-summary p,
 .balance-source>span,.balance-source>small,.account-record-card small,.account-setting-row small,
 .account-records .account-media-card>small,.checkin-row-title,.checkin-row-title small,
 .checkin-day>small,.checkin-status,.task-copy p,.task-copy small,.task-reward,.vip-plan>small,
 .creator-note,.creator-eyebrow,.creator-heading small,.creator-level small,.creator-level p,
 .creator-work-info small,.creator-work-info p,.creator-stats small,.creator-income-card p,
 .creator-balance-grid small,.creator-ledger-row small,.creator-withdraw-row small,
 .channel-note,.channel-eyebrow,.channel-heading small,.channel-metrics small,.finance-scope,
 .finance-heading small,.finance-metrics small,.finance-direction-card>p,
 .studio-entry-index,.studio-state,.studio-task-state,.studio-task-card small,.studio-manual small,
 .generation-code,.generation-facts,.generation-card-meta,.generation-status,.generation-field>small,
 .studio-field small,.reference-rule,.reference-toolbar,.studio-mode-badge,
 .catalog-heading small,.catalog-count,.drama-tags,.square-meta,.catalog-card-meta,
 .message-main small:last-child,.route-note
) {font-size:var(--app-meta-size);line-height:var(--app-meta-leading);letter-spacing:normal;overflow-wrap:anywhere;}
/* A few legacy component declarations are important; keep the correction local. */
.product-body .phone :is(.studio-entry p,.generation-card-body p,.studio-director>p,.studio-note,.generation-note,.generation-quote p,.generation-alert,.studio-feedback,.account-caution,.activity-card p) {font-size:var(--app-meta-size)!important;line-height:var(--app-meta-leading)!important;}
.product-body .phone .studio-page .generation-heading p {font-size:var(--app-body-size)!important;line-height:var(--app-body-leading);}

/* Modules and list rows keep a separate hierarchy from page titles. */
.product-body .phone :is(
 .account-page>h2,.account-section-heading h2,.member-card h2,.vip-privileges>h2,
 .creator-level h2,.creator-qualification h2,.creator-price-card>h2,.creator-withdraw-card>h2,
 .channel-access h2,.channel-invite h2,.studio-section h2,.studio-idea-heading h2,
 .studio-history-heading h2,.studio-director h2,.studio-reference h2,.studio-context h2,
 .studio-api-panel h2,.studio-manual-panel h2,.activity-card h2,.activity-card h3,
 .empty-state h2,.account-empty h2,.creator-empty h2,.channel-empty h2,.generation-empty h2,
 .studio-empty h2,.drama-selection-heading>h2,.drama-comments-heading>h2
) {font-size:var(--app-module-title);line-height:1.45;letter-spacing:0;font-weight:600;margin-block:6px 10px;overflow-wrap:anywhere;}
.product-body .phone :is(
 .account-record-card strong,.account-setting-row strong,.account-media-card>strong,
 .task-copy h3,.privilege-row strong,.creator-work-info h2,.creator-work-info h3,
 .creator-ledger-row strong,.creator-withdraw-row strong,.studio-task-card strong,
 .studio-task-card h3,.studio-manual strong,.generation-card-body h2,.generation-card-body>strong,
 .message-main strong,.drama-title,.square-title,.template-card strong,.task-card strong,.content-card strong
) {font-size:var(--app-item-title);line-height:1.5;font-weight:600;letter-spacing:normal;overflow-wrap:anywhere;}

/* Profile, balances and membership: remove poster-like scale and fixed hero space. */
.product-body .phone .profile-hero {display:grid;grid-template-columns:48px minmax(0,1fr) 40px;gap:0 10px;margin:2px 0 14px;}
.product-body .phone .profile-hero>.account-avatar {width:48px;height:48px;}
.product-body .phone .profile-hero>.account-icon-button {width:40px;height:40px;min-height:40px;min-width:40px;}
.product-body .phone .profile-identity :is(h1,h2) {font-size:var(--app-nickname-size);line-height:1.4;letter-spacing:0;margin:3px 0 4px;word-break:normal;overflow-wrap:anywhere;}
.product-body .phone .profile-hero .account-eyebrow {font-size:var(--app-meta-size);line-height:1.5;letter-spacing:0;}
.product-body .phone .account-id {font-size:var(--app-meta-size);line-height:1.5;min-height:40px;}
.product-body .phone .member-card {min-height:0;padding:var(--app-card-pad);margin:12px 0;border-radius:14px;}
.product-body .phone .member-copy {max-width:100%;}
.product-body .phone .member-card .member-art {width:112px;right:-28px;opacity:.22;}
.product-body .phone .member-card .account-eyebrow {font-size:11px;line-height:1.5;letter-spacing:0;}
.product-body .phone .member-card h2 {margin:6px 0;}
.product-body .phone .member-card p {margin:0 0 10px;max-width:100%;}
.product-body .phone :is(.wallet-card,.wallet-summary) {padding:var(--app-card-pad);margin:12px 0;gap:10px;}
.product-body .phone :is(.balance-number,.wallet-summary>.balance-number,.creator-money) {font-size:var(--app-balance-size);line-height:1.25;letter-spacing:-.025em;margin:4px 0;font-weight:650;}
.product-body .phone :is(.balance-number>span,.creator-stats strong span,.recharge-plan strong>span) {font-size:var(--app-meta-size);line-height:1.5;font-weight:400;letter-spacing:0;}
.product-body .phone .balance-number>span {display:inline-block;white-space:nowrap;}
.product-body .phone :is(.balance-source>strong,.creator-stats strong,.creator-balance-grid strong,.channel-metrics strong,.finance-metrics .finance-money,.finance-direction-card>.finance-money,.recharge-plan>strong) {font-size:var(--app-price-size);line-height:1.3;margin-block:5px;letter-spacing:0;}
.product-body .phone .service-grid {padding:10px 6px;margin:14px 0;gap:6px 4px;}
.product-body .phone .service-tile {min-height:72px;padding:6px 2px;gap:6px;font-size:var(--app-meta-size);line-height:1.5;overflow-wrap:anywhere;}
.product-body .phone .service-tile .service-icon {width:32px;height:32px;border-radius:10px;}
.product-body .phone .service-tile .service-icon .icon {width:20px;height:20px;}

/* Spacing only on named content cards; alert colours and button effects remain owned. */
.product-body .phone :is(
 .checkin-card,.official-address-card,.recovery-card,.recovery-choice,.creator-income,
 .creator-level,.creator-income-card,.creator-price-card,.creator-withdraw-card,.creator-qualification,
 .channel-invite,.channel-access,.finance-filters,.finance-direction-card,.studio-context,
 .studio-reference,.studio-manual,.studio-api-panel,.studio-manual-panel,.studio-history,
 .studio-idea-shell,.generation-task-detail,.generation-snapshot,.generation-state-list,.generation-task-facts
) {padding:var(--app-card-pad);margin-block:var(--app-gap);}
.product-body .phone :is(.account-record-card,.benefit-task,.account-setting-row,.wallet-ledger-row,.creator-ledger-row,.creator-withdraw-row,.privilege-row,.creator-work-card,.studio-task-card) {padding:12px;margin-block:8px;gap:10px;}
.product-body .phone :is(.balance-source,.creator-stats>article,.creator-stats>div,.creator-balance-grid>article,.channel-metrics>article,.channel-metrics>div,.finance-metrics>article) {padding:10px;}
.product-body .phone :is(.account-section-heading,.account-setting-group,.vip-privileges,.studio-section,.creator-actions,.channel-actions,.generation-actions) {margin-block:var(--app-section-gap) 10px;}
.product-body .phone .account-section-heading {gap:8px;flex-wrap:wrap;}
.product-body .phone .account-section-heading h2 {margin:0;}
.product-body .phone .account-setting-row {min-height:56px;}
.product-body .phone :is(.balance-sources,.recharge-grid,.vip-plans,.creator-stats,.creator-balance-grid,.channel-metrics,.finance-metrics,.studio-entry-grid,.generation-grid) {gap:8px;margin-block:12px 16px;}
.product-body .phone .recharge-plan {min-height:92px;padding:12px;gap:6px;}
.product-body .phone .recharge-plan>small {font-size:var(--app-meta-size);}
.product-body .phone .vip-plan {min-height:124px;padding:12px 7px;gap:7px;}
.product-body .phone .vip-plans {grid-template-columns:repeat(auto-fit,minmax(min(100%,104px),1fr));}
.product-body .phone .vip-plan>strong {font-size:20px;line-height:1.3;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;max-width:100%;min-width:0;}
.product-body .phone .vip-plan>span {font-size:var(--app-body-size);line-height:1.5;}
.product-body .phone .checkin-grid {grid-auto-columns:minmax(64px,1fr);gap:6px;margin-bottom:8px;}
.product-body .phone .checkin-day {min-height:96px;padding:8px 5px;gap:5px;}
.product-body .phone .benefit-task>button {font-size:12px!important;max-width:96px;min-width:64px;padding:8px;}
.product-body .phone .task-number {font-size:18px;flex-basis:22px;}
.product-body .phone .activity-card {min-height:0;margin-block:12px;}
.product-body .phone .activity-card>div {padding:var(--app-card-pad);max-width:100%;}
.product-body .phone .activity-card>button {margin:0 var(--app-card-pad) var(--app-card-pad);}

/* Messages/history/catalogue and empty states. */
.product-body .phone .message-card {margin-block:10px;}
.product-body .phone .message-main {padding:var(--app-card-pad);}
.product-body .phone .message-main small:last-child {margin-top:6px;}
.product-body .phone :is(.message-tabs,.account-record-tabs,.account-record-zones,.creator-tabs,.channel-tabs,.finance-tabs,.generation-tabs,.catalog-categories) {gap:6px;margin-block:10px;padding-block:4px 6px;}
.product-body .phone :is(.message-tabs,.account-record-tabs,.account-record-zones,.creator-tabs,.channel-tabs,.finance-tabs,.generation-tabs,.catalog-categories)>button {font-size:var(--app-body-size);line-height:1.5;min-height:var(--app-control-height);}
.product-body .phone .message-tabs>button {min-width:0;white-space:normal;word-break:normal;}
@media(max-width:420px) {
 html:not(:lang(zh)) .product-body .phone .message-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
 html:not(:lang(zh)) .product-body .phone .message-tabs>button {padding:8px 6px;flex-wrap:wrap;}
}
.product-body .phone :is(.empty-state,.account-empty,.creator-empty,.channel-empty,.generation-empty,.studio-empty) {padding:22px var(--app-card-pad);margin-block:var(--app-gap);}
.product-body .phone :is(.empty-state,.account-empty,.creator-empty,.channel-empty,.generation-empty,.studio-empty)>p {font-size:var(--app-body-size);line-height:var(--app-body-leading);margin:6px auto 12px;}
.product-body .phone :is(.account-empty,.creator-empty,.channel-empty)>img {width:96px;margin-bottom:10px;}
.product-body .phone .empty-state .empty-icon {width:48px;height:48px;margin-bottom:12px;border-radius:15px;}
.product-body .phone .catalog-grid {gap:16px 12px;}
.product-body .phone .account-record-grid {gap:14px 10px;}
.product-body .phone .banner-copy {padding:14px;gap:6px;}
.product-body .phone .banner-copy strong {font-size:var(--app-module-title);line-height:1.4;}

/* Creation title/card density; preserve the fixed launch tray and particle layers. */
.product-body .phone .studio-page .studio-entry[data-kind] {min-height:0;padding:var(--app-card-pad);border-radius:18px;}
.product-body .phone .studio-entry :is(h2,strong),.product-body .phone .studio-entry[data-kind=free] h2 {font-size:var(--app-module-title);line-height:1.45;letter-spacing:0;margin:7px 0;}
.product-body .phone .studio-entry p {margin:0 0 10px!important;}
.product-body .phone .studio-entry[data-kind=free]>.studio-launch-label {font-size:16px;line-height:1.5;letter-spacing:0;min-height:44px;margin-top:12px;padding:9px 22px;}
.product-body .phone .studio-entry-link {font-size:var(--app-meta-size);margin-top:10px;padding-top:0;}
.product-body .phone .studio-page :is(.studio-idea-shell,.studio-history) {padding:var(--app-card-pad);}
.product-body .phone .studio-page .studio-idea-heading {margin-bottom:10px;}
.product-body .phone .studio-page .studio-director {padding:var(--app-card-pad);margin-block:12px;}
.product-body .phone .studio-page .studio-advanced {margin-block:12px;padding-inline:var(--app-card-pad);}
.product-body .phone .studio-advanced>summary {min-height:44px;padding-block:10px;font-size:var(--app-body-size);line-height:1.5;}
.product-body .phone .studio-capabilities>button {min-height:44px;font-size:var(--app-meta-size);line-height:1.5;}
.product-body .phone :is(.generation-field,.studio-field) {gap:6px;margin-block:14px;font-size:var(--app-body-size);line-height:1.5;}
.product-body .phone :is(.generation-field>label,.studio-field>label,.generation-quality,.studio-director>label,.creator-form label,.account-form label) {font-size:var(--app-body-size);line-height:1.5;}
.product-body .phone .generation-quote:not(.studio-form-view .generation-quote) {padding:var(--app-card-pad);margin-block:14px 10px;}
.product-body .phone .generation-quote strong {font-size:var(--app-price-size);line-height:1.35;}
.product-body .phone .studio-form-view .generation-quote strong {font-size:18px;line-height:1.4;}
.product-body .phone .studio-form-view .generation-quote :is(small,#creationLaunchHint) {font-size:12px;line-height:1.5;}
.product-body .phone .studio-form-view .generation-quote #confirmCreate {font-size:16px;letter-spacing:0;min-height:48px;}

/* Detail title and copy only. Cover/poster geometry and fixed footer are untouched. */
.product-body .phone .drama-detail-immersive .drama-reference-copy>h1 {font-size:var(--app-page-title);line-height:1.4;letter-spacing:0;margin-block:6px 8px;}
.product-body .phone .drama-detail-immersive :is(.drama-summary-preview,.drama-reference-summary>p) {font-size:var(--app-body-size);line-height:1.7;}
.product-body .phone .drama-detail-immersive :is(.drama-reference-copy>small,.drama-reference-metadata,.drama-comment-by,.drama-comment-time) {font-size:var(--app-meta-size);line-height:1.55;}
.product-body .phone .drama-comment-body {font-size:var(--app-body-size);line-height:1.6;}
.product-body .phone .drama-detail.drama-detail-immersive>.drama-detail-selection {margin-block:14px 18px;}
.product-body .phone .drama-detail.drama-detail-immersive>.drama-comments {padding:12px;margin-block:16px;}

/* Minimum usable targets and iOS input text. Exclude range/checkbox/file/hidden inputs. */
.product-body .phone :is(.account-page,.benefit-page,.creator-page,.studio-page,.generation-page,.channel-page,.finance-page,.account-sheet,.sheet-body) :is(.primary-button,.quiet-button,.danger-button,.studio-secondary) {min-height:var(--app-control-height);font-size:var(--app-body-size);line-height:1.5;padding:10px 14px;}
.product-body .phone .energy-button:not(.studio-entry) {min-height:48px;font-size:14px;line-height:1.5;padding:10px 16px;gap:8px;}
.product-body .phone :is(.route-panel,.sheet-body,.catalog-search) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]),select,textarea) {font-size:16px!important;line-height:1.5;}
.product-body .phone :is(.route-panel,.sheet-body) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]),select) {min-height:44px;}
.product-body .phone .bottom-sheet>header h2 {font-size:var(--app-page-title);line-height:1.4;margin-block:4px 12px;}
.product-body .phone :is(.sheet-body>p,.account-sheet>p) {font-size:var(--app-body-size)!important;line-height:var(--app-body-leading)!important;}
@media(max-width:350px) {
 .product-body .phone .vip-plan>strong {font-size:18px;}
 .product-body .phone .profile-hero {display:grid;grid-template-columns:44px minmax(0,1fr) 40px;column-gap:8px;}
 .product-body .phone .profile-hero>.account-avatar {width:44px;height:44px;}
 .product-body .phone .studio-form-view .generation-quote strong {font-size:17px;}
}

/* Customer order workspace only: operator navigation has additional siblings. */
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) .workspace-heading h1 {font-size:var(--app-page-title);line-height:1.4;margin-bottom:8px;letter-spacing:0;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-heading,.workspace-topbar) {margin-bottom:var(--app-section-gap);gap:12px;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-hero,.workspace-card,.workspace-section,.workspace-empty,.workspace-metric) {padding:var(--app-card-pad);border-radius:14px;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-hero h2,.workspace-section h2,.workspace-empty h2,.workspace-modal h2) {font-size:var(--app-module-title);line-height:1.45;margin-block:0 10px;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-card h2,.workspace-card h3,.workspace-section h3) {font-size:var(--app-item-title);line-height:1.5;margin-block:6px 8px;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-heading p,.workspace-hero p,.workspace-card p,.workspace-section>p,.workspace-empty p,.workspace-dynamic) {font-size:var(--app-body-size);line-height:var(--app-body-leading);}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-kv,.workspace-timeline li,.workspace-card-footer,.workspace-card-id,.workspace-status,.workspace-field,.workspace-field small,.workspace-timeline small,.workspace-notice) {font-size:var(--app-meta-size);line-height:1.6;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-grid,.workspace-stack,.workspace-detail-layout,.workspace-form) {gap:var(--app-gap);}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-actions,.workspace-card-footer,.workspace-modal-footer) {margin-top:14px;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) .workspace-quote-amount {font-size:var(--app-balance-size);line-height:1.3;margin-block:10px;letter-spacing:0;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(.workspace-primary,.workspace-secondary,.workspace-danger) {min-height:44px;padding:10px 14px;font-size:var(--app-body-size);line-height:1.5;}
.workspace-body:has(.workspace-nav>[data-workspace-section="orders"]:only-child) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=file]):not([type=button]):not([type=submit]),select,textarea) {font-size:16px;line-height:1.5;min-height:44px;}
