/* One type scale across casting, upload, review and management. */
:root {
  --font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
  --type-primary: #1d1d1d;
  --type-secondary: #6e6e6e;
  --type-caption: #767676;
}

body {
  font-family: var(--font);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  color: var(--type-primary);
}
button, input, select, textarea { font-family: var(--font); letter-spacing: inherit; }
h1, h2, h3, p { overflow-wrap: break-word; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
button, a, label { -webkit-text-size-adjust: 100%; }

/* A strong headline, a readable supporting sentence, quiet context. */
.intro { padding: 48px 0 36px; }
.intro h1, .quick-heading h1, .admin-surface .intro h1 {
  font-size: clamp(40px, 4vw, 56px);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -.025em;
  margin: 0;
}
.intro h1 span, .quick-heading h1 span { color: var(--type-secondary); }
.eyebrow, .yy-dialog-head .eyebrow, .picker-eyebrow,
.media-cover-generator .eyebrow, #detail-dialog .detail-info .eyebrow {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: .075em;
  color: var(--type-caption);
  margin: 0 0 12px;
}
.intro-right p { font-size: 17px; line-height: 1.6; color: var(--type-secondary); }
.intro-right .edition { display: none; }
.intro-right { max-width: 30ch; }
.catalog-note { font-size: 12px; letter-spacing: 0; color: var(--type-caption); }
.brand strong { font-size: 23px; font-weight: 600; letter-spacing: .02em; }
.brand-latin { font-size: 12px; letter-spacing: .08em; }
.brand small, .logo small { font-size: 10px; line-height: 1.5; letter-spacing: .07em; color: var(--type-caption); }
.header-caption { font-size: 11px; letter-spacing: .09em; color: var(--type-caption); }
.language-bar > span { font-size: 10px; letter-spacing: .06em; color: var(--type-caption); }
.language-bar button { font-size: 12px; color: var(--type-secondary); }
.shortlist-button { font-size: 14px; font-weight: 500; }
.category { font-size: 15px; line-height: 1.4; font-weight: 400; }
.category.active { font-weight: 600; }
.category span { font-size: 12px; }
.filter-trigger { font-size: 14px; line-height: 1.4; min-height: 28px; }
.reset-button, .scene-filters summary { font-size: 13px; }
.results-bar { font-size: 13px; line-height: 1.5; }
.demo-pill, .crop-note { font-size: 11px; color: var(--type-caption); }
.filter-chip, #scene-options button, .profile-tags span { font-size: 12px; }
.card-name { margin: 16px 1px 6px; align-items: baseline; gap: 8px; }
.card-name button { font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -.015em; }
.model-height { font-size: 16px; line-height: 1.4; font-weight: 400; }
.model-height small { font-size: 12px; color: var(--type-secondary); }
.card-meta, .card-region { font-size: 13px; line-height: 1.6; color: var(--type-secondary); }
.catalog-end p { font-size: 13px; letter-spacing: 0; }
.demo-notice, footer { font-size: 12px; line-height: 1.6; color: var(--type-secondary); }
.load-more, #more, #more-rankings { font-size: 14px; font-weight: 500; }
#selection-bar-count, #bar-open, #bar-share { font-size: 14px; line-height: 1.4; }
#toast { font-size: 14px; line-height: 1.5; }

