/* Shared type scale. Keep the portal layout and business behavior unchanged. */
body.crm-ui {
  --crm-text-body: 15px;
  --crm-text-data: 14px;
  --crm-text-meta: 12px;
  --crm-text-heading: 16px;
  --bs-body-font-size: var(--crm-text-body);
  font-size: var(--crm-text-body);
  line-height: 1.6;
}
.crm-ui .small, .crm-ui small, .crm-ui .form-text, .crm-ui .page-kicker { font-size: 13px; }
.crm-ui .app-page h1, .crm-ui #fieldworkApp .fw-heading h1 { font-size: 24px; }
.crm-ui .form-label, .crm-ui .form-check-label { font-size: var(--crm-text-data); }
.crm-ui .form-control, .crm-ui .form-select, .crm-ui .form-control-lg, .crm-ui .form-select-lg,
.crm-ui .input-group-lg > .form-control { min-height: 42px; font-size: var(--crm-text-body); }
.crm-ui .btn, .crm-ui .btn-lg, .crm-ui .input-group-lg > .btn { min-height: 38px; font-size: var(--crm-text-data); }
.crm-ui .btn-sm, .crm-ui .table .btn-sm { min-height: 32px; font-size: 13px; }
.crm-ui .table { font-size: var(--crm-text-data); }
.crm-ui .table > thead > tr > th { font-size: 13px; }
.crm-ui .table > :not(caption) > * > * { padding: 12px; }
.crm-ui .table .small, .crm-ui .table small { font-size: 13px; }
.crm-ui .badge, .crm-ui .form-text, .crm-ui .page-link { font-size: var(--crm-text-meta); }
.crm-ui .alert { font-size: var(--crm-text-data); }
.crm-ui .card-header { font-size: var(--crm-text-heading); }
.crm-ui .nav-tabs .nav-link, .crm-ui #fieldworkApp .fw-tabs button { font-size: var(--crm-text-data); }
.crm-ui #fieldworkApp .fw-record h3 { font-size: var(--crm-text-heading); }
.crm-ui #fieldworkApp .fw-record .fw-meta { font-size: 13px; }
.crm-ui .auth-card .form-control { font-size: 16px; }
.crm-ui .auth-card .form-label, .crm-ui .auth-card .form-check-label { font-size: var(--crm-text-data); }
.crm-ui .auth-notice, .crm-ui .auth-card > .text-center > .text-danger { font-size: 13px; }
.crm-ui .terms-box { font-size: var(--crm-text-data); }

.reference-ui .portal-brand > span { font-size: 13px; }
.reference-ui .portal-tool > button, .reference-ui .portal-install { font-size: var(--crm-text-meta); line-height: 1.35; }
.reference-ui .portal-account > button { font-size: 13px; }
.reference-ui .portal-alert-badge { font-size: 11px; }
.reference-ui .portal-command-bar { min-height: 54px; }
.reference-ui .portal-metric { font-size: var(--crm-text-meta); }
.reference-ui .portal-metric > b { font-size: var(--crm-text-data); line-height: 1.5; }
.reference-ui .portal-header-search { height: 34px; }
.reference-ui .portal-header-search input { font-size: 13px; }
.reference-ui .portal-header-search button { height: 32px; }
.reference-ui .portal-toolbar-actions a, .reference-ui .portal-command-links a { font-size: var(--crm-text-meta); }
.reference-ui .portal-sidebar .crm-nav-trigger, .reference-ui .portal-sidebar .portal-side-home { min-height: 76px; }
.reference-ui .portal-sidebar .crm-nav-trigger span, .reference-ui .portal-sidebar .portal-side-home span { font-size: var(--crm-text-meta); line-height: 1.45; }
.reference-ui .crm-mega-heading h2 { font-size: 17px; }
.reference-ui .crm-mega-column h3, .reference-ui .crm-mega-column a { font-size: var(--crm-text-data); line-height: 1.6; }
.reference-ui .crm-workspace-bar { min-height: 46px; }
.reference-ui .crm-workspace-path { font-size: 17px; }
.reference-ui .portal-notice-ticker, .reference-ui .portal-pinned a,
.reference-ui .crm-workspace-tools, .reference-ui .crm-workspace-command { font-size: var(--crm-text-meta); }
.reference-ui .portal-popover h2, .reference-ui .portal-dialog h2 { font-size: 17px; }
.reference-ui .portal-link-list a, .reference-ui .portal-popover dl,
.reference-ui .portal-popover-footer, .reference-ui .portal-dialog fieldset label,
.reference-ui .portal-checkbox, .reference-ui .portal-event-fields > label:not(.portal-checkbox),
.reference-ui .portal-form-row label, .reference-ui .portal-settings-form label { font-size: var(--crm-text-data); }
.reference-ui .portal-popover > header a, .reference-ui .portal-link-list time,
.reference-ui .portal-popover-note, .reference-ui .portal-event-owner { font-size: var(--crm-text-meta); }
.reference-ui .portal-form-message { font-size: 13px; }

