.progress-bar-fill { transition: width 0.5s ease; }
        details > summary { list-style: none; }
        details > summary::-webkit-details-marker { display: none; }

        /* Tooltip */
        .tip { position: relative; cursor: help; display: inline-flex; align-items: center; flex-shrink: 0; }
        .tip-box {
            display: none;
            position: absolute; bottom: calc(100% + 6px); left: 50%;
            transform: translateX(-50%);
            background: #1e293b; color: #e2e8f0;
            font-size: 11px; line-height: 1.6;
            padding: 8px 11px; border-radius: 6px;
            width: max-content; max-width: 240px;
            white-space: normal;
            z-index: 9999;
            box-shadow: 0 4px 16px rgba(0,0,0,.3);
            text-transform: none; font-weight: 400; letter-spacing: 0;
            pointer-events: none;
        }
        /* Isolation tooltip dans containers flex/block */
        .tip-box, .tip:not(:hover) .tip-box { display: none !important; }
        .tip:hover .tip-box { display: block !important; }
        .tip-box p { margin: 0 0 3px; }
        .tip-box p:last-child { margin-bottom: 0; }
        .tip-box hr { border: none; border-top: 1px solid rgba(255,255,255,.15); margin: 5px 0; }
        .tip-box::after {
            content: ''; position: absolute; top: 100%; left: 50%;
            transform: translateX(-50%);
            border: 5px solid transparent;
            border-top-color: #1e293b;
        }
        .tip:hover .tip-box { display: block; }

        /* Animations */
        @keyframes fadeUp { from { opacity:0; transform:translateY(14px) } to { opacity:1; transform:translateY(0) } }
        .fade-up { animation: fadeUp .35s ease forwards; }
        .d1 { animation-delay:.08s; opacity:0; }
        .d2 { animation-delay:.16s; opacity:0; }
        .d3 { animation-delay:.24s; opacity:0; }
        .d4 { animation-delay:.32s; opacity:0; }

        /* Score ring */
        .score-ring {
            width: 108px; height: 108px; border-radius: 50%;
            background: conic-gradient(#4577d8 0%, #374151 0%);
            display: flex; align-items: center; justify-content: center;
            transition: background 1.2s ease; flex-shrink: 0;
        }
        .score-ring-inner {
            width: 80px; height: 80px; border-radius: 50%;
            background: #111827;
            display: flex; align-items: center; justify-content: center; flex-direction: column;
        }

        /* Modal */
        .modal-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:100; align-items:center; justify-content:center; }
        .modal-backdrop.open { display:flex; }
        .lead-step { display:none; }
        .lead-step.active { display:block; }

        .btn-loading { opacity:.65; pointer-events:none; cursor:not-allowed; }

        /* Metric row */
        .mrow { display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px solid #f3f4f6; }
        .mrow:last-child { border-bottom:none; }
        .sec-lbl { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#6b7280; }
