/* Portal status system. Legacy selectors are intentional shared component aliases. */
:root {
 --ui-warn:#854d0e; --ui-warn-bg:#fff7db; --ui-warn-border:#d6a632;
 --ui-error:#a1212b; --ui-error-bg:#fff0f1; --ui-error-border:#da9097;
 --ui-success:#21633d; --ui-success-bg:#edf8ef; --ui-success-border:#9ac7a8;
 --ui-info:#245c8b; --ui-info-bg:#edf5fc; --ui-info-border:#a3c5e1;
 --ui-neutral:#4b5965; --ui-neutral-bg:#f1f4f6; --ui-neutral-border:#c7d0d8;
 --ui-icon-attention:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 22 21H2L12 3Z'/%3E%3Cpath d='M12 9v5m0 3h.01'/%3E%3C/svg%3E");
 --ui-icon-success:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E");
 --ui-icon-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6m0-10h.01'/%3E%3C/svg%3E");
}
/* State mapping: text/background/border/icon are always changed together. */
.ui-status,.ui-feedback,.banner,.state-pill { --ui-fg:var(--ui-neutral); --ui-bg:var(--ui-neutral-bg); --ui-border:var(--ui-neutral-border); --ui-symbol:var(--ui-icon-info); }
.ui-status--warning,.ui-feedback--warning,.banner.warn,.state-pill.bad { --ui-fg:var(--ui-warn); --ui-bg:var(--ui-warn-bg); --ui-border:var(--ui-warn-border); --ui-symbol:var(--ui-icon-attention); }
.ui-status--error,.ui-feedback--error,.banner.err { --ui-fg:var(--ui-error); --ui-bg:var(--ui-error-bg); --ui-border:var(--ui-error-border); --ui-symbol:var(--ui-icon-attention); }
.ui-status--success,.ui-feedback--success,.banner.ok,.state-pill.good { --ui-fg:var(--ui-success); --ui-bg:var(--ui-success-bg); --ui-border:var(--ui-success-border); --ui-symbol:var(--ui-icon-success); }
.ui-status--info,.ui-feedback--info { --ui-fg:var(--ui-info); --ui-bg:var(--ui-info-bg); --ui-border:var(--ui-info-border); }
.ui-status,.state-pill,.ui-field-attention { display:inline-flex; align-items:center; gap:6px; max-width:100%; border:1px solid var(--ui-border); border-radius:7px; padding:5px 9px; background:var(--ui-bg); color:var(--ui-fg); font:600 12px/1.4 system-ui,sans-serif; vertical-align:middle; white-space:normal; overflow-wrap:anywhere; }
.ui-status::before,.state-pill::before,.ui-field-attention::before,.ui-attention-marker::before,.attention-dot::before,.health-dot::before,.banner::before,.ui-feedback::before,.hero-card h1::before { content:''; display:inline-block; width:18px; height:18px; flex:0 0 18px; background:currentColor; mask:var(--ui-symbol,var(--ui-icon-attention)) center/contain no-repeat; -webkit-mask:var(--ui-symbol,var(--ui-icon-attention)) center/contain no-repeat; }
.ui-field-attention { --ui-fg:var(--ui-warn); --ui-bg:var(--ui-warn-bg); --ui-border:var(--ui-warn-border); --ui-symbol:var(--ui-icon-attention); margin-left:6px; padding:4px 8px; }
.ui-field-attention[hidden] { display:none; }
input[aria-invalid=true],select[aria-invalid=true] { border:2px solid var(--ui-warn-border)!important; }
.payer-section label { gap:6px; flex-wrap:wrap; }
.ui-attention-marker,.attention-dot,.health-dot { display:inline-flex; width:24px; height:24px; flex:0 0 24px; justify-content:center; align-items:center; border:1px solid var(--ui-warn-border); border-radius:6px; color:var(--ui-warn); background:var(--ui-warn-bg); vertical-align:middle; }
.attention-dot { margin-left:8px; }
.health-ok { --ui-symbol:var(--ui-icon-success); color:var(--ui-success); background:var(--ui-success-bg); border-color:var(--ui-success-border); }
.banner,.ui-feedback { position:relative; padding:14px 16px 14px 46px; margin:12px 0 18px; border:1px solid var(--ui-border); border-left-width:4px; border-radius:9px; background:var(--ui-bg); color:var(--ui-fg); font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.banner::before,.ui-feedback::before { position:absolute; top:16px; left:14px; width:20px; height:20px; }
.banner ul { margin:8px 0 0; padding-left:20px; }
.banner a,.ui-feedback a { color:inherit; }
.ui-feedback:empty { display:none; }
.nav-badge { background:var(--ui-warn-bg); border:1px solid var(--ui-warn-border); color:var(--ui-warn); font-weight:700; }
.subnav a.needs-attention { color:var(--ui-warn); }
.subnav a.needs-attention:hover { background:var(--ui-warn-bg); }
.hero-card h1::before { --ui-symbol:var(--ui-icon-success); color:var(--ui-success); width:22px; height:22px; border-radius:0; margin-right:10px; vertical-align:-3px; }
.hero-card.has-problems h1::before { --ui-symbol:var(--ui-icon-attention); background:currentColor; color:var(--ui-warn); }
.ui-feedback { display:block; }
.notice > .ui-attention-marker { margin-top:4px; }