.reference-ui .portal-briefing h2, .reference-ui .portal-widget h2,
.reference-ui .portal-consult-section h2 { font-size: var(--crm-text-heading); line-height: 1.5; }
.reference-ui .portal-briefing h2 small { font-size: var(--crm-text-meta); }
.reference-ui .portal-slogan-copy, .reference-ui .portal-quote-copy,
.reference-ui #portalWeather, .reference-ui .portal-week-days { height: auto; min-height: 164px; }
.reference-ui .portal-slogan-copy p { font-size: 17px; }
.reference-ui .portal-quote-copy blockquote { font-size: var(--crm-text-body); }
.reference-ui .portal-slogan-copy a, .reference-ui .portal-quote-copy a { font-size: var(--crm-text-meta); line-height: 1.5; }
.reference-ui .portal-current-weather strong { font-size: 34px; }
.reference-ui .portal-current-weather small { font-size: 13px; }
.reference-ui .portal-weather-meta, .reference-ui .portal-weather-at,
.reference-ui .portal-weather-day time, .reference-ui .portal-weather-day small,
.reference-ui .portal-weather-day .portal-temp-range, .reference-ui .portal-weather-credit { font-size: var(--crm-text-meta); }
.reference-ui .portal-temp-range { flex-direction: column; line-height: 1.4; }
.reference-ui .portal-weather-credit { line-height: 1.6; }
.reference-ui .portal-widget > header, .reference-ui .portal-consult-section > header { min-height: 38px; }
.reference-ui .portal-feed-heading { min-height: 48px; }
.reference-ui .portal-feed-heading b { font-size: var(--crm-text-data); }
.reference-ui .portal-feed-heading span, .reference-ui .portal-feed time,
.reference-ui .portal-feed a small, .reference-ui .portal-widget-status { font-size: var(--crm-text-meta); }
.reference-ui .portal-feed a { min-height: 58px; font-size: var(--crm-text-data); line-height: 1.6; }
.reference-ui .portal-feed a > span:first-child { -webkit-line-clamp: 2; line-clamp: 2; }
.reference-ui .portal-state { font-size: var(--crm-text-data); }
.reference-ui .portal-tabs button { min-height: 48px; font-size: var(--crm-text-data); }
.reference-ui .portal-schedule-summary { font-size: var(--crm-text-meta); }
.reference-ui .portal-schedule-list { min-height: 320px; max-height: 320px; }
.reference-ui .portal-schedule-item b { font-size: 13px; }
.reference-ui .portal-schedule-item time { font-size: var(--crm-text-meta); }
.reference-ui .portal-schedule-item p { font-size: var(--crm-text-data); line-height: 1.7; }
.reference-ui .portal-calendar-controls { min-height: 48px; }
.reference-ui .portal-calendar-controls strong { font-size: var(--crm-text-heading); }
.reference-ui .portal-text-button { font-size: var(--crm-text-meta); }
.reference-ui .portal-calendar-filters button { min-height: 32px; font-size: var(--crm-text-meta); }
.reference-ui .portal-calendar-weekdays { font-size: var(--crm-text-meta); }
.reference-ui .portal-calendar-grid { grid-template-rows: repeat(6, 36px); }
.reference-ui .portal-calendar-grid button { font-size: var(--crm-text-data); }
.reference-ui .portal-day-number { width: 28px; height: 28px; }
.reference-ui .portal-day-heading { padding-block: 12px 6px; font-size: 13px; }
.reference-ui .portal-day-heading > span { font-size: var(--crm-text-meta); }
.reference-ui .portal-day-events { min-height: 96px; max-height: 144px; }
.reference-ui .portal-day-event { grid-template-columns: 66px minmax(0, 1fr); font-size: 13px; line-height: 1.65; }
.reference-ui .portal-day-event > small { font-size: var(--crm-text-meta); }
.reference-ui .portal-service-columns { min-height: 42px; font-size: 13px; }
.reference-ui .portal-service-feed a { min-height: 48px; font-size: var(--crm-text-data); }
.reference-ui .portal-feed-state { font-size: var(--crm-text-meta); padding-inline: 5px; }
.reference-ui .portal-work-primary b { font-size: var(--crm-text-heading); }
.reference-ui .portal-work-primary small { font-size: var(--crm-text-meta); }
.reference-ui .portal-work-links a { font-size: var(--crm-text-data); }
.reference-ui .portal-crm-records > summary { font-size: var(--crm-text-body); }
.reference-ui .portal-consult-section header a { font-size: var(--crm-text-meta); }
.reference-ui .portal-consult-table { font-size: var(--crm-text-data); }
.reference-ui .portal-consult-table th { height: 42px; font-size: 13px; }
.reference-ui .portal-consult-table th:first-child { width: 112px; }
.reference-ui .portal-consult-table th:nth-child(4) { width: 105px; }
.reference-ui .portal-consult-table th:nth-child(5) { width: 75px; }
.reference-ui .portal-consult-table .recent-consult-item { height: 84px; }
.reference-ui .portal-consult-date, .reference-ui .portal-consult-company span,
.reference-ui .portal-consult-owner, .reference-ui .portal-consult-type span { font-size: var(--crm-text-meta); }
.reference-ui .portal-consult-content .recent-consult-title { font-size: var(--crm-text-data); line-height: 23px; max-height: 46px; }
.reference-ui .recent-panel-header .fw-bold, .reference-ui .recent-box-title h3,
.reference-ui .dashboard-main-grid .quick-create-card > .card-header { font-size: var(--crm-text-heading); }
.reference-ui .recent-panel-header .small, .reference-ui .recent-panel .empty,
.reference-ui .recent-box a span { font-size: var(--crm-text-meta); }
.reference-ui .recent-box a b, .reference-ui .quick-register-grid .btn { font-size: var(--crm-text-data); }
.reference-ui .recent-box a b { line-height: 1.6; }
.reference-ui .quick-register-grid .btn { min-height: 44px; }
.reference-ui[data-shell-variant='compact'].is-condensed .portal-command-bar { min-height: 50px; }
.reference-ui[data-shell-variant='compact'].is-condensed .crm-workspace-bar { min-height: 42px; }

