/* Preserve the documented Web Forms portal structure while replacing its controls. */
.portal-window { width: var(--portal-width); margin: 12px auto 0; padding: 0 var(--portal-inset) var(--portal-inset); background: #fff; }
.portal-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; min-height: 64px; margin-inline: calc(-1 * var(--portal-inset)); background: var(--portal-header-background); color: #fff; padding: 8px 16px; }
.portal-header-main { flex: 1; min-width: 220px; }
.portal-brand { display: flex; align-items: center; gap: 10px; color: #fff; min-height: 48px; }
.portal-brand:hover { color: #fff; text-decoration: none; }
.portal-brand img { flex: none; }
.portal-brand strong { font-size: 28px; font-weight: 600; letter-spacing: -.7px; }
.portal-brand span span { font-size: 16px; margin-left: 8px; }
.portal-header-support { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; margin-left: auto; }
.portal-help { color: #fff; font-size: 11px; font-weight: 600; white-space: nowrap; }
.portal-header-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:14px; font-size:11px; }
.admin-home-link { display:inline-block; border:1px solid currentColor; border-radius:4px; padding:3px 8px; }
.portal-header-links a { color:#fff; white-space:nowrap; }
.portal-account-links { display: flex; gap: 14px; margin-left: 58px; font-size: 11px; }
.portal-account-links a { color: #fff; }
.portal-workspace { margin-top: 16px; }
.portal-tabs { display: flex; flex-wrap: wrap; align-items: end; gap: 2px; padding: 0; border-bottom: 1px solid #397ead; }
.portal-tabs a { border: 1px solid #a7c3db; border-bottom: 0; border-radius: 5px 5px 0 0; background: #dceaf6; color: #183e5b; padding: 4px 7px; font-size: 14px; line-height: 1.25; white-space: nowrap; }
.portal-tabs a.active { background: #f6faff; border-color: #397ead; color: #0f3c5c; font-weight: 600; position: relative; margin-bottom: -1px; padding-bottom: 5px; z-index: 1; }
.portal-tabs a:hover { background: #f6faff; text-decoration: none; }
.portal-content { background: #f6faff; border: 1px solid #397ead; border-top: 0; min-height: 620px; padding: 16px 34px 24px; }
.portal-content-standalone { border:0; padding-top:0; }
.portal-grid { width: 100%; border: 1px solid #d4dce4; background: #fff; border-collapse: collapse; }
.portal-grid th { text-align: center; background: #4a5965; color: #fff; text-transform: none; letter-spacing: 0; font-size: 14px; padding: 7px 12px; }
.portal-grid td { padding: 14px 16px; border: 1px solid #d9e1e7; }
.portal-grid .command-column { width: 110px; }
.portal-grid .row-commands { text-align: center; font-size: 11px; padding: 8px; }
.row-commands a,.row-commands .command-link { display: block; margin: 12px auto; white-space: normal; }
.command-link { background: none; color: #176aa7; border: 0; padding: 0; font: inherit; font-size: 11px; }
.command-link:disabled { opacity: 1; cursor: default; }
.license-description { text-align: center; line-height: 1.65; }
.license-description strong { font-size: 16px; }
.license-description small { font-size: 11px; margin-top: 4px; }
.license-quantity, .license-dates-line > span { display:block; }
.license-quantity { font-size:16px; font-weight:600; }
.license-quantity b, .license-quantity strong { font-weight:inherit; }
.license-page { display: flex; flex-direction: column; min-height: 570px; }
.license-bottom { margin-top: auto; padding-top: 20px; }
.outstanding-line { text-align: right; font-size: 12px; margin-bottom: 18px; min-height: 20px; }
.outstanding-line a { margin-left: 6px; }
.overdue { color: #b32d24; font-weight: 600; }
.credit-pack-state { color:#206b3b; }
.button.stripe-pay-button,.button.saved-card-pay { background:#206b3b; color:white; }
.button.stripe-pay-button:hover,.button.saved-card-pay:hover { background:#17542c; }
.license-forecast { display:flex; flex-wrap:wrap; justify-content:inherit; gap:.3rem .6rem; margin:.35rem 0; }
.license-description .license-forecast { justify-content:center; }
.license-annual-usage { color:#008577; }
.admin-record-form .form-actions { display:flex; flex-wrap:wrap; gap:12px; padding:12px 0; margin:12px 0 20px; }
.note-alert-dialog { width:min(600px,calc(100% - 40px)); box-sizing:border-box; padding:24px; border:2px solid #b32d24; border-radius:8px; color:var(--ink,#193348); }
.note-alert-dialog::backdrop { background:rgb(0 0 0 / .45); }
.note-alert-dialog p { white-space:pre-wrap; overflow-wrap:anywhere; background:#b32d24; color:#fff; padding:8px 10px; border-radius:3px; font-weight:600; }
.note-alert-dialog form { display:flex; justify-content:flex-end; margin-top:20px; }
.license-footer { display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.license-account { font-size: 12px; line-height: 1.65; }
.usage-link { display: inline-block; margin-top: 2px; }
.license-buttons { display: flex; flex-wrap: wrap; justify-content: end; gap: 12px; }
.account-portal .button { min-height: 36px; border-radius: 5px; padding: 7px 14px; font-weight: 500; }
.account-portal .button.secondary { color: #fff; background: #687b8b; border-color: #687b8b; }
.account-portal .button.secondary:hover { background: #4d6578; }
.account-portal .button:disabled { opacity: .7; }
.buy-button { min-width: 250px; }
.reseller-caption { text-align: right; font-size: 12px; margin: 10px 0 -12px; }
.reseller-caption strong { color: #b32d24; }
.account-portal .preview-banner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 5px 10px; margin: 0 calc(-1 * var(--portal-inset)); border-radius: 0; font-size: 11px; }
.migration-note { color: #546777; font-size: 11px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #d7e4ef; }
.portal-footer { width: var(--portal-width); margin: 0 auto 24px; padding: 16px; background: var(--portal-header-background); color: #fff; border-color: #56616b; }
.portal-footer a,.portal-footer a:visited,.portal-footer a:hover { color: #fff; }
.portal-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.admin-account-panel { margin-top: 30px; font-size: 12px; scroll-margin-top: 12px; }
.admin-panel-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; padding: 0 2px 10px; }
.admin-panel-heading h2 { margin: 0; font-size: 16px; color: #354e63; }
.admin-panel-heading span { color: #667d8e; }
.admin-panel-tabs,.admin-panel-subtabs { display: flex; flex-wrap: wrap; gap: 3px; border-bottom: 1px solid #92abc0; }
.admin-panel-tabs a,.admin-panel-subtabs a { border: 1px solid #b4c8d8; border-bottom: 0; padding: 7px 13px; border-radius: 5px 5px 0 0; background: #e7eff6; color: #274b66; font-size: 13px; }
.admin-panel-tabs a.active,.admin-panel-subtabs a.active { background: #fff; font-weight: 600; border-color: #92abc0; margin-bottom: -1px; padding-bottom: 8px; }
.admin-panel-tabs a:hover,.admin-panel-subtabs a:hover { background: #fff; text-decoration: none; }
.admin-panel-content { border: 1px solid #92abc0; border-top: 0; padding: 20px 24px; background: #fff; min-height: 300px; }
.admin-panel-content h3 { font-size: 14px; margin: 4px 0 16px; }
.admin-panel-content > p { margin-top: 16px; }
.admin-panel-content .form-bottom { padding-top: 20px; }
.admin-panel-subtabs { margin: 20px 0 16px; }
.admin-panel-subtabs a { font-size: 12px; padding: 6px 10px; }
.admin-panel-subtabs a.active { padding-bottom: 7px; }
.admin-summary-fields { display: grid; grid-template-columns: 145px minmax(0,1fr); gap: 8px 12px; margin: 0; }
.admin-summary-fields dt { font-weight: 600; text-align: right; }
.admin-summary-fields dd { margin: 0; border-bottom: 1px solid #dce4eb; padding-bottom: 8px; overflow-wrap: anywhere; }
.admin-summary-fields dd a { margin-right: 8px; }
.admin-usage-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.admin-usage-heading span { color: #667d8e; }
.admin-panel-report { display: inline-block; margin-top: 12px; }
.admin-license-grid small { display: block; font-size: 11px; }
.admin-panel-note { font-size: 11px; color: #667d8e; text-align: right; margin-top: 18px; }
.invoice-grid { table-layout: fixed; }
.invoice-description { font-size: 13px; overflow-wrap: anywhere; }
.invoice-date { white-space: nowrap; font-size: 12px; }
.invoice-grid .command-column { width: 150px; }
.invoice-actions { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; margin: 12px 0; }
.invoice-actions a,.invoice-actions .command-link { font-size: 11px; }
.quote-page { max-width: 920px; margin: auto; }
.admin-search-result { border-bottom: 1px solid #b8cbd9; padding: 15px 0; overflow-wrap: anywhere; }
.admin-search-result > a { margin-right: 10px; }
.quote-page fieldset { border: 0; border-top: 1px solid #b8cbd9; padding: 20px 0; margin-top: 18px; }
.quote-page legend { padding-right: 12px; font-size: 19px; font-weight: 600; }
.quote-option { padding: 10px 0 8px 22px; }
.quote-option label { font-weight: 600; margin-left: 6px; }
.quote-option p { margin: 5px 0 0 24px; font-size: 13px; color: #637786; }
.quote-contact { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.quote-contact label,.quote-contact small { display: block; }
.quote-contact small { color: #637786; font-size: 12px; margin-top: 5px; }
.quote-contact input { width: 100%; min-width: 0; border: 1px solid #b8cbd9; border-radius: 4px; padding: 8px 10px; font: inherit; }
@media(max-width:600px) { .quote-contact { grid-template-columns: 1fr; } .quote-option { padding-left: 0; } }
.detail-tabs { display: flex; flex-wrap: wrap; gap: 3px; border-bottom: 1px solid #aec6d9; margin: -2px -10px 0; }
.detail-tabs a { font-size: 13px; color: #204763; background: #e2edf7; border: 1px solid #b5cce0; border-bottom: 0; border-radius: 4px 4px 0 0; padding: 5px 10px; }
.detail-tabs a.active { background: #fff; font-weight: 600; }
.details-page,.keys-page,.tools-page { min-height: 535px; display: flex; flex-direction: column; padding: 14px 4px 0; }
.form-title { display: flex; align-items: center; gap: 20px; margin: 0 0 20px; }
.form-title h1,.section-title { font-size: 18px; letter-spacing: 0; font-weight: 600; margin: 0; }
.form-title span { color: #687d8b; font-size: 12px; }
.legacy-fields { display: grid; grid-template-columns: 145px minmax(0,1fr); gap: 12px 14px; max-width: 720px; }
.legacy-fields label { text-align: right; padding-top: 8px; font-size: 13px; }
.legacy-fields input,.legacy-fields select,.keys-page input,.details-page textarea,.tools-page input { width: 100%; min-width: 0; border: 1px solid #b8cbd9; border-radius: 4px; padding: 8px 10px; font: inherit; color: #243e52; background: #fff; }
.legacy-fields input[readonly] { background: #fff; }
.legacy-fields input[type=checkbox] { width: auto; justify-self: start; align-self: center; }
.integration-code input[readonly] { width: 100%; border: 1px solid #b8cbd9; border-radius: 4px; padding: 8px 10px; }
.two-factor-slot { border: 1px solid #d6e2eb; border-radius: 5px; padding: 12px 16px; margin: 16px 0; }
.two-factor-slot legend { padding: 0 6px; font-weight: 600; }
.two-factor-slot > button { display: block; margin: 10px 0 0 auto; }
.legacy-fields div input + input { margin-top: 8px; }
.admin-contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin-top: 20px; }
.admin-contact-fields label { display: block; font-size: 13px; margin-bottom: 4px; }
.admin-contact-fields small { display: block; font-size: 10px; color: #637786; margin: 4px 0; }
.admin-contact-fields input,.admin-contact-fields select { width: 100%; border: 1px solid #b8cbd9; border-radius: 4px; padding: 8px 10px; font: inherit; color: #243e52; background: #fff; }
.legacy-fields small,.key-fields small { display: block; font-size: 11px; color: #637786; line-height: 1.45; margin: 5px 0; }
.details-page textarea { display: block; margin-top: 6px; max-width: 720px; }
.form-bottom { margin-top: auto; padding-top: 24px; display: flex; justify-content: end; align-items: center; gap: 20px; }
.form-bottom .button { min-width: 120px; }
.form-bottom a { font-size: 12px; }
.preview-form-note,.key-regeneration-note { font-size: 11px; text-align: right; color: #64798a; margin: 10px 0 0; }
.keys-page h2 { font-size: 14px; margin: 28px 0 12px; }
.key-fields { display: grid; grid-template-columns: 145px minmax(0,1fr); gap: 16px 14px; margin-top: 16px; }
.key-fields label,.key-fields > span { text-align: right; font-size: 13px; padding-top: 8px; }
.key-copy { display: flex; align-items: center; gap: 10px; min-width: 0; }
.key-copy input,.key-copy > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.key-copy .button { font-size: 11px; min-height: 32px; padding: 5px 10px; }
.keys-page > p { margin-top: 20px; font-size: 12px; }
.other-key { margin: 12px 0; font-size: 12px; }
.tools-page .portal-grid { margin-bottom: 20px; }
.tools-page p { font-size: 12px; }
.tools-page .form-bottom .button { min-width: 250px; }
.integration-footer { justify-content:space-between; align-items:flex-end; flex-wrap:wrap; }
.integration-documentation { flex:1 1 280px; max-width:650px; font-size:14px; }
.integration-documentation p { margin:0 0 16px; }
.integration-documentation-action { text-align:center; margin:24px 0; }
.page-assist-installation-note { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:12px 0 24px; }
.page-assist-installation-note p { flex:1 1 320px; margin:0; }
.page-assist-edit-mode { display:flex; align-items:center; justify-content:center; gap:10px; border:1px solid #b8cbd9; border-radius:4px; padding:18px; margin:20px auto; max-width:600px; }
.page-assist-steps { padding-left:24px; }
.page-assist-steps li { margin:12px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.admin-start { display: grid; grid-template-columns: 466px minmax(0,1fr); gap: 24px; align-items: start; }
.admin-search { display: grid; grid-template-columns: 210px 240px; gap: 8px 16px; }
.admin-search-input { grid-column: 1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 16px; align-items:start; }
.admin-search-input > div > label { display:block; margin-bottom:4px; }
.admin-search-input input[type=text],.admin-search-input select { width:100%; box-sizing:border-box; padding:5px; border:1px solid #aabfce; border-radius:3px; }
.admin-search-input small { display: block; font-size: 11px; color: #64798a; }
.admin-search-input .live-check { display: block; font-size: 12px; }
.admin-search .button { grid-column:1 / -1; font-size: 12px; min-height: 28px; padding: 4px 8px; }
.admin-command-grid { display: grid; grid-template-columns: 210px 240px; gap: 4px 16px; margin-top: 18px; }
.admin-command-grid .button { min-height: 48px; font-size: 13px; }
.admin-search-note { margin-top: 14px; font-size: 11px; color: #697f8e; }
@media (max-width: 740px) {
    .portal-brand strong { font-size: 23px; }
    .portal-brand span span { display: block; margin-left: 0; font-size: 12px; }
    .portal-tabs a { font-size: 13px; padding: 6px 8px; }
    .portal-content { padding: 14px 16px 20px; }
    .license-page { min-height: 540px; }
    .license-footer { flex-wrap: wrap; align-items: start; gap: 16px; }
    .license-buttons { width: 100%; }
    .portal-grid .command-column { width: 90px; }
    .portal-grid td { padding: 12px 8px; }
    .license-description strong, .license-quantity { font-size: 14px; }
    .legacy-fields,.key-fields { grid-template-columns: 110px minmax(0,1fr); }
    .admin-summary-fields { grid-template-columns: 115px minmax(0,1fr); }
    .admin-panel-content { padding: 16px; }
    .admin-license-grid,.admin-email-grid { min-width: 600px; }
    .invoice-grid { min-width: 600px; }
    .admin-start { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .portal-window { margin-top: 8px; }
    .portal-content { padding: 12px 12px 18px; }
    .portal-header { padding: 8px 10px; gap: 8px; }
    .portal-help { font-size: 10px; }
    .portal-account-links { margin-left: 46px; }
    .portal-brand { gap: 6px; }
    .portal-brand strong { font-size: 21px; }
    .portal-brand img { width: 40px; height: 40px; }
    .portal-grid .command-column { width: 78px; }
    .license-buttons { justify-content: stretch; }
    .license-buttons .button { flex: 1; }
    .buy-button { min-width: 0; }
    .legacy-fields,.key-fields { grid-template-columns: 1fr; gap: 6px; }
    .admin-contact-fields { grid-template-columns: 1fr; }
    .legacy-fields label,.key-fields label,.key-fields > span { text-align: left; padding-top: 8px; }
    .form-title { flex-wrap: wrap; gap: 6px; }
    .detail-tabs { margin-left: 0; margin-right: 0; }
    .detail-tabs a { padding: 6px 7px; font-size: 12px; }
    .admin-summary-fields { grid-template-columns: 1fr; gap: 4px; }
    .admin-summary-fields dt { text-align: left; }
    .admin-summary-fields dd { padding-bottom: 12px; }
    .admin-panel-tabs a { padding: 6px 8px; font-size: 12px; }
    .admin-search,.admin-command-grid { grid-template-columns: 1fr; }
    .admin-search-input { grid-template-columns:1fr; }
}
.preserve-lines { white-space: pre-line; }
.no-wrap { white-space: nowrap; }
.admin-data-key { font-size: 11px; color: #526a7c; }
.admin-detailed-grid { min-width: 850px; font-size: 12px; }
.admin-invoice-details .invoice-line-grid { min-width:0; }
.admin-panel-content h4 { font-size: 13px; margin: 18px 0 8px; }
.admin-panel-content .table-wrap { max-width: 100%; }
.usage-number-grid { width: max-content; min-width: 100%; font-size: 11px; }
.usage-number-grid th,.usage-number-grid td { padding: 7px 3px; white-space: nowrap; text-align: right; }
.usage-number-grid th small { display: block; font-size: 10px; font-weight: 400; }
.usage-number-grid th:first-child { position: sticky; left: 0; z-index: 1; background: #edf4fa; color: #243e52; text-align: left; }
.admin-license-record { margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid #d8e4ee; }
.admin-license-record h4 { margin: 8px 0; }
.admin-license-details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px 18px; font-size: 12px; margin: 12px 0; }
.admin-license-details span { overflow-wrap: anywhere; }
.admin-invoice-details { margin: 8px 0; font-size: 12px; text-align: left; }
.admin-invoice-details summary { cursor: pointer; color: #155481; }
.admin-invoice-details p { margin: 7px 0; overflow-wrap: anywhere; }
.admin-invoice-details .portal-grid { margin: 8px 0; }
@media (max-width: 740px) { .admin-license-details { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 480px) { .admin-license-details { grid-template-columns: 1fr; } }
.admin-record-form { max-width: 760px; }
.admin-record-form > label:not(.check-row) { display: block; font-weight: 600; margin: .85rem 0 .35rem; }
.admin-record-form input:not([type=checkbox]):not([type=hidden]) { width: 100%; box-sizing: border-box; font: inherit; padding: .6rem .7rem; border: 1px solid #c5ccd6; border-radius: 6px; background: white; }
.admin-record-form .check-row { display: inline-flex; gap: .4rem; align-items: center; margin: .7rem 1rem .7rem 0; }
.admin-record-form h2 { font-size: 1.15rem; margin: 1.6rem 0 .7rem; }
.admin-record-form .field-help { color: var(--muted, #667085); font-size: .9rem; margin: .25rem 0 1rem; }
.admin-record-form output { display: block; padding: .55rem 0; overflow-wrap: anywhere; }
.invoice-edit-line { min-width: 0; margin: 1.2rem 0; padding: 1rem; border: 1px solid #c5ccd6; border-radius: 6px; }
.invoice-edit-line > label { display: block; font-weight: 600; margin: .85rem 0 .35rem; }
.invoice-edit-line legend { font-weight: 600; padding: 0 .4rem; }
.admin-date-command { display: flex; gap: .6rem; align-items: center; }
.admin-date-command input { min-width: 0; flex: 1; }
.admin-date-command .button { flex-shrink: 0; white-space: nowrap; }
.prices-admin section { margin-top:24px; }
.price-edit-form label { display:block; font-weight:600; margin:.85rem 0 .35rem; }
.price-edit-form .settings-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.price-edit-form textarea { width:100%; min-height:620px; box-sizing:border-box; padding:.6rem .7rem; border:1px solid #c5ccd6; border-radius:6px; font-family:Consolas,"Courier New",monospace; font-size:14px; line-height:1.45; tab-size:2; }
.price-edit-form small { display:block; font-weight:400; margin-top:5px; color:#475569; }
@media(max-width:560px) { .price-edit-form .settings-grid { grid-template-columns:minmax(0,1fr); } }
.phone-entry, .phone-messages { max-width: 920px; }
.phone-types { min-width: 0; margin-top: 1rem; border: 1px solid #c5ccd6; border-radius: 6px; padding: 1rem; }
.phone-types label { display: block; margin: .5rem 0; }
.phone-filters { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin: 1rem 0; }
.phone-call { border: 1px solid #c5ccd6; border-left: 4px solid #1d6591; border-radius: 6px; padding: 1rem; margin: 1rem 0; overflow-wrap: anywhere; }
.phone-call-done { border-left-color: #6b7280; }
.phone-call h2 { font-size: 1.1rem; }
.phone-call form { display: grid; gap: .5rem; }
.phone-call textarea { width: 100%; box-sizing: border-box; padding: .6rem; }
.phone-call button { justify-self: start; }
.phone-body { white-space: pre-wrap; }
.phone-routing { max-width: 100%; margin-top: 1rem; }
.phone-routing table { min-width: 660px; }
.phone-routing td { text-align: center; }
.phone-routing caption { text-align: left; font-weight: 600; margin: .5rem 0; }

[hidden] { display: none !important; }
.site-logo-image { width: 58px !important; height: auto !important; object-fit: contain; }
.brand-wordmark { display:block; font-size:28px !important; font-weight:300 !important; letter-spacing:-.7px; white-space:nowrap; }
.portal-brand .brand-subtitle { display:block; margin:3px 0 0; font-size:12px; }
.account-view-tabs { display:flex; gap:4px; padding:20px 8px 0; border-bottom:1px solid var(--border); background:#fff; }
.account-view-tabs a { padding:10px 26px; border:1px solid var(--border); border-bottom:0; border-radius:8px 8px 0 0; color:var(--ink); }
.account-view-tabs .active { background:var(--blue-light); font-weight:700; }
.account-view-tabs + .portal-workspace { margin-top:0; }
a.admin-search-result { display:block; color:var(--ink); text-decoration:none; }
a.admin-search-result:hover { background:var(--blue-light); border-color:var(--blue); }

.integration-editor { max-width:900px; }
.integration-editor input:not([type=checkbox]):not([type=hidden]) { border:1px solid #abc3d5; border-radius:3px; padding:7px; }
.integration-editor input[type=text], .integration-editor input:not([type]) { width:100%; }
.integration-editor small { display:block; color:var(--muted); margin:6px 0 12px; }
.integration-editor fieldset { border:1px solid var(--border); margin:20px 0; padding:16px; }
.integration-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; margin-top:18px; }
.integration-columns input[type=number] { width:90px; margin-right:12px; }
.integration-columns h2 { margin-top:16px; }
.integration-origin { margin-top:22px; }
@media(max-width:600px) { .integration-columns { grid-template-columns:1fr; } .site-logo-image { width:44px !important; } .brand-wordmark { font-size:22px !important; } }

.address-fields { max-width:720px; }
.address-field { display:grid; grid-template-columns:145px minmax(0,1fr); gap:14px; margin-bottom:12px; }
.address-field label { padding-top:7px; }
.address-field input { width:100%; border:1px solid #abc3d5; border-radius:3px; padding:7px; }
.address-field input + input { margin-top:8px; }
@media(max-width:480px) { .address-field { grid-template-columns:1fr; gap:4px; } }

.admin-dashboard { margin-top:0; }
.admin-dashboard.recent-viewed .admin-dashboard-sections { grid-template-columns:1fr; }
.admin-dashboard-sections { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-top:20px; min-height:440px; }
.admin-dashboard-sections th,.admin-dashboard-sections td { padding:6px 8px; font-size:12px; }
.admin-dashboard-sections td:nth-child(2) { white-space:nowrap; }
@media(max-width:900px) { .admin-dashboard-sections { grid-template-columns:1fr; } }

.grid-export-heading { position:relative; padding-right:42px !important; }
.grid-export-button { position:absolute; top:3px; right:5px; display:inline-grid; place-items:center; width:26px; height:26px; margin:0; padding:4px; border:0; border-radius:4px; color:inherit; background:transparent; cursor:pointer; line-height:1; }
.grid-export-button svg { display:block; width:18px; height:18px; }
.grid-export-button:hover { background:rgba(128,128,128,.2); }
.grid-export-button:focus-visible { outline:2px solid currentColor; outline-offset:1px; }
.grid-export-button:disabled { opacity:.5; cursor:wait; }
.grid-export-manual-hint { margin:4px 0 8px; font-size:12px; color:var(--muted); }
.grid-export-manual { display:block; width:100%; max-width:100%; min-height:100px; margin:8px 0; padding:8px; font-family:Consolas,monospace; }
@media print { .account-portal { background:#fff; } .portal-footer { background:#fff; color:#000; border-color:#ccc; } .portal-footer a,.portal-footer a:visited,.portal-footer a:hover { color:#000; } .grid-export-button, .grid-export-status, .grid-export-manual, .grid-export-manual-hint { display:none !important; } .grid-export-heading { padding-right:12px !important; } }
/* Reports keep the original menu groups and columns while allowing horizontal grid scrolling. */
.reports-page { max-width: 1280px; margin: 0 auto; }
.report-menu { display: grid; grid-template-columns: repeat(2,minmax(0,260px)); gap: .5rem; }
.report-menu .button { text-align: center; }
.report-return-form { display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; margin-bottom: 1.5rem; }
.report-return-form input[name=data] { width: 120px; }
.operational-report { margin: 1.6rem 0 2rem; }
.report-grid { min-width: 650px; }
.report-grid td { vertical-align: top; }
.report-detail { margin-top: .35rem; font-size: .86rem; overflow-wrap: anywhere; }
.outstanding-report .report-grid td { color: #000; }
.outstanding-report .report-grid a { color: #0000ff; }
.outstanding-report .report-detail-warning,
.outstanding-report .report-grid td.report-outstanding-amount { color: #ff0000; font-weight: 700; }
.outstanding-report .report-detail-paymenthistory { color: #808080; font-weight: 700; }
.outstanding-report .report-detail-terms { color: #1f8508; font-weight: 700; }
.outstanding-report .report-detail-annualusage { color: #038570; font-weight: 700; }
.outstanding-report .report-detail-emphasis { font-weight: 700; }
.report-actions { min-width: 85px; }
.report-actions a,.report-actions span { display: block; margin-bottom: .4rem; }
.debug-note { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; margin: 0; }
.debug-entry { margin-bottom:16px; }
.debug-report-text hr { margin:8px 0; }
.sales-summary-page .report-section td { white-space:pre-line; }
.usage-report .page-heading { margin-bottom:10px; }
.usage-report .card-header, .usage-report .card-body { padding:8px 12px; }
.usage-report .card + .card { margin-top:12px; }
.usage-report .public-license-summary h3, .usage-report .public-license-summary p { margin:4px 0; }
@media(max-width:600px) { .report-menu { grid-template-columns: repeat(2,minmax(0,1fr)); } .report-menu .button { font-size: .85rem; padding: .65rem .45rem; } }
.comparison-group { margin: 2rem 0; }
.comparison-charts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.exchequer-report .comparison-charts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.exchequer-report .report-section { max-width:800px; }
.exchequer-report { overflow-wrap:anywhere; }
.exchequer-report .button-row { display:flex; flex-wrap:wrap; gap:8px; }
.accounting-report { overflow-wrap:anywhere; }
.accounting-report .button-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.accounting-tabs { display:flex; flex-wrap:wrap; gap:4px; margin:16px 0; border-bottom:1px solid #a8c4dc; }
.accounting-tabs a { padding:10px 14px; border:1px solid #a8c4dc; border-bottom:0; border-radius:6px 6px 0 0; background:#edf4fa; }
.accounting-tabs a.active { color:#17324b; background:#dcecf8; font-weight:700; }
.accounting-report .comparison-charts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sector-chart svg { max-width:240px; margin:0 auto 12px; }
.sector-key { display:inline-block; width:10px; height:10px; margin-right:6px; border-radius:2px; }
@media(max-width:1000px) { .accounting-report .comparison-charts { grid-template-columns:1fr; } }
.comparison-chart { padding: 1rem; border: 1px solid #d6e3ed; border-radius: 10px; background: #fff; min-width: 0; }
.comparison-chart h3 { font-size: 1rem; margin: 0 0 .7rem; }
.comparison-chart svg { width: 100%; height: auto; display: block; }
.comparison-legend { display: flex; flex-wrap: wrap; gap: .6rem; font-size: .75rem; }
.comparison-legend i { display: inline-block; width: .65rem; height: .65rem; margin-right: .3rem; border-radius: 2px; }
.chart-axis { font-size: 11px; fill: #415971; }
[data-chart-value] { cursor:help; }
[data-chart-value]:focus-visible { outline:2px solid #172f46; outline-offset:3px; }
.chart-tooltip { position:fixed; z-index:1000; pointer-events:none; width:max-content; max-width:calc(100vw - 16px); padding:8px 12px; border-radius:6px; background:#172f46; color:#fff; font-size:14px; line-height:1.4; overflow-wrap:anywhere; box-shadow:0 2px 8px #0003; }
.comparison-figures summary { cursor: pointer; margin-top: .5rem; }
.comparison-figures .portal-grid { font-size: .8rem; }
.profit-grid { white-space: nowrap; font-size: .8rem; }
.profit-grid td { vertical-align: top; }
.profit-totals { font-weight: 700; background: #eaf2f8; }
.report-return-form input[type=number] { max-width: 180px; }
@media(max-width:1000px) { .comparison-charts { grid-template-columns: 1fr; } }
@media(max-width:800px) { .exchequer-report .comparison-charts { grid-template-columns:1fr; } }
/* Reserve the scrollbar and action feedback space across tab changes. */
html { scrollbar-gutter:stable; }
.site-header .header-right { flex-direction:column; align-items:flex-end; gap:.3rem; }
.header-text-links { display:flex; gap:1rem; font-size:.8rem; }
.admin-panel-content { min-height:620px; }
.source-tabs { margin-top:14px; }
.action-feedback { flex:1; min-width:0; text-align:right; font-size:12px; }
.action-feedback p { margin:0; }
.action-feedback .validation-summary-errors { text-align:left; }
.action-feedback.validation-summary-errors { text-align:left; }
.action-feedback.validation-summary-errors ul { margin:0; padding-left:20px; }
.action-feedback.validation-summary-errors li { text-align:left; }
.checkout-step .action-feedback { text-align:left; }
.saved-card-choice { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; margin:24px 0; }
.renewal-notes .one-note-button,.one-note-button { background:#1267a4; color:#fff; padding:8px 14px; margin:6px 0; }
.one-note-button:hover { background:#0d5285; color:#fff; }
.price-shortcuts { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:16px 0; }
.price-shortcut-group { display:grid; gap:4px; min-width:150px; }
.price-shortcuts .button { text-align:center; padding:8px 12px; }
.price-shortcuts .active { background:#1267a4; color:#fff; }
.price-shortcuts .button.active { outline:2px solid #173d27; outline-offset:1px; }
.invoice-note-row small { grid-column:2 / -1; }
.legacy-editor-page .editor-actions.mail-on-stop-actions { flex-wrap:nowrap; align-items:center; }
.mail-merge-page.legacy-editor-page .editor-actions.mail-on-stop-actions input { flex:1 1 100px; width:auto; min-width:0; }
.mail-on-stop-actions .button { flex:0 0 auto; white-space:nowrap; }
.recent-emails h4 { margin:12px 0 6px; }
.account-activity-history { margin-top:16px; }
.price-view-pane[hidden] { display:none; }
.history-type-filter { display:flex; flex-wrap:wrap; gap:8px 16px; padding:12px; border:1px solid #d4dce4; margin:8px 0; }
.history-type-filter label { display:flex; align-items:center; gap:5px; font-size:12px; }
.history-type-filter input { width:auto; }
.history-entry { border-bottom:1px solid #d4dce4; padding:10px 0; }
.history-entry summary { cursor:pointer; }
.history-type { font-weight:600; }
.history-entry[hidden] { display:none; }
.history-body,.history-changes td { overflow-wrap:anywhere; max-width:450px; }
.form-bottom > .button, .form-actions > .button { flex:none; }
.renewal-view .license-page { min-height:0; }
.renewal-view .license-title-line, .renewal-view .license-dates-line { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:4px 14px; }
.renewal-view .license-expiry-date { color:#000; font-weight:700; }
.renewal-view .license-expiry.overdue .license-expiry-date { color:inherit; }
.license-on-stop { font-size:17px; font-weight:700; }
.renewal-view .license-grid td { padding:10px 12px; }
.license-grid > tbody > tr + tr > td { border-top:3pt solid #a0a0a0; }
.renewal-view .license-credit-pack, .renewal-view .license-payment-notice { margin-top:8px; padding-top:6px; }
.renewal-view .license-bottom { padding-top:12px; }
.renewal-view .license-footer { justify-content:flex-end; }
.renewal-overdue { font-size:17px; }
.renewal-summary { display:flow-root; margin:14px 0; font-size:12px; }
.renewal-summary h2 { font-size:16px; margin:0 0 6px; overflow-wrap:anywhere; }
.renewal-account-line { display:flex; flex-wrap:wrap; align-items:center; gap:3px 12px; margin-bottom:3px; }
.renewal-account-line h2 { min-width:0; max-width:100%; margin:0; }
.renewal-buy { float:right; position:relative; z-index:1; margin:0 0 4px 12px; }
.renewal-buy .buy-button { margin:0; }
.renewal-terms-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:4px 0; }
.renewal-summary .renewal-terms-row .renewal-terms { flex:1 1 320px; min-width:0; margin:0; }
.renewal-terms-row .buy-button { flex:none; margin:0; }
.renewal-summary p { margin:3px 0; }
.renewal-summary .renewal-terms { color:#ad2f2b; font-size:16px; font-weight:600; line-height:1.5; margin:10px 0; }
.renewal-last-paid { display:inline-block; margin-left:12px; color:#b32d24; font-weight:600; }
.renewal-accounting { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.renewal-accounting a { white-space:nowrap; }
.renewal-history { margin:24px 0; font-size:12px; line-height:1.65; }
.renewal-history h3 { color:#b32d24; font-size:16px; font-weight:600; margin:0 0 6px; }
.renewal-history-invoice { display:flex; align-items:baseline; gap:8px; margin-bottom:4px; }
.renewal-history-invoice .preserve-lines { min-width:0; overflow-wrap:anywhere; font-size:14px; }
.renewal-history-invoice .command-link { flex:none; margin:0; }
.renewal-history-entry { display:flex; align-items:baseline; gap:8px; padding-left:18px; }
.renewal-history-entry span { min-width:0; overflow-wrap:anywhere; }
.renewal-history-entry .command-link { flex:none; margin:0; }
.renewal-notes { margin:8px 0; padding-inline-start:24px; color:#b32d24; }
.renewal-notes-heading { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; margin-bottom:3px; }
.renewal-notes-heading h3 { font-size:16px; font-weight:600; margin:0; }
.renewal-notes .notes-preview, .renewal-notes .notes-full { font-size:14px; }
.renewal-notes-heading .button { font-size:12px; }
.renewal-view .invoice-grid td { padding:8px 12px; }
.renewal-view .invoice-actions { gap:4px 12px; margin:6px 0; }
.renewal-view .admin-invoice-details { margin-top:6px; }
.status-license-invoice { margin-top:8px; padding-top:8px; border-top:1px solid #d9e1e7; font-size:12px; }
.status-license-payment.overdue { font-size:16px; }
.status-license-invoice-description { margin:4px 0; }
.invoice-line-description { margin:4px 0; }
.public-license-summary + .public-license-summary { border-top:3pt solid #a0a0a0; padding-top:10px; margin-top:10px; }
.status-license-invoice .invoice-actions,.license-payment-notice .invoice-actions { justify-content:center; flex-wrap:wrap; }
.status-invoices { margin-top:12px; border:1px solid #cedce7; background:#fff; }
.status-invoices > summary { cursor:pointer; padding:8px 12px; font-weight:bold; }
.status-invoices > .table-wrap { margin:0; }
.renewal-usage { margin:18px 0; }
.renewal-usage h3 { font-size:13px; margin:0 0 6px; }
.renewal-usage .usage-number-grid th:first-child { background:#4a5965; color:#fff; }
.renewal-sales { margin:18px 0; border:1px solid #cedce7; background:#fff; }
.renewal-sales > summary { cursor:pointer; padding:8px 12px; font-weight:bold; }
.renewal-sales-content { padding:0 12px 12px; }
.renewal-sales-content > p { margin:0 0 6px; }
.status-daily-usage { margin:12px 0; border:1px solid #cedce7; background:#fff; }
.status-daily-usage > summary { cursor:pointer; padding:8px 12px; font-weight:bold; }
.status-daily-content { padding:0 12px 12px; }
.status-daily-content > p { margin:0 0 6px; }
.sales-number-grid { white-space:nowrap; }
.sales-number-grid tbody th { position:sticky; left:0; z-index:1; background:#4a5965; color:#fff; text-align:left; }
.renewal-scan-instructions { margin-top:24px; max-width:760px; font-size:13px; }
.renewal-scan-instructions p { margin:6px 0; }
.renewal-scan-rules, .renewal-scan-rules > div { padding-left:20px; }
.reseller-customers-grid td { padding:6px 10px; line-height:1.35; vertical-align:middle; }
.reseller-customers-grid .row-commands a, .reseller-customers-grid .row-commands .command-link { display:inline-block; margin:2px 4px; }
.reseller-customers-grid th a { color:inherit; text-decoration:none; }
.reseller-customers-grid th a:hover { text-decoration:underline; }
.reseller-customers-grid .reseller-date { width:120px; white-space:nowrap; }
.reseller-customer-search { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:14px 0; }
.reseller-customer-search input[type=search] { flex:1 1 220px; min-width:0; max-width:420px; padding:8px 10px; border:1px solid #b8cbd9; border-radius:4px; font:inherit; }
.reseller-customer-search .button { min-height:36px; padding:6px 16px; }
.settings-grid { display:grid; grid-template-columns:minmax(140px,1fr) minmax(180px,2fr); gap:10px 16px; }
.settings-grid input { width:100%; box-sizing:border-box; }
@media(max-width:560px) {
    .settings-grid { grid-template-columns:1fr; }
    .account-view-tabs { padding:8px 6px 0; }
    .account-view-tabs a { padding:8px 10px; }
}
.license-credit-pack,.license-payment-notice { margin-top:12px; padding-top:10px; border-top:1px solid #d9e1e7; font-size:12px; }
.license-credit-pack strong { font-size:inherit; }
.mail-recipient { display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px; align-items:center; margin:12px 0; }
.mail-full-width { width:100%; display:block; margin:8px 0 18px; }
@media(max-width:600px) { .mail-recipient { grid-template-columns:1fr; gap:4px; } }

.mail-merge-page { max-width:1070px; margin:auto; padding:24px; background:#fff; border:3pt solid #a0a0a0; border-radius:4px; }
.mail-merge-page h2 { margin-top:26px; }
.mail-invoice-summary { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.mail-merge-page select[name="Input.TemplateId"] { background:#fff3fa; }
.mail-merge-page select[name="Input.PaymentTerms"] { background:#effbef; }
.mail-merge-page .mail-recipient { display:grid; grid-template-columns:170px 1fr; gap:16px; align-items:center; margin:10px 0; }
.mail-merge-page input[type=checkbox] { width:24px; height:24px; vertical-align:middle; }
.mail-merge-page .mail-merge-fields { max-width:none; grid-template-columns:150px 1fr 150px 1fr; }
.email-price-text pre { background:#fff; padding:18px; border:1px solid #cedce7; white-space:pre-wrap; font:inherit; line-height:1.6; }
.formatted-price-text { background:#fff; padding:20px; border:1px solid #cedce7; margin:16px 0; overflow-wrap:anywhere; }
@media(max-width:700px) { .formatted-price-text { padding:10px; } .formatted-price-text section { margin-left:0 !important; } }
@media(max-width:700px) { .mail-merge-page .mail-merge-fields { grid-template-columns:120px 1fr; } }

.paf-return-text { white-space: pre; overflow: auto; max-height: 32rem; font: .85rem Consolas, monospace; }

/* Original administration form groups and control order. */
.legacy-editor-page { font-size:14px; }
.legacy-editor-page h1 { font-size:22px; margin:0 0 20px; }
.editor-two-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.editor-two-columns > * { min-width:0; }
.editor-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin:24px 0 12px; }
.editor-section-heading h2,.invoice-editor-page h2 { font-size:20px; margin:0; }
.editor-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.legacy-editor-page input:not([type=checkbox]):not([type=hidden]),.legacy-editor-page select,.legacy-editor-page textarea,.notes-edit-fields input,.notes-edit-fields textarea,.notes-top-fields input,.notes-top-fields select { width:100%; min-width:0; padding:8px 12px; border:1px solid #bcc6ce; border-radius:4px; background:#fff; color:#243e52; font:inherit; }
.legacy-editor-page input[readonly] { background:#f1f3f5; }
.legacy-editor-page label,.notes-top-fields label,.notes-edit-fields label { display:block; margin:0 0 6px; font-weight:400; }
.legacy-editor-page small,.notes-top-fields small,.notes-edit-fields small { display:block; margin-top:4px; color:#637786; font-size:12px; }
.notes-top-fields { margin-bottom:20px; }
.notes-top-fields .terms-select { background:lightgreen; }
.notes-edit-fields > input,.notes-edit-fields > textarea { margin-bottom:16px; }
.mail-invoice-summary.editor-two-columns { padding:16px; border:1px solid #ced4da; align-items:start; font-size:13px; }
.mail-invoice-summary p { margin:6px 0; }
.editor-license { margin:8px 0; }
.editor-license-summary { font-size:12px; line-height:1.5; }
.mail-history { margin-top:12px; font-size:12px; }
.mail-merge-page .mail-recipient { grid-template-columns:30px minmax(0,1fr); gap:12px; }
.mail-recipient-label { margin:8px 0 4px 42px; font-size:12px; }
.mail-merge-page select[name="Input.TemplateId"] { background:lightpink; }
.mail-merge-page select[name="Input.PaymentTerms"] { background:lightgreen; }
.editor-field { margin:16px 0; }
.mail-confirmation { display:flex !important; align-items:center; gap:8px; color:#b32d24; }
.invoice-editor-page { max-width:1070px; margin:auto; }
.invoice-edit-top { grid-template-columns:minmax(0,5fr) minmax(0,7fr); margin-bottom:24px; }
.invoice-date-row { display:grid; grid-template-columns:145px minmax(0,1fr); gap:12px; align-items:center; margin-bottom:8px; }
.invoice-date-row label { margin:0; }
.invoice-date-row .editor-actions { flex-wrap:nowrap; }
.invoice-terms-days { text-align:right; margin:4px 0; }
.invoice-line-fields h2 { margin:20px 0 14px; }
.invoice-edit-row { display:grid; grid-template-columns:150px minmax(100px,220px) minmax(0,1fr); gap:16px; align-items:center; margin:14px 0; }
.invoice-edit-row.wide { grid-template-columns:150px minmax(0,1fr); }
.invoice-edit-row label { margin:0; }
.invoice-save-actions { justify-content:center; margin:24px 0 12px; }
.invoice-save-actions .button { min-width:140px; }
.invoice-extra-info { margin:12px 0 20px; }
.invoice-extra-info summary { color:#1263a0; cursor:pointer; }
.invoice-extra-info h2 { margin:16px 0; }
.invoice-price-tools > section { padding:16px; border:1px solid #d3dce3; border-radius:5px; background:#f7f8fa; }
.invoice-price-tools h2 { font-size:14px; font-weight:700; margin:0 0 10px; }
.invoice-price-choices p { margin:6px 0; font-size:12px; }
.calculator-quantity,.calculator-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:10px 0; font-size:12px; }
.calculator-quantity input { max-width:65px; }
.calculator-row label { width:65px; margin:0; }
.calculator-row input { max-width:95px; }
.calculator-row output { min-width:65px; }
.calculator-quantity label { margin:0; }
.invoice-help { margin:18px 0; text-align:center; font-size:12px; color:#637786; }
.invoice-other-actions { justify-content:center; }
@media(max-width:700px) {
    .editor-two-columns,.invoice-edit-top { grid-template-columns:1fr; gap:16px; }
    .mail-merge-page { padding:16px; }
    .invoice-edit-row { grid-template-columns:120px minmax(0,1fr); gap:8px 12px; }
    .invoice-edit-row small { grid-column:2; }
    .invoice-edit-row.wide { grid-template-columns:120px minmax(0,1fr); }
}
@media(max-width:440px) {
    .invoice-edit-row,.invoice-edit-row.wide,.invoice-date-row { grid-template-columns:1fr; }
    .invoice-edit-row small { grid-column:1; }
}
.compact-editor .main-content { width:var(--portal-width); max-width:none; min-height:0; margin:6px auto; padding:6px; background:#fff; }
.compact-editor .legacy-editor-page { max-width:1070px; min-height:0; margin:auto; padding:8px; border:3pt solid #a0a0a0; border-radius:4px; background:#fff; line-height:1.25; }
.compact-editor .legacy-editor-page .form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:16px 0; padding:6px 0; }
.compact-editor .legacy-editor-page .form-actions .button { min-height:38px; padding:8px 16px; }
.compact-editor .mail-merge-page { max-width:1070px; padding:8px; border-radius:4px; line-height:1.25; }
.compact-editor .editor-section-heading { gap:6px; margin:6px 0 4px; }
.compact-editor .editor-section-heading h2 { font-size:14px; margin:0; }
.compact-editor .editor-section-heading .mail-merge-heading { font-size:14px; }
.compact-editor .editor-two-columns { gap:10px; }
.compact-editor .mail-invoice-summary { padding:6px; }
.compact-editor .mail-invoice-summary p,.compact-editor .editor-license { margin:3px 0; }
.compact-editor .editor-license-summary { line-height:1.25; }
.compact-editor .mail-history { margin-top:4px; }
.compact-editor .mail-recipient { gap:6px; margin:3px 0; }
.compact-editor .mail-recipient-label { margin:2px 0 1px 36px; }
.compact-editor .legacy-editor-page input:not([type=checkbox]):not([type=hidden]),.compact-editor .legacy-editor-page select,.compact-editor .legacy-editor-page textarea { padding:4px 6px; }
.compact-editor .legacy-editor-page label { margin-bottom:2px; }
.compact-editor .legacy-editor-page .button { min-height:0; padding:5px 9px; font-size:13px; }
.compact-editor .legacy-editor-page input[type=checkbox] { width:18px; height:18px; }
.compact-editor .editor-field { margin:6px 0; }
.mail-template-choice { display:flex; align-items:center; gap:6px; }
.mail-template-choice select { flex:1; }
.mail-template-choice .button { flex:none; white-space:nowrap; }
.accounting-icon { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; }
.accounting-icon img { width:16px; height:16px; }
@media(min-width:521px) { .compact-editor .editor-two-columns { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }

.purchase-wizard { max-width:780px; margin:0 auto; padding:16px; }
.checkout-step { min-height:clamp(520px,calc(100dvh - 220px),680px); padding:8px 16px 16px; display:flex; flex-direction:column; }
.checkout-step h1 { font-size:24px; margin:0 0 8px; }
.checkout-step > h1,.checkout-step > .purchase-account,.checkout-step > nav { flex:none; }
.checkout-form { flex:1; min-height:0; display:flex; flex-direction:column; }
.checkout-body { flex:1; min-height:0; overflow:visible; }
.checkout-step .checkout-actions { flex:none; display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:12px; margin:0; padding:16px 0 0; border-top:1px solid #d4dce4; }
.checkout-actions .button { text-align:center; font-size:13px; line-height:20px; min-height:42px; padding:10px 18px; }
.checkout-actions .admin-action, .checkout-actions .invoice-send { order:1; }
.checkout-actions label { display:flex; align-items:center; gap:8px; }
@media(max-width:650px) { .checkout-step { padding:10px; } .checkout-step .checkout-actions { gap:8px; } }
@media print { .checkout-step { min-height:0; } .checkout-body { overflow:visible; } .checkout-actions { display:none !important; } }
.purchase-wizard h1 { font-size:24px; margin:0 0 8px; }
.purchase-account { margin:0 0 12px; }
.purchase-invoice-email { text-align:right; color:#b40000; }
.purchase-use-choice { display:flex; align-items:flex-start; gap:20px; margin:28px 0; }
.purchase-use-choice h2 { font-size:20px; margin:0 0 6px; }
.purchase-use-choice p { margin:0 0 12px; }
.purchase-use-choice .button { min-width:320px; text-align:center; }
.purchase-use-choice img,.purchase-package-intro img { flex:none; }
.purchase-order-note { max-width:600px; margin:20px auto; text-align:center; color:var(--muted); }
.purchase-reseller-note { color:#b40000; margin-left:84px; }
.purchase-package-tabs { margin:16px 0; flex-wrap:wrap; }
.purchase-package-intro { display:flex; align-items:center; gap:20px; }
.purchase-package-options { min-width:0; margin:12px 0 16px 84px; padding:16px; border:1px solid #c7d5e8; }
.purchase-package-options>legend { padding:0 6px; font-weight:bold; }
.purchase-credit-columns { display:grid; grid-template-columns:repeat(3,minmax(max-content,1fr)); gap:16px; overflow-x:auto; }
.purchase-credit-columns fieldset { border:0; min-width:0; padding:0; margin:0; }
.purchase-credit-columns legend { font-weight:bold; font-size:14px; margin-bottom:10px; }
.purchase-included-data { display:inline-block; margin-left:6px; color:#206b3b; font-size:11px; font-weight:600; }
.purchase-option { display:flex; align-items:center; gap:7px; margin:10px 0; }
.purchase-option input[type=radio],.purchase-option input[type=checkbox] { width:18px; height:18px; flex:none; }
.purchase-credit-columns .purchase-option { cursor:pointer; }
.purchase-credit-columns .purchase-option>span { white-space:nowrap; }
.purchase-annual-options { max-width:470px; margin:0 auto; }
.purchase-annual-options .purchase-option { margin:18px 0; }
.purchase-annual-options .purchase-option>span { flex:1; }
.purchase-wizard input[type=number] { width:78px; padding:6px; }
.purchase-options-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.purchase-options-bottom label { display:flex; align-items:center; gap:8px; }
.purchase-start-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.purchase-price-note { margin:4px 0; }
.purchase-recent { margin:12px 0 0; font-size:13px; line-height:1.3; }
.purchase-history { padding:0 16px 16px; }
@media(max-width:650px) { .purchase-history { padding:0 10px 10px; } }
.purchase-recent h2 { font-size:14px; margin:0 0 4px; }
.purchase-recent p { margin:4px 0 0 12px; }
.purchase-highlight { color:#b32d24; font-size:12pt; font-weight:700; }
.purchase-recent .purchase-highlight { font-size:inherit; }
.last-purchase-marker { display:inline-flex; align-items:center; gap:5px; color:#b32d24; font-weight:700; margin-left:6px; white-space:nowrap; }
.last-purchase-arrow { width:26px; height:26px; flex:none; fill:currentColor; }
.purchase-annual-options .purchase-option>.last-purchase-marker { flex:none; }
.purchase-checkout-grid > tfoot > tr > th { text-align:right; background:#fff; color:#000; font-weight:700; }
.purchase-order-description { font-size:18px; margin:24px 0; }
.purchase-start-date { display:flex; align-items:center; justify-content:center; gap:12px; margin:24px 0; }
.purchase-start-date input { width:180px; padding:6px; }
.purchase-order-total { text-align:center; font-size:18px; margin:24px 0; }
.purchase-review-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:28px 0; }
.purchase-contact .purchase-phone { display:grid; grid-template-columns:90px minmax(0,380px); gap:6px 12px; align-items:center; margin:24px 0; max-width:482px; }
.purchase-phone label { font-weight:600; }
:root { --admin-button-background:#206b3b; --admin-button-hover-background:#17502c; }
[data-admin-page="true"] .button, [data-admin-page="true"] .button.secondary,
.admin-account-panel .button, .admin-account-panel .button.secondary,
.button.admin-action, .button.admin-action.secondary, .button.invoice-send, .admin-home-link {
    background:var(--admin-button-background); border-color:var(--admin-button-background); color:#fff;
}
[data-admin-page="true"] .button:hover, [data-admin-page="true"] .button.secondary:hover,
.admin-account-panel .button:hover, .admin-account-panel .button.secondary:hover,
.button.admin-action:hover, .button.admin-action.secondary:hover, .button.invoice-send:hover, .admin-home-link:hover {
    background:var(--admin-button-hover-background); border-color:var(--admin-button-hover-background); color:#fff;
}
.mail-date-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.payment-processing { padding:24px 0; text-align:center; }
.payment-spinner { display:block; width:48px; height:48px; margin:0 auto 16px; border:5px solid #d4dce4; border-top-color:#176aa7; border-radius:50%; animation:payment-progress 1s linear infinite; }
@keyframes payment-progress { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .payment-spinner { animation:none; } }
.purchase-phone input { width:100%; min-width:0; border:1px solid #b8cbd9; border-radius:4px; padding:8px 10px; font:inherit; color:#243e52; background:#fff; }
.purchase-phone small { grid-column:2; color:#637786; line-height:1.45; }
@media(max-width:650px) {
    .purchase-wizard { padding:10px; }
    .purchase-use-choice { gap:12px; }
    .purchase-use-choice .button { min-width:0; }
    .purchase-reseller-note { margin-left:0; }
    .purchase-package-options { margin-left:0; }
    .purchase-credit-columns { gap:8px; overflow-x:auto; }
    .purchase-credit-columns fieldset { min-width:150px; }
    .purchase-options-bottom { align-items:flex-start; }
    .purchase-contact .purchase-phone { grid-template-columns:minmax(0,1fr); }
    .purchase-phone small { grid-column:1; }
}
/* Compact admin editors retain every field while removing the portal chrome. */
.compact-editor .notes-editor-page,.compact-editor .invoice-editor-page,.compact-editor .template-editor-page { padding:8px; line-height:1.25; }
.invoice-editor-page { border:3pt solid #a0a0a0; background:#fff; border-radius:4px; }
.invoice-reason { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:12px 0; }
.invoice-reason label { margin:0; }
.invoice-reason input { flex:1; max-width:480px; min-width:160px; }
.compact-editor .notes-account-heading { margin:0 0 6px; font-size:14px; }
.compact-editor .notes-top-fields { margin-bottom:6px; }
.compact-editor .notes-edit-fields { display:grid; grid-template-columns:150px minmax(0,1fr); gap:6px 10px; align-items:start; }
.compact-editor .notes-edit-fields > input,.compact-editor .notes-edit-fields > textarea { margin:0; }
.compact-editor .notes-editor-page small { margin-top:2px; }
.compact-editor .notes-editor-page .form-bottom { margin:6px 0; }
.compact-editor .renewal-scan-instructions { margin:6px 0 0; padding:4px 6px; font-size:12px; }
.compact-editor .renewal-scan-instructions p { margin:4px 0; }
.compact-editor .invoice-editor-page h1,.compact-editor .template-editor-page h1 { margin:0 0 6px; font-size:16px; }
.template-editor-page textarea { max-width:none; }
.compact-editor .invoice-edit-top { margin-bottom:6px; }
.compact-editor .invoice-date-row { gap:6px; margin-bottom:4px; }
.compact-editor .invoice-line-fields h2 { margin:6px 0 4px; font-size:14px; }
.compact-editor .invoice-edit-row { margin:5px 0; gap:6px 10px; }
.compact-editor .invoice-save-actions { margin:6px 0; }
.compact-editor .invoice-extra-info { margin:6px 0; }
.compact-editor .invoice-price-tools > section { padding:6px; }
.compact-editor .invoice-price-tools h2 { margin-bottom:4px; }
.compact-editor .calculator-quantity,.compact-editor .calculator-row { margin:5px 0; }
.compact-editor .invoice-help { margin:6px 0; }
.expandable-note-field { position:relative; padding-right:26px; }
.note-expand { position:absolute; top:0; right:0; width:24px; padding:2px; border:1px solid #bcc6ce; border-radius:3px; background:white; color:#1263a0; cursor:pointer; }
.expandable-notes { margin:4px 0; }
.expandable-notes summary { display:flex; align-items:start; gap:6px; cursor:pointer; list-style:none; }
.expandable-notes summary::-webkit-details-marker { display:none; }
.notes-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; line-height:1.4; max-height:7em; flex:1; min-width:0; }
.notes-expand-icon { color:#1263a0; font-size:20px; line-height:1; }
.expandable-notes[open] .notes-preview { display:none; }
.expandable-notes[open] .notes-expand-icon { transform:rotate(180deg); }
.notes-full { line-height:1.4; }
.marked-note-line { background:#b32d24; color:#fff; padding:2px 6px; border-radius:3px; font-weight:600; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
@media(max-width:440px) { .compact-editor .notes-edit-fields { grid-template-columns:1fr; gap:3px; } }
.general-ledger-report .gl-group th { background:#e8f2f9; color:#17364b; }
.general-ledger-report .gl-total th,.general-ledger-report .gl-total td { background:#edf3f7; font-weight:700; border-top:2px solid #607888; }
.general-ledger-report th small { font-weight:400; margin-inline:.5rem; }
.lookup-map-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(220px,1fr); gap:20px; }
.lookup-report .button-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.lookup-report [data-map-zoom] { min-width:44px; min-height:40px; }
.lookup-map { display:block; width:100%; height:560px; background:#d9edf6; border:1px solid #aac5d4; touch-action:none; cursor:grab; }
.lookup-map:active { cursor:grabbing; }
.lookup-map [data-map-land] path { fill:#f4f2e7; stroke:#9aabb1; stroke-width:1; vector-effect:non-scaling-stroke; }
.lookup-map [data-map-cities] text { fill:#49606f; pointer-events:none; }
.lookup-map circle { cursor:pointer; stroke:white; stroke-width:1.5; vector-effect:non-scaling-stroke; }
.lookup-map circle:focus { stroke:#000; stroke-width:3; }
.lookup-it { color:#bc6c16; fill:#bc6c16; } .lookup-if { color:#9e288f; fill:#9e288f; }
.lookup-wt { color:#116ba6; fill:#116ba6; } .lookup-wf { color:#1e7043; fill:#1e7043; }
.lookup-map circle.lookup-lite { stroke:#172b39; stroke-width:2; }
.lookup-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:.9rem; }
.lookup-recent { max-height:340px; overflow:auto; display:flex; flex-direction:column; gap:4px; }
.lookup-recent button { text-align:left; white-space:pre-line; padding:10px; border:1px solid #c3d6e3; background:white; color:#17364b; cursor:pointer; border-radius:4px; }
.lookup-report [data-lookup-detail] { white-space:pre-line; overflow-wrap:anywhere; }
.lookup-statistics,.lookup-table { margin-top:22px; }
.lookup-statistics pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.9rem; }
.lookup-report .table-wrap { max-height:600px; overflow:auto; }
.lookup-report td { white-space:pre-line; }
@media(max-width:760px) { .lookup-map-layout { grid-template-columns:minmax(0,1fr); } .lookup-map { height:420px; } .lookup-recent { max-height:200px; } }
.general-ledger-report tbody th { background:white; color:#17364b; text-align:left; }
