/* 1.0.11 — scoped UI refinement; no pricing or site-wide selectors. */
.dtsb-product-page { overflow: visible!important; }
.dtsb-configurator { --dtsb-radius: 18px; }
.dtsb-product-hero { gap: clamp(24px, 3vw, 40px); }
.dtsb-budget-column { align-self: stretch; min-width: 0; }
.dtsb-budget-card {
  position: sticky; top: calc(var(--dtsb-header-occlusion, 0px) + 24px); width: 100%; padding: 18px;
  border: 1px solid #dce4ed; border-top: 4px solid var(--dtsb-mint);
  border-radius: var(--dtsb-radius); background: #fff;
  box-shadow: 0 14px 40px rgba(28, 46, 88, .10);
  overflow: visible; font-variant-numeric: tabular-nums;
}
.dtsb-budget-title { font-size: 24px; line-height: 1.15; margin: 0 0 8px; letter-spacing: -.035em; }
.dtsb-budget-eyebrow { display: none; }
.dtsb-compact-fieldset { padding: 4px 0; border: 0; }
.dtsb-compact-fieldset legend { padding: 0 0 4px; color: var(--dtsb-ink); font-size: 13px; line-height: 18px; font-weight: 800; }
.dtsb-quantity-grid { gap: 6px; }
.dtsb-quantity-grid button { min-height: 44px; height: auto; padding: 5px 2px; gap: 2px; flex-direction: column; border-radius: 10px; }
.dtsb-quantity-grid b { font-size: 15px; line-height: 1.05; }
.dtsb-quantity-grid small { font-size: 10px; line-height: 1.1; color: #55647d; }
.dtsb-quantity-check { position: absolute; top: 4px; right: 4px; font-size: 10px; }
.dtsb-quantity-grid button.is-active { background: #e6faf5; border-color: #087e6d; box-shadow: inset 0 0 0 1px #087e6d; }
.dtsb-discount-message { font-size: 11px; line-height: 1.4; min-height: 16px; margin: 4px 0 0; }
.dtsb-budget-lines { padding: 5px 0 3px; margin-top: 3px; }
.dtsb-budget-lines > div, .dtsb-budget-totals > div { min-height: 26px; gap: 12px; font-size: 13px; line-height: 1.35; }
.dtsb-budget-lines span, .dtsb-budget-totals span { color: #536179; }
.dtsb-budget-lines strong, .dtsb-budget-totals strong { font-size: 14px; text-align: right; white-space: nowrap; }
.dtsb-budget-subtotal { margin-top: 3px; padding-top: 4px; }
.dtsb-choice-grid label { min-height: 44px; padding: 8px; border-radius: 10px; }
.dtsb-choice-grid b { font-size: 13px; }
.dtsb-choice-grid label:has(input:focus-visible) { outline: 3px solid #263768; outline-offset: 3px; }
.dtsb-install-compact { margin: 5px 0; padding: 4px 0 0; }
.dtsb-install-compact > label:first-child { min-height: 44px; gap: 10px; }
.dtsb-install-compact b { font-size: 13px; line-height: 1.3; }
.dtsb-install-compact small { font-size: 10px; line-height: 1.5; color: #56647c; }
.dtsb-install-compact > label > strong { font-size: 13px; text-align: right; }
.dtsb-switch, .dtsb-switch i { width: 38px; height: 24px; }
.dtsb-switch i:after { width: 18px; height: 18px; }
.dtsb-switch input:checked + i:after { translate: 14px 0; }
.dtsb-install-compact details { margin: 0; }
.dtsb-install-compact summary { display: flex; align-items: center; min-height: 44px; font-size: 11px; line-height: 1.4; }
.dtsb-install-compact summary::before { content: '+'; display: inline-block; margin-right: 6px; font-size: 16px; }
.dtsb-install-compact details[open] summary::before { content: '−'; }
.dtsb-install-compact details p { font-size: 12px; padding: 10px; }
.dtsb-install-accept { min-height: 44px; font-size: 12px; line-height: 1.5; padding: 10px; align-items: center; }
.dtsb-budget-totals { border: 0; padding-top: 0; }
.dtsb-grand-total { min-height: 56px!important; padding: 10px!important; margin: 5px 0 10px!important; border-radius: 12px; background: linear-gradient(120deg,#263768,#17264f); }
.dtsb-grand-total span { max-width: 45%; color: #fff!important; font-size: 13px; }
.dtsb-grand-total strong { font-size: clamp(23px,2vw,28px)!important; letter-spacing: -.03em; }
.dtsb-buy-button { min-height: 52px!important; font-size: 16px!important; border-radius: 12px!important; box-shadow: 0 5px 12px rgba(8,126,109,.13); }
.dtsb-purchase-trust { gap: 5px 10px; margin-top: 10px; font-size: 10px; line-height: 1.5; color: #526078; }
.dtsb-form-error { font-size: 13px; line-height: 1.5; }
.dtsb-configurator button:focus-visible, .dtsb-configurator summary:focus-visible, .dtsb-configurator textarea:focus-visible { outline: 3px solid #263768; outline-offset: 3px; }
.dtsb-carousel-arrow { width: 44px; height: 44px; }
.dtsb-carousel-thumbs button { min-height: 44px; }
.dtsb-trust-list { gap: 8px; }
.dtsb-trust-list li { font-size: 12px; padding: 8px 10px; }
.dtsb-upload-card { padding: 18px; border-radius: var(--dtsb-radius); background: #f8fafc; margin-top: 20px; }
.dtsb-free-review { background: #e9f9f5; padding: 14px; }
.dtsb-free-review h3 { font-size: 16px; line-height: 1.35; }
.dtsb-free-review p { font-size: 12px; line-height: 1.6; }
.dtsb-same-design { min-height: 48px; margin: 14px 0; padding: 10px 12px; font-size: 13px; line-height: 1.45; background: #fff; }
.dtsb-same-design input { flex: 0 0 20px; width: 20px; height: 20px; }
.dtsb-same-design:has(input:focus-visible) { outline: 3px solid var(--dtsb-blue); outline-offset: 3px; }
.dtsb-same-design-note { color: #087461; background: #e7f8f2; padding: 12px; border-radius: 10px; font-size: 12px; line-height: 1.5; margin: 0 0 12px; }
.dtsb-upload-grid { gap: 12px; align-items: start; }
.dtsb-upload-tile { min-width: 0; padding: 14px; border: 1px solid #d9e3ec; border-radius: 14px; background: #fff; }
.dtsb-upload-tile h4 { color: var(--dtsb-blue); font-size: 15px; line-height: 1.3; margin: 0 0 12px; }
.dtsb-dropzone { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 212px; padding: 14px 10px; background: #f8fafc; border: 1px dashed #9bacbf; border-radius: 11px; text-align: center; }
.dtsb-upload-symbol { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: #e4f6f2; color: #087e6d; font-weight: 850; font-size: 15px; }
.dtsb-dropzone [data-upload-prompt] { margin: 0; color: #4d5e77; font-size: 12px; line-height: 1.4; }
.dtsb-file-select, .dtsb-file-remove { min-height: 44px; padding: 10px 14px; border: 1px solid #b8c7d8; border-radius: 9px; font: inherit; font-size: 12px; font-weight: 800; line-height: 1.4; color: var(--dtsb-blue); background: #fff; cursor: pointer; }
.dtsb-file-select:hover { border-color: #087e6d; background: #e9f9f5; }
.dtsb-dropzone .dtsb-file-help { margin: 0; color: #586981; font-size: 11px; line-height: 1.6; }
.dtsb-configurator .dtsb-file-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.dtsb-dropzone:focus-within { border-color: var(--dtsb-blue); }
.dtsb-configurator .dtsb-file-preview { display: block; width: 100%; height: 132px; object-fit: contain; border-radius: 8px; background: #fff; }
.dtsb-file-details { display: grid; gap: 5px; padding-top: 12px; min-width: 0; }
.dtsb-file-details strong { font-size: 12px; color: var(--dtsb-ink); line-height: 1.5; overflow-wrap: anywhere; word-break: break-word; }
.dtsb-file-details > span { font-size: 11px; color: #65728a; }
.dtsb-file-remove { justify-self: start; padding-inline: 0; border-color: transparent; background: transparent; color: #a82924; text-decoration: underline; text-underline-offset: 3px; }
.dtsb-file-status, .dtsb-file-error { font-size: 11px; line-height: 1.6; margin: 10px 0 0; overflow-wrap: anywhere; color: #5e6e84; }
.dtsb-upload-tile[data-upload-state=selected] { border-color: #69bca9; }
.dtsb-upload-tile[data-upload-state=selected] .dtsb-file-status { color: #087461; font-weight: 650; }
.dtsb-upload-tile[data-upload-state=loading] .dtsb-dropzone { opacity: .65; }
.dtsb-upload-tile[data-upload-state=error] { border-color: #c95148; }
.dtsb-file-error { color: #a82924; background: #fff2f0; border-radius: 8px; padding: 9px; }
.dtsb-upload-tile.is-dragging .dtsb-dropzone { background: #e4f8f2; border: 2px solid #087e6d; padding: 13px 9px; }
.dtsb-send-later { font-size: 12px; line-height: 1.6; margin: 14px 0 0; }
.dtsb-notes { font-size: 13px; gap: 8px; margin-top: 16px; }
.dtsb-notes textarea { font-size: 13px; min-height: 88px; background: #fff; }
@media(min-width:1001px) and (max-width:1200px) {
  .dtsb-product-hero { grid-template-columns: minmax(0,1fr) minmax(380px,.85fr); gap: 24px; }
  .dtsb-upload-grid { grid-template-columns: 1fr; }
}
@media(max-width:1000px) {
  .dtsb-product-hero { grid-template-columns: minmax(0,1fr); }
  .dtsb-budget-card, .admin-bar.dtsb-product-page .dtsb-budget-card { position: static; top: auto; }
  .dtsb-budget-column { width: 100%; }
  .dtsb-budget-card { max-width: none; padding: 20px; }
}
@media(max-width:600px) {
  .dtsb-upload-grid { grid-template-columns: minmax(0,1fr); }
  .dtsb-budget-card { padding: 16px; }
  .dtsb-upload-card { padding: 12px; }
  .dtsb-upload-tile { padding: 14px; }
  .dtsb-budget-title { font-size: 23px; }
  .dtsb-install-compact > label:first-child { gap: 7px; }
  .dtsb-install-compact > label > strong { font-size: 12px; }
  .dtsb-grand-total strong { font-size: 25px!important; }
  .dtsb-purchase-trust { display: grid; gap: 4px; justify-items: center; }
  .dtsb-carousel-arrow { width: 44px; height: 44px; }
  .dtsb-configurator textarea { font-size: 16px; }
}
