body { font-family: 'Inter', sans-serif; }
        .s2-settings-nav button.active { color: #fff; background: #FF5500; box-shadow: 0 4px 12px #ff550033; }
        .s2-settings-panel[hidden] { display: none !important; }
        .s2-trade-chip[aria-pressed="true"] { background: #0B132B; border-color: #0B132B; color: #fff; }
        .s2-doc-accreditations img { max-width: 64px; max-height: 36px; object-fit: contain; }
        .s2-paper-invoice { position:relative; box-sizing:border-box; width:100%; min-height:900px; background:#fff; color:#111; font-size:13px; line-height:1.3; padding:38px 38px 55px; font-family:'DM Sans',Arial,sans-serif; }
        .s2-invoice-top,.s2-invoice-parties,.s2-invoice-bottom { display:grid; grid-template-columns:45% 1fr; column-gap:20%; }
        .s2-invoice-bottom { column-gap:17%; }
        .s2-invoice-top { min-height:135px; }
        .s2-invoice-logo { width:200px; height:93px; overflow:hidden; }
        .s2-invoice-logo img { display:block; width:100%; height:100%; object-fit:contain; object-position:left center; }
        .s2-invoice-logo-area .s2-doc-accreditations { display:flex; gap:6px; margin-top:10px; }
        .s2-invoice-business { white-space:pre-line; line-height:1.12; }
        .s2-invoice-business > * { margin:0; padding:0; }
        .s2-invoice-business strong { display:block; font-size:12px; }
        .s2-invoice-parties { margin:0 0 20px; }
        .s2-invoice-party,.s2-invoice-meta { border-top:1px solid #111; padding-top:17px; min-height:105px; }
        .s2-invoice-party strong,.s2-invoice-meta strong:first-child { display:block; font-size:18px; margin-bottom:12px; }
        .s2-invoice-party div { white-space:pre-line; margin:0; padding:0; line-height:1.28; }
        .s2-invoice-meta strong:nth-child(2) { display:block; margin-bottom:12px; }
        .s2-invoice-meta span { color:#585b60; font-weight:700; }
        .s2-invoice-lines table { width:100%; border-collapse:collapse; table-layout:fixed; }
        .s2-invoice-lines th { background:#080808; color:#fff; text-align:left; font-size:10px; letter-spacing:.07em; font-weight:500; text-transform:uppercase; padding:13px 10px; }
        .s2-invoice-lines th:nth-child(1) { width:11%; } .s2-invoice-lines th:nth-child(2) { width:59%; } .s2-invoice-lines th:nth-child(3),.s2-invoice-lines th:nth-child(4) { width:15%; text-align:right; white-space:nowrap; }
        .s2-invoice-lines td { background:#f6f7f8; padding:12px 10px; vertical-align:top; overflow-wrap:anywhere; white-space:pre-line; }
        .s2-invoice-lines td:nth-child(n+3) { text-align:right; white-space:nowrap; } .s2-invoice-lines td:last-child { font-weight:700; }
        .s2-invoice-totals { width:34%; min-height:135px; margin:42px 0 6px auto; }
        .s2-invoice-amount-row { display:flex; justify-content:space-between; gap:8px; padding:5px 0; }
        .s2-invoice-total,.s2-invoice-due { font-size:21px; font-weight:800; white-space:nowrap; }
        .s2-invoice-paid { font-size:11px; margin:24px 0 38px; }
        .s2-invoice-bottom { margin-top:0; }
        .s2-invoice-footer-block { border-top:1px solid #111; padding-top:44px; min-height:120px; }
        .s2-invoice-footer-block > strong { display:block; margin-bottom:12px; font-size:13px; }
        .s2-invoice-footer-block p { margin:3px 0; overflow-wrap:anywhere; }
        .s2-invoice-site { color:#585b60; font-weight:700; margin-top:48px; }
        .s2-invoice-note { color:#585b60; font-size:10px; margin-top:12px; }
        .s2-invoice-page { position:absolute; bottom:12px; left:0; right:0; color:#555; text-align:center; font-size:10px; }
        #modal-invoice-preview > div { max-width:850px; }
        @media (max-width:767px) {
            .s2-paper-invoice { min-width:620px; }
            #modal-invoice-preview > div { overflow-x:auto; }
        }
        @media print {
            @page { size:A4; margin:0; }
            html,body { height:auto!important; overflow:visible!important; margin:0!important; background:#fff!important; }
            body > #app { display:none!important; }
            #modal-invoice-preview:not(.hidden),#modal-certificate:not(.hidden) { display:block!important; position:static!important; padding:0!important; background:#fff!important; }
            #modal-certificate:not(.hidden) > div { max-height:none!important; overflow:visible!important; box-shadow:none!important; }
            #modal-invoice-preview:not(.hidden) > div { max-width:none!important; width:210mm!important; max-height:none!important; height:auto!important; padding:0!important; margin:0!important; overflow:visible!important; box-shadow:none!important; border:0!important; }
            #modal-invoice-preview .s2-paper-invoice { width:210mm!important; min-height:297mm!important; padding:11mm 10mm 15mm!important; font-size:10pt; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
            #modal-invoice-preview .s2-invoice-top { min-height:36mm; }
            #modal-invoice-preview .s2-invoice-page { bottom:7mm; }
        }
        @media (max-width: 767px) {
            #sidebar { position: fixed; inset: 0 auto 0 0; width: min(82vw, 320px); height: 100dvh; transform: translateX(-100%); z-index: 60; }
            body.mobile-menu-open #sidebar { transform: translateX(0); }
            #mobile-menu-backdrop { display: none; position: fixed; inset: 0; background: rgba(2, 6, 23, .65); z-index: 50; }
            body.mobile-menu-open #mobile-menu-backdrop { display: block; }
            #content-viewport { padding: 1rem; }
            header > div:first-child { min-width: 0; flex: 1; }
            header > div:first-child > div { min-width: 0; }
            #page-title { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
            #view-jobs > div:first-child > div:last-child, #view-recurring > div:first-child > div:last-child { width: 100%; flex-wrap: wrap; }
            #view-jobs #job-search, #view-recurring #recurring-search { width: min(100%, 18rem); }
            #job-filter-tabs { flex-wrap: nowrap; overflow-x: auto; max-width: calc(100vw - 2rem); padding-bottom: .4rem; }
            #job-filter-tabs button { flex: none; min-height: 2.5rem; }
            .s2-settings-nav { max-width: calc(100vw - 2rem); overflow-x: auto; flex-wrap: nowrap !important; }
            .s2-settings-nav button { flex: none; }
            .tab-view { min-width: 0; }
            .tab-view .flex.items-center.justify-between { gap: .5rem; }
            #jobs-list table { min-width: 0; width: 100%; }
            #jobs-list thead { display: none; }
            #jobs-list tbody { display: block; padding: .75rem; background: #f1f5f9; }
            #jobs-list tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem .75rem; padding: 1rem; margin-bottom: .75rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; }
            #jobs-list tbody td { display: block; min-width: 0; padding: .15rem 0; overflow-wrap: anywhere; }
            #jobs-list tbody td::before { content: attr(data-label); display: block; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #64748b; margin-bottom: .15rem; }
            #jobs-list tbody td:first-child, #jobs-list tbody td:nth-child(2), #jobs-list tbody td:last-child { grid-column: 1 / -1; }
            #jobs-list tbody td:last-child { text-align: left; padding-top: .65rem; border-top: 1px solid #e2e8f0; white-space: normal; }
            #jobs-list tbody td:last-child button { min-height: 2.5rem; }
            #jobs-board > div { min-height: 0; }
            .tab-view .overflow-x-auto > table:not(#jobs-list table) { min-width: 680px; }
            #calendar-grid.grid-cols-7 { min-width: 620px; }
            #view-calendar .shadow-xs:has(> #calendar-grid) { overflow-x: auto; }
            .fixed[id^="modal-"] { padding: .5rem; align-items: flex-start; }
            .fixed[id^="modal-"] > div { width: 100%; max-height: calc(100dvh - 1rem); padding: 1.25rem; border-radius: 1rem; }
            .fixed[id^="modal-"] input, .fixed[id^="modal-"] select, .fixed[id^="modal-"] textarea { max-width: 100%; font-size: 16px; }
            #modal-job-title { font-size: 1rem; }
            #modal-job .flex.items-center.gap-3 { min-width: 0; }
            #modal-job .flex.items-center.gap-3 > h3 { overflow-wrap: anywhere; }
            #form-job > div:last-child { flex-wrap: wrap; gap: .75rem; }
            #form-job > div:last-child > div { flex-wrap: wrap; }
        }
        @media print {
            .no-print { display: none !important; }
            .print-only { display: block !important; }
            body { background: white !important; color: black !important; }
        }
        ::-webkit-scrollbar { width: 6px; height: 6px; }
        ::-webkit-scrollbar-track { background: #f1f5f9; }
        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Exact S2 reference invoice typography/spacing (INV-0007 supplied 25 Sep 2026) */
.s2-paper-invoice { font-family:'DM Sans',Arial,sans-serif; font-size:10px; line-height:1.28; }
.s2-invoice-business { font-size:10px; line-height:1.28; }
.s2-invoice-business strong { font-size:10px; font-weight:700; }
.s2-invoice-party,.s2-invoice-meta { padding-top:14px; }
.s2-invoice-party { font-size:10px; line-height:1.28; }
.s2-invoice-party strong,.s2-invoice-meta strong:first-child { font-size:14px; line-height:1.15; margin-bottom:18px; font-weight:700; }
.s2-invoice-party div { line-height:1.28; }
.s2-invoice-meta strong:nth-child(2) { font-size:11px; line-height:1.2; margin-bottom:18px; }
.s2-invoice-meta span { font-size:10px; line-height:1.2; }
.s2-invoice-lines th { font-size:8px; line-height:1; padding:12px 10px; letter-spacing:.07em; }
.s2-invoice-lines td { font-size:9px; line-height:1.2; padding:12px 10px; }
.s2-invoice-totals { width:34%; min-height:128px; margin:12px 0 6px auto; }
.s2-invoice-amount-row { padding:4px 0; }
.s2-invoice-total,.s2-invoice-due { font-size:16px; line-height:1.15; font-weight:800; }
.s2-invoice-paid { font-size:9px; line-height:1.2; margin:27px 0 23px; }
.s2-invoice-footer-block { padding-top:14px; min-height:120px; font-size:10px; line-height:1.28; }
.s2-invoice-footer-block > strong { margin-bottom:17px; font-size:11px; line-height:1.15; }
.s2-invoice-footer-block p { margin:3px 0; line-height:1.28; }
.s2-invoice-site { font-size:10px; line-height:1.2; margin-top:28px; }
.s2-invoice-note { font-size:10px; }
.s2-invoice-page { font-family:Arial,sans-serif; font-size:9px; }
@media print {
  #modal-invoice-preview .s2-paper-invoice { font-size:10px; line-height:1.28; }
}

/* 2026-09-25: invoice/quote typography correction to match supplied reference PDF */
.s2-paper-invoice { font-size:13px; line-height:1.28; }
.s2-invoice-business { font-size:13px; line-height:1.28; }
.s2-invoice-business strong { font-size:13px; font-weight:700; }
.s2-invoice-party { font-size:13px; line-height:1.28; }
.s2-invoice-party strong,.s2-invoice-meta strong:first-child { font-size:18px; line-height:1.15; margin-bottom:18px; font-weight:700; }
.s2-invoice-meta strong:nth-child(2) { font-size:14px; line-height:1.2; margin-bottom:18px; }
.s2-invoice-meta span { font-size:13px; line-height:1.2; }
.s2-invoice-lines th { font-size:10px; line-height:1; padding:13px 10px; letter-spacing:.07em; }
.s2-invoice-lines td { font-size:12px; line-height:1.2; padding:13px 10px; }
.s2-invoice-total,.s2-invoice-due { font-size:21px; line-height:1.15; font-weight:800; }
.s2-invoice-paid { font-size:11px; line-height:1.2; margin:27px 0 23px; }
.s2-invoice-footer-block { padding-top:14px; min-height:120px; font-size:12px; line-height:1.28; }
.s2-invoice-footer-block > strong { margin-bottom:17px; font-size:14px; line-height:1.15; }
.s2-invoice-site { font-size:11px; line-height:1.2; margin-top:28px; }
.s2-invoice-note { font-size:11px; }
.s2-invoice-page { font-size:10px; }
#modal-invoice-preview .s2-paper-invoice { font-size:13px; line-height:1.28; }
@media print {
  #modal-invoice-preview .s2-paper-invoice { font-size:10pt!important; line-height:1.28!important; }
}

/* 2026-09-25: remove vertical gaps between business-detail lines */
.s2-invoice-business {
  white-space: normal !important;
  line-height: 1 !important;
}
.s2-invoice-business > strong,
.s2-invoice-business > div {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  min-height: 0 !important;
}
#prev-doc-address {
  white-space: pre-line !important;
}
#prev-doc-email,
#prev-doc-website,
#prev-doc-phone {
  white-space: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
@media print {
  #modal-invoice-preview .s2-invoice-business,
  #modal-invoice-preview .s2-invoice-business > strong,
  #modal-invoice-preview .s2-invoice-business > div {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }
}

/* 2026-09-25: final reference-PDF scale pass — larger type, same compact line breaks */
.s2-paper-invoice { font-family:'DM Sans',Arial,sans-serif; font-size:14px; line-height:1.22; }
.s2-invoice-business { font-size:14px !important; line-height:1.08 !important; }
.s2-invoice-business > strong,.s2-invoice-business > div { font-size:14px !important; line-height:1.08 !important; margin:0 !important; padding:0 !important; }
.s2-invoice-business strong { font-weight:700; }
.s2-invoice-party { font-size:14px; line-height:1.22; }
.s2-invoice-party div { font-size:14px; line-height:1.22; }
.s2-invoice-party strong,.s2-invoice-meta strong:first-child { font-size:19px; line-height:1.12; margin-bottom:16px; font-weight:700; }
.s2-invoice-meta strong:nth-child(2) { font-size:15px; line-height:1.15; margin-bottom:16px; }
.s2-invoice-meta span { font-size:14px; line-height:1.18; }
.s2-invoice-lines th { font-size:10.5px; line-height:1; padding:13px 10px; }
.s2-invoice-lines td { font-size:12.5px; line-height:1.18; padding:13px 10px; }
.s2-invoice-total,.s2-invoice-due { font-size:22px; line-height:1.12; font-weight:800; }
.s2-invoice-paid { font-size:12px; line-height:1.18; }
.s2-invoice-footer-block { font-size:13px; line-height:1.22; }
.s2-invoice-footer-block > strong { font-size:15px; line-height:1.12; font-weight:700; }
.s2-invoice-footer-block p { line-height:1.22; }
.s2-invoice-site { font-size:12px; line-height:1.18; }
.s2-invoice-note { font-size:12px; }
@media print {
  #modal-invoice-preview .s2-paper-invoice { font-size:10.5pt!important; line-height:1.22!important; }
  #modal-invoice-preview .s2-invoice-business,
  #modal-invoice-preview .s2-invoice-business > strong,
  #modal-invoice-preview .s2-invoice-business > div { font-size:10.5pt!important; line-height:1.08!important; }
}

/* 2026-09-25: top-right business details — increase independently to match reference */
.s2-invoice-business,
.s2-invoice-business > strong,
.s2-invoice-business > div,
#prev-doc-business-name,
#prev-doc-address,
#prev-doc-email,
#prev-doc-website,
#prev-doc-phone {
  font-family:'DM Sans',Arial,sans-serif !important;
  font-size:16px !important;
  line-height:1.08 !important;
  margin:0 !important;
  padding:0 !important;
}
.s2-invoice-business > strong,
#prev-doc-business-name { font-weight:700 !important; }
@media print {
  #modal-invoice-preview .s2-invoice-business,
  #modal-invoice-preview .s2-invoice-business > strong,
  #modal-invoice-preview .s2-invoice-business > div,
  #modal-invoice-preview #prev-doc-business-name,
  #modal-invoice-preview #prev-doc-address,
  #modal-invoice-preview #prev-doc-email,
  #modal-invoice-preview #prev-doc-website,
  #modal-invoice-preview #prev-doc-phone {
    font-size:12pt !important;
    line-height:1.08 !important;
  }
}

/* 2026-09-25: reference layout — one deliberate break after company postcode */
#prev-doc-email { margin-top:10px !important; }
@media print {
  #modal-invoice-preview #prev-doc-email { margin-top:7.5pt !important; }
}
