/* Shared production UI. Keep document paper/exports in their dedicated 12pt Times styles. */
:root {
  --font-ui: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --muted: #52636d;
  --line: #dce3e0;
  --shadow: 0 10px 32px #1430440a;
}
html { font-size: 100%; scroll-padding-top: 100px; }
body { font-family: var(--font-ui); font-size: 1.0625rem; line-height: 1.7; }
button, input, select, textarea { font-family: var(--font-ui); }
h1, h2, h3, h4 { text-wrap: balance; letter-spacing: -.025em; }
p { text-wrap: pretty; }
small, .small-text { font-size: .875rem; line-height: 1.6; }
.eyebrow { font-size: .8125rem; letter-spacing: .1em; color: #79613c; }
.button { min-height: 46px; font-size: 1rem; border-radius: 10px; gap: 12px; }
.button.small { min-height: 44px; font-size: .9375rem; }
.text-link { white-space: normal; line-height: 1.6; color: #795624; }
.tag { font-size: .8125rem; color: #715728; }
.breadcrumb, .results-heading { font-size: .875rem; line-height: 1.6; }
.breadcrumb { overflow-wrap: anywhere; }
.notice, .validation-summary-errors, .field-validation-error { line-height: 1.7; }
label { font-size: .9375rem; line-height: 1.6; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
textarea, select { font-size: 1rem; line-height: 1.5; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]), select { min-height: 46px; }
input::placeholder, textarea::placeholder { color: #61717a; opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: #214d38; }
:focus-visible { outline: 3px solid #80632d; outline-offset: 3px; }
.button:active { transform: translateY(0); }
.content-card, .reading-card, .form-card, .auth-card, .purchase-card, .professional-card { border-radius: 16px; }
.card-grid, .featured-firms .card-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.professional-grid, .guidance-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.5rem), 1fr)); }
.content-card h3 { font-size: 1.3125rem; line-height: 1.4; }
.content-card p, .professional-summary { font-size: 1rem; line-height: 1.75; }
.hero-copy > p, .page-hero p, .auth-intro p { font-size: 1.125rem; line-height: 1.75; }
.hero-copy h1 { font-size: clamp(2.5rem, 4.5vw, 4rem); line-height: 1.12; }
.hero-search input { font-size: 1rem; }
.hero-trust, .popular { font-size: .875rem; flex-wrap: wrap; }
.page-hero h1 { font-size: clamp(2.125rem, 4vw, 3.25rem); }
.feature-strip > a { font-size: 1rem; }
.feature-strip small { font-size: .875rem; }
.prose { font-size: 1.0625rem; line-height: 1.85; }
.prose p { color: #344c58; }
.prose li + li { margin-top: .4em; }
.prose h2 { line-height: 1.35; }
.data-table { font-size: .9375rem; line-height: 1.65; }
.data-table th, .data-table td { padding: 14px 12px; vertical-align: top; }
.data-table th { font-weight: 600; }
.data-table tbody tr:hover { background: #f7f9f6; }
.table-scroll, .plan-access-table, .answer-table { overscroll-behavior-inline: contain; }
.site-footer a { line-height: 1.65; }
.site-footer small, .footer-bottom { font-size: .875rem; }

/* Navigation breaks into the existing accessible mobile menu before text crowds. */
.nav-container { gap: 24px; flex-wrap: wrap; }
.main-nav { gap: 20px; font-size: .9375rem; }
.nav-group > button, .sign-in, .nav-cart { font-size: .9375rem; }
.main-nav > a, .nav-group > button, .nav-actions > a { min-height: 44px; display: inline-flex; align-items: center; }
.nav-dropdown { top: 100%; min-width: 240px; }
.nav-dropdown a { min-height: 44px; display: flex; align-items: center; white-space: normal; }
.nav-actions { gap: 16px; }
.menu-toggle { min-width: 44px; min-height: 44px; }

/* Prices, document purchase controls and professional profiles keep a clear hierarchy. */
.subscription-card { padding: 28px 24px; }
.subscription-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.5rem), 1fr)); }
.subscription-card:has(.recommended-label) { padding-top: 46px; }
.recommended-label { top: -22px; }
.subscription-card ul { font-size: .9375rem; line-height: 1.75; }
.tier-description { font-size: 1rem; min-height: 0; }
.subscription-card .eyebrow, .recommended-label { font-size: .8125rem; letter-spacing: .04em; }
.subscription-price { font-size: clamp(2rem, 2.8vw, 2.6875rem); }
.billing-switch button { min-height: 48px; font-size: .9375rem; }
.billing-switch small { font-size: .8125rem; }
.plan-unlimited, .billing-total, .alternate-terms { font-size: .875rem; }
.purchase-benefits, .purchase-card p { font-size: 1rem; }
.purchase-card > small, .checkout-form-card .small-text { font-size: .875rem; color: #52636d; }
.overview-purchase .button { font-size: .9375rem; min-height: 48px; }
.professional-filters label, .professional-editor label, .connect-form label { font-size: .9375rem; }
.professional-editor input:not([type=checkbox]):not([type=hidden]), .professional-editor select,
.professional-editor textarea, .professional-filters input, .professional-filters select,
.connect-form input, .connect-form select { font-size: 1rem; }
.practice-chips a, .professional-type, .featured-firm-badge { font-size: .8125rem; }
.professional-plain { font-size: 1.0625rem; line-height: 1.85; }
.professional-details, .firm-details, .firm-hours dl { font-size: 1rem; }
.professional-card-actions, .featured-pager { flex-wrap: wrap; }

/* Reading remains the focus. The original two-row composer and pinned status stay in place. */
.workspace-page .chat-shell { grid-template-columns: 260px minmax(0, 1fr); }
.workspace-page .workspace-top { flex-wrap: wrap; gap: 10px; padding-block: 10px; }
.workspace-page .workspace-heading { min-width: 0; }
.workspace-page .workspace-kicker { font-size: .75rem; color: #52685b; }
.workspace-page .workspace-top h1 { font-size: 1.375rem; }
.workspace-page .workspace-plan-badge { font-size: .8125rem; }
.workspace-page .workflow-selection select { width: min(360px, 100%); min-height: 44px; font-size: 1rem; }
.workspace-page .workflow-selection { min-width: 0; flex: 1 1 280px; }
.workspace-page #active-tool-description { display: none; }
.workspace-page #active-tool-description, .workspace-page .workflow-access { font-size: .875rem; line-height: 1.5; }
.workspace-page .workflow-access { min-height: 40px; white-space: normal; max-width: none; flex: 0 1 auto; }
.workspace-page .chat-history { gap: 12px; padding-inline: 16px; }
.workspace-page #new-chat { font-size: .9375rem; min-height: 44px; padding-inline: 10px; }
.workspace-page .history-heading .eyebrow, .workspace-page .sidebar-label { font-size: .75rem; letter-spacing: .05em; color: #52664f; }
.workspace-page #thread-list > p { color: #52664f; }
.workspace-page .workspace-sidebar-links .sidebar-primary { font-size: .9375rem; min-height: 44px; }
.workspace-page .thread-row button:first-child { font-size: .9375rem; }
.workspace-page .thread-delete { min-width: 36px; min-height: 40px; }
.workspace-page .history-bottom .member-plan { font-size: .8125rem; letter-spacing: .02em; }
.workspace-page .history-bottom a { font-size: .9375rem; min-height: 40px; align-items: center; }
.workspace-page .history-search input { font-size: 1rem; }
.workspace-page .icon-button { width: 44px; height: 44px; }
.workspace-page .history-heading .icon-button { width: 36px; height: 36px; margin-top: 0; }
.workspace-page .desk-button { min-height: 44px; font-size: .875rem; }
.workspace-page #chat-welcome > h2 { font-size: clamp(1.875rem, 3vw, 2.375rem); }
.workspace-page #chat-welcome > p { font-size: 1rem; color: #52664f; }
.workspace-page #chat-welcome > .eyebrow { color: #617153; }
.workspace-page .workflow-cards strong { font-size: 1rem; }
.workspace-page .workflow-cards small { font-size: .875rem; line-height: 1.5; color: #586d5d; }
.workspace-page .starter-grid button, .workspace-page #tool-description { font-size: .9375rem; }
.workspace-page .message.user { font-size: 1rem; }
.workspace-page .formatted-answer, .workspace-page .formatted-answer p { font-size: 1.0625rem; line-height: 1.85; }
.workspace-page .message.assistant .formatted-answer { font-size: 1.0625rem; line-height: 1.85; }
.workspace-page .formatted-answer h2 { font-size: 1.625rem; }
.workspace-page .formatted-answer h3 { font-size: 1.3125rem; }
.workspace-page .message-label { font-size: .8125rem; letter-spacing: .06em; }
.workspace-page .answer-table table { font-size: 1rem; }
.workspace-page .message-tools button, .workspace-page .answer-download { font-size: .875rem !important; min-height: 44px; }
.workspace-page #chat-form textarea { font-size: 1rem; }
.workspace-page .composer-preferences { gap: 8px 16px; }
.workspace-page .draft-preference select { font-size: .875rem; min-height: 36px; max-width: 100%; }
.workspace-page .search-preference, .workspace-page .attach-button { font-size: .875rem; min-height: 36px; color: #52684d; }
.workspace-page .keyboard-hint, .workspace-page .file-hint { font-size: .8125rem; color: #586c60; }
.workspace-page .composer-disclaimer { font-size: .75rem; line-height: 1.5; color: #53664e; }
.workspace-page .send-button { width: 44px; height: 44px; flex-shrink: 0; }
.workspace-page .generation-status .waiting-copy > span { font-size: .9375rem; }
.workspace-page .generation-status .waiting-copy small, .workspace-page .generation-status time { font-size: .8125rem; }
.workspace-page .generation-status .waiting-copy { min-width: 0; }
.workspace-page #chat-scroll { min-height: min(140px, 24dvh); }
.workspace-page .composer-wrap { flex-shrink: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.workspace-page .generation-status { position: sticky; top: 0; z-index: 4; }
.workspace-page .tool-lock { max-height: min(220px, 32dvh); }
.workspace-page.history-collapsed .chat-shell, .workspace-page.focus-reading .chat-shell { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 1250px) {
  .menu-toggle { display: block; margin-left: auto; }
  .nav-container { flex-wrap: wrap; gap: 12px; }
  .main-nav { display: none; order: 3; width: 100%; margin: 0; flex-direction: column; align-items: stretch; gap: 0; white-space: normal; }
  .main-nav.open { display: flex; }
  .main-nav > a, .nav-group > button { width: 100%; text-align: left; padding: 12px; }
  .nav-dropdown { position: static; box-shadow: none; border: 0; background: #f5f7f3; }
  .nav-actions > .button { display: none; }
  .mobile-account { display: flex; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .workspace-page .chat-shell { grid-template-columns: 238px minmax(0, 1fr); }
  .workspace-page .workspace-top { padding-inline: 20px; }
}
@media (max-width: 760px) {
  .workspace-page .chat-shell { display: flex; }
  .workspace-page .chat-history { display: none; }
  .workspace-page .chat-history.open { display: grid; width: min(320px, 90vw); }
  .workspace-page .workspace-top { padding: 8px 12px; gap: 6px; }
  .workspace-page .workspace-top #history-open { width: 44px; height: 44px; }
  .workspace-page .workspace-kicker { display: none; }
  .workspace-page .workspace-plan-badge { font-size: .75rem; }
  .workspace-page #sources-open { font-size: 0; }
  .workspace-page #sources-open #source-count { font-size: .8125rem; }
  .workspace-page .workspace-tools-bar { padding: 6px 12px; gap: 4px 8px; }
  .workspace-page .workflow-selection { width: 100%; gap: 8px; flex-basis: 100%; }
  .workspace-page .workflow-selection label { font-size: .75rem; letter-spacing: .02em; }
  .workspace-page .workflow-selection select { flex: 1; width: 0; }
  .workspace-page .composer-wrap { padding-inline: 12px; }
  .workspace-page .composer-preferences { padding-inline: 12px; }
  .workspace-page .keyboard-hint, .workspace-page .file-hint { display: none; }
  .workspace-page .composer-actions { padding-inline: 10px; }
  .workspace-page #chat-scroll { padding-inline: 18px; }
  .workspace-page .formatted-answer, .workspace-page .formatted-answer p { font-size: 1.0625rem; }
  .workspace-page .message.user { max-width: 92%; }
  .workspace-page .composer-disclaimer { margin-top: 6px; }
  .workspace-page .tool-lock { max-height: 180px; }
  .workspace-page .tool-lock-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .workspace-page .tool-lock-actions .text-link { line-height: 1.4; }
  .workspace-page .composer-wrap:has(.tool-lock:not(.hidden)) .composer-preferences { display: none; }
}
@media (max-width: 600px) {
  body { font-size: 1rem; }
  .hero-copy > p, .page-hero p, .auth-intro p { font-size: 1.0625rem; }
  .hero-copy h1 { font-size: clamp(2.25rem, 9vw, 3rem); }
  .hero-trust { gap: 8px 14px; }
  .hero-search input { font-size: 1rem; padding-inline: 4px !important; }
  .nav-actions { gap: 8px; }
  .nav-actions .sign-in, .nav-cart { font-size: .875rem; }
  .nav-container { gap: 8px; }
  .site-header .brand .brand-wordmark { width: 148px; }
  .subscription-card { padding: 28px 24px; }
  .billing-switch { flex-wrap: wrap; }
  .billing-switch button { font-size: .875rem; }
  .mobile-buybar { flex-wrap: wrap; gap: 8px; }
  .mobile-buybar small { font-size: .75rem; letter-spacing: .02em; }
  .mobile-buybar .button { font-size: .875rem; min-height: 44px; padding-inline: 12px; }
  .mobile-buybar .mobile-cart-link { font-size: .875rem; }
  .professional-card h2 { font-size: 1.375rem; }
}
/* The observer accounts for wrapping text, safe-area insets and browser text sizing. */
@media (max-width: 850px) {
  body:has(.mobile-buybar), body:has(.premium-mobile-cta) { padding-bottom: calc(var(--fixed-action-height, 92px) + 16px); }
}
@media (max-width: 360px) {
  .site-header .brand .brand-wordmark { width: 130px; }
  .nav-container { padding-inline: 12px; gap: 4px; }
  .nav-actions { gap: 6px; }
  .workspace-page .workspace-heading h1 { font-size: 1.125rem; }
  .workspace-page .workspace-top { gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
