:root {
    --primary-color: #3b82f6;
    --primary-hover: #2563eb;
    --secondary-color: #64748b;
    --secondary-hover: #475569;
    --success-color: #10b981;
    --success-hover: #059669;
    --danger-color: #ef4444;
    --danger-hover: #dc2626;
    --warning-color: #f59e0b;

    --bg-color: #0b1329;
    --card-bg: #1e293b;
    --surface-bg: #0f172a;

    --text-color: #f8fafc;
    --text-secondary: #cbd5e1;
    --text-muted: #94a3b8;

    --border-color: #334155;
    --border-hover: #475569;
    --shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.6);
}

/* Global Reset & Scroll Settings */
html, body {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    background-color: var(--bg-color) !important;
    color: var(--text-color) !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

body {
    background: radial-gradient(circle at 85% 0%, rgba(59, 130, 246, 0.15), transparent 40%),
                radial-gradient(circle at 15% 90%, rgba(99, 102, 241, 0.1), transparent 35%),
                #0b1329 !important;
    color: var(--text-color) !important;
}

.app-wrapper {
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: visible;
    background: transparent !important;
}

/* Top Bar */
.top-bar {
    border-color: var(--border-color) !important;
    background: rgba(15, 23, 42, 0.94) !important;
    backdrop-filter: blur(16px);
    color: var(--text-color) !important;
}

.top-bar .btn-home {
    background: rgba(56, 189, 248, 0.12) !important;
    color: #38bdf8 !important;
    border: 1px solid #0284c7 !important;
}

.top-bar .btn-home:hover {
    background: rgba(56, 189, 248, 0.25) !important;
    color: #ffffff !important;
}

.top-bar input, .top-bar select, .page-number-input {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
    background: var(--surface-bg) !important;
}

/* Upload & Viewer Section */
.upload-area, .viewer-section {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
    background: var(--card-bg) !important;
    box-shadow: var(--shadow) !important;
}

.upload-area:hover {
    border-color: var(--primary-color) !important;
    background: #1e293b !important;
}

.canvas-container {
    background: var(--surface-bg) !important;
    border: 1px solid var(--border-color) !important;
}

.viewer-section.is-fullscreen {
    background: #0b1329 !important;
}

/* Gallery Section & Headers */
.gallery-section {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
    background: var(--card-bg) !important;
    box-shadow: var(--shadow) !important;
    border-radius: 12px !important;
    padding: 20px !important;
    margin-top: 20px !important;
}

.gallery-section h2, .upload-area h3, .viewer-section h2, .viewer-section h3 {
    color: var(--text-color) !important;
}

/* Inline Download Options Bar */
.download-inline-bar {
    background: var(--surface-bg) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    border-radius: 10px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
}

.download-inline-label {
    color: var(--text-color) !important;
    font-weight: 600 !important;
}

/* Format Options Radio Buttons */
.format-option .format-label {
    background: var(--card-bg) !important;
    color: var(--text-secondary) !important;
    border: 1px solid var(--border-color) !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    padding: 10px 18px !important;
    transition: all 0.2s ease !important;
}

.format-option input[type="radio"]:checked + .format-label {
    background: #2563eb !important;
    color: #ffffff !important;
    border-color: #3b82f6 !important;
    font-weight: 700 !important;
    box-shadow: 0 0 12px rgba(37, 99, 235, 0.4) !important;
}

.format-option:hover .format-label {
    border-color: #3b82f6 !important;
    color: #ffffff !important;
}

/* Test Metadata Bar & Inputs */
.test-metadata-bar {
    background: var(--surface-bg) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    border-radius: 10px !important;
    padding: 16px !important;
    margin-bottom: 16px !important;
}

.test-metadata-field label {
    color: var(--text-secondary) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
}

.test-metadata-field input {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-size: 0.95rem !important;
}

.test-metadata-field input:focus {
    border-color: var(--primary-color) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2) !important;
}

.test-metadata-field input::placeholder {
    color: var(--text-muted) !important;
}

.test-metadata-preview {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
}

.test-metadata-preview span {
    color: var(--text-muted) !important;
    font-weight: 600 !important;
}

.test-metadata-preview strong {
    color: #38bdf8 !important;
    font-weight: 700 !important;
}

/* Section Toolbars & Accordions */
.section-toolbar {
    color: var(--text-color) !important;
}

.section-toolbar label {
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
}

#activeSectionSelect {
    background: var(--surface-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    padding: 8px 12px !important;
    border-radius: 8px !important;
}

.section-accordion-item {
    background: var(--surface-bg) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
    margin-bottom: 12px !important;
}

.section-accordion-header {
    background: var(--card-bg) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    padding: 12px 16px !important;
}

