/* PayStubCheck 2026 — generator pages (approved Basic Paystub generator reference).
   Presentation only: no field, binding, validation, pricing or preview-document changes.
   Generated document canvases (.preview-body / .doc-preview / template images) are untouched. */
body.generator-page {
  background-color: #EEF5F0;
  background-image:
    none,
    radial-gradient(60% 40% at 15% 10%, #F7FBF8 0%, rgba(247, 251, 248, 0) 70%),
    linear-gradient(180deg, #F3F8F4 0%, #EAF3ED 100%);
  background-size: 100% 1800px, auto, auto;
  background-repeat: repeat-y, no-repeat, no-repeat;
}

/* ---- header band ---- */
body.generator-page .generator-header { background: transparent !important; border: 0 !important; padding-top: 26px !important; padding-bottom: 14px !important; color: var(--psx-ink) !important; }
body.generator-page .generator-header-inner { align-items: center; }
body.generator-page .generator-back { display: inline-flex; align-items: center; gap: 8px; color: var(--psx-ink-2) !important; font-weight: 500; font-size: 15px; text-decoration: none; margin-bottom: 8px; }
body.generator-page .generator-back:is(:hover, :focus-visible) { color: var(--psx-emerald-600) !important; }
body.generator-page .generator-title { color: var(--psx-forest-950) !important; letter-spacing: -.025em; }
body.generator-page .generator-title :is(span, .accent) { color: var(--psx-orange-600) !important; }
body.generator-page .generator-subtitle { color: var(--psx-muted) !important; font-size: 16.5px; line-height: 1.6; max-width: 760px; }
body.generator-page .generator-price-badge {
  display: flex; align-items: center; gap: 18px; padding: 18px 26px 18px 18px !important; border-radius: 18px !important;
  background: linear-gradient(180deg, #FFF8EE, #FDEFD9) !important; border: 1px solid #F6D9AE !important;
  box-shadow: 0 14px 30px rgba(238, 139, 28, .14) !important; color: var(--psx-forest-950) !important;
}
body.generator-page .generator-price-badge::before {
  content: ''; flex: 0 0 auto; width: 58px; height: 58px; border-radius: 14px; background: #E2F1E8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136B4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M14 3v5h5M10 12h5M10 16h5'/%3E%3C/svg%3E") center / 30px no-repeat;
}
body.generator-page .price-badge-amount { color: var(--psx-forest-950) !important; font-size: 34px !important; font-weight: 800 !important; letter-spacing: -.02em; }
body.generator-page .price-badge-label { color: var(--psx-muted) !important; }

/* ---- template chooser ---- */
body.generator-page .template-selector-bar { background: transparent !important; border: 0 !important; padding-top: 6px !important; padding-bottom: 12px !important; }
body.generator-page .template-selector-inner { border-top: 1px solid rgba(201, 220, 209, .8); padding-top: 18px; }
body.generator-page .template-selector-label { color: var(--psx-forest-950) !important; font-weight: 700 !important; font-size: 15px !important; }
body.generator-page .template-card { position: relative; border: 1px solid var(--psx-line) !important; border-radius: 12px !important; background: #fff !important; box-shadow: 0 6px 14px rgba(7, 43, 33, .06) !important; transition: border-color .15s, box-shadow .15s, transform .15s, background .15s; }
body.generator-page .template-card:is(:hover, :focus-visible) { border-color: var(--psx-jade-400) !important; background: #F6FBF8 !important; transform: translateY(-2px); }
body.generator-page .template-card.active { border: 2px solid var(--psx-emerald-500) !important; background: #F2FAF5 !important; box-shadow: 0 10px 22px rgba(24, 122, 85, .18) !important; }
body.generator-page .template-card.active::after { content: ''; position: absolute; top: -10px; right: -10px; width: 26px; height: 26px; border-radius: 50%; background: var(--psx-emerald-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center / 15px no-repeat; box-shadow: 0 0 0 3px #fff; }
body.generator-page .template-card-name { color: var(--psx-ink) !important; font-weight: 600 !important; }
body.generator-page .template-card.active .template-card-name { color: var(--psx-emerald-600) !important; }

/* ---- progress stepper ---- */
body.generator-page .form-progress { background: transparent !important; border: 0 !important; box-shadow: none !important; }
body.generator-page .progress-step-num { width: 40px !important; height: 40px !important; border-radius: 50% !important; border: 1.5px solid var(--psx-line-2) !important; background: #fff !important; color: var(--psx-ink-2) !important; font-weight: 700 !important; display: grid !important; place-items: center; }
body.generator-page .progress-step.active .progress-step-num { background: var(--psx-forest-800) !important; border-color: var(--psx-forest-800) !important; color: #fff !important; box-shadow: 0 0 0 4px rgba(24, 122, 85, .16); }
body.generator-page .progress-step.done .progress-step-num { background: var(--psx-jade-500) !important; border-color: var(--psx-jade-500) !important; color: #fff !important; }
body.generator-page .progress-step-label { color: var(--psx-muted) !important; font-weight: 500 !important; }
body.generator-page .progress-step.active .progress-step-label { color: var(--psx-forest-950) !important; font-weight: 700 !important; }
body.generator-page .progress-connector { background: var(--psx-line-2) !important; height: 1.5px !important; }

/* ---- form card ---- */
body.generator-page :is(.form-panel, #generator-form) > .form-section,
body.generator-page .form-section.active { border-radius: 20px !important; background: rgba(255, 255, 255, .96) !important; border: 1px solid rgba(201, 220, 209, .9) !important; box-shadow: 0 18px 40px rgba(7, 43, 33, .08) !important; }
body.generator-page .form-section-title { color: var(--psx-forest-950) !important; font-weight: 700 !important; }
body.generator-page .form-section-icon { width: 52px !important; height: 52px !important; border-radius: 14px !important; background: linear-gradient(180deg, #E9F6EE, #DCEFE4) !important; color: var(--psx-emerald-600) !important; display: grid !important; place-items: center; }
body.generator-page .form-label { color: var(--psx-ink-2) !important; font-weight: 700 !important; letter-spacing: .06em; }
body.generator-page .form-label .required, body.generator-page .form-label .req { color: var(--psx-orange-600) !important; }
body.generator-page :is(.form-input, .form-select):not([type="checkbox"]):not([type="radio"]) { border: 1px solid #CFDDD5 !important; border-radius: 10px !important; background: #fff !important; color: var(--psx-ink) !important; }
body.generator-page :is(.form-input, .form-select):focus { border-color: var(--psx-emerald-500) !important; box-shadow: 0 0 0 3px rgba(34, 147, 106, .16) !important; outline: none; }
body.generator-page .btn-step-next { min-height: 52px !important; border-radius: 12px !important; font-weight: 700 !important; font-size: 16.5px !important; }
body.generator-page .btn-step-prev { border-radius: 12px !important; }
body.generator-page .radio-option { border-radius: 10px !important; border-color: var(--psx-line-2) !important; }
body.generator-page .radio-option:has(input:checked) { border-color: var(--psx-emerald-500) !important; background: #F2FAF5 !important; }

/* ---- preview frame (chrome only; document canvas untouched) ---- */
body.generator-page .preview-wrapper { border-radius: 20px !important; overflow: hidden; border: 1px solid #234E3F !important; background: #1E3B31 !important; box-shadow: 0 26px 50px rgba(7, 43, 33, .22) !important; padding: 0 0 12px !important; }
body.generator-page .preview-toolbar { background: linear-gradient(180deg, #24473A, #1C3A30) !important; border: 0 !important; color: #E8F3EC !important; padding: 12px 16px !important; }
body.generator-page .preview-toolbar-title { color: #E8F3EC !important; font-weight: 500 !important; }
body.generator-page .preview-toolbar-dot:nth-child(1) { background: #F2994A !important; }
body.generator-page .preview-toolbar-dot:nth-child(2) { background: #F2C94C !important; }
body.generator-page .preview-toolbar-dot:nth-child(3) { background: #27AE60 !important; }
body.generator-page .preview-wm-badge { background: var(--psx-orange-grad) !important; color: var(--psx-forest-950) !important; border: 0 !important; border-radius: 999px !important; font-weight: 800 !important; letter-spacing: .08em; }
body.generator-page .preview-body { margin: 0 12px; border-radius: 10px; }

/* ---- checkout / your document ---- */
body.generator-page .checkout-panel { border-radius: 20px !important; background: rgba(255, 255, 255, .96) !important; border: 1px solid rgba(201, 220, 209, .9) !important; box-shadow: 0 18px 40px rgba(7, 43, 33, .08) !important; }
body.generator-page .checkout-panel-title { color: var(--psx-forest-950) !important; font-weight: 700 !important; }
body.generator-page .checkout-line { border-color: #EAF0EC !important; }
body.generator-page .checkout-total-val { color: var(--psx-forest-950) !important; font-weight: 800 !important; }
body.generator-page .email-input-section { border-radius: 14px !important; background: #F1F7F3 !important; border: 1px solid #DCE9E1 !important; }
body.generator-page .btn-checkout { min-height: 54px !important; border-radius: 12px !important; font-size: 16.5px !important; font-weight: 700 !important; }
body.generator-page .btn-checkout:disabled { background: #DCE5DF !important; color: #4F6159 !important; }
body.generator-page .checkout-trust-strip { color: var(--psx-ink-2) !important; }
body.generator-page .trust-strip-item svg { color: var(--psx-emerald-600) !important; }
body.generator-page :is(.multi-paystub-panel, .psc-multi-stub, .multi-stub-card) { border-radius: 16px !important; background: #F8FBF9 !important; border-color: #DCE9E1 !important; }

/* ---- More document options cards ---- */
body.generator-page .psc-mdo { border-radius: 20px !important; background: rgba(255, 255, 255, .96) !important; border: 1px solid rgba(201, 220, 209, .9) !important; box-shadow: 0 18px 40px rgba(7, 43, 33, .08) !important; }
body.generator-page .psc-mdo-eyebrow { color: var(--psx-emerald-600) !important; letter-spacing: .14em; }
body.generator-page .psc-mdo-title { color: var(--psx-forest-950) !important; }
body.generator-page .psc-mdo-all { color: var(--psx-emerald-600) !important; font-weight: 700 !important; }
body.generator-page .psc-mdo-card { border-radius: 16px !important; border: 1px solid var(--psx-line) !important; background: #fff !important; box-shadow: 0 6px 16px rgba(7, 43, 33, .05) !important; transition: transform .15s, box-shadow .15s, border-color .15s, background .15s; }
body.generator-page .psc-mdo-card:is(:hover, :focus-within) { transform: translateY(-2px); border-color: var(--psx-jade-400) !important; background: #FBFDFB !important; box-shadow: 0 14px 28px rgba(7, 43, 33, .1) !important; }
body.generator-page .psc-mdo-media { background: #EEF5F0 !important; }
body.generator-page .psc-mdo-preview { background: #1F2B26 !important; color: #fff !important; border-radius: 999px !important; }
body.generator-page .psc-mdo-label { background: var(--psx-mint-100) !important; color: var(--psx-emerald-600) !important; border-radius: 6px !important; }
body.generator-page .psc-mdo-create { color: var(--psx-emerald-600) !important; font-weight: 700 !important; }

/* ---- info section below the generator (approved layout with leaf artwork) ---- */
body.generator-page .psc-seo-reinforcement { position: relative; background: transparent !important; border: 0 !important; padding-top: clamp(40px, 5vw, 64px) !important; }
body.generator-page .psc-seo-inner { position: relative; }
body.generator-page .psc-seo-inner::before { content: ''; position: absolute; right: -10px; top: -30px; width: min(440px, 36%); aspect-ratio: 900 / 640; background: url("/assets/images/psc-2026/generator-leaves.webp") center / contain no-repeat; pointer-events: none; z-index: 0; }
body.generator-page .psc-seo-inner > :is(.psc-seo-kicker, h2, .psc-seo-lede) { position: relative; z-index: 1; max-width: min(760px, 60%); }
body.generator-page .psc-seo-kicker { color: var(--psx-emerald-600) !important; letter-spacing: .14em; font-weight: 700 !important; }
body.generator-page .psc-seo-reinforcement h2 { color: var(--psx-forest-950) !important; font-size: clamp(30px, 3.2vw, 46px) !important; line-height: 1.06 !important; letter-spacing: -.025em; }
body.generator-page .psc-seo-lede { color: var(--psx-muted) !important; }
body.generator-page .psc-seo-grid { position: relative; z-index: 1; }
body.generator-page .psc-seo-card { border-radius: 20px !important; background: rgba(255, 255, 255, .92) !important; border: 1px solid rgba(201, 220, 209, .9) !important; box-shadow: 0 16px 34px rgba(7, 43, 33, .07) !important; }
body.generator-page .psc-seo-card h3 { color: var(--psx-forest-950) !important; display: flex; align-items: center; gap: 14px; }
body.generator-page .psc-seo-card h3::before { content: ''; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; background: #E2F1E8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136B4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5.5c0 4.4-3 8-7 9.5-4-1.5-7-5.1-7-9.5V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center / 24px no-repeat; }
body.generator-page .psc-seo-card:nth-child(2) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136B4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M14 3v5h5M10 12h5M10 16h5'/%3E%3C/svg%3E"); }
body.generator-page .psc-seo-card:nth-child(3) h3::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136B4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 4-8 4-8-4 8-4z'/%3E%3Cpath d='M4 12l8 4 8-4M4 17l8 4 8-4'/%3E%3C/svg%3E"); }
body.generator-page .psc-seo-card li::marker { color: var(--psx-jade-500); }
body.generator-page .psc-seo-related a { display: flex !important; align-items: center; justify-content: space-between; border: 1px solid var(--psx-line) !important; border-radius: 999px !important; background: #fff !important; color: var(--psx-emerald-600) !important; font-weight: 700 !important; text-decoration: none; transition: background .15s, border-color .15s; }
body.generator-page .psc-seo-related a::after { content: '›'; font-size: 18px; color: var(--psx-forest-800); }
body.generator-page .psc-seo-related a:is(:hover, :focus-visible) { background: var(--psx-mint-100) !important; border-color: var(--psx-jade-400) !important; }
body.generator-page .psc-seo-faq { position: relative; z-index: 1; }
body.generator-page .psc-seo-faq > h3 { color: var(--psx-forest-950) !important; font-size: clamp(24px, 2.2vw, 32px) !important; }
body.generator-page .psc-seo-faq details { border-radius: 14px !important; border: 1px solid var(--psx-line) !important; background: #fff !important; box-shadow: 0 6px 14px rgba(7, 43, 33, .04); }
body.generator-page .psc-seo-faq summary { color: var(--psx-forest-950) !important; font-weight: 700 !important; }
body.generator-page .psc-seo-faq summary::after { color: var(--psx-emerald-600) !important; }
@media (min-width: 900px) {
  body.generator-page .psc-seo-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; align-items: start; }
  body.generator-page .psc-seo-faq > h3 { grid-column: 1 / -1; }
}
@media (max-width: 899px) {
  body.generator-page .psc-seo-inner::before { position: relative; display: block; right: auto; top: auto; width: 70%; margin: 0 auto 10px; }
  body.generator-page .psc-seo-inner > :is(.psc-seo-kicker, h2, .psc-seo-lede) { max-width: none; }
  body.generator-page .generator-price-badge::before { width: 46px; height: 46px; }
}

/* ---- Canadian generator: legacy red interface accents adopt the 2026 palette (document canvases unchanged) ---- */
body.ca-generator-page { --ca-red: #187A55; --ca-red-dark: #0B3B2D; --ca-forest: #072B21; --ca-green: #136B4B; --ca-paper: #F6F8F2; }
body.ca-generator-page .ca-gen-header { background: radial-gradient(circle at 82% 18%, rgba(247, 160, 46, .2), transparent 36%), radial-gradient(120% 140% at 0% 0%, #155C43 0%, #0A3B2D 55%, #062A20 100%) !important; padding-top: 40px; }
body.ca-generator-page .ca-gen-header::after { content: ''; position: absolute; inset: auto 0 0 0; height: 60%; pointer-events: none; background: none center bottom / 100% 100% no-repeat; }
body.ca-generator-page .ca-gen-title-group h1 em, body.ca-generator-page .ca-gen-title-group h1 span { color: var(--psx-orange-500) !important; }
body.ca-generator-page .ca-gen-badge { background: rgba(255, 255, 255, .08); border-color: rgba(226, 180, 90, .45); }
body.ca-generator-page .ca-gen-badge svg { fill: #D52B1E; }
body.ca-generator-page .ca-generator-layout .psec-num { background: var(--psx-mint-100) !important; color: var(--psx-forest-800) !important; }
body.ca-generator-page .ca-generator-layout .pgp-progress-fill { background: linear-gradient(90deg, var(--psx-jade-500), var(--psx-orange-500)) !important; }
body.ca-generator-page :is(.ca-upload-icon, .ca-engine-badge.error) { background: var(--psx-mint-100) !important; }
body.ca-generator-page .ca-confirm { border-color: #F2D7AC !important; background: #FFF9EF !important; }
body.ca-generator-page .ca-segmented button[aria-pressed="true"] { color: var(--psx-forest-800) !important; }
body.ca-generator-page .ca-preview-panel { border-top-color: var(--psx-orange-500) !important; }
body.ca-generator-page .ca-mobile-preview-controls button[data-ca-zoom-mode][aria-pressed="true"] { background: var(--psx-mint-100) !important; color: var(--psx-forest-800) !important; }
body.ca-generator-page .ca-gen-header :is(.generator-title, h1) { color: #fff !important; }
body.ca-generator-page .ca-gen-header .generator-back { color: rgba(236, 248, 241, .78) !important; }
body.ca-generator-page .ca-gen-header .generator-subtitle, body.ca-generator-page .ca-gen-title-group > p { color: rgba(236, 248, 241, .85) !important; }
body.ca-generator-page .ca-gen-kicker { color: var(--psx-mint-300) !important; }
body.ca-generator-page .ca-gen-badge svg, body.ca-generator-page .ca-gen-badge svg * { fill: #D52B1E !important; }
body.ca-generator-page .ca-gen-badge :is(b, strong, .price-badge-amount) { color: #fff !important; }
body.ca-generator-page .ca-gen-header.generator-header, body.ca-generator-page .ca-gen-header { padding-top: 40px !important; }

/* ===== patch-002-r2: template chooser — no clipping, aligned with the form/preview columns ===== */
body.generator-page .template-selector-inner,
body.generator-page .premium-template-selector-inner,
body.generator-page .premium-logo-upload { box-sizing: border-box; width: min(1232px, calc(100% - 48px)) !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; overflow: visible !important; }
body.generator-page .template-selector-inner { gap: 28px !important; padding-top: 20px !important; }
body.generator-page .template-selector-bar { overflow: visible !important; }
/* The scroll box keeps room for the selected-card check badge so it is never cut off. */
body.generator-page .template-selector-cards { gap: 14px !important; padding: 13px 13px 10px 4px !important; margin: -13px 0 -10px -4px !important; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; }
body.generator-page .template-card { width: 116px !important; padding: 8px 8px 9px !important; gap: 8px !important; scroll-snap-align: start; }
body.generator-page .template-card-preview { width: 98px !important; height: 74px !important; border-radius: 6px !important; border-color: #E3EEE8 !important; }
body.generator-page .template-thumb-img { object-fit: contain !important; }
body.generator-page .template-card-name { font-size: 12.5px !important; letter-spacing: 0 !important; line-height: 1.2; }
body.generator-page .template-card.active::after { top: -9px !important; right: -9px !important; }
body.generator-page .template-card:focus-visible { outline: 3px solid rgba(24, 122, 85, .35); outline-offset: 2px; }
/* Premium carousel: same badge room and checkmark treatment. */
body.generator-page .premium-template-viewport { padding: 13px 9px 10px 4px; margin: -13px 0 -10px -4px; }
body.generator-page .premium-template-option { position: relative; flex-basis: 104px !important; width: 104px !important; border-width: 1px !important; border-radius: 12px !important; box-shadow: 0 6px 14px rgba(7, 43, 33, .06); }
body.generator-page .premium-template-option.is-selected { border: 2px solid var(--psx-emerald-500) !important; background: #F2FAF5 !important; box-shadow: 0 10px 22px rgba(24, 122, 85, .18) !important; }
body.generator-page .premium-template-option.is-selected::after { content: ''; position: absolute; top: -9px; right: -9px; width: 26px; height: 26px; border-radius: 50%; background: var(--psx-emerald-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center / 15px no-repeat; box-shadow: 0 0 0 3px #fff; z-index: 4; }
body.generator-page .premium-template-thumb { width: 86px !important; height: 111px !important; }
body.generator-page .premium-template-name { font-size: 11.5px !important; max-width: 88px !important; }
@media (max-width: 760px) {
  body.generator-page .template-selector-inner,
  body.generator-page .premium-template-selector-inner,
  body.generator-page .premium-logo-upload { width: calc(100% - 32px) !important; }
  body.generator-page .template-selector-inner { flex-direction: column; align-items: flex-start !important; gap: 12px !important; }
  /* Small screens: wrap into a tidy grid instead of a hidden-scrollbar strip. */
  body.generator-page .template-selector-cards { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(98px, 1fr)); width: 100%; box-sizing: border-box; overflow: visible !important; margin: -13px -13px -10px -4px !important; }
  body.generator-page .template-card { width: auto !important; }
  body.generator-page .template-card-preview { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; }
}
/* r2: keep the selected-card shadow inside the scroll box; align Saved Profiles with the columns. */
body.generator-page .template-selector-cards,
body.generator-page .premium-template-viewport { padding-bottom: 24px !important; margin-bottom: -24px !important; }
body.generator-page .premium-template-selector { background: transparent !important; border-bottom: 0 !important; padding-top: 6px !important; padding-bottom: 14px !important; }
body.generator-page .premium-template-selector-inner { border-top: 1px solid rgba(201, 220, 209, .8); padding-top: 20px !important; }
body.generator-page .premium-template-selector-title { font-size: 15px !important; font-weight: 700 !important; color: var(--psx-forest-950) !important; }
body.generator-page .premium-template-carousel { flex: 0 1 auto !important; }
/* Show only whole template cards: the viewport is sized to a whole number of cards and snaps to card edges. */
body.generator-page .premium-template-viewport { flex: 0 1 auto !important; box-sizing: border-box; width: 917px; max-width: 917px; scroll-snap-type: x mandatory; scroll-padding-left: 6px; }
body.generator-page .premium-template-option { scroll-snap-align: start; }
@media (max-width: 1279px) { body.generator-page .premium-template-viewport { width: 689px; max-width: 689px; } }
@media (max-width: 1023px) { body.generator-page .premium-template-viewport { width: 461px; max-width: 461px; } }
@media (max-width: 760px)  { body.generator-page .premium-template-carousel { width: 100%; justify-content: center; }
  body.generator-page .premium-template-viewport { width: 233px; max-width: 233px; } }
@media (min-width: 480px) and (max-width: 760px) { body.generator-page .premium-template-viewport { width: 347px; max-width: 347px; } }
body.generator-page .psc-profile-context { box-sizing: border-box; width: min(1232px, calc(100% - 48px)) !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 760px) { body.generator-page .psc-profile-context { width: calc(100% - 32px) !important; } }
/* r2: Advanced template choices — whole template visible, consistent selected outline + checkmark. */
body.generator-page .template-choice { border: 1px solid var(--psx-line, #DCE8E1) !important; border-radius: 14px !important; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
body.generator-page .template-choice img { object-fit: contain !important; object-position: top center; background: #fff; }
body.generator-page .template-choice:hover { border-color: var(--psx-jade-400, #4FB386) !important; background: #F6FBF8; }
body.generator-page .template-choice:focus-within { outline: 3px solid rgba(24, 122, 85, .35); outline-offset: 2px; }
body.generator-page .template-choice:has(input:checked) { border: 2px solid var(--psx-emerald-500, #187A55) !important; background: #F2FAF5; box-shadow: 0 10px 22px rgba(24, 122, 85, .16) !important; }
body.generator-page .template-choice:has(input:checked)::before { content: ''; position: absolute; top: 8px; right: 8px; z-index: 3; width: 26px; height: 26px; border-radius: 50%; background: var(--psx-emerald-500, #187A55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center / 15px no-repeat; box-shadow: 0 0 0 3px #fff; pointer-events: none; }
body.generator-page .template-choice strong { font-size: 13px !important; line-height: 1.3; }
body.generator-page .template-choice:has(input:checked) strong { color: var(--psx-emerald-600, #136B4B); }
/* Advanced: preview panel now starts directly with the Live Preview window (duplicate heading removed). */
body.generator-page .advanced-preview-panel { background: transparent !important; border: 0 !important; box-shadow: none !important; }

/* ===== patch-002-r2: Schedule C — grouped, aligned fields; centered preview; tidy order panel ===== */
/* Every field fills its grid column; labels sit flush-left above their controls. */
body.sc-page .sc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 20px !important; align-items: start; }
body.sc-page .sc-grid > .sc-field { grid-template-columns: minmax(0, 1fr); justify-items: stretch; text-align: left; }
body.sc-page .sc-field > span:first-child { justify-self: start; text-align: left; }
body.sc-page .sc-field { margin-bottom: 16px !important; font-size: 13.5px !important; font-weight: 600 !important; color: var(--psx-forest-950, #072B21); gap: 7px; }
body.sc-page .sc-field :is(input, select, textarea) { width: 100% !important; max-width: none !important; justify-self: stretch !important; box-sizing: border-box; min-height: 46px !important; height: 46px; border: 1px solid #CFDDD5 !important; border-radius: 10px !important; padding: 10px 14px !important; font-size: 15px !important; background-color: #fff !important; transition: border-color .15s ease, box-shadow .15s ease; }
body.sc-page .sc-field textarea { height: auto; min-height: 96px !important; }
body.sc-page .sc-field select { padding-right: 36px !important; }
body.sc-page .sc-field :is(input, select, textarea):focus { outline: none; border-color: var(--psx-emerald-500, #187A55) !important; box-shadow: 0 0 0 3px rgba(24, 122, 85, .16) !important; }
body.sc-page .sc-field :is(input, select, textarea)[aria-invalid="true"] { border-color: #C2410C !important; box-shadow: none; }
body.sc-page .sc-field :is(input, select, textarea):disabled { background-color: #F1F5F3 !important; color: #6B7A73; }
body.sc-page .sc-grid--1 { grid-template-columns: minmax(0, 1fr) !important; }
body.sc-page .sc-grid--street { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) !important; }
body.sc-page .sc-grid--3 { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) !important; }
body.sc-page .sc-step > h2 { margin: 0 0 6px !important; font-size: clamp(26px, 2.2vw, 32px) !important; color: var(--psx-forest-950, #072B21); letter-spacing: -.02em; }
body.sc-page .sc-step-intro { margin: 0 0 20px; color: var(--psx-muted, #5B6B64); font-size: 15px; line-height: 1.55; }
body.sc-page .sc-group { margin: 0 0 16px; padding: 18px 20px 4px; border: 1px solid #E1ECE6; border-radius: 14px; background: #FBFDFC; min-width: 0; }
body.sc-page .sc-group > legend { float: left; width: 100%; margin: 0 0 14px; padding: 0; font-size: 16.5px; font-weight: 700; color: var(--psx-forest-950, #072B21); }
body.sc-page .sc-group > legend + * { clear: both; }
body.sc-page .sc-group > .sc-field { display: flex; }
body.sc-page .sc-group > .sc-hint { margin: -8px 0 14px; }
body.sc-page .sc-check { display: grid !important; grid-template-columns: 20px minmax(0, 1fr); gap: 12px !important; align-items: start; margin: 4px 0 16px !important; font-size: 14px !important; line-height: 1.55 !important; color: var(--psx-ink, #17231E); }
body.sc-page .sc-check input { width: 20px !important; height: 20px !important; margin: 1px 0 0 !important; accent-color: var(--psx-emerald-500, #187A55); }
body.sc-page .sc-note { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 16px; border-radius: 12px; background: #EEF5F1; border: 1px solid #DCEAE2; color: #3E5149 !important; font-size: 13.5px !important; }
body.sc-page .sc-note::before { content: ''; width: 22px; height: 22px; border-radius: 50%; background: var(--psx-emerald-500, #187A55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 11v6M12 7.2v.1'/%3E%3C/svg%3E") center / 16px no-repeat; }
body.sc-page .sc-step { padding: 28px !important; border-radius: 18px !important; }
body.sc-page .sc-step-actions { display: flex; justify-content: space-between; gap: 14px; margin-top: 4px; }
body.sc-page .sc-step-actions button { min-height: 48px; padding: 0 26px; border-radius: 12px; font-weight: 700; font-size: 15px; }
body.sc-page .sc-step-actions .sc-primary { background: linear-gradient(180deg, #FFB547, #F59A1B) !important; color: #1B1206 !important; border: 0 !important; }
body.sc-page .sc-step-actions .sc-secondary { background: #fff !important; border: 1px solid #CFDDD5 !important; color: var(--psx-forest-950, #072B21) !important; }
/* Five steps on one row: number above label, connector line between steps. */
body.sc-page nav.sc-steps { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 !important; margin: 0 0 22px !important; padding: 0 !important; }
body.sc-page nav.sc-steps .progress-connector { display: none !important; }
body.sc-page nav.sc-steps .progress-step { position: relative; display: flex !important; flex-direction: column; align-items: center; gap: 8px !important; min-width: 0; padding: 0 2px !important; }
body.sc-page nav.sc-steps .progress-step + .progress-connector + .progress-step::before { content: ''; position: absolute; top: 19px; right: calc(50% + 26px); width: calc(100% - 52px); height: 1px; background: #CFDDD5; }
body.sc-page nav.sc-steps .progress-step-num { width: 38px !important; height: 38px !important; font-size: 14px !important; border: 1px solid #CFDDD5 !important; background: #fff !important; color: var(--psx-forest-950, #072B21) !important; }
body.sc-page nav.sc-steps .progress-step[aria-current=true] .progress-step-num { background: var(--psx-forest-900, #0B3D2B) !important; border-color: var(--psx-forest-900, #0B3D2B) !important; color: #fff !important; box-shadow: 0 0 0 5px rgba(11, 61, 43, .12); }
body.sc-page nav.sc-steps .progress-step-label { font-size: 13px !important; white-space: normal !important; text-align: center; line-height: 1.25; color: #5B6B64 !important; }
body.sc-page nav.sc-steps .progress-step[aria-current=true] .progress-step-label { color: var(--psx-forest-950, #072B21) !important; font-weight: 700; }
/* Preview: the paper is centered inside the actual preview viewport, never wider than it. */
body.sc-page .sc-preview-column .preview-body--zoomable { box-sizing: border-box !important; width: calc(100% - 24px) !important; margin: 0 12px !important; padding: 18px !important; display: block !important; text-align: center !important; background: #EEF3F0 !important; overflow: hidden !important; }
body.sc-page #sc-preview { display: block !important; width: 100%; max-width: 640px; margin: 0 auto; text-align: left; }
body.sc-page #sc-preview > .sc-paper { margin: 0 auto !important; box-shadow: 0 6px 22px rgba(7, 43, 33, .14); background: #fff; }
body.sc-page #sc-preview svg { display: block; width: 100% !important; height: auto !important; }
body.sc-page .sc-preview-column .preview-header { display: flex; align-items: baseline; justify-content: space-between; padding: 16px 18px 12px !important; }
body.sc-page .sc-preview-column .preview-header h2 { margin: 0; font-size: 19px !important; color: var(--psx-forest-950, #072B21); }
/* Order panel */
body.sc-page .sc-checkout .email-input-label { display: flex; align-items: center; gap: 10px; font-size: 14.5px !important; font-weight: 700 !important; color: var(--psx-forest-950, #072B21) !important; }
body.sc-page .sc-checkout .email-privacy-note { font-size: 13.5px !important; color: #4E5F57 !important; margin-top: 10px !important; }
body.sc-page .sc-checkout .accuracy-disclaimer-label { display: grid !important; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; font-size: 14px !important; line-height: 1.55 !important; }
body.sc-page .sc-checkout .accuracy-disclaimer-label input { width: 20px; height: 20px; margin: 2px 0 0 !important; accent-color: var(--psx-emerald-500, #187A55); }
body.sc-page .sc-checkout .checkout-trust-strip { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 10px 14px; }
body.sc-page .sc-checkout .trust-strip-item { display: inline-flex; align-items: center; gap: 7px; font-size: 13px !important; }
body.sc-page .sc-checkout .trust-strip-item::before { content: ''; width: 16px; height: 16px; flex: 0 0 16px; background: center / 16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23136B4B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E"); }
@media (max-width: 1024px) and (min-width: 801px) { body.sc-page .sc-grid { grid-template-columns: minmax(0, 1fr) !important; } body.sc-page .sc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) {
  body.sc-page .sc-grid, body.sc-page .sc-grid--street { grid-template-columns: minmax(0, 1fr) !important; }
  body.sc-page .sc-grid--3 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
  body.sc-page .sc-grid--3 > .sc-field:first-child { grid-column: 1 / -1; }
  body.sc-page .sc-group { padding: 16px 14px 2px; }
  body.sc-page .sc-step { padding: 20px 16px !important; }
  body.sc-page nav.sc-steps .progress-step-label { font-size: 11px !important; }
  body.sc-page nav.sc-steps .progress-step-num { width: 32px !important; height: 32px !important; }
  body.sc-page nav.sc-steps .progress-step + .progress-connector + .progress-step::before { top: 16px; right: calc(50% + 22px); width: calc(100% - 44px); }
}
/* r2 Schedule C: errors are flagged once a value is entered (empty required fields stay neutral; the
   Review step still lists everything that must be completed and checkout stays disabled until then). */
body.sc-page .sc-field :is(input, textarea, select)[aria-invalid="true"] { border-color: #D97745 !important; background-color: #FFFBF8 !important; }
body.sc-page .sc-field :is(input, textarea)[aria-invalid="true"]:placeholder-shown,
body.sc-page .sc-field select[aria-invalid="true"]:has(option[value=""]:checked) { border-color: #CFDDD5 !important; background-color: #fff !important; }
body.sc-page :is(.sc-check, .accuracy-disclaimer-label) input[type="checkbox"] { box-shadow: none !important; outline: none; border-radius: 4px; }
body.sc-page :is(.sc-check, .accuracy-disclaimer-label) input[type="checkbox"]:focus-visible { outline: 3px solid rgba(24, 122, 85, .35); outline-offset: 2px; }
body.sc-page .sc-field { margin-bottom: 8px !important; }
body.sc-page .sc-group { padding-bottom: 8px; }
body.sc-page .sc-mail-i { color: var(--psx-emerald-600, #136B4B); flex: 0 0 auto; }
body.sc-page .sc-source-banner { box-sizing: border-box; width: min(1232px, calc(100% - 48px)) !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }

/* ===== patch-002-r2: Independent Contractor Agreement — neutral emerald document, optional customer logo ===== */
body.agreement-page .ag-paper { padding-top: 40px !important; color: #222B28; box-shadow: 0 6px 22px rgba(7, 43, 33, .12) !important; }
body.agreement-page .ag-doc-brandbar, body.agreement-page .ag-doc-mark { display: none !important; }
body.agreement-page .ag-doc-hero { grid-template-columns: minmax(0, 1fr) !important; margin-bottom: 20px !important; padding-bottom: 16px; border-bottom: 0; position: relative; }
body.agreement-page .ag-doc-hero.has-logo { grid-template-columns: minmax(0, 1fr) 132px !important; }
body.agreement-page .ag-doc-hero::after { content: ''; position: absolute; left: 0; bottom: 0; width: 56px; height: 2px; background: #187A55; }
body.agreement-page .ag-doc-eyebrow { color: #187A55 !important; }
body.agreement-page .ag-paper .ag-doc-hero h2 { color: #0B3D2B !important; }
body.agreement-page .ag-doc-hero p { color: #5E6B66 !important; }
body.agreement-page .ag-doc-logo { width: 132px; height: 56px; display: flex; align-items: center; justify-content: flex-end; }
body.agreement-page .ag-doc-logo img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
body.agreement-page .ag-preview-stamp { border-color: #DCE7E1 !important; background: #F4F8F6 !important; color: #3F5A4E !important; }
body.agreement-page .ag-doc-summary { border-color: #DCE7E1 !important; background: #FAFCFB !important; }
body.agreement-page .ag-doc-summary > div { border-color: #E4ECE8 !important; }
body.agreement-page .ag-doc-summary strong { color: #0B3D2B !important; }
body.agreement-page .ag-doc-intro { border-left: 0 !important; border: 1px solid #DCE7E1 !important; border-radius: 8px; background: #F4F8F6 !important; color: #46544F !important; }
body.agreement-page .ag-doc-section-title { border-bottom-color: #E2E9E5 !important; }
body.agreement-page .ag-doc-section-title span { background: #0B3D2B !important; color: #fff !important; }
body.agreement-page .ag-doc-section-title strong { color: #0B3D2B !important; }
body.agreement-page .ag-doc-note { border-color: #DCE7E1 !important; background: #F4F8F6 !important; color: #4F5C57 !important; }
body.agreement-page .ag-pdf-footer { border-top-color: #E2E9E5 !important; color: #75817C !important; }
body.agreement-page .gen-lightbox-body .ag-paper { padding-top: 56px !important; }
body.agreement-page .gen-lightbox-body .ag-doc-hero.has-logo { grid-template-columns: minmax(0, 1fr) 170px !important; }
body.agreement-page .gen-lightbox-body .ag-doc-logo { width: 170px; height: 72px; }
/* Logo upload control */
body.agreement-page .ag-logo-field { margin: 4px 0 22px; padding: 16px 18px; border: 1px dashed #BFD6C9; border-radius: 14px; background: #F7FBF9; }
body.agreement-page .ag-logo-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 12px; }
body.agreement-page .ag-logo-head .form-label { margin: 0 !important; }
body.agreement-page .ag-optional { font-weight: 500; text-transform: none; letter-spacing: 0; color: #5E6B66; }
body.agreement-page .ag-logo-hint { font-size: 13px; color: #5E6B66; }
body.agreement-page .ag-logo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
body.agreement-page .ag-logo-thumb { width: 112px; height: 52px; display: flex; align-items: center; justify-content: center; border: 1px solid #DCE7E1; border-radius: 10px; background: #fff; overflow: hidden; color: #8A9792; font-size: 12px; }
body.agreement-page .ag-logo-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
body.agreement-page .ag-logo-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
body.agreement-page .ag-logo-button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 12px; background: #0B3D2B; color: #fff; font-weight: 700; font-size: 14.5px; cursor: pointer; transition: background-color .15s ease; }
body.agreement-page .ag-logo-button::before { content: ''; width: 18px; height: 18px; background: center / 18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E"); }
body.agreement-page .ag-logo-button:hover { background: #136B4B; }
body.agreement-page .ag-logo-row:has(.ag-logo-input:focus-visible) .ag-logo-button { outline: 3px solid rgba(24, 122, 85, .4); outline-offset: 2px; }
body.agreement-page fieldset:disabled .ag-logo-button { opacity: .5; cursor: not-allowed; }
body.agreement-page .ag-logo-remove { min-height: 44px; padding: 0 16px; border: 1px solid #CFDDD5; border-radius: 12px; background: #fff; color: #0B3D2B; font-weight: 700; font-size: 14px; cursor: pointer; }
body.agreement-page .ag-logo-remove:hover { border-color: #187A55; background: #F2FAF5; }
body.agreement-page .ag-logo-status { margin: 10px 0 0; min-height: 0; font-size: 13px; color: #136B4B; }
body.agreement-page .ag-logo-status:empty { display: none; }
body.agreement-page .ag-logo-status.is-error { color: #B4410E; font-weight: 600; }

/* r2: tablets use the same deliberate wrapped grid as phones (no squeezed, clipped strip). */
@media (min-width: 761px) and (max-width: 1023px) {
  body.generator-page .template-selector-inner { flex-direction: column; align-items: flex-start !important; gap: 12px !important; }
  body.generator-page .template-selector-cards { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(116px, 140px)); width: 100%; box-sizing: border-box; overflow: visible !important; margin: -13px -13px -10px -4px !important; }
  body.generator-page .template-card { width: auto !important; }
  body.generator-page .template-card-preview { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; }
}

/* ===== patch-002-r4: generator form layout audit ===== */
/* Field grids use a 4-track subgrid (label / control / hint / error) so labels and controls line up across a row.
   Any other child (a state-certificate block, a checkbox row, a note) must occupy the same 4 tracks, otherwise every
   following pair of fields is pushed half a row out of line. */
@supports (grid-template-rows:subgrid) {
  body.generator-page :is(.form-row,.form-grid,.ag-field-grid,.sc-grid,.expense-fields,.ca-fields-grid,.pgp-grid-2,.pgp-grid-3) >
    :not(:is(.form-group,.pr-field,.sc-field,.expense-field,.ca-field,.pgp-field,.form-field):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])):not(:has(> input ~ input))) {
    grid-row:span 4;
  }
}
/* The state withholding certificate is a full-width block, never squeezed into one column of a two-column grid. */
body.generator-page [data-psc-state-facts] { grid-column:1 / -1; min-width:0; margin-block:6px 4px; padding:18px 18px 8px; border:1px solid #DCEAE2; border-radius:14px; background:#F7FBF8; }
body.generator-page [data-psc-state-facts] > h3 { margin:0 0 4px; }
body.generator-page [data-psc-state-facts] > .form-hint { margin:0 0 12px; max-width:68ch; }
body.generator-page [data-psc-state-facts] .form-grid { grid-template-columns:repeat(auto-fit, minmax(min(100%, 230px), 1fr)); column-gap:16px; }
/* Checkbox rows inside two-column grids span the full width so long labels never overlap the next box. */
body.generator-page :is(.pgp-grid-2,.pgp-grid-3,.form-grid,.form-row) > .form-group:has(> input[type="checkbox"] ~ input[type="checkbox"]),
body.generator-page :is(.pgp-grid-2,.pgp-grid-3,.form-grid,.form-row) > .form-group.full { grid-column:1 / -1; }
body.generator-page :is(.pgp-grid-2,.pgp-grid-3,.form-grid) > .form-group.full:has(> label > input[type="checkbox"]) { display:flex !important; flex-direction:column; align-items:flex-start; gap:10px; padding-top:4px; }
body.generator-page :is(.pgp-grid-2,.pgp-grid-3,.form-grid) > .form-group.full:has(> label > input[type="checkbox"]) > label { grid-row:auto !important; align-self:flex-start !important; justify-content:flex-start; text-align:left; margin:0; }
body.generator-page label:has(> input[type="checkbox"]) { display:inline-flex; align-items:flex-start; gap:8px; line-height:1.4; }
/* Field-help bubbles stay inside the visible card (side and direction are set when the bubble opens). */
.psc-tip-left .psc-tip-popup { left:0; right:auto; transform:none; }
.psc-tip-left .psc-tip-popup::after { left:10px; right:auto; transform:none; }
.psc-tip-below .psc-tip-popup { bottom:auto; top:calc(100% + 8px); }
.psc-tip-below .psc-tip-popup::after { top:auto; bottom:100%; border-top-color:transparent; border-bottom-color:#112A1E; }
/* Narrow form columns (tablets and small laptops, where the live preview sits beside the form): field grids drop to
   as many columns as fit at a comfortable width instead of squeezing three or four controls into a row. */
body.generator-page :is(#generator-form, form, .psec-body, .form-card, .generator-form-card, .expense-form-panel) { container-type:inline-size; }
@container (max-width: 600px) {
  body.generator-page :is(.form-row,.form-grid,.ag-field-grid,.sc-grid,.expense-fields,.ca-fields-grid,.pgp-grid-2,.pgp-grid-3) {
    grid-template-columns:repeat(auto-fit, minmax(min(100%, 190px), 1fr)) !important;
  }
}
/* Privacy note beneath the Saved Profiles bar on every generator page. */
.psc-privacy-note { position:relative; z-index:19; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px 16px;
  box-sizing:border-box; width:min(1232px, calc(100% - 48px)); margin:0 auto 18px; padding:14px 18px; border:1px solid #BFE0CE; border-left:4px solid #1F8A5B; border-radius:14px;
  background:linear-gradient(135deg, #EEF8F2 0%, #F7FBF8 100%); color:#29433A; font-family:'DM Sans', system-ui, sans-serif; }
.psc-privacy-note__icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#1F8A5B; color:#fff; box-shadow:0 6px 14px rgba(31,138,91,.25); }
.psc-privacy-note strong { display:block; margin:0 0 2px; font-family:'Bricolage Grotesque', 'DM Sans', sans-serif; font-size:16.5px; font-weight:800; color:#0B3D2B; letter-spacing:-.01em; }
.psc-privacy-note p { margin:0; font-size:13.5px; line-height:1.55; color:#3D554B; }
.psc-privacy-note > a { align-self:center; white-space:nowrap; font-size:13px; font-weight:800; color:#0F5A40; text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 760px) {
  .psc-privacy-note { width:calc(100% - 32px); grid-template-columns:auto minmax(0,1fr); padding:13px 14px; gap:10px 12px; }
  .psc-privacy-note__icon { width:36px; height:36px; align-self:start; margin-top:2px; }
  .psc-privacy-note > a { grid-column:2; justify-self:start; }
  .psc-privacy-note p { font-size:13px; }
}
