.billing, .billing-account, .billing-page-head { color:var(--ui-text); font-family:var(--font-ui); line-height:1.5; }
.billing *, .billing-account *, .billing-page-head * { box-sizing:border-box; }
.billing h3 { margin:22px 0 12px; font-size:18px; }
.billing h4 { margin:6px 0 4px; font-size:16px; overflow-wrap:anywhere; }
.billing p { margin:8px 0 12px; }
.billing-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0 20px; }
.billing-overview > div { padding:18px; background:var(--ui-surface-alt); border:1px solid var(--ui-border); border-radius:8px; }
.billing-overview span, .billing-overview small { display:block; color:var(--ui-text-muted); font-size:13px; }
.billing-overview strong { display:block; margin:6px 0; font-size:28px; line-height:1.2; font-weight:600; }
.billing-invoice { padding:16px; margin:10px 0; border:1px solid var(--ui-border); border-radius:8px; background:var(--ui-surface); }
.billing-invoice-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.billing-invoice-head > div { min-width:0; }
.billing-invoice-head > strong { white-space:nowrap; font-size:20px; }
.billing small, .billing-muted, .billing-footnote, .billing-page-head p { color:var(--ui-text-muted); font-size:13px; }
.billing-status { font-size:12px; color:var(--ui-text-muted); }
.billing-status.is-pending { color:var(--ui-accent); }
.billing-status.is-paid { color:var(--ui-success-text); }
.billing-status.is-expired { color:var(--ui-warning-text); }
.billing-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.billing-actions:empty { display:none; }
.billing-mode-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.billing-mode-tabs button[aria-pressed="true"] { background:var(--ui-accent); color:var(--ui-on-accent); border-color:var(--ui-accent); }
.billing [hidden] { display:none !important; }
.billing-feedback { padding:16px; border:1px solid var(--ui-success-border); border-left:4px solid var(--ui-success-text); border-radius:8px; background:var(--ui-success-bg); color:var(--ui-text); line-height:1.5; }
.billing-feedback.is-error { border-color:var(--ui-danger-border); background:var(--ui-danger-bg); }
.billing button, .billing-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:9px 14px; border:1px solid var(--ui-control-border); border-radius:8px; background:var(--ui-input-bg); color:var(--ui-text); font:600 14px/1.3 var(--font-ui); text-decoration:none; cursor:pointer; }
.billing button.primary, .billing-button.primary { background:var(--ui-accent); color:var(--ui-on-accent); border-color:var(--ui-accent); }
.billing button.danger, .billing button[data-billing-action="cancel"] { color:var(--ui-danger-text); border-color:var(--ui-danger-border); background:var(--ui-danger-bg); }
.billing-price-preview, .billing-lesson-balance { padding:12px; border:1px solid var(--ui-border); border-radius:8px; background:var(--ui-surface-alt); }
.billing-template { border-top:1px solid var(--ui-border); padding-top:8px; }
.billing-lesson-accounting { max-width:300px; font-size:13px; color:var(--ui-text-muted); }
.billing-reschedule { margin-top:12px; }
.billing-lesson-form { margin-top:12px; }
.billing-mode-tabs > button { flex:1 1 180px; }
.billing button { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
.billing button:disabled { opacity:.55; cursor:wait; }
.billing :is(button,a,input,select,summary):focus-visible, .billing-button:focus-visible { outline:2px solid var(--ui-accent); outline-offset:3px; }
.billing-group { margin:16px 0; border-top:1px solid var(--ui-border); padding-top:14px; }
.billing summary { cursor:pointer; padding:9px 0; font-weight:600; }
.billing-entry { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid var(--ui-border); font-size:14px; }
.billing-entry small { display:block; }
.billing-entry > b { white-space:nowrap; }
.billing-warning { margin:16px 0; padding:14px; border:1px solid var(--ui-warning-border); background:var(--ui-warning-bg); border-radius:8px; color:var(--ui-warning-text); }
.billing-footnote { margin-top:22px!important; }
.billing-account { border:1px solid var(--ui-border); border-radius:8px; padding:20px; margin:18px 0; background:var(--ui-surface); }
.billing-page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.billing-page-head h2 { margin:0 0 8px; }
.billing-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.billing-form label { display:grid; gap:6px; color:var(--ui-text-muted); font-size:13px; }
.billing-form input, .billing-form select { min-width:0; width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--ui-control-border); border-radius:8px; color:var(--ui-text); background:var(--ui-input-bg); font:15px var(--font-ui); }
.billing-form .wide { grid-column:1/-1; }
#calendar-payment-box .calendar-field[hidden] { display:none!important; }
#student-dashboard.student-billing-view .telegram-required-notice,
#student-dashboard.student-billing-view > .stats-badge { display:none!important; }
@media(max-width:760px) { .billing-account { padding:14px; } .billing-invoice-head { flex-wrap:wrap; } .billing-overview > div { padding:12px; } .billing-overview strong { font-size:24px; } .billing-form { grid-template-columns:1fr; } .billing-actions > * { flex:1 1 auto; } .billing-page-head { flex-wrap:wrap; } }
