.pricing-editor { color:var(--ink,#0b0c0e); }
.pricing-editor header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.pricing-editor [data-car-photo] { width:96px; height:72px; object-fit:contain; flex-shrink:0; border-radius:0; background:transparent; mix-blend-mode:multiply; filter:brightness(1.04); }
.pricing-editor header h2 { flex:1; min-width:0; overflow-wrap:anywhere; }
.pricing-layout { display:grid; grid-template-columns:minmax(0,1fr); max-width:720px; gap:24px; }
.pricing-layout > * { min-width:0; padding:24px; background:var(--card,#f0f2f5); border:1px solid transparent; border-radius:20px; }
.pricing-editor label { display:grid; gap:8px; margin-bottom:16px; }
.pricing-quarter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pricing-editor input,.pricing-editor button { min-height:44px; max-width:100%; }
.pricing-editor input { width:100%; font-variant-numeric:tabular-nums; }
.pricing-editor button:focus-visible,.pricing-editor input:focus-visible { outline:2px solid var(--blue,#075ce5); outline-offset:3px; }
.pricing-editor [role=status] { margin-block:16px; }
.pricing-breakdown { margin:16px 0 0; }
.pricing-breakdown > div { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--line,#dfe2e6); }
.pricing-breakdown dd { margin:0; font-variant-numeric:tabular-nums; }
/* The grand total is the line people look for: a tinted band, heavier label, larger blue amount. */
.pricing-breakdown > [data-line=total] { align-items:center; margin-block:8px; padding:12px 14px; border-bottom:0; border-radius:12px; background:var(--blue-soft,#dce9ff); }
.pricing-breakdown > [data-line=total] dt { font-weight:700; color:var(--ink,#1c2426); }
.pricing-breakdown > [data-line=total] dd { font-size:22px; font-weight:700; line-height:1.3; color:var(--blue-dark,#073fc4); }
.pricing-breakdown > div:has(+ [data-line=total]) { border-bottom-color:transparent; }
@media print { .pricing-breakdown > [data-line=total] { background:transparent; border:1px solid #000; } .pricing-breakdown > [data-line=total] dd { color:#000; } }
@media(max-width:760px) { .pricing-layout,.pricing-quarter-grid { grid-template-columns:minmax(0,1fr); } .pricing-layout > * { padding:16px; } }
.quote-status { color: var(--muted, #737982); overflow-wrap: anywhere; }
#reviewPricing, #confirmationPricing { min-width: 0; }
#reviewPricing .pricing-breakdown, #confirmationPricing .pricing-breakdown { width: 100%; }
.customer-discounts { min-width:0; margin-block:24px; padding:24px; background:var(--card,#f0f2f5); border:1px solid transparent; border-radius:20px; }
.customer-discounts form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; gap:16px; align-items:end; margin-block:16px; }
.customer-discounts label { display:grid; gap:8px; min-width:0; }
.customer-discounts input,.customer-discounts select,.customer-discounts button { min-height:44px; max-width:100%; }
.customer-discounts input,.customer-discounts select { width:100%; font-variant-numeric:tabular-nums; }
/* Same field look as every other admin form: rounded, white on the grey card, 48px tall. */
:root :is(.customer-discounts,.invoice-discount-entry,.pricing-editor) :is(input:not([type=checkbox]),select) { min-height:48px; padding:10px 12px; border:1px solid var(--control-border,#868d97); border-radius:12px; background:var(--white,#fff); color:var(--ink,#1c2426); font:inherit; font-size:16px; box-shadow:none; }
:root :is(.customer-discounts,.invoice-discount-entry,.pricing-editor) :is(input:not([type=checkbox]),select):hover { border-color:var(--control-border-hover,#5f6670); }
#carTypePricingView .daily-rate-field { margin-bottom:16px; }
#carTypePricingView .daily-rate-field > label { margin-bottom:12px; }
#carTypePricingView .daily-rate-stepper { display:flex; align-items:center; justify-content:space-between; gap:16px; width:min(100%,450px); min-height:98px; padding:16px; box-sizing:border-box; border:1px solid #30304c; border-radius:18px; background:#13121a; }
#carTypePricingView .daily-rate-amount { display:flex; align-items:center; justify-content:center; gap:12px; min-width:0; }
#carTypePricingView .daily-rate-currency { color:#9396a3; font-size:24px; font-weight:400; }
#carTypePricingView input[name="daily_rate"] { min-width:0; max-width:100%; min-height:48px; padding:0; border:0; border-radius:4px; background:transparent; color:#fff; font-size:36px; font-weight:700; line-height:1.2; text-align:center; appearance:textfield; -moz-appearance:textfield; box-shadow:none; }
#carTypePricingView input[name="daily_rate"]::-webkit-inner-spin-button,
#carTypePricingView input[name="daily_rate"]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
#carTypePricingView [data-rate-step] { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:0; border:0; border-radius:13px; background:#232229; color:#a7aab7; font-size:28px; font-weight:400; line-height:1; box-shadow:none; }
#carTypePricingView [data-rate-step]:hover:not(:disabled) { background:#32313d; color:#fff; }
#carTypePricingView [data-rate-step]:disabled { opacity:.4; cursor:not-allowed; }
#carTypePricingView .daily-rate-stepper :is(button,input):focus-visible { outline:2px solid #a9baff; outline-offset:4px; }
@media(max-width:480px) { #carTypePricingView .daily-rate-stepper { gap:8px; padding:12px; } #carTypePricingView .daily-rate-amount { gap:6px; } #carTypePricingView input[name="daily_rate"] { font-size:30px; } #carTypePricingView .daily-rate-currency { font-size:20px; } }
.customer-discounts :is(button,input,select,a):focus-visible { outline:2px solid var(--blue,#075ce5); outline-offset:3px; }
.customer-discounts [role=status]:empty { display:none; }
.customer-discount-list { display:grid; gap:12px; margin:16px 0 0; padding:0; list-style:none; }
/* On the grey panel a usable code is a white tile; used and expired codes recede to an outline. */
.customer-discount-list > li { display:grid; gap:12px; min-width:0; padding:16px; border:1px solid transparent; border-radius:12px; background:var(--white,#fff); }
.customer-discount-list > li:not([data-status=available]) { background:transparent; border-color:#d5d9e0; }
.customer-discount-code { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.customer-discount-code code { font-size:.95rem; overflow-wrap:anywhere; user-select:all; }
.customer-discount-list dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:0; }
.customer-discount-list dt { color:var(--muted,#737982); font-size:.8rem; }
.customer-discount-list dd { margin:0; overflow-wrap:anywhere; }
.customer-discount-list a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:760px) { .customer-discounts { padding:16px; } .customer-discounts form { grid-template-columns:minmax(0,1fr); } }
.invoice-discounts { min-width:0; margin-block:16px; }
.invoice-discount-entry { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px; align-items:end; margin-block:16px; }
.invoice-discount-entry label { display:grid; gap:8px; min-width:0; }
.invoice-discounts input[type=text] { width:100%; font-variant-numeric:tabular-nums; text-transform:uppercase; }
.invoice-discounts input[type=text],.invoice-discounts button { min-height:44px; max-width:100%; }
.invoice-discounts :is(button,input):focus-visible { outline:2px solid var(--blue,#075ce5); outline-offset:3px; }
.invoice-discounts [role=status]:empty { display:none; }
.invoice-discounts code { overflow-wrap:anywhere; }
.invoice-discount-confirm { display:flex; align-items:flex-start; gap:12px; min-height:44px; margin-block:16px; }
.invoice-discount-confirm input { width:24px; height:24px; flex-shrink:0; margin:0; }
.invoice-discounts [data-payments] [data-balance] { font-weight:600; }
@media(max-width:760px) { .invoice-discount-entry { grid-template-columns:minmax(0,1fr); } }
.pricing-breakdown dt small { display:block; color:var(--muted,#737982); font-weight:400; overflow-wrap:anywhere; }
.invoice-lines tr[data-line$=discount] td { color:#0a6b3d; }
@media print { .invoice-lines tr[data-line$=discount] td { color:#000; } }
/* Amounts never split across lines; the long code text gives way instead. Quarter names may wrap. */
/* Labels wrap between words only; the long code inside <small> still breaks anywhere. */
/* :root prefix outranks app-labels.css (':root dt { overflow-wrap:anywhere }'), which loads later. */
:root .pricing-breakdown dt { overflow-wrap:normal; word-break:normal; min-width:min-content; }
.pricing-breakdown dd { white-space:nowrap; flex-shrink:0; }
.pricing-breakdown dd:has([data-quarters]) { white-space:normal; flex-shrink:1; min-width:0; text-align:end; }
/* Locations that have a Google Maps link (reservation page, invoice): a quiet link with a pin that
   hops on hover. On paper the pin goes and a short share link is printed after the name, since paper cannot be clicked. */
.location-link { display:inline-flex; align-items:center; gap:4px; min-height:24px; color:var(--blue,#0057ff); text-decoration:none; border-radius:6px; overflow-wrap:anywhere; }
.location-link svg { width:16px; height:16px; flex:0 0 16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform 260ms var(--card-ease,ease); }
:root .location-link span { color:inherit; font:inherit; }
.location-link:is(:hover,:focus-visible) span { text-decoration:underline; text-underline-offset:3px; }
.location-link:is(:hover,:focus-visible) svg { transform:translateY(-2px); }
@media print { .location-link { color:inherit; display:inline; } .location-link svg { display:none; } .location-link[data-print-url]::after { content:" — " attr(data-print-url); font-weight:400; font-size:.85em; direction:ltr; unicode-bidi:isolate; } }
