html, body { height: 100%; margin: 0; font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }

.castle-boot-loading {
    height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: #1a2332; color: #e8edf4; gap: 16px;
}
.castle-boot-spinner {
    width: 40px; height: 40px; border-radius: 50%;
    border: 3px solid rgba(232, 237, 244, 0.2); border-top-color: #4a90d9;
    animation: castle-spin 0.8s linear infinite;
}
.castle-boot-label { font-size: 1.1rem; letter-spacing: 0.05em; opacity: 0.85; }
@keyframes castle-spin { to { transform: rotate(360deg); } }

#blazor-error-ui {
    background: #fff4e5; bottom: 0; box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.15);
    display: none; left: 0; padding: 0.8rem 1.25rem 0.6rem 1.25rem; position: fixed; width: 100%; z-index: 1000;
}
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 0.75rem; top: 0.5rem; }

.castle-page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.castle-empty-state { text-align: center; padding: 3rem 1rem; opacity: 0.7; }
