/* ===================================
   THEME-SPECIFIC STYLES
   =================================== */

/* Theme Toggle Button Styles */
.theme-toggle-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    color: var(--color-text);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease, color 0.3s ease;
    width: 40px;
    height: 40px;
}

.theme-toggle-btn:hover {
    background-color: rgba(128, 128, 128, 0.1);
    color: var(--color-primary);
}

.theme-toggle-btn svg {
    width: 20px; 
    height: 20px;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.5s ease;
}

/* Default (Light Mode): Show Moon, Hide Sun */
.theme-toggle-btn .sun-icon {
    display: none;
    opacity: 0;
    transform: rotate(-90deg);
}

.theme-toggle-btn .moon-icon {
    display: block;
    opacity: 1;
    transform: rotate(0);
}

/* Dark Mode: Show Sun, Hide Moon */
body.theme-dark .theme-toggle-btn .sun-icon {
    display: block;
    opacity: 1;
    transform: rotate(0);
}

body.theme-dark .theme-toggle-btn .moon-icon {
    display: none;
    opacity: 0;
    transform: rotate(90deg);
}

/* Dark Theme - Subtle enhancements */
body.theme-dark .header {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

body.theme-dark .card {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

body.theme-dark .card:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
}

body.theme-dark .btn-primary {
    box-shadow: 0 2px 10px rgba(244, 196, 48, 0.2);
}

body.theme-dark .btn-primary:hover {
    box-shadow: 0 4px 15px rgba(244, 196, 48, 0.3);
}

/* Smooth transitions for all theme changes */
* {
    transition: background-color 0.5s ease-in-out,
        color 0.5s ease-in-out,
        border-color 0.5s ease-in-out,
        box-shadow 0.3s ease;
}

/* Preserve fast transitions for interactive elements */
button,
a,
input,
select,
textarea {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Dark Theme Fixes for Inputs and Tables */
body.theme-dark input,
body.theme-dark select,
body.theme-dark textarea,
body.theme-dark .form-input {
    background-color: var(--color-surface);
    color: var(--color-text);
    border-color: var(--color-border);
}

body.theme-dark input::placeholder {
    color: var(--color-text-muted);
    opacity: 0.7;
}

body.theme-dark table th,
body.theme-dark table td {
    border-color: var(--color-border);
    color: var(--color-text);
}

body.theme-dark table th {
    background-color: var(--color-bg);
}

/* Calculator Table Fixed for Dark Mode */
body.theme-dark #tblPct {
    background-color: var(--color-surface);
    color: var(--color-text);
}

body.theme-dark #tblPct th {
    background-color: var(--color-bg);
    color: var(--color-text);
    border-color: var(--color-border);
}

body.theme-dark #tblPct td {
    border-color: var(--color-border);
    color: var(--color-text);
}

/* Fix Summary Box Text in Dark Mode */
body.theme-dark #summary .box,
body.theme-dark #summary .sumline,
body.theme-dark #summary .sumline span {
    color: #ffffff !important;
}

/* Explicitly make input boxes white with black text as requested */
body.theme-dark #tblPct input {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #ccc !important;
    border-radius: 4px;
    padding: 2px 5px;
}

body.theme-dark #tblPct input:focus {
    background-color: #fff !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.5);
}

body.theme-dark .box {
    background-color: var(--color-surface);
    border-color: var(--color-border);
}