/* Help dialog resizing: make content fully stretch when resized */
.help-dialog .rz-dialog-wrapper { display: flex; flex-direction: column; }
.help-dialog { /* Let Radzen size the dialog; don't force height here */ }
.help-dialog .rz-dialog { display: flex; flex-direction: column; }
.help-dialog .rz-dialog-titlebar {
    flex: 0 0 auto;
}
.help-dialog .rz-dialog-content,
.help-dialog.rz-dialog-content {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0 !important;
}

/* Ensure full width growth on resize */
.help-dialog .rz-dialog,
.help-dialog .rz-dialog-wrapper,
.help-dialog .rz-dialog-content,
.help-dialog .rz-dialog-body {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
}

.help-dialog .rz-dialog-body { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }

/* Ensure the immediate child of dialog body (our component root) stretches */
.help-dialog .rz-dialog-body > * { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }

/* Grid root inside dialog body should fill */
.help-dialog .rz-dialog-body > .help-root { display: grid !important; grid-template-rows: 1fr auto; gap: 16px; }

/* Disable north (top) resize handles to prevent abrupt shrink when dragging from top */
/* Allow all resize handles (no disable) */

/* Ensure the element Radzen actually resizes also respects the minimums */
.help-dialog .rz-dialog-wrapper,
.help-dialog .rz-resizable {
    min-width: var(--help-min-width, 900px) !important;
    min-height: var(--help-min-height, 80vh) !important;
}

/* Blazor default error UI: hide until framework shows it */
#blazor-error-ui {
    display: none;
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    background: #fde8e8;
    color: #911111;
    z-index: 1000;
    padding: 10px 16px;
    box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.1);
    font-size: 14px;
}

#blazor-error-ui .dismiss {
    position: absolute;
    right: 12px;
    top: 8px;
    cursor: pointer;
}

/* Startup loading spinner (Blazor template) */
.loading-progress {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%);
}

.loading-progress circle {
    fill: none;
    stroke: #e5e7eb; /* light gray background ring */
    stroke-width: 8px;
}

.loading-progress circle:last-child {
    stroke: #2563eb; /* blue ring */
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
    animation: blazor-loading 1.5s ease-in-out infinite;
}

@keyframes blazor-loading {
    0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; }
    50% { stroke-dasharray: 90, 150; stroke-dashoffset: -40; }
    100% { stroke-dasharray: 90, 150; stroke-dashoffset: -120; }
}

.loading-progress-text {
    position: absolute;
    top: calc(50% + 40px);
    left: 50%;
    transform: translateX(-50%);
    color: #6b7280; /* gray-500 */
    font-size: 14px;
}