.section-name-input {
    background: var(--surface-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 6px !important;
    padding: 6px 10px !important;
}

.section-accordion-body {
    background: var(--surface-bg) !important;
    padding: 16px !important;
}

/* General Buttons */
.btn {
    border-radius: 8px !important;
    font-weight: 600 !important;
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    font-family: 'Inter', sans-serif !important;
}

.btn-primary {
    color: #ffffff !important;
    background: #2563eb !important;
    border: 1px solid #3b82f6 !important;
}

.btn-primary:hover:not(:disabled) {
    background: #1d4ed8 !important;
    border-color: #2563eb !important;
}

.btn-success {
    color: #ffffff !important;
    background: #059669 !important;
    border: 1px solid #10b981 !important;
}

.btn-success:hover:not(:disabled) {
    background: #047857 !important;
    border-color: #059669 !important;
}

.btn-secondary {
    color: var(--text-color) !important;
    background: #334155 !important;
    border: 1px solid #475569 !important;
}

.btn-secondary:hover:not(:disabled) {
    background: #475569 !important;
    color: #ffffff !important;
}

.btn-danger {
    color: #ffffff !important;
    background: #dc2626 !important;
    border: 1px solid #ef4444 !important;
}

.btn-danger:hover:not(:disabled) {
    background: #b91c1c !important;
}

.btn-icon, .btn-icon-sm, .btn-icon-xs, .section-toggle-btn {
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    background: #1e293b !important;
}

.btn-icon:hover, .btn-icon-sm:hover, .btn-icon-xs:hover {
    background: #334155 !important;
    color: #ffffff !important;
}

/* Disabled Button Styles */
.btn:disabled, button:disabled, .btn[disabled] {
    background: #1e293b !important;
    color: #64748b !important;
    border-color: #334155 !important;
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Image Cards (Cropped Items) */
.image-card {
    background: var(--surface-bg) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 10px !important;
    color: var(--text-color) !important;
    padding: 12px !important;
    transition: all 0.2s ease !important;
}

.image-card:hover {
    border-color: #38bdf8 !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-lg) !important;
}

.image-card.selected {
    background: #1e3a8a !important;
    border: 2px solid #3b82f6 !important;
}

.image-card.merged {
    background: #064e3b !important;
    border: 2px solid #10b981 !important;
}

.image-card .card-header {
    color: var(--text-color) !important;
    border-bottom: 1px solid var(--border-color) !important;
    padding-bottom: 8px !important;
    margin-bottom: 8px !important;
}

.image-card .card-number {
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
}

.page-number-badge {
    background: #2563eb !important;
    color: #ffffff !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
}

.image-card .image-preview {
    background: #ffffff !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 6px !important;
}

.image-card .image-info {
    color: var(--text-muted) !important;
    font-size: 0.85rem !important;
}

.image-card .card-actions {
    border-top: 1px solid var(--border-color) !important;
    padding-top: 8px !important;
    margin-top: 8px !important;
}

.image-card .card-actions button {
    color: var(--text-secondary) !important;
}

.image-card .card-actions button:hover {
    color: #ffffff !important;
}

/* Modals, Popups & Overlays */
.modal-overlay {
    background: rgba(11, 19, 41, 0.85) !important;
    backdrop-filter: blur(8px) !important;
}

.modal-content, .preview-modal-content {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    border-radius: 16px !important;
    box-shadow: var(--shadow-lg) !important;
}

.modal-header {
    background: var(--card-bg) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-color) !important;
    padding: 20px 24px !important;
}

.modal-header h3 {
    color: #38bdf8 !important;
    font-weight: 700 !important;
}

.modal-body {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
    padding: 24px !important;
}

.modal-body label {
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
    margin-bottom: 6px !important;
    display: block !important;
}

.modal-body input, .modal-body select, .modal-body textarea, .form-input {
    background: var(--surface-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid #475569 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-size: 0.95rem !important;
    width: 100% !important;
}

.modal-body input:focus, .modal-body select:focus, .modal-body textarea:focus, .form-input:focus {
    border-color: var(--primary-color) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.25) !important;
}

.modal-footer {
    background: var(--card-bg) !important;
    border-top: 1px solid var(--border-color) !important;
    padding: 16px 24px !important;
}

.modal-close {
    color: var(--text-muted) !important;
    background: transparent !important;
    border: none !important;
}

.modal-close:hover {
    color: var(--danger-color) !important;
    background: #334155 !important;
}

/* Toast Notifications */
.toast {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: var(--shadow-lg) !important;
    border-radius: 10px !important;
    font-weight: 500 !important;
}

.toast-success {
    border-left: 4px solid #10b981 !important;
}

.toast-error {
    border-left: 4px solid #ef4444 !important;
}

.toast-info {
    border-left: 4px solid #38bdf8 !important;
}

/* Loading Overlay */
.loading-overlay {
    background: rgba(11, 19, 41, 0.88) !important;
    color: var(--text-color) !important;
}

.loading-overlay p {
    color: var(--text-color) !important;
    font-weight: 600 !important;
}
