/* Safari uses one explicit painted scroll container to prevent a moving scrollbar with frozen content. */
@supports (-webkit-hyphens: none) {
    html { width: 100%; height: 100%; overflow: hidden; }
    body { width: 100%; height: 100%; min-height: 100%; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; }
    body.modal-open { overflow: hidden; }
}

/* Customer-facing PDF template selector */
.document-design-settings{--document-preview-primary:#c62828;--document-preview-secondary:#263238}.document-template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.document-template-card{position:relative;margin:0;padding:12px;border:1px solid #e2e5e8;border-radius:12px;background:#fff;cursor:pointer;transition:.18s ease}.document-template-card:hover{border-color:#b9bec3;transform:translateY(-1px);box-shadow:0 7px 18px rgba(24,29,33,.07)}.document-template-card>input{position:absolute;opacity:0;pointer-events:none}.document-template-card:has(input:checked){border-color:var(--document-preview-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--document-preview-primary) 15%,transparent)}.template-check{position:absolute;right:8px;top:8px;width:23px;height:23px;display:none;place-items:center;border-radius:50%;color:#fff;background:var(--document-preview-primary);font-size:13px}.document-template-card:has(input:checked) .template-check{display:grid}.template-sheet{position:relative;height:122px;display:block;overflow:hidden;border:1px solid #e4e6e8;border-radius:5px;background:#fff;box-shadow:0 3px 8px rgba(25,30,35,.08)}.template-sheet:before,.template-sheet:after,.template-sheet i,.template-sheet b,.template-sheet em,.template-sheet small{content:"";position:absolute;display:block}.template-sheet i{left:10%;right:10%;top:48%;height:8px;background:var(--document-preview-primary)}.template-sheet b{left:10%;right:10%;top:60%;height:3px;background:#dfe2e4;box-shadow:0 9px #e8eaeb,0 18px #dfe2e4}.template-sheet em{right:10%;bottom:9%;width:32%;height:15px;background:color-mix(in srgb,var(--document-preview-primary) 15%,white)}.template-sheet small{left:10%;top:26%;width:30%;height:4px;background:#c7cbce;box-shadow:0 8px #e0e2e4}.template-executive:before,.template-corporate:before{inset:0 0 auto;height:29%;background:var(--document-preview-secondary)}.template-executive:after{left:0;top:0;width:5%;height:29%;background:var(--document-preview-primary)}.template-modern:before{inset:0 0 auto;height:31%;background:var(--document-preview-primary)}.template-commerce:before{left:8%;top:9%;width:4%;height:23%;background:var(--document-preview-primary)}.template-commerce:after{right:8%;top:8%;width:29%;height:25%;background:color-mix(in srgb,var(--document-preview-primary) 17%,white)}.template-minimal i{height:2px;background:var(--document-preview-secondary)}.template-corporate:after{left:0;right:0;top:29%;height:5px;background:var(--document-preview-primary)}.template-signature:before{inset:0 0 auto;height:15%;background:var(--document-preview-primary)}.template-signature:after{right:-12%;top:0;width:48%;height:33%;border-radius:0 0 0 100%;background:color-mix(in srgb,var(--document-preview-primary) 17%,white)}.template-card-copy{padding-top:10px;display:flex;flex-direction:column}.template-card-copy strong{font-size:13px}.template-card-copy small{margin-top:2px;color:#73797e;font-size:11px}.document-colour-panel{padding:16px;display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(180px,.55fr));gap:16px;align-items:end;border-radius:11px;background:#f7f8f9}.document-colour-panel>div{display:flex;flex-direction:column}.document-colour-panel small{margin-top:3px;color:#747a7f}.document-colour-panel label{margin:0}.document-colour-panel label>span:first-child{display:block;margin-bottom:6px;font-size:13px;font-weight:650}.colour-control{display:flex}.colour-control input[type=color]{width:44px;padding:4px;border:1px solid #d9dde0;border-radius:8px 0 0 8px;background:#fff}.colour-control .form-control{border-radius:0 8px 8px 0;text-transform:uppercase}@media(max-width:900px){.document-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-colour-panel{grid-template-columns:1fr 1fr}}@media(max-width:560px){.document-template-grid,.document-colour-panel{grid-template-columns:1fr}}
body.public-site main, body.auth-site main, body.app-body .app-wrapper, body.app-body .main-content { height: auto; }
.public-site > main, .auth-site > main, .app-body > .app-wrapper { max-width: 100%; }
.landing-page, .pricing-page, .features-page, .industries-page { overflow: visible !important; max-width: 100%; }
.app-body .main-content { min-height: 100vh; }

/* Site-wide readability floor: no visible supporting text below 11px. */
body small,
body .small,
body .form-text,
body .badge {
    font-size: 11px !important;
}
.show-yearly .cycle-label { font-size: 12px; }
.show-yearly .cycle-label::after { content: none; }

.dashboard-kpis small {
    white-space: normal;
    line-height: 1.25;
}
.dashboard-kpis article { min-height: 124px; }
.sales-chart-card,
.recent-invoices-card { height: 345px; }
.dashboard-secondary-grid > .dash-card { height: 245px; }
.dashboard-bottom-grid > .dash-card { height: 200px; }
.catalog-card { min-height: 370px; }
.feature-mini { height: 150px; }
.industry-grid article { min-height: 230px; }
.testimonials p { min-height: 70px; }
.notification-menu-item { padding-top: 15px; padding-bottom: 15px; }
.notification-menu-item small { line-height: 1.35; }
.sidebar-plan span { line-height: 1.35; }
.pricing-promises { padding-top: 18px; padding-bottom: 18px; }

@media (max-width: 1100px) {
    .sales-chart-card,
    .recent-invoices-card,
    .dashboard-secondary-grid > .dash-card,
    .dashboard-bottom-grid > .dash-card { height: auto; }
    .features-page .catalog-card { min-height: 380px; }
    .industry-grid article { min-height: 235px; }
}

/* Account and logout menu */
.top-avatar { cursor: pointer; user-select: none; }
.top-avatar:focus-visible { outline: 3px solid rgba(223, 17, 26, .18); outline-offset: 3px; }
.account-menu { position: fixed; z-index: 250; right: 24px; top: 64px; width: 245px; background: #fff; border: 1px solid #e4e6e8; border-radius: 11px; box-shadow: 0 14px 35px rgba(20, 25, 30, .15); padding: 8px; display: none; }
.account-menu.open { display: block; }
.account-menu-user { display: flex; gap: 10px; align-items: center; padding: 10px; border-bottom: 1px solid #eceeef; margin-bottom: 5px; }
.account-menu-user > div { flex: 0 0 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #e8edf5; color: #4c5660; font-weight: 700; }
.account-menu-user span { display: flex; flex-direction: column; min-width: 0; }
.account-menu-user b { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.account-menu-user small { font-size: 11px; color: #777c80; }
.account-menu > a, .account-menu form button { width: 100%; height: 40px; border: 0; border-radius: 7px; background: transparent; color: #353a3e; text-decoration: none; font-size: 11px; font-weight: 500; display: flex; align-items: center; gap: 11px; padding: 0 11px; text-align: left; }
.account-menu > a i, .account-menu form button i { font-size: 15px; }
.account-menu > a:hover, .account-menu form button:hover { background: #fff2f2; color: #d80d16; }
.account-menu form { margin: 5px 0 0; padding-top: 5px; border-top: 1px solid #eceeef; }
.account-menu form button { color: #d80d16; }
.sidebar-logout { padding: 0 14px 14px; }
.sidebar-logout button { width: 100%; height: 40px; border: 1px solid #45494b; background: transparent; color: #fff; border-radius: 7px; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: 9px; }
.sidebar-logout button:hover { border-color: #e82027; background: #e82027; }

@media (max-width: 520px) {
    .account-menu { right: 10px; top: 64px; width: 235px; }
}

/* Premium trial status notice */
.trial-status-bar { min-height: 54px; margin: 14px 24px 0; padding: 9px 12px; display: flex; align-items: center; gap: 11px; color: #332417; background: linear-gradient(105deg, #fff9ef 0%, #fff4e2 52%, #fff8f5 100%); border: 1px solid #f1dec0; border-radius: 11px; box-shadow: 0 5px 16px rgba(102, 66, 16, .06); }
.trial-status-icon { flex: 0 0 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 9px; color: #bd6909; background: rgba(255, 255, 255, .8); border: 1px solid #f0d7b2; font-size: 16px; }
.trial-status-bar > div { min-width: 0; display: flex; align-items: baseline; gap: 9px; flex: 1; }
.trial-status-bar > div > b { font-size: 12px; white-space: nowrap; }
.trial-status-bar > div > span { font-size: 11px; color: #705b45; line-height: 1.4; }
.trial-status-bar > a { flex: 0 0 auto; min-height: 34px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-radius: 7px; background: #17191b; color: #fff; font-size: 11px; font-weight: 600; text-decoration: none; transition: background .18s, transform .18s; }
.trial-status-bar > a:hover { background: #df111a; color: #fff; transform: translateY(-1px); }

@media (max-width: 767px) {
    .trial-status-bar { margin: 10px 12px 0; align-items: flex-start; flex-wrap: wrap; padding: 11px; }
    .trial-status-bar > div { align-items: flex-start; flex-direction: column; gap: 2px; width: calc(100% - 46px); }
    .trial-status-bar > a { margin-left: 45px; }
}

/* Compact, consistent button system */
button, .btn, input[type="button"], input[type="submit"], input[type="reset"], .social-auth, .plan-cta, .faq-cta > a {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: 0;
}
.public-site .btn {
    min-height: 38px;
    padding: 8px 16px !important;
    border-radius: 7px !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.landing-header .landing-login {
    width: auto;
    min-width: 82px;
    height: 38px;
    padding: 0 16px !important;
    border-radius: 7px !important;
    font-size: 12px;
}
.landing-header .btn-brand {
    width: auto;
    min-width: 124px;
    height: 40px;
    padding: 0 18px !important;
    border-radius: 7px !important;
    font-size: 12px;
    box-shadow: 0 4px 10px rgba(188, 0, 10, .13);
}
.hero-actions .btn {
    width: auto;
    min-width: 155px;
    height: 44px;
    padding: 0 20px !important;
    border-radius: 7px !important;
    font-size: 12px;
}
.cta-actions .btn, .industry-cta .btn {
    min-width: 130px;
    height: 38px;
    padding: 0 16px !important;
    border-radius: 6px !important;
    font-size: 11px;
}
.features-cta > .cta-actions { display: grid; grid-template-columns: repeat(2, minmax(130px, 1fr)); gap: 13px; align-items: start; }
.features-cta .cta-action-group { min-width: 0; display: flex; flex-direction: column; align-items: center; }
.features-cta .cta-action-group .btn { width: 100%; margin: 0; white-space: nowrap; }
.features-cta .cta-action-group small { min-height: 18px; margin-top: 8px; color: #6f7276; font-size: 11px; line-height: 1.35; text-align: center; white-space: nowrap; }
.features-cta .cta-action-group small i { margin-right: 4px; color: #df1019; }
.plan-cta, .faq-cta > a {
    min-height: 36px;
    height: 36px;
    border-radius: 6px;
    font-size: 11px;
}
.auth-submit, .auth-form-wrap .social-auth {
    min-height: 46px;
    height: 46px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
}
.auth-submit { box-shadow: 0 4px 10px rgba(220, 7, 17, .12); }
.register-panel .social-auth { height: 44px; min-height: 44px; font-size: 12px; }
.app-body .btn {
    min-height: 36px;
    padding: 7px 14px;
    border-radius: 7px !important;
    font-size: 11px;
    line-height: 1.2;
}
.app-body .btn-sm { min-height: 30px; padding: 5px 10px; font-size: 11px; }
.app-body .btn-lg { min-height: 42px; padding: 9px 18px; font-size: 12px; }
.app-body .company-select { height: 36px; min-width: 180px; padding: 0 12px; border-radius: 7px; font-size: 11px; }
.sidebar-logout button { height: 36px; }
.account-menu > a, .account-menu form button { height: 37px; }
@media (max-width: 767px) {
    .landing-header .landing-login, .landing-header .btn-brand { width: 100%; min-width: 0; }
    .hero-actions .btn { width: 100%; min-width: 0; }
    .features-cta > .cta-actions { grid-template-columns: 1fr; width: 100%; }
}

/* Backend-driven plan comparison */
.pricing-page .plan-comparison .compare-row { grid-template-columns: minmax(220px, 1.25fr) repeat(var(--compare-plan-count), minmax(170px, 1fr)); min-width: var(--comparison-min-width); }
.pricing-page .compare-row > span { display: flex; align-items: center; justify-content: center; color: #292d31; font-weight: 500; }
.pricing-page .compare-row > span.not-included { color: #a2a6aa; font-weight: 400; }
.pricing-page .compare-row > div { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.pricing-page .compare-row > div i { flex: 0 0 28px; width: 28px; height: 28px; margin-right: 0; display: inline-flex; align-items: center; justify-content: center; }

/* Site-wide typography increase: body copy +3px, H2-H6 +2px; H1 intentionally unchanged. */
.public-site, .auth-site { font-size: 19px; }
.app-body { font-size: 16px; }
body small, body .small, body .form-text, body .badge { font-size: 14px !important; }
.public-site p, .public-site li, .public-site label, .public-site input, .public-site select, .public-site textarea,
.auth-site p, .auth-site li, .auth-site label, .auth-site input, .auth-site select, .auth-site textarea { font-size: 15px; }
.public-site .btn { font-size: 15px; }
.landing-header .nav-link { font-size: 17px; }
.footer-column a, .footer-brand p, .footer-copyright { font-size: 14px; }
.hero-lead { font-size: 20px; }
.hero-checks { font-size: 17px; }
.hero-pill, .hero-notes { font-size: 16px; }
.feature-item strong { font-size: 17px; }
.feature-item p, .company-row > div { font-size: 14px; }
.pricing-kicker, .pricing-hero > p, .plan-heading p, .plan-price em, .plan-features, .plan-cta,
.compare-row > *, .pricing-promises b { font-size: 15px; }
.features-kicker, .features-copy > p, .catalog-heading p, .catalog-card > p, .catalog-card > a,
.feature-strip b, .feature-strip small, .features-cta p { font-size: 14px; }
.industries-copy > p, .industry-heading p, .industry-grid p, .industry-grid a,
.industry-assurances b, .industry-assurances small, .industry-metrics small,
.testimonials p, .testimonials strong, .testimonials small, .industry-cta p { font-size: 14px; }
.faq-hero-copy > p, .faq-search input, .faq-categories b, .faq-categories small,
.faq-item > button b, .faq-item > div p, .faq-support-card b, .faq-support-card small,
.faq-articles a, .faq-cta p { font-size: 14px; }
.auth-subtitle, .auth-pitch p, .auth-tabs button, .auth-form label, .auth-input input,
.auth-input select, .social-auth, .auth-switch, .auth-alert { font-size: 16px; }
.auth-submit { font-size: 16px; }
.register-panel .social-auth { font-size: 15px; }
.auth-benefits b, .auth-trusted p, .auth-top-login, .auth-check.terms { font-size: 15px; }
.app-body p, .app-body li, .app-body label, .app-body input, .app-body select, .app-body textarea,
.app-body td, .app-body th, .app-body .table, .app-body .form-label, .app-body .form-control,
.app-body .form-select, .app-body .input-group-text, .app-body .dropdown-item,
.app-body .alert, .app-body .pagination .page-link { font-size: 14px; }
.app-body .btn, .app-body .btn-sm { font-size: 14px; }
.app-body .btn-lg { font-size: 15px; }
.nav-item-custom { font-size: 16px; }
.sidebar-user b, .sidebar-user small, .sidebar-plan small, .sidebar-plan span, .sidebar-plan em,
.company-select, .dashboard-kpis small, .dashboard-kpis span > em, .dash-table,
.cash-summary p, .top-items p, .outstanding-card p, .payment-mode ul,
.business-overview small, .quick-actions a, .notification-menu-item b,
.notification-menu-item small, .notification-menu-item em { font-size: 14px; }

/* Heading scale (+2px). */
.auth-form-wrap h2 { font-size: 31px; }
.pricing-card h2, .plan-heading h2 { font-size: 20px; }
.catalog-heading h2 { font-size: 25px; }
.catalog-card h3 { font-size: 17px; }
.features-cta h2 { font-size: 24px; }
.industry-heading h2 { font-size: 26px; }
.industry-grid h3 { font-size: 15px; }
.testimonial-heading { font-size: 24px; }
.industry-cta h2 { font-size: 27px; }
.faq-main > h2 { font-size: 21px; }
.faq-articles h3 { font-size: 15px; }
.faq-cta h2 { font-size: 24px; }
.app-body h2.fw-bold { font-size: 26px; }
.app-body h4.fw-bold { font-size: 20px; }
.app-body h5.fw-bold { font-size: 16px; }
.dash-card-head h2 { font-size: 15px; }

/* Profile photos */
.user-avatar, .top-avatar, .account-menu-user > div, .profile-photo-preview, .profile-summary-photo { overflow: hidden; }
.user-avatar img, .top-avatar img, .account-menu-user > div img, .profile-photo-preview img, .profile-summary-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.profile-photo-editor { padding: 14px; display: flex; align-items: center; gap: 16px; border: 1px solid #e5e7e9; border-radius: 10px; background: #fafbfb; }
.profile-photo-preview { flex: 0 0 76px; height: 76px; display: flex; align-items: center; justify-content: center; border: 3px solid #fff; border-radius: 50%; background: #fff0f0; color: #d80d16; box-shadow: 0 4px 13px rgba(20,25,30,.1); font-size: 26px; font-weight: 700; }
.profile-photo-editor > div:last-child { display: flex; align-items: flex-start; flex-direction: column; }
.profile-photo-editor small { color: #777b80; font-size: 11px; }
.profile-summary-photo { width: 82px; height: 82px; margin-left: auto; margin-right: auto; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #fff0f0; color: #d80d16; font-size: 30px; font-weight: 700; box-shadow: 0 5px 15px rgba(20,25,30,.1); }
.auth-form-wrap a.social-auth { display: flex; align-items: center; justify-content: center; box-sizing: border-box; text-decoration: none; color: #17191b; line-height: 1; }
.auth-form-wrap a.social-auth:hover { border-color: #d80d16; background: #fffafa; color: #d80d16; }
.auth-form-wrap a.social-auth:focus-visible { outline: 3px solid rgba(216, 13, 23, .13); outline-offset: 2px; }
.oauth-provider-toggle { min-height: 78px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #e3e5e7; border-radius: 10px; background: #fafbfb; }
.oauth-provider-brand { min-width: 0; display: flex; align-items: center; gap: 11px; }
.oauth-provider-brand > b, .oauth-provider-brand > i { flex: 0 0 37px; height: 37px; display: flex; align-items: center; justify-content: center; border-radius: 9px; background: #fff; border: 1px solid #e5e7e9; font-size: 18px; }
.oauth-provider-brand > i { color: #0877d1; }
.oauth-provider-brand > span { display: flex; flex-direction: column; }
.oauth-provider-brand strong { font-size: 12px; }
.oauth-provider-brand small { margin-top: 3px; color: #777b80; font-size: 11px; line-height: 1.35; }
.premium-switch { flex: 0 0 auto; margin: 0; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.premium-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.premium-switch > span { position: relative; width: 43px; height: 24px; border-radius: 15px; background: #c9cdd1; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); transition: background .2s ease; }
.premium-switch > span:after { content: ''; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(20,25,30,.22); transition: transform .2s ease; }
.premium-switch input:checked + span { background: #df111a; }
.premium-switch input:checked + span:after { transform: translateX(19px); }
.premium-switch input:focus-visible + span { outline: 3px solid rgba(223,17,26,.16); outline-offset: 2px; }
.premium-switch em { min-width: 48px; color: #74787c; font-size: 11px; font-style: normal; font-weight: 600; }
.premium-switch input:checked ~ em { color: #d80d16; }
@media (max-width: 520px) { .oauth-provider-toggle { align-items: flex-start; flex-direction: column; } .premium-switch { align-self: flex-end; } }

/* Functional application navigation */
.topbar-icon-button { width: 34px; height: 38px; border: 0; padding: 0; background: transparent; color: #31373b; font-size: 21px; display: inline-flex; align-items: center; justify-content: center; }
.branch-dropdown .dropdown-menu { min-width: 210px; }
.branch-dropdown form { margin: 0; }
.branch-dropdown .dropdown-item { display: flex; align-items: center; }
.branch-dropdown .dropdown-item.active { color: #d80d16; background: #fff2f2; }
.app-wrapper.sidebar-collapsed .sidebar { width: 72px; }
.app-wrapper.sidebar-collapsed .main-content { margin-left: 72px; width: calc(100% - 72px); }
.app-wrapper.sidebar-collapsed .sidebar-brand a { width: 42px; overflow: hidden; }
.app-wrapper.sidebar-collapsed .sidebar-brand a > span { font-size: 0; }
.app-wrapper.sidebar-collapsed .sidebar-brand a > span b { font-size: 23px; }
.app-wrapper.sidebar-collapsed .sidebar-brand small,
.app-wrapper.sidebar-collapsed .nav-item-custom span,
.app-wrapper.sidebar-collapsed .nav-arrow,
.app-wrapper.sidebar-collapsed .sidebar-user span,
.app-wrapper.sidebar-collapsed .sidebar-user > i,
.app-wrapper.sidebar-collapsed .sidebar-logout span { display: none; }
.app-wrapper.sidebar-collapsed .sidebar-nav { padding: 0 9px; }
.app-wrapper.sidebar-collapsed .nav-item-custom { justify-content: center; padding: 0; }
.app-wrapper.sidebar-collapsed .nav-item-custom > i:first-child { width: auto; }
.app-wrapper.sidebar-collapsed .sidebar-user { justify-content: center; padding-left: 10px; padding-right: 10px; }
.app-wrapper.sidebar-collapsed .sidebar-logout button { padding: 0; }
.sidebar, .main-content { transition: width .22s ease, margin-left .22s ease; }
.global-search { position: fixed; inset: 0; z-index: 500; display: none; align-items: flex-start; justify-content: center; padding: 12vh 20px 20px; background: rgba(12, 15, 18, .55); backdrop-filter: blur(4px); }
.global-search.open { display: flex; }
.global-search-dialog { width: min(680px, 100%); overflow: hidden; background: #fff; border: 1px solid #e2e4e6; border-radius: 14px; box-shadow: 0 24px 70px rgba(0, 0, 0, .25); }
.global-search-dialog > header { height: 58px; padding: 0 17px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #e8eaec; }
.global-search-dialog > header > i { font-size: 20px; color: #5f6469; }
.global-search-dialog input { flex: 1; height: 100%; border: 0; outline: 0; font-size: 13px; }
.global-search-dialog kbd { padding: 4px 7px; border: 1px solid #dfe1e3; border-radius: 5px; color: #777b80; background: #f6f7f8; font: 11px Inter, sans-serif; }
.global-search-results { max-height: 410px; overflow-y: auto; padding: 8px; }
.global-search-results > a { min-height: 57px; padding: 8px 11px; display: flex; align-items: center; gap: 12px; border-radius: 8px; color: #25292d; text-decoration: none; }
.global-search-results > a:hover { background: #fff3f3; color: #d80d16; }
.global-search-results > a > i:first-child { flex: 0 0 37px; height: 37px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: #fff0f0; color: #d80d16; font-size: 16px; }
.global-search-results > a span { flex: 1; display: flex; flex-direction: column; }
.global-search-results > a b { font-size: 12px; }
.global-search-results > a small { color: #777b80; font-size: 11px; }
.global-search-hint, .global-search-loading { min-height: 130px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #777b80; text-align: center; }
.global-search-hint b { color: #303438; font-size: 13px; margin-bottom: 5px; }
.global-search-hint span, .global-search-loading { font-size: 11px; }
.global-search-loading span { width: 22px; height: 22px; margin-bottom: 8px; border: 2px solid #eee; border-top-color: #df111a; border-radius: 50%; animation: search-spin .7s linear infinite; }
@keyframes search-spin { to { transform: rotate(360deg); } }

/* Public navigation menus */
.landing-nav-dropdown { min-width: 250px; padding: 8px !important; }
.landing-nav-dropdown .dropdown-item { display: flex; align-items: center; gap: 11px; padding: 10px; }
.landing-nav-dropdown .dropdown-item > i { width: 34px; height: 34px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #d80d16; background: #fff0f0; }
.landing-nav-dropdown .dropdown-item span { display: flex; flex-direction: column; }
.landing-nav-dropdown .dropdown-item b { font-size: 12px; }
.landing-nav-dropdown .dropdown-item small { color: #777b80; font-size: 11px; }

/* FAQ page */
.faq-page { max-width: 1380px; margin: 0 auto; padding: 38px 48px 55px; background: #fff; color: #131517; }
.app-body .faq-page { max-width: 1300px; padding: 0; background: transparent; }
.faq-hero { min-height: 405px; display: grid; grid-template-columns: .8fr 1.35fr; align-items: center; gap: 35px; background: radial-gradient(circle at 16% 55%, #fff2f2 0, transparent 38%); }
.faq-kicker { display: inline-block; padding: 5px 11px; margin-bottom: 15px; border-radius: 15px; background: #fff0f0; color: #d80d16; font-size: 11px; font-weight: 600; }
.faq-hero-copy h1 { margin: 0 0 18px; font-size: 39px; line-height: 1.18; letter-spacing: -1.4px; font-weight: 750; }
.faq-hero-copy h1 em { color: #d80d16; font-style: normal; }
.faq-hero-copy > p { color: #666a6e; font-size: 12px; line-height: 1.7; }
.faq-search { height: 49px; margin-top: 24px; padding: 0 16px; display: flex; align-items: center; gap: 11px; border: 1px solid #dcdfe2; border-radius: 8px; background: #fff; box-shadow: 0 5px 14px rgba(20,25,30,.05); }
.faq-search input { flex: 1; height: 100%; border: 0; outline: 0; font-size: 12px; }
.faq-hero-visual img { width: 100%; max-height: 390px; border-radius: 12px; object-fit: cover; object-position: left top; box-shadow: 0 13px 30px rgba(20,25,30,.16); }
.faq-categories { display: grid; grid-template-columns: repeat(7, 1fr); gap: 11px; margin: 8px 0 31px; }
.faq-categories button { min-height: 94px; padding: 11px 7px; border: 1px solid #e5e7e9; border-radius: 9px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(20,25,30,.035); }
.faq-categories button.active { border-color: #df111a; color: #d80d16; }
.faq-categories i { width: 35px; height: 35px; margin-bottom: 6px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #d80d16; background: #fff0f0; font-size: 16px; }
.faq-categories b { font-size: 11px; }
.faq-categories small { margin-top: 3px; color: #777b80; font-size: 11px; }
.faq-body { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 30px; }
.faq-main > h2 { margin: 0 0 16px; font-size: 19px; }
.faq-item { margin-bottom: 7px; overflow: hidden; border: 1px solid #e7e9eb; border-radius: 9px; background: #fff; box-shadow: 0 3px 10px rgba(20,25,30,.025); }
.faq-item > button { width: 100%; min-height: 52px; padding: 0 17px; border: 0; background: transparent; display: flex; align-items: center; justify-content: space-between; text-align: left; }
.faq-item > button b { font-size: 12px; }
.faq-item > div { display: none; padding: 0 17px 14px; }
.faq-item > div p { margin: 0; color: #686c70; font-size: 11px; line-height: 1.65; }
.faq-item.open { border-left: 2px solid #df111a; }
.faq-item.open > button { color: #d80d16; }
.faq-item.open > button i { transform: rotate(180deg); }
.faq-item.open > div { display: block; }
.faq-no-results { padding: 35px; color: #777b80; text-align: center; font-size: 11px; }
.faq-support-card, .faq-articles { padding: 19px; border: 1px solid #e4e6e8; border-radius: 11px; background: #fff; box-shadow: 0 5px 15px rgba(20,25,30,.045); }
.faq-support-card header { display: flex; gap: 12px; margin-bottom: 15px; }
.faq-support-card header > i { flex: 0 0 43px; height: 43px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #d80d16; background: #fff0f0; font-size: 20px; }
.faq-support-card header span, .faq-support-card p span { display: flex; flex-direction: column; }
.faq-support-card b { font-size: 12px; }
.faq-support-card small { color: #707478; font-size: 11px; line-height: 1.4; }
.faq-support-card p { display: flex; align-items: center; gap: 10px; margin: 11px 0; }
.faq-support-card p > i { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 8px; color: #d80d16; background: #fff0f0; font-size: 16px; }
.faq-support-card > a { height: 39px; margin-top: 15px; display: flex; align-items: center; justify-content: center; border-radius: 6px; color: #fff; background: #df111a; font-size: 11px; font-weight: 600; text-decoration: none; }
.faq-articles { margin-top: 17px; display: flex; flex-direction: column; }
.faq-articles h3 { font-size: 13px; margin-bottom: 12px; }
.faq-articles a { padding: 6px 0; color: #25292d; font-size: 11px; text-decoration: none; }
.faq-articles a i { margin-right: 8px; color: #d80d16; }
.faq-cta { min-height: 115px; margin-top: 40px; padding: 20px 35px; display: flex; align-items: center; gap: 17px; border-radius: 11px; background: linear-gradient(100deg,#fff0f0,#fff8f8); }
.faq-cta > div { flex: 1; }
.faq-cta h2 { margin: 0 0 7px; font-size: 22px; }
.faq-cta h2 em { color: #d80d16; font-style: normal; }
.faq-cta p { margin: 0; color: #686c70; font-size: 11px; }
.faq-cta > a { min-width: 150px; height: 41px; border: 1px solid #babdc0; border-radius: 7px; display: flex; align-items: center; justify-content: center; color: #17191b; background: #fff; font-size: 11px; font-weight: 600; text-decoration: none; }
.faq-cta > a.primary { border-color: #df111a; color: #fff; background: #df111a; }

@media (max-width: 767px) {
    .app-wrapper.sidebar-collapsed .sidebar { width: 220px; }
    .app-wrapper.sidebar-collapsed .main-content { margin-left: 0; width: 100%; }
    .app-wrapper.sidebar-collapsed .sidebar-brand a { width: 155px; overflow: visible; }
    .app-wrapper.sidebar-collapsed .sidebar-brand a > span { font-size: 35px; }
    .app-wrapper.sidebar-collapsed .sidebar-brand a > span b { font-size: inherit; }
    .app-wrapper.sidebar-collapsed .sidebar-brand small,
    .app-wrapper.sidebar-collapsed .nav-item-custom span,
    .app-wrapper.sidebar-collapsed .nav-arrow,
    .app-wrapper.sidebar-collapsed .sidebar-user span,
    .app-wrapper.sidebar-collapsed .sidebar-user > i,
    .app-wrapper.sidebar-collapsed .sidebar-logout span { display: initial; }
    .faq-page { padding-left: 24px; padding-right: 24px; }
    .faq-hero { grid-template-columns: 1fr 1fr; }
    .faq-categories { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 768px) and (max-width: 991px) {
    .faq-page { padding-left: 24px; padding-right: 24px; }
    .faq-hero { grid-template-columns: 1fr 1fr; }
    .faq-categories { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 767px) {
    .topbar-actions .branch-dropdown { display: none; }
    .topbar-actions { gap: 9px; }
    .faq-page { padding: 25px 16px 35px; }
    .faq-hero { grid-template-columns: 1fr; min-height: 0; }
    .faq-hero-copy h1 { font-size: 32px; }
    .faq-hero-visual { display: none; }
    .faq-categories { grid-template-columns: repeat(2, 1fr); }
    .faq-body { grid-template-columns: 1fr; }
    .faq-cta { align-items: stretch; flex-direction: column; padding: 22px; }
    .faq-cta > a { width: 100%; }
}

/* Readable compact content without allowing copy to overlap adjacent artwork. */
.hero-copy,
.features-copy,
.industries-copy,
.faq-hero-copy,
.features-assurances > div,
.features-assurances span,
.industry-assurances > div,
.industry-assurances span,
.feature-strip > div,
.feature-strip span,
.pricing-promises > div,
.pricing-promises span,
.feature-item,
.faq-categories button {
    min-width: 0;
}

.features-assurances,
.industry-assurances {
    width: 100%;
    max-width: 560px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.features-assurances > div {
    align-items: flex-start;
    padding-left: 10px;
    padding-right: 10px;
}

/* Compact titles must remain visually stronger than their explanatory copy. */
.features-assurances b,
.industry-assurances b,
.feature-strip b,
.pricing-promises b,
.faq-categories b {
    display: block;
    font-size: 15px !important;
    font-weight: 700;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
}

.features-assurances small,
.industry-assurances small,
.feature-strip small,
.pricing-promises small,
.faq-categories small {
    display: block;
    font-size: 14px !important;
    font-weight: 400;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
}

.feature-item strong {
    font-size: 17px !important;
    line-height: 1.3;
}

.feature-item p {
    font-size: 14px !important;
    line-height: 1.45;
}

.industry-metrics small,
.metric-row small {
    font-size: 14px !important;
    line-height: 1.4;
    white-space: normal;
}

.industry-metrics b,
.metric-row b {
    line-height: 1.25;
}

/* Home trust panel: keep both logo and metric groups aligned within the card. */
.trust-content {
    display: grid;
    grid-template-columns: minmax(480px, .9fr) minmax(620px, 1.1fr);
    align-items: center;
    gap: 28px;
}

.company-row,
.metric-row {
    min-width: 0;
    width: 100%;
}

.company-row {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.company-row > div {
    min-width: 0;
    height: 60px;
    padding: 8px 10px;
    line-height: 1.15;
}

.metric-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.metric-row > div,
.metric-row span {
    min-width: 0;
}

.metric-row > div > i {
    flex: 0 0 auto;
}

.metric-row b,
.metric-row small {
    overflow-wrap: anywhere;
}

@media (max-width: 1279px) {
    .trust-content {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

/* Password recovery */
.password-reset-shell { width: min(470px, calc(100% - 32px)); margin: 55px auto; padding: 34px; border: 1px solid #e2e4e6; border-radius: 14px; background: #fff; box-shadow: 0 14px 40px rgba(20,25,30,.12); }
.password-reset-shell .auth-logo-link { display: block; width: 205px; margin: 0 auto 28px; }
.password-reset-icon { width: 58px; height: 58px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #d80d16; background: #fff0f0; font-size: 26px; }
.password-reset-shell h1 { margin: 0 0 8px; font-size: 28px; text-align: center; }
.password-reset-shell > p { margin: 0 0 25px; color: #65696d; font-size: 15px; line-height: 1.55; text-align: center; }
.password-reset-shell .auth-alert { margin: 0 0 20px; }
.password-reset-shell .auth-input { margin-bottom: 22px; }
.password-back-link { margin-top: 22px; display: block; color: #d80d16; font-size: 14px; font-weight: 600; text-align: center; text-decoration: none; }
.verification-alert { display: flex; align-items: flex-start; flex-direction: column; gap: 11px; }
.verification-alert > a { min-height: 38px; padding: 8px 14px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid rgba(178,12,20,.2); border-radius: 7px; color: #b20c14; background: #fff; font-size: 14px; font-weight: 700; text-decoration: none; }
.verification-alert > a:hover { color: #fff; background: #d80d16; }
.password-reset-shell .auth-submit:disabled { cursor: not-allowed; color: #777b80; background: #e5e7e9; box-shadow: none; opacity: 1; }
.activation-progress-card { margin: 22px 0; padding: 18px; border: 1px solid #cfe9d9; border-radius: 12px; background: linear-gradient(145deg,#f4fcf7,#fff); box-shadow: 0 8px 24px rgba(25,135,84,.08); }
.activation-progress-head { display: flex; align-items: flex-start; gap: 12px; text-align: left; }
.activation-progress-head>i { flex: 0 0 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: #198754; background: #e2f6e9; font-size: 21px; }
.activation-progress-head span { display: flex; flex-direction: column; gap: 4px; }
.activation-progress-head b { color: #185f39; font-size: 14px; }
.activation-progress-head small { color: #5e6b64; font-size: 12px; line-height: 1.5; }
.activation-countdown { margin: 16px 0; padding: 13px; display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; align-items: center; border-radius: 9px; background: #fff; border: 1px solid #e0eee5; text-align: left; }
.activation-countdown small,.activation-countdown span { color: #6b746f; font-size: 11px; }
.activation-countdown strong { grid-row: span 2; color: #198754; font-size: 22px; font-variant-numeric: tabular-nums; }
#verificationCountdownText { display: inline; }
#verificationCountdown { min-width: 20px; display: inline-block; color: #b20c14; text-align: center; }
.entitlement-notice { margin: 0 0 18px; padding: 13px 16px; display: flex; align-items: center; gap: 11px; border: 1px solid #f1d7a1; border-radius: 9px; color: #6e5010; background: #fff9eb; font-size: 14px; }
.entitlement-notice > i { flex: 0 0 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #9b6b08; background: #fff0c9; font-size: 17px; }
.entitlement-notice > span { flex: 1; }
.entitlement-notice > a { flex: 0 0 auto; color: #8a5e05; font-weight: 700; text-decoration: none; }
@media(max-width:600px){.entitlement-notice{align-items:flex-start;flex-wrap:wrap}.entitlement-notice>a{margin-left:45px}}
.dashboard-page.entitlement-filtered .dashboard-kpis { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.dashboard-page.entitlement-filtered .dashboard-main-grid,
.dashboard-page.entitlement-filtered .dashboard-secondary-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.dashboard-page.entitlement-filtered .dashboard-right-stack:has(.dash-card:not(.d-none)) { display: grid; }
.dashboard-page.entitlement-filtered .quick-actions > div:last-child { grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); }

/* Subscription management */
.subscription-page { max-width: 1500px; margin: 0 auto; }
.subscription-title { margin-bottom: 20px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.subscription-title h2 { margin: 0 0 5px; font-size: 27px; font-weight: 750; }.subscription-title p { margin: 0; color: #697075; }
.current-subscription-card { padding: 22px; display: grid; grid-template-columns: auto minmax(220px,1fr) minmax(480px,1.4fr); align-items: center; gap: 18px; border: 1px solid #efb9bc; border-radius: 14px; background: linear-gradient(105deg,#fff7f7,#fff); box-shadow: 0 7px 22px rgba(20,25,30,.06); }
.current-plan-mark { width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; border-radius: 14px; color: #fff; background: #d80d16; font-size: 25px; }.current-plan-copy>span,.subscription-section-heading span { color: #d80d16; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }.current-plan-copy h3 { margin: 4px 0 5px; font-size: 25px; }.current-plan-copy h3 b { padding: 4px 9px; border-radius: 13px; color: #d80d16; background: #fff0f0; font-size: 13px; vertical-align: middle; }.current-plan-copy p { margin: 0; color: #676c70; }
.subscription-facts { display: grid; grid-template-columns: repeat(3,1fr); }.subscription-facts>div { padding: 5px 18px; display: flex; flex-direction: column; border-left: 1px solid #eadfe0; }.subscription-facts small { color: #74797d; }.subscription-facts strong { margin-top: 4px; font-size: 16px; }
.scheduled-change { margin-top: 14px; padding: 15px 18px; display: flex; align-items: center; gap: 13px; border: 1px solid #cfe2ff; border-radius: 10px; background: #f4f8ff; }.scheduled-change>i { font-size: 24px; color: #2364aa; }.scheduled-change>div { flex: 1; display: flex; flex-direction: column; }.scheduled-change span { margin-top: 3px; color: #59646e; font-size: 14px; }
.subscription-section-heading { margin: 32px 0 16px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }.subscription-section-heading h3 { margin: 4px 0 0; font-size: 23px; }.subscription-section-heading>p { max-width: 560px; margin: 0; color: #697075; text-align: right; }
.subscription-plan-grid { display: grid; grid-template-columns: repeat(var(--subscription-plan-count),minmax(0,1fr)); gap: 15px; align-items: stretch; }
.subscription-plan-card { position: relative; min-width: 0; min-height: 560px; padding: 23px 19px 18px; display: flex; flex-direction: column; border: 1px solid #e1e4e7; border-radius: 13px; background: #fff; box-shadow: 0 5px 17px rgba(20,25,30,.05); }.subscription-plan-card.current { border: 2px solid #d80d16; box-shadow: 0 10px 28px rgba(216,13,22,.11); }.subscription-plan-card.featured:not(.current) { border-color: #ef969b; }.subscription-plan-ribbon { position: absolute; left: -1px; right: -1px; top: -1px; height: 27px; border-radius: 12px 12px 0 0; color: #fff; background: #d80d16; font-size: 12px; font-weight: 700; line-height: 27px; text-align: center; }.subscription-plan-card:has(.subscription-plan-ribbon) { padding-top: 40px; }.subscription-plan-card>header { min-height: 80px; display: flex; align-items: flex-start; gap: 12px; }.plan-symbol { flex: 0 0 45px; height: 45px; display: flex; align-items: center; justify-content: center; border-radius: 11px; color: #d80d16; background: #fff0f0; font-size: 21px; }.subscription-plan-card h4 { margin: 1px 0 5px; font-size: 19px; }.subscription-plan-card header p { margin: 0; color: #6c7175; font-size: 14px; line-height: 1.4; }.subscription-price { min-height: 55px; padding: 11px 0; border-bottom: 1px solid #e8eaec; }.subscription-price strong { font-size: 28px; }.subscription-price small { margin-left: 5px; color: #777c80; }
.subscription-plan-card>ul { margin: 13px 0 18px; padding: 0; display: grid; gap: 10px; list-style: none; flex: 1; }.subscription-plan-card>ul li { display: flex; align-items: flex-start; gap: 8px; }.subscription-plan-card>ul i { color: #d80d16; }.subscription-plan-card>ul span { min-width: 0; display: flex; flex-direction: column; }.subscription-plan-card>ul b { font-size: 14px; }.subscription-plan-card>ul small { color: #73787c; font-size: 13px!important; }.subscription-plan-action form { display: grid; gap: 9px; }.subscription-plan-action .btn { width: 100%; min-height: 40px; }.subscription-plan-action .form-select { min-height: 40px; }.change-note { padding: 8px; border-radius: 7px; color: #73510d; background: #fff7e5; font-size: 13px; text-align: center; }
.billing-choice{padding:4px;display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid #e0e3e6;border-radius:11px;background:#f5f6f7}.billing-choice label{position:relative;margin:0;cursor:pointer}.billing-choice input{position:absolute;opacity:0;pointer-events:none}.billing-choice span{min-height:57px;padding:8px 7px;display:flex;flex-direction:column;justify-content:center;border:1px solid transparent;border-radius:8px;color:#555b60;background:transparent;transition:border-color .18s,background .18s,box-shadow .18s}.billing-choice b{display:flex;align-items:center;gap:4px;font-size:12px!important}.billing-choice small{margin-top:3px;color:#73787c;font-size:11px!important;line-height:1.25}.billing-choice em{padding:2px 4px;border-radius:7px;color:#b40810;background:#ffe3e5;font-size:9px;font-style:normal;white-space:nowrap}.billing-choice input:checked+span{border-color:#e3262e;color:#bb0b13;background:#fff;box-shadow:0 3px 10px rgba(216,13,22,.12)}.billing-choice input:checked+span small{color:#5e6367}.billing-choice input:focus-visible+span{outline:2px solid #1b6fdc;outline-offset:2px}
.mandate-failure-alert{margin:20px 0 4px;padding:14px 16px;text-align:left}.mandate-failure-alert b,.mandate-failure-alert span{display:block}.mandate-failure-alert span{margin-top:5px;line-height:1.5}
.payment-privacy-note{margin:16px 0;padding:12px 14px;display:flex;align-items:flex-start;gap:11px;border:1px solid #dce9e2;border-radius:11px;color:#245b3d;background:#f5fbf7;text-align:left}.payment-privacy-note>i{flex:0 0 32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#16804a;background:#e1f4e8;font-size:16px}.payment-privacy-note span{display:flex;flex-direction:column}.payment-privacy-note b{font-size:13px}.payment-privacy-note small{margin-top:3px;color:#587064;font-size:11px;line-height:1.45}
.branch-user-list{max-height:190px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.branch-user-list label{padding:9px 10px;display:flex;align-items:flex-start;gap:8px;border:1px solid #e5e7e9;border-radius:9px;background:#fafbfb;cursor:pointer}.branch-user-list input{margin-top:3px}.branch-user-list span{display:flex;min-width:0;flex-direction:column;font-size:12px;font-weight:650}.branch-user-list small{overflow:hidden;color:#757a7e;font-size:11px;text-overflow:ellipsis}@media(max-width:600px){.branch-user-list{grid-template-columns:1fr}}
.subscription-comparison,.usage-detail { margin-top: 22px; padding: 20px; border: 1px solid #e1e4e7; border-radius: 13px; background: #fff; box-shadow: 0 5px 16px rgba(20,25,30,.04); }.subscription-comparison h3,.usage-detail h3 { margin: 0 0 15px; font-size: 20px; }.subscription-comparison-scroll { overflow-x: auto; }.subscription-compare-row { min-width: 900px; display: grid; grid-template-columns: 1.25fr repeat(var(--subscription-plan-count),1fr); border-bottom: 1px solid #eceeef; }.subscription-compare-row:last-child { border-bottom: 0; }.subscription-compare-row>* { padding: 11px 14px; text-align: center; border-right: 1px solid #eceeef; font-size: 14px; }.subscription-compare-row>*:first-child { text-align: left; }.subscription-compare-row .current { color: #d80d16; background: #fff4f4; }.usage-detail>div { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }.usage-detail article { padding: 15px; display: flex; flex-direction: column; border-radius: 9px; background: #f7f8f9; }.usage-detail article b { margin: 5px 0; font-size: 23px; }.usage-detail article small { color: #73787c; }
@media(max-width:1200px){.subscription-plan-grid{overflow-x:auto;grid-template-columns:repeat(var(--subscription-plan-count),minmax(275px,1fr));padding:4px 2px 14px}.current-subscription-card{grid-template-columns:auto 1fr}.subscription-facts{grid-column:1/-1}.subscription-facts>div:first-child{border-left:0}}
@media(max-width:700px){.subscription-title,.subscription-section-heading{align-items:stretch;flex-direction:column}.subscription-section-heading>p{text-align:left}.current-subscription-card{grid-template-columns:1fr}.current-plan-mark{width:48px;height:48px}.subscription-facts{grid-template-columns:1fr}.subscription-facts>div{padding:10px 0;border-left:0;border-top:1px solid #eadfe0}.scheduled-change{align-items:flex-start;flex-wrap:wrap}.scheduled-change form{width:100%}.scheduled-change .btn{width:100%}.usage-detail>div{grid-template-columns:1fr}}
@media(max-width:520px){.password-reset-shell{margin:20px auto;padding:24px 20px}.password-reset-shell h1{font-size:24px}}

/* Local message testing inbox (available only when the server-side local guard passes). */
.local-test-actions { margin: 14px 0 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.local-test-actions .btn { min-height: 42px; text-decoration: none; }
.test-inbox-shell { width: min(980px, calc(100% - 32px)); min-height: calc(100vh - 64px); margin: 32px auto; padding: 28px; border: 1px solid #e2e4e6; border-radius: 14px; background: #fff; box-shadow: 0 12px 35px rgba(20,25,30,.1); }
.test-inbox-header { padding-bottom: 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; border-bottom: 1px solid #e7e9eb; }
.test-inbox-header span { display: inline-flex; padding: 5px 10px; border-radius: 15px; color: #d80d16; background: #fff0f0; font-size: 14px; font-weight: 700; }
.test-inbox-header h1 { margin: 9px 0 5px; font-size: 30px; }
.test-inbox-header p { margin: 0; color: #676b70; font-size: 15px; }
.test-inbox-actions { display: flex; gap: 10px; }
.test-inbox-actions form { margin: 0; }
.test-inbox-empty { min-height: 360px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: #71757a; text-align: center; }
.test-inbox-empty > i { font-size: 42px; color: #d80d16; }
.test-inbox-empty h2 { margin: 14px 0 4px; font-size: 22px; color: #25292d; }
.test-message-list { padding-top: 20px; display: grid; gap: 14px; }
.test-message-card { padding: 18px; display: flex; gap: 15px; border: 1px solid #e3e5e7; border-radius: 11px; }
.test-message-icon { flex: 0 0 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #d80d16; background: #fff0f0; font-size: 20px; }
.test-message-content { min-width: 0; flex: 1; }
.test-message-meta { display: flex; justify-content: space-between; gap: 15px; }
.test-message-meta b { color: #d80d16; font-size: 14px; }
.test-message-meta time { color: #7a7e82; font-size: 14px; }
.test-message-content h2 { margin: 8px 0 4px; font-size: 19px; }
.test-message-content > p { margin: 0 0 12px; color: #666a6e; }
.test-message-preview { margin-bottom: 14px; padding: 13px; border-radius: 8px; color: #55595d; background: #f7f8f9; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.test-message-content > .btn { margin-right: 8px; }
@media (max-width: 650px) { .local-test-actions { grid-template-columns: 1fr; } .test-inbox-shell { margin: 16px auto; padding: 18px; } .test-inbox-header { align-items: stretch; flex-direction: column; } .test-inbox-actions { flex-direction: column; } .test-message-card { flex-direction: column; } }

@media (max-width: 1199px) {
    .features-assurances,
    .industry-assurances {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px 0;
    }

    .features-assurances > div:nth-child(2),
    .industry-assurances > div:nth-child(2) {
        border-right: 0;
    }
}

@media (max-width: 575px) {
    .company-row,
    .metric-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .company-row > div:last-child {
        grid-column: 1 / -1;
    }

    .features-assurances,
    .industry-assurances {
        grid-template-columns: 1fr;
    }

    .features-assurances > div,
    .industry-assurances > div {
        padding-left: 0;
        border-right: 0;
    }
}

/* Final readable type scale. Keep this at the end so page-specific legacy rules
   cannot restore the old 11–12px text sizes. */
.public-site :where(p, li, label, input, select, textarea) {
    font-size: 15px !important;
}

.public-site :where(small, .small, .form-text, figcaption) {
    font-size: 14px !important;
    line-height: 1.45;
}

.public-site :where(a, button):not(.nav-link):not(.btn) {
    font-size: 14px;
}

.app-body :where(p, li, label, input, select, textarea, td, th, .form-control, .form-select, .input-group-text) {
    font-size: 14px !important;
}

.app-body :where(small, .small, .form-text, .badge) {
    font-size: 14px !important;
    line-height: 1.4;
}

/* FAQ content hierarchy. */
.faq-kicker,
.faq-categories b,
.faq-item > button b,
.faq-support-card b,
.faq-articles h3 {
    font-size: 15px !important;
    line-height: 1.35;
}

.faq-hero-copy > p,
.faq-search input,
.faq-categories small,
.faq-item > div p,
.faq-support-card small,
.faq-support-card p,
.faq-articles a,
.faq-no-results,
.faq-cta p {
    font-size: 14px !important;
    line-height: 1.55;
}

.faq-support-card > a,
.faq-cta > a {
    font-size: 14px !important;
}

/* Reusable compact cards and menus across the remaining pages. */
.catalog-card > a,
.industry-grid a,
.testimonials :where(p, strong, small),
.landing-nav-dropdown :where(b, small),
.notification-menu :where(b, small, em),
.global-search-results :where(b, small),
.global-search-hint :where(b, span),
.auth-security-bar :where(b, small),
.register-security :where(b, small),
.auth-trusted small,
.feature-mini,
.feature-mini > b,
.industry-phone,
.industry-phone span {
    font-size: 14px !important;
    line-height: 1.4;
}

/* Consistent horizontal breathing room for text buttons. */
.public-site .btn,
.auth-site .btn,
.auth-submit,
.auth-form-wrap .social-auth,
.plan-cta,
.faq-support-card > a,
.faq-cta > a,
.trial-status-bar > a {
    box-sizing: border-box;
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.cta-actions .btn,
.industry-cta .btn {
    width: auto;
    min-width: 180px;
    padding-left: 20px !important;
    padding-right: 20px !important;
    white-space: nowrap;
}

.features-cta > .cta-actions {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
}

.app-body .btn:not(.btn-close) {
    box-sizing: border-box;
    padding-left: 16px;
    padding-right: 16px;
}

.app-body .btn-sm:not(.btn-close) {
    padding-left: 12px;
    padding-right: 12px;
}

/* Row action buttons containing only an icon remain compact. */
.app-body .table .btn-sm.btn-light {
    width: 32px;
    min-width: 32px;
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 900px) {
    .features-cta,
    .industry-cta {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 767px) {
    .features-cta > .cta-actions {
        grid-template-columns: 1fr;
    }

    .cta-actions .btn,
    .industry-cta .btn {
        width: 100%;
        min-width: 0;
    }
}