/* Management keeps a smaller headline and comfortable, scannable rows. */
.admin-surface main { padding-top: 44px; }
.admin-surface .intro { padding: 0; margin-bottom: 36px; gap: 32px; align-items: flex-start; }
.admin-surface .intro h1 { font-size: 44px; margin-bottom: 16px; }
.admin-surface .intro .muted, .quick-heading .muted {
  font-size: 16px; line-height: 1.65; max-width: 50ch; color: var(--type-secondary); margin: 0;
}
.admin-surface .logo > span { font-size: 18px; font-weight: 600; letter-spacing: 0; }
.admin-surface nav a, .admin-surface nav button { font-size: 13px; }
.intro-tools { gap: 14px 20px; }
.intro-tools .quick-import-link, .intro-tools .review-inbox, .intro-tools #import-cards {
  font-size: 13px; line-height: 1.5;
}
.intro-tools .stats { padding-top: 18px; margin-top: 4px; }
.stats strong { font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -.025em; }
.stats span { font-size: 12px; line-height: 1.5; margin-top: 5px; color: var(--type-secondary); }
.workspace-tabs button { font-size: 14px; font-weight: 500; }
.toolbar input, .toolbar select, .review-filters input, .review-filters select { font-size: 14px; line-height: 1.5; }
.toolbar > span, .management-help, .management-help .notice { font-size: 12px; line-height: 1.65; }
.row { padding: 20px; gap: 20px; }
.row-main h2 { font-size: 18px; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; margin: 0 0 6px; }
.row-main p { font-size: 13px; line-height: 1.65; color: var(--type-secondary); }
.row-main small { font-size: 11px; font-weight: 400; color: var(--type-caption); }
.row-actions button { font-size: 13px; line-height: 1.4; padding: 10px 14px; }
.state, .featured-badge, .row-tags span { font-size: 11px; color: var(--type-secondary); }
.metric-cards strong { font-size: 36px; font-weight: 600; letter-spacing: -.025em; }
.metric-cards span, .ranking-card p { font-size: 13px; line-height: 1.6; }
.ranking-card h2 { font-size: 22px; font-weight: 600; line-height: 1.3; }
.ranking-card li { font-size: 14px; line-height: 1.5; }

/* Upload and review share the same reading rhythm as the profile editor. */
.quick-heading { margin-bottom: 36px; gap: 36px; }
.quick-heading h1 { font-size: 48px; line-height: 1.2; margin: 0 0 20px; }
.quick-steps { font-size: 12px; line-height: 1.5; gap: 24px; }
.drop-zone strong { font-size: 21px; font-weight: 600; line-height: 1.35; letter-spacing: -.015em; }
.drop-zone > span:not(.drop-mark) { font-size: 14px; line-height: 1.6; }
.drop-zone small { font-size: 12px; line-height: 1.6; }
.materials-heading h2, .profile-heading h2, .review-heading h2 { font-size: 24px; line-height: 1.3; font-weight: 600; letter-spacing: -.015em; }
.materials-heading h2 span { font-size: 13px; font-weight: 400; }
.materials-heading button, .material-tools button { font-size: 13px; }
.quick-hint, .profile-heading > p:last-child, #progress, .form-note, .local-note,
.quick-bottom p, .review-note, .review-empty, .collab-role {
  font-size: 13px; line-height: 1.65; color: var(--type-secondary);
}
.quick-fields label, .fields label, .tag-field, .quick-check, .visible-toggle { font-size: 14px; line-height: 1.5; color: var(--type-secondary); }
.quick-fields input, .quick-fields select, .fields input, .fields select, .tag-field input {
  font-size: 16px; line-height: 1.4; font-weight: 400; color: var(--type-primary);
}
.material-controls p, .material-controls select { font-size: 12px; line-height: 1.5; }
.material-label { font-size: 11px; font-weight: 500; }
.quick-bottom strong { font-size: 16px; line-height: 1.4; font-weight: 600; }
.quick-buttons button, .extra-fields summary, .match-heading button { font-size: 14px; line-height: 1.5; }
.match-heading h3 { font-size: 18px; line-height: 1.4; font-weight: 600; }
.match-card strong { font-size: 15px; line-height: 1.5; font-weight: 600; }
.match-card p, .match-kind, .review-model p, .pair-head span, .review-facts, .pair-bottom label { font-size: 13px; line-height: 1.6; }
.review-model h3, .submission-card h2 { font-size: 20px; line-height: 1.35; font-weight: 600; letter-spacing: -.01em; }
.submission-card p, .submission-card button, .pair-bottom button, .review-duplicate, #review-error { font-size: 14px; line-height: 1.5; }

