.pill.gray { background: #eef1f5; color: #5d6674; }
input::placeholder,
textarea::placeholder { color: #cfd8e6; opacity: 1; }
.text-link.inline { display: inline-block; margin: 4px 6px; }
.reg-table th,
.reg-table td { text-align: center; }
.reg-table td:first-child,
.reg-table th:first-child { text-align: left; }
.reg-table input[type="checkbox"] { width: 22px; height: 22px; margin: auto; accent-color: #246bfe; }
.reg-table tr.closed { color: #8c96a5; background: #f1f3f6; }
.reg-save { width: 100%; margin-top: 18px; }
.pay-methods { border: 1px solid #ccd5e1; border-radius: 12px; padding: 14px; }
.pay-methods legend { padding: 0 7px; font-weight: 700; font-size: 14px; }
.pay-methods .radio { display: inline-flex; align-items: center; gap: 6px; margin-right: 18px; }
.pay-methods input { width: auto; }
.payment-summary { margin: 20px 0; }
.payment-summary div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #e5eaf1; }
.payment-summary dt { color: #6b7588; }
.payment-summary dd { margin: 0; text-align: right; font-weight: 800; word-break: break-all; }
.payment-ready #inicis-pro-form { margin: 18px 0 0; }
.payment-ready #inicis-pay-button { width: 100%; }
.payment-reselect { display: block; width: 100%; margin-top: 10px; padding: 13px 18px; border: 1px solid #b9c5d5; border-radius: 11px; background: #fff; color: #4f5d70; text-align: center; text-decoration: none; font-size: 14px; font-weight: 800; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.payment-reselect:hover { border-color: #7ba6f5; background: #f4f8ff; color: #174fbd; }
.payment-reselect:focus-visible { outline: 3px solid rgba(36, 107, 254, .25); outline-offset: 2px; }
.deposit-wait-info { display: grid; gap: 4px; min-width: 190px; white-space: normal; }
.deposit-wait-info strong { color: #172033; }
.deposit-wait-info span { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 6px; color: #596477; font-size: 12px; line-height: 1.35; word-break: break-all; }
.deposit-wait-info b { color: #7a8494; font-weight: 700; }
.result-card { text-align: center; }
.result-icon { width: 68px; height: 68px; border-radius: 50%; margin: 0 auto 16px; display: grid; place-items: center; font-size: 34px; font-weight: 900; background: #eef1f5; }
.result-card.success .result-icon { color: #08704f; background: #eaf9f3; }
.result-card.waiting .result-icon { color: #2455a2; background: #eef5ff; }
.result-card.failed .result-icon { color: #a82738; background: #fff0f2; }
.message-modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 20px; }
.message-modal.is-open { display: flex; }
.message-modal__backdrop { position: absolute; inset: 0; width: 100%; border: 0; border-radius: 0; background: rgba(16, 35, 63, .48); cursor: default; }
.message-modal__panel { position: relative; width: min(100%, 390px); padding: 28px 24px 22px; border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(16, 35, 63, .28); text-align: center; animation: message-modal-in .18s ease-out; }
.message-modal__icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 50%; background: #fff0f2; color: #e64152; font-size: 27px; font-weight: 900; }
.message-modal--success .message-modal__icon { background: #eaf9f3; color: #08704f; }
.message-modal__panel h3 { margin: 0; font-size: 20px; }
.message-modal__panel p { margin: 12px 0 22px; color: #596477; line-height: 1.6; word-break: keep-all; }
.message-modal__confirm { width: 100%; }
.message-modal__actions { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10px; }
.message-modal__actions button { width: 100%; min-height: 48px; border-radius: 11px; font: inherit; font-weight: 800; cursor: pointer; }
.message-modal__cancel { border: 1px solid #ccd5e1; background: #fff; color: #596477; }
body.modal-open { overflow: hidden; }
@keyframes message-modal-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .message-modal__panel { animation: none; } }
.shortcut-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #1455d9; border-radius: 12px; padding: 12px 16px; background: linear-gradient(135deg, #246bfe, #174fbd); color: #fff; box-shadow: 0 8px 18px rgba(36, 107, 254, .24); font: inherit; font-size: 15px; font-weight: 900; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.shortcut-button::before { content: "+"; display: grid; place-items: center; width: 21px; height: 21px; border: 2px solid currentColor; border-radius: 6px; font-size: 18px; line-height: 1; }
.page { position: relative; }
.shortcut-button:hover { color: #fff; box-shadow: 0 10px 24px rgba(36, 107, 254, .32); transform: translateY(-1px); }
.shortcut-button:focus-visible { outline: 3px solid rgba(36, 107, 254, .3); outline-offset: 3px; }
.shortcut-button[hidden] { display: none !important; }
.shortcut-button--menu { width: 100%; margin-top: 14px; }
.shortcut-button--home { position: absolute; top: 22px; right: 18px; min-width: 150px; }
.shortcut-button--qr { width: min(100%, 390px); margin-top: 8px; }
.qr-scan-help { display: flex; align-items: center; justify-content: center; gap: 7px; width: min(100%, 390px); margin: 12px auto 0; padding: 11px 14px; border-radius: 11px; background: #fff8e6; color: #8a5b00; font-size: 13px; font-weight: 800; }
.qr-scan-help::before { content: "☀"; font-size: 17px; line-height: 1; }
.remember-check { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border: 2px solid #c9d7ee; border-radius: 13px; background: #f7faff; color: #172033; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.remember-check:hover { border-color: #7ba6f5; background: #f1f6ff; }
.remember-check:has(input:checked) { border-color: #246bfe; background: #eaf1ff; box-shadow: 0 0 0 3px rgba(36, 107, 254, .1); }
.remember-check input { flex: 0 0 auto; width: 25px; height: 25px; margin: 0; padding: 0; accent-color: #246bfe; cursor: pointer; }
.remember-check span { display: grid; gap: 2px; }
.remember-check strong { color: #172033; font-size: 15px; font-weight: 900; }
.login-card .remember-check small { margin: 0; color: #64728a; font-size: 12px; font-weight: 500; }
.shortcut-guide { margin: 0; text-align: left; }
.shortcut-guide strong { color: #172033; }
@media (max-width: 560px) {
  .shortcut-button--home { min-width: 132px; padding: 10px 12px; }
  .page-heading h1 { padding-right: 145px; }
}
