/* Compress Tool Cache-Proof Styles */
                        .compress-card-container {
                            font-family: 'Noto Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
                            max-width: 650px;
                            margin: 0 auto;
                            display: flex;
                            flex-direction: column;
                            gap: 1.25rem;
                        }

                        .compress-file-card {
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 16px;
                            padding: 1.25rem 1.5rem;
                            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            transition: all 0.2s ease;
                        }

                        .compress-file-info {
                            display: flex;
                            align-items: center;
                            gap: 1rem;
                            width: 100%;
                        }

                        .compress-file-icon {
                            width: 46px;
                            height: 46px;
                            background: rgba(37, 99, 235, 0.08);
                            border-radius: 12px;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            color: #2563eb;
                            flex-shrink: 0;
                        }

                        .compress-file-meta {
                            flex: 1;
                            min-width: 0;
                        }

                        .compress-file-name {
                            font-weight: 700;
                            font-size: 1rem;
                            color: #1e293b;
                            white-space: nowrap;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }

                        .compress-file-size {
                            font-size: 0.85rem;
                            color: #64748b;
                            margin-top: 2px;
                            font-weight: 500;
                        }

                        .compress-file-badge {
                            background: rgba(16, 185, 129, 0.1);
                            color: #059669;
                            font-size: 0.75rem;
                            font-weight: 700;
                            padding: 0.35rem 0.8rem;
                            border-radius: 20px;
                            letter-spacing: 0.03em;
                            text-transform: uppercase;
                            flex-shrink: 0;
                        }

                        /* Target section */
                        .compress-target-section {
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 20px;
                            padding: 1.75rem;
                            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
                        }

                        .compress-section-header {
                            display: flex;
                            align-items: center;
                            gap: 0.6rem;
                            margin-bottom: 1.5rem;
                            color: #64748b;
                        }

                        .compress-section-header h3 {
                            font-size: 1.05rem;
                            font-weight: 700;
                            color: #1e293b;
                            margin: 0;
                        }

                        /* Size display row */
                        .compress-size-display {
                            display: flex;
                            align-items: center;
                            gap: 1.5rem;
                            margin-bottom: 1.75rem;
                            padding: 1.25rem;
                            background: #f8fafc;
                            border-radius: 14px;
                            border: 1px solid #e2e8f0;
                        }

                        .compress-size-item {
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            gap: 0.35rem;
                            flex: 1;
                        }

                        .compress-size-label {
                            font-size: 0.7rem;
                            font-weight: 700;
                            letter-spacing: 0.08em;
                            text-transform: uppercase;
                            color: #64748b;
                        }

                        .compress-size-value {
                            font-size: 1.45rem;
                            font-weight: 800;
                            color: #1e293b;
                            font-variant-numeric: tabular-nums;
                        }

                        .compress-size-target .compress-size-value {
                            color: #2563eb;
                        }

                        .compress-size-arrow {
                            color: #94a3b8;
                            flex-shrink: 0;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }

                        /* Range slider */
                        .compress-slider-wrapper {
                            margin-bottom: 1.25rem;
                        }

                        .compress-range-input {
                            -webkit-appearance: none;
                            appearance: none;
                            width: 100%;
                            height: 7px;
                            border-radius: 4px;
                            background: #e2e8f0;
                            background-image: linear-gradient(to right, #2563eb, #3b82f6);
                            background-repeat: no-repeat;
                            background-size: var(--slider-pct, 50%) 100%;
                            outline: none;
                            cursor: pointer;
                        }

                        .compress-range-input::-webkit-slider-thumb {
                            -webkit-appearance: none;
                            appearance: none;
                            width: 24px;
                            height: 24px;
                            border-radius: 50%;
                            background: #ffffff;
                            border: 3.5px solid #2563eb;
                            box-shadow: 0 3px 10px rgba(37, 99, 235, 0.3);
                            cursor: grab;
                            transition: transform 0.1s ease, box-shadow 0.1s ease;
                        }

                        .compress-range-input::-webkit-slider-thumb:active {
                            cursor: grabbing;
                            transform: scale(1.15);
                            box-shadow: 0 4px 15px rgba(37, 99, 235, 0.45);
                        }

                        .compress-range-input::-moz-range-thumb {
                            width: 18px;
                            height: 18px;
                            border-radius: 50%;
                            background: #ffffff;
                            border: 3.5px solid #2563eb;
                            box-shadow: 0 3px 10px rgba(37, 99, 235, 0.3);
                            cursor: grab;
                        }

                        .compress-slider-labels {
                            display: flex;
                            justify-content: space-between;
                            margin-top: 0.5rem;
                            font-size: 0.8rem;
                            font-weight: 600;
                            color: #64748b;
                        }

                        /* Estimation badge */
                        .compress-estimation-badge {
                            display: flex;
                            align-items: center;
                            gap: 0.6rem;
                            padding: 0.75rem 1.25rem;
                            border-radius: 10px;
                            font-size: 0.88rem;
                            font-weight: 600;
                            margin-bottom: 1.5rem;
                            transition: all 0.2s ease;
                        }

                        .compress-est-icon {
                            font-size: 1rem;
                        }

                        .compress-estimation-badge.badge-neutral {
                            background: #f1f5f9;
                            color: #475569;
                        }

                        .compress-estimation-badge.badge-light {
                            background: rgba(59, 130, 246, 0.08);
                            color: #2563eb;
                        }

                        .compress-estimation-badge.badge-balanced {
                            background: rgba(16, 185, 129, 0.08);
                            color: #059669;
                        }

                        .compress-estimation-badge.badge-aggressive {
                            background: rgba(245, 158, 11, 0.08);
                            color: #d97706;
                        }

                        /* Presets */
                        .compress-presets {
                            display: flex;
                            align-items: center;
                            gap: 0.75rem;
                            flex-wrap: wrap;
                            margin-bottom: 1.75rem;
                        }

                        .compress-presets-label {
                            font-size: 0.8rem;
                            font-weight: 700;
                            color: #64748b;
                            text-transform: uppercase;
                            letter-spacing: 0.05em;
                        }

                        .compress-preset-btn {
                            padding: 0.45rem 1.1rem;
                            border-radius: 20px;
                            font-size: 0.85rem;
                            font-weight: 600;
                            border: 1.5px solid #e2e8f0;
                            background: #ffffff;
                            color: #475569;
                            cursor: pointer;
                            transition: all 0.15s ease;
                        }

                        .compress-preset-btn:hover {
                            border-color: #2563eb;
                            color: #2563eb;
                            background: rgba(37, 99, 235, 0.04);
                        }

                        .compress-preset-btn.active {
                            border-color: #2563eb;
                            background: rgba(37, 99, 235, 0.08);
                            color: #2563eb;
                        }

                        /* Compress PDF primary button */
                        .compress-preview-btn {
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            gap: 0.75rem;
                            width: 100%;
                            padding: 1rem 1.5rem;
                            background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
                            color: #ffffff;
                            border: none;
                            border-radius: 12px;
                            font-size: 1rem;
                            font-weight: 700;
                            cursor: pointer;
                            box-shadow: 0 4px 14px rgba(37, 99, 235, 0.25);
                            transition: all 0.2s ease;
                        }

                        .compress-preview-btn:hover {
                            opacity: 0.95;
                            transform: translateY(-1px);
                            box-shadow: 0 6px 20px rgba(37, 99, 235, 0.35);
                        }

                        .compress-preview-btn:active {
                            transform: translateY(0);
                        }

                        /* Inline loading section */
                        .compress-loading-section {
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 20px;
                            padding: 2.25rem 2rem;
                            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
                            animation: compressFadeIn 0.3s ease-out;
                        }

                        .compress-loading-card {
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            text-align: center;
                        }

                        .compress-loading-header {
                            display: flex;
                            align-items: center;
                            gap: 0.75rem;
                            margin-bottom: 0.75rem;
                        }

                        .compress-loading-header h3 {
                            font-size: 1.25rem;
                            font-weight: 800;
                            color: #1e293b;
                            margin: 0;
                        }

                        .compress-loading-spinner {
                            width: 24px;
                            height: 24px;
                            border: 3px solid rgba(37, 99, 235, 0.15);
                            border-top-color: #2563eb;
                            border-radius: 50%;
                            animation: compressSpin 0.8s linear infinite;
                            display: inline-block;
                        }

                        @keyframes compressSpin {
                            to {
                                transform: rotate(360deg);
                            }
                        }

                        .compress-loading-status {
                            font-size: 0.9rem;
                            color: #64748b;
                            margin-bottom: 2rem;
                            font-weight: 500;
                        }

                        .compress-progress-container {
                            width: 100%;
                            max-width: 450px;
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            gap: 0.6rem;
                        }

                        .compress-progress-track {
                            width: 100%;
                            height: 10px;
                            background: #e2e8f0;
                            border-radius: 6px;
                            overflow: hidden;
                        }

                        .compress-progress-fill {
                            height: 100%;
                            background: linear-gradient(90deg, #1e3a8a 0%, #2563eb 100%);
                            border-radius: 6px;
                            width: 0%;
                            transition: width 0.1s ease-out;
                        }

                        .compress-progress-text {
                            font-size: 0.9rem;
                            font-weight: 800;
                            color: #1e293b;
                        }

                        /* Results Section */
                        .compress-results-section {
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 20px;
                            overflow: hidden;
                            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
                            animation: compressFadeIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
                        }

                        .compress-success-banner {
                            display: flex;
                            flex-direction: column;
                            align-items: center;
                            text-align: center;
                            padding: 2.25rem 1.5rem 1.5rem 1.5rem;
                        }

                        .success-icon-wrapper {
                            width: 60px;
                            height: 60px;
                            background: rgba(16, 185, 129, 0.1);
                            color: #10b981;
                            border-radius: 50%;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            margin-bottom: 1.25rem;
                            box-shadow: 0 0 0 5px rgba(16, 185, 129, 0.04);
                        }

                        .compress-success-banner h3 {
                            font-size: 1.35rem;
                            font-weight: 800;
                            color: #1e293b;
                            margin-bottom: 0.5rem;
                        }

                        .compress-success-banner p {
                            font-size: 0.9rem;
                            color: #64748b;
                            font-weight: 500;
                        }

                        .compress-result-stats {
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            gap: 0.5rem;
                            padding: 1.25rem 1.75rem;
                            background: #f8fafc;
                            border-top: 1px solid #e2e8f0;
                            flex-wrap: wrap;
                        }

                        .compress-stat-card {
                            display: flex;
                            align-items: center;
                            gap: 0.75rem;
                            flex: 1;
                            min-width: 120px;
                        }

                        .compress-stat-icon {
                            width: 40px;
                            height: 40px;
                            border-radius: 10px;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            font-size: 1.2rem;
                        }

                        .compress-stat-info {
                            display: flex;
                            flex-direction: column;
                            gap: 2px;
                        }

                        .compress-stat-label {
                            font-size: 0.72rem;
                            font-weight: 700;
                            color: #64748b;
                            text-transform: uppercase;
                            letter-spacing: 0.05em;
                        }

                        .compress-stat-value {
                            font-size: 1rem;
                            font-weight: 800;
                            color: #1e293b;
                        }

                        .compress-stat-savings .compress-stat-value {
                            color: #059669;
                        }

                        .compress-stat-divider {
                            color: #cbd5e1;
                            font-size: 1.5rem;
                            font-weight: 300;
                        }

                        .compress-action-row {
                            display: flex;
                            gap: 0.75rem;
                            padding: 1.25rem 1.75rem;
                            border-top: 1px solid #e2e8f0;
                        }

                        .compress-download-btn {
                            flex: 2;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            gap: 0.6rem;
                            padding: 0.85rem 1.5rem;
                            background: linear-gradient(135deg, #059669 0%, #10b981 100%);
                            color: #ffffff;
                            border: none;
                            border-radius: 12px;
                            font-size: 0.95rem;
                            font-weight: 700;
                            cursor: pointer;
                            box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2);
                            transition: all 0.2s ease;
                        }

                        .compress-download-btn:hover {
                            opacity: 0.95;
                            transform: translateY(-1px);
                            box-shadow: 0 6px 16px rgba(16, 185, 129, 0.3);
                        }

                        .compress-retry-btn {
                            flex: 1;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            gap: 0.5rem;
                            padding: 0.85rem 1.5rem;
                            border: 1.5px solid #cbd5e1;
                            background: #ffffff;
                            color: #475569;
                            border-radius: 12px;
                            font-size: 0.95rem;
                            font-weight: 700;
                            cursor: pointer;
                            transition: all 0.2s ease;
                        }

                        .compress-retry-btn:hover {
                            border-color: #2563eb;
                            color: #2563eb;
                            background: rgba(37, 99, 235, 0.04);
                        }

                        /* Mode Toggle */
                        .compress-mode-toggle {
                            display: flex;
                            gap: 0.5rem;
                            max-width: 650px;
                            margin: 0 auto 1.25rem auto;
                            background: #f1f5f9;
                            border-radius: 12px;
                            padding: 0.35rem;
                        }

                        .compress-mode-btn {
                            flex: 1;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            gap: 0.5rem;
                            padding: 0.65rem 1rem;
                            border: none;
                            border-radius: 9px;
                            background: transparent;
                            color: #64748b;
                            font-size: 0.9rem;
                            font-weight: 700;
                            cursor: pointer;
                            transition: all 0.15s ease;
                        }

                        .compress-mode-btn:hover {
                            color: #2563eb;
                        }

                        .compress-mode-btn.active {
                            background: #ffffff;
                            color: #2563eb;
                            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
                        }

                        /* Batch Container */
                        .compress-batch-container {
                            font-family: 'Noto Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
                            max-width: 900px;
                            margin: 0 auto;
                            display: flex;
                            flex-direction: column;
                            gap: 1.25rem;
                        }

                        .batch-toolbar {
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            flex-wrap: wrap;
                            gap: 0.75rem;
                        }

                        .batch-add-more-btn {
                            display: flex;
                            align-items: center;
                            gap: 0.4rem;
                            padding: 0.6rem 1.1rem;
                            border: 1.5px dashed #cbd5e1;
                            background: #ffffff;
                            color: #2563eb;
                            border-radius: 10px;
                            font-size: 0.85rem;
                            font-weight: 700;
                            cursor: pointer;
                            transition: all 0.15s ease;
                        }

                        .batch-add-more-btn:hover {
                            border-color: #2563eb;
                            background: rgba(37, 99, 235, 0.04);
                        }

                        /* Batch Summary Stats Bar */
                        .batch-stats-bar {
                            display: flex;
                            align-items: center;
                            gap: 1.25rem;
                            flex-wrap: wrap;
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 16px;
                            padding: 1.1rem 1.5rem;
                            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
                        }

                        .batch-stat-block {
                            display: flex;
                            flex-direction: column;
                            gap: 2px;
                        }

                        .batch-stat-block .compress-stat-label {
                            font-size: 0.7rem;
                            font-weight: 700;
                            color: #64748b;
                            text-transform: uppercase;
                            letter-spacing: 0.05em;
                        }

                        .batch-stat-block .compress-stat-value {
                            font-size: 1.1rem;
                            font-weight: 800;
                            color: #1e293b;
                        }

                        .batch-stats-actions {
                            display: flex;
                            gap: 0.6rem;
                            margin-left: auto;
                        }

                        .batch-stats-actions button {
                            padding: 0.65rem 1.15rem;
                            border-radius: 10px;
                            font-size: 0.85rem;
                            font-weight: 700;
                            cursor: pointer;
                            border: none;
                        }

                        #btn-batch-download-zip {
                            background: linear-gradient(135deg, #059669 0%, #10b981 100%);
                            color: #fff;
                        }

                        #btn-batch-download-zip:disabled {
                            opacity: 0.5;
                            cursor: not-allowed;
                        }

                        #btn-batch-clear {
                            background: #fff;
                            border: 1.5px solid #cbd5e1 !important;
                            color: #475569;
                        }

                        /* Batch File Grid */
                        .batch-file-grid {
                            display: grid;
                            grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
                            gap: 1rem;
                        }

                        .batch-file-card {
                            background: #ffffff;
                            border: 1px solid #e2e8f0;
                            border-radius: 14px;
                            padding: 1rem 1.1rem;
                            display: flex;
                            flex-direction: column;
                            gap: 0.6rem;
                            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
                        }

                        .batch-card-top {
                            display: flex;
                            align-items: flex-start;
                            gap: 0.7rem;
                        }

                        .batch-card-icon {
                            width: 38px;
                            height: 38px;
                            background: rgba(37, 99, 235, 0.08);
                            border-radius: 10px;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            color: #2563eb;
                            flex-shrink: 0;
                        }

                        .batch-card-meta {
                            flex: 1;
                            min-width: 0;
                        }

                        .batch-card-name {
                            font-weight: 700;
                            font-size: 0.9rem;
                            color: #1e293b;
                            white-space: nowrap;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }

                        .batch-card-size {
                            font-size: 0.78rem;
                            color: #64748b;
                            margin-top: 2px;
                        }

                        .batch-card-remove {
                            background: none;
                            border: none;
                            color: #94a3b8;
                            cursor: pointer;
                            font-size: 1rem;
                            line-height: 1;
                            padding: 0.2rem;
                            flex-shrink: 0;
                        }

                        .batch-card-remove:hover {
                            color: #dc2626;
                        }

                        .batch-badge {
                            display: inline-flex;
                            align-items: center;
                            gap: 0.35rem;
                            padding: 0.3rem 0.65rem;
                            border-radius: 20px;
                            font-size: 0.72rem;
                            font-weight: 700;
                            text-transform: uppercase;
                            letter-spacing: 0.03em;
                            width: fit-content;
                        }

                        .batch-badge-queued {
                            background: #f1f5f9;
                            color: #64748b;
                        }

                        .batch-badge-processing {
                            background: rgba(37, 99, 235, 0.08);
                            color: #2563eb;
                        }

                        .batch-badge-success {
                            background: rgba(16, 185, 129, 0.1);
                            color: #059669;
                        }

                        .batch-badge-failed {
                            background: rgba(220, 38, 38, 0.1);
                            color: #dc2626;
                        }

                        .batch-fallback-note {
                            display: flex;
                            align-items: center;
                            gap: 0.35rem;
                            font-size: 0.72rem;
                            font-weight: 600;
                            color: #d97706;
                            background: rgba(245, 158, 11, 0.08);
                            padding: 0.35rem 0.6rem;
                            border-radius: 8px;
                        }

                        .batch-card-result {
                            display: flex;
                            align-items: center;
                            gap: 0.5rem;
                            font-size: 0.8rem;
                            font-weight: 700;
                            color: #1e293b;
                        }

                        .batch-card-result .arrow {
                            color: #94a3b8;
                            font-weight: 400;
                        }

                        .batch-card-result .saved {
                            color: #059669;
                            font-size: 0.75rem;
                            font-weight: 700;
                        }

                        .batch-card-spinner {
                            width: 14px;
                            height: 14px;
                            border: 2px solid rgba(37, 99, 235, 0.2);
                            border-top-color: #2563eb;
                            border-radius: 50%;
                            animation: compressSpin 0.8s linear infinite;
                            display: inline-block;
                        }
