/* Runtime states added to the approved donor stylesheet layers. */
.import-main,.import-check{min-width:0}
.import-mapping{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px;margin-block:20px}
.import-mapping .field{min-width:0}.import-mapping select{max-width:100%}
.import-preview-table{max-height:26rem;overflow:auto}.import-preview-table table{min-width:100%;width:max-content}
.import-preview-table th{position:sticky;top:0;background:var(--surface);z-index:1}
.import-preview-table td{max-width:24rem;overflow-wrap:anywhere}.import-preview-table input[type=checkbox]{min-height:24px;width:24px;accent-color:var(--accent)}
.import-check .table-context,.import-check .table-context .row,.import-check .table-footer{flex-wrap:wrap;gap:12px}
.dropzone.has-file{padding:16px;min-height:0}.dropzone.has-file>svg,.dropzone.has-file>h2,.dropzone.has-file>p,.dropzone.has-file>small{display:none}
.import-check .table-footer{align-items:center}.import-preview-table td:last-child{white-space:normal;min-width:12rem}
#route:focus, #auth-title:focus { outline: none; }
.sidebar { overflow-y: auto; }
.field-error { color: var(--danger); }
#mapbulk-dialog>.dialog-heading{position:sticky;top:0;z-index:1;background:var(--surface);box-shadow:0 -28px 0 var(--surface)}
#import-confirm>.button{margin-top:12px}
.business-picker { min-width: 0; }
.business-picker select { width: 100%; min-width: 0; }
.business-picker .geo-chip { max-width: 100%; white-space: normal; }
.v14-business-picker .field{margin:0}
.v14-business-picker .business-search{display:flex;position:relative}
.v14-business-picker .business-search input{width:100%;padding-right:44px}
.v14-business-picker .business-arrow{display:grid;place-items:center;position:absolute;right:4px;top:4px;bottom:4px;width:36px;border:0;background:transparent;color:inherit;border-radius:8px}
.v14-business-picker .business-choices{position:fixed;inset:auto;margin:0;padding:5px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:0 8px 24px #102a211a;overflow-y:auto}
.v14-business-picker .business-option{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:10px 12px;padding-left:calc(12px + var(--business-depth,0)*24px);border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;font:inherit;line-height:1.4;cursor:pointer}
.v14-business-picker .business-option-text{display:flex;flex:1;min-width:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;overflow-wrap:anywhere}
.v14-business-picker .business-option input{width:16px;height:16px;min-height:0;padding:0;margin:0;flex:0 0 auto;accent-color:var(--accent)}
@media(max-width:600px){.v14-business-picker .business-option-family{display:none}}
.v14-business-picker .business-choices :is(small,p){color:var(--muted);font-size:12px}
.v14-business-picker :is(.business-option:hover,.business-option[data-active=true],.business-refinements label:hover,.category-node summary:hover){background:var(--subtle)}
.v14-business-picker .business-selected:not(:empty){margin-top:12px}
.v14-business-picker .business-family{padding:12px 0;border-bottom:1px solid var(--line)}
.v14-business-picker .business-family:first-child{padding-top:0}
.v14-business-picker .business-family-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.v14-business-picker .business-family-heading strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.v14-business-picker .business-remove{width:30px;height:30px;flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:21px}
.v14-business-picker .business-scope{margin:2px 0 8px;font-size:12px;line-height:1.5;color:var(--muted)}
.v14-business-picker>.business-refine{margin-top:12px}
.v14-business-picker .business-refine>summary{width:fit-content;padding:5px 0;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}
.v14-business-picker .business-refine>summary small{font-weight:400;color:var(--muted);margin-left:4px}
.v14-business-picker .business-refinements{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.v14-business-picker .business-refinements>input[type=search]{width:100%;min-height:40px;height:40px;margin-bottom:8px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px}
.v14-business-picker .business-refinement-tree{max-height:260px;overflow:auto;border-top:1px solid var(--line);margin-top:5px;padding-top:5px}
.v14-business-picker .category-node{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:start}
.v14-business-picker .category-node>input{margin-top:12px}
.v14-business-picker .category-node summary{width:auto;min-height:40px;padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}
.v14-business-picker .category-children{padding-left:4px;border-top:1px solid var(--line)}
.v14-business-picker .business-refinements label{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 12px;font-size:13px;line-height:1.4;border-radius:8px;cursor:pointer;overflow-wrap:anywhere}
.v14-business-picker .business-refinements :is(input[type=checkbox],input[type=radio]){width:16px;height:16px;min-height:0;padding:0;flex:0 0 auto;accent-color:var(--accent)}
.v14-business-picker .business-refinements>label{font-weight:600}
.v14-business-picker .business-refinement-empty,.v14-business-picker .business-load-state{margin:8px;font-size:12px;color:var(--muted)}
.v14-business-picker .business-refine-selected{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.v14-business-picker .category-chip{max-width:100%;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--subtle);color:var(--ink);font:inherit;font-size:12px;line-height:1.3;text-align:left;overflow-wrap:anywhere}
#business-category>.field{margin-top:12px}
.field-error:empty, .auth-inline-error:empty, .form-feedback:empty { display: none; }
.auth-inline-error:not(:empty), .form-feedback:not(:empty) { margin-block: 12px; }
[data-state-error] { color: var(--danger); }
.route-state { padding: 48px 0; }
.route-state h1, .route-state p { margin-bottom: 20px; }
.skeleton { height: 16px; margin-bottom: 16px; background: var(--subtle); border-radius: 7px; }
.skeleton.wide { width: 70%; height: 36px; }
.skeleton.rows { height: 250px; }
.loading-page { padding: 40px; max-width: 1000px; margin: auto; }
.full { grid-column: 1 / -1; }
#checkout-form { display: grid; gap: 18px; }
#checkout-status > button { margin-top: 16px; }
#lead-results [data-lead-id] { scroll-margin-top: 80px; }
.library-tools { display: flex; align-items: end; flex-wrap: wrap; gap: 18px; margin-bottom: 22px; }
.library-tools .library-search { margin: 0; flex: 1 1 220px; }
.library-tools .field { min-width: 150px; }
.usage-breakdown dt small { display: block; margin-top: 4px; font-size: .75rem; }
.campaign-downloads { margin-block: 24px 32px; }
.progress-actions, .export-options, .export-file, .job-actions, .job-metrics { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.progress-actions { justify-content: space-between; gap: 20px; }
.export-options > strong { margin-right: 4px; }
.campaign-downloads .button, .export-file .button { min-height: 44px; }
.artifact-list:not(details) { display: grid; gap: 12px; margin-top: 16px; }
.artifact-list:empty { display: none; }
.export-file { padding: 12px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.export-file > span { color: var(--muted); }
.export-file > .button { margin-left: auto; }
.job { display: grid; gap: 16px; padding-block: 20px; }
.job-metrics { gap: 8px; }
.job-metrics small { margin-left: 12px; color: var(--muted); }
@media (max-width: 650px) { .export-options { width: 100%; } .export-options > strong { flex-basis: 100%; } .export-options > .button { flex: 1; } }
[data-consent-view],[data-grant-list]{overflow-wrap:anywhere}
/* Compact Manual setup; real dispatch and shared dashboard chrome are retained. */
.manual-cloud{min-width:0}
.manual-cloud>.geo-back{margin-bottom:32px}.manual-cloud>.geo-heading{margin-bottom:32px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.manual-cloud .geo-step{display:none}
.manual-cloud .geo-builder{border:0;border-radius:0;background:transparent}
.manual-cloud .geo-formline{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(150px,.7fr) minmax(120px,.7fr);gap:16px;align-items:start;padding:0;border:0}
.manual-cloud :is(.business-picker,#business-category,.v14-business-picker){display:contents}
.manual-cloud .business-primary{grid-column:1;grid-row:1;min-width:0}
.manual-cloud .business-selected:not(:empty){display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:4px}
.manual-cloud .business-family{padding:0;border:0}.manual-cloud .business-family-heading{gap:4px}.manual-cloud .business-scope{display:none}
.manual-cloud .business-selected:empty,.manual-cloud .business-refine-selected:empty,.manual-cloud .business-load-state[hidden]{display:none}
.manual-cloud .business-refine{grid-column:1/-1;grid-row:2;margin:0;pointer-events:none;align-self:start;position:relative;z-index:1}
.manual-cloud .business-refine>summary{margin-left:auto;min-height:60px;display:flex;align-items:center;gap:5px;padding:8px 0;pointer-events:auto;list-style:disclosure-closed}
.manual-cloud .business-refine>summary:before{content:'\25b8';font-size:13px}.manual-cloud .business-refine[open]>summary:before{content:'\25be'}
.manual-cloud .business-refine>:not(summary){pointer-events:auto}
.manual-cloud .business-refine[open]{grid-row:3}
.manual-cloud .business-refine[open]>summary{min-height:44px;margin-top:0}
.manual-cloud .business-extra{margin:16px 0 0;max-width:480px}
.manual-cloud .business-refine-selected,.manual-cloud .business-load-state{grid-column:1/-1}
.manual-cloud .business-search{font-weight:400}
.manual-cloud .business-arrow{right:0}
.manual-cloud .search-toggles{grid-column:1/-1;grid-row:2;gap:12px 24px;padding:8px 8.25rem 8px 0;min-height:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center}
.manual-cloud .search-toggle{font-size:.88rem;line-height:1.4;min-height:44px;min-width:0}
.manual-cloud .email-only-control{display:flex;align-items:center;gap:4px;min-width:0}
.manual-cloud .email-help{position:relative;display:grid;place-items:center;width:44px;min-height:44px;flex:none;padding:0;border:0;border-radius:6px;background:none;color:var(--body)}
.manual-cloud .email-help svg{width:16px;height:16px}
.manual-cloud .email-tooltip{display:none;position:absolute;right:0;top:calc(100% + 4px);width:280px;max-width:calc(100vw - 48px);padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:.85rem;font-weight:400;line-height:1.5;text-align:left;z-index:30;pointer-events:none}
.manual-cloud .email-help:not([data-dismissed]):is(:hover,:focus-visible,[aria-expanded=true]) .email-tooltip{display:block}
.manual-cloud .email-target-note{margin:0;line-height:1.4;flex-basis:100%}.manual-cloud .email-target-note:empty{display:none}
.manual-cloud .geo-section-title{padding:16px 0 12px;align-items:center;gap:12px;flex-wrap:wrap}.manual-cloud #location-note{display:none}
.manual-cloud .geo-workspace,.manual-cloud .geo-chips{margin-inline:0}
.manual-cloud .geo-maphead:has(#geo-location:empty){display:none}
.manual-cloud .geo-workspace{grid-template-columns:minmax(0,1fr) 300px}
.manual-cloud .country-flag{width:20px;height:15px;margin-right:8px;vertical-align:middle;border-radius:2px;object-fit:cover}
.manual-cloud .geo-selection-tools{flex-wrap:wrap;gap:10px}
.manual-cloud .geo-selection-tools>div{display:flex;gap:8px}
.manual-cloud .geo-selection-tools button{min-height:38px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--accent);font-weight:600}
.manual-cloud .geo-selection-tools button:hover{background:var(--tint);border-color:var(--accent)}
@media(max-width:1100px){.manual-cloud .geo-formline{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.manual-cloud .business-primary{grid-column:1;grid-row:1}.manual-cloud .search-toggles,.manual-cloud .business-refine{grid-row:3}.manual-cloud .business-refine[open]{grid-row:4}}
@media(max-width:1100px){.manual-cloud .geo-formline>.field:has(input[name=resultCap]),.manual-cloud .geo-formline>.field:has(input[name=credits]){align-self:end}}
@media(max-width:950px){.manual-cloud .geo-workspace{grid-template-columns:1fr}}
@media(max-width:600px){.manual-cloud>.geo-back{margin-bottom:24px}.manual-cloud>.geo-heading{margin-bottom:24px}.manual-cloud .geo-formline{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.manual-cloud .business-primary{grid-column:1/-1;grid-row:1}.manual-cloud #country-input{width:100%}.manual-cloud .geo-formline>.field:has(#country-input){grid-column:1/-1;grid-row:2}.manual-cloud .search-toggles{grid-row:4/span 3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:subgrid;gap:0 12px;padding:8px 0;min-height:104px}.manual-cloud .search-toggles>.search-toggle{grid-row:2;grid-column:1}.manual-cloud .search-toggles>.search-toggle:first-child{grid-row:1}.manual-cloud .email-only-control{grid-row:1;grid-column:2}.manual-cloud .business-refine{grid-row:5;grid-column:2;align-self:center}.manual-cloud .business-refine>summary{margin-top:0;max-width:100%;flex-wrap:wrap;min-height:44px;padding:8px 0}.manual-cloud .email-only-control .search-toggle{flex:1}.manual-cloud .email-target-note{grid-column:1/-1;grid-row:3}.manual-cloud .geo-selection-tools{padding:12px}.manual-cloud .geo-selection-tools button{min-height:42px}}
@media(max-width:600px){.manual-cloud .business-refine[open]{grid-row:7;grid-column:1/-1}.manual-cloud .business-refine[open]>summary{margin-top:0}}
@media(max-width:600px){.manual-cloud .search-toggle>span:last-child{min-width:0;overflow-wrap:anywhere}}
@media(max-width:600px){.manual-cloud .geo-formline{container:manual-controls/inline-size}}
@container manual-controls (max-width:14rem){.manual-cloud .search-toggles{grid-row:4/span 4;grid-template-columns:minmax(0,1fr)}.manual-cloud .search-toggles>.search-toggle{grid-row:3}.manual-cloud .email-only-control{grid-row:2;grid-column:1}.manual-cloud .email-target-note{grid-row:4}.manual-cloud .business-refine,.manual-cloud .business-refine[open]{grid-row:8;grid-column:1/-1}}
/* Plan & billing (2026-10-09): plan cards follow the pricing page cards, drawn with the dashboard tokens. */
.balance .balance-link{display:block;color:inherit;font-size:inherit;border-radius:6px}.balance .balance-link:hover strong{color:var(--accent)}
.billing-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 44px;max-width:1080px;padding:22px 24px;margin-bottom:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.billing-summary>.row{flex-basis:100%}.billing-summary .usage-breakdown{display:flex;flex-wrap:wrap;gap:8px 40px}.billing-summary .usage-breakdown dd{font-weight:600}
.billing-plans{display:grid;gap:18px;max-width:1080px}.billing-plans>.button{justify-self:start}.billing-plans>p{font-size:.9rem;max-width:640px}
.plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:stretch;gap:22px 18px;min-width:0;margin:0;padding:0;border:0}
.plan-cards legend{padding:0;margin-bottom:26px;font-size:1.25rem;font-weight:630;letter-spacing:-.015em}
.plan-card{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0;padding:26px 22px 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.plan-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}
.plan-card:has(input:checked){outline:3px solid var(--accent);outline-offset:3px}
.plan-card:has(input:focus-visible){outline:3px dashed var(--accent);outline-offset:3px}
.plan-cards .plan-card input[type=radio]{appearance:none;flex:0 0 auto;width:22px;height:22px;min-height:0;margin:0;padding:0;border:2px solid var(--line-strong);border-radius:50%;background:var(--surface);cursor:pointer}
.plan-cards .plan-card input[type=radio]:checked{border-color:var(--accent);background:radial-gradient(var(--accent) 0 5px,var(--surface) 6px)}
.plan-card>input{position:absolute;top:20px;right:20px}
.plan-card-name{font-size:1.1rem;font-weight:650;padding-right:30px}
.plan-card-price{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-size:.95rem}
.plan-card-price strong{color:var(--ink);font:700 2.6rem/1 Spartan,Source,sans-serif;letter-spacing:-.04em}
.plan-card-credits{font-weight:650}
.plan-card-features{display:grid;gap:9px;margin-top:6px;padding-top:16px;border-top:1px solid var(--line);color:var(--body);font-size:.9rem;line-height:1.35}
.plan-card-features>span{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:start}
.plan-card-features i{display:grid;place-items:center;width:18px;height:18px;border:1.5px solid var(--accent);border-radius:50%;color:var(--accent);font-style:normal;font-size:.8rem;line-height:1}
.plan-card-features i svg{width:10px;height:10px;stroke-width:3}
.plan-card-features .plan-feature-missing{color:var(--muted)}.plan-feature-missing i{border-color:var(--line-strong);color:var(--muted)}
.plan-levels{display:grid;gap:8px}
.plan-level{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:10px;font-size:.9rem;cursor:pointer}
.plan-level b{font-weight:700}.plan-level:hover{border-color:var(--accent)}
.plan-level:has(input:checked){border-color:var(--accent);background:var(--tint);color:var(--ink);font-weight:600}
.plan-card-recommended{border-color:var(--accent);background:var(--accent);color:var(--canvas)}
.plan-card-recommended :is(.plan-card-price,.plan-card-price strong,.plan-card-features,.plan-card-features .plan-feature-missing){color:inherit}
.plan-card-recommended .plan-card-features{border-color:color-mix(in srgb,var(--canvas) 45%,transparent)}
.plan-card-recommended .plan-card-features i{border-color:var(--canvas);color:var(--canvas)}
.plan-card-tag{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:5px 13px;border:1px solid var(--accent);border-radius:999px;background:var(--surface);color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.plan-cards:disabled .plan-card{cursor:default;opacity:.65}
@media(max-width:600px){.billing-summary{padding:18px}.plan-card{padding:24px 18px 20px}.plan-card-price strong{font-size:2.3rem}}
/* Invoices on Plan & billing (2026-10-09). */
.billing-invoices{max-width:1080px;margin-top:48px}.billing-invoices h2{margin-bottom:16px}.billing-invoices>p{font-size:.92rem}
.invoice-scroll{overflow-x:auto}
.invoice-table{width:100%;border-collapse:collapse;font-size:.92rem}
.invoice-table th{padding:0 12px 10px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.8rem;font-weight:600;text-align:left}
.invoice-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.invoice-table td:last-child{text-align:right}.invoice-table td .button{margin:0;min-height:36px;padding:6px 12px}
.invoice-table .small-tag{margin-left:8px}
@media(max-width:600px){.invoice-table thead{display:none}.invoice-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.invoice-table td{padding:0;border:0}.invoice-table td:last-child{grid-row:1/span 3;grid-column:2;align-self:center}}

/* Lives in app.css because it is versioned (app.css?v=): approved/*.css are unversioned and the
   Cloudflare edge served the old dashboard.css for up to 4 h after the 17 Oct release. */
/* Owner, 17 Oct: an "i" next to the credit balance explains what a credit buys; the home shows one quiet line. */
.balance-row{display:flex;align-items:center;gap:8px}.balance-row>.balance-link{min-width:0}
.credit-info{position:relative;display:inline-flex;flex-shrink:0}
.credit-info-button{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--accent);cursor:help}.credit-info-button svg{width:18px;height:18px}
.credit-info-card{display:none;position:fixed;z-index:60;width:300px;margin-left:32px;transform:translateY(calc(-100% + 32px));padding:14px 14px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:.82rem;font-weight:400;line-height:1.45;text-align:left;white-space:normal}
/* hidden in the markup: a browser still holding the old cached stylesheet (4 h) never shows the card open;
   !important beats the global [hidden]{display:none!important} only here, on hover or focus. */
.credit-info:hover .credit-info-card,.credit-info:focus-within .credit-info-card{display:block!important}
.credit-info-eq{display:flex;align-items:center;justify-content:flex-start;gap:6px;font-size:.95rem;font-weight:600}
.credit-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--accent);color:var(--surface);font-weight:650;white-space:nowrap}
.credit-info-chips{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:5px;margin:10px 0 0;padding:0;list-style:none}
.credit-info-chips li{padding:2px 9px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:999px;background:var(--tint);color:var(--ink);font-size:.74rem}
.credit-info-note{display:block;margin-top:9px;color:var(--body)}
.credit-info-split{display:block;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);color:var(--body);font-size:.76rem}.credit-info-split b{color:var(--ink);font-weight:600}
/* Fixed with auto insets escapes the sidebar's scroll clipping and keeps its static spot next to the "i". */
@media(max-width:900px){.credit-info-card{left:12px;width:min(300px,calc(100vw - 24px));margin-left:0;transform:translateY(calc(-100% - 10px))}}
.credit-hint{max-width:950px;margin:-28px auto 44px;color:var(--body);font-size:.9rem;line-height:1.7;text-align:center}.credit-hint .credit-pill{margin-right:2px;font-size:.82rem}
/* Owner, 17 Oct: Recent lists share the start cards' left and right edges (950px, centred); the
   approved grid kept an always-empty 225px side column that pushed the list left. */
.guide-lower{grid-template-columns:minmax(0,1fr);max-width:950px}
