/* Portal status system. Legacy selectors are intentional shared component aliases. */
:root {
 --ui-warn-accent:#ad7c23; --ui-warn:#80520e; --ui-warn-bg:#fff8e8; --ui-warn-border:#ecdbb5;
 --ui-error:#a12e38; --ui-error-bg:#fff3f3; --ui-error-border:#edced1;
 --ui-success:#286044; --ui-success-bg:#eff7f1; --ui-success-border:#d1e5d7;
 --ui-info:#245c8b; --ui-info-bg:#edf5fc; --ui-info-border:#a3c5e1;
 --ui-neutral:#56615b; --ui-neutral-bg:#f3f5f3; --ui-neutral-border:#dfe5e0;
 --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-grid; grid-template-columns:14px minmax(0,1fr); align-items:start;
 gap:6px; width:fit-content; max-width:100%; min-height:26px;
 border:1px solid var(--ui-border); border-radius:6px; padding:3px 8px;
 background:var(--ui-bg); color:var(--ui-fg); font:500 12px/18px system-ui,sans-serif;
 text-align:left; vertical-align:baseline; 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-status::before,.state-pill::before,.ui-field-attention::before { width:14px; height:14px; margin-top:2px; }
.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:0; padding:2px 7px; min-height:24px; }
.ui-field-attention[hidden] { display:none; }
input[aria-invalid=true],select[aria-invalid=true] { border:2px solid var(--ui-warn-accent)!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; }

/* Status groups own spacing; badges never supply margins to adjacent text. */
.status-group { display:flex; flex-wrap:wrap; align-items:flex-start; gap:6px; min-width:0; }
.case-card__content { flex:1; min-width:0; }
.case-meta { margin-top:6px; display:grid; gap:8px; }
.case-meta__context { color:#69746f; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.service-checks { display:grid; gap:10px; margin:16px 0; }
.service-checks__label { margin:0; font-size:13px; color:#69746f; }
.service-check { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; min-width:0; }
.service-check__detail { flex:1 1 200px; min-width:0; margin:0; color:#69746f; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.base-status { display:grid; justify-items:start; gap:6px; margin:14px 0; }
.base-status > p { margin:0; font-size:13px; line-height:1.5; }
@media (max-width:560px) {
 .service-check { display:grid; justify-items:start; gap:5px; }
 .case-card:has(.case-meta) { flex-wrap:wrap; align-items:flex-start; gap:12px; }
 .case-card:has(.case-meta) .case-card__content { flex-basis:100%; }
}

.status-results { display:grid; justify-items:start; gap:6px; padding:0; margin:12px 0 0; list-style:none; }
.status-results:empty { display:none; }
