﻿@font-face {
    font-family: 'AptosFont';
    src: url('../fonts/Aptos.ttf') format('truetype');
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 3.5rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

/*radzen custom*/
.custom-dialog-wrapper-class {
    background-color: transparent;
    width: 100px !important;
    margin-left: 10%;
    /*  min-width:10px;
    min-height:10px;
    max-height:10px;*/
    box-shadow: none;
}

/* Toast Notification Styling - Modern compact format with solid colors */
/* PURPOSE: Provides clear, visible toast notifications with proper color coding */
/* IMPLICATION: Ensures toasts are immediately recognizable by color (green=success, red=error, etc.) */
.syncf-notification-sec {
    font-family: 'AptosFont', sans-serif;
    min-height: auto !important;
    min-width: 320px !important;
    max-width: 500px !important;
    width: auto !important;
    padding: 0.875rem 1.25rem !important;
    border-radius: 8px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2) !important;
    position: relative !important;
}

/* COMMENT: Flexbox layout for icon + message in single line */
/* IMPLICATION: Icon and text align properly regardless of message length */
.syncf-notification-sec .e-toast-message {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.75rem !important;
    padding: 0 !important;
    flex-wrap: nowrap !important;
}

/* COMMENT: Title styling (Success, Error, Warning, Info) */
.syncf-notification-sec .e-toast-title {
    font-weight: 700 !important;
    font-size: 0.9375rem !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
    border-bottom: none !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

/* COMMENT: Add colon after title for "Success: message" format */
.syncf-notification-sec .e-toast-title::after {
    content: ':';
}

/* COMMENT: Message content styling */
.syncf-notification-sec .e-toast-content {
    font-size: 0.9375rem !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* COMMENT: Hide default Syncfusion icon - we use CSS pseudo-elements instead */
.syncf-notification-sec .e-toast-icon {
    display: none !important;
}

/* COMMENT: Close button styling for visibility on colored backgrounds */
.syncf-notification-sec .e-toast-close-icon {
    position: relative !important;
    top: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    padding: 0.25rem !important;
    height: auto !important;
    line-height: 1 !important;
    align-self: center !important;
    opacity: 0.8 !important;
    transition: opacity 0.2s ease !important;
}

.syncf-notification-sec .e-toast-close-icon:hover {
    opacity: 1 !important;
}

/* ===== SUCCESS TOAST - Green background with white text and checkmark icon ===== */
/* PURPOSE: Clear visual indicator for successful operations (save, upload, etc.) */
/* IMPLICATION: Must be highly visible and distinguishable from other toast types */
.syncf-notification-sec.e-success {
    background-color: #22c55e !important;
    border: none !important;
    color: #ffffff !important;
}

.syncf-notification-sec.e-success .e-toast-title,
.syncf-notification-sec.e-success .e-toast-content,
.syncf-notification-sec.e-success .e-toast-close-icon {
    color: #ffffff !important;
}

/* COMMENT: Checkmark icon for success toast using pseudo-element */
/* WHY: Uses CSS content to add icon without modifying component template */
/* IMPLICATION: Explicit color ensures icon is visible even if Syncfusion overrides inherited color */
.syncf-notification-sec.e-success .e-toast-title::before {
    content: '\2713';
    color: #ffffff !important;
    font-weight: bold;
    font-size: 1.1rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}

/* ===== ERROR TOAST - Red background with white text and X icon ===== */
/* PURPOSE: Clear visual indicator for errors requiring user attention */
/* IMPLICATION: Red color signals urgency and importance */
.syncf-notification-sec.e-error {
    background-color: #ef4444 !important;
    border: none !important;
    color: #ffffff !important;
}

.syncf-notification-sec.e-error .e-toast-title,
.syncf-notification-sec.e-error .e-toast-content,
.syncf-notification-sec.e-error .e-toast-close-icon {
    color: #ffffff !important;
}

/* COMMENT: X icon for error toast */
/* IMPLICATION: Explicit color ensures icon is visible on red background */
.syncf-notification-sec.e-error .e-toast-title::before {
    content: '\2717';
    color: #ffffff !important;
    font-weight: bold;
    font-size: 1rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}

/* ===== WARNING TOAST - Orange/amber background with white text ===== */
/* PURPOSE: Visual indicator for warnings that don't block operations */
/* IMPLICATION: Amber color indicates caution without urgency of red */
.syncf-notification-sec.e-warning {
    background-color: #f59e0b !important;
    border: none !important;
    color: #ffffff !important;
}

.syncf-notification-sec.e-warning .e-toast-title,
.syncf-notification-sec.e-warning .e-toast-content,
.syncf-notification-sec.e-warning .e-toast-close-icon {
    color: #ffffff !important;
}

/* COMMENT: Warning triangle icon */
/* IMPLICATION: Explicit color ensures icon is visible on amber background */
.syncf-notification-sec.e-warning .e-toast-title::before {
    content: '\26A0';
    color: #ffffff !important;
    font-size: 1rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ===== INFO TOAST - Blue background with white text ===== */
/* PURPOSE: Visual indicator for informational messages */
/* IMPLICATION: Blue is neutral, non-urgent color for general information */
.syncf-notification-sec.e-info {
    background-color: #3b82f6 !important;
    border: none !important;
    color: #ffffff !important;
}

.syncf-notification-sec.e-info .e-toast-title,
.syncf-notification-sec.e-info .e-toast-content,
.syncf-notification-sec.e-info .e-toast-close-icon {
    color: #ffffff !important;
}

/* COMMENT: Info icon (circled i) */
/* IMPLICATION: Explicit color ensures icon is visible on blue background */
.syncf-notification-sec.e-info .e-toast-title::before {
    content: '\2139';
    color: #ffffff !important;
    font-weight: bold;
    font-size: 1rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    min-width: 1.5rem;
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}

/* ============================================================================
   AI CONTENT STYLING SYSTEM
   PURPOSE: Reusable CSS for AI-generated content across the application
   REFERENCE: Based on Ask Marge styling from InsightsLanding page
   IMPLICATION: Provides consistent green theme, sparkles icon, and disclaimer styling
   ============================================================================ */

/* CSS Variables for AI Theme Colors */
:root {
    /* Primary AI Green (Emerald) - from Ask Marge */
    --ai-green-500: #10b981;
    --ai-green-600: #059669;
    --ai-green-700: #047857;
    --ai-green-900: #065f46;

    /* AI Green with transparency for shadows and borders */
    --ai-green-shadow: rgba(16, 185, 129, 0.3);
    --ai-green-shadow-hover: rgba(16, 185, 129, 0.4);
    --ai-green-focus: rgba(16, 185, 129, 0.1);

    /* AI Content backgrounds */
    --ai-content-bg: #f9fafb;
    --ai-disclaimer-bg: #f3f4f6;
    --ai-disclaimer-border: #e5e7eb;
    --ai-disclaimer-text: #6b7280;
}

/* ===== AI SECTION HEADER - Green gradient header for AI content sections ===== */
/* PURPOSE: Consistent header styling for any AI-powered section */
/* USAGE: Apply to header/title bar of AI content areas */
.ai-section-header {
    display: flex;
    align-items: center;
    justify-content: left;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, var(--ai-green-500) 0%, var(--ai-green-600) 100%);
    color: white;
    border-radius: 8px 8px 0 0;
}

.ai-section-header h3,
.ai-section-header h4,
.ai-section-header .ai-section-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* ===== AI BUTTON - Standard green AI action button ===== */
/* PURPOSE: Button style for AI-related actions (Ask Marge, Regenerate, etc.) */
/* USAGE: Apply to buttons that trigger AI functionality */
.ai-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, var(--ai-green-500) 0%, var(--ai-green-600) 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px var(--ai-green-shadow);
    text-decoration: none;
}

.ai-button:hover:not(:disabled) {
    background: linear-gradient(135deg, var(--ai-green-600) 0%, var(--ai-green-700) 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px var(--ai-green-shadow-hover);
    color: white;
    text-decoration: none;
}

.ai-button:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

.ai-button.active,
.ai-button:active:not(:disabled) {
    background: linear-gradient(135deg, var(--ai-green-700) 0%, var(--ai-green-900) 100%);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
    transform: none;
}

/* Small variant for inline/compact usage */
.ai-button.ai-button-sm {
    padding: 0.375rem 0.75rem;
    font-size: 0.8rem;
}

/* Outline variant for secondary AI actions */
.ai-button.ai-button-outline {
    background: transparent;
    border: 2px solid var(--ai-green-500);
    color: var(--ai-green-600);
    box-shadow: none;
}

.ai-button.ai-button-outline:hover:not(:disabled) {
    background: var(--ai-green-500);
    color: white;
}

/* ===== SPARKLES ICON - Standard AI indicator icon ===== */
/* PURPOSE: Visual indicator for AI-powered features */
/* USAGE: <AiSparklesIcon /> component (default 28px per AI Content Standard) */
/* IMPLICATION: Default size is 28px to meet AI Content Standard requirements */
.ai-sparkles-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

/* Larger variant for headers (not commonly used, 28px is standard) */
.ai-sparkles-icon.ai-sparkles-lg {
    width: 32px;
    height: 32px;
}

/* Animation for loading/generating state */
.ai-sparkles-icon.ai-sparkles-pulse {
    animation: ai-sparkle-pulse 1.5s ease-in-out infinite;
}

@keyframes ai-sparkle-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(0.95); }
}

