:root,[data-theme=dark]{--bg-primary: #09090B;--bg-secondary: rgba(24, 24, 27, .45);--bg-tertiary: rgba(39, 39, 42, .55);--bg-elevated: rgba(63, 63, 70, .65);--bg-overlay: rgba(9, 9, 11, .85);--glass-bg: rgba(24, 24, 27, .35);--glass-bg-hover: rgba(39, 39, 42, .45);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(255, 255, 255, .18);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .15);--accent: #9D6FFF;--accent-hover: #8B5CF6;--accent-dim: #7C3AED;--accent-glow: rgba(157, 111, 255, .25);--accent-soft: rgba(157, 111, 255, .1);--accent-soft-strong: rgba(157, 111, 255, .18);--accent-2: #2DD4EE;--accent-2-glow: rgba(45, 212, 238, .22);--accent-2-soft: rgba(45, 212, 238, .1);--gradient-primary: linear-gradient(135deg, #9D6FFF 0%, #0ED2F7 100%);--gradient-primary-hover: linear-gradient(135deg, #8B5CF6 0%, #06B6D4 100%);--gradient-subtle: linear-gradient(135deg, rgba(157,111,255,.12) 0%, rgba(14,210,247,.12) 100%);--gradient-card: linear-gradient(160deg, rgba(39,39,42,.3) 0%, rgba(24,24,27,.5) 100%);--gradient-surface: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,0) 100%);--gradient-ambient: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(157,111,255,.2) 0%, transparent 70%), radial-gradient(circle 800px at 100% 80%, rgba(45,212,238,.08) 0%, transparent 80%), radial-gradient(circle 600px at 0% 100%, rgba(157,111,255,.08) 0%, transparent 80%);--success: #2ECC71;--success-soft: rgba(46, 204, 113, .11);--warning: #F5A623;--warning-soft: rgba(245, 166, 35, .11);--error: #FF6B6B;--error-soft: rgba(255, 107, 107, .11);--info: #64B5F6;--info-soft: rgba(100, 181, 246, .11);--text-primary: #FAFAFA;--text-secondary: #A1A1AA;--text-tertiary: #71717A;--text-inverse: #09090B;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .12);--border-focus: var(--accent);--border-top-highlight: rgba(255, 255, 255, .05);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .45), 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-md: 0 4px 16px rgba(0, 0, 0, .5), 0 1px 0 rgba(255, 255, 255, .05) inset;--shadow-lg: 0 8px 32px rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .05) inset;--shadow-xl: 0 20px 60px rgba(0, 0, 0, .65), 0 1px 0 rgba(255, 255, 255, .06) inset;--shadow-glow: 0 0 0 1px rgba(157,111,255,.25), 0 4px 24px rgba(157,111,255,.3), 0 0 60px rgba(157,111,255,.12);--shadow-glow-cyan: 0 0 0 1px rgba(45,212,238,.2), 0 4px 20px rgba(45,212,238,.25);--shadow-glow-sm: 0 0 0 1px rgba(157,111,255,.2), 0 2px 12px rgba(157,111,255,.2);--sidebar-bg: rgba(9, 9, 11, .5);--sidebar-item-active: rgba(255, 255, 255, .08);--sidebar-item-hover: rgba(255, 255, 255, .04);--sidebar-border: rgba(255, 255, 255, .1);--input-bg: rgba(255, 255, 255, .03);--input-border: rgba(255, 255, 255, .08);--input-focus-ring: rgba(157, 111, 255, .25);--scrollbar-track: #09090B;--scrollbar-thumb: #27272A;--scrollbar-thumb-hover:#3F3F46}[data-theme=light]{--bg-primary: #F4F4F5;--bg-secondary: rgba(255, 255, 255, .45);--bg-tertiary: rgba(255, 255, 255, .6);--bg-elevated: rgba(255, 255, 255, .85);--glass-bg: rgba(255, 255, 255, .35);--glass-bg-hover: rgba(255, 255, 255, .55);--glass-border: rgba(0, 0, 0, .04);--glass-border-hover: rgba(0, 0, 0, .08);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .8);--accent: #7C3AED;--accent-hover: #6D28D9;--accent-glow: rgba(124, 58, 237, .2);--accent-soft: rgba(124, 58, 237, .08);--accent-2: #0891B2;--accent-2-glow: rgba(8, 145, 178, .2);--accent-2-soft: rgba(8, 145, 178, .08);--gradient-primary: linear-gradient(135deg, #7C3AED, #0891B2);--gradient-primary-hover: linear-gradient(135deg, #6D28D9, #0E7490);--gradient-subtle: linear-gradient(135deg, rgba(124, 58, 237, .08), rgba(8, 145, 178, .08));--gradient-card: linear-gradient(145deg, rgba(255, 255, 255, .4), rgba(243, 244, 248, .3));--gradient-surface: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 100%);--gradient-ambient: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(124, 58, 237, .12) 0%, transparent 70%), radial-gradient(circle 800px at 100% 80%, rgba(8, 145, 178, .06) 0%, transparent 80%), radial-gradient(circle 600px at 0% 100%, rgba(124, 58, 237, .06) 0%, transparent 80%);--success: #10B981;--success-soft: rgba(16, 185, 129, .1);--warning: #F59E0B;--warning-soft: rgba(245, 158, 11, .1);--error: #EF4444;--error-soft: rgba(239, 68, 68, .1);--info: #3B82F6;--info-soft: rgba(59, 130, 246, .1);--text-primary: #111827;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--text-inverse: #FFFFFF;--border: rgba(0, 0, 0, .06);--border-strong: rgba(0, 0, 0, .1);--border-focus: var(--accent);--border-top-highlight: rgba(255, 255, 255, .8);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(124, 58, 237, .2);--shadow-glow-cyan: 0 0 20px rgba(8, 145, 178, .15);--sidebar-bg: rgba(255, 255, 255, .45);--sidebar-item-active: rgba(124, 58, 237, .08);--sidebar-item-hover: rgba(0, 0, 0, .03);--sidebar-border: rgba(0, 0, 0, .06);--input-bg: rgba(255, 255, 255, .4);--input-border: rgba(0, 0, 0, .08);--input-focus-ring: rgba(124, 58, 237, .25);--scrollbar-track: #F3F4F8;--scrollbar-thumb: #D1D5DB;--scrollbar-thumb-hover: #9CA3AF}:root{--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--status-planifiee: #60A5FA;--status-en-cours: #8B5CF6;--status-en-analyse: #FBBF24;--status-terminee: #34D399;--status-prelevement: #60A5FA;--status-acheminement: #A78BFA;--status-reception: #FBBF24;--status-analyse: #22D3EE;--status-resultats: #34D399}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes shimmer-btn{0%{left:-100%;opacity:1}to{left:150%;opacity:0}}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 8px transparent}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-6px)}20%,40%,60%,80%{transform:translate(6px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes ripple{to{transform:scale(4);opacity:0}}.fade-in{animation:fadeIn var(--duration-normal) var(--ease-out) forwards}.fade-up{animation:fadeUp .4s var(--ease-out) forwards}.scale-in{animation:scaleIn .3s var(--ease-out) forwards}.glass-card{background:var(--glass-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md),var(--glass-highlight, inset 0 1px 0 rgba(255,255,255,.07));transition:all var(--duration-normal) var(--ease-smooth)}.glass-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--shadow-lg),inset 0 1px #ffffff17;transform:translateY(-1px)}.surface-card{background:var(--bg-secondary);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm),inset 0 1px #ffffff0f;transition:all var(--duration-normal) var(--ease-smooth)}.surface-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md),inset 0 1px #ffffff0f;transform:translateY(-1px)}.gradient-btn{background:var(--gradient-primary);background-size:200% 200%;color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--duration-normal) var(--ease-smooth);position:relative;overflow:hidden;box-shadow:inset 0 1px #fff3}.gradient-btn:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:skew(-20deg);transition:none}.gradient-btn:hover:after{animation:shimmer-btn .6s ease forwards}.gradient-btn:hover{background:var(--gradient-primary-hover);box-shadow:var(--shadow-glow),inset 0 1px #ffffff40;transform:translateY(-1px)}.gradient-btn:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-glow-sm),inset 0 1px #ffffff26}.hover-lift{transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.shimmer-bg{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-elevated) 50%,var(--bg-tertiary) 100%);background-size:1000px 100%;animation:shimmer 1.5s infinite linear}.shake{animation:shake .5s ease-in-out}.glow-pulse{animation:glow-pulse 2s ease-in-out infinite}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*:focus:not(:focus-visible){outline:none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color var(--duration-slow) var(--ease-smooth),color var(--duration-slow) var(--ease-smooth);position:relative}[data-theme=dark] body:before,[data-theme=light] body:before,:root body:before{content:"";position:fixed;top:0;left:0;right:0;height:100vh;background:var(--gradient-ambient, radial-gradient(ellipse 80% 50% at 50% -10%, rgba(157,111,255,.11) 0%, transparent 70%));pointer-events:none;z-index:0}#root{min-height:100vh;position:relative;z-index:1}h1,h2,h3,h4,h5,h6{font-family:Outfit,Plus Jakarta Sans,sans-serif;line-height:1.2;font-weight:700;letter-spacing:-.02em}h1{font-size:2rem;font-weight:800}h2{font-size:1.5rem}h3{font-size:1.25rem}.numbers,.mono{font-family:Inter,SF Mono,monospace;font-feature-settings:"tnum"}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);padding:10px 14px;outline:none;transition:border-color var(--duration-fast) var(--ease-smooth),box-shadow var(--duration-fast) var(--ease-smooth),background-color var(--duration-fast) var(--ease-smooth)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus-ring);background:transparent}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}@media (max-width: 768px){button,a[role=button],[role=tab]{min-height:44px;min-width:44px}}@media (max-width: 1023px){.dashboard-grid{grid-template-columns:1fr!important}}::selection{background:#9d6fff47;color:#eef2ff}.theme-transition,.theme-transition *,.theme-transition *:before,.theme-transition *:after{transition:background-color var(--duration-slow) var(--ease-smooth),border-color var(--duration-slow) var(--ease-smooth),color var(--duration-slow) var(--ease-smooth),box-shadow var(--duration-slow) var(--ease-smooth)!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[style*=backdrop-filter],[style*=-webkit-backdrop-filter],.glass-card,.surface-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}.hover-lift,.glass-card,.gradient-btn{will-change:transform}.sidebar-nav-item{display:flex;align-items:center;border-radius:12px;text-decoration:none;color:var(--text-secondary);font-weight:500;font-size:14px;position:relative;background:transparent;transition:background var(--duration-fast) var(--ease-smooth),color var(--duration-fast) var(--ease-smooth)}.sidebar-nav-item:hover{background:var(--sidebar-item-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--sidebar-item-active);color:var(--accent);font-weight:600}.sidebar-btn{width:100%;display:flex;align-items:center;border-radius:12px;font-size:13px;font-weight:500;color:var(--text-secondary);background:transparent;cursor:pointer;border:none;font-family:inherit;transition:background var(--duration-fast) var(--ease-smooth),color var(--duration-fast) var(--ease-smooth)}.sidebar-btn:hover{background:var(--sidebar-item-hover);color:var(--text-primary)}.sidebar-btn--danger{color:var(--error)}.sidebar-btn--danger:hover{background:var(--error-soft);color:var(--error)}.sidebar-collapse-btn{position:absolute;top:80px;right:-14px;width:28px;height:28px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;z-index:100;box-shadow:var(--shadow-md);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background var(--duration-fast) var(--ease-smooth),color var(--duration-fast) var(--ease-smooth),border-color var(--duration-fast) var(--ease-smooth)}.sidebar-collapse-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.topbar-breadcrumb-link{color:var(--text-tertiary);font-weight:400;white-space:nowrap;font-size:14px;text-decoration:none;transition:color var(--duration-fast) var(--ease-smooth)}.topbar-breadcrumb-link:hover{color:var(--accent)}.topbar-breadcrumb-link--active{color:var(--text-primary);font-weight:600;pointer-events:none}.topbar-icon-btn{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--input-bg);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:color var(--duration-fast) var(--ease-smooth),border-color var(--duration-fast) var(--ease-smooth)}.topbar-icon-btn:hover{color:var(--accent);border-color:var(--accent)}.topbar-search-btn{width:100%;height:40px;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--input-bg);border:1px solid var(--border);border-radius:12px;color:var(--text-tertiary);font-size:14px;text-align:left;cursor:pointer;font-family:inherit;transition:border-color var(--duration-fast) var(--ease-smooth),box-shadow var(--duration-fast) var(--ease-smooth)}.topbar-search-btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus-ring)}.topbar-avatar-btn{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:12px;background:var(--input-bg);border:1px solid var(--border);cursor:pointer;font-family:inherit;transition:border-color var(--duration-fast) var(--ease-smooth)}.topbar-avatar-btn:hover{border-color:var(--accent)}.dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:12px 18px;font-size:14px;font-weight:500;cursor:pointer;border:none;font-family:inherit;background:transparent;transition:background var(--duration-fast) var(--ease-smooth)}.dropdown-item:hover{background:var(--sidebar-item-hover)}.dropdown-item--danger{color:var(--error)}.dropdown-item--danger:hover{background:var(--error-soft)}
