.spft-compress-tool {
    max-width: 850px;
    margin: 0 auto;
    padding: 28px 18px 52px;
    color: #172033;
}
.spft-compress-tool * { box-sizing: border-box; }
.spft-compress-tool h1 { font-size: clamp(30px, 5vw, 46px); line-height: 1.12; margin: 14px 0; }
.spft-compress-tool p { line-height: 1.65; }
.spft-compress-tool .spft-compress-muted { color: #667085; }
.spft-compress-panel {
    margin-top: 26px;
    padding: clamp(18px, 4vw, 30px);
    border: 1px solid #e3e8f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 35px rgba(20, 35, 60, .06);
}
.spft-compress-dropzone {
    display: block;
    padding: 32px 18px;
    text-align: center;
    border: 2px dashed #b9c5d8;
    border-radius: 14px;
    background: #f8faff;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.spft-compress-dropzone:hover,
.spft-compress-dropzone.is-dragging {
    border-color: #635bdb;
    background: #f0efff;
}
.spft-compress-dropzone strong { display: block; margin: 10px 0 5px; font-size: 18px; }
.spft-compress-file-info { overflow-wrap: anywhere; margin: 12px 0; font-size: 14px; }
.spft-compress-select-label { display: block; font-weight: 650; margin: 20px 0 8px; }
.spft-compress-select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    background: #fff;
    color: #172033;
}
.spft-compress-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 50px;
    margin-top: 18px;
    padding: 13px 18px;
    border: 0;
    border-radius: 10px;
    background: #5145cd;
    color: #fff !important;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    text-decoration: none !important;
}
.spft-compress-button:disabled { opacity: .5; cursor: not-allowed; }
.spft-compress-button-secondary { background: #eef0ff; color: #39318e !important; }
.spft-compress-status { margin-top: 16px; padding: 12px 14px; border-radius: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.spft-compress-status:empty { display: none; }
.spft-compress-status.is-success { background: #ecfdf3; color: #067647; }
.spft-compress-status.is-error { background: #fef3f2; color: #b42318; }
.spft-compress-status.is-warning { background: #fffaeb; color: #93370d; }
.spft-compress-status.is-working { background: #eff8ff; color: #175cd3; }
.spft-compress-results { margin-top: 22px; padding: 18px; border: 1px solid #d1fadf; border-radius: 12px; background: #f6fef9; }
.spft-compress-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.spft-compress-result-item { padding: 12px; border-radius: 9px; background: #fff; border: 1px solid #e4e7ec; min-width: 0; }
.spft-compress-result-item span { display: block; color: #667085; font-size: 13px; }
.spft-compress-result-item strong { display: block; margin-top: 5px; font-size: 20px; overflow-wrap: anywhere; }
.spft-compress-note { margin-top: 18px; padding: 14px; border-left: 3px solid #98a2b3; background: #f9fafb; font-size: 13px; }
.spft-compress-tool [hidden] { display: none !important; }
@media (max-width: 480px) {
    .spft-compress-tool { padding: 20px 12px 36px; }
    .spft-compress-panel { padding: 16px; border-radius: 13px; }
    .spft-compress-dropzone { padding: 25px 12px; }
    .spft-compress-result-grid { grid-template-columns: 1fr; }
}


/* PDF compressor animated indeterminate progress bar */
.spft-compress-progress {
    margin-top: 12px;
    padding: 14px;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    background: #f8fbff;
}
.spft-compress-progress[hidden] {
    display: none !important;
}
.spft-compress-progress-track {
    position: relative;
    width: 100%;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #dbeafe;
}
.spft-compress-progress-bar {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -40%;
    width: 40%;
    border-radius: 999px;
    background: linear-gradient(90deg, #5145cd, #818cf8, #5145cd);
    animation: spftCompressProgress 1.35s ease-in-out infinite;
}
.spft-compress-progress-caption {
    margin-top: 9px;
    color: #475467;
    font-size: 13px;
    line-height: 1.5;
}
@keyframes spftCompressProgress {
    0%   { left: -40%; }
    100% { left: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .spft-compress-progress-bar {
        animation-duration: 3s;
    }
}

/* ===== PDF Compressor UI Polish ===== */

.spft-compress-tool {
    width: 100%;
    max-width: 850px;
    margin-inline: auto;
}

.spft-compress-tool > a:first-child {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: #5145cd;
    font-weight: 600;
    text-decoration: none;
}

.spft-compress-tool > a:first-child:hover {
    text-decoration: underline;
}

.spft-compress-tool header {
    margin-bottom: 24px;
}

.spft-compress-tool header .spft-compress-muted:first-child {
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 1.3px;
}

.spft-compress-panel {
    border-color: #e0e5ef;
    box-shadow: 0 12px 36px rgba(23, 32, 51, 0.07);
}

.spft-compress-dropzone {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-color: #b8c3d8;
    transition: border-color .2s ease, background .2s ease,
                box-shadow .2s ease, transform .2s ease;
}

.spft-compress-dropzone:hover,
.spft-compress-dropzone.is-dragging {
    border-color: #5145cd;
    box-shadow: 0 0 0 3px rgba(81, 69, 205, .08);
}

.spft-compress-select {
    min-height: 50px;
    font: inherit;
    cursor: pointer;
}

.spft-compress-select:focus-visible,
.spft-compress-button:focus-visible,
.spft-compress-dropzone:focus-visible,
.spft-compress-tool a:focus-visible {
    outline: 3px solid rgba(81, 69, 205, .35);
    outline-offset: 3px;
}

.spft-compress-button {
    min-height: 52px;
    border-radius: 12px;
    box-shadow: 0 3px 8px rgba(81, 69, 205, .12);
    transition: background .2s ease, box-shadow .2s ease,
                transform .2s ease;
}

.spft-compress-button:not(:disabled):hover {
    background: #4035b4;
    box-shadow: 0 5px 14px rgba(81, 69, 205, .2);
}

.spft-compress-button:not(:disabled):active {
    transform: translateY(1px);
}

.spft-compress-button-secondary {
    background: #f0efff;
    box-shadow: none;
}

.spft-compress-button-secondary:not(:disabled):hover {
    background: #e5e3ff;
}

.spft-compress-status {
    overflow-wrap: anywhere;
}

.spft-compress-results {
    scroll-margin-top: 24px;
    border-color: #b7ebca;
    box-shadow: 0 6px 20px rgba(6, 118, 71, .05);
}

.spft-compress-results h2 {
    margin-top: 0;
    line-height: 1.3;
}

.spft-compress-result-item {
    border-color: #e2e8f0;
    border-radius: 11px;
    padding: 15px;
}

.spft-compress-result-item strong {
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.spft-compress-results #spft-compress-download {
    margin-top: 8px;
}

.spft-compress-note {
    line-height: 1.65;
    border-radius: 0 8px 8px 0;
}

@media (min-width: 600px) {
    .spft-compress-result-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 480px) {
    .spft-compress-tool {
        padding: 18px 12px 32px;
    }

    .spft-compress-tool h1 {
        font-size: clamp(29px, 8vw, 36px);
    }

    .spft-compress-panel {
        padding: 15px;
    }

    .spft-compress-dropzone {
        min-height: 165px;
        padding: 22px 12px;
    }

    .spft-compress-result-grid {
        gap: 10px;
    }

    .spft-compress-result-item {
        padding: 13px;
    }

    .spft-compress-button {
        min-height: 50px;
        padding: 12px;
        font-size: 15px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .spft-compress-button,
    .spft-compress-dropzone {
        transition: none;
    }
}



/* ===== PDF Compressor heading cleanup ===== */
#spft-pdf-compressor > header {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#spft-pdf-compressor > header h1 {
    margin: 10px 0;
    padding: 0;
}

#spft-pdf-compressor > header p:last-child {
    margin-bottom: 0;
}

#spft-pdf-compressor > header .spft-compress-muted {
    background: transparent;
    box-shadow: none;
}

@media (max-width: 480px) {
    #spft-pdf-compressor > header {
        margin-bottom: 16px;
    }
}
