:root {
    --bs-primary: #1a4d2e;
    --bs-primary-rgb: 26, 77, 46;
    --bs-secondary: #4a5568;
    --bs-secondary-rgb: 74, 85, 104;
    --bs-success: #2f855a;
    --bs-info: #2c5282;
    --bs-warning: #d69e2e;
    --bs-danger: #c53030;
    --bs-light: #f7fafc;
    --bs-dark: #1a202c;
}

html {
    background-color: #f8f9fa;
    margin: 0;
    padding: 0;
    height: 100%;
}

body {
    font-family: 'Times New Roman', Times, serif;
    background-color: #f8f9fa;
    margin: 0;
    padding: 0;
    min-height: 100%;
}

/* Unicode font support for international characters */
.form-select,
.form-select option,
.form-control,
input,
select,
textarea {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, 
                 "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji",
                 "Noto Sans Arabic", "Noto Sans CJK SC", "Noto Sans CJK TC", "Noto Sans Devanagari", "Noto Sans Thai";
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #c53030 !important;
    background-color: rgba(197, 48, 48, 0.1);
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    display: inline-block;
    margin-top: 0.25rem;
}

/* Override Bootstrap's text-danger class - use dark red on light backgrounds, light on dark */
.text-danger {
    color: #c53030 !important;
}

/* For dark backgrounds specifically (like auth pages), override with light color */
.auth-page .text-danger,
.auth-card .text-danger,
.landing-page .text-danger,
.navbar .text-danger,
.dropdown-menu .text-danger {
    color: #ffb3b3 !important;
}

/* Validation messages on auth pages - light text for dark green backgrounds */
.auth-page .validation-message,
.auth-page .field-validation-error,
.auth-card .validation-message,
.auth-card .field-validation-error {
    color: #ffb3b3 !important;
    background-color: rgba(255, 179, 179, 0.1);
}

/* Validation summary on auth pages */
.auth-page .validation-summary-errors,
.auth-card .validation-summary-errors {
    background-color: rgba(255, 179, 179, 0.1) !important;
    border-color: rgba(255, 179, 179, 0.3) !important;
    color: #ffb3b3 !important;
}

.auth-page .validation-summary-errors li,
.auth-card .validation-summary-errors li {
    color: #ffb3b3 !important;
}

/* Alert danger styling - dark red for light backgrounds */
.alert-danger {
    background-color: #f8d7da !important;
    border-color: #f5c2c7 !important;
    color: #842029 !important;
}

/* Validation summary styling - dark red on light backgrounds */
.validation-summary-errors,
.validation-errors {
    color: #842029 !important;
    background-color: #f8d7da;
    padding: 1rem;
    border-radius: 0.375rem;
    border: 1px solid #f5c2c7;
}

.validation-summary-errors ul,
.validation-errors ul {
    margin-bottom: 0;
    padding-left: 1.5rem;
}

.validation-summary-errors li,
.validation-errors li {
    color: #842029 !important;
}

/* Override field validation messages that appear below inputs - dark red for light backgrounds */
.field-validation-error {
    color: #c53030 !important;
    background-color: rgba(197, 48, 48, 0.1);
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
}

/* For StatusMessage component on white backgrounds */
.alert .text-danger {
    color: #842029 !important;
}

/* Logout dropdown item styling - light pink on dark menu */
.dropdown-menu .dropdown-item.text-danger {
    color: #ffb3b3 !important;
    background-color: transparent;
}

.dropdown-menu .dropdown-item.text-danger:hover,
.dropdown-menu .dropdown-item.text-danger:focus {
    background-color: rgba(197, 48, 48, 0.2) !important;
    color: #ffffff !important;
}

.dropdown-menu .dropdown-item.text-danger i {
    color: #ffb3b3 !important;
}

.dropdown-menu .dropdown-item.text-danger:hover i,
.dropdown-menu .dropdown-item.text-danger:focus i {
    color: #ffffff !important;
}

/* Account Management Settings Sidebar - Replace blue with green theme */
/* Override the active/selected state for list-group items */
.list-group-item.active {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #ffffff !important;
}

.list-group-item.active:hover,
.list-group-item.active:focus {
    background-color: #153d24 !important;
    border-color: #153d24 !important;
}

/* Override any blue links in the sidebar */
.list-group-item a,
.list-group-item-action {
    color: inherit;
}

.list-group-item-action:hover,
.list-group-item-action:focus {
    background-color: rgba(26, 77, 46, 0.1) !important;
    color: var(--bs-primary) !important;
}

