.portal-pagination{display:flex;justify-content:center;align-items:center;gap:5px;padding:18px 12px 4px}
.portal-page-link{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:32px;padding:0 9px;border:1px solid #d8e1e8;border-radius:6px;background:#fff;color:#47627b;font-size:.76rem;font-weight:800;text-decoration:none}
.portal-page-link:hover{border-color:#f58a2c;color:#f07818}
.portal-page-link.is-active{border-color:#f58a2c;background:#ff8a2b;color:#fff}
.portal-page-link.is-disabled{opacity:.45;pointer-events:none}
.portal-page-dots{padding:0 4px;color:#8999a9;font-weight:800}
.mini-btn-summary{border:0;cursor:pointer;background:#edf3f8;color:#1f3b59}
.portal-modal[hidden]{display:none}
.portal-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px}
.portal-modal-backdrop{position:absolute;inset:0;background:rgba(12,29,49,.62);backdrop-filter:blur(3px)}
.portal-modal-card{position:relative;width:min(720px,100%);border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(11,35,60,.28);padding:28px;color:#19324d}
.portal-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#557087;font-size:28px;line-height:1;cursor:pointer}
.portal-modal-kicker{color:#f07818;font-size:.7rem;font-weight:800;letter-spacing:.12em}
.portal-modal-head h2{margin:6px 0 22px;font-size:1.45rem}
.portal-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portal-summary-grid>div{border:1px solid #e1e9ef;border-radius:10px;padding:12px 14px;min-width:0}
.portal-summary-grid span{display:block;color:#718399;font-size:.72rem;font-weight:700;margin-bottom:5px}
.portal-summary-grid strong{display:block;overflow-wrap:anywhere;font-size:.95rem}
.portal-summary-total{grid-column:1/-1;background:#f7fafc;border-color:#cbdbe7!important}
.portal-summary-total strong{font-size:1.35rem;color:#f07818}
.portal-summary-status{margin-top:18px;border:1px solid #b9d9e9;border-radius:10px;padding:12px 14px;background:#f5fbfe}
.portal-summary-status p{margin:5px 0;font-size:.86rem}
.portal-summary-status p:last-child{color:#47627b}
.modal-open{overflow:hidden}
@media (max-width:600px){.portal-summary-grid{grid-template-columns:1fr}.portal-summary-total{grid-column:auto}.portal-modal-card{padding:24px 18px}}
.portal-loading[hidden]{display:none}
.portal-loading{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#fff;color:#111;text-align:center}
.portal-loading-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px}
.portal-loading-logo{width:min(205px,62vw);height:auto;object-fit:contain}
.portal-loading-spinner{width:42px;height:42px;border:7px dotted #a5a5a5;border-radius:50%;animation:portal-loading-spin 1.1s linear infinite}
.portal-loading-message{margin:0;font-size:1.05rem;font-weight:700}
@keyframes portal-loading-spin{to{transform:rotate(360deg)}}
