/* Shared customer type scale, loaded after the public and reused tool styles. */
:root {
  --type-note: .8125rem;
  --type-label: .875rem;
  --type-copy: .9375rem;
}
body { font-size: 1rem; }
.main-nav > a, .account-link, .menu-toggle { font-size: 1rem; }
.main-nav { gap: 20px; }
.main-nav > a { font-weight: 500; }
.button, .button-small, .text-link, .hero-secondary { font-size: var(--type-copy); }
.hero h1 { font-size: clamp(2rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.7px; }
.hero-lead { font-size: 1.0625rem; line-height: 1.7; }
.eyebrow, .hero-copy > .eyebrow, .contact-band .eyebrow,
.workspace-heading .eyebrow { font-size: var(--type-note); letter-spacing: 1.3px; }
.small, .hero-note, .workspace-note, .optional, .badge,
.form-panel label.check-label, .auth-form label.check-label,
.auth-form .field-help, .password-label-row a, .footer-bottom,
.account-detail-list dt, .history-list span { font-size: var(--type-note); line-height: 1.6; }
.preview-top { font-size: var(--type-label); flex-wrap: wrap; gap: 8px; }
.preview-pill { font-size: var(--type-note); }
.preview-body .eyebrow { font-size: .75rem; letter-spacing: 1px; }
.preview-body h2 { font-size: 1.625rem; }
.preview-flow strong { font-size: var(--type-copy); }
.preview-flow p, .preview-foot { font-size: var(--type-note); line-height: 1.65; }
.preview-search { font-size: var(--type-copy); }
.coverage-strip p { font-size: .75rem; }
.coverage-strip span { font-size: var(--type-label); }
.section-heading > p, .feature-card p, .process-layout > div > p:not(.eyebrow),
.process-list p, .future-grid p, .contact-band p, .contact-copy > p,
.contact-details p, .footer-brand p, .page-intro > p:last-child,
.auth-intro > p:not(.eyebrow), .auth-benefits, .reading-content p,
.reading-content li, .workspace-heading p, .empty-workspace p,
.account-sidebar p, .account-empty, .error-page > p:not(.eyebrow),
.locked-preview p, .research-includes, .platform-pitch .process-list p {
  font-size: var(--type-copy); line-height: 1.75;
}
.feature-card h3, .process-list h3, .platform-pitch .process-list h3 { font-size: 1.125rem; }
.footer-brand > a:last-child, .footer-top > div > h2,
.footer-top > div:not(.footer-brand) > a, .reading-aside a { font-size: var(--type-label); }
.footer-top > div > h2 { line-height: 1.5; }
.form-intro, .auth-link-row, .notice, .form-panel label, .auth-form label,
.contact-details h3, .account-detail-list dd, .history-list a,
.discovery-search > label, .public-suggestions button,
.progress-top p, .result-heading p, .result-warnings .notice,
.chart-context, .result-details, .result-details p, .data-panel-head p,
.view-switch button, .result-tabs button { font-size: var(--type-label); }
.contact-copy > p.small, .locked-preview .small { font-size: var(--type-label); }
input:not([type=checkbox]):not([type=hidden]), textarea, select,
.discovery-input input { font-size: 1rem; }
.public-search .button, .home-search .button, .hero-actions .button,
.contact-band .button, .download-actions .button, .error-actions .button { font-size: var(--type-copy); }
.balance-card span { font-size: var(--type-note); white-space: normal; line-height: 1.45; display: block; margin-top: 5px; }
.history-list strong { font-size: 1rem; }
.data-table { font-size: var(--type-label); }
.data-table th, .data-table .table-note, .evidence-status,
.table-proof, .table-proof summary { font-size: var(--type-note); }
.scope-company { font-size: var(--type-label) !important; }
.scope-caveat, .search-panel .small, .progress-panel .small { font-size: var(--type-note); }

/* Keep the dense research tables readable without enlarging headline figures. */
.tool-dashboard { font-size: var(--type-copy); line-height: 1.65; }
.tool-dashboard table, .tool-dashboard td.num, .tool-dashboard table.rtab2,
.tool-dashboard table.rtab2 td.num { font-size: var(--type-label); }
.tool-dashboard th, .tool-dashboard table.rtab2 thead th { font-size: var(--type-note); line-height: 1.5; letter-spacing: .4px; }
.tool-dashboard table.dtl th { font-size: var(--type-note); }
.tool-dashboard .viewtabs .viewtab, .tool-dashboard .viewhead + .resulthead .tab,
.tool-dashboard .tab, .tool-dashboard .tabdl .dlbtn, .tool-dashboard a.dlbtn,
.tool-dashboard .dashboard-search .exchip, .tool-dashboard .exchip,
.tool-dashboard .dashboard-search > label, .tool-dashboard .acitem,
.tool-dashboard .pricing-form-label, .tool-dashboard .pricing-form-choice { font-size: var(--type-label); }
.tool-dashboard #drug { font-size: 1rem; }
.tool-dashboard .meta, .tool-dashboard .howbody, .tool-dashboard .provrow .provcard,
.tool-dashboard .patent-context, .tool-dashboard .patent-legend,
.tool-dashboard .groupnote, .tool-dashboard .linkagenote,
.tool-dashboard .cms-scope, .tool-dashboard .cms-otherpart,
.tool-dashboard .cms-partnote, .tool-dashboard .pricing-sub,
.tool-dashboard .competition-caveat, .tool-dashboard .competition-empty,
.tool-dashboard details.how > summary, .tool-dashboard details.subdetails > summary { font-size: var(--type-label); line-height: 1.65; }
.tool-dashboard .small, .tool-dashboard .muted, .tool-dashboard .chartnote,
.tool-dashboard .chart-values, .tool-dashboard .slabel, .tool-dashboard .srcbadge,
.tool-dashboard .ptag, .tool-dashboard .ptagnone, .tool-dashboard .prodmeta,
.tool-dashboard .snote, .tool-dashboard .p4note, .tool-dashboard .restated,
.tool-dashboard .ver, .tool-dashboard .secheading .prodno,
.tool-dashboard table.rtab2 tr.rsubrow td:first-child,
.tool-dashboard .regional .ok, .tool-dashboard .regional .warn,
.tool-dashboard .regional .muted, .tool-dashboard tr.seamrow td,
.tool-dashboard .dashboard-empty > div span { font-size: var(--type-note); line-height: 1.6; }
.tool-dashboard .secheading { font-size: var(--type-label); letter-spacing: .6px; }
.tool-dashboard .side .stats .sval { font-size: 1.125rem; }
.tool-dashboard .sumsec > summary { font-size: 1.0625rem; }
.tool-dashboard details.sumsec > summary { font-size: var(--type-label); }
.tool-dashboard .exlabel, .tool-dashboard .rtnote, .tool-dashboard .tag,
.tool-dashboard .flink, .tool-dashboard .srcnote,
.tool-dashboard .peersbox .peercount { font-size: var(--type-note); }
.tool-dashboard .peerclass, .tool-dashboard .tbtn,
.tool-dashboard .tbtn.scalebtn { font-size: var(--type-label); }
.tool-dashboard details.patent-note > summary { width: 100%; padding: 10px 14px; font-size: var(--type-label); }
.tool-dashboard .patent-note-body { padding: 0 14px 14px; font-size: var(--type-label); line-height: 1.65; }
.tool-dashboard h1.pagetitle { font-size: 1.875rem; line-height: 1.25; }
.tool-dashboard .dashboard-empty h2 { font-size: 1.75rem; line-height: 1.3; }

/* Switch to the existing menu before the larger navigation becomes crowded. */
@media (min-width: 1051px) and (max-width: 1279px) {
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--surface); padding: 16px 30px; border-bottom: 1px solid var(--line); margin: 0; flex-wrap: wrap; gap: 10px 25px; }
  .main-nav.open { display: flex; }
  .main-nav .mobile-only { display: block !important; }
  .main-nav .button.mobile-only { display: inline-flex !important; color: white; }
  .menu-toggle { display: flex; margin-left: auto; }
}
@media (max-width: 1279px) {
  .main-nav > a, .account-link { font-size: 1rem; }
}
@media (max-width: 800px) {
  .preview-flow { grid-template-columns: 1fr; gap: 0; }
  .preview-flow > div { display: grid; grid-template-columns: 32px 1fr; gap: 3px 9px; }
  .preview-flow p { grid-column: 2; }
  .preview-number { grid-row: span 2; }
}
@media (max-width: 600px) {
  .hero h1 { font-size: 2rem; }
  .hero-lead { font-size: 1rem; }
  .preview-top { align-items: center; }
  .preview-top .preview-pill { margin-left: 28px; }
  .preview-body h2 { font-size: 1.5rem; }
  .coverage-strip span { font-size: var(--type-note); }
  .workspace-heading h1 { font-size: 1.75rem; }
  .balance-card { max-width: 100%; }
  .tool-dashboard .viewtabs .viewtab { padding: 10px 11px; }
  .tool-dashboard .tabdl .dlbtn, .tool-dashboard a.dlbtn { line-height: 1.4; }
  .tool-dashboard .secheading .prodno { float: none; display: block; margin: 5px 0 0; }
}

/* Password visibility controls keep each field and its label distinct. */
.password-entry { display: grid; gap: 7px; min-width: 0; margin-bottom: 17px; }
.auth-form .password-entry > label { margin: 0; }
.password-field { position: relative; min-width: 0; }
.auth-form .password-field input { margin: 0; padding-right: 5.5rem !important; }
.auth-form .password-field #login-password { margin-bottom: 0; }
.auth-form > .password-field { margin-bottom: 18px; }
.password-toggle { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); min-width: 64px; min-height: 44px; padding: 6px 10px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--teal); font-size: 0.9375rem; font-weight: 600; line-height: 1.2; }
.password-toggle:hover { background: var(--paper); }
.password-toggle:focus-visible { outline-offset: 0; }