@media (max-width: 991px) {
  .reference-ui .portal-sidebar .crm-nav-trigger, .reference-ui .portal-sidebar .portal-side-home { min-height: 48px; }
  .reference-ui .portal-sidebar .crm-nav-trigger span, .reference-ui .portal-sidebar .portal-side-home span { font-size: var(--crm-text-data); }
}
@media (max-width: 768px) {
  body.reference-ui { padding-bottom: calc(75px + env(safe-area-inset-bottom, 0px)); }
  .reference-ui .mobile-bottom-nav { height: calc(68px + env(safe-area-inset-bottom, 0px)); }
  .reference-ui .mobile-bottom-link { font-size: var(--crm-text-meta); padding-block: 6px; }
}
@media (max-width: 767px) {
  .crm-ui .form-control, .crm-ui .form-select, .crm-ui .form-control-lg,
  .crm-ui .input-group-lg > .form-control, .crm-ui .dashboard-search .form-control { font-size: 16px; }
  .reference-ui .portal-tool > button { display: grid; grid-template-rows: 18px 27px; align-content: center; justify-items: center; gap: 2px; width: 44px; min-width: 44px; max-width: 44px; padding: 2px; font-size: 11px; line-height: 1.2; }
  .reference-ui .portal-tool > button > span { align-self: start; white-space: normal; word-break: keep-all; }
  .reference-ui .portal-account > button { font-size: 11px; }
  .reference-ui .portal-account > button > span { white-space: nowrap; }
  .reference-ui .portal-command-bar { min-height: 52px; }
  .reference-ui .portal-metrics { gap: 5px; }
  .reference-ui .portal-metric > span::after { font-size: var(--crm-text-meta); }
  .reference-ui .portal-metric > b { font-size: var(--crm-text-meta); padding-inline: 1px; }
  .reference-ui .portal-command-links a { font-size: var(--crm-text-meta); }
  .reference-ui .crm-workspace-bar { min-height: 42px; }
  .reference-ui .crm-workspace-path { font-size: var(--crm-text-body); }
  .reference-ui .portal-briefing { gap: 16px 10px; }
  .reference-ui .portal-briefing h2 { flex-wrap: wrap; font-size: var(--crm-text-body); }
  .reference-ui .portal-briefing h2 small { font-size: var(--crm-text-meta); }
  .reference-ui .portal-slogan-copy p { font-size: var(--crm-text-body); }
  .reference-ui .portal-quote-copy blockquote { font-size: var(--crm-text-data); }
  .reference-ui #portalWeather { min-height: 124px; gap: 4px 12px; }
  .reference-ui .portal-current-weather { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 0 8px; grid-row: 1 / span 2; }
  .reference-ui .portal-current-weather .portal-weather-image { width: 40px; height: 40px; grid-row: 1 / span 2; }
  .reference-ui .portal-current-weather strong { font-size: 30px; }
  .reference-ui .portal-current-weather small { grid-column: 2; font-size: var(--crm-text-meta); }
  .reference-ui .portal-weather-meta, .reference-ui .portal-weather-at { grid-column: 2; font-size: var(--crm-text-meta); }
  .reference-ui .portal-weather-at { grid-row: 2; }
  .reference-ui .portal-week-days { min-height: 152px; }
  .reference-ui .portal-temp-range { flex-direction: column; }
  .reference-ui .portal-service-columns, .reference-ui .portal-service-feed a { grid-template-columns: minmax(0, 1fr) 60px 70px; gap: 6px; }
  .reference-ui .portal-feed-state { max-width: 60px; }
  .reference-ui .portal-consult-table .recent-consult-item { height: auto; padding-block: 16px; }
  .reference-ui .portal-consult-date, .reference-ui .portal-consult-owner { font-size: var(--crm-text-meta); }
}