/* ===== AI DISCLAIMER - Standard disclaimer for AI-generated content ===== */
/* PURPOSE: Informs users that content is AI-generated and should be verified */
/* USAGE: Place at bottom of AI content sections */
.ai-disclaimer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem 2rem 1rem;
    background: var(--ai-disclaimer-bg);
    border-top: 1px solid var(--ai-disclaimer-border);
    font-size: 0.75rem;
    color: var(--ai-disclaimer-text);
    border-radius: 0 0 8px 8px;
}

.ai-disclaimer i,
.ai-disclaimer .ai-disclaimer-icon {
    color: var(--ai-disclaimer-text);
    flex-shrink: 0;
}

/* Standalone variant (not attached to a card) */
.ai-disclaimer.ai-disclaimer-standalone {
    border-radius: 6px;
    border: 1px solid var(--ai-disclaimer-border);
    margin-top: 1rem;
}

/* ===== AI CONTENT CONTAINER - Wrapper for AI-generated content ===== */
/* PURPOSE: Container styling for AI response/analysis content */
.ai-content {
    background: var(--ai-content-bg);
    border-radius: 8px;
    border: 1px solid var(--ai-disclaimer-border);
    overflow: hidden;
}

.ai-content-body {
    padding: 1rem 1.25rem;
}

/* AI response text styling */
.ai-content-body p {
    margin-bottom: 0.75rem;
    line-height: 1.6;
}

.ai-content-body p:last-child {
    margin-bottom: 0;
}

/* ===== AI BADGE - Small indicator for AI-generated items ===== */
/* PURPOSE: Small badge to mark individual items as AI-generated */
.ai-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.125rem 0.5rem;
    background: var(--ai-green-500);
    color: white;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 4px;
}

.ai-badge .ai-sparkles-icon {
    width: 10px;
    height: 10px;
}

/* ===== AI INPUT FOCUS - Green focus ring for AI-related inputs ===== */
.ai-input:focus {
    border-color: var(--ai-green-500);
    box-shadow: 0 0 0 3px var(--ai-green-focus);
    outline: none;
}

/* ===== AI LOADING STATE ===== */
/* PURPOSE: Consistent loading indicator for AI content generation */
.ai-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2rem;
    color: var(--ai-green-600);
    font-size: 0.9rem;
}

.ai-loading i {
    font-size: 1.25rem;
}

/* ===== AI SECTION ACTIONS ===== */
/* PURPOSE: Container for action buttons in AI section header */
.ai-section-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ai-section-actions button {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    padding: 0.375rem 0.625rem;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8rem;
    transition: background 0.2s ease;
}

.ai-section-actions button:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* ============================================================================
   STANDARD LOADING SPINNER - Dotted Circular Style
   PURPOSE: Consistent loading indicator throughout the application
   REFERENCE: Replaces all arc spinners with dotted circular design
   IMPLICATION: Use these classes for all loading states to ensure consistency
   ============================================================================ */

/* CSS Variables for Spinner Colors */
:root {
    --spinner-primary: #4F46E5;
    --spinner-secondary: #E0E7FF;
    --spinner-light: rgba(79, 70, 229, 0.3);
}

/* ===== STANDARD DOTTED SPINNER - Primary loading indicator ===== */
/* PURPOSE: Main loading spinner for page/component loading states */
/* USAGE: <div class="std-spinner"></div> or <div class="std-spinner std-spinner-sm"></div> */
.std-spinner {
    width: 40px;
    height: 40px;
    position: relative;
    display: inline-block;
}

.std-spinner::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 3px dotted var(--spinner-primary);
    animation: std-spin 1.2s linear infinite;
}

/* Small variant (24px) - for inline/button usage */
.std-spinner.std-spinner-sm {
    width: 24px;
    height: 24px;
}

.std-spinner.std-spinner-sm::before {
    border-width: 2px;
}

/* Extra small variant (16px) - for inline text */
.std-spinner.std-spinner-xs {
    width: 16px;
    height: 16px;
}

.std-spinner.std-spinner-xs::before {
    border-width: 2px;
}

/* Large variant (60px) - for full page loading */
.std-spinner.std-spinner-lg {
    width: 60px;
    height: 60px;
}

.std-spinner.std-spinner-lg::before {
    border-width: 4px;
}

/* Extra large variant (80px) - for modal/overlay loading */
.std-spinner.std-spinner-xl {
    width: 80px;
    height: 80px;
}

.std-spinner.std-spinner-xl::before {
    border-width: 5px;
}

/* Color variants */
.std-spinner.std-spinner-white::before {
    border-color: white;
}

.std-spinner.std-spinner-green::before {
    border-color: var(--ai-green-500);
}

.std-spinner.std-spinner-blue::before {
    border-color: #3b82f6;
}

.std-spinner.std-spinner-gray::before {
    border-color: #6b7280;
}

/* Standard spin animation */
@keyframes std-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ===== LOADING CONTAINER - Wrapper for spinner with text ===== */
/* PURPOSE: Consistent layout for loading states with message */
.std-loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    gap: 1rem;
    min-height: 200px;
}

.std-loading-container.std-loading-inline {
    flex-direction: row;
    padding: 1rem;
    min-height: auto;
    gap: 0.75rem;
}

.std-loading-text {
    font-size: 0.9rem;
    color: #6b7280;
    margin: 0;
}

.std-loading-container.std-loading-inline .std-loading-text {
    font-size: 0.85rem;
}

/* ===== BUTTON LOADING STATE ===== */
/* PURPOSE: Spinner inside buttons during async operations */
/* USAGE: Add .std-btn-loading to button and include <span class="std-spinner std-spinner-xs std-spinner-white"></span> */
.std-btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
}

.std-btn-loading .std-spinner {
    margin-right: 0.5rem;
}

/* ===== OVERLAY SPINNER ===== */
/* PURPOSE: Full overlay with spinner for blocking operations */
.std-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.85);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    z-index: 100;
    border-radius: inherit;
}

.std-loading-overlay .std-loading-text {
    color: #4b5563;
    font-weight: 500;
}

/* ===== ALTERNATIVE: BOUNCING DOTS SPINNER ===== */
/* PURPOSE: Alternative style with 3 bouncing dots */
/* USAGE: <div class="std-dots-spinner"><span></span><span></span><span></span></div> */
.std-dots-spinner {
    display: flex;
    align-items: center;
    gap: 6px;
}

.std-dots-spinner span {
    width: 10px;
    height: 10px;
    background: var(--spinner-primary);
    border-radius: 50%;
    animation: std-bounce 0.6s infinite alternate;
}

.std-dots-spinner span:nth-child(2) {
    animation-delay: 0.2s;
}

.std-dots-spinner span:nth-child(3) {
    animation-delay: 0.4s;
}

/* Small dots variant */
.std-dots-spinner.std-dots-sm span {
    width: 6px;
    height: 6px;
}

/* Color variants for dots */
.std-dots-spinner.std-dots-white span {
    background: white;
}

.std-dots-spinner.std-dots-green span {
    background: var(--ai-green-500);
}

@keyframes std-bounce {
    from { transform: translateY(0); opacity: 1; }
    to { transform: translateY(-8px); opacity: 0.6; }
}

/* ===== PULSE SPINNER ===== */
/* PURPOSE: Subtle pulsing circle for light loading indication */
.std-pulse-spinner {
    width: 40px;
    height: 40px;
    background: var(--spinner-secondary);
    border-radius: 50%;
    animation: std-pulse 1.5s ease-in-out infinite;
}

.std-pulse-spinner.std-pulse-sm {
    width: 24px;
    height: 24px;
}

@keyframes std-pulse {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.1); opacity: 1; }
}

/* ============================================================================
   MARGINAL GAINS CHART COLOR PALETTE
   PURPOSE: Standardized colors for all Syncfusion charts across the application
   REFERENCE: Based on existing usage patterns with Material Design colors
   IMPLICATION: Use these variables for consistent chart styling throughout the app
   ============================================================================ */

:root {
    /* ===== PRIMARY CHART SERIES COLORS ===== */
    /* Main colors for data series - use in order for multi-series charts */
    --chart-primary: #0C5FE3;          /* Primary blue - main data series */
    --chart-secondary: #10B981;        /* Emerald green - secondary series */
    --chart-tertiary: #8B5CF6;         /* Purple - third series */
    --chart-quaternary: #F59E0B;       /* Amber - fourth series */
    --chart-quinary: #EF4444;          /* Red - fifth series */
    --chart-senary: #06B6D4;           /* Cyan - sixth series */

    /* ===== BLUE GRADIENT PALETTE (for multi-series or sequential data) ===== */
    --chart-blue-50: #EFF6FF;
    --chart-blue-100: #DBEAFE;
    --chart-blue-200: #BFDBFE;
    --chart-blue-300: #93C5FD;
    --chart-blue-400: #60A5FA;
    --chart-blue-500: #3B82F6;
    --chart-blue-600: #2563EB;
    --chart-blue-700: #1D4ED8;
    --chart-blue-800: #1E40AF;
    --chart-blue-900: #1E3A8A;

    /* ===== RAG STATUS COLORS (Performance Indicators) ===== */
    --chart-rag-green: #22C55E;        /* Good/On Target */
    --chart-rag-green-dark: #15803D;   /* Excellent */
    --chart-rag-amber: #F59E0B;        /* Below Target/Watch */
    --chart-rag-red: #EF4444;          /* Poor/Critical */
    --chart-rag-gray: #6B7280;         /* No Data/Neutral */

    /* ===== KPI CARD BACKGROUND COLORS (Light versions) ===== */
    --chart-bg-blue: #DBEAFE;          /* Blue KPI cards */
    --chart-bg-green: #D1FAE5;         /* Green KPI cards */
    --chart-bg-amber: #FEF3C7;         /* Amber KPI cards */
    --chart-bg-red: #FEE2E2;           /* Red KPI cards */
    --chart-bg-purple: #EDE9FE;        /* Purple KPI cards */
    --chart-bg-cyan: #CFFAFE;          /* Cyan KPI cards */

    /* ===== HEATMAP GRADIENT COLORS ===== */
    --chart-heatmap-low: #E3F2FD;      /* Minimum value (light blue) */
    --chart-heatmap-high: #1976D2;     /* Maximum value (dark blue) */

    /* ===== ATTENDANCE SPECIFIC COLORS ===== */
    --chart-presence: #0C5FE3;         /* Presence/attendance (blue) */
    --chart-absence: #F97316;          /* Absence (orange) */
    --chart-auth-absence: #8B5CF6;     /* Authorised absence (purple) */
    --chart-unauth-absence: #EF4444;   /* Unauthorised absence (red) */

    /* ===== EXCLUSIONS SPECIFIC COLORS ===== */
    --chart-permanent: #DC2626;        /* Permanent exclusions (red) */
    --chart-suspension: #F97316;       /* Suspensions (orange) */

    /* ===== CHART UTILITY COLORS ===== */
    --chart-grid-line: #E5E7EB;        /* Grid lines */
    --chart-axis-text: #6B7280;        /* Axis labels */
    --chart-tooltip-bg: #1F2937;       /* Tooltip background */
    --chart-tooltip-text: #FFFFFF;     /* Tooltip text */
    --chart-target-line: #F59E0B;      /* Target/benchmark lines */
    --chart-average-line: #6B7280;     /* Average/mean lines */
}

