
    .scan-step-title {
        font-family: "Playfair Display", serif;
        font-size: 1.05rem;
        color: var(--cream);
        margin-bottom: 10px;
        transition: color 0.4s ease;
    }
    .scan-hint {
        font-size: 0.8rem;
        color: var(--text-muted);
        font-style: italic;
        line-height: 1.4;
        margin-bottom: 10px;
        transition: color 0.4s ease;
    }

    /* Dropzone */
    .scan-dropzone {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8px;
        text-align: center;
        border: 2px dashed var(--border);
        border-radius: var(--radius);
        background: var(--bg-panel);
        color: var(--text-muted);
        padding: 36px 16px;
        cursor: pointer;
        width: 100%;
        max-width: min(500px, calc(100vw - 24px));
        transition: all 0.2s ease;
    }
    .scan-dropzone svg {
        color: var(--gold);
        margin-bottom: 4px;
    }
    .scan-dropzone p {
        margin: 0;
        font-size: 0.9rem;
    }
    .scan-dropzone .scan-hint {
        margin: 4px 0 0;
    }
    .scan-dropzone:hover,
    .scan-dropzone:focus-visible {
        border-color: var(--gold);
        background: var(--bg-card);
        color: var(--cream-dim);
        outline: none;
    }
    .scan-dropzone.dragover {
        border-color: var(--gold);
        background: var(--gold-dim);
        color: var(--cream);
    }
    .scan-error-inline {
        margin-top: 10px;
        font-size: 0.8rem;
        color: #e57373;
        max-width: min(500px, calc(100vw - 24px));
    }

    /* Scan status banner */
    .scan-status {
        width: 100%;
        max-width: min(500px, calc(100vw - 24px));
        margin: 0 auto 12px;
        padding: 10px 12px;
        border-radius: var(--radius);
        font-size: 0.8rem;
        text-align: center;
        display: none;
        transition: all 0.4s ease;
    }
    .scan-status.show {
        display: block;
    }
    .scan-status.status-ok {
        background: rgba(115, 149, 82, 0.15);
        border: 1px solid #739552;
        color: var(--cream-dim);
    }
    .scan-status.status-warn {
        background: rgba(214, 168, 74, 0.15);
        border: 1px solid var(--gold);
        color: var(--cream-dim);
    }

    /* How-it-works / tips lists */
    .scan-how-list {
        padding-left: 18px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        font-size: 0.82rem;
        color: var(--text-body);
        line-height: 1.4;
    }

    .scan-step {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }
    .scan-step[hidden] {
        display: none;
    }

