* { margin: 0; padding: 0; box-sizing: border-box; }
.auth-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.auth-container { width: 100%; max-width: 420px; }
.auth-logo { text-align: center; margin-bottom: 30px; }
.auth-logo-icon { width: 64px; height: 64px; background: white; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 15px; box-shadow: 0 10px 40px rgba(0,0,0,0.2); }
.auth-logo h1 { color: white; font-size: 32px; font-weight: 700; }
.auth-logo p { color: rgba(255,255,255,0.8); margin-top: 8px; }
.auth-card { background: white; border-radius: 20px; padding: 40px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.auth-card h2 { font-size: 24px; color: #1f2937; margin-bottom: 25px; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 8px; }
.form-group input, .form-group select { width: 100%; padding: 14px 16px; border: 2px solid #e5e7eb; border-radius: 10px; font-size: 15px; transition: all 0.2s; }
.form-group input:focus, .form-group select:focus { outline: none; }
.form-row { display: flex; gap: 15px; }
.form-row .form-group { flex: 1; }
.btn { width: 100%; padding: 14px; color: white; border: none; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; }
.btn:hover { transform: translateY(-1px); }
.btn:disabled { background: #9ca3af; cursor: not-allowed; }
.btn-secondary { background: #f3f4f6; color: #374151; }
.divider { text-align: center; margin: 25px 0; color: #6b7280; }
.link { font-weight: 500; cursor: pointer; }
.link:hover { text-decoration: underline; }
.alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 20px; font-size: 14px; display: none; }
.alert-error { background: #fef2f2; border: 1px solid #fecaca; color: #dc2626; }
.alert-success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #16a34a; }
.alert.show { display: block; }
.footer-text { text-align: center; margin-top: 25px; color: rgba(255,255,255,0.7); font-size: 14px; }
.dashboard { display: flex; min-width: 0; min-height: 100vh; }
.sidebar { width: 260px; color: white; display: flex; flex-direction: column; }
.sidebar-header { padding: 24px; }
.sidebar-header h1 { font-size: 20px; display: flex; align-items: center; gap: 10px; }
.sidebar-header span { font-size: 12px; color: #94a3b8; }
.sidebar-nav { flex: 1; padding: 16px; }
.nav-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; margin-bottom: 4px; transition: all 0.2s; }
.sidebar-nav button.nav-item { width:100%; border:0; background:transparent; font:inherit; text-align:left; }
.nav-item svg { width: 20px; height: 20px; }
.sidebar-footer { padding: 16px; }
.user-info { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.user-avatar { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 600; }
.user-details { flex: 1; }
.user-details .name { font-weight: 500; font-size: 14px; }
.user-details .email { font-size: 12px; color: #94a3b8; }
.logout-btn { width: 100%; padding: 10px; background: transparent; border: 1px solid #475569; border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.2s; }
.main-content { flex: 1; min-width: 0; overflow-y: auto; }
.main-header { padding: 20px 32px; display: flex; justify-content: space-between; align-items: center; }
.main-header h2 { font-size: 24px; }
.main-header .subtitle { font-size: 14px; }
.content { min-width: 0; padding: 32px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-bottom: 32px; }
.stat-card { background: white; border-radius: 16px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.stat-card-header { display: flex; justify-content: space-between; align-items: start; margin-bottom: 16px; }
.stat-card-title { color: #64748b; font-size: 14px; }
.stat-card-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.stat-card-icon.green { background: #dcfce7; color: #16a34a; }
.stat-card-icon.red { background: #fee2e2; color: #dc2626; }
.stat-card-value { font-size: 32px; font-weight: 700; color: #1e293b; }
.stat-card-change { font-size: 13px; margin-top: 4px; }
.stat-card-change.positive { color: #16a34a; }
.stat-card-change.negative { color: #dc2626; }
.card { background: white; border-radius: 16px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); margin-bottom: 24px; }
.card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.card-title { font-size: 18px; font-weight: 600; color: #1e293b; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.filters-bar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.filter-select { padding: 8px 12px; border: 2px solid #e5e7eb; border-radius: 8px; font-size: 14px; background: white; }
.filter-select:focus { outline: none; border-color: #667eea; }
.search-input { padding: 8px 12px; border: 2px solid #e5e7eb; border-radius: 8px; font-size: 14px; flex: 1; min-width: 200px; }
.search-input:focus { outline: none; border-color: #667eea; }
.domain-section-header { color: white; padding: 12px 20px; margin: 24px 0 12px 0; display: flex; justify-content: space-between; align-items: center; }
.domain-section-header h4 { font-size: 16px; font-weight: 600; }
.domain-section-count { background: rgba(255,255,255,0.2); padding: 4px 12px; border-radius: 20px; font-size: 13px; }
.task-card { background: white; border: 1px solid #e2e8f0; border-radius: 12px; margin-bottom: 16px; overflow: hidden; transition: all 0.3s; }
.task-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.task-card.completed { border-color: #9ab8b2; background: #f6f9f8; }
.task-card.not-completed { border-color: #d5dddb; }
.task-card-header { display: flex; align-items: center; padding: 16px 20px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; gap: 16px; }
.task-card.completed .task-card-header { background: #dcfce7; }
.task-checkbox { width: 28px; height: 28px; border-radius: 50%; border: 3px solid #d1d5db; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; flex-shrink: 0; }
.task-checkbox.checked svg { display: block; }
.task-checkbox svg { display: none; color: white; width: 16px; height: 16px; }
.task-ref { color: white; padding: 4px 10px; border-radius: 6px; font-weight: 600; font-size: 14px; }
.task-title-main { flex: 1; font-size: 16px; font-weight: 600; color: #1e293b; }
.task-priority { padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.task-priority.p1 { background: #fee2e2; color: #dc2626; }
.task-priority.p2 { background: #fef3c7; color: #d97706; }
.task-priority.p3 { background: #dbeafe; color: #2563eb; }
.task-priority.p4 { background: #f3f4f6; color: #6b7280; }
.task-type { padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 500; }
.task-type.legal { background: #fef3c7; color: #92400e; }
.task-type.practice { background: #e0e7ff; color: #4338ca; }
.task-card-body { padding: 20px; }
.task-description { color: #475569; font-size: 14px; line-height: 1.6; margin-bottom: 16px; }
.task-section { margin-bottom: 16px; }
.task-section-title { font-size: 12px; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.task-section-content { font-size: 14px; color: #374151; background: #f8fafc; padding: 12px; border-radius: 8px; border: 1px solid #e2e8f0; }
.task-legal-box { background: #fffbeb; border: 1px solid #fcd34d; border-radius: 8px; padding: 12px; margin-bottom: 16px; }
.task-legal-ref { font-size: 12px; font-weight: 600; color: #92400e; margin-bottom: 4px; }
.task-legal-citation { font-size: 13px; color: #78350f; font-style: italic; }
.task-actions-list { list-style: none; }
.task-action-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #f8fafc; border-radius: 6px; margin-bottom: 6px; font-size: 14px; color: #374151; }
.task-action-item .action-checkbox { width: 18px; height: 18px; border: 2px solid #d1d5db; border-radius: 4px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; flex-shrink: 0; }
.task-action-item .action-checkbox:hover { border-color: #16a34a; }
.task-action-item .action-checkbox.checked { background: #16a34a; border-color: #16a34a; }
.task-action-item .action-checkbox.checked::after { content: '✓'; color: white; font-size: 12px; }
.task-action-item.done { text-decoration: line-through; color: #9ca3af; }
.task-deliverables { display: flex; flex-wrap: wrap; gap: 8px; }
.task-deliverable { background: #e0e7ff; color: #4338ca; padding: 6px 12px; border-radius: 6px; font-size: 13px; }
.task-raci { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.task-raci-item { text-align: center; padding: 8px; background: #f8fafc; border-radius: 6px; }
.task-raci-label { font-size: 11px; font-weight: 600; color: #64748b; }
.task-raci-value { font-size: 12px; color: #374151; margin-top: 2px; }
.chart-container { height: 200px; display: flex; align-items: flex-end; gap: 8px; padding: 20px 0; }
.chart-bar { flex: 1; border-radius: 6px 6px 0 0; transition: height 0.5s ease; }
.chart-labels { display: flex; justify-content: space-between; margin-top: 10px; }
.chart-label { font-size: 12px; color: #64748b; flex: 1; text-align: center; }
@media (max-width: 1200px) { .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .sidebar { display: none; } .stats-grid { grid-template-columns: 1fr; } .task-raci { grid-template-columns: repeat(2, 1fr); } }
.page { display: none; }
.page.active { display: block; }
.hidden { display: none !important; }
.toast { position: fixed; bottom: 24px; right: 24px; color: white; padding: 16px 24px; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); display: flex; align-items: center; gap: 12px; transform: translateY(100px); opacity: 0; transition: all 0.3s; z-index: 1000; }
.toast.show { transform: translateY(0); opacity: 1; }
.toast svg { width: 24px; height: 24px; }

/* ========== Landing Page ========== */
.landing { min-height: 100vh; }

/* Navbar */
.landing-nav { display: flex; align-items: center; justify-content: space-between; max-width: 1200px; margin: 0 auto; padding: 20px 32px; }
.landing-nav-logo { display: inline-flex; align-items: center; text-decoration: none; }
.l25-lockup { display: inline-flex; align-items: flex-end; white-space: nowrap; }
.l25-initial { flex: 0 0 auto; color: #b58a26; font-family: Georgia, "Times New Roman", serif; font-size: 42px; font-weight: 600; line-height: .74; letter-spacing: -.08em; }
.l25-name { position: relative; display: inline-flex; align-items: baseline; gap: 2px; margin-left: -12px; padding: 0 0 5px 12px; font-family: Georgia, "Times New Roman", serif; font-size: 21px; line-height: 1; }
.l25-solution { position: relative; color: #0f1b2d; font-weight: 650; letter-spacing: -.025em; }
.l25-solution::after { content: ""; position: absolute; right: 0; bottom: -5px; left: -12px; height: 1px; background: #b58a26; }
.l25-id { color: #b58a26; font-weight: 750; letter-spacing: -.025em; }
@keyframes l25-initial-enter {
    from { opacity: 0; filter: blur(3px); transform: translateY(4px); }
    to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
@keyframes l25-name-enter {
    from { clip-path: inset(0 100% 0 0); opacity: 0; filter: blur(3px); transform: translateX(-5px); }
    to { clip-path: inset(0); opacity: 1; filter: blur(0); transform: translateX(0); }
}
.landing-nav-logo .l25-initial { animation: l25-initial-enter 600ms cubic-bezier(.16,1,.3,1) both; }
.landing-nav-logo .l25-name { animation: l25-name-enter 720ms cubic-bezier(.16,1,.3,1) 380ms both; }
.landing-nav-links { display: flex; align-items: center; gap: 32px; }
.landing-nav-links a { color: #475569; text-decoration: none; font-size: 15px; font-weight: 500; transition: color 0.2s; }
.landing-nav-btn { padding: 10px 24px; color: #fff !important; font-weight: 600; transition: background 0.2s; }

/* Hero */
.landing-hero { display: flex; align-items: center; gap: 60px; max-width: 1200px; margin: 0 auto; padding: 80px 32px 60px; }
.landing-hero-text { flex: 1; }
.landing-hero-text .badge { display: inline-block; font-size: 13px; padding: 6px 16px; margin-bottom: 20px; }
.landing-hero-text h1 { font-size: 48px; line-height: 1.15; margin-bottom: 24px; }
.landing-hero-text p { font-size: 18px; line-height: 1.7; color: #475569; margin-bottom: 36px; }
.landing-hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.btn-primary-lg { padding: 16px 32px; color: #fff; border: none; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; text-decoration: none; display: inline-block; }
.btn-outline-lg { padding: 16px 32px; background: transparent; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s; text-decoration: none; display: inline-block; }
.landing-hero-form { flex: 0 0 400px; }
.landing-login-card { background: #fff; padding: 36px; border: 1px solid #e2e8f0; }
.landing-login-card h2 { font-size: 22px; color: #1e293b; margin-bottom: 24px; text-align: center; }

/* Section common */
.landing-section { max-width: 1200px; margin: 0 auto; padding: 80px 32px; }
.landing-section-header { text-align: center; margin-bottom: 56px; }
.landing-section-header h2 { font-size: 36px; margin-bottom: 16px; }
.landing-section-header p { font-size: 18px; color: #64748b; max-width: 640px; margin: 0 auto; line-height: 1.6; }

/* Features */
.landing-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.landing-feature { padding: 32px; }
.landing-feature-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; font-size: 24px; }
.landing-feature-icon.gov { background: #dbeafe; }
.landing-feature-icon.task { background: #dcfce7; }
.landing-feature-icon.dash { background: #ede9fe; }
.landing-feature-icon.inc { background: #fee2e2; }
.landing-feature-icon.ai { background: #fef3c7; }
.landing-feature-icon.audit { background: #e0e7ff; }
.landing-feature h3 { font-size: 18px; font-weight: 600; margin-bottom: 8px; }
.landing-feature p { font-size: 14px; color: #64748b; line-height: 1.6; }

/* About */
.landing-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.landing-about-grid h3 { font-size: 24px; font-weight: 700; margin-bottom: 16px; }
.landing-about-grid p { font-size: 16px; color: #475569; line-height: 1.7; margin-bottom: 16px; }
.landing-about-list { list-style: none; padding: 0; }
.landing-about-list li { display: flex; align-items: start; gap: 12px; margin-bottom: 16px; font-size: 15px; color: #374151; line-height: 1.5; }
.landing-about-list li::before { content: ''; display: block; width: 22px; height: 22px; min-width: 22px; margin-top: 2px; background: #667eea; border-radius: 50%; background-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='white' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M5 13l4 4L19 7'%3E%3C/path%3E%3C/svg%3E"); background-size: 14px; background-position: center; background-repeat: no-repeat; }

/* Pricing */
.landing-pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.pricing-card { background: #fff; padding: 36px; text-align: center; display: flex; flex-direction: column; }
.pricing-card.popular { position: relative; }
.pricing-card.popular::before { content: 'Populaire'; position: absolute; top: -14px; left: 50%; transform: translateX(-50%); color: #fff; font-size: 13px; font-weight: 600; padding: 4px 16px; }
.pricing-card h3 { font-size: 22px; font-weight: 700; color: #0f172a; margin-bottom: 8px; }
.pricing-card .price { font-size: 42px; font-weight: 800; color: #0f172a; margin: 16px 0; }
.pricing-card .price span { font-size: 16px; font-weight: 500; color: #64748b; }
.pricing-card .pricing-desc { font-size: 14px; color: #64748b; margin-bottom: 24px; }
.pricing-card ul { list-style: none; padding: 0; text-align: left; margin-bottom: 32px; flex: 1; }
/* Le contenu texte vit dans un seul bloc : le gras reste dans le fil du texte (pas de colonnes). */
.pricing-card ul li { padding: 8px 0; font-size: 14px; color: #374151; border-bottom: 1px solid #f1f5f9; display: flex; align-items: center; gap: 8px; }
.pricing-card ul li span { display: block; }
.pricing-card ul li::before { content: ''; display: inline-block; width: 18px; height: 18px; min-width: 18px; background: #dcfce7; border-radius: 50%; background-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='%2316a34a' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M5 13l4 4L19 7'%3E%3C/path%3E%3C/svg%3E"); background-size: 11px; background-position: center; background-repeat: no-repeat; }
.pricing-card .btn-pricing { display: block; width: 100%; padding: 14px; border-radius: 10px; font-size: 15px; font-weight: 600; cursor: pointer; border: none; transition: all 0.2s; text-align: center; text-decoration: none; }
.btn-pricing-primary { color: #fff; }
.btn-pricing-outline { background: #fff; }

/* Footer */
.landing-footer { background: #0f172a; color: #94a3b8; padding: 48px 32px 24px; }
.landing-footer-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: start; gap: 60px; flex-wrap: wrap; }
.landing-footer-brand h3 { margin-bottom: 12px; }
.landing-footer .l25-initial { color: #d8b45e; font-size: 40px; }
.landing-footer .l25-name { font-size: 20px; }
.landing-footer .l25-solution { color: #f8fafc; }
.landing-footer .l25-solution::after { background: #d8b45e; }
.landing-footer .l25-id { color: #d8b45e; }
.landing-footer-brand p { font-size: 14px; line-height: 1.6; max-width: 300px; }
.landing-footer-links h4 { color: #e2e8f0; font-size: 14px; font-weight: 600; margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.5px; }
.landing-footer-links a { display: block; color: #94a3b8; text-decoration: none; font-size: 14px; margin-bottom: 10px; transition: color 0.2s; }
.landing-footer-links a:hover { color: #fff; }
.landing-footer-bottom { max-width: 1200px; margin: 32px auto 0; padding-top: 24px; border-top: 1px solid #1e293b; text-align: center; font-size: 13px; }

/* ========== Tasks 3-Level View ========== */

/* Breadcrumb */
.tasks-breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 14px; }
.tasks-breadcrumb a { text-decoration: none; font-weight: 500; cursor: pointer; }
.tasks-breadcrumb a:hover { text-decoration: underline; }
.tasks-breadcrumb span { color: #94a3b8; }
.tasks-breadcrumb .current { color: #1e293b; font-weight: 600; }
.tasks-back-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; color: #0f766e; background: #fff; border: 1px solid #cfe0da; border-radius: 8px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: transform .2s, border-color .2s, box-shadow .2s; }
.tasks-back-btn:hover { transform: translateY(-1px); border-color: #0f9d76; box-shadow: 0 6px 14px rgba(15,118,110,.1); }
.tasks-back-btn:focus-visible { outline: 3px solid rgba(15,157,118,.28); outline-offset: 2px; }

/* Level 1 - Domains Table (dark) */
.domains-table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.domains-table thead th { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.8px; text-align: center; }
.domains-table thead th:first-child { text-align: left; min-width: 280px; }
.domains-table tbody td { color: #e2e8f0; text-align: center; border-bottom: 1px solid #334155; font-size: 14px; }
.domains-table tbody td:first-child { text-align: left; font-weight: 500; }
.domains-table tbody tr { cursor: pointer; transition: background 0.15s; }
.domains-table tbody tr:last-child td { border-bottom: none; }
.domains-table tfoot td { color: #fff; text-align: center; font-weight: 700; font-size: 15px; }
.domains-table tfoot td:first-child { text-align: left; }
.domains-table .cnt-verte { color: #34d399; font-weight: 700; }
.domains-table .cnt-or { color: #e4c04f; font-weight: 700; }
.domains-table .cnt-p1 { color: #f87171; font-weight: 600; }
.domains-table .cnt-p2 { color: #fbbf24; font-weight: 600; }
.domains-table .cnt-p3 { color: #60a5fa; font-weight: 600; }
.domains-table .cnt-p4 { color: #94a3b8; font-weight: 600; }
.domains-table .cnt-total { color: #fff; font-weight: 700; }
.completed-bar { display: flex; align-items: center; gap: 8px; justify-content: center; }
.completed-bar-track { width: 60px; height: 6px; background: #334155; border-radius: 3px; overflow: hidden; }
.completed-bar-fill { height: 100%; background: #22c55e; border-radius: 3px; transition: width 0.3s; }
.completed-bar-text { font-size: 13px; color: #94a3b8; min-width: 40px; }

/* Level 2 - Tasks Table */
.tasks-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.tasks-table thead th { color: #e2e8f0; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; padding: 14px 16px; text-align: left; }
.tasks-table tbody td { background: #fff; padding: 16px; border-bottom: 1px solid #e2e8f0; font-size: 14px; color: #374151; vertical-align: top; line-height: 1.5; }
.tasks-table tbody tr { cursor: pointer; transition: background 0.15s; }
.tasks-table tbody tr:hover td { background: #f8fafc; }
.tasks-table tbody tr:last-child td { border-bottom: none; }
.tasks-table .col-ref { width: 60px; text-align: center; font-weight: 700; color: #1e293b; font-size: 15px; }
.tasks-table .col-action { max-width: 340px; }
.tasks-table .col-livrables { color: #64748b; font-size: 13px; max-width: 200px; }
.tasks-table .col-resp { width: 18%; font-weight: 500; overflow-wrap: anywhere; }
.tasks-table .col-freq { width: 17%; color: #64748b; font-size: 13px; overflow-wrap: anywhere; }
.tasks-table .col-priority { text-align: center; white-space: nowrap; }
.tasks-table thead th:nth-child(1) { width: 56px !important; }
.tasks-table thead th:nth-child(2) { width: 64px; }
.tasks-table thead th:nth-child(3) { width: 24%; }
.tasks-table thead th:nth-child(4) { width: 19%; }
.tasks-table thead th:nth-child(5) { width: 18%; }
.tasks-table thead th:nth-child(6) { width: 17%; }
.tasks-table thead th:nth-child(7) { width: 84px; }
.priority-badge { padding: 4px 14px; border-radius: 20px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; display: inline-block; }
.priority-badge.p1 { background: #fee2e2; color: #dc2626; }
.priority-badge.p2 { background: #fef3c7; color: #d97706; }
.priority-badge.p3 { background: #dbeafe; color: #2563eb; }
.priority-badge.p4 { background: #f3f4f6; color: #6b7280; }

/* Level 3 - Task Detail */
.task-detail-header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.task-detail-header h3 { font-weight: 700; flex: 1; min-width: 0; }
.info-btn { width: 28px; height: 28px; border-radius: 50%; background: #e2e8f0; color: #475569; border: none; font-size: 15px; font-weight: 700; font-style: italic; font-family: Georgia, serif; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: all 0.2s; flex-shrink: 0; }
.info-btn:hover { background: #667eea; color: #fff; }
.info-btn.active { background: #667eea; color: #fff; }

.legal-panel { background: #fffbeb; border: 1px solid #fcd34d; border-radius: 12px; padding: 24px; margin-bottom: 24px; display: none; }
.legal-panel.show { display: block; }
.legal-panel h4 { font-size: 14px; font-weight: 600; color: #92400e; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.legal-panel .legal-row { margin-bottom: 16px; }
.legal-panel .legal-row:last-child { margin-bottom: 0; }
.legal-panel .legal-label { font-size: 12px; font-weight: 600; color: #92400e; margin-bottom: 4px; }
.legal-panel .legal-value { font-size: 14px; color: #78350f; line-height: 1.6; }
.legal-panel .legal-citation { font-style: italic; background: #fef3c7; padding: 12px; border-radius: 8px; border: 1px solid #ead58c; }

.detail-section { border: 1px solid #e2e8f0; margin-bottom: 20px; }
.detail-section h4 { font-size: 15px; font-weight: 600; color: #1e293b; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 2px solid #e2e8f0; }

.step-list { padding: 0; counter-reset: step; }
.step-item { display: flex; align-items: flex-start; gap: 14px; padding: 12px 0; border-bottom: 1px solid #e2e8f0; }
.step-item:last-child { border-bottom: none; }
.step-number { width: 30px; height: 30px; border-radius: 50%; background: #e2e8f0; color: #475569; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.2s; cursor: pointer; }
.step-item.done .step-number { color: #fff; }
.step-label { padding-top: 4px; }
.step-item.done .step-label { color: #9ca3af; text-decoration: line-through; }

.deliverable-list { display: flex; flex-direction: column; gap: 10px; }
.deliverable-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; font-size: 14px; color: #374151; }

.task-detail-status { display: flex; align-items: center; gap: 16px; }
.task-detail-status .status-chip { padding: 6px 16px; border-radius: 20px; font-size: 13px; font-weight: 600; }
.status-chip.completed { background: #dcfce7; color: #166534; }
.status-chip.pending { background: #f1f5f9; color: #64748b; }
.task-detail-meta { flex-wrap: wrap; margin-bottom: 24px; }
.task-detail-meta-item { font-size: 13px; }

/* Landing responsive */
@media (max-width: 1024px) {
    .landing-hero { flex-direction: column; text-align: center; padding: 60px 32px 40px; }
    .landing-hero-form { flex: unset; width: 100%; max-width: 420px; }
    .landing-hero-actions { justify-content: center; }
    .landing-hero-text h1 { font-size: 36px; }
    .landing-features { grid-template-columns: repeat(2, 1fr); }
    .landing-pricing-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
    .landing-about-grid { grid-template-columns: 1fr; }
}
@media (max-width: 920px) {
    .landing-nav-links a:not(.landing-nav-btn) { display: none; }
}
@media (max-width: 640px) {
    .landing-features { grid-template-columns: 1fr; }
    .landing-nav-logo .l25-initial { font-size: 36px; }
    .landing-nav-logo .l25-name { font-size: 18px; }
    .landing-footer-inner { flex-direction: column; gap: 32px; }
    .landing-section { padding: 58px 16px; }
    .landing-section-header { margin-bottom: 36px; }
    .landing-section-header h2 { font-size: 29px; }
}
/* ===== Evidence / Upload ===== */
.deliverable-block { background:#fff; border:1px solid #cddfd7; border-radius:14px; overflow:hidden; margin-bottom:20px; }
.deliverable-header { display:flex; align-items:center; gap:12px; padding:20px 20px 8px; }
.deliverable-icon { width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.deliverable-name { flex:1; margin:0; font-size:17px; color:#183e31; font-weight:700; line-height:1.45; }
.evidence-expectation { padding:0 20px 12px; font-size:14px; line-height:1.6; color:#47635a; }
.evidence-expectation > p { margin:0 0 6px; }
.evidence-dropzone.evidence-dropzone-compact { padding:16px; gap:5px; }
.evidence-dropzone-compact > svg { display:none; }
.evidence-dropzone { position:relative; display:flex; flex-direction:column; align-items:center; gap:5px; margin:0 20px 18px; padding:24px 16px; border:2px dashed #8bb8a6; border-radius:10px; background:#f1faf6; color:#285744; text-align:center; cursor:pointer; transition:background .18s,border-color .18s; }
.evidence-dropzone:hover { background:#e2f4eb; border-color:#146b4e; }
.evidence-dropzone:focus-within { outline:3px solid #146b4e; outline-offset:3px; }
.evidence-dropzone input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.evidence-dropzone svg { margin-bottom:7px; pointer-events:none; }
.evidence-dropzone strong { font-size:15px; }
.evidence-dropzone span,.evidence-dropzone small { font-size:12px; line-height:1.5; }
.evidence-dropzone small { color:#47635a; margin-top:5px; }
.evidence-archive { margin:0 20px 18px; font-size:12px; color:#52665e; }
.evidence-archive summary { min-height:28px; cursor:pointer; }
.evidence-archive-input { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.evidence-archive-input input { max-width:100%; }
.upload-btn { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; background:#f1f5f9; border:1px dashed #94a3b8; border-radius:6px; color:#475569; font-size:12px; font-weight:600; cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.upload-btn:hover { background:#e0e7ff; border-color:#6366f1; color:#4338ca; }
.evidence-list { padding:0 20px 18px; display:flex; flex-direction:column; gap:16px; }
.evidence-item { display:flex; align-items:center; gap:10px; padding:8px 12px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:6px; }
.evidence-file-icon { font-size:18px; flex-shrink:0; }
.evidence-file-name { flex:1; font-size:13px; color:#374151; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.evidence-file-meta { font-size:11px; color:#94a3b8; white-space:nowrap; }
.evidence-download-btn { display:inline-flex; align-items:center; gap:4px; padding:4px 10px; background:#eff6ff; border:1px solid #bfdbfe; border-radius:5px; color:#2563eb; font-size:11px; font-weight:600; cursor:pointer; }
.evidence-download-btn:hover { background:#dbeafe; }
.evidence-delete-btn { width:44px; height:44px; border-radius:6px; background:#fff; border:1px solid #fecaca; color:#b91c1c; font-size:17px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.evidence-delete-btn:hover { background:#fee2e2; }
.evidence-empty { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:0 20px 18px; font-size:12px; color:#52665e; }
.evidence-scan-credits { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:16px 20px; margin:0 0 24px; border:1px solid #b8d9cc; border-radius:12px; background:#edf8f2; color:#315b49; font-size:13px; }
.evidence-scan-credits > div > strong { color:#10523b; font-size:19px; font-variant-numeric:tabular-nums; }
.evidence-scan-credits details { margin-top:8px; }
.evidence-scan-credits summary { min-height:36px; cursor:pointer; }
.evidence-scan-credits > div:first-child { flex:1 1 240px; }
.evidence-scan-credits p { margin:4px 0 0; font-size:13px; line-height:1.5; }
.evidence-scan-credits > small, .evidence-scan-credits > .scan-error { flex-basis:100%; }
.scan-credit-actions, .scan-controls { display:flex; align-items:end; flex-wrap:wrap; gap:10px; }
.scan-button, .scan-link { min-height:44px; padding:10px 14px; border:1px solid #b6c9c2; border-radius:7px; background:#fff; color:#185441; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.scan-button:not(:disabled):hover { background:#e9f5ef; }
.scan-button:disabled { color:#64748b; background:#f1f5f9; cursor:not-allowed; }
.scan-primary { min-height:48px; background:#146b4e; border-color:#146b4e; color:#fff; font-size:14px; box-shadow:0 2px 5px #164e361a; }
.scan-primary:not(:disabled):hover { background:#10573f; }
.scan-primary:disabled { border-color:#cbd5e1; box-shadow:none; }
.scan-action-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 18px; transition:transform 140ms cubic-bezier(0.23,1,0.32,1); }
.scan-action-button:not(:disabled):not(:focus-visible):active { transform:scale(.97); }
.scan-action-icon { flex:none; }
.scan-link { text-decoration:underline; border-color:transparent; }
.scan-button:focus-visible, .scan-link:focus-visible, .scan-controls select:focus-visible, .scan-checklist summary:focus-visible, .scan-human-checks input:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.scan-checklist { margin-bottom:20px; border:1px solid #e2e8f0; border-radius:8px; padding:14px 18px; font-size:14px; line-height:1.6; }
.scan-checklist summary { cursor:pointer; font-weight:700; min-height:32px; }
.scan-checklist article { padding:12px 0; border-top:1px solid #e2e8f0; }
.scan-checklist h5 { font-size:15px; margin:0 0 8px; }
.scan-checklist ul { padding-left:22px; }
.scan-details { padding:0; margin:6px 0; border:0; }
.scan-details summary { font-size:13px; font-weight:500; }
.evidence-record { min-width:0; border:1px solid #e2e8f0; border-radius:8px; overflow:hidden; }
.evidence-record .evidence-item { flex-wrap:wrap; border:0; border-radius:0; }
.evidence-record .evidence-file-name { min-width:130px; }
.evidence-record .evidence-download-btn, .evidence-record .evidence-delete-btn { min-height:44px; min-width:44px; }
.evidence-scan-panel { display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; padding:14px 0 0; font-size:14px; line-height:1.5; }
.scan-verdict { display:flex; flex-basis:100%; align-items:start; gap:14px; padding:20px; border:1px solid; border-left-width:4px; border-radius:12px; }
.scan-verdict-icon { display:flex; align-items:center; justify-content:center; flex:none; width:32px; height:32px; border:1px solid currentColor; border-radius:50%; font-size:25px; font-weight:700; line-height:1; }
.scan-verdict-body { flex:1; min-width:0; }
.scan-verdict .scan-status { font-size:18px; font-weight:750; line-height:1.35; }
.scan-corrections { margin:14px 0; padding-left:20px; font-size:14px; font-weight:600; line-height:1.55; }
.scan-corrections li + li { margin-top:6px; }
.scan-next-step { display:grid; gap:4px; margin:16px 0 0; padding-top:14px; border-top:1px solid #e8b9c4; font-size:14px; line-height:1.55; }
.scan-next-step > strong { font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.scan-verdict-success { color:#166534; background:#edf9f0; border-color:#9bccaa; }
.scan-verdict-error { color:#881337; background:#fff4f5; border-color:#e8b9c4; }
.scan-verdict-confirm { color:#854d0e; background:#fffbeb; border-color:#dec383; }
.scan-verdict-pending { color:#285744; background:#f1faf6; border-color:#b8d9cc; }
.scan-verdict .scan-status { padding:0; color:inherit; background:none; }
.scan-verdict-reason { margin:4px 0 0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.evidence-scan-panel:empty { display:none; }
.evidence-scan-panel > .scan-details, .evidence-scan-panel > .scan-human-checks, .evidence-scan-panel > .scan-error, .evidence-scan-panel > .scan-progress, .evidence-scan-panel > .scan-report-summary { flex-basis:100%; }
.scan-controls label { flex:1 1 240px; min-width:0; }
.scan-controls select { display:block; width:100%; min-height:44px; margin-top:5px; padding:8px; border:1px solid #94a3b8; border-radius:6px; background:white; font:inherit; }
.scan-status { font-weight:700; margin:0; }
.scan-verified { color:#166534; background:#edf9f0; padding:10px 12px; border-radius:6px; }
.scan-review { color:#854d0e; }
.scan-progress { display:flex; align-items:center; gap:20px; min-width:0; max-width:560px; }
.scan-progress-content { flex:1; min-width:0; }
.scan-visual { position:relative; display:grid; place-items:center; flex:none; width:96px; height:96px; }
.scan-document-icon { display:block; width:44px; height:58px; }
.scan-orbit { position:absolute; inset:9px; border:1px dashed #b8d9c9; border-radius:50%; animation:scan-orbit-turn 2.8s linear infinite; animation-delay:var(--scan-phase,0ms); }
.scan-orbit-lens { position:absolute; top:-15px; left:calc(50% - 15px); display:grid; place-items:center; width:30px; height:30px; border:1px solid #b3d4c3; border-radius:50%; background:#fff; color:#146b4e; box-shadow:0 2px 6px #164e3614; animation:scan-orbit-turn 2.8s linear infinite reverse; animation-delay:var(--scan-phase,0ms); }
.scan-progress-label { display:flex; flex-wrap:wrap; justify-content:space-between; gap:2px 16px; margin:2px 0 6px; font-size:12px; color:#334155; }
.scan-progress-label span { color:#475569; }
.scan-progress-track { position:relative; height:8px; overflow:hidden; border-radius:8px; background:#e2e8f0; }
.scan-progress-fill { display:block; height:100%; border-radius:inherit; background:#258460; }
.scan-progress-running .scan-progress-track::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%); transform:translateX(-100%); animation:scan-document-sweep 1.8s linear infinite; }
.scan-report-summary { display:flex; flex-wrap:wrap; gap:4px 16px; margin:0; font-size:13px; color:#334155; }
.scan-details h5 { margin:14px 0 4px; font-size:13px; }
@keyframes scan-document-sweep { to { transform:translateX(100%); } }
@keyframes scan-orbit-turn { to { transform:rotate(360deg); } }
@keyframes scan-activity-pulse { 50% { opacity:.45; } }
@media(prefers-reduced-motion:reduce){.scan-orbit,.scan-orbit-lens{animation:none;}.scan-orbit-lens{animation:scan-activity-pulse 2.8s ease-in-out infinite !important;animation-delay:var(--scan-phase,0ms) !important;}.scan-progress-running .scan-progress-track::after{animation:none;display:none;}.scan-action-button{transition:none;}.scan-action-button:not(:disabled):not(:focus-visible):active{transform:none;}}
@media(max-width:480px){.scan-progress{gap:14px;}.scan-visual{width:80px;height:88px;}.scan-orbit{inset:9px 3px 5px;}}
.scan-meta { color:#475569; font-size:12px; margin:6px 0; }
.scan-error { color:#9f1239; }
.scan-checks { margin:12px 0; padding-left:20px; }
.scan-checks li { margin:10px 0; }
.scan-checks p { margin:3px 0; }
.scan-checks blockquote { padding:8px 12px; margin:8px 0; border-left:3px solid #cbd5e1; background:#f8fafc; overflow-wrap:anywhere; }
.scan-checks cite { display:block; font-size:12px; font-style:normal; margin-top:6px; }
.scan-human-checks { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; min-width:0; padding:0; margin:12px 0 0; border:0; }
.scan-human-checks legend { font-weight:700; padding:0 5px; }
.scan-human-checks label { display:flex; flex:1 1 240px; gap:10px; align-items:start; padding:8px 0; cursor:pointer; }
.scan-human-checks input { width:20px; height:20px; flex-shrink:0; margin-top:2px; accent-color:#16804a; }
.task-evidence-verified { display:block; color:#166534; font-size:12px; font-weight:600; margin-top:6px; }
.task-detail-hero .task-evidence-verified { color:#bbf7d0; }
@media(max-width:640px){.evidence-section .deliverable-header{flex-wrap:wrap;}.evidence-section .evidence-list{padding:0 10px 12px;}.evidence-section .evidence-file-label{max-width:100%;}.scan-credit-actions,.scan-credit-actions .scan-button{width:100%;}.scan-human-checks{padding:10px;}}
@media(max-width:640px){.deliverable-header{padding:16px 14px 8px;}.evidence-expectation{padding:0 14px 12px;}.evidence-dropzone{margin:0 14px 16px;padding:20px 12px;}.evidence-item{flex-wrap:wrap;}.evidence-file-name{flex-basis:calc(100% - 70px);white-space:normal;overflow-wrap:anywhere;}.evidence-file-meta{margin-left:auto;}.evidence-download-btn{min-height:44px;}.evidence-empty{padding:0 14px 16px;}.evidence-empty .scan-button,.scan-controls,.scan-controls .scan-button{width:100%;}.evidence-archive{margin:0 14px 16px;}}
/* Modal MFA */
.mfa-overlay { position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.6); display:flex; align-items:center; justify-content:center; z-index:9999; }
.mfa-overlay.hidden { display:none; }
.mfa-modal { background:white; border-radius:20px; padding:40px; max-width:400px; width:90%; box-shadow:0 20px 60px rgba(0,0,0,0.3); text-align:center; }
.mfa-modal h3 { font-size:22px; color:#1f2937; margin-bottom:10px; }
.mfa-modal p { color:#6b7280; font-size:14px; margin-bottom:24px; }
.mfa-icon { font-size:48px; margin-bottom:16px; }
.mfa-input { width:100%; padding:16px; border:2px solid #e5e7eb; border-radius:12px; font-size:28px; font-weight:700; text-align:center; letter-spacing:12px; transition:all 0.2s; margin-bottom:20px; }
.mfa-input:focus { outline:none; border-color:#667eea; box-shadow:0 0 0 3px rgba(102,126,234,0.15); }

/* ===== Page Paramètres ===== */
.settings-section { background:white; border-radius:16px; padding:28px; box-shadow:0 1px 3px rgba(0,0,0,0.1); margin-bottom:24px; }
.settings-section-title { font-size:16px; font-weight:700; color:#1e293b; margin-bottom:4px; }
.settings-section-desc { font-size:14px; color:#64748b; margin-bottom:20px; }
.mfa-status { display:flex; align-items:center; gap:12px; padding:16px; border-radius:10px; flex-wrap:wrap; }
.mfa-status.enabled { background:#f0fdf4; border:1px solid #86efac; }
.mfa-status.disabled { background:#f8fafc; border:1px solid #e2e8f0; }
.mfa-status-badge { padding:4px 12px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; }
.mfa-status-badge.enabled { background:#dcfce7; color:#166534; }
.mfa-status-badge.disabled { background:#f1f5f9; color:#64748b; }
.secret-code-box { background:#f8fafc; border:1px dashed #cbd5e1; border-radius:8px; padding:12px; text-align:center; font-family:monospace; font-size:13px; color:#475569; letter-spacing:2px; margin:12px 0; word-break:break-all; }
.setup-qr-container { text-align:center; padding:16px 0; }
.setup-qr-container img { border-radius:12px; border:2px solid #e2e8f0; }

.template-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid #93c5fd; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; margin-right: 8px; }
.template-btn:hover { transform: translateY(-1px); }
.template-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.template-files-block { background:#f8fafc; border:1px solid #dbeafe; border-radius:10px; padding:16px; margin-bottom:18px; }
.template-files-title { font-weight:700; color:#1e293b; margin-bottom:6px; }
.template-files-desc { color:#64748b; font-size:13px; margin-bottom:12px; line-height:1.5; }
.template-file-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid #e2e8f0; }
.template-file-copy { min-width:0; display:grid; gap:3px; }
.template-file-name { font-size:13px; font-weight:700; color:#334155; overflow-wrap:anywhere; }
.template-file-meta { color:var(--app-secondary-text,#64748b); font-size:11px; overflow-wrap:anywhere; }
.template-file-action { min-width:min(250px,100%); display:grid; justify-items:end; gap:5px; }
.template-file-action .template-btn { min-height:44px; margin-right:0; justify-content:center; }
.template-file-status { min-height:18px; color:#64748b; font-size:11px; line-height:1.45; text-align:right; }
.template-file-row[data-state="downloaded"] .template-file-status { color:#2f5d58; font-weight:700; }
.template-file-row[data-state="error"] .template-file-status { color:#b42318; font-weight:700; }
.template-files-retry { min-height:44px; margin-top:10px; }
/* ===== Landing alignée sur le site de référence (minimaliste, juridique : blanc / gris clair / charcoal) ===== */
.landing { font-family: "Helvetica Neue", Arial, "Segoe UI", Roboto, system-ui, sans-serif; color: #212529; }
.landing-nav-logo { color: #1c2024; }
.landing-nav-btn { background: #1c2024; border-radius: 5px; }
.landing-nav-btn:hover { background: #000; }
.landing-hero-text .badge { border-radius: 4px; font-weight: 700; letter-spacing: .02em; }
.landing-hero-text h1 { color: #1c2024; font-weight: 700; letter-spacing: -0.01em; }
.btn-primary-lg { background: #1c2024; border-radius: 5px; }
.btn-primary-lg:hover { background: #000; transform: none; box-shadow: none; }
.btn-outline-lg { border-radius: 5px; }
.landing-login-card { border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.landing-section-header h2 { color: #1c2024; font-weight: 700; }
.landing-feature-icon { border-radius: 6px; }
.landing-feature h3 { color: #1c2024; }
.landing-about-grid h3 { color: #1c2024; }
.landing-about-list li::before { background-color: #1c2024; }
.pricing-card { border: 1px solid #e3e3e5; border-radius: 8px; }
.pricing-card.popular { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.pricing-card.popular::before { border-radius: 4px; }
.landing .btn { background: #1c2024; border-radius: 5px; }
.landing .btn:hover { background: #000; }
.landing .link { color: #1c2024; }

/* ===== Landing v2 : palette riche (encre + émeraude→or), imagerie fondue, mouvements fluides ===== */
.landing-hero { position: relative; overflow: hidden; }
.landing-hero .hero-video { position: absolute; inset: -3%; width: 106%; height: 106%; object-fit: cover; z-index: 0; pointer-events: none; transform: translate3d(0, var(--py, 0px), 0); will-change: transform; }
.landing-hero::before {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        linear-gradient(100deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.70) 40%, rgba(255,255,255,.30) 100%),
        radial-gradient(55% 55% at 18% 22%, rgba(16,185,129,.10), transparent 62%),
        radial-gradient(45% 50% at 88% 26%, rgba(201,162,39,.10), transparent 62%);
}
.landing-hero > *:not(.hero-video) { position: relative; z-index: 2; }

.landing-hero-text .badge { background: linear-gradient(135deg, #ecfdf5, #fbf6e3); color: #0f766e; border: 1px solid rgba(15,118,110,.22); }
.landing-hero-text h1 span {
    background: linear-gradient(100deg, #0f766e, #10b981 42%, #c9a227 88%); background-size: 220% 100%;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
    animation: l25-shift 8s ease-in-out infinite;
}
@keyframes l25-shift { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

.btn-primary-lg, .landing-nav-btn { background: linear-gradient(135deg, #0f766e, #0f9d76); border: 0; }
.btn-primary-lg:hover, .landing-nav-btn:hover { background: linear-gradient(135deg, #0c5f59, #0f766e); box-shadow: 0 10px 26px rgba(15,118,110,.28); transform: translateY(-1px); }
.btn-primary-lg:active, .landing-nav-btn:active { background: linear-gradient(135deg, #0a514c, #0c695f); box-shadow: 0 4px 12px rgba(15,118,110,.22); transform: translateY(0); }
.btn-primary-lg:focus-visible, .landing-nav-btn:focus-visible { outline: 3px solid rgba(228,192,79,.72); outline-offset: 3px; }
.btn-outline-lg { color: #0f766e; border: 1px solid #0f766e; }
.btn-outline-lg:hover { background: #0f766e; color: #fff; }
.landing-nav-links a:hover { color: #0f766e; }

.landing-section-header h2 { display: inline-block; }
.landing-section-header h2::after { content: ""; display: block; width: 54px; height: 3px; margin: 14px auto 0; border-radius: 2px; background: linear-gradient(90deg, #0f766e, #c9a227); }

/* ===== Section Plateforme — cartes prestige + mini pop-up au survol ===== */
.landing-feature { position: relative; text-align: center; background: linear-gradient(180deg, #ffffff, #f7faf9); border: 1px solid #e6ecea; border-radius: 16px; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
.landing-feature .landing-feature-icon { margin-left: auto; margin-right: auto; }
/* Encadré animé vert et or au survol : bordure en dégradé qui tourne autour de la carte */
.landing-feature::after { content: ""; position: absolute; inset: 0; border-radius: 16px; padding: 2px;
    background: linear-gradient(120deg, #0f766e, #c9a227, #0f766e, #c9a227) 0 0 / 300% 300%;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    opacity: 0; transition: opacity .35s ease; animation: featBorder 4s linear infinite; pointer-events: none; }
@keyframes featBorder { to { background-position: 300% 0; } }
.landing-feature:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(15,27,45,.14); }
.landing-feature:hover::after { opacity: 1; }
.landing-feature-icon { transition: transform .35s ease, box-shadow .35s ease; }
.landing-feature:hover .landing-feature-icon { transform: scale(1.06); box-shadow: 0 8px 20px rgba(15,118,110,.16); }
.landing-feature h3 { display: flex; align-items: center; justify-content: center; gap: 8px; }
/* Mini pop-up prestige (« ce que vous obtenez ») */
.feat-pop { position: absolute; left: 50%; bottom: calc(100% + 12px); transform: translate(-50%, 8px); width: 264px; max-width: 86%; background: #0f1b2d; color: #e8eef7; font-size: 12.5px; line-height: 1.55; text-align: left; padding: 14px 16px; border-radius: 12px; box-shadow: 0 18px 44px rgba(5,12,24,.34); border: 1px solid rgba(255,255,255,.08); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .28s ease, transform .28s cubic-bezier(.2,.7,.2,1); z-index: 5; }
.feat-pop::before { content: "Ce que vous obtenez"; display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #34d399; margin-bottom: 6px; }
.feat-pop::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 7px solid transparent; border-top-color: #0f1b2d; }
.landing-feature:hover .feat-pop { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
@media (hover: none) { .feat-pop { display: none; } }

.pricing-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.pricing-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(15,27,45,.10); }
.pricing-card.popular { border-color: #0f766e; }
.pricing-card.popular::before { background: linear-gradient(135deg, #0f766e, #c9a227); }

/* Révélation au défilement (fluide) */
.reveal { opacity: 1; transform: none; }
.reveal.in-view { opacity: 1; transform: none; }
/* Démo produit */
.demo-stage { max-width: 980px; margin: 0 auto; }
.demo-browser { background: #fff; border: 1px solid #e3e3e5; border-radius: 12px; overflow: hidden; box-shadow: 0 26px 60px rgba(15,27,45,.14); }
.demo-browser-bar { display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: #f4f4f4; border-bottom: 1px solid #e3e3e5; }
.demo-browser-bar span { width: 11px; height: 11px; border-radius: 50%; background: #d0d3d6; }
.demo-browser-bar span:nth-child(1) { background: #f0a4a0; } .demo-browser-bar span:nth-child(2) { background: #f0d38a; } .demo-browser-bar span:nth-child(3) { background: #9fd9a8; }
.demo-browser-bar i { margin-left: 12px; font-style: normal; font-size: 12px; color: #6b7075; }
.demo-media { position: relative; aspect-ratio: 16/9; background: #0f1b2d url('product-demo.webp?v=d7b32d10a2ae') center/cover no-repeat; }
.demo-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* Section CTA : la vidéo pleine page transparaît, comme partout ailleurs */
.landing-cta { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; padding: 72px 24px; }
.landing-cta::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(252,252,250,.8), rgba(252,252,250,.55)); }
.landing-cta-inner { position: relative; z-index: 2; max-width: 720px; color: #1c2024; }
.landing-cta-inner h2 { font-size: clamp(26px,3.4vw,38px); font-weight: 700; margin-bottom: 16px; color: #1c2024; }
.landing-cta-inner p { font-size: 17px; color: #475569; margin-bottom: 26px; line-height: 1.6; }
.landing-cta .btn-primary-lg { background: linear-gradient(135deg,#0f9d76,#c9a227); }
/* Fond vidéo global fondu — visible en scrollant chaque section */
.landing { background: transparent; position: relative; z-index: 0; }
.landing-bg-veil { position:fixed; inset:0; z-index:1; pointer-events:none; background:linear-gradient(rgba(250,250,248,.9),rgba(250,250,248,.94)),url("/parcours-bg.webp?v=0688903f81d5") center/cover; }
.landing-section-header h2, .landing-section-header p { text-shadow: 0 1px 14px rgba(255,255,255,.7); }
.landing > *:not(.landing-bg-video):not(.landing-bg-veil) { position: relative; z-index: 2; }
.landing-hero { background: transparent; }
/* Même blanc que les sections voisines — aucune bande visible entre les sections */
.landing-about-bg { background: rgba(252,252,250,.80); }
/* Transitions de vue animées (clic sur une tâche, changement de page) */
::view-transition-old(root) { animation: vtOut .26s ease both; }
::view-transition-new(root) { animation: vtIn .34s cubic-bezier(.2,.7,.2,1) both; }
@keyframes vtOut { to { opacity: 0; transform: translateY(-6px); } }
@keyframes vtIn { from { opacity: 0; transform: translateY(10px); } }
/* ===== Lettres qui brillent selon leur palier ===== */
.shine-verte, .shine-or { font-weight:700; -webkit-text-fill-color:currentColor; background:none; animation:none; }
.shine-verte { color:var(--l25-emerald); }
.shine-or { color:var(--l25-gold-text); }

/* ===== Shine doré qui parcourt l'encadrement (forfait OR, certificat OR) ===== */
@property --ga { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.gold-orbit { position: relative; box-shadow: 0 0 0 1.5px #c9a227; }
.gold-orbit::after {
    content: ""; position: absolute; inset: -3px; border-radius: inherit; padding: 3px;
    background: conic-gradient(from var(--ga), transparent 0deg 282deg, #ffedb0 318deg, #c9a227 340deg, transparent 360deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    animation: goldOrbit 3.6s linear infinite; pointer-events: none;
}
@keyframes goldOrbit { to { --ga: 360deg; } }

/* ===== Parcours d'attestations privées (fil conducteur + badges) ===== */
.journey { position: relative; overflow: hidden; margin: 0 auto; padding: 90px 32px 110px; }
/* La vidéo de fond est celle de la page entière (fixe, derrière tout).
   Le voile part du même blanc translucide (.8) que les sections voisines et
   s'allège au centre pour laisser respirer la vidéo — aucune segmentation. */
.journey::before { content: ""; position: absolute; inset: 0; z-index: 1; background:
    linear-gradient(180deg, rgba(252,252,250,.8) 0%, rgba(252,252,250,.45) 20%, rgba(252,252,250,.45) 80%, rgba(252,252,250,.8) 100%); }
.journey > * { position: relative; z-index: 2; }
.journey .landing-section-header h2 { color: #1c2024; text-shadow: none; }
.journey .landing-section-header p { color: #475569; text-shadow: none; }
.journey > .journey-track { position: relative; max-width: 780px; margin: 44px auto 0; padding-left: 56px; }
/* La ligne s'étend du point de la 1re vignette au point de la dernière (top/bottom posés en JS). */
.journey-line { position: absolute; left: 18px; top: 90px; bottom: 120px; width: 3px; background: rgba(28,32,36,.16); border-radius: 2px; }
#journeyFill { position: absolute; left: 0; top: 0; width: 100%; height: 0%; background: linear-gradient(180deg, #10b981, #0f9d76 52%, #c9a227); border-radius: 2px; transition: height .25s ease-out; }
.j-step { position: sticky; top: 96px; background: rgba(255,255,255,.97); border: 1px solid #e6e6e8; border-radius: 14px; padding: 26px 28px; margin-bottom: 36px; box-shadow: 0 18px 44px rgba(15,27,45,.10); }
.j-kicker { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #6b7075; margin-bottom: 6px; display: block; }
.j-step h3 { margin: 0 0 8px; font-size: 22px; color: #1c2024; }
.j-step p { color: #475569; line-height: 1.65; margin: 0; }
.j-dot { position: absolute; left: -45px; top: 50%; transform: translateY(-50%); width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 3px solid #10b981; box-shadow: 0 0 0 4px rgba(16,185,129,.18); }
.j-step.j-or .j-dot { border-color: #c9a227; box-shadow: 0 0 0 4px rgba(201,162,39,.22); }
.j-step .btn-primary-lg { margin-top: 16px; }

.cert-card { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; border-radius: 12px; padding: 18px 22px; margin-top: 16px; position: relative; }
.l25-seal { width: 92px; height: 92px; object-fit: contain; filter: drop-shadow(0 6px 14px rgba(15,27,45,.22)); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.cert-card:hover .l25-seal { transform: scale(1.12) rotate(-3deg); }
.cert-verte { background: linear-gradient(160deg, #f2fdf7, #ffffff); border: 1.5px solid #10b981; }
.cert-or { background: linear-gradient(160deg, #fffbeb, #ffffff); border: 1.5px solid transparent; }
.cert-card strong { display: block; font-size: 16px; color: #1c2024; }
.cert-card small { color: #6b7075; }

/* Numéros de chapitre dans les titres */
.chapitre { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; font-size: 13px; letter-spacing: .14em; color: #0f766e; margin-bottom: 14px; }
.chapitre::before { content: ""; width: 34px; height: 1.5px; background: linear-gradient(90deg, #0f766e, #c9a227); }
.chapitre::after { content: ""; width: 34px; height: 1.5px; background: linear-gradient(90deg, #c9a227, #0f766e); }
.chapitre.ch-or { color:var(--l25-gold-text); }
.journey .chapitre { color: #0f766e; }

/* Sections à bords francs — sans chevauchement */
#plateforme, .landing-about-bg, #forfaits, .landing-cta { position: relative; }
#plateforme, #forfaits { background: rgba(252,252,250,.80); }

/* ===== Fleur de lys québécoise — filigranes subtils, en fondu ===== */
.landing-about-bg, #plateforme { overflow: hidden; }
.landing-about-bg::after, .landing-cta::after, #plateforme::after {
    content: "\269C\FE0E"; position: absolute; font-family: "Segoe UI Symbol", Georgia, serif;
    line-height: 1; pointer-events: none; user-select: none; z-index: 1;
}
.landing-about-bg::after { left: 2%; top: 34px; font-size: 260px; color: rgba(15,118,110,.055); transform: rotate(7deg); }
#plateforme::after { right: -20px; bottom: -46px; font-size: 240px; color: rgba(15,118,110,.05); transform: rotate(-6deg); z-index: 0; }
.landing-cta::after { right: 4%; top: 26px; font-size: 230px; color: rgba(15,118,110,.05); transform: rotate(5deg); }

.document-kit { position: relative; z-index: 2; display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: center; margin: 42px auto 0; padding: 28px 30px; border: 1px solid rgba(15,118,110,.24); border-radius: 16px; background: linear-gradient(135deg, rgba(236,253,245,.94), rgba(255,251,235,.94)); box-shadow: 0 16px 36px rgba(15,27,45,.08); }
.document-kit-mark { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 15px; background: #0f1b2d; color: #e4c04f; font-size: 29px; }
.document-kit h3 { margin: 0 0 7px; color: #0f1b2d; font-size: 21px; }
.document-kit p { margin: 0; color: #475569; line-height: 1.65; }
.landing-legal-note { max-width: 980px; margin: 0 auto; padding: 20px 32px 4px; color: #cbd5e1; font-size: 12px; line-height: 1.65; text-align: center; }

.plan-locked { opacity: .72; cursor: not-allowed !important; }
.nav-item.plan-locked::after { content: "Accès"; margin-left: auto; padding: 2px 7px; border: 1px solid rgba(52,211,153,.28); border-radius: 999px; color: #bdeedb; background: rgba(15,157,118,.14); font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.plan-lock-message { padding: 16px 18px; border: 1px solid #cfdad7; border-left: 3px solid #0f766e; border-radius: 8px; background: #f5f8f7; color: #36514d; line-height: 1.55; }

/* ===== Paliers dans les forfaits ===== */
.pricing-tier { font-size: 13px; font-weight: 700; color: #475569; margin: -2px 0 10px; }
.pricing-card.pricing-verte { border-color: #10b981; }

/* ===== Connexion : centrée + aux couleurs de la marque ===== */
.auth-page {
    background:
        radial-gradient(60% 50% at 15% 10%, rgba(16,185,129,.20), transparent 60%),
        radial-gradient(55% 45% at 88% 92%, rgba(201,162,39,.18), transparent 60%),
        #0f1b2d;
}
.auth-container { margin: auto; }
.auth-card h2 { text-align: center; }

html { scroll-behavior: smooth; }
.btn-pricing-primary { background: linear-gradient(135deg, #0f766e, #0f9d76); }
.btn-pricing-primary:hover { background: linear-gradient(135deg, #0c5f59, #0f766e); }
.btn-pricing-outline { color: #0f766e; border: 2px solid #0f766e !important; }
.btn-pricing-outline:hover { background: #ecfdf5; }
/* Mouvement actif par défaut; le réglage système est respecté plus bas. */

/* ===== App v2 : continuité landing (encre / émeraude / or / navy) =====
   Même pattern que les refontes précédentes : bloc d'override appendu,
   la cascade fait le travail — aucun markup applicatif à réécrire. */
body { font-family: "Helvetica Neue", Arial, "Segoe UI", Roboto, system-ui, sans-serif; background: #f4f6f5; }

/* Sidebar : même navy que la section stats et la page de connexion; sticky
   pour rester visible pendant le défilement du contenu. */
.sidebar { background: linear-gradient(180deg, #16283f 0%, #0f1b2d 100%); position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.sidebar-header { border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar-header h1 svg { stroke: #34d399; }
.nav-item { color: #8fa3bd; border-radius: 10px; }
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav-item.active { background: linear-gradient(135deg, #0f766e, #0f9d76); color: #fff; box-shadow: 0 6px 18px rgba(15,118,110,.35); }
.sidebar-footer { border-top: 1px solid rgba(255,255,255,.08); }
.user-avatar { background: linear-gradient(135deg, #0f766e, #0f9d76); }
.logout-btn { border-color: rgba(255,255,255,.16); color: #8fa3bd; }
.logout-btn:hover { background: rgba(255,255,255,.08); color: #fff; }

/* Boutons et liens : gradient émeraude de la landing */
.btn { background: linear-gradient(135deg, #0f766e, #0f9d76); border-radius: 10px; }
.btn:hover { background: linear-gradient(135deg, #0c5f59, #0f766e); box-shadow: 0 8px 22px rgba(15,118,110,.26); }
.btn-secondary, .btn.btn-secondary { background: #f1f5f4; color: #1c2024; }
.btn-secondary:hover { background: #e6ecea; box-shadow: none; }
.link { color: #0f766e; }
.form-group input:focus, .form-group select:focus { border-color: #0f9d76; box-shadow: 0 0 0 3px rgba(15,157,118,.12); }
.filter-select:focus, .search-input:focus { border-color: #0f9d76; }

/* En-têtes et cartes : blanc chaud, bordures fines, ombres navy douces */
.main-header h2 { font-weight: 700; }
.card, .stat-card, .settings-section { border: 1px solid #e6ecea; box-shadow: 0 10px 30px rgba(15,27,45,.05); border-radius: 16px; }
.card-title, .stat-card-value, .settings-section-title { color: #1c2024; }
.page.active { animation: vtIn .34s cubic-bezier(.2,.7,.2,1); }

/* Icônes de stats : palette émeraude / or / navy (le rouge reste : alerte) */
.stat-card-icon.purple { background: #ecfdf5; color: #0f766e; }
.stat-card-icon.blue { background: #e8eef7; color: #16283f; }
.stat-card-icon.or { background: #fbf6e3; color: #a87e1c; }

/* Progression, refs et sections : émeraude et navy */
.task-ref { background: #0f1b2d; }
.domain-section-header { background: linear-gradient(135deg, #0f766e, #0f9d76); border-radius: 12px; }
.chart-bar { background: linear-gradient(180deg, #0f9d76 0%, #0f766e 100%); }
.task-checkbox:hover { border-color: #0f9d76; background: #ecfdf5; }
.task-checkbox.checked { background: #0f9d76; border-color: #0f9d76; }
.task-section-content { border-left-color: #0f9d76; }
.tasks-breadcrumb a { color: #0f766e; }
.info-btn:hover, .info-btn.active { background: #0f766e; }
.step-item.done .step-number { background: #0f9d76; }
.toast { background: #0f1b2d; }
.toast.success { background: #0f766e; }

/* Tables sombres : même navy que la marque */
.domains-table thead th, .domains-table tfoot td { background: #0f1b2d; border-color: #16283f; }
.domains-table tbody tr:hover td { background: #1d3049; }
.tasks-table thead th { background: #16283f; }

/* Widget quiz et modal : émeraude au lieu du vert Tailwind */
#quizProgressBar, #quizModalProgressBar { background: linear-gradient(90deg, #0f766e, #0f9d76) !important; }

.template-btn { background: #ecfdf5; border-color: #99e3c9; color: #0f766e; }
.template-btn:hover { background: #d3f5e7; border-color: #0f9d76; }

/* Plateforme prestige : mêmes navy, émeraude, or et mouvements que la landing. */
.main-content { position: relative; isolation: isolate; background: rgba(244,246,245,.78); }
.main-content > :not(.app-bg-video) { position: relative; z-index: 1; }
.main-header { min-height: 92px; position: relative; overflow: hidden; background: linear-gradient(120deg, rgba(15,27,45,.97), rgba(22,40,63,.94)); border-bottom: 1px solid rgba(201,162,39,.35); box-shadow: 0 14px 34px rgba(15,27,45,.12); }
.main-header::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 82% 18%, rgba(52,211,153,.15), transparent 25%), radial-gradient(circle at 58% 110%, rgba(201,162,39,.13), transparent 30%); pointer-events: none; }
.main-header h2 { color: #f8fafc; letter-spacing: -.02em; }
.main-header .subtitle { color: #b5c3d2; }
.app-fleur { position: absolute; right: 32px; top: 50%; translate: 0 -50%; color: #e4c04f; font-size: 42px; opacity: .48; filter: drop-shadow(0 0 14px rgba(228,192,79,.35)); animation: fleurBreath 4.8s ease-in-out infinite; }
@keyframes fleurBreath { 50% { opacity: .75; transform: scale(1.06); } }

#page-dashboard .stats-grid { gap: 14px; margin-bottom: 20px; }
#page-dashboard .stat-card { min-height: 148px; padding: 18px; position: relative; overflow: hidden; border: 1px solid rgba(143,163,189,.22); }
#page-dashboard .stat-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, transparent, #34d399, transparent); }
#page-dashboard .stat-card:nth-child(2)::before { background: linear-gradient(90deg, transparent, #e4c04f, transparent); }
#page-dashboard .stat-card:nth-child(3)::before { background: linear-gradient(90deg, transparent, #f87171, transparent); }
#page-dashboard .stat-card:nth-child(4)::before { background: linear-gradient(90deg, transparent, #8fa3bd, transparent); }
#page-dashboard .stat-card-header { margin-bottom: 10px; }
#page-dashboard .stat-card-title { color: #a9b8ca; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
#page-dashboard .stat-card-value { color: #f8fafc; line-height: 1.1; }
#page-dashboard .stat-card-change { color: #a9b8ca; }
#page-dashboard .stat-card-change.positive { color: #6ee7b7; }
#page-dashboard .stat-card-change.negative { color: #fda4af; }
#page-dashboard .stat-card-icon { width: 34px; height: 34px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); }
#page-dashboard .stat-card-icon.blue { color: #bfdbfe; background: rgba(96,165,250,.16); border-color: rgba(191,219,254,.28); }
#page-dashboard #certStatus span { background: rgba(255,255,255,.08) !important; color: #d6e0eb !important; border: 1px solid rgba(255,255,255,.12); }
#page-dashboard .shine-verte { background-image: linear-gradient(110deg, #6ee7b7 0%, #6ee7b7 42%, #ecfff8 50%, #6ee7b7 58%, #6ee7b7 100%); }
#page-dashboard .shine-or { background-image: linear-gradient(110deg, #e4c04f 0%, #e4c04f 42%, #fff4c5 50%, #e4c04f 58%, #e4c04f 100%); }

.tour-restart-button { position:absolute; right:86px; top:50%; translate:0 -50%; z-index:2; padding:9px 13px; color:#dce8f2; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.tour-restart-button:hover { color:#fff; background:rgba(255,255,255,.14); }
.tour-restart-button:focus-visible, .tour-button:focus-visible, .tour-close:focus-visible { outline:3px solid rgba(110,231,183,.48); outline-offset:3px; }
.tour-welcome-overlay { position:fixed; inset:0; z-index:15020; display:grid; place-items:center; padding:20px; }
.tour-welcome-overlay[hidden], .tour-shield[hidden], .tour-spotlight[hidden], .tour-popover[hidden] { display:none; }
.tour-welcome-dialog { width:min(560px,100%); padding:32px; color:#eaf2f8; background:linear-gradient(145deg,#0f1b2d,#173653); border:1px solid rgba(110,231,183,.34); border-radius:20px; box-shadow:0 28px 90px rgba(0,0,0,.42); }
.tour-welcome-kicker { display:block; margin-bottom:8px; color:#6ee7b7; font-size:11px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.tour-welcome-dialog h2 { color:#fff; font-size:26px; line-height:1.2; }
.tour-welcome-dialog p { margin-top:12px; color:#c8d6e3; font-size:15px; line-height:1.65; }
.tour-welcome-list { margin:18px 0 0; padding:0; display:grid; gap:9px; list-style:none; }
.tour-welcome-list li { display:flex; align-items:flex-start; gap:10px; color:#dce8f2; font-size:13px; line-height:1.5; }
.tour-welcome-list li::before { content:'✓'; width:21px; height:21px; display:grid; place-items:center; flex:0 0 auto; font-weight:900; }
.tour-welcome-actions { margin-top:24px; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; }
.tour-button { padding:10px 16px; border:1px solid #6ee7b7; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.tour-button.secondary:hover { background:rgba(255,255,255,.08); }
.tour-shield { position:fixed; inset:0; z-index:14990; background:transparent; cursor:default; }
.tour-spotlight { position:fixed; z-index:15000; pointer-events:none; }
.tour-popover { position:fixed; z-index:15010; width:min(390px,calc(100vw - 28px)); padding:20px; color:#e8eef5; background:#0f1b2d; border:1px solid rgba(110,231,183,.36); border-radius:16px; box-shadow:0 22px 60px rgba(0,0,0,.42); }
.tour-popover-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.tour-step-count { display:block; margin-bottom:5px; color:#6ee7b7; font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.tour-popover h3 { color:#fff; font-size:19px; line-height:1.3; }
.tour-popover p { margin-top:9px; color:#c8d6e3; font-size:13px; line-height:1.6; }
.tour-close { padding:5px 7px; flex:0 0 auto; color:#b9c8d7; background:transparent; border:0; border-radius:7px; font:inherit; font-size:18px; cursor:pointer; }
.tour-close:hover { color:#fff; background:rgba(255,255,255,.08); }
.tour-popover-actions { margin-top:18px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tour-popover-nav { display:flex; gap:8px; }
.tour-skip { padding:7px 0; color:#b9c8d7; background:transparent; border:0; font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; }
.tour-skip:hover { color:#fff; }
.compliance-time-note { margin-bottom:20px; padding:14px 16px; display:flex; align-items:flex-start; gap:11px; color:#634d16; background:#fff8dc; border:1px solid #ead58c; border-radius:12px; font-size:13px; line-height:1.55; }
.compliance-time-note strong { color:#49370d; }
.compliance-time-note-mark { flex:0 0 auto; font-size:18px; line-height:1.3; }

.quiz-once-card { width: 100%; margin-bottom: 24px; padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; cursor: pointer; text-align: left; color: #1c2024; font: inherit; background: linear-gradient(135deg, rgba(236,253,245,.96), rgba(251,246,227,.94)); border: 0; border-radius: 16px; box-shadow: 0 12px 32px rgba(15,27,45,.09); transition: transform .2s, box-shadow .2s; }
.quiz-once-card:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(15,118,110,.16); }
.quiz-once-card:focus-visible { outline: 3px solid var(--app-focus,#2f5d58); outline-offset: 4px; }
.quiz-once-intro { display: flex; align-items: center; gap: 16px; min-width: 0; }
.quiz-once-copy, .quiz-once-title, .quiz-once-subtitle { display: block; }
.quiz-once-fleur { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto; color: #fff1b2; background: linear-gradient(145deg, #0f1b2d, #0f766e); box-shadow: inset 0 0 0 1px rgba(255,255,255,.13), 0 8px 18px rgba(15,27,45,.18); }
.quiz-once-title { color: #0f766e; font-size: 17px; font-weight: 800; }
.quiz-once-subtitle { margin-top: 3px; color: #3a4654; font-size: 13px; line-height: 1.45; }
.quiz-once-progress { flex: 0 0 auto; min-width: 132px; text-align: center; }
.quiz-once-progress > span { display: block; }
.quiz-once-progress #quizProgressCount { color: #0f766e; font-size: 28px; font-weight: 800; }
.quiz-once-progress-label { color: #3a4654; font-size: 12px; font-weight: 600; }
.quiz-progress-track { width: 120px; height: 6px; margin: 7px auto 0; overflow: hidden; border-radius: 999px; background: #dbe7e2; }
#page-quiz .main-header { gap: 14px; flex-wrap: wrap; }
#page-quiz .main-header > div:first-child { min-width: 0; flex: 1 1 320px; }
#quiz-progress-badge { flex: 0 0 auto; display: inline-flex; align-items: center; padding: 6px 14px; color: #15803d; background: #dcfce7; border-radius: 20px; font-size: 14px; font-weight: 600; line-height: 1.35; white-space: nowrap; }
.quiz-completion-panel { margin-top:24px; padding:20px; color:#243244; background:#fff; border:1px solid var(--app-border,#d8e0de); border-radius:10px; }
.quiz-completion-panel:focus { outline:3px solid var(--app-focus,#2f5d58); outline-offset:3px; }
.quiz-completion-panel[data-state="success"] { background:#f3f6f5; border-color:#b9cfca; }
.quiz-completion-panel[data-state="error"], .quiz-completion-panel[data-state="validation-error"] { border-color:#d7a29d; }
.quiz-completion-title { margin:0; color:#17293b; font-size:18px; line-height:1.35; }
.quiz-completion-message { max-width:68ch; margin:7px 0 0; color:#526174; font-size:14px; line-height:1.6; }
.quiz-completion-error { margin:12px 0 0; padding:10px 12px; color:#8f2018; background:#fff6f5; border:1px solid #e7bbb7; border-radius:7px; font-size:13px; line-height:1.5; }
.quiz-completion-actions { margin-top:18px; display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.quiz-completion-actions[hidden] { display:none; }
.quiz-completion-button { min-height:44px; padding:10px 16px; border:1px solid transparent; border-radius:6px; font:inherit; font-size:13px; font-weight:750; cursor:pointer; }
.quiz-completion-button:focus-visible { outline:3px solid var(--app-focus,#2f5d58); outline-offset:2px; }
.quiz-completion-button:disabled { cursor:wait; opacity:.68; }
.quiz-completion-button.primary { color:#fff; background:var(--app-accent-strong,#2f5d58); }
.quiz-completion-button.secondary { color:#2f5d58; background:#edf3f1; border-color:#b9cfca; }
.quiz-completion-button.tertiary { color:#425267; background:transparent; border-color:#cbd5e1; }
.quiz-q.quiz-required-missing { outline:2px solid #b42318; outline-offset:5px; border-radius:5px; }

.dashboard-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.dashboard-action-card { min-width: 0; padding: 22px; position: relative; overflow: hidden; background: rgba(255,255,255,.94); border: 1px solid #dce7e3; border-radius: 16px; box-shadow: 0 14px 34px rgba(15,27,45,.08); }
.dashboard-action-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, #0f766e, #34d399, transparent); }
.dashboard-action-card.next-action-card::before { background: linear-gradient(90deg, #a87e1c, #e4c04f, transparent); }
.dashboard-action-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.dashboard-action-fleur { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; color: #fff1b2; background: linear-gradient(145deg, #0f1b2d, #0f766e); border-radius: 50%; font-size: 16px; }
.dashboard-action-heading h3 { color: #0f1b2d; font-size: 16px; }
#page-dashboard .journey-progress-list { display: grid; gap: 18px; }
#page-dashboard .journey-progress-label { margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #435267; font-size: 13px; font-weight: 700; }
#page-dashboard .journey-progress-label strong { font-variant-numeric: tabular-nums; }
#page-dashboard .journey-progress-label small { color: #718094; font-size: 10px; font-weight: 650; }
#page-dashboard .journey-track { height: 8px; overflow: hidden; background: #e5ece9; border-radius: 999px; box-shadow: inset 0 1px 2px rgba(15,27,45,.08); }
#page-dashboard .journey-fill { height: 100%; width: 0; border-radius: inherit; transition: width .5s ease; }
#page-dashboard .journey-fill.verte { background: linear-gradient(90deg, #0f766e, #34d399); }
.next-task { display: grid; grid-template-columns: auto 1fr; gap: 12px 14px; align-items: start; }
.next-task-ref { padding: 6px 9px; color: #fff; background: #0f1b2d; border-radius: 7px; font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.next-task-copy { min-width: 0; }
.next-task-title { color: #1c2024; font-size: 15px; font-weight: 750; line-height: 1.35; }
.next-task-meta { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 7px; color: #718094; font-size: 12px; }
.next-task-level { padding: 2px 7px; border-radius: 999px; font-weight: 800; }
.next-task-level.verte { color: #0f6a50; background: #dcfce7; }
.next-task-level.or { color: #7a5c12; background: #fbf1c9; }
.next-task-button { grid-column: 1 / -1; width: max-content; margin-top: 4px; padding: 10px 16px; color: #fff; background: linear-gradient(135deg, #0f766e, #0f9d76); border: 0; border-radius: 9px; font: inherit; font-size: 13px; font-weight: 750; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.next-task-button:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(15,118,110,.2); }
.next-task-button:focus-visible { outline: 3px solid rgba(15,157,118,.3); outline-offset: 3px; }
.journey-complete { padding: 18px; text-align: center; color: #0f5132; background: #ecfdf5; border: 1px solid #b7e8d6; border-radius: 12px; }
.journey-complete span { display: block; margin-bottom: 7px; color: #a87e1c; font-size: 24px; }

.domains-page-heading { margin-bottom: 20px; display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.domains-page-heading .card-title { margin-bottom: 4px; font-size: 22px; }
.domains-kicker { color: #0f766e; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.domains-prestige { border-radius: 18px; background: #0f1b2d; box-shadow: 0 20px 46px rgba(15,27,45,.22); }
.domains-table-scroll { overflow-x: auto; border-radius: inherit; -webkit-overflow-scrolling: touch; }
.domains-table { min-width: 760px; border-radius: 18px; box-shadow: none; }
.domains-table thead th { padding: 18px 20px; background: linear-gradient(180deg, #0f1b2d, #122239); color: #a9b8ca; border-bottom: 1px solid rgba(228,192,79,.24); }
.domains-table tbody td { padding: 16px 20px; background: rgba(22,40,63,.96); border-color: rgba(143,163,189,.14); }
.domains-table tbody tr:nth-child(even) td { background: rgba(25,46,70,.96); }
.domains-table tbody tr:hover td, .domains-table tbody tr:focus-visible td { background: #203a56; }
.domains-table tbody tr:focus-visible { outline: none; }
.domains-table tfoot td { padding: 18px 20px; background: linear-gradient(180deg, #122239, #0f1b2d); border-top: 1px solid rgba(228,192,79,.24); }
.domains-table tfoot .domains-compliance-note td { padding: 14px 20px; color: #dbe7e4; background: #16283f; font-size: 13px; font-weight: 500; line-height: 1.5; text-align: left; }
.domains-table tfoot .domains-compliance-note strong { color: #f4d77b; }
.domain-index { display: inline-block; min-width: 32px; margin-right: 8px; font-weight: 800; }
.domains-table .domain-index.shine-verte { background-image: linear-gradient(110deg, #34d399 0%, #34d399 42%, #d7fff0 50%, #34d399 58%, #34d399 100%); }
.domains-table .completed-bar-track { width: 76px; height: 7px; background: rgba(143,163,189,.24); box-shadow: inset 0 1px 2px rgba(0,0,0,.28); }
.domains-table .completed-bar-fill { background: linear-gradient(90deg, #0f9d76, #e4c04f); box-shadow: 0 0 10px rgba(52,211,153,.35); }

.task-detail-hero { position: relative; margin-bottom: 22px; padding: 26px 28px 4px; color: #e8eef5; background: linear-gradient(130deg, rgba(15,27,45,.98), rgba(22,40,63,.96)); border: 1px solid rgba(201,162,39,.28); border-radius: 18px; box-shadow: 0 18px 42px rgba(15,27,45,.18); }
.task-detail-hero::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle at 92% 12%, rgba(52,211,153,.16), transparent 28%), radial-gradient(circle at 10% 120%, rgba(201,162,39,.13), transparent 30%); pointer-events: none; }
.task-detail-hero > * { position: relative; }
.task-detail-header { margin-bottom: 18px; }
.task-title-fleur { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: #fff1b2; background: rgba(15,157,118,.2); border: 1px solid rgba(228,192,79,.35); border-radius: 50%; font-size: 18px; filter: drop-shadow(0 0 9px rgba(228,192,79,.2)); }
.task-detail-header h3 { color: #f8fafc; font-size: clamp(20px,2.2vw,28px); line-height: 1.2; }
.task-detail-description { margin: -4px 0 18px; max-width: 900px; color: #d7e2ed; font-size: 14px; line-height: 1.65; }
.task-detail-header .shine-verte { background-image: linear-gradient(110deg, #f8fafc 0%, #f8fafc 42%, #8ff7cf 50%, #f8fafc 58%, #f8fafc 100%); }
.task-detail-hero .info-btn { width: 34px; height: 34px; color: #e4c04f; background: rgba(255,255,255,.08); border: 1px solid rgba(228,192,79,.35); }
.task-detail-hero .info-btn:hover, .task-detail-hero .info-btn.active { background: #0f766e; color: #fff; }
.task-detail-status { margin-bottom: 18px; }
.task-detail-status .status-chip { border: 1px solid rgba(255,255,255,.14); }
.task-detail-status .status-chip.pending { color: #d6e0eb; background: rgba(255,255,255,.08); }
.task-detail-status .status-chip.completed { color: #9ff1d0; background: rgba(15,157,118,.18); }
.task-detail-status .status-chip.needs-review { color: #ffe69a; background: rgba(201,162,39,.18); border-color: rgba(228,192,79,.32); }
.review-confirm-btn { padding: 7px 12px; color: #0f1b2d; background: #f4d77b; border: 1px solid #e4c04f; border-radius: 999px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.review-confirm-btn:hover { background: #fff0b3; }
.review-confirm-btn:focus-visible { outline: 3px solid rgba(228,192,79,.35); outline-offset: 2px; }
.task-detail-meta { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1px; margin: 0 -28px; padding: 1px 28px 0; background: rgba(143,163,189,.16); }
.task-detail-meta-item { min-width: 0; padding: 14px 16px; color: #e0e8f1; background: rgba(15,27,45,.74); line-height: 1.35; }
.task-detail-meta-item strong { display: block; margin-bottom: 4px; color: #8fa3bd; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.task-detail-meta-item span { overflow-wrap: anywhere; }
.legal-panel { border-color: rgba(201,162,39,.55); box-shadow: 0 12px 28px rgba(122,92,18,.08); }
.detail-section { position: relative; padding: 26px; background: rgba(255,255,255,.94); border-color: #dce7e3; border-radius: 16px; box-shadow: 0 14px 34px rgba(15,27,45,.07); }
.detail-section::before { content: ""; position: absolute; inset: 16px auto 16px 0; width: 3px; background: linear-gradient(#0f766e, #34d399); border-radius: 999px; }
.detail-section.deliverables-section::before { background: linear-gradient(#a87e1c, #e4c04f); }
.detail-section-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #dce7e3; }
.detail-section h4.detail-section-heading { margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #dce7e3; }
.section-index { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #0f1b2d, #0f766e); box-shadow: 0 7px 16px rgba(15,27,45,.17); }
.deliverables-section .section-index { color: #0f1b2d; background: linear-gradient(145deg, #e4c04f, #fff1b2); }
.section-heading-copy { display: grid; gap: 2px; }
.section-heading-copy small { color: #7b8999; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.step-list { display:grid; gap:12px; list-style:none; }
.action-accordion { overflow:hidden; border:1px solid #dce7e3; border-radius:13px; background:#fff; transition:border-color .2s,box-shadow .2s; }
.action-accordion:hover, .action-accordion.expanded { border-color:#8ed7be; box-shadow:0 9px 22px rgba(15,118,110,.08); }
.action-summary { width:100%; padding:15px 16px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:13px; color:#243244; background:transparent; border:0; text-align:left; font:inherit; cursor:pointer; }
.action-summary:focus-visible { outline:3px solid var(--app-focus,#2f5d58); outline-offset:-3px; }
.action-accordion .step-number { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; color:#0f766e; background:#e8f7f1; border:1px solid #b9e8d7; border-radius:50%; font-weight:850; }
.action-accordion.done .step-number { color:#fff; background:#0f9d76; border-color:#0f9d76; }
.action-summary-copy { min-width:0; display:grid; gap:3px; }
.step-label { color:#243244; font-size:14px; font-weight:720; line-height:1.5; }
.action-accordion.done .step-label { color:#84909d; text-decoration:line-through; }
.action-progress-label { color:var(--app-secondary-text,#64748b); font-size:11px; font-weight:600; }
.action-chevron { color:#0f766e; font-size:19px; transition:transform .2s; }
.action-accordion.expanded .action-chevron { transform:rotate(180deg); }
.action-panel { padding:0 16px 17px 63px; border-top:1px solid #edf1f0; }
.action-panel[hidden] { display:none; }
.action-explanation { margin:14px 0 0; color:#425267; font-size:13px; line-height:1.6; }
.action-example { margin:11px 0 14px; padding:10px 12px; color:#36556b; background:#edf7f4; border:1px solid #d8e4e1; border-radius:8px; font-size:12px; line-height:1.55; }
.action-proof-note { margin:-7px 0 16px 47px; color:#5b6978; font-size:12px; line-height:1.55; }
.subaction-list { display:grid; gap:8px; list-style:none; }
.subaction-label { padding:10px 11px; display:flex; align-items:flex-start; gap:10px; color:#334155; background:#f8faf9; border:1px solid #e3ebe8; border-radius:9px; font-size:13px; line-height:1.5; cursor:pointer; }
.subaction-label:hover { border-color:#a9dccb; background:#f1faf6; }
.subaction-label input { width:18px; height:18px; margin:1px 0 0; flex:0 0 auto; accent-color:#0f9d76; }
.subaction-label input:focus-visible { outline:3px solid var(--app-focus,#2f5d58); outline-offset:2px; }
.subaction-label input:checked + span { color:#8a949f; text-decoration:line-through; }
.template-hint { padding: 13px 15px; color: #36556b !important; background: #edf7f4; border: 1px solid #d8e4e1; border-radius: 8px; line-height: 1.55; }
.deliverable-guidance { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.guidance-item { min-width: 0; padding: 15px; color: #405065; background: #f7f9f8; border: 1px solid #e1e7e5; border-top: 2px solid #e4c04f; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.guidance-label { display: block; margin-bottom: 7px; color: #7a5c12; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guidance-value { display: block; color: #405065; overflow-wrap: anywhere; }
.deliverable-block { border-color: #dce7e3; box-shadow: 0 7px 18px rgba(15,27,45,.04); }
.deliverable-icon { background: #edf7f4; color: #0f766e; }

/* ===== Plateforme sobre : teintes retenues, profondeur légère ===== */
:root {
    --app-accent: #3e726b;
    --app-accent-strong: #2f5d58;
    --app-accent-soft: #edf3f1;
    --app-secondary-text: #64748b;
    --app-focus: #2f5d58;
    --app-navy: #17293b;
    --app-navy-raised: #1d3145;
    --app-border: #d8e0de;
    --app-shadow: 0 3px 12px rgba(15,27,45,.08);
}
#dashboardPage .main-header { background:var(--app-navy); border-bottom-color:#34485b; box-shadow:0 3px 12px rgba(15,27,45,.12); }
#dashboardPage .main-header::before { display:none; }
#dashboardPage .app-fleur { opacity:.25; filter:none; animation:none; }
#dashboardPage .nav-item.active { background:var(--app-accent-strong); box-shadow:none; }
#dashboardPage .user-avatar { background:var(--app-accent-strong); }
#dashboardPage .page.active { animation:none; }
#dashboardPage .shine-verte, #dashboardPage .shine-or { background:none; animation:none; -webkit-text-fill-color:currentColor; color:inherit; }
#dashboardPage .gold-orbit { box-shadow:none; }
#dashboardPage .gold-orbit::after { display:none; }

#page-dashboard .stat-card { background:var(--app-navy-raised); border-color:#3a4c5d; border-radius:10px; box-shadow:0 2px 8px rgba(15,27,45,.10); }
#page-dashboard .stat-card::before { display:none; }
#page-dashboard .stat-card-value { font-size:28px; }
#page-dashboard .stat-card-change.positive, #page-dashboard .shine-verte { color:#9bc4bd; }
#page-dashboard .shine-or { color:#d5c38c; }
#page-dashboard .stat-card-icon.green { color:#b0cec9; background:rgba(155,196,189,.10); border-color:rgba(176,206,201,.20); }
#page-dashboard .stat-card-icon.or { color:#d5c38c; background:rgba(213,195,140,.10); border-color:rgba(213,195,140,.20); }
#page-dashboard .compliance-time-note { color:#574b2b; background:#faf7ed; border-color:#ded5b9; border-radius:8px; }
#page-dashboard .quiz-once-card { background:#fff; border:1px solid var(--app-border); border-radius:10px; box-shadow:var(--app-shadow); }
#page-dashboard .quiz-once-card:hover { transform:none; box-shadow:0 4px 14px rgba(15,27,45,.10); }
#page-dashboard .quiz-once-fleur, #page-dashboard .dashboard-action-fleur { color:#eef5f3; background:var(--app-accent-strong); border-radius:8px; box-shadow:none; }
#page-dashboard .quiz-once-title, #page-dashboard .quiz-once-progress #quizProgressCount { color:var(--app-accent-strong); }
#page-dashboard .dashboard-action-card { border-color:var(--app-border); border-radius:10px; box-shadow:var(--app-shadow); }
#page-dashboard .dashboard-action-card::before { display:none; }
#page-dashboard .journey-fill.verte, #quizProgressBar, #quizModalProgressBar { background:var(--app-accent) !important; }
#page-dashboard .journey-fill.or { background:#a58a48; }
#page-dashboard .next-task-button { background:var(--app-accent-strong); border-radius:6px; box-shadow:none; }
#page-dashboard .next-task-button:hover { background:#264f4a; transform:none; box-shadow:none; }
#page-dashboard .journey-complete { color:#294e49; background:var(--app-accent-soft); border-color:#cbdad7; border-radius:8px; }

#dashboardPage .nav-item[type="button"] { width:100%; border:0; text-align:left; font:inherit; background:transparent; }
#dashboardPage .nav-item[type="button"].active { background:var(--app-accent-strong); }
#dashboardPage .faq-nav-short { display:none; }
#dashboardPage .nav-item:focus-visible, #dashboardPage .journey-help-link:focus-visible, #dashboardPage .sequence-start-button:focus-visible, #page-faq summary:focus-visible { outline:3px solid #769d96; outline-offset:3px; }
#page-tasks .domain-sequence-note { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 24px; padding:22px 24px; border:1px solid #c3d3ce; border-radius:12px; background:#eff5f2; color:#263e38; }
#page-tasks .domain-sequence-note strong { font-size:17px; line-height:1.4; }
#page-tasks .domain-sequence-note p { margin:7px 0 0; max-width:75ch; line-height:1.65; font-size:14px; }
#page-tasks .sequence-progress { display:block; margin-top:10px; color:#365e52; font-size:13px; font-weight:600; }
#dashboardPage .sequence-start-button { flex-shrink:0; padding:12px 16px; border:0; border-radius:7px; color:#fff; background:#315f52; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
#dashboardPage .sequence-start-button:hover { background:#264b41; }
#dashboardPage .journey-help-link { border:0; padding:6px 0; color:#315f52; background:transparent; font:inherit; font-size:14px; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
#page-tasks .domain-name-copy { display:inline-block; vertical-align:middle; }
#page-tasks .domain-sequence-label { display:block; margin-top:5px; color:#b3c5d5; font-size:11px; font-weight:400; }
#page-tasks .document-reading-guide { margin:0 0 22px; color:#334155; }
#page-tasks .document-reading-guide dl { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:0 0 14px; padding-bottom:18px; border-bottom:1px solid var(--app-border); }
#page-tasks .document-reading-guide dt { color:#284d43; font-size:15px; font-weight:700; }
#page-tasks .document-reading-guide dd { margin:7px 0 0; font-size:14px; line-height:1.6; }
#page-tasks .document-reading-guide p { max-width:75ch; margin:0; font-size:13px; line-height:1.65; }
#page-tasks .template-document-role { display:block; margin-bottom:5px; color:#315f52; font-size:12px; font-weight:700; }
#page-tasks .task-sequence-lock { margin-top:14px; color:#d8e7e1; font-size:14px; line-height:1.65; }
#page-tasks input[type="checkbox"]:disabled { cursor:not-allowed; opacity:.65; }
#page-tasks .review-confirm-btn:disabled { cursor:not-allowed; opacity:.65; }
#page-faq .faq-heading { max-width:72ch; margin:0 0 24px; }
#page-faq .faq-heading h3 { margin:0 0 10px; font-size:25px; color:#17293b; }
#page-faq .faq-heading p { color:#475569; line-height:1.7; font-size:15px; }
#page-faq .faq-list { max-width:860px; padding:0 26px; border:1px solid var(--app-border); border-radius:12px; background:#fff; }
#page-faq details + details { border-top:1px solid var(--app-border); }
#page-faq summary { padding:22px 0; color:#20382f; font-size:16px; font-weight:600; line-height:1.5; cursor:pointer; }
#page-faq details p { max-width:72ch; margin:0 0 18px; color:#334155; font-size:15px; line-height:1.8; }
#page-faq .faq-footer { margin-top:20px; }
@media (max-width:760px) {
    #page-tasks .domain-sequence-note { align-items:flex-start; flex-direction:column; gap:16px; padding:18px; }
    #page-tasks .document-reading-guide dl { grid-template-columns:1fr; gap:16px; }
    #page-faq .faq-list { padding:0 18px; }
}

#page-tasks .domains-prestige, #page-tasks .domains-table { border-radius:10px; box-shadow:0 3px 12px rgba(15,27,45,.12); }
#page-tasks .domains-table thead th, #page-tasks .domains-table tfoot td { background:var(--app-navy); }
#page-tasks .domains-table .domain-index.shine-verte { color:#a5c8c2; }
#page-tasks .domains-table .completed-bar-fill { background:#668f88; box-shadow:none; }
#page-tasks .tasks-table { border-radius:8px; box-shadow:0 2px 8px rgba(15,27,45,.08); }
#page-tasks .tasks-back-btn { color:var(--app-accent-strong); border-color:#cbd7d4; border-radius:6px; }
#page-tasks .tasks-back-btn:hover { border-color:#8faeaa; transform:none; box-shadow:none; }
#page-tasks .task-detail-hero { background:var(--app-navy); border-color:#405165; border-radius:10px; box-shadow:0 4px 14px rgba(15,27,45,.12); }
#page-tasks .task-detail-hero::before { display:none; }
#page-tasks .task-title-fleur { color:#d5c38c; background:rgba(213,195,140,.10); border-color:rgba(213,195,140,.30); border-radius:8px; filter:none; }
#page-tasks .task-detail-header .shine-verte { color:#f6f8fa; }
#page-tasks .task-detail-status .status-chip.completed { color:#c3dcd8; background:rgba(155,196,189,.10); }
#page-tasks .legal-panel { border-color:#d9cfaf; border-radius:8px; box-shadow:none; }
#page-tasks .detail-section { border-color:var(--app-border); border-radius:10px; box-shadow:none; }
#page-tasks .detail-section::before { display:none; }
#page-tasks .section-index { color:#fff; background:var(--app-accent-strong); border-radius:8px; box-shadow:none; }
#page-tasks .deliverables-section .section-index { color:#4d411f; background:#e5d8ad; }
#page-tasks .action-accordion { border-color:var(--app-border); border-radius:8px; }
#page-tasks .action-accordion:hover, #page-tasks .action-accordion.expanded { border-color:#9db4b0; box-shadow:none; }
#page-tasks .action-summary:focus-visible { outline-color:var(--app-focus); }
#page-tasks .action-accordion .step-number { color:var(--app-accent-strong); background:var(--app-accent-soft); border-color:#cbdad7; border-radius:7px; }
#page-tasks .action-accordion.done .step-number { background:var(--app-accent); border-color:var(--app-accent); }
#page-tasks .action-chevron { color:var(--app-accent-strong); }
#page-tasks .action-example, #page-tasks .template-hint { color:#36514d !important; background:#f3f6f5; border:1px solid var(--app-border); border-radius:7px; }
#page-tasks .subaction-label { background:#fafbfb; border-color:#e1e6e5; border-radius:7px; }
#page-tasks .subaction-label:hover { background:#f4f7f6; border-color:#b7c9c5; }
#page-tasks .subaction-label input { accent-color:var(--app-accent); }
#page-tasks .template-files-block { background:#fafbfb; border-color:var(--app-border); border-radius:8px; }
#page-tasks .template-btn { color:var(--app-accent-strong); background:var(--app-accent-soft); border-color:#b9cfca; border-radius:6px; }
#page-tasks .template-btn:hover { color:#244d48; background:#e3ece9; border-color:#8faeaa; transform:none; }
#page-tasks .guidance-item { background:#fafbfb; border:1px solid var(--app-border); border-radius:8px; }
#page-tasks .deliverable-block { border-color:var(--app-border); border-radius:8px; box-shadow:none; }
#page-tasks .deliverable-icon { color:var(--app-accent-strong); background:var(--app-accent-soft); border-radius:6px; }

.tour-restart-button { border-radius:6px; }
.tour-welcome-overlay { background:rgba(9,20,32,.78); backdrop-filter:none; }
.tour-welcome-dialog, .tour-popover { background:var(--app-navy); border-color:#536575; border-radius:10px; box-shadow:0 10px 32px rgba(0,0,0,.28); }
.tour-welcome-kicker, .tour-step-count { color:#a5c8c2; }
.tour-welcome-list li::before { color:#fff; background:var(--app-accent); border-radius:5px; }
.tour-button { color:#fff; background:var(--app-accent); border-color:var(--app-accent); border-radius:6px; }
.tour-button:hover { background:var(--app-accent-strong); filter:none; }
.tour-button.secondary { color:#eef2f5; background:transparent; border-color:#687887; }
.tour-spotlight { border:2px solid #8fb5af; border-radius:8px; box-shadow:0 0 0 9999px rgba(8,18,29,.74),0 6px 18px rgba(0,0,0,.22); transition:none; }
#quizNextBtn { background:var(--app-accent-strong) !important; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration:.16s; }
@media (prefers-reduced-motion: reduce) {
    .tour-spotlight, .tour-popover, .action-accordion, .action-chevron { transition:none !important; animation:none !important; }
}

/* Mobile : la sidebar devient une barre d'onglets fixe en bas — la
   navigation ne disparaît plus. ponytail: la déconnexion mobile passe
   par Paramètres; un menu profil viendra si le besoin se confirme. */
@media (max-width: 768px) {
    .sidebar { display: flex; position: fixed; bottom: 0; left: 0; right: 0; top: auto; width: 100%; height: 64px; flex-direction: row; z-index: 100; background: #0f1b2d; box-shadow: 0 -8px 24px rgba(15,27,45,.25); }
    .sidebar-header, .sidebar-footer { display: none; }
    .sidebar-nav { display: flex; flex-direction: row; padding: 6px; gap: 2px; }
    #dashboardPage .sidebar-nav { min-width:0; }
    #dashboardPage .nav-item { min-width:0; }
    #dashboardPage .nav-item[type="button"] { width:auto; font-size:10px; text-align:center; }
    #dashboardPage .faq-nav-long { display:none; }
    #dashboardPage .faq-nav-short { display:inline; }
    .nav-item { flex: 1; flex-direction: column; gap: 3px; padding: 6px 2px; margin-bottom: 0; font-size: 10px; justify-content: center; text-align: center; border-radius: 8px; }
    .nav-item svg { width: 22px; height: 22px; }
    .nav-item.plan-locked::after { display: none; }
    .nav-count { display: none; }
    .main-content { min-width: 0; padding-bottom: 80px; }
    .content { padding: 20px 14px; }
    .main-header { padding: 16px 14px; }
    .form-row { flex-direction: column; gap: 0; }
    .tasks-table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .app-fleur { right: 16px; font-size: 34px; }
    #page-dashboard .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
    #page-dashboard .stat-card { min-height: 132px; padding: 14px; }
    #page-dashboard .stat-card-value { font-size: 25px; }
    .quiz-once-card { align-items: flex-start; padding: 18px; }
    .quiz-once-fleur { display: none; }
    .quiz-once-progress { min-width: 94px; }
    .quiz-progress-track { width: 90px; }
    .dashboard-action-grid { grid-template-columns: 1fr; }
    .domains-page-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
    .domains-table { display: table; min-width: 720px; }
    .task-detail-hero { padding: 22px 18px 3px; }
    .task-detail-meta { grid-template-columns: repeat(2, minmax(0,1fr)); margin: 0 -18px; padding: 1px 18px 0; }
    .detail-section { padding: 20px 16px; }
    .action-panel { padding-left:16px; }
    .deliverable-header { align-items: flex-start; flex-wrap: wrap; }
    .deliverable-name { min-width: calc(100% - 52px); }
    .deliverable-guidance { grid-template-columns: 1fr; }
    .evidence-list, .evidence-empty { padding-left: 16px; }
}

@media (max-width: 640px) {
    .document-kit { grid-template-columns: 1fr; padding: 24px 20px; text-align: center; }
    .document-kit-mark { margin: 0 auto; }
    .journey { padding: 58px 16px 72px; }
    .journey > .journey-track { padding-left: 32px; }
    .journey-line { left: 8px; }
    .j-step { position: relative; top: auto; padding: 22px 18px; margin-bottom: 24px; }
    .j-dot { left: -31px; }
    .cert-card { grid-template-columns: 1fr; padding: 18px; text-align: center; }
    .l25-seal { width: 72px; height: 72px; margin: 0 auto; }
    .landing-legal-note { padding-inline: 20px; }
    .template-file-row { align-items:stretch; flex-direction:column; }
    .template-file-action { width:100%; min-width:0; justify-items:stretch; }
    .template-file-action .template-btn { width:100%; }
    .template-file-status { text-align:left; }
    .quiz-completion-actions { display:grid; grid-template-columns:1fr; }
    .quiz-completion-button { width:100%; }
}

@media (max-width: 480px) {
    #page-dashboard .stats-grid { grid-template-columns: 1fr; }
    #page-dashboard .stat-card { min-height: 0; }
    .tour-restart-button { right:62px; padding:8px; font-size:0; }
    .tour-restart-button::before { content:'?'; font-size:14px; }
    .tour-welcome-dialog { padding:24px 20px; }
    .tour-welcome-actions { display:grid; }
    .tour-button { width:100%; }
    .tour-popover { left:14px !important; right:14px; bottom:78px !important; top:auto !important; width:auto; }
    .tour-popover-actions { align-items:flex-end; }
    .tour-popover-nav { flex-direction:column-reverse; }
    .quiz-once-card { flex-direction: column; gap: 16px; }
    .quiz-once-copy, .quiz-once-intro, .quiz-once-progress { min-width: 0; width: 100%; }
    .quiz-once-progress { align-items: flex-start; }
    .quiz-progress-track { width: 100%; }
    .journey-progress-label { align-items: flex-start; gap: 8px; }
    .journey-progress-label span { min-width: 0; overflow-wrap: anywhere; }
    .dashboard-action-card { padding: 18px 14px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .landing-nav-logo .l25-initial,
    .landing-nav-logo .l25-name { animation: none; clip-path: inset(0); opacity: 1; filter: none; transform: none; }
}

/* A compact checklist, with explanations in native dismissible popovers. */
.scan-result-window { flex:1 1 100%; width:100%; max-width:580px; min-width:0; border:1px solid #dce3e9; border-radius:12px; overflow:hidden; background:#fff; }
.scan-result-window .scan-verdict { padding:12px 14px; gap:10px; border:0; border-bottom:1px solid #dce3e9; border-radius:0; }
.scan-result-window .scan-verdict-icon { width:25px; height:25px; font-size:20px; }
.scan-result-window .scan-status { font-size:15px; }
.scan-result-window .scan-verdict-reason { font-size:12px; line-height:1.5; }
.scan-result-list { list-style:none; margin:0; padding:0 12px; max-height:240px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.scan-result-row { display:grid; grid-template-columns:minmax(0,1fr) 26px 44px; gap:8px; align-items:center; min-height:48px; border-bottom:1px solid #edf0f3; }
.scan-result-row:last-child { border-bottom:0; }
.scan-result-label { font-size:13px; font-weight:550; line-height:1.4; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.scan-result-mark { text-align:center; font-size:21px; font-weight:700; }
.scan-mark-passed { color:#166534; }
.scan-mark-missing { color:#a12e45; }
.scan-mark-review { color:#856018; }
.scan-info-button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:6px; background:transparent; color:#245a81; font:italic 650 17px Georgia,serif; cursor:pointer; }
.scan-info-button:hover { background:#eaf2f9; }
.scan-info-button:focus-visible,.scan-result-list:focus-visible { outline:2px solid #245a81; outline-offset:-2px; }
.scan-result-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 12px; background:#f7f9fb; border-top:1px solid #e4eaf0; color:#526474; }
.scan-result-footer small { font-size:11px; }
.scan-info-popover { position:fixed; inset:0; width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 40px); margin:auto; padding:28px; border:1px solid #c8d6e1; border-radius:14px; background:#fff; color:#20354a; box-shadow:0 18px 65px #142c4340; overflow:auto; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.scan-info-popover::backdrop { background:#142c4359; }
.scan-info-popover h3 { margin:0 28px 16px 0; font-size:20px; line-height:1.35; }
.scan-info-popover .scan-info-state { font-size:12px; font-weight:700; margin:0 28px 8px 0; }
.scan-info-popover .scan-checks { padding-left:18px; }
.scan-info-popover blockquote { margin:12px 0; padding:10px 12px; border-left:3px solid #7da6c6; background:#f3f7fa; }
.scan-info-popover cite { display:block; margin-top:6px; font-size:12px; }
.scan-info-popover a { color:#245a81; }
.scan-progress-running { padding:18px; background:#f1f8f4; border:1px solid #c9e1d4; border-radius:10px; }
.scan-progress-running strong { color:#185441; font-size:15px; }
