/* Procuraz v5.2.0 — Professional Typography System
   Shared by Platform Administration, Company, Vendor, Seller Partner,
   Reports Centre and secure Vendor Onboarding. */

:root {
  --procuraz-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --procuraz-font-regular: 400;
  --procuraz-font-medium: 500;
  --procuraz-font-semibold: 600;
  --procuraz-font-bold: 700;
  --procuraz-text-xs: 10px;
  --procuraz-text-sm: 11px;
  --procuraz-text-ui: 12px;
  --procuraz-text-body: 13px;
  --procuraz-leading-ui: 1.4;
  --procuraz-leading-body: 1.55;
}

html {
  font-family: var(--procuraz-font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--procuraz-font-sans) !important;
  font-size: var(--procuraz-text-body);
  font-weight: var(--procuraz-font-regular);
  line-height: var(--procuraz-leading-body);
  letter-spacing: -0.006em;
}

button,
input,
select,
textarea,
optgroup,
option {
  font-family: inherit;
  letter-spacing: inherit;
}

p,
li,
dd,
dt {
  line-height: var(--procuraz-leading-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--procuraz-font-semibold) !important;
  text-wrap: balance;
}

h1 { letter-spacing: -0.035em !important; }
h2 { letter-spacing: -0.025em !important; }
h3,
h4 { letter-spacing: -0.012em !important; }