/* Compact dialogs retain their existing height limits; larger text scrolls inside. */
.yy-dialog-head h2, .edit-head.yy-dialog-head h2, .shortlist-head.yy-dialog-head h2,
.picker-head h2, #admin-login .admin-login-head h2 {
  font-size: 26px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em;
}
.yy-dialog-head, .shortlist-head.yy-dialog-head, .edit-head.yy-dialog-head { padding: 24px; }
.yy-dialog-head .eyebrow, .picker-eyebrow { margin-bottom: 8px; }
.yy-dialog-actions button, .media-image-tools button, .media-cover-generator button,
.media-delete-confirm, .media-delete-confirm button { font-size: 14px; line-height: 1.4; }
.yy-dialog-actions button { min-height: 42px; }
.picker-option { font-size: 14px; line-height: 1.4; min-height: 44px; }
.picker-group h3 { font-size: 13px; line-height: 1.45; font-weight: 600; }
.picker-group h3 small { font-size: 11px; color: var(--type-secondary); }
.picker-apply, .picker-reset { font-size: 14px; }
.media-cover-generator h3 { font-size: 19px; font-weight: 600; line-height: 1.3; margin: 8px 0; }
.media-cover-generator p, .media-cover-confirm span, .media-upload-note, .media-status,
.media-image-tools span { font-size: 13px; line-height: 1.6; color: var(--type-secondary); }
.admin-detail-facts { gap: 20px 16px; margin-bottom: 24px; }
.admin-detail-facts dt, #detail-dialog .measurements dt { font-size: 13px; line-height: 1.5; color: var(--type-secondary); }
.admin-detail-facts dd, #detail-dialog .measurements dd { font-size: 23px; line-height: 1.3; font-weight: 500; letter-spacing: -.015em; }
.admin-detail-facts small, .measurements small { font-size: 12px; color: var(--type-secondary); }
.media-sections button, .media-tabs button { font-size: 14px; font-weight: 500; line-height: 1.4; }
.media-sections small { font-size: 12px; }
#detail-dialog .detail-info h2 { font-size: 30px; line-height: 1.2; font-weight: 600; letter-spacing: -.02em; }
#detail-dialog .detail-subtitle, #detail-dialog .profile-facts div { font-size: 14px; line-height: 1.6; }
#shortlist-dialog.yy-dialog .local-note, .shortlist-info p { font-size: 13px; line-height: 1.6; }
.shortlist-info button { font-size: 17px; line-height: 1.35; font-weight: 600; }
.shortlist-remove, .booking-choices label, .booking-section legend { font-size: 14px; line-height: 1.5; }
.booking-section legend { font-weight: 600; }
.shooting-summary h2 { font-size: 28px; line-height: 1.25; font-weight: 600; letter-spacing: -.02em; }
.brief-facts dt { font-size: 13px; line-height: 1.5; }
.brief-facts dd { font-size: 16px; line-height: 1.6; }
html[lang=en] .intro h1, html[lang=en] .quick-heading h1 { letter-spacing: -.035em; }
html[lang=en] .filter-trigger { font-size: 13px; }
html[lang=en] .category { font-size: 14px; }
html[lang=en] .yy-dialog-head h2 { font-size: 26px; }
html[lang=en] .quick-buttons button, html[lang=en] .row-actions button { font-size: 13px; }

@media (max-width: 1100px) {
  .admin-surface .intro { flex-wrap: wrap; }
  .admin-surface .intro h1 { font-size: 40px; }
  .quick-heading { align-items: flex-start; }
  .quick-steps { flex-wrap: wrap; gap: 12px 18px; }
}

