/* Perfil fiscal y documentos privados. Misma identidad editorial del campus. */
.billing-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:24px; }
.billing-heading h1 { margin:7px 0 10px; }
.billing-heading p { color:#566963; max-width:640px; margin:0; }
.billing-heading > .btn { flex-shrink:0; margin-top:12px; }
.billing-tabs { display:flex; gap:22px; border-bottom:1px solid #d8e3df; margin-bottom:28px; }
.billing-tabs a { padding:14px 3px; color:#566963; font-weight:600; text-decoration:none; border-bottom:3px solid transparent; }
.billing-tabs a.active { border-color:#23695b; color:#143d38; }
.billing-main { display:grid; gap:22px; }
.billing-main .card { border-radius:18px; border:1px solid #dce5e0; padding:28px; }
.billing-profile-layout { display:grid; grid-template-columns:minmax(0,2.4fr) minmax(245px,1fr); gap:24px; align-items:start; }
.billing-card-heading { display:flex; gap:16px; align-items:flex-start; margin-bottom:24px; }
.billing-card-heading h2 { margin:0 0 8px; }
.billing-card-heading p { color:#566963; font-size:14px; margin:0; }
.billing-step { min-width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:#eaf2ec; font-size:13px; font-weight:700; color:#23695b; }
.billing-type { margin:0 0 24px; padding:14px 16px; border:1px solid #d9e4de; border-radius:12px; display:flex; flex-wrap:wrap; gap:12px 26px; }
.billing-type legend { font-size:13px; font-weight:600; padding:0 7px; color:#344d45; }
.billing-type label { display:flex; align-items:center; gap:8px; font-size:14px; color:#203f35; cursor:pointer; }
.billing-type input { accent-color:#23695b; width:17px; height:17px; margin:0; }
.billing-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 18px; }
.billing-field { display:flex; flex-direction:column; gap:8px; color:#344d45; font-weight:500; font-size:13px; }
.billing-field input, .billing-field textarea, .billing-field select { width:100%; min-height:44px; padding:11px 13px; border:1px solid #cbd9d2; border-radius:9px; color:#173c30; font:inherit; background:#fff; }
.billing-field textarea { resize:vertical; }
.billing-field input:focus, .billing-field textarea:focus, .billing-field select:focus { outline:3px solid #cee6da; border-color:#23695b; }
.billing-note { padding:15px 18px; border-radius:11px; border-left:3px solid #5f9078; background:#f1f6f1; color:#41594d; font-size:13px; line-height:1.8; margin:22px 0; }
.billing-note a { color:#175d49; font-weight:600; }
.billing-form-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:22px; }
.billing-feedback, .billing-download-error { font-size:13px; line-height:1.7; padding:11px 14px; border-radius:9px; background:#f3f6f3; }
.billing-feedback.success { color:#16553d; background:#edf7ef; }
.billing-feedback.error, .billing-download-error { color:#9c2a27; background:#fff0ee; }
.billing-feedback[hidden], .billing-download-error[hidden] { display:none; }
.billing-aside h2 { font-size:19px; line-height:1.4; margin:15px 0; }
.billing-aside p { font-size:14px; color:#53695c; line-height:1.85; }
.billing-rule { border-top:1px solid #dfe6dd; margin:24px 0; }
.billing-count { margin-left:auto; border-radius:20px; background:#edf2ed; color:#405a48; white-space:nowrap; padding:7px 11px; font-size:12px; }
.billing-invoice { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:15px 20px; padding:24px 0; border-top:1px solid #e4ebe6; }
.billing-invoice-main p { color:#435f50; margin:10px 0 8px; line-height:1.6; overflow-wrap:anywhere; }
.billing-invoice-side { display:flex; flex-direction:column; gap:10px; align-items:flex-end; min-width:175px; }
.billing-invoice-side .btn { width:100%; }
.billing-amount { font-size:22px; color:#183d32; margin-bottom:4px; }
.billing-badge { display:inline-flex; align-items:center; padding:4px 9px; border-radius:20px; background:#f1f3ef; color:#43584d; font-size:11px; font-weight:500; }
.billing-status-paid { color:#1c6047; background:#eaf5ed; }
.billing-status-void { color:#823829; background:#fcf0e9; }
.billing-invoice details { margin-top:12px; font-size:12px; color:#5b7063; }
.billing-invoice summary { cursor:pointer; padding:6px 0; }
.billing-snapshot { display:grid; gap:5px; margin:7px 0; padding:12px; background:#f6f8f4; border-radius:9px; overflow-wrap:anywhere; }
.billing-download-error { grid-column:1 / -1; margin:0; }
.billing-pagination { display:flex; justify-content:space-between; gap:12px; align-items:center; padding-top:22px; border-top:1px solid #e3eae4; }
.billing-pagination > span { color:#617166; font-size:12px; }
.billing-empty { text-align:center; padding:42px 22px; }
.billing-empty p { max-width:520px; margin:12px auto 24px; color:#586e60; line-height:1.8; }
.billing-document-mark { width:62px; height:76px; margin:6px auto 24px; border:2px solid #bfd3c4; border-radius:10px 20px 10px 10px; display:grid; place-items:center; color:#498064; background:#f4f8f1; font-size:13px; letter-spacing:2px; font-weight:700; }
.billing-requests article { padding:20px 0; border-top:1px solid #e1e9e1; }
.billing-requests article p { color:#4b6655; font-size:14px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
.billing-admin-reply { background:#f1f6ef; border-radius:9px; padding:12px 16px; }
.billing-correction-form { display:grid; gap:20px; margin-top:20px; }
.billing-correction-form .billing-type { margin-bottom:0; }
.billing-admin-toolbar, .billing-toolbar { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.billing-admin-toolbar input, .billing-toolbar input { min-height:43px; }
.billing-admin-upload { display:grid; gap:18px; }
.billing-admin-table-wrap { overflow:auto; }
.billing-admin-table-wrap table { min-width:620px; }
.billing-admin-table-wrap th, .billing-admin-table-wrap td { white-space:normal; }
.billing-correction-profiles { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:18px 0; }
.billing-correction-profiles > div { border:1px solid #dce6df; border-radius:12px; padding:18px; }
.billing-settings { margin-top:24px; }
.billing-settings label { display:flex; gap:10px; align-items:flex-start; line-height:1.7; font-size:14px; }
.billing-settings input[type=checkbox] { margin-top:6px; accent-color:#23695b; }
.billing-main button:disabled { cursor:not-allowed; opacity:.6; }
@media (max-width:1000px) { .billing-profile-layout { grid-template-columns:minmax(0,1fr); } .billing-aside { max-width:none; } }
@media (max-width:640px) {
  .billing-heading { flex-direction:column; gap:12px; }
  .billing-heading > .btn { margin:0; }
  .billing-form-grid, .billing-correction-profiles { grid-template-columns:minmax(0,1fr); }
  .billing-main .card { padding:20px 16px; }
  .billing-card-heading { flex-wrap:wrap; gap:12px; }
  .billing-count { margin-left:0; }
  .billing-invoice { grid-template-columns:minmax(0,1fr); }
  .billing-invoice-side { align-items:flex-start; width:100%; }
  .billing-invoice-side .btn { width:100%; }
  .billing-tabs { gap:16px; font-size:13px; }
  .billing-pagination { gap:8px; }
  .billing-pagination > span { text-align:center; }
  .billing-form-actions .btn { width:100%; }
}

.billing-source { display:block; margin-top:5px; }
.billing-profile-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.billing-profile-data > div { min-width:0; }
.billing-profile-data dt { font-size:12px; font-weight:600; color:#4e6858; }
.billing-profile-data dd { margin:5px 0 0; font-size:13px; color:#2c493a; overflow-wrap:anywhere; }
.billing-profile-heading { display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; }
.billing-profile-summary { border:1px solid #dce6dc; border-radius:12px; padding:18px; margin:18px 0; }
.billing-modal textarea { min-height:90px; }
.billing-modal .billing-admin-upload label { display:grid; gap:8px; font-size:13px; color:#3c5647; }
.billing-modal .billing-admin-upload input, .billing-modal .billing-admin-upload select, .billing-modal .billing-admin-upload textarea { min-height:44px; border:1px solid #cbd9d2; border-radius:9px; padding:11px; background:#fff; font:inherit; }
.billing-toast { position:fixed; bottom:22px; right:22px; padding:15px 20px; color:#fff; background:#234e3b; box-shadow:0 8px 32px #173c3026; border-radius:12px; z-index:1000; }
.billing-toast.error { background:#873f35; }
@media(max-width:640px) { .billing-profile-data { grid-template-columns:minmax(0,1fr); } }

.admin-notification-button { position:relative; }
.admin-notification-button [data-notification-count] { position:absolute; top:-7px; right:-7px; border-radius:50px; padding:3px 6px; background:#9f442b; color:#fff; font-size:10px; min-width:18px; border:2px solid #fff; }
.admin-notification-button [hidden] { display:none; }
.admin-notification-list { display:grid; gap:14px; }
.admin-notification-list article { padding:18px; border:1px solid #dce6df; border-radius:12px; }
.admin-notification-list article.unread { background:#f3f7ef; border-color:#bdcdbd; }
.admin-notification-list article p { font-size:14px; line-height:1.8; color:#4a6453; }
.admin-notification-list article a { margin-left:14px; }

.billing-confirmation { display:flex; align-items:flex-start; gap:10px; line-height:1.7; color:#405c4a; font-size:13px; margin:12px 0; }
.billing-confirmation input { flex:0 0 17px; margin-top:5px; accent-color:#23695b; }
