/* ==========================================================================
   PDF EXPORT — Section « PDF » de la modale d'export
   Complète css/export-options.css (chips, toggles, sliders y sont définis).
   ========================================================================== */

/* ----- Cartes de profil ----- */

.pdf-profiles {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
}

.pdf-profile {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    width: 100%;
    padding: var(--sp-3);
    text-align: left;
    background: var(--surface);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    cursor: pointer;
    transition: border-color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);
}

.pdf-profile:hover {
    background: var(--surface-hover);
    border-color: var(--border-strong);
}

.pdf-profile:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.pdf-profile.pdf-profile-active {
    border-color: var(--accent);
    background: var(--accent-soft);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
}

.pdf-profile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: var(--radius-sm);
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    font-size: var(--fs-md);
    transition: background var(--t-fast), color var(--t-fast);
}

.pdf-profile.pdf-profile-active .pdf-profile-icon {
    background: var(--accent);
    color: var(--text-inverse);
}

.pdf-profile-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.pdf-profile-title {
    font-size: var(--fs-sm);
    font-weight: 600;
}

.pdf-profile-desc {
    font-size: var(--fs-xs);
    color: var(--text-tertiary);
    line-height: 1.4;
}

.pdf-profile-check {
    flex-shrink: 0;
    color: var(--accent);
    opacity: 0;
    transform: scale(0.7);
    transition: opacity var(--t-fast), transform var(--t-fast);
}

.pdf-profile.pdf-profile-active .pdf-profile-check {
    opacity: 1;
    transform: scale(1);
}

/* ----- Dépliant « Options avancées » ----- */

.pdf-advanced {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: var(--bg-tertiary);
    overflow: hidden;
}

.pdf-advanced > summary {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-3);
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    user-select: none;
    list-style: none;
}

.pdf-advanced > summary::-webkit-details-marker { display: none; }

.pdf-advanced > summary:hover { color: var(--text-primary); }

.pdf-advanced > summary:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.pdf-advanced-caret {
    margin-left: auto;
    font-size: var(--fs-xs);
    transition: transform var(--t-fast);
}

.pdf-advanced[open] .pdf-advanced-caret { transform: rotate(180deg); }

.pdf-advanced-body {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    padding: 0 var(--sp-3) var(--sp-4);
    border-top: 1px solid var(--border-subtle);
    padding-top: var(--sp-4);
}

/* ----- Grille de réglages courts (orientation / format) ----- */

.pdf-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--sp-4);
}

/* ----- Sous-option dépendante (code sur page séparée) ----- */

.pdf-subtoggle {
    margin-left: var(--sp-5);
}

.pdf-subtoggle.pdf-subtoggle-off {
    opacity: 0.45;
    cursor: not-allowed;
}

.pdf-subtoggle.pdf-subtoggle-off input { cursor: not-allowed; }

/* ----- Parties du bloc d'informations (titre, description, …) ----- */

.pdf-info-parts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-4);
}

.pdf-toggle-note {
    color: var(--text-tertiary);
    font-size: var(--fs-xs);
}

/* ----- Signature : logo et mention « Créé par » ----- */

.pdf-brand {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
    margin-left: var(--sp-5);
    padding-left: var(--sp-3);
    border-left: 2px solid var(--border-subtle);
}

.pdf-brand.pdf-brand-off {
    opacity: 0.45;
    pointer-events: none;
}

.pdf-brand-logo {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-3);
}

/* Zone de dépôt : ratio proche d'un logo courant, l'aperçu est contenu sans
   déformation — exactement ce que fera l'export. */
.pdf-logo-drop {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 108px;
    height: 68px;
    padding: var(--sp-2);
    background: var(--surface);
    border: 1px dashed var(--border-default);
    border-radius: var(--radius-md);
    color: var(--text-tertiary);
    cursor: pointer;
    overflow: hidden;
    transition: border-color var(--t-fast), background var(--t-fast), color var(--t-fast);
}

.pdf-logo-drop:hover:not(:disabled),
.pdf-logo-drop.pdf-logo-drop-over {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

.pdf-logo-drop:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.pdf-logo-drop:disabled { cursor: not-allowed; }

.pdf-logo-drop.pdf-logo-drop-busy { opacity: 0.6; }

.pdf-logo-drop img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.pdf-logo-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-xs);
    text-align: center;
    line-height: 1.3;
}

.pdf-logo-empty i { font-size: var(--fs-md); }

.pdf-brand-logo-side {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-2);
    min-width: 0;
}

.pdf-logo-error { color: var(--danger); }

.pdf-logo-clear {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    padding: var(--sp-1) var(--sp-2);
    background: transparent;
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-size: var(--fs-xs);
    cursor: pointer;
    transition: color var(--t-fast), border-color var(--t-fast);
}

.pdf-logo-clear:hover:not(:disabled) {
    color: var(--danger);
    border-color: var(--danger);
}

.pdf-logo-clear[hidden] { display: none; }

.pdf-brand-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--sp-3);
}

.pdf-field {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
}

.pdf-field > span {
    font-size: var(--fs-xs);
    color: var(--text-tertiary);
}

.pdf-field input {
    padding: var(--sp-2) var(--sp-3);
    background: var(--surface);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-family: inherit;
    font-size: var(--fs-sm);
    min-width: 0;
    transition: border-color var(--t-fast), box-shadow var(--t-fast);
}

.pdf-field input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.eo-chips .pdf-chip:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ----- Bandeau d'information ----- */

.pdf-info {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
    padding: var(--sp-3);
    background: var(--accent-soft);
    border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
    border-radius: var(--radius-md);
    line-height: 1.5;
    margin: 0;
}

.pdf-info i {
    color: var(--accent);
    flex-shrink: 0;
    margin-top: 2px;
}

/* ----- Avertissement (caractères non rendus par les polices PDF) ----- */

.pdf-warning {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-2);
    padding: var(--sp-3);
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 40%, transparent);
    border-radius: var(--radius-md);
    color: var(--text-secondary);
    line-height: 1.5;
    margin: 0;
}

.pdf-warning[hidden] { display: none; }

.pdf-warning i {
    color: var(--warning);
    flex-shrink: 0;
    margin-top: 2px;
}

/* ----- Chips PDF : libellés plus longs que les ×1–×4 du PNG ----- */

.eo-chips .pdf-chip {
    min-width: 0;
    font-family: var(--font-sans);
    white-space: nowrap;
}

/* ----- Hôte de rendu hors écran (svg2pdf a besoin d'un layout mesurable) -----
   Ni display:none ni visibility:hidden : getBBox/getComputedStyle doivent
   renvoyer des valeurs réelles. On sort donc l'élément du viewport. */

.pdf-render-host {
    position: fixed;
    left: -100000px;
    top: 0;
    width: auto;
    height: auto;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    z-index: -1;
}

/* ----- Superposition de progression ----- */

.pdf-busy {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-3);
    background: color-mix(in srgb, var(--bg-primary) 72%, transparent);
    backdrop-filter: blur(2px);
    z-index: 9999;
    color: var(--text-primary);
    font-size: var(--fs-sm);
    font-weight: 600;
}

.pdf-busy i { color: var(--accent); }

@media (prefers-reduced-motion: reduce) {
    .pdf-busy i { animation: none; }
}
