/* UI professionnelle Plateforme Tests */
:root{--bleu:#2864e8;--bleu-fonce:#102448;--bleu-clair:#edf3ff;--fond:#f4f7fb;--blanc:#fff;--texte:#18253b;--secondaire:#718096;--bordure:#e4eaf3;--vert:#13845d;--rouge:#c83b4b;--orange:#a86609;--ombre:0 12px 34px rgba(17,43,84,.055);--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--fond);color:var(--texte);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #83a8ff} .skip-link{position:absolute;left:-9999px;top:8px;background:white;padding:10px;z-index:99}.skip-link:focus{left:8px}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;padding:25px 18px;background:linear-gradient(165deg,#102448 0%,#173b70 62%,#2053a0 100%);color:#eaf1ff;display:flex;flex-direction:column;z-index:5;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 27px;border-bottom:1px solid #ffffff20}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:linear-gradient(135deg,#74a2ff,#2864e8);color:#fff;font-size:16px;font-weight:900;box-shadow:0 8px 20px #071a3e55}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:-.2px}.brand small{margin-top:3px;color:#a9c2ee;font-size:11px}.nav-caption{margin:26px 9px 10px;color:#91add9;font-size:10px;font-weight:800;letter-spacing:1.5px}.main-nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid transparent;border-radius:11px;color:#c5d5f1;font-size:12px;font-weight:650;transition:background .18s,border-color .18s,transform .18s}.nav-item:hover{background:#ffffff0e;color:#fff;transform:translateX(2px)}.nav-item.is-active{background:linear-gradient(90deg,#2d65d6,#3476ed);border-color:#78a4ff45;color:white;box-shadow:0 8px 20px #071a3e30}.nav-icon{width:22px;text-align:center;font-size:18px}.sidebar-note{margin-top:auto;padding:15px;border:1px solid #ffffff20;border-radius:13px;background:#ffffff0b}.note-dot,.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#54d6a3;margin-right:7px;box-shadow:0 0 0 4px #54d6a320}.sidebar-note strong{font-size:12px}.sidebar-note p{margin:7px 0 0;color:#a9c2ee;font-size:11px;line-height:1.7}.sidebar-foot{padding:15px 4px 0;color:#8da9d6;font-size:9px;letter-spacing:.7px}.main-content{min-width:0;margin-left:258px;padding:30px clamp(18px,3vw,42px) 24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{margin-bottom:7px;color:var(--bleu);font-size:10px;font-weight:850;letter-spacing:1.5px}.topbar h1{margin:0;color:#14233c;font-size:clamp(24px,2.6vw,33px);font-weight:850;letter-spacing:-1px;line-height:1.2}.subtitle{margin:9px 0 0;color:var(--secondaire);font-size:12px}.topbar-date{display:flex;align-items:center;white-space:nowrap;padding:10px 13px;border:1px solid var(--bordure);border-radius:11px;background:#fff;color:#53637c;font-size:11px;box-shadow:0 3px 12px #173b7008}.topbar-date .status-dot{background:#1fb981}.date-divider{margin:0 8px;color:#bdc7d7}.footer{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding:18px 2px 0;border-top:1px solid var(--bordure);color:#8793a6;font-size:10px}.footer strong{color:#53637c}
.panel,.stat-card,.panel-card{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--radius);box-shadow:var(--ombre)}.panel{margin-bottom:22px;overflow:hidden}.panel-head,.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid #edf1f7}.panel-head h2,.panel-header h2{margin:0;color:#1b2b45;font-size:15px;font-weight:800;letter-spacing:-.3px}.panel-head p,.panel-header p{margin:6px 0 0;color:var(--secondaire);font-size:11px}.panel-body{padding:24px}.form-grid,.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field-full{grid-column:1/-1}.field label,.filters label{color:#44546b;font-size:11px;font-weight:750}.field input:not([type=checkbox]),.field select,.field textarea,.filters input,.filters select{width:100%;min-height:42px;padding:10px 12px;border:1px solid #dbe3ef;border-radius:10px;background:#fff;color:var(--texte);font-size:12px;transition:border-color .15s,box-shadow .15s}.field textarea{min-height:105px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.filters input:focus,.filters select:focus{border-color:#7fa5ff;box-shadow:0 0 0 3px #2864e815;outline:0}.help{color:#8290a4;font-size:10px}.check-item{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--bordure);border-radius:11px;background:#f9fbff}.check-item small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:10px 15px;border:1px solid #2864e8;border-radius:10px;background:linear-gradient(135deg,#3476f1,#2458d7);color:white;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 5px 12px #2864e81c;transition:transform .15s,box-shadow .15s}.btn:hover,button.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #2864e82a}.btn-secondary{background:#fff!important;color:#52637c!important;border-color:#dbe3ef!important;box-shadow:none!important}.btn-danger{background:#c83b4b!important;border-color:#c83b4b!important}.btn-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.alert{margin:0 0 18px;padding:13px 16px;border:1px solid var(--bordure);border-radius:11px;background:#fff;font-size:12px}.alert-success{border-color:#bce8d1;background:#edfaf3;color:#176749}.alert-error{border-color:#ffd1d5;background:#fff1f2;color:#a82d3c}.alert-warning{border-color:#ffe3a8;background:#fff8e8;color:#86520a}.alert-info{border-color:#c9dcff;background:#f0f6ff;color:#2757a8}
.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}th{padding:12px 15px;background:#f7f9fd;color:#718096;text-align:left;font-size:9px;font-weight:850;letter-spacing:.7px;text-transform:uppercase;border-bottom:1px solid var(--bordure);white-space:nowrap}td{padding:13px 15px;border-bottom:1px solid #edf1f6;color:#43536b;vertical-align:middle}tbody tr:hover td{background:#f9fbff}tbody tr:last-child td{border-bottom:0}.badge,.status-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#eef2f8;color:#52637c;font-size:10px;font-weight:800;white-space:nowrap}.badge-green{background:#e5f7ed;color:#14734f}.badge-red{background:#fff0f1;color:#b42c3b}.badge-orange{background:#fff4dc;color:#945a08}.badge-blue{background:#eaf1ff;color:#2559bd}.filters{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;padding:18px 22px;background:#fbfcfe;border-bottom:1px solid var(--bordure)}.filters>div{display:grid;gap:6px;min-width:0}.filters .btn{align-self:end}.stat-strip,.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:22px}.mini-stat,.stat-card{padding:19px}.mini-stat{border:1px solid var(--bordure);border-radius:14px;background:#fff;box-shadow:var(--ombre)}.mini-stat span,.stat-label{display:block;color:var(--secondaire);font-size:11px;font-weight:650}.mini-stat strong,.stat-number{display:block;margin-top:10px;color:#142744;font-size:27px;font-weight:850;letter-spacing:-.8px}.empty{padding:35px 20px;text-align:center;color:var(--muted);font-size:12px}.empty strong{display:block;margin-bottom:5px;color:var(--texte);font-size:14px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-top:1px solid var(--bordure);font-size:11px;color:var(--muted)}.pagination a{padding:7px 10px;border:1px solid var(--bordure);border-radius:8px;background:#fff;color:var(--bleu);font-weight:700}.report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.report-card{padding:19px;border:1px solid var(--bordure);border-radius:15px;background:#fff;box-shadow:var(--ombre)}.report-card .label{color:var(--muted);font-size:11px;font-weight:700}.report-card .value{margin-top:9px;font-size:27px;font-weight:850;letter-spacing:-.7px}.report-card .meta{margin-top:6px;color:var(--muted);font-size:10px}.progress{height:8px;margin-top:12px;overflow:hidden;border-radius:999px;background:#e9eef7}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2864e8,#63a0ff)}.report-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hint{padding:14px 16px;border-radius:11px;background:#edf4ff;color:#31578f;font-size:11px;line-height:1.7}
@media(max-width:1100px){.sidebar{width:225px}.main-content{margin-left:225px;padding:24px 20px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{position:relative;width:auto;inset:auto;padding:14px;overflow:visible}.brand{padding:0 4px 14px}.nav-caption,.sidebar-note,.sidebar-foot{display:none}.main-nav{display:flex;gap:6px;overflow-x:auto;padding-top:12px}.nav-item{flex:0 0 auto;padding:9px 11px}.main-content{margin-left:0;padding:20px 14px}.topbar{flex-direction:column;margin-bottom:20px}.topbar-date{align-self:flex-start}.form-grid,.filters{grid-template-columns:1fr}.field-full{grid-column:auto}.stat-strip,.stats-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-head,.panel-header{padding:18px;flex-direction:column}.panel-body{padding:18px}.footer{flex-direction:column}.pagination{flex-wrap:wrap}}
@media(max-width:420px){.stat-strip,.stats-grid,.report-grid{grid-template-columns:1fr}.nav-item{font-size:11px}.topbar h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar-date,.btn,.filters,.footer{display:none!important}.main-content{margin:0;padding:0}.panel,.report-card,.mini-stat{box-shadow:none;break-inside:avoid}body{background:#fff}}


/* PRO V3 — premium motion system */
:root{--ink:#0b1530;--electric:#5b8cff;--aqua:#63e6d3;--line:rgba(148,163,184,.22);--surface:#fff;--muted:#718096}
body{background:radial-gradient(ellipse at 80% -10%,rgba(72,125,255,.08),transparent 35%),#f4f7fc}
.sidebar{background:radial-gradient(circle at 15% 0%,rgba(77,130,255,.22),transparent 34%),linear-gradient(180deg,#0b1530 0%,#111f42 56%,#142d58 100%);border-right:1px solid rgba(255,255,255,.07)}
.brand-mark{background:linear-gradient(135deg,#79a6ff,#3e63f5 60%,#7457e8);box-shadow:0 0 0 6px rgba(91,140,255,.1),0 12px 26px rgba(25,65,180,.32);animation:brandBreath 4s ease-in-out infinite}
.nav-item{position:relative;overflow:hidden}.nav-item:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.09),transparent);transform:translateX(-120%);transition:transform .55s}.nav-item:hover:before{transform:translateX(120%)}.nav-new{margin-left:auto;padding:2px 5px;border-radius:5px;background:#4a75f5;color:white;font-size:8px;letter-spacing:.5px}
.topbar h1{letter-spacing:-1.3px}.eyebrow{display:flex;align-items:center;gap:8px}.eyebrow-pulse{width:7px;height:7px;border-radius:50%;background:#38d9aa;box-shadow:0 0 0 4px rgba(56,217,170,.12);animation:pulseDot 2s infinite}.panel,.stat-card,.mini-stat,.report-card{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .28s}.panel:hover,.stat-card:hover,.report-card:hover{border-color:rgba(91,140,255,.32);box-shadow:0 18px 48px rgba(18,46,94,.09)}
.hero-panel,.app-test-hero{position:relative;isolation:isolate;overflow:hidden;min-height:320px;margin-bottom:22px;border-radius:24px;background:radial-gradient(ellipse at 75% 0%,rgba(93,139,255,.24),transparent 45%),linear-gradient(115deg,#0a1530 0%,#112750 55%,#173e78 100%);color:#fff;box-shadow:0 24px 55px rgba(14,34,74,.17)}.hero-panel{display:flex;align-items:center;justify-content:space-between;padding:clamp(26px,4vw,48px);gap:20px}.hero-content{position:relative;z-index:2;max-width:650px}.hero-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(150,185,255,.25);border-radius:999px;background:rgba(255,255,255,.06);color:#b9ceff;font-size:9px;font-weight:850;letter-spacing:1.3px}.hero-chip-dot{width:6px;height:6px;border-radius:50%;background:#5fe3bc;box-shadow:0 0 0 4px rgba(95,227,188,.13);animation:pulseDot 2s infinite}.hero-chip-sep{color:#5579b9}.hero-panel h2,.app-test-hero h2{margin:19px 0 12px;font-size:clamp(30px,3.5vw,47px);line-height:1.08;letter-spacing:-1.9px;font-weight:850}.hero-panel h2 span,.app-test-hero h2 span{color:#82aaff;background:linear-gradient(90deg,#8eb2ff,#7be8dc);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-panel p,.app-test-hero p{max-width:560px;margin:0;color:#bac9e5;font-size:13px;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.btn-glow{border:1px solid #6b95ff!important;background:linear-gradient(115deg,#467aff,#6a5af9)!important;color:white!important;box-shadow:0 10px 28px rgba(70,122,255,.3)!important}.btn-glow:hover{box-shadow:0 14px 34px rgba(70,122,255,.42)!important;transform:translateY(-3px)!important}.btn-glass{border:1px solid rgba(183,204,255,.23)!important;background:rgba(255,255,255,.06)!important;color:#edf3ff!important;box-shadow:none!important}.btn-arrow{font-size:16px;transition:transform .2s}.btn:hover .btn-arrow{transform:translate(2px,-2px)}.hero-proof{display:flex;flex-wrap:wrap;gap:16px;margin-top:25px;color:#a9bddf;font-size:10px}.hero-proof span{display:flex;align-items:center;gap:6px}.hero-proof i{width:5px;height:5px;border-radius:50%;background:#5fe3bc}.hero-orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(1px);pointer-events:none}.hero-orb-one{width:340px;height:340px;right:10%;top:-190px;background:radial-gradient(circle,rgba(85,123,255,.22),transparent 70%);animation:orbFloat 10s ease-in-out infinite}.hero-orb-two{width:260px;height:260px;right:32%;bottom:-210px;background:radial-gradient(circle,rgba(91,230,211,.12),transparent 70%);animation:orbFloat 13s ease-in-out infinite reverse}.hero-visual{position:relative;flex:0 0 250px;height:235px;display:grid;place-items:center}.orbit{position:absolute;border:1px solid rgba(148,184,255,.24);border-radius:50%;animation:orbitSpin 24s linear infinite}.orbit-a{width:220px;height:220px;border-style:dashed}.orbit-b{width:165px;height:165px;border-color:rgba(108,229,220,.28);animation-direction:reverse;animation-duration:17s}.visual-core{display:grid;place-items:center;gap:8px}.core-ring{width:88px;height:88px;display:grid;place-items:center;border-radius:26px;background:linear-gradient(145deg,rgba(120,160,255,.3),rgba(48,84,169,.25));border:1px solid rgba(176,201,255,.45);box-shadow:0 0 0 12px rgba(93,139,255,.06),0 0 55px rgba(91,140,255,.2);transform:rotate(-7deg);animation:coreFloat 5s ease-in-out infinite}.core-ring span{font-size:27px;font-weight:900;letter-spacing:-2px;transform:rotate(7deg)}.core-caption{text-align:center;color:#94b0df;font-size:8px;font-weight:850;letter-spacing:2px;line-height:1.6}.floating-chip{position:absolute;display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid rgba(187,207,255,.25);border-radius:13px;background:rgba(10,24,52,.78);box-shadow:0 10px 30px rgba(0,0,0,.18);backdrop-filter:blur(12px);animation:chipFloat 5s ease-in-out infinite}.floating-chip b,.floating-chip small{display:block}.floating-chip b{font-size:15px}.floating-chip small{margin-top:2px;color:#9eb4da;font-size:9px}.chip-top{top:22px;right:-5px}.chip-bottom{bottom:24px;left:-15px;animation-delay:-2.5s}.chip-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(50,210,156,.15);color:#64e2b7;font-weight:900}.chip-warn{background:rgba(255,176,75,.13);color:#ffc36c}.stats-grid-pro{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{position:relative;overflow:hidden;padding:21px 21px 18px;border:1px solid var(--bordure);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(20,46,92,.035)}.stat-card:after{content:"";position:absolute;width:130px;height:130px;right:-58px;top:-65px;border-radius:50%;background:var(--stat-glow,rgba(70,122,255,.08));transition:transform .4s}.stat-card:hover:after{transform:scale(1.5)}.stat-top,.stat-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:var(--icon-bg,#edf3ff);color:var(--icon-color,#3269e8);font-size:20px}.stat-number{position:relative;z-index:1;margin:13px 0 12px;font-size:34px;letter-spacing:-1.6px;line-height:1}.stat-number small{font-size:17px;color:#8794a8;margin-left:2px}.stat-bottom{font-size:9px}.stat-trend{color:#7d8ba0}.tiny-link{color:#4877e7;font-size:9px;font-weight:800}.stat-blue{--stat-glow:#e9efff;--icon-bg:#edf2ff;--icon-color:#4778ec}.stat-purple{--stat-glow:#f0eaff;--icon-bg:#f0eaff;--icon-color:#8658dc}.stat-cyan{--stat-glow:#e2f9f7;--icon-bg:#e2f9f7;--icon-color:#229e9a}.stat-green{--stat-glow:#e1f7ec;--icon-bg:#e1f7ec;--icon-color:#1c9c68}.stat-progress{position:relative;z-index:1;height:4px;margin-top:15px;border-radius:99px;background:#edf1f7;overflow:hidden}.stat-progress span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#31bd8d,#76e6c1);animation:progressIn 1.3s ease both}.stat-spark{display:flex;align-items:end;gap:3px;height:15px;margin-top:12px;opacity:.7}.stat-spark i{flex:1;height:var(--h,45%);border-radius:3px 3px 0 0;background:var(--spark,#7ba0ff);animation:sparkRise .8s ease both}.stat-spark i:nth-child(2){--h:70%;animation-delay:.05s}.stat-spark i:nth-child(3){--h:42%;animation-delay:.1s}.stat-spark i:nth-child(4){--h:95%;animation-delay:.15s}.stat-spark i:nth-child(5){--h:62%;animation-delay:.2s}.stat-spark i:nth-child(6){--h:82%;animation-delay:.25s}.stat-spark i:nth-child(7){--h:55%;animation-delay:.3s}.spark-blue i{--spark:#7da1ff}.spark-purple i{--spark:#b29ae8}.spark-cyan i{--spark:#7bd4d0}.dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;margin-bottom:22px}.panel-chart,.panel-quick{margin-bottom:0}.section-kicker{display:block;margin-bottom:5px;color:#7190c9;font-size:9px;font-weight:900;letter-spacing:1.35px}.icon-link{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--bordure);border-radius:10px;color:#4678e9;transition:all .2s}.icon-link:hover{background:#edf3ff;transform:translate(2px,-2px)}.chart-content{display:flex;align-items:center;justify-content:space-around;gap:25px;padding:28px}.donut-wrap{display:grid;place-items:center}.donut{--success:0;--failed:0;position:relative;display:grid;place-items:center;width:176px;height:176px;border-radius:50%;background:conic-gradient(#27b98a 0 var(--success),#ee6574 var(--success) calc(var(--success) + var(--failed)),#ffbd62 0 100%);box-shadow:0 8px 30px rgba(32,75,143,.1);animation:donutIn 1.1s cubic-bezier(.2,.8,.2,1) both}.donut:before{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #eef1f6}.donut-center{position:relative;display:grid;place-items:center;gap:2px}.donut-center strong{font-size:31px;letter-spacing:-1.2px}.donut-center small{color:#7b899d;font-size:10px}.chart-legend{display:grid;gap:15px;min-width:150px}.chart-legend>div{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:9px;color:#75839a;font-size:10px}.chart-legend b{color:#24344e;font-size:12px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-green{background:#27b98a}.legend-red{background:#ee6574}.legend-orange{background:#ffbd62}.chart-legend .legend-total{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid var(--bordure);font-size:10px}.quick-links{display:grid;padding:6px 17px 17px}.quick-link{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid #eff2f7;transition:transform .2s}.quick-link:last-child{border-bottom:0}.quick-link:hover{transform:translateX(4px)}.quick-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:#e9f8f2;color:#159d70;font-size:20px}.quick-icon-blue{background:#edf3ff;color:#4778ec}.quick-icon-red{background:#fff0f1;color:#d84e60}.quick-icon-purple{background:#f2edff;color:#8658dc}.quick-link>span:nth-child(2){flex:1;min-width:0}.quick-link b,.quick-link small{display:block}.quick-link b{font-size:11px}.quick-link small{margin-top:4px;color:#8190a6;font-size:9px;line-height:1.5}.quick-arrow{color:#93a2b8;transition:transform .2s}.quick-link:hover .quick-arrow{transform:translate(3px,-2px);color:#3e6fe0}.code-pill{display:inline-flex;padding:5px 8px;border-radius:7px;background:#edf3ff;color:#3c68c9;font-family:ui-monospace,Consolas,monospace;font-size:10px;font-weight:800}.table-primary{color:#1e2d46;font-size:11px}.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.badge{gap:6px}.panel .panel-head{background:linear-gradient(180deg,#fff,#fcfdff)}
/* Real-application smoke testing */
.app-test-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:clamp(26px,4vw,44px);min-height:290px}.test-hero-grid{position:absolute;inset:0;z-index:-1;opacity:.14;background-image:linear-gradient(rgba(149,180,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(149,180,255,.18) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,#000,transparent)}.test-hero-copy{position:relative;z-index:1;max-width:620px}.test-hero-copy h2{font-size:clamp(30px,3.5vw,43px)}.test-capabilities{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;color:#a8c4ec;font-size:10px}.test-hero-visual{position:relative;flex:0 0 220px;height:210px;display:grid;place-items:center}.scanner-ring{position:absolute;border:1px solid rgba(118,168,255,.3);border-radius:50%;animation:orbitSpin 18s linear infinite}.ring-one{width:205px;height:205px;border-style:dashed}.ring-two{width:145px;height:145px;border-color:rgba(99,230,211,.4);animation-direction:reverse;animation-duration:13s}.scanner-core{display:grid;place-items:center;gap:4px;width:85px;height:85px;border:1px solid rgba(143,181,255,.55);border-radius:26px;background:linear-gradient(145deg,rgba(91,140,255,.32),rgba(28,64,126,.4));box-shadow:0 0 0 13px rgba(91,140,255,.06),0 0 60px rgba(91,140,255,.2);animation:coreFloat 4s ease-in-out infinite}.scanner-core span{font-size:25px;font-weight:900}.scanner-core small{font-size:8px;letter-spacing:1.5px;color:#b7caff}.scan-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:#69ead2;box-shadow:0 0 15px #69ead2}.spark-one{top:25px;right:35px;animation:pulseDot 2s infinite}.spark-two{bottom:25px;left:25px;background:#8daeff;box-shadow:0 0 15px #8daeff;animation:pulseDot 2.5s infinite}.notice{margin:0 0 20px;padding:16px 18px;border-radius:14px;border:1px solid #f3d6a3;background:linear-gradient(110deg,#fff9ec,#fffdf7);color:#85560f}.notice strong{display:flex;align-items:center;gap:9px;font-size:12px}.notice strong span{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:#ffedc5}.notice p{margin:8px 0 0;font-size:11px;line-height:1.75}.notice code{padding:2px 5px;border-radius:5px;background:#ffefce}.live-pill,.history-count{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#e9faf3;color:#18875f;font-size:9px;font-weight:800;white-space:nowrap}.live-pill i{width:6px;height:6px;border-radius:50%;background:#2dbb8a;box-shadow:0 0 0 4px rgba(45,187,138,.12);animation:pulseDot 2s infinite}.panel-test-form .panel-body{padding:26px}.url-input-wrap{position:relative}.url-input-wrap input{width:100%;min-height:51px;padding:13px 115px 13px 42px;border:1px solid #dce5f2;border-radius:12px;background:#fbfcff;color:#152744;font-size:12px;transition:border-color .2s,box-shadow .2s,background .2s}.url-input-wrap input:focus{outline:0;border-color:#789dff;background:white;box-shadow:0 0 0 4px rgba(70,122,255,.1)}.url-input-icon{position:absolute;z-index:1;left:15px;top:12px;color:#6e8fe0;font-size:20px}.url-input-tag{position:absolute;right:12px;top:16px;padding:4px 6px;border:1px solid #e3eaf5;border-radius:6px;background:#fff;color:#8a98ad;font-size:8px;font-weight:800;letter-spacing:.6px}.authorization-check{display:flex;align-items:flex-start;gap:12px;margin:19px 0;padding:14px;border:1px solid #e3eafa;border-radius:12px;background:#f8faff;cursor:pointer}.authorization-check input{position:absolute;opacity:0;width:1px;height:1px}.auth-check-ui{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border:1px solid #cbd6e9;border-radius:6px;background:#fff;color:transparent;font-size:12px;font-weight:900;transition:all .2s}.authorization-check input:checked+.auth-check-ui{border-color:#3974ef;background:#3974ef;color:#fff;box-shadow:0 3px 8px rgba(57,116,239,.2)}.authorization-check input:focus-visible+.auth-check-ui{outline:3px solid #8badff;outline-offset:3px}.authorization-check strong,.authorization-check small{display:block}.authorization-check strong{font-size:11px}.authorization-check small{margin-top:4px;color:#8794a8;font-size:10px}.test-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.plan-item{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid #e8edf5;border-radius:12px;background:#fff;transition:transform .2s,border-color .2s,box-shadow .2s}.plan-item:hover{transform:translateY(-3px);border-color:#b6caff;box-shadow:0 8px 20px rgba(44,82,155,.06)}.plan-icon{display:grid;place-items:center;flex:0 0 33px;height:33px;border-radius:10px;background:#edf3ff;color:#4876e8;font-size:10px;font-weight:900}.plan-item b,.plan-item small{display:block}.plan-item b{font-size:10px}.plan-item small{margin-top:4px;color:#8996a9;font-size:9px;line-height:1.5}.btn-run-test{min-height:46px;padding-inline:19px}.btn-run-test:disabled{opacity:.75;cursor:wait;transform:none!important}.form-footnote{align-self:center;color:#8a97aa;font-size:10px}.run-progress{margin-top:22px;padding:15px;border:1px solid #dce7fb;border-radius:12px;background:#f6f9ff}.run-progress[hidden]{display:none}.run-progress-top{display:flex;align-items:center;gap:10px;color:#526c9d;font-size:11px}.run-progress-top b{margin-left:auto;font-size:10px}.run-progress-track{height:4px;margin-top:12px;overflow:hidden;border-radius:99px;background:#e2eafa}.run-progress-track span{display:block;width:35%;height:100%;border-radius:99px;background:linear-gradient(90deg,#477aff,#63e6d3);animation:scanProgress 1.4s ease-in-out infinite}.spinner{display:inline-block;width:15px;height:15px;border:2px solid #c9d8fb;border-top-color:#4c79ef;border-radius:50%;animation:spin .8s linear infinite}.result-banner{display:flex;align-items:center;gap:16px;padding:22px 24px;border-bottom:1px solid var(--bordure)}.overall-passed{background:linear-gradient(105deg,#eafaf3,#fff)}.overall-failed{background:linear-gradient(105deg,#fff0f1,#fff)}.overall-error{background:linear-gradient(105deg,#fff7e8,#fff)}.result-emblem{display:grid;place-items:center;flex:0 0 49px;height:49px;border-radius:15px;background:#fff;color:#168c60;box-shadow:0 6px 18px rgba(25,50,90,.08);font-size:24px;font-weight:900}.overall-failed .result-emblem{color:#c83b4b}.overall-error .result-emblem{color:#ad6a0b}.result-title{flex:1;min-width:0}.result-title h2{margin:3px 0;font-size:19px;letter-spacing:-.5px}.result-title p{margin:0;color:#728197;font-size:10px;overflow-wrap:anywhere}.result-score{text-align:right}.result-score strong,.result-score small{display:block}.result-score strong{font-size:24px;letter-spacing:-1px}.result-score small{color:#8290a3;font-size:9px}.result-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:17px 22px;border-bottom:1px solid var(--bordure)}.result-summary>div{padding:3px 15px;border-right:1px solid #edf1f6}.result-summary>div:first-child{padding-left:0}.result-summary>div:last-child{border-right:0}.result-summary span,.result-summary b{display:block}.result-summary span{color:#8b98aa;font-size:9px}.result-summary b{margin-top:5px;font-size:12px;overflow-wrap:anywhere}.result-check-head{align-items:center}.check-results{padding:0 22px}.check-result{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-bottom:1px solid #eff2f7}.check-result:last-child{border-bottom:0}.check-status-icon{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:9px;background:#e8f8f0;color:#19845c;font-weight:900}.check-fail .check-status-icon{background:#fff0f1;color:#c83b4b}.check-warn .check-status-icon{background:#fff5df;color:#a46a0a}.check-result-copy{flex:1;min-width:0}.check-result-copy strong{font-size:11px}.check-result-copy p{margin:4px 0 0;color:#718096;font-size:10px;line-height:1.7}.check-result-copy ul{margin:7px 0 0;padding-left:18px;color:#9b5360;font-size:10px;overflow-wrap:anywhere}.result-footnote{padding:13px 22px;border-top:1px solid var(--bordure);background:#fbfcfe;color:#8290a4;font-size:10px;line-height:1.7}.history-count{background:#edf3ff;color:#4772d4}.reveal{opacity:1;transform:none}.js-ready .reveal{opacity:0;transform:translateY(14px)}.js-ready .reveal.is-visible{opacity:1;transform:translateY(0);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1)}.js-ready .reveal:nth-of-type(2){transition-delay:.04s}.js-ready .reveal:nth-of-type(3){transition-delay:.08s}.reveal-on-load{animation:fadeUp .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseDot{0%,100%{opacity:1;box-shadow:0 0 0 4px rgba(95,227,188,.12)}50%{opacity:.7;box-shadow:0 0 0 7px rgba(95,227,188,0)}}@keyframes brandBreath{0%,100%{box-shadow:0 0 0 6px rgba(91,140,255,.1),0 12px 26px rgba(25,65,180,.32)}50%{box-shadow:0 0 0 9px rgba(91,140,255,.05),0 12px 32px rgba(25,65,180,.4)}}@keyframes orbFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-25px,20px,0)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes coreFloat{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-8px) rotate(-3deg)}}@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes progressIn{from{width:0}to{width:var(--target-width,100%)}}@keyframes sparkRise{from{height:0;opacity:.3}to{height:var(--h,45%);opacity:1}}@keyframes donutIn{from{transform:scale(.85) rotate(-40deg);opacity:.4}to{transform:scale(1) rotate(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scanProgress{0%{transform:translateX(-130%)}100%{transform:translateX(330%)}}
@media(max-width:1180px){.stats-grid-pro{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-visual{flex-basis:210px}.dashboard-grid{grid-template-columns:1fr}.test-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.hero-panel,.app-test-hero{padding:25px;min-height:auto}.hero-visual,.test-hero-visual{display:none}.hero-panel h2,.app-test-hero h2{font-size:31px}.hero-proof{gap:10px}.test-plan-grid{grid-template-columns:1fr}.result-banner{flex-wrap:wrap;padding:18px}.result-score{margin-left:65px;text-align:left}.result-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-summary>div{padding:0;border:0}.check-result{flex-wrap:wrap}.check-result>.badge{margin-left:38px}.url-input-wrap input{padding-right:12px}.url-input-tag{display:none}.chart-content{flex-direction:column}.donut{width:155px;height:155px}.chart-legend{width:100%}.form-footnote{width:100%}}
@media(max-width:420px){.stats-grid-pro{grid-template-columns:1fr}.hero-panel,.app-test-hero{padding:22px}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.result-summary{padding:14px}.result-summary>div{min-width:0}.result-title h2{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.js-ready .reveal{opacity:1;transform:none}}
@media print{.sidebar,.topbar-date,.hero-panel,.app-test-hero,.notice,.panel-test-form,.footer,.btn,.quick-links,.result-footnote{display:none!important}.main-content{margin:0;padding:0}.panel,.report-card,.mini-stat{box-shadow:none;break-inside:avoid}.result-banner,.result-summary{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{background:#fff}}


/* Assistant qualité + exécution améliorée */
.ai-advisor{margin:18px 22px 20px;border:1px solid #dce7fb;border-radius:16px;background:linear-gradient(145deg,#f8faff,#fff 60%,#f1fbfa);overflow:hidden}
.ai-advisor-head{display:flex;align-items:flex-start;gap:13px;padding:19px 20px;border-bottom:1px solid #e7eef9}
.ai-orb{display:grid;place-items:center;flex:0 0 39px;height:39px;border-radius:13px;background:linear-gradient(135deg,#2864e8,#6a58df 70%,#48cfc0);color:#fff;font-size:22px;box-shadow:0 7px 18px #315fe52b}
.ai-advisor-head h3{margin:3px 0 4px;font-size:15px;letter-spacing:-.3px;color:#142744}
.ai-advisor-head p{margin:0;color:#74839a;font-size:10px;line-height:1.7}
.ai-advisor-list{display:grid;gap:0;padding:0 20px}
.ai-advice{display:flex;align-items:flex-start;gap:12px;padding:15px 0;border-bottom:1px solid #edf1f8}
.ai-advice:last-child{border-bottom:0}
.ai-priority{flex:0 0 auto;padding:5px 8px;border:1px solid #dce6fb;border-radius:7px;background:#edf3ff;color:#315bb3;font-size:9px;font-weight:850;max-width:120px}
.ai-advice strong{display:block;color:#233650;font-size:11px}
.ai-advice p{margin:5px 0 0;color:#687991;font-size:10px;line-height:1.75}
.ai-advisor-note{padding:11px 20px;background:#f7f9fd;border-top:1px solid #e8eef7;color:#8793a6;font-size:9px;line-height:1.7}
.execution-panel .panel-body{padding:26px}
.execution-panel .check-item{transition:transform .18s,border-color .18s,box-shadow .18s}
.execution-panel .check-item:hover{transform:translateY(-2px);border-color:#b9cdfa;box-shadow:0 8px 20px #204b9410}
.execution-result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}
.execution-result-stats>div{padding:15px;border:1px solid var(--bordure);border-radius:12px;background:#f9fbff}
.execution-result-stats span,.execution-result-stats strong{display:block}
.execution-result-stats span{color:#7e8ba0;font-size:10px}
.execution-result-stats strong{margin-top:7px;color:#172b4b;font-size:17px;overflow-wrap:anywhere}
#rapport-execution,#execution-resultat{scroll-margin-top:20px}
@media(max-width:760px){.ai-advisor{margin:14px}.ai-advisor-head{padding:15px}.ai-advisor-list{padding:0 15px}.ai-advice{flex-direction:column;gap:7px}.execution-result-stats{grid-template-columns:1fr}.ai-priority{max-width:none}}
@media print{.ai-advisor{break-inside:avoid;box-shadow:none}}


.ai-chat-panel{margin-top:22px;padding:22px;border:1px solid rgba(89,126,210,.25);border-radius:18px;background:linear-gradient(145deg,rgba(241,246,255,.92),rgba(255,255,255,.98));box-shadow:0 12px 30px rgba(21,45,94,.06)}
.ai-chat-context{margin:16px 0;padding:13px 15px;border-radius:12px;background:#eef4ff;border:1px solid #dce7ff;color:#334563;font-size:.9rem;line-height:1.6}
.ai-chat-form{display:grid;gap:10px;margin-top:18px}.ai-chat-form label{font-weight:700;color:#233454}.ai-chat-form textarea{width:100%;resize:vertical;min-height:92px;padding:13px 14px;border:1px solid #cbd6e8;border-radius:12px;background:#fff;color:#17233e;font:inherit;line-height:1.5;box-sizing:border-box}.ai-chat-form textarea:focus,.field input[type=password]:focus{outline:3px solid rgba(64,115,230,.16);border-color:#5d8cf0}.ai-chat-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.ai-chat-status{margin-top:14px;color:#4b5d7c;font-size:.92rem;white-space:pre-wrap}.ai-chat-answer{margin-top:16px;padding:20px;border:1px solid #d8e3f5;border-radius:14px;background:#fff;color:#263650;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.ai-chat-form button:disabled{opacity:.65;cursor:wait}
@media(max-width:640px){.ai-chat-panel{padding:15px}.ai-chat-actions{justify-content:stretch}.ai-chat-actions .btn{width:100%;text-align:center;justify-content:center}}

