/* RelatedTerms responsive layouts: desktop, tablet and touch screens. */
:root { --lf-target: 44px; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 20px; }
body { overflow-wrap: break-word; }
main, .content, .workarea, .workarea > *, .grid > *, .calc-shell > *,
.doc-layout > *, .client-layout > *, .market-grid > *, .relationship > * { min-width: 0; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
input, select, textarea { max-width: 100%; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #5a913a;
  outline-offset: 3px;
}
.actions { align-items: center; }
.section-head { gap: 15px; }
.entity strong, .entity p, .view-row strong, .doc-record strong,
.client-button, .paper p, .paper td, .node b { overflow-wrap: anywhere; }
.tabs { scrollbar-width: thin; scroll-padding-inline: 15px; }
.tab { flex: 1 0 auto; min-height: var(--lf-target); }
.scrolltable { max-width: 100%; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.scrolltable .line-items { min-width: 520px; }
.scrolltable:focus-visible { outline: 3px solid #5a913a; outline-offset: 3px; }
.doc-overlay { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.doc-head { gap: 14px; }
.doc-head h2:focus { outline: none; }
.doc-head .actions { justify-content: flex-end; }
.paper { min-width: 0; }
.paper td { vertical-align: top; }
.toast { max-width: min(520px, calc(100vw - 32px)); z-index: 100; line-height: 1.6; }
.mobile-menu { border-radius: 7px; }

@media (min-width: 1500px) {
  .content { max-width: 1500px; }
  .workarea { grid-template-columns: minmax(0, 1fr) 290px; }
}

@media (max-width: 1150px) {
  .calc-shell { grid-template-columns: minmax(0, 1fr); }
  .calc-out { position: static; }
  .calc-out .big-number { font-size: 36px; }
  .doc-layout { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
  .doc-settings { position: static; }
  .doc-settings > .card { padding: 22px; }
  .terms-settings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-result { overflow-wrap: anywhere; }
}

@media (max-width: 1024px), (pointer: coarse) {
  .btn, .textlink, .nav, .tab, .type-btn, .client-button,
  .view-actions button, .market-actions button { min-height: var(--lf-target); }
  input:not([type=checkbox]), select, textarea {
    min-height: var(--lf-target);
    font-size: 16px;
    line-height: 1.4;
  }
  label.field, .market-grid label, .market-cost label { font-size: 12px; line-height: 1.5; }
  .checkrow { min-height: var(--lf-target); align-items: center; margin: 5px 0; font-size: 12px; }
  .checkrow input { width: 20px; height: 20px; margin: 0; }
  .sub, .doc-info { font-size: 12px; line-height: 1.7; }
  .btn { white-space: normal; line-height: 1.45; }
  .type-btn { padding: 16px 8px; }
  .panel-top { gap: 12px; }
  .client-button { line-height: 1.5; }
}

@media (min-width: 761px) and (max-width: 950px) {
  .content { padding: 24px 22px; }
  .topbar { padding: 0 22px; }
  .title-row { align-items: flex-start; flex-direction: column; gap: 17px; }
  h1 { font-size: 28px; }
  .summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .relationship { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .arrow { height: 22px; transform: rotate(90deg); }
  .entity { min-height: auto; }
  .entity-top { margin-bottom: 8px; }
  .grid { grid-template-columns: minmax(0, 1fr); }
  .right { grid-template-columns: minmax(0, 1fr); }
  .right .mini-dark { grid-column: auto; }
  .market-grid { grid-template-columns: minmax(0, 1fr); }
  .market-costs { grid-template-columns: minmax(0, 1fr); }
  .doc-head { flex-wrap: wrap; }
  .doc-head .actions { justify-content: flex-start; }
  .entity-map { grid-template-columns: minmax(0, 1fr); }
  .entity-map .link span { display: none; }
  .client-layout { grid-template-columns: minmax(0, 1fr); }
  .client-layout > div:first-child { display: flex; flex-wrap: wrap; gap: 8px; }
  .client-button { flex: 1 1 180px; width: auto; }
}

@media (max-width: 760px) {
  aside { display: none; }
  main { margin-left: 0; }
  .topbar {
    height: auto;
    min-height: 76px;
    padding: 14px 16px;
    gap: 12px;
    align-items: center;
    position: relative;
    z-index: 2;
  }
  .mobile-brand { display: inline; font-size: 20px; letter-spacing: -.6px; white-space: nowrap; }
  .top-right { margin-left: auto; gap: 0; min-width: 0; }
  .top-right .decor, .top-right .pill { display: none; }
  .mobile-menu {
    display: block;
    width: 185px;
    max-width: 47vw;
    margin: 0;
    background: white;
    color: var(--ink);
    font-size: 16px;
    min-height: 44px;
    padding: 10px 8px;
  }
  .content { padding: 22px 16px 28px; }
  h1 { font-size: clamp(25px, 7vw, 31px); line-height: 1.16; }
  h2 { line-height: 1.3; }
  .title-row .actions { width: 100%; }
  .title-row .actions .btn { flex: 1 1 145px; }
  .eyebrow { line-height: 1.7; }
  .client-strip { gap: 12px; padding: 13px; }
  .client-strip > .actions { width: 100%; }
  .client-strip .actions > button { flex: 1 1 135px; }
  .summary { margin-bottom: 24px; }
  .stat { padding: 16px 13px; }
  .stat-value { font-size: 18px; line-height: 1.4; }
  .stat-label { font-size: 9px; line-height: 1.5; }
  .stat small { line-height: 1.6; }
  .entity { padding: 17px; }
  .entity strong { font-size: 14px; }
  .entity p { font-size: 12px; }
  .entity small { font-size: 9px; }
  .section-head { align-items: flex-start; gap: 10px; }
  .section-head .textlink { flex-shrink: 0; }
  .tabs { padding: 0 6px; }
  .tab { padding: 16px 13px 13px; font-size: 12px; min-height: 51px; }
  .panel { padding: 22px 16px; }
  .panel-top { flex-wrap: wrap; }
  .step-count { padding: 0; margin: 0; }
  .panel-footer { flex-wrap: wrap; gap: 12px; }
  .panel-footer .saved { flex-basis: 100%; font-size: 11px; }
  .panel-footer > .actions { width: 100%; }
  .panel-footer > .actions > button { flex: 1; }
  .grid, .market-grid, .market-costs { grid-template-columns: minmax(0, 1fr); }
  .full { grid-column: 1 / -1; }
  .market-box, .luxury-box { padding: 18px 14px; margin-top: 20px; }
  .market-actions .btn, .luxury-box > .actions .btn { flex: 1 1 180px; }
  .luxury-math { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 12px; }
  .luxury-math b { font-size: 17px; }
  .luxury-result, .market-result { padding: 15px 13px; }
  .flow-output { flex-wrap: wrap; line-height: 1.7; padding: 14px; }
  .calc-out { padding: 23px 19px; }
  .calc-line { font-size: 12px; gap: 14px; }
  .calc-line b { text-align: right; }
  .file-row { align-items: flex-start; flex-wrap: wrap; }
  .file-row > div { min-width: 0; flex: 1 1 200px; }
  .file-row strong, .file-row small { overflow-wrap: anywhere; }
  .upload { padding: 16px 10px; }
  .doc-overlay { left: 0; right: 0; }
  .doc-head { padding: 14px 16px; align-items: flex-start; gap: 12px; }
  .doc-head > .overlay-menu { order: -2; width: 100%; max-width: none; flex-basis: 100%; }
  .doc-head h2 { font-size: 18px; }
  .doc-head > .actions { width: 100%; justify-content: flex-start; }
  .doc-head > .actions .btn { flex: 1 1 155px; }
  .doc-layout { padding: 18px 14px; gap: 18px; }
  .doc-settings > .card { padding: 20px 16px; }
  .terms-settings { grid-template-columns: minmax(0, 1fr); }
  .paper { padding: 26px 19px; min-height: 0; }
  .paper h1 { font-size: 25px; }
  .paper p, .paper td { font-size: 12px; }
  .paper td { padding: 10px 6px; }
  .paper td:first-child { width: 35%; }
  .paper .signatures { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .client-wrap { padding: 22px 16px; }
  .client-wrap > h1 { margin-bottom: 12px; }
  .client-layout { gap: 18px; }
  .client-layout > div:first-child { display: block; }
  .client-button { width: 100%; margin-bottom: 9px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-metric { padding: 16px 13px; }
  .client-metric:last-child { grid-column: 1 / -1; }
  .doc-record { padding: 18px 15px; }
  .doc-record > div:first-child { min-width: 0; width: 100%; }
  .doc-record .actions { width: 100%; }
  .doc-record .actions button { flex: 1; }
  .overview-card { padding: 19px 14px; }
  .view-row { padding: 18px 15px; }
  .view-actions { width: 100%; }
  .view-actions .btn { flex: 1 1 130px; }
  .toast { left: 16px; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); max-width: none; }
}

@media (max-width: 380px) {
  .topbar { padding: 12px; gap: 8px; }
  .mobile-brand { font-size: 18px; }
  .mobile-menu { width: 165px; max-width: 49vw; font-size: 16px; }
  .content { padding: 20px 12px; }
  .type-grid { grid-template-columns: minmax(0, 1fr); }
  .type-btn { display: flex; align-items: center; justify-content: center; gap: 12px; }
  .type-btn b { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
  .mobile-menu { display: none !important; }
  .scrolltable { max-height: none; overflow: visible; }
}

.brand{white-space:nowrap}@media(min-width:761px) and (max-width:1150px){.brand{font-size:20px!important;letter-spacing:-1.3px!important}}
