:root {
    /* Light Mode - Ultra Crisp */
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --text-primary: #111827;
    --text-secondary: #4b5563;
    --accent-primary: #2563eb;
    --accent-secondary: #4f46e5;
    --glass-bg: rgba(255, 255, 255, 0.9);
    --glass-border: rgba(0, 0, 0, 0.1);
    --card-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    --input-bg: #f3f4f6;
    --link-blue: #2563eb;
}

[data-theme='dark'] {
    /* Dark Mode - Deep Space */
    --bg-primary: #020617;
    --bg-secondary: #0f172a;
    --text-primary: #f9fafb !important;
    --text-secondary: #cbd5e1 !important;
    --accent-primary: #3b82f6;
    --accent-secondary: #6366f1;
    --glass-bg: rgba(15, 23, 42, 0.95);
    --glass-border: rgba(255, 255, 255, 0.15);
    --card-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
    --input-bg: #1e293b;
    --link-blue: #60a5fa !important;
}

/* Aggressive Global Overrides */
html,
body {
    background-color: var(--bg-primary) !important;
    background-image: none !important;
    color: var(--text-primary) !important;
    transition: background-color 0.4s ease, color 0.4s ease;
}

.authentication-wrapper,
.authentication-bg,
.authentication-inner,
.auth-cover-bg {
    background: transparent !important;
}

/* Modal Content - FIXED FOR DARK THEME */
.modal-content {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 1.5rem !important;
    box-shadow: var(--card-shadow) !important;
}

[data-theme='dark'] .modal-content {
    background-color: var(--bg-secondary) !important;
    /* Slightly lighter navy for modals */
}

/* Specific fix for text visibility */
body,
p,
span,
label,
input,
button,
div,
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text-primary);
}

[data-theme='dark'] label,
[data-theme='dark'] .form-label,
[data-theme='dark'] p,
[data-theme='dark'] span:not(.app-brand-text) {
    color: var(--text-secondary) !important;
}

[data-theme='dark'] h1,
[data-theme='dark'] h2,
[data-theme='dark'] h3,
[data-theme='dark'] .fw-bold,
[data-theme='dark'] .modal-title {
    color: #ffffff !important;
}

/* Link Styling - Blue as requested */
a,
a span,
.text-primary,
.btn-link {
    color: var(--link-blue) !important;
    text-decoration: none !important;
}

a:hover {
    text-decoration: underline !important;
}

/* Modal Specific Polish */
.modal-content {
    border: 1px solid var(--glass-border) !important;
    border-radius: 1.5rem !important;
    box-shadow: var(--card-shadow) !important;
}

.modal-header,
.modal-footer {
    border-color: var(--glass-border) !important;
    background-color: transparent !important;
}

.btn-close {
    filter: var(--theme-icon-filter);
}

[data-theme='dark'] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Input Fields - The Most Critical Part */
.form-control,
input[type="text"],
input[type="password"],
input[type="tel"],
input[type="email"],
select,
.input-group-text {
    background-color: var(--input-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--glass-border) !important;
    border-radius: 10px !important;
    padding: 0.75rem 1rem !important;
}

textarea.form-control {
    min-height: 100px;
    color: var(--text-primary) !important;
}

/* Fix for Select Dropdown Options */
select option {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* Fix for autocomplete/autofill background/text */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--text-primary) !important;
    -webkit-box-shadow: 0 0 0px 1000px var(--input-bg) inset !important;
}

.form-control::placeholder {
    color: var(--text-secondary) !important;
    opacity: 0.5;
}

/* Login Box Redesign */
.sign-in-from {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(25px) !important;
    -webkit-backdrop-filter: blur(25px) !important;
    border: 1px solid var(--glass-border) !important;
    padding: 3rem !important;
    border-radius: 2rem !important;
    box-shadow: var(--card-shadow) !important;
}

/* Button Refinement */
.btn-primary {
    background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary)) !important;
    border: none !important;
    border-radius: 14px !important;
    padding: 0.8rem 1.5rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
}

/* Theme Toggle Button */
#theme-toggle-btn {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 99999;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--accent-primary);
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
}

#theme-toggle-btn svg {
    width: 28px;
    height: 28px;
}

/* Curtain Effect */
.theme-transition-curtain {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99998;
    pointer-events: none;
    background: var(--accent-primary);
    clip-path: circle(0% at calc(100% - 3rem) calc(100% - 3rem));
    transition: clip-path 0.8s cubic-bezier(0.65, 0, 0.35, 1);
}

.theme-transition-active {
    clip-path: circle(150% at calc(100% - 3rem) calc(100% - 3rem));
}