/* ===== CHART LABEL STYLING ===== */
/* PURPOSE: Consistent data label styling across all charts */
.chart-data-label {
    font-family: 'AptosFont', sans-serif;
    font-size: 11px;
    font-weight: 600;
}

/* ===== CHART LEGEND STYLING ===== */
.chart-legend {
    font-family: 'AptosFont', sans-serif;
    font-size: 12px;
    color: var(--chart-axis-text);
}

/* ===== CHART TOOLTIP STYLING ===== */
.chart-tooltip {
    background: var(--chart-tooltip-bg) !important;
    color: var(--chart-tooltip-text) !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* ============================================================================
   STANDARD MODAL HEADER STYLING
   PURPOSE: Consistent blue header styling for all modal dialogs
   REFERENCE: UI Standard requires blue header with white text and icons
   IMPLICATION: Apply .modal-blue-header class to dialog CSS classes
   ============================================================================ */

:root {
    --modal-header-bg: #0C5FE3;
    --modal-header-text: #FFFFFF;
    --modal-header-hover: #0a4fc0;
}

/* ===== SYNCFUSION DIALOG BLUE HEADER ===== */
/* PURPOSE: Standard blue header for SfDialog components */
/* USAGE: Add CssClass="modal-blue-header" to SfDialog, use ShowCloseIcon="false", */
/*        and provide custom close button via <HeaderTemplate> */
/* REFERENCE: Identical to .dialog-header / .btn-close-x from MonitoringVisits */
.modal-blue-header .e-dlg-header-content {
    background: linear-gradient(135deg, #0C5FE3 0%, #0a4fc0 100%) !important;
    padding: 1.25rem 1.5rem !important;
    border-radius: 16px 16px 0 0 !important;
}

.modal-blue-header .e-dlg-header,
.modal-blue-header .e-dlg-header *,
.modal-blue-header .e-dlg-header span,
.modal-blue-header .e-dlg-header div {
    color: white !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
}

.modal-blue-header .e-dlg-header {
    width: 100% !important;
}

/* Custom close button — identical to MonitoringVisits .btn-close-x */
.modal-close-btn {
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    color: white !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-size: 1rem !important;
    flex-shrink: 0 !important;
}

.modal-close-btn:hover {
    background: rgba(255, 255, 255, 0.3) !important;
}

.modal-close-btn i,
.modal-close-btn .fas,
.modal-close-btn .fa {
    color: white !important;
    font-size: 1rem !important;
}

/* ===== RADZEN DIALOG BLUE HEADER ===== */
/* PURPOSE: Standard blue header for RadzenDialog components */
.rz-dialog-titlebar.modal-header-blue,
.modal-blue-header .rz-dialog-titlebar {
    background: linear-gradient(135deg, #0C5FE3 0%, #0a4fc0 100%) !important;
    color: var(--modal-header-text) !important;
    padding: 0.75rem 1rem !important;
}

.modal-blue-header .rz-dialog-title {
    color: var(--modal-header-text) !important;
    font-weight: 600 !important;
}

.modal-blue-header .rz-dialog-titlebar-close {
    color: var(--modal-header-text) !important;
    background: rgba(255, 255, 255, 0.2) !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

.modal-blue-header .rz-dialog-titlebar-close:hover {
    background: rgba(255, 255, 255, 0.3) !important;
}

/* ===== MODAL BLURRED BACKDROP ===== */
/* PURPOSE: Blurred/dimmed background behind modals for focus */
/* IMPLICATION: All modals with modal-blue-header get blurred backdrop */
.e-dlg-overlay {
    background-color: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
}

/* Enhanced blur for modal-blue-header dialogs */
.modal-blue-header + .e-dlg-overlay,
.e-dlg-container:has(.modal-blue-header) .e-dlg-overlay {
    background-color: rgba(0, 0, 0, 0.55) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
}

/* Ensure dialog container has proper z-index and positioning */
.e-dlg-container {
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* Modal container - matching reference dialog-container from MonitoringVisits */
.modal-blue-header.e-dialog {
    border: none !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
}

/* Dialog content area */
.modal-blue-header .e-dlg-content {
    padding: 1.5rem !important;
    background: #f9fafb !important;
}

/* Dialog footer - matching reference dialog-footer */
.modal-blue-header .e-footer-content {
    padding: 1rem 1.5rem !important;
    background: white !important;
    border-top: 1px solid #e5e7eb !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 0.75rem !important;
}

/* Footer buttons - secondary (Cancel/Back) */
.modal-blue-header .e-footer-content .e-flat {
    padding: 0.5rem 1rem !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    border: 1px solid #d1d5db !important;
    background: white !important;
    color: #374151 !important;
    transition: all 0.2s ease !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.modal-blue-header .e-footer-content .e-flat:hover {
    background: #f3f4f6 !important;
}

/* Footer buttons - primary (Next/Save/Create) */
.modal-blue-header .e-footer-content .e-primary {
    padding: 0.5rem 1rem !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    border: none !important;
    background: #0C5FE3 !important;
    color: white !important;
    transition: all 0.2s ease !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.modal-blue-header .e-footer-content .e-primary:hover:not(:disabled) {
    background: #0a4fc0 !important;
}

.modal-blue-header .e-footer-content .e-primary:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}

/* Footer buttons - danger (Delete) */
.modal-blue-header .e-footer-content .e-danger {
    padding: 0.5rem 1rem !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    border: none !important;
    background: #dc2626 !important;
    color: white !important;
    transition: all 0.2s ease !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.modal-blue-header .e-footer-content .e-danger:hover {
    background: #b91c1c !important;
}

.step-arrow-container {
    display: flex;
    flex-wrap: wrap;
}

.step-arrow {
    position: relative;
    background: #4caf50;
    padding: 13px 18px;
    color: white;
    clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%, 10% 50%);
    white-space: nowrap;
    font-size: 9px;
    text-align: center;
    /* flex: 1 1 200px;*/
    min-width: 120px;
    max-width: 100%;
    box-sizing: border-box;
}

    .step-arrow:nth-child(1) {
        background: #9c27b0;
    }

    .step-arrow:nth-child(2) {
        background: #ab47bc;
    }

    .step-arrow:nth-child(3) {
        background: #7e57c2;
    }

    .step-arrow:nth-child(4) {
        background: #5c6bc0;
    }

    .step-arrow:nth-child(5) {
        background: #29b6f6;
    }

    .step-arrow:nth-child(6) {
        background: #26c6da;
    }

    .step-arrow:nth-child(7) {
        background: #66bb6a;
    }

    .step-arrow:nth-child(8) {
        background: #43a047;
    }

/* Make arrows stack on very small screens */
@media (max-width: 768px) {
    .step-arrow-container {
        flex-direction: column;
        align-items: stretch;
    }

    .step-arrow {
        clip-path: polygon(0% 0%, 95% 0%, 100% 50%, 95% 100%, 0% 100%, 5% 50%);
        font-size: 13px;
    }
}


.ai-assist-background {
    background-image: url('../image/ai-chat-rmbg.png');
    background-size: 16rem;
    background-position: 4.5rem 2rem;
    background-repeat: no-repeat;
}

.e-view-header {
    display: none;
}

.chat-started {
    background-image: none !important;
}

.left-sidebar-nav {
    width: max-content;
    position: relative;
}

.group-parent {
    margin-left: 4%;
}

.collapsed .group-parent {
    margin-left: 20%;
}

.ai {
    color: #02e29c;
}



.marginal-gains {
    font-size: large;
    font-family: 'AptosFont', sans-serif;
}

.blue-text-color {
    color: #0C5FE3;
}

.logo-bar {
}

/* Clickable logo area - navigates to landing page */
.logo-clickable {
    cursor: pointer;
}

.logo-clickable:hover {
    opacity: 0.8;
}

.grid-line {
    height: 1px;
    background-color: #e0e0e0; /* Light gray, like your image */
    width: 100%; /* Full width */
    border: none;
    margin-top: unset !important;
    margin-bottom: unset !important;
}

.grid-line-trimmed {
    height: 1px;
    background-color: #e0e0e0;
    width: 88%;
    border: none;
    margin-left: 6%;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

.collapsed .grid-line {
    height: 1px;
    background-color: #e0e0e0; /* Light gray, like your image */
    width: 100%; /* Full width */
    border: none;
    margin-left: 2%;
}


.sidebar-container {
    width: 100%;
    height: 100%;
    padding: 10px 0px;
    background: var(--Color-Variables-white, white);
    display: flex;
    flex-direction: column;
    gap: 143px;
    transition: width 0.1s ease;
}

    .sidebar-container.collapsed {
        width: 49px;
        overflow: hidden;
        /*  padding: 24px 10px; */
        transition: none !important;
    }

.sidebar-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.logo-row {
    display: flex;
    align-items: center;
    gap: 15px;
    justify-content: space-between;
}

.hamburger-btn {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
}

.nav-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.nav-item {
    display: flex;
    flex-direction: column;
}

.collapsed .nav-item {
    display: flex;
    flex-direction: initial;
    height: 3rem;
}


.collapsed .nav-entry {
    display: flex;
    align-items: center;
    padding: 0px 0px 0px 11px;
    border-radius: 8px;
    gap: 12px;
    width: 100%;
    cursor: pointer;
    transition: background 0.2s ease;
}

.nav-entry {
    display: flex;
    align-items: center;
    width:14rem;
    padding: 12px;
    border-radius: 8px;
    margin-left: 3%;
    gap: 12px;
    cursor: pointer;
    transition: background 0.2s ease;
}

    .nav-entry:hover {
        background: #f5f7fa;
    }

.nav-item-open .nav-entry * {
    color: var(--Color-Variables-primary, cornflowerblue);
}

.submenu {
    padding-left: 45px;
    padding-right: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 4px;
}

.submenu-item {
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 400;
    cursor: pointer;
    font-family: 'AptosFont', sans-serif;
    transition: background 0.2s ease;
    color: #1A1A1A;
}

    .submenu-item:hover {
        background: var(--Color-Variables-primary-container, #e3edff);
        color: var(--Color-Variables-primary, #2563EB);
    }

    .submenu-item.Selected {
        background: var(--Color-Variables-primary-container, #D3E0FB);
        color: var(--Color-Variables-primary, #2563EB);
    }

.collapse-btn {
    align-self: stretch;
    height: 48px;
    padding: 12px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: background 0.2s ease;
}

    .collapse-btn:hover {
        background: #f0f0f0;
    }

.nav-label {
    flex: 1;
    font-size: 14px;
    font-weight: 400;
    width: 10rem;
    font-family: 'AptosFont', sans-serif;
    line-height: 24px;
    color: #1A1A1A;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
}

.text-ellipsis {
    white-space: nowrap; /* Prevents text wrapping */
    overflow: hidden; /* Hides overflow content */
    text-overflow: ellipsis; /* Adds '...' at the end */
    max-width: 200px; /* Set this to your layout’s width */
    display: inline-block; /* Ensures it behaves like an inline box */
    vertical-align: middle; /* Aligns with icon if needed */
}


.ai-chat-popup-dev-mode {
    padding-right: 6%;
}

.nav-label:hover {
    color: var(--Color-Variables-primary, #2563EB);
}

.icon-box {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.material-symbols-outlined,
i.ph {
    font-size: 24px;
    color: #767676;
    vertical-align: middle;
    transition: color 0.2s ease;
}

.nav-entry:hover .material-symbols-outlined,
.nav-entry:hover i.ph {
    color: var(--Color-Variables-primary, #2563EB);
}

.nav-action-icon {
    font-size: 24px;
}

.navigation-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    font-size: 22px;
    margin-right: 8px;
}

.arrow-icon::after {
    content: "▸";
    display: inline-block;
    transition: transform 0.2s ease;
}

.nav-item[data-state="Open"] .arrow-icon::after {
    transform: rotate(90deg);
}

.logo-text {
    display: flex;
    flex-direction: column;
}

.text-blue {
    color: #338FFF;
    font-size: 22px;
    font-weight: 700;
    line-height: 28px;
}

.text-green {
    color: #02E29C;
    font-size: 22px;
    font-weight: 700;
    line-height: 28px;
}

.sub-nav-item-open {
    background: var(--Color-Variables-primary-container, #e3edff);
    color: var(--Color-Variables-primary, #2563EB);
}


/**container css**/
.page-container {
    font-family: 'AptosFont', sans-serif;
    position: relative;
    height: 100% !important;
    overflow: auto;
    scrollbar-width: none;
    /* Ensure bottom content is fully accessible */
}




.container {
    /*    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    background-color: #fff;
    box-shadow: -2px 1px 2px rgba(0, 0, 0, 0.03);
    height: 89%;
    width: 97%;
    min-width: 97%;
    position: relative;
    margin-top: 1rem;
    margin-left: 1.5%;*/

    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 12px;
    background-color: #fff;
    box-shadow: -2px 1px 2px rgba(0, 0, 0, 0.03);
    height: 97%;
    width: 99%;
    min-width: 99%;
    position: relative;
    margin-top: 1rem;
    margin-bottom: 2rem; /* Add bottom margin for breathing room */
    padding-left: 0 !important; /* IMPLICATION: Override Bootstrap's default container padding */
    padding-right: 0 !important; /* IMPLICATION: Override Bootstrap's default container padding */
    padding-bottom: 60px; /* Add bottom padding to ensure content is fully visible */
    overflow: auto;
    scrollbar-width: none;
}

.main-screen-sidebar {
    width: 100%;
    position: relative !important;
    overflow: auto;
    display: inline-table;
    /* preserve scrolling */
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

/**AI chat styling**/
.chat-button {
    background-color: #10b981 !important;
    color: white;
    border: 2px solid #d1fae5;
    border-radius: 50%;
    width: 70px;
    height: 70px;
    bottom: 1rem;
    font-size: 20px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    float: right;
    position: absolute;
}

.ai-chat-btn-container {
    right: 1rem;
    position: absolute;
    z-index: 9999;
    bottom: 3rem;
}

.chat-button:hover {
    background-color: #059669; /* darker shade of green on hover */
}

.chat-icon {
    display: inline-block;
}

@media (max-width: 1024px) {

    .ai-chat-btn-container {
        position: absolute;
        /* width: 10%; */
        display: flex;
        padding: unset;
        justify-content: flex-end;
        /* margin: 0px 0px 65px 0px; */
        bottom: 0rem;
    }
}

.statehover {
    position: relative;
    border-radius: 999px;
    background-color: #497dee;
    width: 20%;
    float: right;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 24px;
    box-sizing: border-box;
    gap: 8px;
    text-align: center;
    font-size: 24px;
    color: #fff;
    font-family: 'AptosFont', sans-serif;
    bottom: 14%;
}

/* Existing sidebar styles (ensure these are present and correct) */
/* ... (your existing sidebar styles here, no changes needed to them) ... */

/* COMMENT: Hide navigation labels when sidebar is collapsed */
/* PURPOSE: Shows only icons when sidebar is collapsed for cleaner UI */
/* IMPLICATION: Without this, text labels will overflow and show partial text like "He" for "Help" */
.sidebar-container.collapsed .nav-label {
    width: 0;
    opacity: 0;
    visibility: hidden;
    transition: width 0.3s ease-in-out, opacity 0.3s ease-in-out, visibility 0.3s;
}

/* COMMENT: Show navigation labels when sidebar is expanded */
/* PURPOSE: Displays full text labels alongside icons in expanded mode */
.sidebar-container:not(.collapsed) .nav-label {
    width: auto;
    opacity: 1;
    visibility: visible;
}

/* --- Sidepane Specific Styles --- */
.sidepane-container {
    position: fixed; /* Changed to fixed so it stays in viewport relative to scroll */
    left: 60px; /* IMPORTANT: Match this to your .sidebar-container.collapsed width */
    /* top: 0; */ /* Will be set dynamically by JavaScript, or by your hardcoded percentage */
    width: 200px; /* Width of the sidepane */
    height: auto; /* Allow height to adjust to content */
    max-height: calc(100vh - 20px); /* Default max height, adjusted by JS for specific position */
    background-color: #ffffff;
    border: 1px solid #ddd;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.15);
    z-index: 100000;
    padding: 10px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    /* For click-based, we'll start hidden and transition to visible */
    opacity: 0;
    visibility: hidden;
    transform: translateX(-10px); /* Initial slide position */
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0.2s; /* Smooth transition */
}

    /* Class to make the sidepane visible (added by Blazor C#) */
    .sidepane-container.show {
        opacity: 1;
        visibility: visible;
        transform: translateX(0); /* Slide into its final position */
    }


/* Sidepane header styling */
.sidepane-header {
    font-weight: bold;
    font-size: 1.1em;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid #eee;
    color: #333;
}

/* Sidepane content area (holds the sub-items) */
.sidepane-content {
    flex-grow: 1;
}

/* Individual submenu item within the sidepane */
.sidepane-item {
    padding: 8px 5px;
    cursor: pointer;
    border-radius: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: background-color 0.2s ease, color 0.2s ease;
}

    .sidepane-item:hover {
        background-color: #e0e0e0;
        color: #007bff;
    }

    /* Style for the currently active/expanded sub-nav item (optional) */
    .sidepane-item.sub-nav-item-open {
        font-weight: bold;
        background-color: #e6f2ff;
        color: #0056b3;
    }

/**navbar expand icon**/
.navbar-expand-icon {
    position: absolute;
    margin-left: 92%;
   /* z-index: 200000000 !important;*/
    border-radius: 19px;
    top: 35px;
    background: white;
    cursor: default;
}

.w100per {
    width: 100% !important;
}

/*.e-aiassistview .e-view-content
{
    height : 100% !important;
}*/

.navbar-collapsed-icon {
    position: absolute;
    left: 35px;
    border-radius: 19px;
    /*z-index: 200000000 !important;*/
    top: 35px;
    background: white;
}

.waving-hand-container
{
    margin-left: 10px !important;
}
/**status badge**/
.header-status-badge {
    display: inline-flex;
    align-items: center;
    background-color: #f5f5f5;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 14px;
    white-space: nowrap;
    font-weight: 500;
    color: #000000;
    align-self: anchor-center;
}

.status-indicator {
    width: 10px;
    height: 10px;
    background-color: #4ade80; /* green color */
    border-radius: 50%;
    margin-right: 8px;
}

/* RAG Status Badge Colors */
.status-green {
    background: #dcfce7;
    color: #166534;
}

.status-amber {
    background: #fef3c7;
    color: #92400e;
}

.status-red {
    background: #fee2e2;
    color: #991b1b;
}

.status-notset {
    background: #f3f4f6;
    color: #6b7280;
}


/**profile pic**/
.profile-container {
    background-color: #D3E0FB; /* Google's blue */
    color: #2563EB;
    font-weight: bolder;
    border: 2px solid white; /* White border */
    border-radius: 50%; /* Full circle */
    width: 35px; /* Equal width and height */
    height: 35px;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center; /* Center content */
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.service-badge-profile {
    /*flex-wrap: nowrap;
    position: relative;*/
    /* float: right; */
    /*display: flex;
    justify-content: flex-end !important;
    display: flex !important;*/
    /* margin-left: 60%; */
    /*height: 100%;
    width: 50%;
    flex-wrap: nowrap;*/

    position:relative;
}


/**AI chat popup**/
/* Chat popup - position above bottom right corner */
.ai-chat-popup {
    position: fixed;
    bottom: 70px;
    right: 20px;
    width: 90vw;
    max-width: 400px;
    height: 75vh;
    max-height: 600px;
    background-color: #f4f6fb;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    font-family: 'AptosFont', sans-serif;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    z-index: 9999;
}

.body-container-div
{
    height:95% !important;
    overflow:scroll;
    scrollbar-width:none;
}

.page-container-div
{
    height:100% !important;
}
/* Header */
.ai-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #14b8a6 0%, #10b981 100%);
    padding: 12px 16px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* AI Agent Selector - Subtle Green Style */
.ai-agent-selector {
    min-width: 200px;
    flex: 0 0 auto;
}

.ai-menu-dropdown.e-btn,
.ai-menu-dropdown.e-dropdown-btn {
    background: rgba(255, 255, 255, 0.2) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-weight: 500 !important;
    color: white !important;
    box-shadow: none !important;
    transition: all 0.2s ease !important;
    min-width: 200px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    text-align: left !important;
}

.ai-menu-dropdown.e-btn:hover,
.ai-menu-dropdown.e-dropdown-btn:hover {
    background: rgba(255, 255, 255, 0.3) !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    transform: translateY(-1px);
}

/* Icon and text container - left aligned */
.ai-menu-dropdown.e-btn .e-btn-content,
.ai-menu-dropdown .e-dropdown-btn-content {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 1 !important;
    justify-content: flex-start !important;
}

.ai-menu-dropdown .ai-logo {
    width: 20px !important;
    height: 20px !important;
    flex-shrink: 0 !important;
    order: -1 !important;
}

/* Dropdown chevron - right aligned */
.ai-menu-dropdown .e-caret,
.ai-menu-dropdown .e-icon-right {
    color: white !important;
    margin-left: auto !important;
    opacity: 0.8 !important;
    font-size: 14px !important;
}

.ai-title {
    display: none;
}

.ai-title-spacer {
    flex: 1;
}

/* Header Action Buttons */
.ai-header-action {
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.15);
    color: white;
    transition: all 0.2s ease;
    margin-left: 8px;
}

.ai-header-action:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: scale(1.05);
}

.ai-header-action i {
    font-size: 14px;
}

.ai-header-action.ai-close:hover {
    background: rgba(239, 68, 68, 0.9);
}

/* Remove old styles */
.ai-icon {
    display: none;
}

.ai-chat-popup-dev-mode {
    display: none;
}

.ai-expand {
    display: none;
}

.ai-chat-material-icon {
    display: none;
}

.ai-chat-material-close-icon {
    display: none;
}

.ai-popup-header-logo {
    height: 30px;
    width: 30px;
}
/* AssistView box */
.ai-chat-box {
   /* flex: 1;
    padding: 1rem;*/
    overflow-y: auto;
    background-color: #FFFFFF;
}

/* Responsive */
@media screen and (max-width: 480px) {
    .ai-chat-popup {
        right: 10px;
        bottom: 80px;
        width: 95vw;
        height: 70vh;
    }
}

/* AI Chat Icon Button - positioned to align with chat dialog */
.ai-chat-icon-button {
    position: fixed;
    z-index: 9999;
    cursor: move;
}

.chat-fab {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 1000;
}

/* AI Chat Dialog Container - appears above the icon when opened */
.chat-container {
    position: absolute;
    bottom: 5.5rem;
    right: 1rem;
    width: 30rem;
    height: 50%;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 12px;
    z-index: 20000;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

@media (max-width: 1024px) {
    /* For tablets and below (including mobiles) */
    .chat-container {
        position: absolute;
        bottom: 5.5rem;
        height: 50%;
        background: #fff;
        border: 1px solid #ccc;
        border-radius: 12px;
        box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
        overflow: hidden;
    }
}


.chat-container-expanded {
    position: fixed;
    bottom: 5.5rem;
    top: 1rem;
    right: 1rem;
    left: 1rem;
    width: auto;
    height: auto;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 12px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 12px rgba(0,0,0,0.15);
    overflow: hidden;
}

.chat-header {
    /* background: #f3f3f3;
    padding: 0.5rem 1rem;
    font-weight: bold;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #ddd;*/

    display: none;
}

.close-btn {
    font-size: 0.9rem;
}

.e-aiassistview .e-footer {
    position: relative;
    margin: 0 auto 24px;
    width: 100%;
    padding: 0 12px;
}

/* Enhanced Input Area */
.e-aiassistview .e-footer .e-input-group {
    min-height: 60px !important;
    border-radius: 12px;
    border: 2px solid #e5e7eb;
    background: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: all 0.2s ease;
}

.e-aiassistview .e-footer .e-input-group:focus-within {
    border-color: #10b981;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
}

.e-aiassistview .e-footer .e-input-group textarea {
    min-height: 56px !important;
    padding: 16px 60px 16px 16px !important;
    font-size: 14px;
    line-height: 1.5;
    font-family: 'AptosFont', sans-serif;
}

/* Enhanced Send Button - Bright MG Green Circle - Fully Inside Input Box */
.e-aiassistview .e-footer .e-assist-send,
.e-aiassistview .e-footer .e-assist-send.e-btn,
.e-aiassistview .e-footer .e-assist-send.e-primary,
.e-aiassistview .e-footer .e-assist-send.e-flat,
.e-aiassistview .e-footer button.e-assist-send,
.e-aiassistview .e-footer button[class*="assist-send"],
button.e-assist-send {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
    background-color: #10b981 !important;
    background-image: none !important;
    background: #10b981 !important;
    border: none !important;
    border-color: transparent !important;
    border-radius: 50% !important;
    color: white !important;
    fill: white !important;
    font-size: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4) !important;
    position: absolute !important;
    right: 14px !important;
    bottom: 10px !important;
    top: auto !important;
    left: auto !important;
    cursor: pointer !important;
    z-index: 10 !important;
    opacity: 1 !important;
    filter: none !important;
    outline: none !important;
}

.e-aiassistview .e-footer .e-assist-send::before,
.e-aiassistview .e-footer .e-assist-send::after {
    display: none !important;
}

.e-aiassistview .e-footer .e-assist-send:active,
.e-aiassistview .e-footer .e-assist-send:focus,
.e-aiassistview .e-footer .e-assist-send:focus-visible,
.e-aiassistview .e-footer button.e-assist-send:active,
.e-aiassistview .e-footer button.e-assist-send:focus {
    background: #10b981 !important;
    background-color: #10b981 !important;
    border-color: transparent !important;
    outline: none !important;
}

.e-aiassistview .e-footer .e-assist-send:hover:not(.disabled),
.e-aiassistview .e-footer button.e-assist-send:hover:not(.disabled) {
    transform: scale(1.05) !important;
    box-shadow: 0 4px 16px rgba(16, 185, 129, 0.6) !important;
    background: #059669 !important;
    background-color: #059669 !important;
}

/* Disabled state - STILL GREEN! */
.e-aiassistview .e-footer .e-assist-send.disabled,
.e-aiassistview .e-footer .e-assist-send[disabled],
.e-aiassistview .e-footer button.e-assist-send.disabled,
.e-aiassistview .e-footer button.e-assist-send[disabled] {
    background: #10b981 !important;
    background-color: #10b981 !important;
    background-image: none !important;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4) !important;
    cursor: not-allowed !important;
    opacity: 0.6 !important;
    border: none !important;
    border-color: transparent !important;
    pointer-events: none !important;
}

/* Icon styling - ensure visibility */
.e-aiassistview .e-footer .e-assist-send .e-icons,
.e-aiassistview .e-footer .e-assist-send svg,
.e-aiassistview .e-footer .e-assist-send svg path,
.e-aiassistview .e-footer .e-assist-send i,
.e-aiassistview .e-footer .e-assist-send span,
.e-aiassistview .e-footer .e-assist-send::before {
    font-size: 18px !important;
    color: white !important;
    fill: white !important;
    stroke: white !important;
    font-weight: bold !important;
    opacity: 1 !important;
    display: block !important;
    visibility: visible !important;
}

/* Make sure the icon is centered */
.e-aiassistview .e-footer .e-assist-send .e-icons {
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.ai-chat-container {
    height: 100%;
    width:100% !important;
}

    .ai-chat-container .e-content-body * :not(.material-symbols-outlined) {
        font-family: 'AptosFont', sans-serif;
    }

.e-prompt-container .e-prompt-text {
        background: #2563EB;
        color: #F4F5F6;
        border: 1px solid #fff;
        margin: 6px 0;
        border-radius: 16px 16px 0px 16px;
        max-width: 100%;
        word-wrap: break-word;
        font-family: 'AptosFont', sans-serif;
    }

.e-aiassistview .e-output-container {
    max-width: 100% !important;
    width: auto;
}

.e-output-container:has(.e-skeleton) {
    width: 70% !important;
}

.e-output-container .e-content-body {
    background: #f4f5f6;
    color: #F4F5F6;
    margin: 6px 10px;
    border-radius: 16px 16px 0px 16px !important;
    max-width: 100%;
    word-wrap: break-word;
    font-family: 'AptosFont', sans-serif;
}

.e-aiassistview .e-output {
    gap: 2px;
    background-color: #f4f5f6;
    justify-content: end;
    position: relative;
    border-radius: 16px 16px 16px 0px !important;
}

.e-content-footer {
    display: none;
}

.ai-chat-container-full-screen .e-footer {
    position: fixed;
    top: 87%;
    height: 20%;
    background: #FFF;
    padding-top: 2rem;
}

.e-aiassistview .e-view-content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
}

.e-aiassistview .e-view-container, .e-aiassistview .e-footer {
    width: 100%;
}

.e-aiassistview .e-views {
    height: 100%;
    overflow: scroll;
    scrollbar-width: none;
}

.e-aiassistview .e-footer:not(.e-footer-template) .e-assist-send.disabled {
    margin-right: 6px !important;
}

.e-suggestion-list ul {
    display: grid !important;
}

/**SEND steps**/
/* Ensure equal spacing between steps */

ol.e-stepper-steps li {
    flex: 1;
}

.send-progress-container .e-stepper-steps .e-step-container {
    flex: 1 1 auto;
    text-align: center;
    position: relative;
    padding-bottom: 20px;
}

    /* Circle appearance using a pseudo-element */
    .send-progress-container .e-stepper-steps .e-step-container::before {
        content: "";
        display: inline-block;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background-color: #d3d3d3; /* default grey */
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
    }

    /* Line between steps */
    .send-progress-container .e-stepper-steps .e-step-container:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 8px;
        left: 50%;
        height: 2px;
        width: 100%;
        background-color: #d3d3d3;
        z-index: -1;
    }

/* Completed steps – green circle and green line */
.send-progress-container .e-stepper-steps .e-step-completed::before {
    background-color: #34A853; /* lighter green */
}

.send-progress-container .e-stepper-steps .e-step-completed + .e-step-container::after {
    background-color: #34A853;
}

/* Active step – darker green */
.send-progress-container .e-stepper-steps .e-step-inprogress::before,
.e-stepper-steps .e-step-selected::before {
    background-color: #137333; /* darker green */
}

/* Step label styling */
.send-progress-container .e-stepper-steps .e-step-label-container {
    margin-top: 20px;
    display: block;
    font-size: 13px;
    white-space: normal !important;
}

.send-progress-container .e-stepper .e-stepper-progressbar {
    all:unset;
    margin-left:5% !important;
    height: 1.6px;
    top: 14px !important;
    position: absolute;
    width: 90% !important;
    background-color: #4ade80;
}

.custom-upload-wrapper {
    margin-right: 9px;
}

.send-progress-container {
    flex-wrap: nowrap;
    position: relative;
    margin-top: 6rem;
}

    .send-progress-container .e-stepper-steps .e-step-label-container .e-label {
        color: #1c1b1f !important;
    }

    .send-progress-container .e-stepper .e-stepper-progressbar > .e-progressbar-value {
        background-color: #194A2B;
    }

    .send-progress-container .send-step-skipped .e-indicator {
        background-color: gainsboro !important;
    }

    /* First item */
    .send-progress-container ol.e-stepper-steps .e-indicator {
        background-color: #fff;
        color: black;
        box-shadow: 0 0 0 1px black !important;
    }

    .send-progress-container ol.e-stepper-steps .e-step-selected .e-indicator {
        background-color: #0C5FE3;
        color: white;
        box-shadow: 0 0 0 1px black !important;
        border: 2px solid #d3e0fb;
    }

    /* 4th item */
    /*.send-progress-container ol.e-stepper-steps li:nth-child(4) .e-indicator {
        background-color: lightgreen;
    }*/

    /* Last item */
    /*.send-progress-container ol.e-stepper-steps li:nth-child(7) .e-indicator {
        background-color: #319455;
        color: white;
    }

    .send-progress-container ol.e-stepper-steps .e-indicator {
        background-color: #dbf8e6;
    }*/


/*send student selection progress bar change*/

.send-student-progress-container {
    flex-wrap: nowrap;
    position: relative;
    margin-top: 6rem;
    padding-bottom: 1rem;
}

#pbiReportContainer iframe {
    border-width: 0;
}

.send-student-progress-container ol.e-stepper-steps .e-indicator {
    background-color: #0C5FE3;
    color: white;
}

.fontsize14px {
    font-size: 14px;
}

.send-student-progress-container ol.e-stepper-steps .e-step-disabled .e-indicator {
    background-color: #d3e0fb;
    color: #2563eb;
}

.send-student-progress-container ol.e-stepper-steps .e-step-notstarted .e-indicator {
    background-color: mintcream;
    color: black;
}


.send-student-progress-container .e-stepper .e-stepper-progressbar > .e-progressbar-value {
    background-color: #0C5FE3;
}

.send-student-progress-container .e-stepper-steps .e-step-label-container .e-label {
    color: #1c1b1f !important;
}

.send-student-progress-container ol.e-stepper-steps .e-step-disabled .e-step-label {
}

.send-student-progress-container .e-stepper-steps .e-step-disabled .e-step-label-container .e-label {
    color: #7E8893 !important;
}

.send-student-progress-container .e-stepper-steps .e-step-label-container {
    margin-top: 20px;
    display: block;
    font-size: 13px;
    white-space: normal !important;
}

.send-student-progress-container .send-progress-container {
    flex-wrap: nowrap;
    position: relative;
    top: 2rem;
    margin-top: 2rem;
    padding-bottom: 2rem;
}

/*SEND GRID style*/

.send-grid-scroll thead th {
    background-color: #ECEDEF;
}

.rz-grid-table thead th .rz-column-title-content {
    font-weight: 600;
}

.send-top-tabs .rz-tabview-title {
    font-size: smaller;
    text-transform: none !important;
}

.rz-tabview-selected {
    border-top-width: 0;
    border-bottom: 2px solid #0C5FE3 !important;
}

    .rz-tabview.rz-tabview-top > .rz-tabview-nav .rz-tabview-selected a {
        letter-spacing: normal !important;
    }

.send-top-tabs .rz-tabview.rz-tabview-top > .rz-tabview-nav .rz-tabview-selected {
    border-top-width: 0;
    border-bottom: 2px solid #0C5FE3 !important;
}

.rz-tabview-selected .rz-tabview-title {
    color: #0C5FE3;
    font-size: 14px;
    text-transform: none !important;
}

.top-intro-section {
    flex-wrap: nowrap;
    position: relative;
    width: 100%;
}

.user-intro-container {
    width: 50%;
}

.send-search-control {
    position: relative;
    z-index: 100;
}

.send-search-control-input {
    position: relative;
    background: #F4F5F6;
}

.new-assessment-btn-container {
    flex-wrap: wrap;
    width: 21%;
    position: relative;
    left: 79%;
    margin-bottom: 27px;
    margin-top: 20px;
    z-index: 90;
}

.send-top-tabs {

    position: relative;

}

h4.fw-bolder {
    font-weight: bolder;
    color: black !important;
}

.cursor-default {
    cursor: default;
}

.yellow-icon {
    margin-top: 6px;
    color: gold;
}

/*send empty document tab*/
.empty-upload-container {
    text-align: center;
    padding: 40px 20px;
    max-width: 500px;
    margin: 0 auto;
}

.empty-upload-image {
    width: 100px;
    height: auto;
    margin-bottom: 20px;
    opacity: 0.8;
}

.empty-upload-title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #222;
}

.empty-upload-text {
    font-size: 14px;
    color: #666;
    margin-bottom: 20px;
}

.hidden-upload {
    display: none !important;
}

.file-name {
    margin-left: 12px;
    color: #555;
    font-size: 14px;
}

.custom-upload-container {
    gap: 10px;
    margin-right: 1% !important;
}



/* COMMENT: Primary action button - solid blue background, no gradient */
/* PURPOSE: Matches flat design pattern from button-gradient.png reference */
/* IMPLICATION: Consistent with modern flat UI design across Groups and Users pages */
.upload-button {
    border-radius: 8px !important;
    background: #0C5FE3 !important;
    color: white !important;
    border: 2px solid #0C5FE3 !important;
    text-transform: capitalize;
    padding: 0.5rem 1.25rem !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
}

.upload-button:hover {
    background: #0a4fc0 !important;
    border-color: #0a4fc0 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(12, 95, 227, 0.2) !important;
}

.upload-button:active {
    transform: translateY(0);
}

.upload-box {
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    background-color: #f9f9f9;
    flex-wrap: wrap !important;
}

.upload-title {
    font-weight: 600;
    color: #000;
}

.upload-subtext {
    font-size: 12px;
    color: #777;
}

.form-label {
    font-weight: 500;
    margin-bottom: 5px;
    display: block;
    color: #333;
}

.mg-bold-label {
    font-size: 20px;
    font-weight: 600;
    position: relative;
    color: var(--color-black);
    align-self: start;
}

.profile-details-right-container p {
    padding-right: 3%;
}
/* Remove existing styles on hover, focus, and active */
/* Base autocomplete container */
.syncf-autocomplete {
    box-sizing: border-box !important;
    width: 100% !important;
    font-family: inherit !important;
    font-size: 14px !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

    /* Inner input sizing & padding */
    .syncf-autocomplete input {
        box-sizing: border-box !important;
        width: 100% !important;
        height: 2.5rem !important;
        padding: 0.5rem 0.75rem !important;
        font-size: 14px !important;
        font-family: inherit !important;
        background: transparent !important; /* inherit parent bg */
        border: none !important; /* remove inner border */
        outline: none !important;
    }

    /* Focus & active states on container */
    .syncf-autocomplete:focus-within,
    .syncf-autocomplete:active {
        border-color: #0C5FE3 !important;
        width: 100% !important;
        box-shadow: 0 0 0 2px rgba(12,95,227,0.25) !important;
        outline: none !important;
    }

/*profile picture and section*/

.profile-popup {
    position: absolute;
    float: right;
    top: 40px;
    right: 55px;
    border-radius: 1px 10px 1px 1px;
    background-color: white;
    border: 1px solid #ccc;
    padding: 12px;
    border-radius: 8px 0px 8px 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    width: 220px;
    opacity: 0;
    transform: scale(0.95);
    pointer-events: none;
    transition: all 0.3s ease;
    z-index: 10;
}

    .profile-popup.show {
        opacity: 1;
        transform: scale(1);
        pointer-events: auto;
    }


.card-container {
    width: 300px;
    height: 435px;
    background: #FFF;
    border-radius: 6px;
    position: absolute;
    z-index: 110;
    transform: translate(-50%, -50%);
    overflow: hidden;
    display: inline-block;
}

.upper-container {
    height: 150px;
    background: #0C5FE3;
}

.image-container {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    transform: translate(100px, 100px);
}

    .image-container img {
        width: 80px;
        height: 80px;
        border-radius: 50%;
    }

.lower-container {
    height: 280px;
    background: #FFF;
    padding-top: 40px;
    text-align: center;
    display: grid;
    font-family: 'AptosFont', sans-serif;
}

    .lower-container h3, .lower-container h4 {
        box-sizing: border-box;
        line-height: 0.6;
        font-weight: lighter;
    }

    .lower-container h4 {
        color: #0C5FE3;
        opacity: 0.6;
        font-weight: bold;
    }

    .lower-container p {
        font-size: 16px;
        color: gray;
        margin-bottom: 30px;
    }

    .lower-container .btn {
        padding: 12px 20px;
        background: #0C5FE3;
        border: none;
        color: white;
        border-radius: 30px;
        font-size: 12px;
        text-decoration: none;
        font-weight: bold;
        transition: all 0.3s ease-in;
    }

        .lower-container .btn:hover {
            background: transparent;
            color: #0C5FE3;
            border: 2px solid #7F00FF;
        }

/* COMMENT: Secondary action button - white background with blue border, no gradient */
/* PURPOSE: Matches flat design pattern from button-gradient.png reference (Close button) */
/* IMPLICATION: Consistent with modern flat UI design across Groups and Users pages */
.filter-button {
    background: #FFF !important;
    color: #0C5FE3 !important;
    border: 2px solid #0C5FE3 !important;
    border-radius: 8px !important;
    padding: 0.4rem 1rem !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    text-transform: capitalize !important;
    transition: all 0.2s ease !important;
}

.filter-button:hover {
    background: #f0f7ff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(12, 95, 227, 0.15) !important;
}

.filter-button:active {
    transform: translateY(0);
}

.rz-chkbox-box.rz-state-active {
    background-color: #0C5FE3 !important; /* Modern way, supported in most modern browsers */
}

.sfsifdebar-header {
    padding: 0px 10px 0px 10px;
}

.responsive-container {
    display: flex !important;
    flex-wrap: wrap !important;
}

.sfsidebar-pane {
    border-inline-end: var(--rz-sidebar-border-inline-end);
    width: 20rem !important;
    background: #FFF !important;
    height:auto !important;
    z-index: 1000;
    overflow:auto;
    scrollbar-width:none;
}

.filter-actions {
    padding: 1rem !important;
    border-top: 0.8px solid #ddd;
}

.top-search-section {
    flex-wrap: nowrap;
    position: relative;
    width:50%;
    left:50%;
}

.save-actions {
    position: relative;
    margin-top: 2.5rem;
}

.rz-tabview.rz-tabview-top > .rz-tabview-panels
{
    border-top: none !important;
}

.filter-count-para {
    background: #0C5FE3 !important;
    color: white;
    width: 20px;
    border-radius: 50%;
}

.mtop-5px-mleft-2rm {
    margin-top: 5px;
    margin-left: 2rem;
}

.mg-default-color {
    color: #0C5FE3 !important
}

span.voted {
    color: #0C5FE3 !important;
}

span.material-symbols-outlined:hover {
    color: #0C5FE3 !important;
    cursor: default;
}

.syncf-autocomplete.e-popup {
    width: 72.3% !important;
}

.ai-menu.e-btn:hover {
    background-color: #0C5FE3 !important;
    border-radius: 8px !important;
}

.fontsize16px
{
    font-size: 16px;
}

.navigation-icon-dropdown-template.e-popup-open
{
    width:30% !important;
}


.second-pbi-deploy-history-tab {
    margin-top: -1rem;
    padding: 1rem 1rem 1rem 1rem;
}

.ai-chat-container .e-input-group.e-multi-line-input.e-auto-width {
    width: 100% !important;
}

/* ===== PbiManagement.razor.css ===== */
.pbi-management-page {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pbi-header-filters .filter-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    font-weight: 600;
    color: #111827;
    min-height: 32px;
}

.pbi-tab-shell {
    padding: 0 1.5rem 1.5rem;
}

.pbi-tab-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.06);
    padding: 1rem 1rem 1.25rem;
}

.pbi-tab :deep(.e-tab-header) {
    margin-bottom: 1rem;
    border-bottom: 0;
}

.pbi-tab :deep(.e-tab-header .e-toolbar-item) {
    padding: 0.25rem 0.5rem;
}

.pbi-tab :deep(.e-tab-wrap) {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
    padding: 0.5rem 0.75rem;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.pbi-tab :deep(.e-tab-wrap:hover) {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.pbi-tab :deep(.e-tab-header .e-toolbar-item.e-active .e-tab-wrap) {
    background: linear-gradient(135deg, #0C5FE3 0%, #0a4fc0 100%);
    border-color: #0C5FE3;
    box-shadow: 0 8px 20px rgba(12, 95, 227, 0.25);
}

.pbi-tab :deep(.e-tab-header .e-toolbar-item.e-active .tab-title),
.pbi-tab :deep(.e-tab-header .e-toolbar-item.e-active .tab-caption),
.pbi-tab :deep(.e-tab-header .e-toolbar-item.e-active i) {
    color: #ffffff;
}

.hide-tab-header :deep(.e-tab-header) {
    display: none;
}

.hide-tab-header :deep(.e-content) {
    border-top: none;
    padding: 0;
}

.hide-tab-header :deep(.e-content .e-item) {
    padding: 0;
}

.pbi-tab :deep(.e-tab-header .e-toolbar-item .tab-title) {
    font-weight: 700;
    color: #111827;
}

.pbi-tab :deep(.e-tab-header .e-toolbar-item .tab-caption) {
    font-size: 0.82rem;
    color: #6b7280;
}

.tab-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.tab-label i {
    color: #0C5FE3;
}

.tab-content-container {
    display: grid;
    gap: 0.75rem;
}

.tab-content-container.card-like {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 6px 18px rgba(17, 24, 39, 0.05);
}

.upload-panel,
.history-panel {
    background: #ffffff;
}

.card-like {
    background: #ffffff;
}

.upload-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem;
    margin-top: 0.5rem;
    align-items: end;
}

.form-field label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 600;
    color: #374151;
    font-size: 0.9rem;
}

.selected-file {
    margin: 0rem 0rem 0.45rem;
    color: #6b7280;
    font-size: 0.85rem;
}

.upload-actions {
   
    align-items: center;
}

.panel-header h3 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
}

.hide-tab-header :global(.e-tab .e-tab-header) {
    display: none !important;
}

.panel-header small {
    color: #6b7280;
}

.loading-state {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    padding: 1rem 0;
    color: #4b5563;
}

.route-actions {
    display: flex;
    gap: 0.5rem;
}

@media (max-width: 768px) {
    .pbi-tab-shell {
        padding: 0 1rem 1.5rem;
    }

    .pbi-tab-card {
        padding: 1rem;
    }

    .route-actions {
        flex-direction: column;
    }
}


.mg-text-white
{
    color : #FFF !important;
}

/* ============================================================
   ANNUAL CYCLE SCHEDULER - TIMELINE YEAR VIEW COMPACT LAYOUT
   IMPLICATION: Makes day columns narrow enough to fit 31 days
   on screen without horizontal scrolling
   Uses .annual-cycle-scheduler CssClass for highest specificity
   ============================================================ */

/* IMPLICATION: Set column widths via <col> elements */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-date-header-wrap table col,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-content-wrap table col {
    width: 35px !important;
    min-width: 35px !important;
}

/* IMPLICATION: Force table to use fixed layout for consistent column widths */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-date-header-wrap table,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-content-wrap table {
    table-layout: fixed !important;
    width: auto !important;
}

/* IMPLICATION: Header cells (date numbers) */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-header-cells {
    min-width: 35px !important;
    max-width: 35px !important;
    width: 35px !important;
    padding: 2px !important;
    font-size: 11px !important;
    height: 35px !important;
}

/* IMPLICATION: Work cells (day columns) - 35px height and width */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-work-cells {
    min-width: 35px !important;
    max-width: 35px !important;
    width: 35px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    padding: 0 !important;
}

/* IMPLICATION: Month labels - EXACT same 35px height as day cells */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-resource-cells {
    min-width: 80px !important;
    max-width: 80px !important;
    width: 80px !important;
    font-size: 12px !important;
    padding: 0 4px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    line-height: 35px !important;
}

/* IMPLICATION: Resource column width */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-resource-column-wrap,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-resource-left-td {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
}

/* IMPLICATION: Force ALL table rows to exactly 35px */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view tr {
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
}

/* IMPLICATION: Force ALL td cells to exactly 35px height */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view td {
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
}

/* IMPLICATION: Event squares - sized for 35px cells */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-appointment {
    min-height: 20px !important;
    max-height: 20px !important;
    height: 20px !important;
    width: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;
    border-radius: 3px !important;
    margin: 2px auto !important;
    padding: 0 !important;
    cursor: pointer;
}

/* IMPLICATION: Hide event text, show only colored square */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-appointment .e-subject,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-appointment .e-time,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-appointment .e-location,
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-appointment-details {
    display: none !important;
}

/* IMPLICATION: Header date styling */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-header-cells .e-header-date {
    text-align: center !important;
    font-size: 10px !important;
}

/* IMPLICATION: Multiple events indicator */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-more-indicator {
    font-size: 9px !important;
    padding: 0 2px !important;
}

/* IMPLICATION: Content area scroll */
.annual-cycle-scheduler.e-schedule .e-timeline-year-view .e-content-wrap {
    overflow-x: auto !important;
}

/* ============================================================
   ANNUAL CYCLE AGENDA/LIST VIEW STYLING
   IMPLICATION: Fix date column clipping and improve event appearance
   Events styled with white background and colored left border for category
   ============================================================ */

/* IMPLICATION: Give date column adequate width to prevent clipping */
.annual-cycle-scheduler.e-schedule .e-agenda-view .e-date-column,
.e-schedule .e-agenda-view .e-date-column {
    min-width: 100px !important;
    width: 100px !important;
    padding: 12px !important;
}

/* IMPLICATION: Style events with white background and colored left border only */
.annual-cycle-scheduler.e-schedule .e-agenda-view .e-appointment,
.e-schedule .e-agenda-view .e-appointment {
    background-color: white !important;
    background: white !important;
    border-left-width: 4px !important;
    border-left-style: solid !important;
    border-radius: 4px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    margin: 4px 8px !important;
}

/* IMPLICATION: Make ALL event text dark for readability on white background */
.annual-cycle-scheduler.e-schedule .e-agenda-view .e-appointment,
.annual-cycle-scheduler.e-schedule .e-agenda-view .e-appointment *,
.e-schedule .e-agenda-view .e-appointment,
.e-schedule .e-agenda-view .e-appointment * {
    color: #212529 !important;
}

/* IMPLICATION: Ensure subject text doesn't clip unnecessarily */
.annual-cycle-scheduler.e-schedule .e-agenda-view .e-appointment .e-subject,
.e-schedule .e-agenda-view .e-appointment .e-subject {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}

/* IMPLICATION: Category colors applied to left border only in agenda view */
.e-schedule .e-agenda-view .event-members-board {
    border-left-color: #6f42c1 !important;
}
.e-schedule .e-agenda-view .event-trust-board {
    border-left-color: #0C5FE3 !important;
}
.e-schedule .e-agenda-view .event-hub-committee {
    border-left-color: #14b8a6 !important;
}
.e-schedule .e-agenda-view .event-education-committee {
    border-left-color: #10b981 !important;
}
.e-schedule .e-agenda-view .event-far-committee {
    border-left-color: #f59e0b !important;
}
.e-schedule .e-agenda-view .event-training {
    border-left-color: #ec4899 !important;
}
.e-schedule .e-agenda-view .event-visit {
    border-left-color: #6366f1 !important;
}
.e-schedule .e-agenda-view .event-report {
    border-left-color: #ef4444 !important;
}
.e-schedule .e-agenda-view .event-review {
    border-left-color: #06b6d4 !important;
}
.e-schedule .e-agenda-view .event-other {
    border-left-color: #6b7280 !important;
}

/* ============================================================
   ANNUAL CYCLE TOOLTIP STYLING
   IMPLICATION: Override Syncfusion dark tooltip to white background
   Tooltip is rendered outside .e-schedule as popup appended to body
   Must use global selectors without .e-schedule prefix
   ============================================================ */

/* IMPLICATION: Target tooltip wrapper globally - Syncfusion appends tooltip to body */
.e-tooltip-wrap,
.e-tooltip-wrap.e-popup {
    background-color: white !important;
    background: white !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

/* IMPLICATION: Target tooltip content area */
.e-tooltip-wrap .e-tip-content,
.e-tooltip-wrap.e-popup .e-tip-content {
    background-color: white !important;
    background: white !important;
    color: #212529 !important;
    padding: 0 !important;
}

/* IMPLICATION: Arrow tip styling - outer/inner borders */
.e-tooltip-wrap .e-arrow-tip-outer,
.e-tooltip-wrap .e-arrow-tip-inner {
    border-top-color: white !important;
    border-bottom-color: white !important;
    border-left-color: white !important;
    border-right-color: white !important;
    color: white !important;
}

/* IMPLICATION: Arrow tip outer border for specific directions */
.e-tooltip-wrap .e-arrow-tip-outer.e-tip-bottom {
    border-top-color: #dee2e6 !important;
}
.e-tooltip-wrap .e-arrow-tip-outer.e-tip-top {
    border-bottom-color: #dee2e6 !important;
}
.e-tooltip-wrap .e-arrow-tip-outer.e-tip-left {
    border-right-color: #dee2e6 !important;
}
.e-tooltip-wrap .e-arrow-tip-outer.e-tip-right {
    border-left-color: #dee2e6 !important;
}

/* IMPLICATION: Arrow tip inner fill color */
.e-tooltip-wrap .e-arrow-tip-inner.e-tip-bottom {
    border-top-color: white !important;
}
.e-tooltip-wrap .e-arrow-tip-inner.e-tip-top {
    border-bottom-color: white !important;
}
.e-tooltip-wrap .e-arrow-tip-inner.e-tip-left {
    border-right-color: white !important;
}
.e-tooltip-wrap .e-arrow-tip-inner.e-tip-right {
    border-left-color: white !important;
}

/* IMPLICATION: Custom tooltip content wrapper */
.event-tooltip-content {
    padding: 8px !important;
    background-color: white !important;
    background: white !important;
}

.event-tooltip-title {
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #212529 !important;
    margin-bottom: 8px !important;
    border-bottom: 1px solid #e9ecef !important;
    padding-bottom: 6px !important;
}

.event-tooltip-row {
    display: flex !important;
    gap: 8px !important;
    font-size: 12px !important;
    margin-bottom: 4px !important;
}

.event-tooltip-label {
    color: #6c757d !important;
    min-width: 60px !important;
}

.event-tooltip-value {
    color: #212529 !important;
    font-weight: 500 !important;
}

.event-tooltip-type {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.event-tooltip-type-indicator {
    width: 10px !important;
    height: 10px !important;
    border-radius: 2px !important;
}

/* IMPLICATION: Type indicator colors in tooltip */
.event-tooltip-type-indicator.event-members-board { background-color: #6f42c1 !important; }
.event-tooltip-type-indicator.event-trust-board { background-color: #0C5FE3 !important; }
.event-tooltip-type-indicator.event-hub-committee { background-color: #14b8a6 !important; }
.event-tooltip-type-indicator.event-education-committee { background-color: #10b981 !important; }
.event-tooltip-type-indicator.event-far-committee { background-color: #f59e0b !important; }
.event-tooltip-type-indicator.event-training { background-color: #ec4899 !important; }
.event-tooltip-type-indicator.event-visit { background-color: #6366f1 !important; }
.event-tooltip-type-indicator.event-report { background-color: #ef4444 !important; }
.event-tooltip-type-indicator.event-review { background-color: #06b6d4 !important; }
.event-tooltip-type-indicator.event-other { background-color: #6b7280 !important; }

.event-tooltip-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: #0C5FE3 !important;
    text-decoration: none !important;
    font-size: 11px !important;
    margin-top: 8px !important;
    padding: 4px 8px !important;
    background: #f0f6ff !important;
    border-radius: 4px !important;
}

.event-tooltip-link:hover {
    background: #e0edff !important;
}