/* V7.9 - app-landing.css : classes specifiques templates\index.html
   Extrait automatique de static/app.css par scripts/extract_css_to_bundle.py.
   93 classes owned, 144 regles extraites.
   V8.13.1 : suppression double @layer legacy imbrique (bug script extraction). */
@layer legacy {
.wizard-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
    align-items: start;
}.wizard-sidebar {
    position: sticky;
    top: 5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}.v-steps {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border-radius: 14px;
    border: 1px solid var(--border);
    padding: 0.5rem;
    overflow: hidden;
    box-shadow: var(--shadow);
}.v-step {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: none;
    border-inline-start: 3px solid transparent;
    background: transparent;
    cursor: pointer;
    border-radius: 0 8px 8px 0;
    transition: background var(--trans-fast), color var(--trans-fast), border-color var(--trans-fast);
    text-align: start;
    font-family: var(--font-family);
    font-size: 0.875rem;
    color: var(--text-muted);
    width: 100%;
}.v-step:hover {
    background: rgba(37, 99, 235, 0.06);
}.v-step-num {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
    border: 2px solid var(--border);
    background: var(--surface);
    flex-shrink: 0;
    transition: var(--transition-base-safe);
}.v-step-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}.helper-box {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: var(--shadow);
}.helper-box h4 {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
}.helper-box p {
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.6;
}.adverses-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}.adverse-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    transition: border-color var(--trans-fast), box-shadow var(--trans-fast);
}.adverse-card > * { margin-top: 0; margin-bottom: 0; }.adverse-card:hover {
    border-color: var(--accent);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}.adverse-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}.adverse-card-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
}.timeline-builder {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}.timeline-entry {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 0.75rem;
    align-items: start;
    padding: 0.875rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    transition: border-color var(--trans-fast);
}.timeline-entry:hover {
    border-color: var(--accent);
}.timeline-entry .tl-text {
    min-height: 2.5rem;
    resize: vertical;
}.btn-remove-tl {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0.375rem;
    border-radius: 4px;
    font-size: 1.1rem;
    transition: color var(--trans-fast);
    align-self: center;
}.btn-remove-tl:hover {
    color: var(--danger-text-strong);
}.btn-ghost {
    background: transparent;
    border: 1px dashed var(--border);
    color: var(--text-muted);
    padding: 0.625rem 1rem;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-family);
    font-size: 0.875rem;
    transition: var(--transition-base-safe);
    width: 100%;
    text-align: center;
}.btn-ghost:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(37, 99, 235, 0.04);
}@media  (max-width: 900px)  {
.wizard-layout {
        grid-template-columns: 1fr;
    }.wizard-sidebar {
        position: static;
        order: -1;
    }.v-steps {
        flex-direction: row;
        overflow-x: auto;
    }.v-step {
        flex-direction: column;
        gap: 0.25rem;
        padding: 0.5rem;
        min-width: 70px;
        text-align: center;
        font-size: 0.75rem;
        border-inline-start: none;
        border-bottom: 3px solid transparent;
        border-radius: 8px 8px 0 0;
    }.v-step-num {
        width: 1.5rem;
        height: 1.5rem;
        font-size: 0.7rem;
    }.helper-box {
        display: none;
    }.timeline-entry {
        grid-template-columns: 1fr;
    }
}.form-step {
    display: none;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}.step-header {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--border);
    padding-bottom: 1.5rem;
}.step-header h3 {
    font-size: 1.25rem;
    color: var(--text-main);
    margin-bottom: 0.25rem;
    font-weight: 700;
}.step-header p {
    color: var(--text-muted);
    font-size: 0.875rem;
}.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}.form-grid.addr-grid {
    grid-template-columns: 140px 1fr;
}.category-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}.urgence-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}.ton-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}.category-card,
.urgence-content,
.ton-content {
    background-color: var(--input-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.25rem;
    text-align: start;
    cursor: pointer;
    transition: border-color var(--trans-fast), background-color var(--trans-fast), box-shadow var(--trans-fast);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}.urgence-content,
.ton-content {
    text-align: center;
    padding: 1rem;
    font-weight: 500;
    font-size: 0.875rem;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}.category-card:hover,
.urgence-content:hover,
.ton-content:hover {
    border-color: var(--accent);
    background-color: rgba(59, 130, 246, 0.03);
}.cat-icon {
    font-size: 1.5rem;
    margin-bottom: 0.25rem;
}.cat-name {
    font-weight: 600;
    color: var(--primary);
    font-size: 0.9375rem;
}.cat-desc {
    font-size: 0.8125rem;
    color: var(--text-muted);
    line-height: 1.4;
}.urgence-card input,
.ton-card input {
    display: none;
}.urgence-badge {
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
}.urgence-desc,
.ton-desc {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 400;
    text-align: center;
    line-height: 1.3;
}.ton-name {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text-main);
}.recap-wrapper {
    margin-top: 2rem;
}.recap-titre {
    color: var(--primary);
    margin-bottom: 1rem;
    font-size: 0.9375rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}.recap-box {
    background: var(--bg);
    padding: 1.5rem;
    border-radius: var(--radius);
    border: 1px solid var(--border);
}.upload-zone {
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    padding: 2rem 1rem;
    text-align: center;
    cursor: pointer;
    background-color: var(--input-bg);
    margin-top: 0.5rem;
    transition: border-color var(--trans-fast), background-color var(--trans-fast);
}.upload-zone svg {
    color: var(--accent);
    margin-bottom: 0.5rem;
}.upload-zone p {
    color: var(--text-main);
    font-weight: 600;
    font-size: 0.875rem;
}.upload-zone span {
    color: var(--text-muted);
    font-size: 0.75rem;
}.user-type-selector {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    background: var(--bg);
    padding: 0.35rem;
    border-radius: calc(var(--radius) + 0.25rem);
    border: 1px solid var(--border);
}.type-pill {
    flex: 1;
    text-align: center;
    padding: 0.65rem;
    border-radius: var(--radius);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text-muted);
    transition: var(--transition-base-safe);
    user-select: none;
    border: 1px solid transparent;
}.type-pill:hover {
    color: var(--primary);
}.toast-notification {
    position: fixed;
    bottom: 2rem;
    inset-inline-start: 50%;
    transform: translateX(-50%) translateY(100px);
    background: var(--text-main);
    color: var(--surface);
    padding: 0.75rem 1.5rem;
    border-radius: 2rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    opacity: 0;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s;
}@media  (max-width: 768px)  {
.form-card {
        padding: 1.5rem;
    }.form-grid {
        grid-template-columns: 1fr;
    }.form-grid.addr-grid {
        grid-template-columns: 120px 1fr;
    }.form-navigation {
        flex-direction: column-reverse;
        gap: 1rem;
    }.category-grid {
        grid-template-columns: repeat(2, 1fr);
    }.urgence-grid {
        grid-template-columns: repeat(2, 1fr);
    }.ton-grid {
        grid-template-columns: 1fr;
    }
}@media  (max-width: 420px)  {
.category-grid {
        grid-template-columns: 1fr;
    }
}.js-hidden {
    display: none;
}.freemium-banner {
    display: none;
    min-height: 44px;
    margin-bottom: 1rem;
    padding: .75rem 1.25rem;
    background: linear-gradient(90deg, var(--border-accent-soft), var(--info-surface));
    border: 1px solid var(--info-surface-border);
    border-radius: 10px;
    font-size: .9rem;
    color: var(--info-surface-text);
    text-align: center;
}.file-list-mt {
    margin-top: 1rem;
}.form-card {
    background: var(--surface, #fff);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 2rem;
    box-shadow: var(--shadow, 0 1px 3px rgba(15, 23, 42, 0.04), 0 4px 14px rgba(15, 23, 42, 0.06));
}.magic-upload-section {
    margin-bottom: 1.5rem;
}.magic-dropzone {
    border: 2px dashed var(--text-muted);
    border-radius: 12px;
    padding: 2rem 1.5rem;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    color: var(--text-muted);
}.magic-dropzone p {
    margin: 0.5rem 0 0;
}.magic-dropzone .magic-hint {
    font-size: 0.85rem;
    opacity: 0.7;
    margin-top: 0.25rem;
}.magic-result {
    text-align: center;
    padding: 0.5rem;
    font-size: 0.9rem;
    min-height: 1.5rem;
}.magic-separator {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    color: var(--text-muted);
    font-size: 0.85rem;
}.magic-separator::before,
.magic-separator::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border);
}.feedback-warning {
    background: var(--warning-surface);
    border: 1px solid var(--warning-surface-border);
    color: var(--warning-surface-text);
    border-radius: 8px;
    padding: 1rem 1.5rem;
    font-size: .95rem;
    text-align: center;
}@media  (max-width: 768px)  {
.form-card {
        margin-inline: .75rem;
    }.upload-zone,
    .magic-dropzone {
        max-width: 100%;
        overflow: hidden;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }.upload-zone p,
    .upload-zone span,
    .magic-dropzone p,
    .magic-dropzone .magic-hint {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }.user-type-selector {
        flex-wrap: wrap;
    }.type-pill {
        min-width: 0;
        font-size: 0.8rem;
        padding: 0.55rem 0.25rem;
        word-break: break-word;
    }
}@media  (max-width: 640px)  {
.v-steps {
        flex-direction: row;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0;
        padding: 0.25rem;
    }.v-steps::-webkit-scrollbar {
        display: none;
    }.v-step {
        flex-direction: column;
        gap: 0.2rem;
        padding: 0.4rem 0.35rem;
        min-width: 56px;
        flex-shrink: 0;
        text-align: center;
        font-size: 0.7rem;
        border-inline-start: none;
        border-bottom: 3px solid transparent;
        border-radius: 8px 8px 0 0;
    }.v-step-num {
        width: 1.35rem;
        height: 1.35rem;
        font-size: 0.65rem;
    }.v-step-label {
        font-size: 0.65rem;
    }.category-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }.category-card {
        padding: 0.75rem 0.5rem;
    }.cat-name {
        font-size: 0.75rem;
    }.cat-desc {
        font-size: 0.65rem;
    }.urgence-grid {
        grid-template-columns: 1fr;
    }.step-header {
        flex-direction: column;
        gap: 0.5rem;
    }
}@media  (max-width: 375px)  {
.form-card {
        margin-inline: .5rem;
        padding: 1rem;
    }.category-grid {
        grid-template-columns: 1fr;
    }.form-grid.addr-grid {
        grid-template-columns: 1fr;
    }.type-pill {
        flex: 1 1 100%;
    }.user-type-selector {
        flex-wrap: wrap;
    }.adverse-card {
        padding: 1rem;
    }.upload-zone {
        padding: 1.25rem .75rem;
    }.magic-dropzone {
        padding: 1.25rem .75rem;
    }
}.trust-signals-bar { display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap; margin: 0 auto 1.5rem; padding: .75rem 1.25rem; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); max-width: 680px; }.trust-signal-link { display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; color: var(--text-secondary); font-size: .82rem; font-weight: 600; }.trust-signal-sep { width: 1px; height: 20px; background: var(--border); }/* V8.21.0u-hotfix : .modal-login-overlay legacy SUPPRIME (orphelin V8.21.0p Lesson #325) — porte par dialog.lp-login-overlay dans landing.css + partial inline */.modal-login-box { background: var(--surface); border-radius: 12px; padding: 2rem; width: 100%; max-width: 420px; margin: 1rem; box-shadow: var(--modal-elevated-shadow); }.modal-login-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; }.modal-login-title-text { margin: 0; font-size: 1.2rem; font-weight: 700; color: var(--text-main); }.modal-login-close { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--text-muted); line-height: 1; }.modal-login-field { margin-bottom: 1rem; }.modal-login-field--lg { margin-bottom: 1.25rem; }.modal-login-label { display: block; font-size: .875rem; font-weight: 600; color: var(--text-main); margin-bottom: .375rem; }.modal-login-input { width: 100%; padding: .625rem .875rem; border: 1px solid var(--border); border-radius: 8px; font-size: .975rem; outline: none; box-sizing: border-box; background: var(--bg-input); color: var(--text-main); }.modal-login-submit { width: 100%; padding: .75rem; background: var(--primary); color: var(--text-on-primary); border: none; border-radius: 8px; font-size: 1rem; font-weight: 600; cursor: pointer; }.modal-login-message { margin-top: .75rem; font-size: .875rem; text-align: center; min-height: 1.25rem; }.modal-login-message--success { color: var(--success-text-strong); }.modal-login-message--error { color: var(--danger-text-strong); }.modal-login-divider { margin: 1.25rem 0; border: none; border-top: 1px solid var(--border); }.modal-login-footer { text-align: center; font-size: .875rem; color: var(--text-muted); margin: 0; }.modal-login-footer a { color: var(--primary); font-weight: 600; }.modal-login-alt { text-align: center; font-size: .8rem; color: var(--text-muted); margin: .5rem 0 0; }.modal-login-alt a { color: var(--text-muted); }/* V8.21.0u-hotfix : .modal-login-overlay--hidden SUPPRIME (legacy V8.21.0p, dialog natif) */.idx-noscript-mb { margin-bottom: 1.5rem; }.idx-mt-075 { margin-top: .75rem; }.idx-timeline-actions { display: flex; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; }.idx-btn-import-highlight { color: var(--primary); }.idx-import-block { margin-top: .75rem; padding: 1rem; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; }.idx-import-textarea { width: 100%; font-size: .9rem; font-family: var(--font-family); line-height: 1.6; }.idx-import-btns { display: flex; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; align-items: center; }.idx-btn-sm { font-size: .85rem; padding: .5rem 1rem; }.idx-btn-ghost-sm { font-size: .85rem; }.idx-import-info { font-size: .8rem; color: var(--text-muted); margin-inline-start: auto; }.modal-auth-field--consent { margin-top: .5rem; }.modal-auth-consent-label { display: flex; align-items: flex-start; gap: .5rem; font-size: .8rem; color: var(--text-secondary); cursor: pointer; line-height: 1.4; }.modal-auth-consent-checkbox { margin-top: 2px; min-width: 18px; min-height: 18px; accent-color: var(--primary); cursor: pointer; }.modal-auth-consent-link { color: var(--accent); text-decoration: underline; }.modal-auth-switch-row { text-align: center; margin-top: .75rem; font-size: .85rem; }.modal-auth-switch-link { color: var(--accent); }.visibility-hidden { visibility: hidden; }
}