/* Ensure text remains visible when active */
.list-group-item.active .fas,
.list-group-item.active .fa {
    color: #ffffff !important;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0"idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA9NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIyMzYuMDg5IDkzLjgwNzJMMjM2LjMzOCA5My4wMTYyIDIzNi44NTggOTIuMTMxNCAyNTkuNDczIDUzLjYyOTQgMjU5Ljk2MSA1Mi43OTg1IDI2MC40MDcgNTIuMjY1OEMyNjEuMiA1MS40ODM3IDI2Mi4yOTYgNTEgMjYzLjUwNiA1MVpNMjYzLjU4NiA2Ni4wMTgzQzI2MC43MzcgNjYuMDE4MyAyNTkuMzEzIDY3LjEyNDUgMjU5LjMxMyA2OS4zMzcgMjU5LjMxMyA2OS42MTAyIDI1OS4zMzIgNjkuODYwOCAyNTkuMzcxIDcwLjA4ODdMMjYxLjc5NSA4NC4wMTYxIDI2NS4zOCA4NC4wMTYxIDI2Ny44MjEgNjkuNzQ3NUMyNjcuODYgNjkuNzMwOSAyNjcuODc5IDY5LjU4NzcgMjY3Ljg3OSA2OS4zMTc5IDI2Ny44NzkgNjcuMTE4MiAyNjYuNDQ4IDY2LjAxODMgMjYzLjU4NiA2Ni4wMTgzWk0yNjMuNTc2IDg2LjA1NDdDMjYxLjA0OSA4Ni4wNTQ3IDI1OS43ODYgODcuMzAwNSAyNTkuNzg2IDg5Ljc5MjEgMjU5Ljc4NiA5Mi4yODM3IDI2MS4wNDkgOTMuNTI5NSAyNjMuNTc2IDkzLjUyOTUgMjY2LjExNiA5My41Mjk1IDI2Ny4zODcgOTIuMjgzNyAyNjcuMzg3IDg5Ljc5MjEgMjY3LjM4RyA4Ny4zMDA1IDI2Ni4xMTYgODYuMDU0NyAyNjMuNTc2IDg2LjA1NDdaIiBmaWxsPSIjRkZFNTAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Legal-themed overrides */
.bg-primary {
    background-color: var(--bs-primary) !important;
}

.text-primary {
    color: var(--bs-primary) !important;
}

.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.btn-primary:hover {
    background-color: #153d24;
    border-color: #153d24;
}

.navbar-brand {
    font-weight: 600;
    letter-spacing: 0.5px;
}

/* Dropdown menu theming */
.dropdown-menu {
    background-color: #1a4d2e;
    border: 1px solid #153d24;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    border-radius: 0.25rem;
}

.dropdown-item {
    color: rgba(255, 255, 255, 0.95);
    transition: all 0.2s ease;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: #153d24 !important;
    color: #ffffff !important;
}

.dropdown-item:active {
    background-color: #0f2b1a !important;
    color: #ffffff !important;
}

.dropdown-item.active {
    background-color: transparent;
    color: rgba(255, 255, 255, 0.95);
}

.dropdown-item i {
    width: 1.25rem;
    text-align: center;
    margin-right: 0.5rem;
    color: rgba(255, 255, 255, 0.95);
}

.dropdown-item:hover i,
.dropdown-item:focus i {
    color: #ffffff;
}

.dropdown-divider {
    border-top-color: rgba(255, 255, 255, 0.2);
}

/* Nested dropdown styling */
.dropend .dropdown-toggle::after {
    margin-left: auto;
    float: right;
    margin-top: 0.3rem;
}

.dropend .dropdown-menu {
    left: 100%;
    top: 0;
    margin-left: 0.125rem;
}

/* Footer link styling */
footer a {
    transition: all 0.2s ease;
}

footer a:hover {
    opacity: 0.8;
    text-decoration: underline !important;
}

footer a i {
    margin-right: 0.25rem;
}

/* Scroll to top button */
.scroll-to-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background-color: var(--bs-primary);
    color: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    font-size: 20px;
}

.scroll-to-top-btn:hover {
    background-color: #153d24;
    transform: translateY(-5px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.scroll-to-top-btn:active {
    transform: translateY(-2px);
}

.scroll-to-top-btn i {
    margin: 0;
}

/* Account Settings Menu - Override Bootstrap nav-pills active state */
.nav-pills .nav-link.active {
    background-color: #1a4d2e !important;
    color: white !important;
}

.nav-pills .nav-link.active:hover {
    background-color: #153d24 !important;
}

/* Dropdown header username styling */
.dropdown-header {
    color: rgba(255, 255, 255, 0.95) !important;
}

/* Override nav-link default colors ONLY in manage menu */
.manage-nav-list .nav-link {
    color: #1a4d2e !important;
}

.manage-nav-list .nav-link i {
    color: #1a4d2e !important;
}

.manage-nav-list .nav-link:hover {
    color: #1a4d2e !important;
}

.manage-nav-list .nav-link:hover i {
    color: #1a4d2e !important;
}

/* Keep active items white on hover */
.manage-nav-list .nav-link.active:hover {
    color: #ffffff !important;
}

.manage-nav-list .nav-link.active:hover i {
    color: #ffffff !important;
}

/* SVG Document Node Hover Styles */
.document-node {
    cursor: pointer;
}

.document-node .node-normal {
    display: block;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.document-node .node-hover {
    display: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.document-node:hover .node-normal {
    display: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.document-node:hover .node-hover {
    display: block;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

/* Thinking Indicator Wave Animation - GitHub Copilot Style */
@keyframes thinking-wave {
    0%, 60%, 100% {
        transform: translateY(0);
        opacity: 0.4;
    }
    30% {
        transform: translateY(-0.35rem);
        opacity: 1;
    }
}

.spinner-grow-sm {
    width: 0.35rem !important;
    height: 0.35rem !important;
    animation: thinking-wave 1.8s ease-in-out infinite !important;
    border-radius: 50%;
    display: inline-block;
    margin: 0 0.1rem;
    background-color: #1a4d2e !important;
}

/* Wave delay for each dot to create cascading effect */
.spinner-grow-sm:nth-child(1) {
    animation-delay: 0s !important;
}

.spinner-grow-sm:nth-child(2) {
    animation-delay: 0.2s !important;
}

.spinner-grow-sm:nth-child(3) {
    animation-delay: 0.4s !important;
}


