.portal-request-error {
    background: var(--portal-surface, #fff);
    border: 1px solid var(--portal-border, #d1d5db);
    border-radius: 8px;
    color: inherit;
    margin: auto;
    max-width: min(460px, calc(100vw - 32px));
    padding: 24px;
    width: 460px;
}
.portal-request-error::backdrop { background: rgb(0 0 0 / 0.4); }
.portal-request-error h2 { font-size: 20px; font-weight: 700; margin: 0 0 12px; }
.portal-request-error p { font-size: 15px; line-height: 1.5; margin: 0; }
.portal-request-error footer { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; margin-top: 24px; }
.portal-request-error button { border: 1px solid var(--portal-border, #d1d5db); border-radius: 6px; font: inherit; padding: 8px 12px; }
.portal-request-error [data-reload] { background: var(--portal-button-bg, #2563eb); color: var(--portal-button-text, #fff); }
.portal-request-error button:focus-visible { outline: 2px solid var(--portal-primary, #2563eb); outline-offset: 3px; }
.portal-connection-status { position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:10000;display:flex;align-items:center;gap:16px;width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid #d97706;border-radius:6px;background:#fffbeb;color:#78350f;font-size:14px;box-shadow:0 2px 8px #0002; }
.portal-connection-status[hidden] { display:none; }
.portal-connection-status button { border:1px solid currentColor;border-radius:4px;padding:6px 10px;flex-shrink:0; }
.portal-connection-status button:disabled { opacity:.5; }
@media(max-width:600px) { .portal-connection-status { width:calc(100vw - 32px);align-items:flex-start; } }
@media print { .portal-connection-status { display:none!important; } }