b,
strong {
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Brand typography */
.brand b,
.side-brand b,
.auth-brand {
  font-weight: var(--procuraz-font-semibold) !important;
}

.brand b,
.side-brand b {
  font-size: 16px !important;
  letter-spacing: -0.018em !important;
}

.brand small,
.side-brand small {
  font-size: 10px !important;
  font-weight: var(--procuraz-font-regular) !important;
  letter-spacing: 0 !important;
}

.brand-mark,
.brand-glyph,
.auth-logo,
.brand-orb,
.avatar,
.user-avatar {
  font-weight: var(--procuraz-font-bold) !important;
}

/* Primary and mobile navigation */
.sidebar {
  font-size: var(--procuraz-text-ui);
}

.nav-section-label,
.nav-label {
  font-size: 9px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  letter-spacing: 0.11em !important;
  line-height: 1.25 !important;
}

.nav-button,
.nav-item {
  font-size: var(--procuraz-text-ui) !important;
  font-weight: var(--procuraz-font-medium) !important;
  line-height: var(--procuraz-leading-ui) !important;
  letter-spacing: -0.004em !important;
}

.nav-button.active,
.nav-item.active {
  font-weight: var(--procuraz-font-semibold) !important;
}

.nav-text {
  min-width: 0;
  line-height: 1.28;
}

.nav-count,
.nav-badge,
.activity-total-badge,
.metric-open {
  font-size: 9px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  letter-spacing: 0 !important;
  font-variant-numeric: tabular-nums;
}

.side-footer,
.sidebar-footer {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.45 !important;
}

.side-footer b,
.user-copy b {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.user-copy span,
.side-footer small {
  font-size: 9.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

/* Top bars and page hierarchy */
.page-heading h1 {
  margin-top: 4px !important;
  font-size: 22px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.14 !important;
}

.page-heading p {
  font-size: 10.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.4 !important;
}

.top-title h2 {
  font-size: 18px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.2 !important;
}

.top-title small {
  font-size: 10.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.35 !important;
}

.page-head h1 {
  font-size: 26px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.18 !important;
}

.page-head p {
  max-width: 820px;
  margin-top: 5px !important;
  font-size: 12.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.55 !important;
}

.overline,
.eyebrow,
.line-label,
.report-eyebrow {
  font-size: 9.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  letter-spacing: 0.1em !important;
  line-height: 1.3 !important;
}

/* Buttons, tabs and compact actions */
.button,
.btn,
.file-button,
.report-button {
  font-size: var(--procuraz-text-ui) !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.002em !important;
}

.button-lg {
  font-size: 12.5px !important;
}

.btn-sm,
.mini-button,
.card-link,
.link-btn,
.lookup-retry,
.copy-inline {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.3 !important;
}

.auth-tab,
.segmented button,
.tabs button,
.settings-nav button,
.workflow-tab,
.partner-tab,
.partner-admin-tabs button,
.email-tabs button,
.email-editor-mode-tabs button,
.email-format-button,
.reply-mode button,
.report-presets button,
.kb-recommended-toggle {
  font-size: 11.5px !important;
  font-weight: var(--procuraz-font-medium) !important;
  line-height: 1.35 !important;
  letter-spacing: -0.002em !important;
}

.auth-tab.active,
.segmented button.active,
.tabs button.active,
.settings-nav button.active,
.workflow-tab.active,
.partner-tab.active,
.partner-admin-tabs button.active,
.email-tabs button.active,
.email-editor-mode-tabs button.active,
.reply-mode button.active,
.report-presets button.active {
  font-weight: var(--procuraz-font-semibold) !important;
}

.topbar .button,
.topbar .btn,
.top-actions .button,
.top-actions .btn {
  font-size: 11.5px !important;
}

.popover button {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-medium) !important;
}

/* Forms */
label,
.auth-card label,
.form-grid label,
.field label,
.report-field label,
.ticket-sidebar label,
.partner-review-form label,
.inspection-quantities label {
  font-size: 11.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

.input,
.select,
.textarea,
.auth-card input,
.form-grid input,
.form-grid select,
.form-grid textarea,
.toolbar input,
.toolbar select,
.report-field input,
.report-field select {
  font-size: 12.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.45 !important;
}

::placeholder {
  font-weight: var(--procuraz-font-regular);
  letter-spacing: 0;
  opacity: 0.72;
}

.field small,
.field-help,
.required-note,
.form-help,
.doc-meta,
.report-field small {
  font-size: 10.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.45 !important;
}

.form-section h4,
.section-heading h4 {
  font-size: 13.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Tables and dense operational data */
table,
.metric-value,
.metric-card strong,
.amount,
.plan-price,
.rating-big,
.rating-company-score > b,
.credit-balance-row strong,
.subscription-credit-head h3,
.report-summary-value,
.report-stat-value {
  font-variant-numeric: tabular-nums;
}

th,
.table th,
.report-table th,
.kb-table th {
  font-size: 9.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.35 !important;
  letter-spacing: 0.055em !important;
}

td,
.table td,
.report-table td,
.kb-table td {
  font-size: 12px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.48 !important;
}

td b,
td strong,
.table td b,
.table td strong,
.report-table td b,
.report-table td strong {
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Cards, metrics and commercial figures */
.card-head h3 {
  font-size: 14px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.3 !important;
}

.card-head p {
  font-size: 10.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.45 !important;
}

.metric-label,
.metric-card > span {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-medium) !important;
  line-height: 1.4 !important;
}

.metric-value,
.metric-card strong {
  font-size: 26px !important;
  font-weight: var(--procuraz-font-bold) !important;
  letter-spacing: -0.035em !important;
  line-height: 1.08 !important;
}

.metric-foot,
.metric-delta {
  font-size: 10px !important;
  font-weight: var(--procuraz-font-medium) !important;
}

.plan-price,
.subscription-credit-head h3,
.credit-balance-row strong {
  font-size: 27px !important;
  font-weight: var(--procuraz-font-bold) !important;
  letter-spacing: -0.035em !important;
}

.amount,
.ledger-amount,
.credit-ledger-amount,
.rating-company-score > b {
  font-weight: var(--procuraz-font-bold) !important;
}

.score-grid span,
.po-summary span,
.workflow-summary span,
.quote-preview span,
.quote-detail-grid span,
.full-quote-total-card span,
.payment-summary span,
.credit-balance-row span,
.package-limit-grid span,
.vendor-profile-summary span,
.partner-detail-grid span,
.client-meta span,
.proration-context span {
  font-size: 9.5px !important;
  font-weight: var(--procuraz-font-medium) !important;
  letter-spacing: 0.045em !important;
}

.score-grid b,
.po-summary b,
.performance-stat b,
.credit-lifetime-grid b {
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Statuses, chips and compact labels */
.badge,
.status,
.status-pill,
.support-priority,
.sla-chip,
.change-pill,
.review-badge,
.recommend-badge,
.risk-badge,
.package-kind,
.package-type-badge,
.package-governance,
.funding-source-pill,
.credit-policy-badge,
.shared-origin-pill,
.shared-current-pill,
.shared-network-pill,
.document-count-pill,
.optional-pill,
.connection-document-title > span,
.tag,
.chip,
.lookup-chip,
.data-chip,
.supplier-payment-status,
.report-status,
.kb-recommended,
.kb-card-category,
.kb-suggestion-category,
.kb-article-category,
.kb-article-tags > span:first-child {
  font-size: 9.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.3 !important;
  letter-spacing: 0.025em !important;
}

.activity-updated,
.upload-pending,
.upload-selected,
.upload-error,
.upload-existing,
.connection-upload-state,
.connection-document-meta > span:first-child {
  font-size: 10px !important;
  font-weight: var(--procuraz-font-medium) !important;
}

/* Authentication and onboarding */
.auth-heading h2 {
  font-size: 27px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.auth-heading p,
.auth-links,
.auth-error,
.auth-success,
.form-error {
  font-size: 12px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.auth-copy h1 {
  font-size: 34px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.auth-brand {
  font-size: 21px !important;
}

.visual-content h2 {
  font-size: 40px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.visual-content p,
.story-copy p {
  font-size: 15px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.story-copy h1 {
  font-size: clamp(40px, 4.6vw, 62px) !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.feature-card strong,
.story-grid strong {
  font-weight: var(--procuraz-font-semibold) !important;
}

.hero h1 {
  font-size: 28px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.hero p,
.notice,
.card-intro,
.check-row label {
  font-size: 12.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.card h2 {
  font-size: 16px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.meta span,
.progress-item span,
.doc-meta,
.change-area-list span {
  font-size: 10.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.meta b,
.progress-item b,
.doc-title b,
.lookup-option b {
  font-size: 12px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.progress-dot {
  font-size: 11px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Knowledge base and Reports Centre */
.kb-hero h2,
.kb-article-title-row h1 {
  font-size: 30px !important;
  font-weight: var(--procuraz-font-semibold) !important;
  line-height: 1.18 !important;
}

.kb-block-head h2,
.kb-section h2 {
  font-size: 20px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.kb-article-title-row p,
.kb-section > p {
  font-size: 12.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
  line-height: 1.68 !important;
}

.kb-bullets li,
.kb-steps p,
.kb-callout p,
.kb-module-box p {
  font-size: 11.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.kb-card-meta,
.kb-article-breadcrumb,
.kb-read-card span,
.kb-permission-note > span,
.kb-module-box > b,
.kb-suggestion-head span,
.kb-suggestion-head > small,
.kb-suggestion-meta,
.kb-suggestion-view-all,
.kb-suggestion-loading,
.kb-search-hint {
  font-weight: var(--procuraz-font-medium) !important;
}

.kb-step-number,
.kb-callout-icon,
.kb-empty-icon,
.kb-suggestion-empty-icon {
  font-weight: var(--procuraz-font-bold) !important;
}

.report-centre-head h2 {
  font-size: clamp(21px, 2vw, 27px) !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

.report-centre-head p,
.report-scope span,
.report-scope small {
  font-size: 11.5px !important;
  font-weight: var(--procuraz-font-regular) !important;
}

.report-scope b {
  font-size: 12.5px !important;
  font-weight: var(--procuraz-font-semibold) !important;
}

/* Preserve strong visual anchors without returning to heavy UI typography. */
.brand-mark,
.brand-glyph,
.auth-logo,
.brand-orb,
.avatar,
.user-avatar,
.gateway-logo,
.document-icon,
.analysis-rank,
.connection-document-indicator,
.client-logo,
.credit-direction,
.ledger-direction,
.partner-destination-icon,
.kb-callout-icon,
.kb-empty-icon,
.kb-suggestion-empty-icon,
.report-welcome-icon,
.report-empty-icon {
  font-weight: var(--procuraz-font-bold) !important;
}

.toast {
  font-size: 11.5px !important;
  font-weight: var(--procuraz-font-medium) !important;
}

@media (max-width: 760px) {
  body {
    font-size: 13.5px;
  }

  .nav-button,
  .nav-item {
    font-size: 12.5px !important;
  }

  .page-head h1 {
    font-size: 23px !important;
  }

  .page-heading h1,
  .top-title h2 {
    font-size: 18px !important;
  }

  .kb-hero h2,
  .kb-article-title-row h1 {
    font-size: 26px !important;
  }

  /* Prevent automatic input zoom in iOS browsers. */
  .input,
  .select,
  .textarea,
  .auth-card input,
  .form-grid input,
  .form-grid select,
  .form-grid textarea,
  .toolbar input,
  .toolbar select,
  .report-field input,
  .report-field select {
    font-size: 16px !important;
  }
}

@media print {
  body {
    font-size: 11pt;
    letter-spacing: 0;
  }
}
