/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

html[data-theme="light"] {
  color-scheme: light;
  filter: invert(1) hue-rotate(180deg);
}

/* Billing-Vis keeps the money connections between two aligned record columns.
   On narrow screens the same connections remain accessible as labelled buttons. */
.billing-vis-scroll { max-width: 58rem; margin-inline: auto; max-height: 42rem; overflow: auto; border: 1px solid #334155; border-radius: 1rem; background: #0f172a; }
.billing-vis-scroll.has-failed-payments { max-width: 67.75rem; }
.billing-vis-payment-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.billing-vis-failed-toggle { display: inline-flex; align-items: center; gap: .35rem; color: #cbd5e1; font-size: .65rem; font-weight: 400; cursor: pointer; }
.billing-vis-failed-toggle input { accent-color: #64748b; }
.billing-vis-failed-heading { font-size: .75rem; }
.billing-vis-column[data-kind="failed"], .billing-vis-failed-heading { margin-left: .75rem; }
.billing-vis-failed-payment { padding: .45rem; min-height: 7rem; }
.billing-vis-failed-payment .billing-vis-node-heading { align-items: flex-start; flex-direction: column; gap: .3rem; }
.billing-vis-failed-payment .billing-vis-tile-meta { gap: .25rem; }
.billing-vis-failed-payment .billing-vis-tile-meta .billing-vis-node-date,
.billing-vis-failed-payment .billing-vis-tile-meta .billing-vis-node-description { font-size: .6rem; }
.billing-vis-failed-payment .billing-vis-node-links { overflow-wrap: anywhere; }
.billing-vis-failed-day { display: flex; flex-direction: column; max-height: var(--billing-vis-failed-day-height, 7rem); padding: .4rem; border: 1px solid #475569; border-left: 3px solid #fb7185; border-radius: .65rem; background: #182131; pointer-events: auto; }
.billing-vis-failed-day-heading { display: flex; flex-direction: column; align-items: flex-start; flex-shrink: 0; padding-bottom: .3rem; }
.billing-vis-failed-day-heading time { font-size: .65rem; }
.billing-vis-failed-attempts { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.billing-vis-failed-attempts .billing-vis-failed-payment { min-height: 0; padding: .25rem 0; border: 0; border-radius: .2rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .3rem; align-items: baseline; font-size: .65rem; }
.billing-vis-failed-attempts .billing-vis-failed-payment + .billing-vis-failed-payment { border-top: 1px solid #47556970; }
.billing-vis-failed-attempts .billing-vis-node-select { display: flex; align-items: baseline; min-width: 0; gap: .25rem; }
.billing-vis-failed-attempts .billing-vis-node-heading, .billing-vis-failed-attempts .billing-vis-tile-meta { display: contents; }
.billing-vis-failed-attempts .billing-vis-node-heading strong { flex-shrink: 0; font-size: .75rem; }
.billing-vis-failed-attempts .billing-vis-node-heading .billing-vis-kind,
.billing-vis-failed-attempts .billing-vis-tile-meta time,
.billing-vis-failed-attempts .billing-vis-failed-payment .billing-vis-node-money,
.billing-vis-failed-attempts .billing-vis-payment-provider { display: none; }
.billing-vis-failed-attempts .billing-vis-node-details { font-size: .6rem; }
.billing-vis-failed-attempts .billing-vis-node-actions { margin-top: 0; }
.billing-vis-failed-attempts .billing-vis-node-actions:has(details[open]) { grid-column: 1 / -1; }
.billing-vis-menu { position: relative; font-weight: 500; }
.billing-vis-menu summary { cursor: pointer; }
.billing-vis-menu-items { position: absolute; right: 0; top: calc(100% + .4rem); z-index: 20; min-width: 14rem; padding: .35rem; border: 1px solid #475569; border-radius: .65rem; background: #0f172a; box-shadow: 0 8px 20px #0004; }
.billing-vis-menu-items a, .billing-vis-menu-items button { display: block; width: 100%; padding: .65rem .6rem; text-align: left; font-size: .8rem; color: #bae6fd; border-radius: .35rem; }
.billing-vis-menu-items a:hover, .billing-vis-menu-items button:hover { background: #1e293b; }
.billing-vis-invoice-choices { max-height: 24rem; overflow: auto; }
.billing-vis-board { position: relative; padding: 0 .85rem .85rem; }
.billing-vis-headings, .billing-vis-date-group { display: grid; grid-template-columns: minmax(0, 1fr) 7rem minmax(0, 1fr); align-items: start; }
.billing-vis-scroll.has-failed-payments .billing-vis-headings, .billing-vis-scroll.has-failed-payments .billing-vis-date-group { grid-template-columns: minmax(0, 1fr) 7rem minmax(0, 1fr) 9.5rem; }
.billing-vis-headings { position: sticky; top: 0; z-index: 4; align-items: center; padding: .75rem 0; background: #0f172a; border-bottom: 1px solid #334155; }
.billing-vis-date-group { padding-top: .65rem; }
.billing-vis-board.is-timeline .billing-vis-date-group { position: absolute; inset-inline: .85rem; padding-top: 0; pointer-events: none; }
.billing-vis-column { min-width: 0; position: relative; display: flex; flex-direction: column; gap: .5rem; }
.billing-vis-node-date { display: block; margin-top: .2rem; color: #94a3b8; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .75rem; font-weight: 500; }
.billing-vis-column-heading { color: #f1f5f9; font-size: .9rem; font-weight: 700; }
.billing-vis-node { line-height: 1.25; position: relative; z-index: 3; pointer-events: auto; padding: .45rem .6rem; border: 1px solid #475569; border-left-width: 3px; border-radius: .65rem; background: #111e32; transition: opacity 120ms, border-color 120ms, background 120ms; }
.billing-vis-node[data-balance-state="available"] { border-left-color: #38bdf8; background: #102236; }
.billing-vis-node[data-balance-state="settled"] { border-left-color: #34d399; background: #102923; }
.billing-vis-node[data-balance-state="due"] { border-left-color: #fbbf24; }
.billing-vis-node[data-balance-state="depleted"] { border-left-color: #64748b; background: #182131; }
.billing-vis-node[data-balance-state="waived"] { border-left-color: #a78bfa; background: #201f34; }
.billing-vis-node [data-status], .billing-vis-node [data-payment-status] { font-weight: 600; }
.billing-vis-node[data-balance-state="settled"] [data-status] { color: #6ee7b7; }
.billing-vis-node[data-balance-state="available"] [data-payment-status] { color: #7dd3fc; }
.billing-vis-node[data-balance-state="due"] [data-status], .billing-vis-node[data-balance-state="due"] [data-payment-status] { color: #fcd34d; }
.billing-vis-node[data-balance-state="waived"] [data-status] { color: #c4b5fd; }
.billing-vis-node[data-free-month="true"], .billing-vis-free-month-credit { border-color: #e879f94d; border-left-color: #e879f9; background: #d946ef1a; }
.billing-vis-node[data-free-month="true"] [data-status], .billing-vis-node[data-free-month="true"] .billing-vis-node-heading strong, .billing-vis-free-month-credit .billing-vis-node-heading strong { color: #f5d0fe; }
.billing-vis-node[data-free-month="true"] .billing-vis-waived { border-color: #e879f94d; background: #d946ef1a; color: #f5d0fe; }
.billing-vis-credit-edge { fill: none; stroke: #e879f9; stroke-width: 2; stroke-dasharray: 6 4; pointer-events: none; }
.billing-vis-node[data-balance-state="depleted"] .billing-vis-node-heading strong { color: #94a3b8; }
.billing-vis-node[data-payment-state="failed"], .billing-vis-node[data-payment-state="refunded"] { border-left-color: #fb7185; }
.billing-vis-node[data-payment-state="failed"] [data-payment-status], .billing-vis-node[data-payment-state="refunded"] [data-payment-status] { color: #fda4af; }
.billing-vis-node[data-payment-state="pending"], .billing-vis-node[data-payment-state="partially_refunded"], .billing-vis-node[data-needs-review="true"] { border-left-color: #fbbf24; }
.billing-vis-node[data-payment-state="pending"] [data-payment-status], .billing-vis-node[data-payment-state="partially_refunded"] [data-payment-status], .billing-vis-node[data-needs-review="true"] [data-payment-status] { color: #fcd34d; }
.billing-vis-node.billing-vis-refund { border-left-color: #fb7185; background: #291c2c; }
.billing-vis-refund .billing-vis-node-heading strong { color: #fda4af; }
.billing-vis-refund-label { color: #fda4af; background: #fb71851a; }
.billing-vis-refund-source, .billing-vis-refund-summary, .billing-vis-refund-warning { margin-top: .25rem; color: #fda4af; font-size: .65rem; }
.billing-vis-refund-source { grid-column: 1 / -1; }
.billing-vis-refund-warning { color: #fcd34d; }
.billing-vis-refund-history { margin-top: .35rem; max-height: 6rem; overflow: auto; border-top: 1px solid #be586d50; }
.billing-vis-refund-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .3rem; padding: .3rem .15rem; border-radius: .3rem; color: #fda4af; font-size: .63rem; }
.billing-vis-refund-select { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .45rem; text-align: left; }
.billing-vis-refund-select time { color: #94a3b8; }
.billing-vis-refund-select strong { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; }
.billing-vis-refund-entry.is-selected { background: #be586d25; outline: 1px solid #be586d; }
.billing-vis-refund-entry[hidden], .billing-vis-refund-history[hidden] { display: none; }
.billing-vis-refund-choices { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.billing-vis-node.is-selected { border-color: #7dd3fc; box-shadow: 0 0 0 2px #38bdf833; }
.billing-vis-node.is-related { border-color: #38bdf8; }
.billing-vis-node.is-muted { opacity: .45; }
.billing-vis-node.is-connect-source { border-color: #fbbf24; box-shadow: 0 0 0 2px #fbbf2433; }
.billing-vis-node.is-connect-target { border-color: #38bdf8; border-style: dashed; background: #102a3e; }
.billing-vis-node.is-connect-target:hover { border-style: solid; background: #12344b; }
.billing-vis-node-select { display: block; width: 100%; text-align: left; cursor: pointer; }
.billing-vis button:focus-visible, .billing-vis summary:focus-visible, .billing-vis a:focus-visible { outline: 2px solid #7dd3fc; outline-offset: 3px; }
.billing-vis-node-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .35rem; }
.billing-vis-node-heading strong, .billing-vis-amount { color: #7dd3fc; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1rem; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.035em; white-space: nowrap; }
.billing-vis-column[data-kind="charge"] .billing-vis-node-heading strong { color: #6ee7b7; }
.billing-vis-form-date { color: #94a3b8; font-family: ui-sans-serif, system-ui, sans-serif; font-weight: 500; }
.billing-vis-node-heading small { color: #94a3b8; font-size: .65rem; font-weight: 400; }
.billing-vis-kind { display: inline-block; padding: .15rem .4rem; border-radius: 1rem; font-size: .65rem; line-height: 1.35; font-weight: 600; }
.billing-vis-waived { display: inline-block; margin-left: .25rem; padding: .15rem .4rem; border: 1px solid #fbbf2455; border-radius: 1rem; background: #fbbf241a; color: #fcd34d; font-size: .65rem; font-weight: 700; }
.billing-vis-node-description { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: .3rem; color: #cbd5e1; font-size: .78rem; line-height: 1.35; }
.billing-vis-node-money { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .2rem .45rem; margin-top: .35rem; color: #94a3b8; font-size: .68rem; font-variant-numeric: tabular-nums; }
.billing-vis-node-money [data-remaining], .billing-vis-node-money [data-available] { color: #cbd5e1; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.billing-vis-credit-meter { position: relative; height: .35rem; margin-top: .35rem; overflow: hidden; border-radius: 1rem; background: #334155; }
.billing-vis-credit-meter span { display: block; width: 0; height: 100%; border-radius: inherit; background: #38bdf8; transition: width 160ms ease-out; }
.billing-vis-node[data-balance-state="due"] .billing-vis-credit-meter span { background: #fbbf24; }
.billing-vis-node .billing-vis-credit-meter span[data-refund-fill] { position: absolute; top: 0; right: 0; background: #be586d; }
.billing-vis-node .billing-vis-charge-meter span { background: #34d399; }
@media (prefers-reduced-motion: reduce) { .billing-vis-credit-meter span { transition: none; } }
.billing-vis-node-footer { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin-top: .4rem; }
.billing-vis-link-summary, .billing-vis-edit-link { color: #7dd3fc; font-size: .68rem; cursor: pointer; }
.billing-vis-link-summary:hover, .billing-vis-edit-link:hover { text-decoration: underline; }
.billing-vis-invoice { font-weight: 600; white-space: nowrap; }
.billing-vis-invoice-form { display: inline-flex; margin: 0; }
.billing-vis-node-footer:has(.billing-vis-invoice) { column-gap: .25rem; }
.billing-vis-more-options { min-width: 0; }
.billing-vis-more-options[open] { flex-basis: 100%; }
.billing-vis-options-content { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #334155; }
.billing-vis-connect { display: inline-flex; align-items: center; gap: .15rem; margin-left: auto; padding: .15rem .4rem; border: 1px solid #38bdf855; border-radius: .35rem; background: #38bdf814; color: #bae6fd; font-size: .7rem; font-weight: 600; cursor: pointer; }
.billing-vis-connect:hover { border-color: #7dd3fc; background: #38bdf829; }
.billing-vis-connect:disabled { border-color: #475569; background: transparent; color: #94a3b8; cursor: not-allowed; }
.billing-vis-node-details { margin-top: .15rem; color: #94a3b8; font-size: .68rem; }
.billing-vis-node-details summary { width: fit-content; cursor: pointer; }
.billing-vis-node-details[open] { margin-top: .4rem; padding-top: .35rem; border-top: 1px solid #334155; }
.billing-vis-node-details > p, .billing-vis-node-details > a { display: block; margin-top: .4rem; }
.billing-vis-node-links { display: flex; flex-direction: column; align-items: start; margin-top: .4rem; gap: .3rem; color: #94a3b8; font-size: .7rem; }
.billing-vis-failed-label { color: #fda4af; background: #fb71851a; }
.billing-vis-tile-meta { display: flex; align-items: baseline; gap: .5rem; min-width: 0; }
.billing-vis-tile-meta .billing-vis-node-date { flex-shrink: 0; font-size: .7rem; }
.billing-vis-tile-meta .billing-vis-node-description { min-width: 0; margin-top: .2rem; font-size: .72rem; }
.billing-vis-node-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: .55rem; margin-top: .25rem; }
.billing-vis-node-actions .billing-vis-node-footer { margin-top: 0; }
.billing-vis-node-actions .billing-vis-node-details[open] { grid-column: 1 / -1; }
.billing-vis-failed-payment .billing-vis-node-actions { display: inline; }
.billing-vis-date-group[data-date-stack="true"] .billing-vis-column:has(.billing-vis-node:not([hidden])) { border-inline-start: 2px solid #47556970; padding-inline-start: .3rem; border-radius: .2rem; }
.billing-vis-failed-payment .billing-vis-node-description { font-size: .7rem; }
.billing-vis-failed-payment .billing-vis-node-money { display: inline-flex; margin-right: .65rem; }
.billing-vis-failed-payment .billing-vis-node-details { display: inline; }
.billing-vis-failed-payment .billing-vis-node-details summary { display: inline; }
.billing-vis-failed-payment .billing-vis-node-details[open] { display: block; }
.billing-vis-action { color: #7dd3fc; font-size: .8rem; text-align: left; cursor: pointer; }
.billing-vis-action:hover { text-decoration: underline; }
.billing-vis-adjustment-band { grid-column: 1 / -1; order: -1; pointer-events: auto; position: relative; z-index: 3; }
.billing-vis-date-group:has(.billing-vis-adjustment-band) { row-gap: .5rem; }
.billing-vis-date-group[data-order="oldest"] .billing-vis-adjustment-band { order: 1; }
.billing-vis-date-group[data-adjustment-only="true"] > .billing-vis-column,
.billing-vis-date-group[data-adjustment-only="true"] > .billing-vis-gutter { display: none; }
.billing-vis-adjustments { display: flex; flex-direction: column; gap: .6rem; }
.billing-vis-adjustment-tile { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .55rem 1rem; width: 100%; padding: .65rem .8rem; border: 1px solid #8b5cf655; border-block: 2px solid #a78bfa; border-radius: .45rem; background: #201f34; }
.billing-vis-adjustment-tile .billing-vis-kind { color: #ddd6fe; background: #8b5cf622; }
.billing-vis-adjustment-amounts { display: flex; flex-wrap: wrap; gap: .3rem .8rem; color: #cbd5e1; font-size: .72rem; }
.billing-vis-adjustment-amounts strong { font-family: ui-monospace, monospace; color: #ddd6fe; }
.billing-vis-edge-group.is-auto-match .billing-vis-edge { stroke: #a78bfa; stroke-dasharray: 5 4; }
.billing-vis-node.is-auto-match { border-style: dashed; }
.billing-vis-gutter { padding: 0 .4rem; text-align: center; color: #94a3b8; font-size: .65rem; }
.billing-vis-lines { pointer-events: none; position: absolute; z-index: 2; inset: 0; width: 100%; overflow: visible; }
.billing-vis-edge-group { pointer-events: all; cursor: pointer; transition: opacity 120ms; }
.billing-vis-edge { fill: none; stroke: #38bdf8; stroke-width: 1.5; opacity: .65; pointer-events: none; }
.billing-vis-edge-hit { fill: none; stroke: transparent; stroke-width: 18; pointer-events: stroke; }
.billing-vis-edge-group.is-muted { opacity: .18; }
.billing-vis-edge-group.is-related .billing-vis-edge { opacity: 1; stroke-width: 2; }
.billing-vis-edge-group.is-selected .billing-vis-edge, .billing-vis-edge-group:hover .billing-vis-edge, .billing-vis-edge-group:focus-visible .billing-vis-edge { stroke: #fbbf24; stroke-width: 3; opacity: 1; }
.billing-vis-lines text { fill: #bae6fd; stroke: #0f172a; stroke-width: 5px; paint-order: stroke; stroke-linejoin: round; font: 600 11px system-ui, sans-serif; pointer-events: all; }
.billing-vis-lines text { cursor: pointer; }
.billing-vis-lines text.is-selected, .billing-vis-lines text:hover { fill: #fcd34d; }
html[data-theme="light"] .billing-vis-lines { filter: none; }
.billing-vis-flow { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border: 1px solid #38bdf866; border-radius: .65rem; background: #102a3e; color: #bae6fd; font-size: .85rem; }
.billing-vis-flow button { flex-shrink: 0; border: 1px solid #38bdf855; border-radius: .35rem; padding: .3rem .55rem; cursor: pointer; }
.billing-vis-remove { border: 1px solid #fb718555; border-radius: .6rem; padding: .6rem .9rem; color: #fda4af; font-size: .875rem; font-weight: 600; cursor: pointer; }
.billing-vis-remove:hover { background: #fb718514; }
.billing-vis-connection { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .65rem; padding: .8rem; border: 1px solid #334155; border-radius: .6rem; color: #e2e8f0; font-size: .875rem; }
.billing-vis-connection > span { flex: 1; min-width: 12rem; }
.billing-vis [hidden] { display: none !important; }
.billing-vis input[type="submit"]:disabled { opacity: .4; cursor: not-allowed; }
@media (max-width: 760px) {
  .billing-vis-column[data-kind="failed"] { margin-left: 0; display: grid; grid-template-columns: repeat(auto-fill, 8.75rem); align-items: start; }
  .billing-vis-column:not(:has(.billing-vis-node:not([hidden]))) { display: none; }
  .billing-vis-board { padding: 0 .65rem .65rem; }
  .billing-vis-headings, .billing-vis-scroll.has-failed-payments .billing-vis-headings { display: flex; justify-content: flex-end; padding: .65rem 0; }
  .billing-vis-headings h2 { display: none; }
  .billing-vis-date-group, .billing-vis-scroll.has-failed-payments .billing-vis-date-group { grid-template-columns: minmax(0, 1fr); }
  .billing-vis-date-group { gap: .5rem; }
  .billing-vis-lines, .billing-vis-gutter { display: none; }
  .billing-vis-scroll { max-height: none; }
  .billing-vis-node.is-muted { opacity: .75; }
  .billing-vis-connect, .billing-vis-link-summary, .billing-vis-edit-link, .billing-vis-action { min-height: 2.2rem; display: inline-flex; align-items: center; }
  .billing-vis-node-heading strong { font-size: 1rem; }
}

html[data-theme="light"] img,
html[data-theme="light"] video,
html[data-theme="light"] canvas,
html[data-theme="light"] svg {
  filter: invert(1) hue-rotate(180deg);
}

.brand-logo {
  display: block;
  height: 4.5rem;
  width: auto;
}

.brand-logo--for-dark-theme {
  display: block;
}

.brand-logo--for-light-theme {
  display: none;
}

html[data-theme="light"] .brand-logo {
  filter: none !important;
}

html[data-theme="light"] .brand-logo--for-dark-theme {
  display: none;
}

html[data-theme="light"] .brand-logo--for-light-theme {
  display: block;
}

.pdf-mapper-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 280px minmax(0, 1fr);
}

.pdf-mapper-panel {
  border: 1px solid rgba(71, 85, 105, 0.7);
  border-radius: 0.75rem;
  padding: 0.75rem;
  background: rgba(2, 6, 23, 0.45);
  max-height: 34rem;
  overflow: auto;
}

.pdf-mapper-lobbie-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.pdf-mapper-lobbie-item {
  border: 1px solid rgba(100, 116, 139, 0.6);
  border-radius: 0.6rem;
  padding: 0.45rem 0.55rem;
  background: rgba(15, 23, 42, 0.8);
  cursor: grab;
}

.pdf-mapper-preview-wrap {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1fr) 250px;
}

.pdf-mapper-canvas-wrap {
  position: relative;
  border: 1px solid rgba(71, 85, 105, 0.7);
  border-radius: 0.8rem;
  background: rgba(2, 6, 23, 0.35);
  overflow: auto;
  min-height: 24rem;
  padding: 0.5rem;
}

.pdf-mapper-overlay {
  position: absolute;
  pointer-events: auto;
  z-index: 10;
}

.pdf-map-drop-zone {
  position: absolute;
  border: 1px solid rgba(45, 212, 191, 0.75);
  background: rgba(45, 212, 191, 0.1);
  border-radius: 0.3rem;
}

.pdf-map-drop-zone.dragover {
  border-color: rgba(16, 185, 129, 1);
  background: rgba(16, 185, 129, 0.28);
}

.pdf-map-drop-zone.mapped {
  border-color: rgba(168, 85, 247, 1);
  background: rgba(168, 85, 247, 0.24);
}

.pdf-mapper-fields {
  border: 1px solid rgba(71, 85, 105, 0.7);
  border-radius: 0.8rem;
  background: rgba(2, 6, 23, 0.45);
  padding: 0.75rem;
  max-height: 34rem;
  overflow: auto;
}

.pdf-review-grid {
  display: grid;
  gap: 1.5rem;
  align-items: start;
  grid-template-columns: minmax(0, 1fr) 24rem;
}

@media (max-width: 1024px) {
  .pdf-mapper-grid {
    grid-template-columns: 1fr;
  }

  .pdf-mapper-preview-wrap {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1180px) {
  .pdf-review-grid {
    grid-template-columns: 1fr;
  }
}

.csv-export-toolbar {
  position: sticky;
  left: 0;
  z-index: 20;
  display: flex;
  width: 100%;
  min-width: max-content;
  justify-content: flex-end;
  padding: 0.5rem 0.5rem 0.4rem;
  pointer-events: none;
}

.csv-export-button {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid rgba(45, 212, 191, 0.42);
  border-radius: 0.55rem;
  background: rgba(15, 23, 42, 0.9);
  padding: 0.4rem 0.7rem;
  color: rgb(204 251 241);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 6px 14px rgba(2, 6, 23, 0.24);
  cursor: pointer;
  pointer-events: auto;
  transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease;
}

.csv-export-button:hover,
.csv-export-button:focus-visible {
  border-color: rgba(94, 234, 212, 0.85);
  background: rgba(19, 78, 74, 0.55);
  color: white;
  outline: none;
}

.csv-export-button:focus-visible {
  box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.2);
}

.csv-export-button--complete {
  border-color: rgba(52, 211, 153, 0.7);
  background: rgba(6, 78, 59, 0.65);
  color: rgb(209 250 229);
}

.csv-export-button svg {
  height: 1rem;
  width: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
  overflow: visible;
}

@media print {
  .csv-export-toolbar {
    display: none;
  }
}

/* A focused charge editor keeps the visual timeline in place behind it. */
.billing-charge-modal { width: min(44rem, calc(100vw - 2rem)); max-height: calc(100dvh - 3rem); margin: auto; padding: 1.25rem; overflow: auto; border: 1px solid #475569; border-radius: 1rem; background: #0f172a; color: #e2e8f0; box-shadow: 0 20px 70px #0008; }
.billing-charge-modal::backdrop { background: #020617b8; }
.billing-charge-modal[open]:not(:modal) { position: relative; width: 100%; max-height: none; }
.billing-charge-editor-actions { position: sticky; bottom: -1.25rem; z-index: 1; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; padding: .75rem 0; background: #0f172a; }
.billing-charge-discard { padding: .75rem; border: 1px solid #a16207; border-radius: .5rem; color: #fde68a; font-size: .875rem; }
.billing-vis-node.is-focused { border-color: #7dd3fc; box-shadow: 0 0 0 2px #38bdf833; }

.billing-vis-edge-actions { position: absolute; z-index: 8; transform: translateX(-50%); max-width: min(24rem, calc(100% - 1rem)); padding: .55rem .75rem; border: 1px solid #38bdf8; border-radius: .65rem; background: #0f172a; box-shadow: 0 5px 18px #0005; font-size: .8rem; color: #e2e8f0; }
.billing-vis-edge-actions[hidden] { display: none; }
.billing-vis-edge-actions strong { font-variant-numeric: tabular-nums; color: #7dd3fc; }

.billing-vis-connect-cue { position: absolute; z-index: 9; transform: translateX(-50%); width: max-content; max-width: min(24rem, calc(100% - 1rem)); padding: .6rem .75rem; font-size: .78rem; box-shadow: 0 5px 18px #0005; }
