*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep:#020617;--bg-base:#0a0f1f;--bg-surface:#0f172a;--bg-elevated:#1e293b;--bg-overlay:#94a3b80f;--border:#1e293bcc;--border-soft:#1e293b80;--border-glow:#6366f159;--accent:#6366f1;--accent-light:#818cf8;--accent-dim:#6366f124;--accent-glow:#6366f140;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-accent:#a5b4fc;--green:#34d399;--amber:#fbbf24;--red:#f87171;--blue:#60a5fa;--intent-primary:var(--accent);--intent-success:var(--green);--intent-warning:var(--amber);--intent-danger:var(--red);--intent-info:var(--blue);--surface-1:var(--bg-surface);--surface-2:var(--bg-elevated);--text-on-accent:#fff;--state-hover:#6366f114;--state-active:#6366f129;--state-focus-ring:0 0 0 3px #6366f159;--state-danger-ring:0 0 0 3px #f871714d;--score-low:var(--red);--score-mid:#f59e0b;--score-high:var(--green);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-xs:0 1px 2px #02061766;--shadow-sm:0 1px 3px #02061780;--shadow-md:0 4px 16px #02061780;--shadow-lg:0 12px 40px #0206178c;--shadow-glow:0 0 40px #6366f126;--font-sans:"Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-display:"Manrope", "Inter", system-ui, sans-serif;--font-serif:var(--font-display);--text-xs:11px;--text-sm:12px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--transition-fast:.12s cubic-bezier(.4,0,.2,1);--transition:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.32s cubic-bezier(.4,0,.2,1);--nav-bg:#020617cc}html[data-theme=light]{--bg-deep:#f8fafc;--bg-base:#fff;--bg-surface:#fff;--bg-elevated:#f1f5f9;--bg-overlay:#0f172a0a;--border:#94a3b847;--border-soft:#94a3b82e;--border-glow:#4f46e54d;--accent:#4f46e5;--accent-light:#6366f1;--accent-dim:#4f46e51a;--accent-glow:#4f46e52e;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-accent:#4f46e5;--green:#059669;--amber:#d97706;--red:#dc2626;--blue:#2563eb;--intent-primary:var(--accent);--intent-success:var(--green);--intent-warning:var(--amber);--intent-danger:var(--red);--intent-info:var(--blue);--state-hover:#4f46e50f;--state-active:#4f46e51f;--state-focus-ring:0 0 0 3px #4f46e540;--state-danger-ring:0 0 0 3px #dc262633;--score-low:var(--red);--score-mid:#d97706;--score-high:var(--green);--shadow-xs:0 1px 1px #0f172a0a;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 2px 8px #0f172a0f;--shadow-lg:0 12px 32px #0f172a14;--shadow-glow:0 0 32px #4f46e514;--nav-bg:#ffffffd9}html[data-theme=light] body:before{background:radial-gradient(80% 50% at 20% -20%,#4f46e50a 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#2563eb08 0%,#0000 60%)}html[data-theme=light] .score-excellent{color:var(--green);background:#05966914;border-color:#05966940}html[data-theme=light] .score-eleve{color:var(--blue);background:#2563eb14;border-color:#2563eb40}html[data-theme=light] .score-moyen{color:var(--amber);background:#d9770614;border-color:#d9770640}html[data-theme=light] .score-faible{color:var(--red);background:#dc262614;border-color:#dc262640}html[data-theme=light] .btn-ghost:hover{background:var(--state-hover)}html[data-size=compact]{zoom:.88}html[data-size=normal]{zoom:1}html[data-size=large]{zoom:1.14}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11";min-height:100dvh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 20% -20%,#6366f112 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#3b82f60d 0%,#0000 60%);position:fixed;inset:0}#root{z-index:1;position:relative}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--text-primary);font-weight:600;line-height:1.2}h1{font-family:var(--font-display);letter-spacing:-.02em;font-size:2.4rem;font-weight:700}h2{font-family:var(--font-display);letter-spacing:-.015em;font-size:1.6rem;font-weight:700}h3{font-family:var(--font-display);letter-spacing:-.005em;font-size:1rem;font-weight:600}h4{font-family:var(--font-display);font-size:.9rem;font-weight:600}:focus-visible{box-shadow:var(--state-focus-ring);border-radius:var(--radius-sm);outline:none}button:focus-visible,a:focus-visible,.btn:focus-visible,[role=button]:focus-visible{box-shadow:var(--state-focus-ring)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--border-glow)}.glass{background:var(--bg-overlay);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);padding:24px}.badge{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-pill);border:1px solid var(--border-glow);color:var(--text-accent);background:var(--accent-dim);font-size:11px;font-weight:600;font-family:var(--font-sans);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.btn{border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;line-height:1;display:inline-flex}.btn-sm{font-size:var(--text-sm);border-radius:var(--radius-sm);padding:7px 12px}.btn-lg{font-size:var(--text-lg);padding:13px 22px}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:0 1px 0 #ffffff14 inset, 0 0 0 1px var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-light);box-shadow:0 1px 0 #ffffff14 inset, 0 6px 20px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--state-hover);border-color:var(--border-glow);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--state-hover);color:var(--text-primary)}.btn-danger{background:color-mix(in srgb, var(--intent-danger) 12%, transparent);color:var(--intent-danger);border-color:color-mix(in srgb, var(--intent-danger) 25%, transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--intent-danger) 18%, transparent);transform:translateY(-1px)}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{letter-spacing:.01em;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:var(--font-sans)}.input-caption{color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.4}.input-caption.is-error{color:var(--intent-danger)}.input-field{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-sans);color:var(--text-primary);transition:border-color var(--transition), background-color var(--transition), box-shadow var(--transition);outline:none;width:100%;padding:10px 14px;font-size:14px}.input-field::placeholder{color:var(--text-muted)}.input-field:hover:not(:disabled):not(.is-error){border-color:var(--border-glow)}.input-field:focus{border-color:var(--accent);box-shadow:var(--state-focus-ring);background:var(--bg-surface)}.input-field.is-error{border-color:var(--intent-danger)}.input-field.is-error:focus{box-shadow:var(--state-danger-ring)}.input-field:disabled{opacity:.55;cursor:not-allowed;background:var(--bg-overlay)}.login-page{--login-success-transition:2.1s;--login-transition-curve:cubic-bezier(.25,.46,.45,.94);isolation:isolate;background:radial-gradient(circle at 78% 46%, #6366f138, transparent 32%), radial-gradient(circle at 20% 30%, #60a5fa21, transparent 28%), linear-gradient(135deg, #020617f0, #0a0f1fd1), var(--bg-deep);justify-content:center;align-items:center;height:100dvh;min-height:100dvh;padding:clamp(24px,5vw,64px);display:flex;position:relative;overflow:hidden}.login-page:before{content:"";z-index:1;pointer-events:none;opacity:0;will-change:opacity, transform;backface-visibility:hidden;background:radial-gradient(circle at 42% 46%,#f8717161 0%,#b91c1c4d 24%,#0000 54%),radial-gradient(circle at 82% 48%,#ef444452 0%,#0000 36%),linear-gradient(90deg,#7f1d1d33 0%,#7f1d1d6b 56%,#0206176b 100%);position:absolute;inset:0;transform:translate(0,0)scale(1.02)}.login-page:after{content:"";z-index:8;pointer-events:none;opacity:0;will-change:opacity, transform;backface-visibility:hidden;background:radial-gradient(circle at 48% 48%,#f8fafc7a 0%,#a5b4fc42 16%,#6366f129 32%,#0000 56%),radial-gradient(circle,#0000 0%,#0f172a4d 42%,#020617f5 80%);position:absolute;inset:0;transform:translate(0,0)scale(1)}.login-page.is-success:after{animation:loginPortalMorph var(--login-success-transition) var(--login-transition-curve) forwards}.login-page.is-error:before{animation:1.8s cubic-bezier(.16,1,.3,1) both loginErrorWash}.login-background-overlay{z-index:-1;background:linear-gradient(90deg,#0206170f 0%,#0206172e 52%,#02061794 100%),radial-gradient(circle at 78%,#6366f11a,#0000 34%),linear-gradient(#0206170a,#02061747);position:absolute;inset:0}.login-background-overlay:after{content:"";background-image:linear-gradient(#94a3b80b 1px,#0000 1px),linear-gradient(90deg,#94a3b80a 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000000b8,#0000);mask-image:linear-gradient(90deg,#000000b8,#0000)}.login-shell{z-index:2;justify-content:flex-end;align-items:center;width:min(1180px,100%);height:min(100%,720px);display:flex;position:relative}.login-feature-video{z-index:-3;object-fit:cover;object-position:50% center;transform-origin:45%;will-change:transform;backface-visibility:hidden;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translateZ(0)}.login-page.is-success .login-feature-video{animation:loginVideoWarp var(--login-success-transition) var(--login-transition-curve) forwards}.login-video-vignette{pointer-events:none;z-index:-2;pointer-events:none;will-change:opacity, transform;backface-visibility:hidden;background:radial-gradient(circle at 42% 46%,#0000 0%,#02061714 52%,#02061775 100%),linear-gradient(#02061705,#02061766);position:absolute;inset:0}.login-page.is-success .login-video-vignette{animation:loginVignetteCollapse var(--login-success-transition) var(--login-transition-curve) forwards}.login-mark{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--accent) 18%, transparent);border:1px solid var(--border-glow);width:56px;height:56px;box-shadow:var(--shadow-glow);color:var(--text-accent);font-family:var(--font-display);justify-content:center;align-items:center;font-size:22px;font-weight:800;display:inline-flex}.login-mark-small{border-radius:var(--radius-md);flex:none;width:40px;height:40px;font-size:16px}.login-panel{z-index:4;border-radius:var(--radius-xl);background:color-mix(in srgb, var(--bg-surface) 88%, transparent);width:100%;max-width:430px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transform-origin:50%;will-change:transform, opacity;backface-visibility:hidden;border:1px solid #94a3b842;padding:clamp(24px,3vw,34px);animation:.35s forwards scaleIn;position:relative}.login-panel.is-success{animation:loginPanelSuction var(--login-success-transition) var(--login-transition-curve) forwards}.login-panel.is-error{border-color:color-mix(in srgb, var(--intent-danger) 52%, transparent);background:color-mix(in srgb, var(--intent-danger) 7%, var(--bg-surface) 86%);box-shadow:0 0 0 1px color-mix(in srgb, var(--intent-danger) 34%, transparent), 0 18px 50px #0206179e, 0 0 64px color-mix(in srgb, var(--intent-danger) 34%, transparent);animation:.98s cubic-bezier(.22,.68,.28,1) both loginErrorShake}.login-panel.is-error .input-field{border-color:color-mix(in srgb, var(--intent-danger) 56%, var(--border));background:color-mix(in srgb, var(--intent-danger) 6%, var(--bg-elevated));box-shadow:0 0 0 1px color-mix(in srgb, var(--intent-danger) 14%, transparent)}.login-panel-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-7);display:flex}.login-panel-header h2{font-size:var(--text-xl);letter-spacing:0}.login-panel-header p{color:var(--text-muted);font-size:var(--text-sm);margin-top:3px;line-height:1.45}.login-error{border:1px solid color-mix(in srgb, var(--intent-danger) 25%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--intent-danger) 14%, transparent);color:var(--intent-danger);font-size:var(--text-sm);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--intent-danger) 8%, transparent);margin-top:14px;padding:10px 14px;line-height:1.45;animation:.36s both loginErrorMessage}.login-submit{margin-top:var(--space-5)}.score-pill{letter-spacing:.02em;border-radius:var(--radius-pill);font-size:11px;font-weight:600;font-family:var(--font-sans);align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.score-excellent{color:var(--green);background:#34d3991f;border:1px solid #34d39947}.score-eleve{color:var(--blue);background:#60a5fa1f;border:1px solid #60a5fa47}.score-moyen{color:var(--amber);background:#fbbf241f;border:1px solid #fbbf2447}.score-faible{color:var(--red);background:#f871711f;border:1px solid #f8717147}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px var(--accent-glow)}50%{box-shadow:0 0 36px #6366f166}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes scoreBarFill{0%{width:0}}@keyframes countUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pillPop{0%{opacity:0;transform:scale(.85)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes viewTransition{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes loginPortalMorph{0%{opacity:0;transform:translate(0,0)scale(1)}28%{opacity:.14;transform:translate(0,0)scale(1.004)}58%{opacity:.52;transform:translate(0,0)scale(1.01)}82%{opacity:.88;transform:translate(0,0)scale(1.016)}to{opacity:1;transform:translate(0,0)scale(1.02)}}@keyframes loginVideoWarp{0%{transform:scale(1)translate(0,0)}42%{transform:scale(1.018)translate(-.2%)}72%{transform:scale(1.04)translate(-.42%)}to{transform:scale(1.065)translate(-.7%)}}@keyframes loginVignetteCollapse{0%{opacity:1;transform:scale(1)}58%{opacity:.94;transform:scale(1.025)}to{opacity:.8;transform:scale(1.08)}}@keyframes loginPanelSuction{0%{opacity:1;transform:translate(0,0)scale(1)}24%{opacity:1;transform:translate(-2px,-1px)scale(.992)}48%{opacity:.96;transform:translate(-10px,-4px)scale(.93)}72%{opacity:.66;transform:translate(-28px,-10px)scale(.68)}90%{opacity:.24;transform:translate(-52px,-18px)scale(.36)}to{opacity:0;transform:translate(-70px,-24px)scale(.14)}}@keyframes loginErrorWash{0%{opacity:0;transform:scale(1.03)}20%{opacity:.9;transform:scale(1.01)}58%{opacity:.48;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes loginErrorShake{0%{transform:translate(0,0)}12%{transform:translate(-10px)}24%{transform:translate(8px)}38%{transform:translate(-6px)}54%{transform:translate(4px)}72%{transform:translate(-2px)}to{transform:translate(0,0)}}@keyframes loginErrorMessage{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.animate-fadeUp{animation:.45s forwards fadeUp}.animate-fadeIn{animation:.3s forwards fadeIn}.animate-slideDown{animation:.3s forwards slideDown}.animate-scaleIn{animation:.3s forwards scaleIn}.animate-viewTransition{animation:.35s forwards viewTransition}.animate-pillPop{animation:.4s forwards pillPop}.stagger-children>*{opacity:0;animation:.4s forwards fadeUp}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:70ms}.stagger-children>:nth-child(3){animation-delay:.14s}.stagger-children>:nth-child(4){animation-delay:.21s}.stagger-children>:nth-child(5){animation-delay:.28s}.stagger-children>:nth-child(6){animation-delay:.35s}.score-bar-fill{animation:.8s forwards scoreBarFill}.kanban-card{transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition)}.kanban-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.accordion-content{transition:max-height .3s,opacity .2s;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.login-feature-video{display:none}.login-page.is-success:after,.login-page.is-error:before,.login-page.is-success .login-feature-video,.login-page.is-success .login-video-vignette,.login-panel.is-success,.login-panel.is-error,.login-error{animation-duration:.01ms!important}}@media (width<=768px){.card{border-radius:var(--radius-md);padding:16px}.desktop-nav{display:none!important}.mobile-bottom-nav{display:flex!important}.form-grid-2col,.compare-grid{grid-template-columns:1fr!important}.kanban-columns{flex-direction:column!important;min-width:0!important}.kanban-columns>div{min-width:0!important}.action-buttons{flex-wrap:wrap;gap:6px!important}.action-buttons .btn{padding:7px 12px!important;font-size:12px!important}.dashboard-stats{grid-template-columns:1fr 1fr!important}.spider-wrapper{max-width:260px!important}.report-header-flex{flex-direction:column!important}.mobile-move-btn{min-width:44px!important;min-height:44px!important;display:flex!important}.kanban-card button{min-width:44px;min-height:44px}.login-page{align-items:center;padding:24px 18px}.login-shell{justify-content:center;height:auto}.login-panel{border-radius:var(--radius-lg);max-width:420px;margin:0 auto}}@media (width<=520px){.card{padding:14px}.dashboard-stats{grid-template-columns:1fr!important}.action-buttons .btn{width:100%}.login-page{height:100dvh;padding:16px 14px}.login-shell{width:100%}.login-panel{max-width:100%;padding:22px 18px}.login-panel-header{margin-bottom:var(--space-6);align-items:flex-start}}.mobile-bottom-nav{display:none}@media print{.no-print,nav,footer,.mobile-bottom-nav,.settings-panel,.action-buttons{display:none!important}*,:before,:after{transition:none!important;animation:none!important}}
