/* Scoped pricing and billing controls, using the shared Viola theme. */
.capacity-layout { display:grid; grid-template-columns:minmax(230px, .65fr) minmax(0, 1.35fr); gap:24px; max-width:1000px; margin:auto; }
.capacity-card { background:var(--bg-card); border:1px solid var(--border-light); border-radius:var(--radius); padding:32px; min-width:0; }
.capacity-card h2 { margin:0 0 16px; font-family:var(--font-display); font-size:32px; }
.capacity-card-paid { border-color:rgba(199,146,98,.5); }
.capacity-selector button, .capacity-selector input { font:inherit; }
.capacity-selector button, .capacity-stepper input, .capacity-actions button, .capacity-actions a { min-height:44px; }
.capacity-selector button { border:1px solid var(--border-light); color:var(--text); background:transparent; border-radius:var(--radius-sm); padding:8px 12px; cursor:pointer; }
.capacity-selector button[aria-pressed="true"] { border-color:var(--bronze); color:var(--text-bright); background:rgba(199,146,98,.13); }
.capacity-selector button:disabled, .capacity-actions button:disabled { opacity:.55; cursor:not-allowed; }
.capacity-interval { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.capacity-value { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.capacity-price { font-size:42px; color:var(--text-bright); letter-spacing:-.035em; margin:0; font-variant-numeric:tabular-nums; }
.capacity-multiplier { font-size:24px; color:var(--bronze); margin:0; }
.capacity-billing-note, .capacity-basis { color:var(--text-secondary); font-size:14px; line-height:1.6; }
.capacity-basis { margin:20px 0; font-size:13px; }
.capacity-range-label { display:block; margin:24px 0 4px; font-size:14px; }
.capacity-selector input[type="range"] { width:100%; height:44px; accent-color:var(--bronze); cursor:pointer; margin:0; }
.capacity-range-ends { display:flex; justify-content:space-between; color:var(--text-muted); font-size:12px; }
.capacity-amount-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; flex-wrap:wrap; font-size:14px; }
.capacity-stepper { display:flex; border:1px solid rgba(199,146,98,.4); border-radius:10px; overflow:hidden; }
.capacity-stepper input { width:82px; padding:8px; text-align:center; border:0; border-inline:1px solid var(--border-light); background:var(--bg); color:var(--text-bright); }
.capacity-stepper button { min-width:44px; border:0; border-radius:0; }
.capacity-error { color:#ff9d9d; min-height:22px; margin:8px 0; font-size:13px; }
.capacity-error:empty { display:none; }
.capacity-presets { display:flex; flex-wrap:wrap; gap:8px; }
.capacity-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; align-items:center; }
.capacity-actions .btn { white-space:normal; text-align:center; }
.capacity-status { font-size:14px; line-height:1.6; color:var(--text-secondary); }
.capacity-principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:1000px; margin:32px auto 0; }
.capacity-principles p { color:var(--text-secondary); line-height:1.7; font-size:14px; }
.capacity-account-preview { max-width:1000px; margin:32px auto 0; padding:24px; border:1px solid var(--border-light); border-radius:var(--radius); display:flex; justify-content:space-between; gap:20px; align-items:center; }
.capacity-account-preview p { color:var(--text-secondary); line-height:1.6; }
.capacity-summary { margin:20px 0; }
.capacity-summary div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid var(--border-light); font-size:14px; }
.capacity-summary dt { color:var(--text-secondary); }
.capacity-summary dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.capacity-summary .capacity-due { font-size:18px; }
.capacity-summary .capacity-due dd { color:var(--bronze); }
.capacity-dialog { width:min(600px,calc(100% - 24px)); max-height:calc(100dvh - 32px); padding:28px; border:1px solid rgba(199,146,98,.6); border-radius:20px; background:var(--bg-card); color:var(--text); overflow:auto; }
.capacity-dialog::backdrop { background:rgba(0,0,0,.8); backdrop-filter:blur(4px); }
.capacity-dialog-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.capacity-dialog h2 { font-family:var(--font-display); font-size:32px; margin:0 0 16px; }
.capacity-dialog-close { width:44px; height:44px; border:1px solid var(--border-light); border-radius:50%; background:transparent; color:var(--text); font-size:24px; cursor:pointer; }
.capacity-dialog .capacity-price { font-size:30px; }
.capacity-dialog .capacity-range-label { margin-top:12px; }
.capacity-dialog .capacity-amount-row { margin-top:12px; }
.capacity-dialog .capacity-basis { margin:12px 0; }
.capacity-dialog .capacity-billing-note, .capacity-dialog .capacity-status { margin:8px 0; }
.capacity-dialog .capacity-consent { margin:12px 0; }
.capacity-dialog .capacity-summary { margin:12px 0; }
.capacity-dialog .capacity-summary div { padding:8px 0; }
.capacity-consent { display:flex; gap:10px; align-items:flex-start; font-size:14px; line-height:1.6; margin:18px 0; }
.capacity-consent input { width:20px; height:20px; flex-shrink:0; accent-color:var(--bronze); }
.capacity-consent a { text-decoration:underline; }
.capacity-account-block { margin-top:20px; padding-top:20px; border-top:1px solid var(--border-light); }
.capacity-usage { width:100%; height:10px; accent-color:var(--bronze); }
.capacity-account-block [hidden], .capacity-dialog [hidden], .capacity-card [hidden] { display:none!important; }
#legacy-checkout-presets[hidden] { display:none!important; }
@media(max-width:640px) {
  .capacity-layout, .capacity-principles { grid-template-columns:1fr; }
  .capacity-card { padding:24px; }
  .capacity-account-preview { flex-direction:column; align-items:stretch; }
  .capacity-price { font-size:36px; }
  .capacity-dialog { padding:20px; }
  .capacity-summary div { gap:14px; font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .capacity-selector *, .capacity-dialog * { transition:none!important; scroll-behavior:auto!important; } }
