/* Stable shell, local loading and draft feedback; existing product styling is retained. */
.portal-loading{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px 16px;align-items:center;max-width:620px;margin:24px auto;padding:24px;border:1px solid #e0e7f1;border-radius:14px;background:#fff;color:#294264;box-shadow:0 5px 18px #29426406}
.portal-loading strong{display:block;font-size:16px;font-weight:600}
.portal-loading strong+span{display:block;margin-top:4px;color:#8090a5;font-size:13px}
.portal-loading-orbit{height:36px;width:36px;border:3px solid #e4edfb;border-top-color:#4876e7;border-right-color:#80acf8;border-radius:50%;animation:portal-orbit 1s linear infinite}
.portal-loading-lines{grid-column:1/-1;display:grid;gap:10px;margin-top:8px}
.portal-loading-lines i{display:block;height:12px;width:100%;border-radius:6px;background:linear-gradient(90deg,#edf2f8 25%,#f8fbff 45%,#edf2f8 70%);background-size:220% 100%;animation:portal-sheen 1.8s ease-in-out infinite}
.portal-loading-lines i:nth-child(2){width:82%}.portal-loading-lines i:nth-child(3){width:58%}
.portal-draft-status{font-size:12px;line-height:1.6;color:#647892}.portal-action-error{padding:10px 12px;color:#9e4a3c;background:#fff2ef;border-radius:8px;font-size:13px}
.portal-main .empty-state:has(>p:only-child){min-height:90px}
@keyframes portal-orbit{to{transform:rotate(360deg)}}
@keyframes portal-sheen{from{background-position:100% 0}to{background-position:-100% 0}}
@media(prefers-reduced-motion:reduce){.portal-loading-orbit,.portal-loading-lines i{animation:none}}

/* Overview summaries keep category controls in complete, aligned rows. */
body[data-site-route="portal"] .portal-main .dashboard-feature-grid .dashboard-feature-choices.portal-selection-buttons {grid-template-columns:repeat(2,minmax(0,1fr));}
.dashboard-service-grid.portal-metric-grid {grid-template-columns:repeat(5,minmax(0,1fr));}
.dashboard-service-grid .portal-metric-card {align-items:start;}
@media(max-width:1200px){.dashboard-service-grid.portal-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:700px){.dashboard-service-grid.portal-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
