/* Rev4 shared component patterns */
.ff-document-error { margin:24px auto;padding:24px;max-width:1000px;background:var(--white);border-left:4px solid var(--brand-red);color:var(--text-1); }
.r-card:hover,.rel-card:hover { transform:none!important; }
.vp-stage[hidden] { display:none!important; }.vp-roof-condition{font-size:12px;line-height:1.5}.vp-conditions label select{display:block;width:100%;min-height:44px;margin-top:6px}
.ad-x { width:44px;min-width:44px;height:44px;min-height:44px; }
@media(pointer:coarse){.ad-input,.ad-select,.ad-btn{min-height:44px}}
.cmp-mode { display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:430px;width:100%;margin:0 0 24px;padding:4px;border:1px solid var(--dark-text-3);border-radius:8px; }
.cmp-mode a { display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;text-align:center;color:var(--dark-text-1);font-weight:700;font-size:14px;line-height:1.25;border-radius:4px; }
.cmp-mode a[aria-current="page"] { background:var(--brand-orange);color:var(--dark); }
.cmp-mode a:hover:not([aria-current]) { background:var(--dark-3); }
.page-header .ph-inner,.calc-hero-inner { max-width:1180px;margin-inline:auto;width:100%; }
.ff-product-visual { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;min-height:114px;color:var(--text-2); }
.ff-product-visual svg { display:block;width:180px;height:84px;max-width:100%; }
.ff-product-visual figcaption,.ff-product-visual-empty span { font-size:11px;line-height:1.35;text-align:center;color:inherit; }
.ff-product-visual-empty { opacity:.7; }
.pc-visual { width:100%; }.pc-visual .ff-product-visual { padding-top:16px; }
.ff-product-visual-compact { min-height:86px;color:inherit; }.ff-product-visual-compact svg { width:140px;height:65px; }
.article p,.article li { font-size:17px; }
.a-table-scroll { overflow-x:auto;max-width:100%;margin:20px 0; }
.article .a-spec-table { display:table;min-width:900px;table-layout:fixed; }
.a-spec-table caption { text-align:left;font-size:14px;padding-bottom:12px; }
.article .a-spec-table th { text-transform:none;letter-spacing:0;line-height:1.45; }
.article .a-spec-table th[scope="row"] { width:27%;font-size:13px; }
.article .a-spec-table td { font-family:var(--figures, var(--font));font-size:12px; }
@media(max-width:480px){.cmp-mode{max-width:100%}.cmp-mode a{padding:10px 8px}.footer-grid{grid-template-columns:1fr!important}.article .a-related-grid{grid-template-columns:minmax(0,1fr)}}
@media print{.cmp-mode{display:none!important}.ff-product-visual{break-inside:avoid}.ff-product-visual-compact{min-height:64px}.ff-product-visual-compact svg{height:44px}.a-table-scroll{overflow:visible}.article .a-spec-table{min-width:0;font-size:8pt}.article .a-spec-table td{font-size:8pt}}
:root { --brand-orange:#FF6624; --brand-red:#DB1A1A; --accent:var(--brand-orange); --accent-2:var(--brand-orange); --red:var(--brand-red); --red-bar:var(--brand-red); --accent-ink:#0F0F0E; }
:focus-visible { outline:3px solid var(--brand-orange); outline-offset:3px; }
.nav,.footer,.hero,.page-header,.g-hero,.calc-hero,.home-membership { --accent-ink:var(--brand-orange); }
.footer-grid>* { min-width:0; } .footer a { overflow-wrap:anywhere; }
.ff-remove,.ct-slot-remove.ff-remove,.cv-slot-head .ff-remove,.membership-modal-close { width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;text-decoration:none;font-size:24px;line-height:1;color:var(--text-1);background:var(--white); }
.ff-remove:hover,.membership-modal-close:hover { background:var(--accent-light); }
.ff-remove:active { transform:scale(.96); }
.page-header,.calc-hero { padding:34px 40px 30px; }
.page-header h1,.calc-hero h1,.g-hero h1 { font-size:clamp(28px,3.8vw,38px);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin:0 0 12px; }
.page-header .ph-inner,.page-header-inner { align-items:flex-start;flex-wrap:wrap;gap:20px; }
.comparison-scroll { overflow-x:auto;max-width:100%;border-radius:var(--radius); }
.comparison-table { min-width:580px; }
.cv-slots,.cv-actions { grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); }
.ct-slots,.compare-tray,.ct-inner { min-width:0; }
#ct-slots { overflow-x:auto;max-width:100%; } #ct-slots>div { flex-shrink:0; }
.ct-slot.filled { min-height:52px; }
.hero-actions,.ph-actions,.bf-footer,.adv-hero-actions { flex-wrap:wrap;min-width:0; }
.home-membership>*,.membership-band>*,.how-membership-sell>*,.hero-inner>*,.bf-row>* { min-width:0; }
.membership-gate { overflow-wrap:anywhere; }
.article { max-width:76ch;font-size:17px;line-height:1.75;overflow-wrap:anywhere; }
.article p { margin-block:0 1.2em; } .article h2 { font-size:clamp(24px,3vw,30px);line-height:1.25;margin:1.6em 0 .6em;scroll-margin-top:100px; }
.article h3 { font-size:21px;line-height:1.35;margin:1.3em 0 .6em; }
.article ul,.article ol { padding-left:1.4em;margin-bottom:1.2em; } .article li+li { margin-top:.45em; }
.article table { display:block;max-width:100%;overflow-x:auto; }
.article img { height:auto;max-width:100%; }
@media(max-width:767px){.page-header,.calc-hero{padding:28px 20px}.footer{padding:36px 20px 28px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.footer-grid>div:first-child{grid-column:1/-1}.membership-band,.how-membership-sell{flex-direction:column;align-items:flex-start}.home-membership{grid-template-columns:1fr;margin:24px 16px;padding:24px}.cat-section{padding:24px 16px 0}.hero-actions>*{max-width:100%;white-space:normal}.ct-inner{flex-wrap:wrap} .bf-row{grid-template-columns:1fr} }
@media print {
 @page comparison { size:A4 landscape; margin:13mm; }
 body.ff-comparison-page { page:comparison; }
 html,body { background:#fff!important;color:#111!important; }
 .nav,.launch-strip,.footer,.membership-modal,.membership-band,.home-membership,.article-question,.page-header,.calc-hero,.cv-slots,.cv-actions,.cmp-bottom-actions,.ct-cta-row,.ct-quote-link { display:none!important; }
 .pf,.pf>thead,.pf>tbody,.pf>tfoot,.pf>*>tr,.pf>*>tr>td { display:block!important;width:100%;border:0;padding:0; }
 .pf>tbody>tr,.pf>tbody>tr>td { break-inside:auto;page-break-inside:auto; }
 .comparison-table .ct-head-cell:not(.label-col) { width:auto!important; }
 .ff-print-head { display:flex!important;position:static;border-bottom:2px solid #111;break-inside:avoid;margin:0; }
 .ff-print-foot { display:flex!important;position:static;break-inside:avoid;margin:0;font-size:8pt; }
 .pf>.ff-print-head,.pf>.ff-print-foot { display:none!important; }
 .ff-print-brand-row th,.ff-print-footer-row td { border:0!important;background:#fff!important;padding:0!important; }
 .ff-print-brand-row .ff-print-head { margin-bottom:12px; }
 .comparison-table .ff-product-visual { display:none!important; }
 .comparison-table tfoot,.cv-table tfoot { display:table-footer-group; }
 .comparison-table .ct-row[data-print-duplicate] { display:none; }
 .cv-table th,.cv-table td { padding:3px 6px!important;font-size:8.5pt!important;line-height:1.2; }
 .cv-table .cv-note { font-size:7.5pt!important;line-height:1.2; }
 .ff-print-foot { font-family:'Outfit',sans-serif;font-weight:400;letter-spacing:normal; }
 .ff-print-brand-row th { background:#fff!important; }
 .comparison-scroll,.cv-table-wrap { overflow:visible;border-radius:0; }
 .comparison-table,.cv-table { min-width:0!important;width:100%;table-layout:fixed;border-collapse:collapse;overflow:visible;margin-bottom:12px; }
 .comparison-table thead,.cv-table thead { display:table-header-group; }
 .comparison-table th,.comparison-table td,.cv-table th,.cv-table td { position:static!important;border:1px solid #777!important;overflow-wrap:anywhere;padding:6px 8px;font-size:10pt;color:#111!important; }
 .ct-head-cell.label-col { width:17%!important;min-width:0!important; }
 .ct-name,.cv-col-name { font-size:11pt!important;color:#111!important;line-height:1.25; }
 .ct-sub,.ct-sku,.cv-note,.cv-col-gen,.cv-table td.na { font-size:9pt!important;color:#444!important; }
 .ct-row,.cv-table tr { break-inside:avoid;page-break-inside:avoid; }
 .cat-label { break-after:avoid;page-break-after:avoid;font-size:11pt;color:#111; }
 .cv-table tr:has(.cv-group) { break-after:avoid; }
 .cv-group { background:#eee!important;color:#111!important; }
 .cat-section,.cv-shell { padding:0;max-width:none; }
 .ct-brand,.ct-val-accent,.ff-ph-word span,.ff-foot-brand span { color:#111!important; }
 .ff-ph-meta .ff-url { font-size:9pt;overflow-wrap:anywhere; }
}

[data-category-tone="neutral"]{background:#eee;color:#514b46;border-color:#bbb}
@media(max-width:767px){.compare-tray{flex-wrap:wrap;padding:12px 16px;gap:10px}.compare-tray #ct-slots{flex-basis:100%;order:3}.compare-tray>button,.compare-tray>a{flex:1;white-space:normal}.compare-tray .ct-count{flex:0 0 auto}.compare-tray{max-height:42vh;overflow-y:auto}}
@media(max-width:767px){.fitter-inner{flex-direction:column;align-items:flex-start;gap:24px}.fitter-inner>div{min-width:0;max-width:100%;flex-shrink:1!important}.article-question,.a-related{margin-left:16px;margin-right:16px}}

.ind-grid>*{min-width:0}.ind-table-card{overflow-x:auto}.ind-table{min-width:0;width:100%;table-layout:fixed}.ind-table th,.ind-table td{overflow-wrap:anywhere}
@media(max-width:767px){.ind-grid{grid-template-columns:minmax(0,1fr)}.ind-table-card{padding:14px}.fitter-inner{display:flex;flex-direction:column;align-items:flex-start}.fitter-inner>div{max-width:100%;min-width:0}}

.ct-head,.a-cta,.article-question{--accent-ink:var(--brand-orange)}.cmp-bottom-actions{flex-wrap:wrap;max-width:100%;gap:12px}.cmp-bottom-actions>*{max-width:100%}.cmp-bottom-actions>span{margin-left:0!important}
@media print{
 .comparison-table thead,.comparison-table thead tr,.cv-table thead,.cv-table thead tr{break-inside:avoid;page-break-inside:avoid}
 .comparison-table th,.comparison-table td,.cv-table th,.cv-table td{font-size:9pt;line-height:1.3;padding:4px 6px}
 .comparison-table .ct-name,.cv-table .cv-col-name{font-size:10pt!important}
 .comparison-table .ct-sub,.comparison-table .ct-sku,.cv-table .cv-note,.cv-table .cv-col-gen{font-size:8pt!important;line-height:1.3}
 .comparison-table .ct-brand{margin-bottom:2px}.comparison-table .ct-vehicle-dots{margin-top:4px;flex-wrap:wrap}
 .cv-table th.cv-group{background:#eee!important;color:#111!important}
}

@media print{.comparison-table{margin-bottom:0!important}.cat-section{padding-bottom:0!important;break-before:auto}.ff-print-foot{font-size:8pt;margin-top:6px;padding-top:6px}.ff-print-head{margin-bottom:8px}.comparison-scroll{margin-bottom:0}.cv-legend{font-size:8pt}}

.guide-categories a{color:#0F0F0E;border-color:rgba(15,15,14,.3)}

.cmp-mode a.active{color:#0F0F0E}

/* Orange accents need the dark-surface variant in advisory sections too. */
.adv-hero .ah-tag,.adv-hero .ah-title,.hiw-section,.entry-offer { --accent-ink:var(--brand-orange); }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .anim-ready { opacity:1; } .anim-visible { animation:none; } }
@media print { .anim-ready { opacity:1; } }

/* Secondary advisory actions remain readable on the dark hero. */
.adv-hero .btn-ghost { color:var(--dark-text-1); border-color:rgba(240,237,230,.5); }

/* Keyboard navigation and readable controls share the same treatment everywhere. */
.skip-link { position:fixed; top:8px; left:12px; z-index:1200; padding:12px 18px; background:var(--dark); color:#fff; border:2px solid var(--accent); border-radius:6px; transform:translateY(-160%); font-weight:700; }
.skip-link:focus { transform:none; }
#main-content { min-width:0; scroll-margin-top:calc(var(--nav-h,64px) + 16px); }
#main-content:focus { outline:none; }
:is(input,select,textarea,button,a,summary):focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.calc-field input:focus-visible,.calc-field select:focus-visible,.search-input:focus-visible,.price-row input:focus-visible,.sort-sel:focus-visible,.v-sort:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.feature-card.primary :is(.fc-badge,.fc-title,.fc-desc,.fc-link) { color:var(--dark); }
.option-item[type="button"],.acc-option[type="button"] { width:100%; color:inherit; font:inherit; text-align:left; background:var(--white); }
.option-item[type="button"]:focus-visible,.acc-option[type="button"]:focus-visible { position:relative; z-index:1; outline-offset:-3px; }
.search-layout { grid-template-columns:minmax(0,240px) minmax(0,1fr); }
.search-layout>* { min-width:0; }
.search-layout select,.price-row input { min-width:0; max-width:100%; }
.search-layout .results-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr)); }
.r-top { flex-wrap:wrap; } .r-name,.r-variant,.r-style { overflow-wrap:anywhere; } .r-style { white-space:normal; }
.cat-tabs { min-height:44px; }
#product-grid:empty { min-height:500px; }
@media(max-width:1100px){.search-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.search-layout{padding-left:16px;padding-right:16px}.search-layout .filters{position:static}.price-row input{flex:1;width:0}.search-layout .filter-group{min-width:0}.af-bar{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px) {
  /* The initial JS-enabled header has the same geometry as the attached menu. */
  .ff-js .nav { height:64px; min-height:64px; padding:8px 16px; gap:12px; flex-wrap:nowrap; }
  .ff-js .nav-logo { order:0; }
  .ff-js .nav-menu-toggle { display:inline-flex; order:2; align-items:center; justify-content:center; min-width:64px; min-height:44px; margin-left:auto; border:1px solid var(--dark-border); border-radius:6px; background:var(--dark-3); color:var(--dark-text-1); font-size:15px; font-weight:600; }
  .ff-js .nav:not(.nav-mobile-managed) .nav-links { display:none; }
  .ff-js .nav .nav-account,.ff-js .nav > .nav-profile-wrap,.ff-js .nav > .nav-profile { order:3; margin-left:0; }
  .ff-js .nav .nav-profile { width:44px; height:44px; }
}
@media (pointer:coarse),(max-width:640px) {
  .calc-presets button,.scenario-button,.mode-tabs button,.vp-select,.vp-actions select,.af-field select,.af-clear,.filter-clear,.cat-tab,.filter-chip,.sort-sel,.v-sort,.cs-sel,.cs-go,.vr-toggle,.vr-submit,.g-show-more,.recommended-controls button { min-height:44px; }
  .recommended-controls button { min-width:44px; }
  .vp-manual summary { min-height:44px; display:flex; align-items:center; }
  .calc-choice,.check-item { min-height:44px; }
}
@media print { .skip-link { display:none!important; } }

.option-item[type="button"] { border:0; border-bottom:1px solid var(--border); }
.option-item[type="button"][aria-pressed="true"],.acc-option[type="button"][aria-pressed="true"] { background:var(--accent-light); }
.option-item[type="button"]:hover,.acc-option[type="button"]:hover { background:var(--accent-light); }

/* Home comparison actions keep their supporting text inside narrow buttons. */
.cc-actions { min-width:0; max-width:100%; }
.cc-btn { max-width:100%; white-space:normal; }
.cc-btn-label,.cc-btn-sub { max-width:100%; overflow-wrap:anywhere; }

/* Calculator progression is an in-page action, including on the smallest phone. */
.calc-continue.nav-cta { display:inline-flex; max-width:100%; min-height:44px; white-space:normal; }
@media(max-width:640px){.btn{max-width:100%;white-space:normal}}

/* Request and reset actions stay easy to select with touch at tablet widths too. */
.vr-toggle,.filter-clear { min-width:44px; min-height:44px; }

/* Account security actions remain comfortable on touch-capable larger screens. */
.account-card button,.account-actions a { min-height:44px; min-width:44px; }

:root{--type-body:16px;--type-label:12px;--type-card:21px;--type-section:clamp(26px,3vw,34px);--type-page:clamp(32px,4vw,48px)}
@media screen{.account-hero h1,.adv-hero h1,.f-hero h1{font-size:var(--type-page);line-height:1.12;letter-spacing:-.025em}.btn,.pkg-cta-primary,.pkg-cta,.filter-chip{min-height:44px}.account-card .auth-field{margin:14px 0}.account-card .auth-field label{display:block;font-weight:600;margin-bottom:6px}.account-card .form-control{width:100%;min-height:44px;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:inherit}.account-card{min-width:0}}

.pc-evidence-link{display:flex;align-items:center;min-height:44px;font-size:13px;font-weight:600;grid-column:1/-1}.pc-name{display:block;color:var(--text-1);text-decoration:none}.pc-name:hover,.pc-evidence-link:hover{text-decoration:underline}.ff-product-evidence dl{margin:18px 0}.ff-product-evidence dt{font-size:13px;font-weight:700;margin-top:16px}.ff-product-evidence dd{margin:5px 0 12px;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.ct-group{padding:10px 16px;text-align:left;background:var(--dark);color:var(--dark-text-1);font-size:12px;letter-spacing:.03em}.ct-cell a{overflow-wrap:anywhere}.pc-footer{flex-wrap:wrap}.pc-footer>.pc-evidence-link{flex-basis:100%}
@media print{.ct-group{background:#eee!important;color:#111!important}.ff-source-list{font-size:9px}}

/* Text actions on dark surfaces share the orange interaction colour.
   Footer interactions deliberately retain their established treatment. */
:is(.home-intro a,.home-method a,.calc-hero p a,.nav-link,.nav-login,
    .cmp-mode a:not([aria-current]),.adv-hero .btn-ghost,
    .bf-legal a,.guide-categories a:not(.active),.recommended-card,.btn-ghost-dark):is(:hover,:focus-visible) {
  color:var(--accent);
}
:is(.home-intro a,.home-method a,.calc-hero p a,.bf-legal a) {
  transition:color 140ms ease;
}
:is(.btn,.nav-cta,.button,.calc-continue,.cv-print-btn,.ct-print-btn,
    .vr-submit,.bf-submit,.cs-go,.ad-btn), button:not(.option-item):not(.acc-option) {
  text-align:center;
}
:is(.btn,.nav-cta,.button,.calc-continue,.vr-submit,.bf-submit,.cs-go,.ad-btn) {
  justify-content:center;
}
@media(prefers-reduced-motion:reduce) {
  :is(.home-intro a,.home-method a,.calc-hero p a,.bf-legal a) { transition:none; }
}

/* Native controls retain their platform interaction, with a real allocated target. */
select:not([multiple]),.nav-profile { min-width:44px; min-height:44px; }
.nav-profile { width:44px; height:44px; }
.profile-menu[data-disclosure-managed] { position:fixed; max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow-y:auto; overscroll-behavior:contain; }
.profile-menu[data-disclosure-managed] a { min-height:44px; display:flex; align-items:center; }

/* A semantic product link covers the card; separate actions sit above it. */
.ff-linked-card { position:relative; isolation:isolate; }
.ff-linked-card .ff-card-link::after { content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; }
.ff-linked-card .ff-card-action { position:relative; z-index:2; min-height:44px; }
.ff-linked-card:has(.ff-card-link:focus-visible) { outline:3px solid var(--accent); outline-offset:3px; }
.ff-linked-card .ff-card-link:focus-visible { outline:none; }
.ff-linked-card:has(.ff-card-link:active) { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.r-card:active,.rel-card:active { border-color:var(--accent); }
.ff-linked-card:hover { transform:none; }
.ff-horizontal-rail { position:relative; scroll-behavior:auto; scroll-padding-inline:4px; touch-action:pan-x pan-y; }
.ff-horizontal-rail.ff-rail-overflow { cursor:grab; }
.ff-horizontal-rail.ff-rail-overflow>* { cursor:inherit; }
.ff-horizontal-rail.ff-rail-dragging { cursor:grabbing; user-select:none; scroll-behavior:auto; }
.ff-horizontal-rail :focus-visible { outline-offset:-4px; }
.cat-nav.ff-rail-no-overflow { grid-template-columns:minmax(0,1fr); }
.cat-scroll[hidden] { display:none; }
@media(prefers-reduced-motion:reduce){.ff-horizontal-rail{scroll-behavior:auto}}

/* Contrasting product drawings on the dark comparison headings. */
.comparison-table .ct-head-cell .ff-product-visual { color:#fff; }
.comparison-table .ct-head-cell .ff-product-visual svg { color:#FF6624; }
.membership-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:600px){.membership-options{grid-template-columns:1fr;}}

.ff-pdf-email-dialog{max-width:520px;width:calc(100% - 32px);border:1px solid #FF6624;border-radius:12px;padding:28px;color:#101010;background:#fff}.ff-pdf-email-dialog::backdrop{background:#0009}.ff-pdf-email-dialog label{display:grid;gap:8px}.ff-pdf-email-dialog input{font:inherit;padding:12px}.ff-pdf-email-dialog p{line-height:1.6;margin:16px 0}.ff-pdf-email-dialog button{padding:12px 16px;cursor:pointer;font:inherit}.ff-pdf-email-dialog button[type=submit]{background:#FF6624;border:1px solid #FF6624}.ff-pdf-email-dialog form>div{display:flex;gap:12px;flex-wrap:wrap}
.ff-pdf-email-dialog .ff-optional-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:14px}.ff-pdf-email-dialog .ff-optional-consent input{width:18px;min-width:18px;height:18px;margin-top:2px}.ff-ticket-form{display:grid;gap:14px}.ff-ticket-form label{display:grid;gap:6px}.ff-ticket-form input,.ff-ticket-form select,.ff-ticket-form textarea{max-width:100%;width:100%;padding:10px;border:1px solid var(--border);border-radius:6px}.ff-ticket-form .ff-ticket-consent{display:flex;align-items:flex-start;gap:10px}.ff-ticket-consent input{width:18px;min-width:18px}.ff-ticket-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:600px){.ff-ticket-fields{grid-template-columns:1fr}}

/* Account gate for report downloads shares the site's account form. */
.ff-pdf-email-dialog{position:fixed;inset:0;margin:auto;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:28px;border:1px solid #ddd;border-radius:14px;background:#fff;color:#101010;box-sizing:border-box}
.ff-pdf-email-dialog::backdrop{background:rgba(0,0,0,.6)}
.ff-pdf-email-dialog [data-close]{float:right;border:0;background:none;font-size:24px;cursor:pointer;min-width:44px;min-height:44px}
.ff-pdf-email-dialog .auth-box{padding:0;border:0;box-shadow:none}.ff-pdf-email-dialog input:not([type=checkbox]){display:block;width:100%;min-height:44px;box-sizing:border-box;border:1px solid #ccc;border-radius:6px;padding:10px}.ff-pdf-email-dialog .auth-field{margin:16px 0}.ff-pdf-email-dialog [hidden]{display:none!important}.ff-pdf-email-dialog button{padding:10px 14px;border-radius:6px;cursor:pointer}.ff-pdf-email-dialog [type=submit]{background:#ff6b1a;color:#101010;border:0}.ff-pdf-email-dialog .auth-tabs{display:flex;gap:8px}.ff-pdf-email-dialog h2{font-size:26px}.ff-pdf-email-dialog .auth-check{display:flex;gap:8px;margin:12px 0}

/* The same account choices appear on login, report downloads and build plans. */
.auth-box .auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;background:transparent;border-radius:0;margin:20px 0 24px}
.auth-box .auth-tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border:1.5px solid var(--border-2);border-radius:var(--radius-sm);background:var(--white);color:var(--text-1);font:600 14px var(--font);line-height:1.2;cursor:pointer;transition:background 150ms,border-color 150ms,box-shadow 150ms}
.auth-box .auth-tabs button:hover{border-color:var(--text-2)}
.auth-box .auth-tabs button.active{border-color:var(--accent);background:var(--accent);color:var(--dark);box-shadow:0 1px 3px rgba(255,102,36,.3)}
.auth-box .auth-tabs button.active:hover{box-shadow:0 3px 10px rgba(255,102,36,.35)}
.auth-box .auth-tabs button:focus-visible{outline:3px solid var(--dark);outline-offset:3px}
.ff-pdf-email-dialog .auth-submit{min-height:46px;border:0;border-radius:var(--radius-sm);padding:12px 22px;background:var(--accent);color:var(--dark);font:700 15px var(--font);box-shadow:0 1px 3px rgba(255,102,36,.3)}
@media(prefers-reduced-motion:reduce){.auth-box .auth-tabs button{transition:none}}

/* Small labels on light surfaces need the dark text token. */
.auth-panel .auth-kicker,.calc-card .calc-crumb{color:var(--text-1)}
.auth-verification[hidden],.auth-form[hidden],.auth-tabs[hidden],.auth-links[hidden],#auth-resend-verification[hidden]{display:none!important}
.auth-verification .auth-message.show.ff-state{display:flex}
.auth-verification{line-height:1.6}.auth-verification-email{font-weight:700;overflow-wrap:anywhere}.auth-verification-actions{display:grid;gap:12px;margin-top:24px}.auth-verification-actions button{width:100%;min-height:46px;white-space:normal}

/* Account acceptance is one visible button action, including inline PDF sign-up. */
.ff-pdf-email-dialog .auth-notice{display:block;font-size:13px;line-height:1.6}.ff-pdf-email-dialog .auth-notice p{margin:0 0 10px}.ff-pdf-email-dialog .auth-notice a{color:#101010;font-weight:700;text-decoration:underline;text-underline-offset:3px}.ff-pdf-email-dialog .auth-notice-status{font-size:12px;color:#555}

.ff-pdf-email-dialog .field-error{display:none;color:var(--error,#9d281a);font-size:12px}.ff-pdf-email-dialog .has-error .field-error{display:inline}
