/* Shared reading scale: load after each page's layout and palette. */
:root { font-size: 16px; }
body { line-height: 1.6; }
button, input, select { line-height: 1.5; }

/* Introduction, space selection and login. */
.p-navlinks, .p-navlinks > [data-account] { font-size: 14px; }
.p-btn, .portal button.p-btn { font-size: 15px; }
.p-btn.small { font-size: 13px; }
.p-lead { font-size: 16px; line-height: 1.95; }
.p-note, .p-eyebrow, .p-console-head, .p-console-sub,
.p-console-foot span, .p-console-status, .p-card-number,
.p-tag, .p-step small, .p-footer, .p-role-note { font-size: 12px; }
.p-console-title { font-size: 23px; }
.p-console-foot strong { font-size: 25px; }
.p-strip b { font-size: 15px; }
.p-strip span, .p-section-head p, .p-card > p, .p-features,
.p-card-end p, .p-step p, .p-account-bar, .p-account-bar a,
.p-account p, .p-account label, .p-account summary, .p-message { font-size: 14px; }
.p-web-head p { font-size: 15px; }
.p-step h3 { font-size: 18px; }
.p-card h3 { font-size: 27px; }
.portal .p-account input { font-size: 16px; }
.p-features li, .p-card-number { overflow-wrap: anywhere; }
.p-card-top { flex-wrap: wrap; gap: 10px; }
.p-console-head, .p-console-status { flex-wrap: wrap; gap: 8px; }
.p-strip b { flex-shrink: 0; }

/* Workbench navigation and main controls. */
.top-center, .text-button, .nav-item, .sidebar-create, .sidebar-join,
.page-heading p, .button, .heading-actions .button, .mobile-connect button,
.section-title, .small-button, .empty-members .small-button { font-size: 14px; }
.connection-badge, .nav-caption, .nav-caption span, .nav-count,
.session-item small, .sidebar-bottom p, .sidebar-bottom > span,
.eyebrow, .beta, .outline-tag, .label, .number-badge, .subtle { font-size: 12px; }
.session-item b, .sidebar-bottom b, .empty-members b { font-size: 14px; }
.empty-members p, .member-info small, .member-info em { font-size: 12px; }
.member-info b { font-size: 14px; }
.monitor-top h2 { font-size: 23px; }
.monitor-top p, .format-badge { font-size: 12px; }
.format-badge span { font-size: 11px; letter-spacing: 1px; }
.wave-label, .wave-axis, .meter-label > span, .meter-label b small,
.meter-row > span, .meter-row > b, .meter-ticks { font-size: 10px; }
.meter-label b { font-size: 14px; }
.meter-row > span { width: 10px; }
.meter-row > b { min-width: 34px; }
.signal-specs span { font-size: 12px; }
.monitor-readout .signal-specs b { font-size: 20px; }
.signal-specs small { font-size: 11px; }

/* Inline audio, talkback, screen sharing and recording settings. */
.control-content label, dialog label, .volume-heading,
.volume-heading output, .mint, .control-content label.check-option { font-size: 13px; }
select, dialog input { font-size: 14px; min-height: 42px; }
.inline-button, .file-group input, .file-group small,
.raw-notice small, .source-footer .raw-notice small,
.control-note, .source-footer .control-note,
.setting-caption, .source-summary .setting-caption, .playback-status,
.record-feedback .playback-status, .talk-routing, .record-details,
.network-stats span, .listening-controls .network-stats span { font-size: 12px; }
.raw-notice, .source-footer .raw-notice, .network-stats b,
.talk-meter-row, .record-download { font-size: 13px; }
.talk-input .talk-intro, .talk-intro { font-size: 14px; line-height: 1.85; }
.screen-stage #screenPlaceholder b { font-size: 15px; }
.screen-stage #screenPlaceholder p, .screen-controls span { font-size: 12px; }
.screen-controls b { font-size: 14px; }
.screen-controls .button, .screen-actions > #screenButton { font-size: 14px; white-space: normal; }
.screen-actions .check-option { font-size: 13px; }
.source-footer { flex-wrap: wrap; gap: 12px; }
.source-footer .raw-notice { flex-shrink: 1; }
.source-footer .raw-notice small { display: block; margin: 4px 0 0; }
.source-footer .control-note { text-align: left; }
.source-summary { flex-wrap: wrap; row-gap: 8px; }
.source-summary .section-title { flex-shrink: 0; }
.source-summary .setting-caption { margin-left: auto; }
.settings-chevron { margin-left: 0; }
.control-content label { gap: 8px; line-height: 1.6; }
.inline-button { flex-shrink: 0; }

