.balance-line { gap: .7rem; flex-wrap: wrap; }
.balance-line #add-credit { margin-left:auto; white-space:nowrap; }
.preferences-footer { gap:1rem; flex-wrap:wrap; }
.preferences-footer [data-open-account-billing] { margin-right:auto; }
#account-billing-dialog { box-sizing:border-box; width:min(40rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:clamp(1.25rem,4vw,2rem); border-radius:1rem; }
#account-billing-dialog .panel-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
#account-billing-dialog .panel-heading h2 { margin:0; }
#account-billing-content > section { padding-top:1.2rem; border-top:1px solid var(--line); margin-top:1.2rem; }
#account-billing-content h3 { margin:0 0 .75rem; }
#account-billing-content p { margin:.75rem 0 0; overflow-wrap:anywhere; }
#wallet-credit > button { font-size:1rem; text-align:left; }
#wallet-credit-content .balance-summary { padding:1rem 0; border-bottom:1px solid var(--line); }
#wallet-credit-content .balance-summary:last-child { border-bottom:0; }
#wallet-credit-content .balance-summary button { margin-top:.75rem; }
#topup-notice { margin: .6rem 0 0; }
#topup-dialog { box-sizing: border-box; width: min(40rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; border: 1px solid var(--line); border-radius: 1rem; padding: clamp(1.25rem, 4vw, 2rem); color: var(--ink); background: var(--surface); box-shadow: 0 1.5rem 5rem #0005; }
#topup-dialog::backdrop { background: #061327a3; }
#topup-dialog .panel-heading { display: flex; justify-content: space-between; align-items: center; }
#topup-dialog .panel-heading h2 { margin: 0; }
.topup-intro { color: var(--muted); margin: .8rem 0 1.6rem; }
#topup-form { display: grid; gap: 1.3rem; margin: 0; }
.topup-amounts { border: 0; margin: 0; padding: 0; min-width: 0; }
.topup-amounts legend { margin-bottom: .7rem; font-weight: 600; }
.topup-presets { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.topup-choice { position: relative; cursor: pointer; }
.topup-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.topup-choice span { display: flex; align-items: center; justify-content: center; min-height: 3rem; padding: .4rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--input); font-weight: 600; }
.topup-choice input:checked + span { color: var(--accent); border-color: var(--accent); background: var(--step-bg); box-shadow: inset 0 0 0 1px var(--accent); }
.topup-choice:hover span { border-color: var(--accent); }
.topup-choice input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 3px; }
.topup-input-wrap { display: flex; align-items: center; gap: .6rem; padding: .75rem 1rem; border: 1px solid var(--input-border); border-radius: .6rem; background: var(--input); }
.topup-input-wrap:focus-within { border-color: var(--muted); }
#topup-amount { flex: 1; width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; }
.topup-total { display: grid; gap: .35rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.topup-total > span { color: var(--muted); }
#topup-total { font-size: 2.3rem; font-weight: 650; line-height: 1.2; font-variant-numeric: tabular-nums; }
#topup-dialog .button { justify-self: stretch; }
.topup-checkout-note { margin-top: 1rem; line-height: 1.6; }
@media (max-width: 540px) { .topup-presets { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

#topup-range { margin: .6rem 0 0; }
#topup-range.error { color: var(--error); font-weight: 600; }
.topup-input-wrap:has([aria-invalid="true"]) { border-color: var(--invalid); }
#topup-submit:disabled { cursor: not-allowed; }
.topup-breakdown { display: grid; gap: .65rem; margin: 0; padding-top: 1rem; border-top: 1px solid var(--line); }
.topup-breakdown > div { display: flex; justify-content: space-between; gap: 1rem; }
.topup-breakdown dt { color: var(--muted); }
.topup-breakdown dd { margin: 0; font-variant-numeric: tabular-nums; }
.topup-tax-note { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }

.topup-billing { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding-bottom:1.2rem; }
.topup-billing .small-text { margin:.3rem 0 0; overflow-wrap:anywhere; }
.topup-billing button { flex-shrink:0; }
#billing-details-dialog { box-sizing:border-box; width:min(40rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:clamp(1.25rem,4vw,2rem); border-radius:1rem; }
#billing-details-dialog .panel-heading { display:flex; justify-content:space-between; gap:1rem; }
#billing-details-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.billing-wide { grid-column:1/-1; }
.billing-field { display:grid; gap:.4rem; min-width:0; align-content:start; }
.billing-field label { font-size:.875rem; font-weight:600; }
.billing-field input,.billing-field select { box-sizing:border-box; width:100%; min-width:0; min-height:2.8rem; padding:.65rem .75rem; font:inherit; border:1px solid var(--input-border); border-radius:.5rem; background:var(--input); color:var(--ink); }
.billing-field input:focus-visible,.billing-field select:focus-visible { outline:2px solid var(--muted); outline-offset:2px; }
@media(max-width:440px) { #billing-details-form { grid-template-columns:minmax(0,1fr); } .topup-billing { align-items:flex-start; flex-direction:column; gap:.6rem; } }

.admin-tax-markets { border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:22px; }
.admin-tax-markets #market-country { font:inherit; font-size:14px; min-height:40px; padding:8px 10px; background:var(--input); color:var(--ink); border:1px solid var(--input-border); border-radius:5px; min-width:0; flex:1 1 12rem; }
.admin-field-inline { font:inherit; font-size:14px; min-height:40px; width:5.5rem; padding:8px 10px; background:var(--input); color:var(--ink); border:1px solid var(--input-border); border-radius:5px; }
.admin-tax-markets .admin-input-row { align-items:center; }
.admin-tax-markets .balance-adjustments li { align-items:center; flex-wrap:wrap; gap:8px; }
.admin-tax-markets .balance-adjustments li > div:first-child { min-width:0; flex:1 1 auto; }
.admin-tax-markets .market-rule { display:block; margin-top:2px; color:var(--muted); font-size:12px; font-weight:400; overflow-wrap:anywhere; }
.admin-tax-markets #review-list li { flex-direction:column; align-items:stretch; }
.admin-tax-markets #review-list li > span { min-width:0; overflow-wrap:anywhere; }
.admin-tax-markets .review-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.admin-tax-markets .review-actions .review-note { flex:1 1 12rem; width:auto; min-width:0; }
.admin-tax-markets #market-list li > div:first-child { min-width:0; }
.admin-tax-markets .review-note { flex:1 1 14rem; min-width:0; margin:0; min-height:34px; font-size:13px; }
.admin-tax-markets #market-list button:disabled, .admin-tax-markets #review-list button:disabled { opacity:.55; }
.admin-tax-markets h4 { font-size:13px; margin:22px 0 8px; }
.admin-tax-markets #market-status { margin-top:12px; }
.admin-tax-markets #market-status.error { color:var(--error); }

.admin-tax-profiles { border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:22px; }
.admin-field { box-sizing:border-box; display:block; width:100%; max-width:640px; min-height:40px; margin-bottom:12px; padding:8px 10px; font:inherit; font-size:14px; background:var(--input); color:var(--ink); border:1px solid var(--input-border); border-radius:5px; }
.admin-field:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.admin-field:disabled { opacity:.6; }
.admin-tax-profiles #tax-status { margin-top:12px; }
.admin-tax-profiles #tax-status.error { color:var(--error); }
.admin-tax-profiles .admin-input-row { max-width:640px; flex-wrap:wrap; }
.admin-tax-profiles h4 { font-size:13px; margin:20px 0 8px; }
@media(max-width:400px) { .admin-tax-profiles .admin-input-row { flex-direction:column; } }

/* A select keeps its intrinsic width unless told otherwise; at phone widths it
   would push the page wider than the viewport. */
@media(max-width:400px) { .admin-tax-markets .admin-input-row { flex-direction:column; } .admin-tax-markets #market-country { width:100%; max-width:100%; } }

.tax-regime-summary { padding:1rem; margin:1rem 0; background:var(--soft); border:1px solid var(--line); border-radius:.6rem; }
.tax-regime-summary strong { display:block; font-size:.95rem; }
.tax-regime-summary p { margin:.4rem 0 0; }
.tax-meter-help { margin-top:.35rem; }
.tax-status-actions { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; margin:.75rem 0; }
.tax-setup { margin:1.5rem 0; border:1px solid var(--line); border-radius:.6rem; padding:1rem; }
.tax-setup > summary { cursor:pointer; font-weight:600; }
.tax-setup-section + .tax-setup-section { margin-top:1.5rem; padding-top:.5rem; border-top:1px solid var(--line); }
.tax-setup-section > button { margin-top:.75rem; }
.tax-country-fields { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:1rem; align-items:start; }
.tax-country-fields > div { min-width:0; }
.tax-country-fields #market-country { width:100%; min-height:40px; }
#eu-market-form .admin-field { margin-top:.3rem; }
#tax-change-dialog { box-sizing:border-box; width:min(46rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); padding:clamp(1.1rem,4vw,2rem); }
#tax-change-dialog p { margin:.85rem 0; font-size:.9rem; line-height:1.6; overflow-wrap:anywhere; }
.tax-impact-list { max-height:16rem; overflow:auto; padding:.75rem .75rem .75rem 1.75rem; margin:1rem 0; background:var(--soft); border:1px solid var(--line); border-radius:.5rem; }
.tax-impact-list li { padding:.35rem 0; font-size:.825rem; line-height:1.5; overflow-wrap:anywhere; }
.tax-change-actions { display:flex; justify-content:flex-end; align-items:center; gap:.75rem; flex-wrap:wrap; padding-top:1rem; border-top:1px solid var(--line); }
.tax-change-actions button { white-space:normal; }
@media(max-width:440px) { .tax-country-fields { grid-template-columns:minmax(0,1fr); gap:.25rem; } }