@media (max-width: 700px) {
  body { font-size: 15px; line-height: 1.6; }
  .intro { padding: 32px 0 28px; }
  .intro h1, .admin-surface .intro h1, .quick-heading h1, html[lang=en] .quick-heading h1 {
    font-size: 34px; line-height: 1.18; letter-spacing: -.025em;
  }
  .eyebrow { font-size: 10px; letter-spacing: .065em; margin-bottom: 12px; }
  .brand strong { font-size: 20px; }
  .brand small, .logo small { font-size: 9px; letter-spacing: .025em; }
  .brand-latin { font-size: 10px; margin-left: 8px; }
  .language-bar > span { font-size: 9px; letter-spacing: .035em; }
  .language-bar button { font-size: 11px; }
  .shortlist-button { font-size: 12px; }
  .category { font-size: 14px; }
  .category span { font-size: 11px; }
  .filter-trigger, html[lang=en] .filter-trigger { font-size: 13px; }
  .category-tabs { gap: 22px; }
  html[lang=en] .category, html[lang=en] .category-tabs .kids-link { font-size: 13px; }
  .results-bar { font-size: 12px; }
  .crop-note { display: none; }
  .card-name { margin-top: 12px; gap: 5px; }
  .card-name button { font-size: 17px; }
  .model-height { font-size: 14px; }
  .model-height small, .card-meta, .card-region { font-size: 12px; }
  #selection-bar-count, #bar-open, #bar-share { font-size: 12px; }
  #selection-bar { gap: 14px; }
  .admin-surface main { padding-top: 32px; }
  .admin-surface .intro { margin-bottom: 28px; gap: 24px; }
  .admin-surface .intro .muted, .quick-heading .muted { font-size: 15px; line-height: 1.65; }
  .admin-surface nav a, .admin-surface nav button { font-size: 12px; }
  .admin-surface .logo > span { font-size: 15px; }
  .admin-surface .logo small { font-size: 8px; }
  .intro-tools .quick-import-link, .intro-tools .review-inbox, .intro-tools #import-cards,
  html[lang=en] .intro-tools .quick-import-link { font-size: 12px; }
  .stats strong { font-size: 26px; }
  .row { padding: 16px; gap: 14px; }
  .row-main h2 { font-size: 17px; }
  .row-main p { font-size: 12px; }
  .row-actions button { font-size: 12px; padding: 9px 11px; }
  .toolbar input, .toolbar select, .review-filters input, .review-filters select { font-size: 16px; }
  .quick-heading { margin-bottom: 28px; gap: 20px; }
  .quick-heading h1 { margin-bottom: 16px; }
  .quick-steps, html[lang=en] .quick-steps { font-size: 11px; gap: 12px 16px; }
  .drop-zone strong { font-size: 19px; }
  .drop-zone > span:not(.drop-mark), html[lang=en] .drop-zone > span:not(.drop-mark) { font-size: 13px; line-height: 1.55; }
  .drop-zone small { font-size: 11px; }
  .materials-heading h2, .profile-heading h2 { font-size: 22px; }
  .quick-fields label, .fields label, #editor .fields label { font-size: 13px; }
  .quick-buttons button, html[lang=en] .quick-buttons button { font-size: 13px; min-height: 44px; }
  .quick-bottom strong { font-size: 15px; }
  .quick-bottom p { font-size: 12px; }
  .material-controls p { font-size: 11px; }
  .material-tools button { font-size: 12px; }
  .yy-dialog-head h2, .edit-head.yy-dialog-head h2, .shortlist-head.yy-dialog-head h2,
  .picker-head h2, html[lang=en] .yy-dialog-head h2 { font-size: 23px; line-height: 1.25; }
  .yy-dialog-head, .shortlist-head.yy-dialog-head, .edit-head.yy-dialog-head { padding: 20px; }
  .yy-dialog-head .eyebrow, .picker-eyebrow { font-size: 10px; }
  .yy-dialog-actions button, html[lang=en] .yy-dialog-actions button { font-size: 13px; }
  .picker-option { font-size: 13px; }
  .picker-group h3 { font-size: 12px; }
  .picker-group h3 small { font-size: 10px; }
  .media-cover-generator h3 { font-size: 18px; }
  .media-cover-generator p, .media-upload-note, .media-status { font-size: 12px; }
  .media-cover-generator button, .media-image-tools button { font-size: 12px; }
  .media-cover-confirm { flex-wrap: wrap; }
  .media-cover-confirm span { flex-basis: 100%; font-size: 12px; }
  .admin-detail-facts dd, #detail-dialog .measurements dd { font-size: 22px; }
  .admin-detail-facts dt, #detail-dialog .measurements dt { font-size: 12px; }
  .shooting-summary h2 { font-size: 26px; }
  .brief-facts dd { font-size: 15px; }
}

/* Give mobile profile actions their own row; do not squeeze them beside the name. */
@media(max-width:700px){
 .admin-surface #list>.row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:start;gap:12px 14px}
 .admin-surface #list>.row>.thumb-open{grid-column:1;grid-row:1}
 .admin-surface #list>.row>.row-main{grid-column:2;grid-row:1 / span 2}
 .admin-surface #list>.row>.state{grid-column:1;grid-row:2;justify-self:start}
 .admin-surface #list>.row>.row-actions{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:none;margin:0}
 .admin-surface #list>.row>.row-actions button{min-width:0;min-height:42px;white-space:normal}
 .admin-surface #list>.row .row-main h2{font-size:17px}
}