/* Messages, guidance, dialogs and the persistent transport strip. */
.chat-message, .chat-form input { font-size: 14px; }
.chat-placeholder, .chat-message.system, .chat-message time { font-size: 12px; }
.tip-number, .tip-card p, .tip-card button, .page-footer,
.page-footer > span:last-child, .transport-state small,
.transport-center, .transport-bar > .text-button { font-size: 12px; }
.tip-card h3, .transport-state b { font-size: 14px; }
.tip-card { flex-wrap: wrap; }
.tip-card p { min-width: 180px; }
.transport-bar { min-height: 80px; height: auto; padding-top: 12px; padding-bottom: 12px; }
body:has(.transport-bar) { padding-bottom: 90px; }
.dialog-overline { font-size: 11px; }
dialog h2 { font-size: 25px; }
dialog p, .help-steps p { font-size: 14px; }
.room-entry-modes button, .help-steps li, .help-steps b { font-size: 14px; }
dialog .room-lifecycle, .dialog-access, .access-banner, .help-note { font-size: 13px; }
.toast { font-size: 14px; }

/* HD voice room, including the in-room controls and settings modal. */
.studio-eyebrow, .rtop .studio-eyebrow, .studio-brand small { font-size: 11px; }
.studio-motto, .back-workbench, .studio-intro, .room-heading p { font-size: 14px; }
.entry h2, .modal h3 { font-size: 18px; }
.entry .sub, .entry label, .modal label { font-size: 14px; }
.entry .tip, .modal .hint, .tag, .rtop .meta .tag { font-size: 12px; }
.seg button { font-size: 13px; line-height: 1.6; }
.field { font-size: 16px; }
.btn, .entry .go { font-size: 15px; }
.rtop .btn-danger { font-size: 13px !important; }
.room-chip { font-size: 13px; flex-wrap: wrap; }
.room-chip b { font-size: 16px; }
.room-chip button { font-size: 12px; }
.seat .nm, .side .tabs button, .member-row .info .n { font-size: 14px; }
.seat .nm .you, .seat.empty .lbl, .member-row .info .d { font-size: 12px; }
.screen-area .bar, .msg, .chat-input button { font-size: 14px; }
.msg.sys, .msg .time { font-size: 12px; }
.ctrl, .rctrl .ctrl { font-size: 12px; }
.master-vol span { font-size: 13px !important; }
.entry .seg button { min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 850px) {
  .p-nav { height: auto; min-height: 77px; flex-wrap: wrap; padding: 15px 0; }
  .p-navlinks { flex-wrap: wrap; gap: 12px; }
  .p-logo { font-size: 19px; }
  .p-console-head { letter-spacing: 0; }
  .p-console-foot strong { font-size: 23px; }
  .p-card h3 { font-size: 25px; }
}
@media (max-width: 760px) {
  .studio-topbar { height: auto; min-height: 70px; flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; gap: 12px; }
  .studio-brand small { margin-left: 8px; }
  .back-workbench { font-size: 12px; }
  .entry .seg { flex-wrap: wrap; }
  #hifiSeg button { flex-basis: 100%; }
  .room-heading h1 { font-size: 27px; }
}
@media (max-width: 600px) {
  .topbar { height: auto; min-height: 76px; flex-wrap: wrap; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
  .top-actions { flex-basis: 100%; justify-content: flex-end; flex-wrap: wrap; gap: 20px; }
  .top-actions .text-button { white-space: nowrap; }
  .top-actions .text-button { font-size: 12px; }
  .page-heading p { font-size: 13px; }
  .monitor-top { flex-wrap: wrap; gap: 16px; }
  .monitor-top p { max-width: none; }
  .monitor-readout .signal-specs b { font-size: 18px; }
  .signal-specs small { font-size: 10px; }
  .signal-specs > div { padding-left: 8px; padding-right: 8px; }
  .signal-specs b { white-space: normal; }
  .transport-state b { font-size: 13px; }
  .transport-state small { font-size: 12px; }
  .transport-bar > .text-button { font-size: 12px; flex-shrink: 0; }
  .transport-state { min-width: 0; }
  .transport-state > div { min-width: 0; }
  select, dialog input, .chat-form input { font-size: 16px; }
  .p-nav .p-btn { font-size: 13px; }
  .p-btn { gap: 14px; }
  .p-account h1 { font-size: 27px; }
  .portal main.p-account { padding: 25px; }
  .hero { grid-template-columns: minmax(0, 1fr); }
  .hero > * { min-width: 0; }
}
