*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#1f2937;background-color:#f8fafc;min-height:100vh;width:100%;max-width:100vw;overflow-x:hidden;margin:0;padding:0}#app{min-height:100vh;width:100%;max-width:100vw;display:flex;flex-direction:column;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;color:inherit}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{line-height:1.6}a{color:#3b82f6;text-decoration:none;transition:color .2s ease}a:hover{color:#2563eb}button{font-family:inherit;font-size:inherit;border:none;background:none;cursor:pointer;outline:none;transition:all .2s ease}input,select,textarea{font-family:inherit;font-size:inherit;outline:none;border:none;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid #3b82f6;outline-offset:2px}.spacing-xs{margin:.25rem}.spacing-sm{margin:.5rem}.spacing-md{margin:1rem}.spacing-lg{margin:1.5rem}.spacing-xl{margin:2rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.text-gray-700{color:#374151}.text-gray-900{color:#111827}.text-red-600{color:#dc2626}.text-green-600{color:#16a34a}.text-blue-600{color:#2563eb}.text-yellow-600{color:#ca8a04}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s ease}.slide-enter-from{transform:translate(-100%)}.slide-leave-to{transform:translate(100%)}.bounce-hover:hover{animation:bounce .5s ease}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}*:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (hover: none) and (pointer: coarse){button,a,input[type=button],input[type=submit]{min-height:44px;min-width:44px}}button,.btn,.card{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.no-print{display:none!important}}.accueil-container[data-v-f93788b8]{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#0f1419,#1a1f2e,#2d1b69);color:#fff;font-family:Inter,Segoe UI,sans-serif;position:relative;overflow:hidden}.animated-background[data-v-f93788b8]{position:absolute;inset:0;z-index:0}.bg-shapes[data-v-f93788b8]{position:relative;width:100%;height:100%}.shape[data-v-f93788b8]{position:absolute;border-radius:50%;background:linear-gradient(45deg,#00d4ff,#7c3aed);opacity:.1;animation:float-f93788b8 8s ease-in-out infinite}.shape-1[data-v-f93788b8]{width:300px;height:300px;top:5%;left:5%;animation-delay:0s}.shape-2[data-v-f93788b8]{width:200px;height:200px;top:50%;right:10%;animation-delay:3s}.shape-3[data-v-f93788b8]{width:150px;height:150px;bottom:10%;left:50%;animation-delay:6s}@keyframes float-f93788b8{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-30px) rotate(180deg)}}.game-header[data-v-f93788b8]{position:relative;z-index:10;padding:2rem;text-align:center;background:#0009;backdrop-filter:blur(20px);border-bottom:2px solid rgba(0,212,255,.3)}.header-content[data-v-f93788b8]{max-width:1200px;margin:0 auto;position:relative}.header-nav[data-v-f93788b8]{position:absolute;top:0;left:0;display:flex;gap:1rem}.nav-button[data-v-f93788b8]{padding:.8rem 1.5rem;background:#0009;border:1px solid rgba(0,212,255,.3);border-radius:20px;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .3s ease;backdrop-filter:blur(10px);text-transform:uppercase;letter-spacing:.5px}.nav-button[data-v-f93788b8]:hover{background:#00d4ff33;border-color:#00d4ff;transform:translateY(-2px);box-shadow:0 5px 15px #00d4ff4d}.game-logo[data-v-f93788b8]{display:flex;align-items:center;justify-content:center;gap:1rem;margin:3rem 0 1rem}.logo-icon[data-v-f93788b8]{font-size:2.5rem;filter:drop-shadow(0 0 10px rgba(0,212,255,.5))}.games-list-content[data-v-f93788b8]{flex:1;padding:2rem;max-width:none;position:relative;z-index:5}.game-title[data-v-f93788b8]{font-size:2rem;font-weight:900;margin:0;background:linear-gradient(45deg,#00d4ff,#7c3aed);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-transform:uppercase;letter-spacing:3px}.game-subtitle[data-v-f93788b8]{font-size:1.2rem;opacity:.8;margin:0;color:#00d4ff}.main-content[data-v-f93788b8]{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem;position:relative;z-index:5}.connection-form[data-v-f93788b8]{background:#0009;border-radius:25px;padding:3rem;backdrop-filter:blur(20px);border:2px solid rgba(0,212,255,.3);width:100%;max-width:500px;box-shadow:0 20px 50px #0000004d}.form-group[data-v-f93788b8]{margin-bottom:2rem}.form-label[data-v-f93788b8]{display:block;font-weight:700;margin-bottom:.8rem;font-size:1.2rem}.form-input[data-v-f93788b8]{width:100%;padding:1.2rem;border:2px solid transparent;border-radius:12px;font-size:1.1rem;background:#ffffffe6;color:#333;transition:all .3s ease}.form-input[data-v-f93788b8]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.form-input[data-v-f93788b8]:disabled{opacity:.6;cursor:not-allowed}.connect-button[data-v-f93788b8]{width:100%;padding:1.5rem;background:linear-gradient(45deg,#00d4ff,#09c);border:none;border-radius:15px;color:#fff;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;text-transform:uppercase;letter-spacing:1px;position:relative;overflow:hidden}.connect-button[data-v-f93788b8]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.connect-button[data-v-f93788b8]:hover:before{left:100%}.connect-button[data-v-f93788b8]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #00d4ff66}.connect-button[data-v-f93788b8]:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-spinner[data-v-f93788b8]{animation:spin-f93788b8 1s linear infinite}@keyframes spin-f93788b8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message[data-v-f93788b8]{background:#ef444433;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:1rem;text-align:center;color:#fca5a5}.role-info[data-v-f93788b8]{text-align:center;margin-top:1rem}.role-assignment-text[data-v-f93788b8]{margin:0;font-size:.95rem;opacity:.8;background:#ffffff1a;padding:1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2)}.game-footer[data-v-f93788b8]{text-align:center;padding:2rem 1rem;background:#0000001a}.footer-text[data-v-f93788b8]{margin:0;font-size:1.1rem;opacity:.8}@media (max-width: 768px){.game-title[data-v-f93788b8]{font-size:1.8rem}.game-subtitle[data-v-f93788b8]{font-size:1.1rem}.connection-form[data-v-f93788b8]{padding:2rem;margin:1rem}.main-content[data-v-f93788b8]{padding:1rem}.header-nav[data-v-f93788b8]{position:relative;margin-bottom:2rem;justify-content:center}.nav-button[data-v-f93788b8]{font-size:.8rem;padding:.6rem 1.2rem}.game-logo[data-v-f93788b8]{margin:1rem 0}}@media (max-width: 480px){.game-header[data-v-f93788b8]{padding:2rem 1rem 1.5rem}.game-title[data-v-f93788b8]{font-size:2rem}.game-subtitle[data-v-f93788b8]{font-size:1rem}.connection-form[data-v-f93788b8]{padding:1.5rem}.form-input[data-v-f93788b8]{padding:1rem;font-size:1rem}.connect-button[data-v-f93788b8]{padding:1.2rem;font-size:1.1rem}}.games-container[data-v-f93788b8]{max-width:1200px;margin:0 auto}.actions-bar[data-v-f93788b8]{display:grid;gap:1.5rem;margin-bottom:2rem;background:#0009;border-radius:25px;padding:2rem;backdrop-filter:blur(20px);border:2px solid rgba(0,212,255,.3);box-shadow:0 20px 50px #0000004d}.search-section[data-v-f93788b8]{display:grid;gap:.5rem}.search-label[data-v-f93788b8]{font-weight:700;font-size:1.1rem}.search-input[data-v-f93788b8]{padding:1rem;border:2px solid rgba(255,255,255,.3);border-radius:12px;background:#ffffff1a;color:#fff;font-size:1.1rem;transition:all .3s ease}.search-input[data-v-f93788b8]::placeholder{color:#fff9}.search-input[data-v-f93788b8]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.action-buttons[data-v-f93788b8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.refresh-button[data-v-f93788b8],.create-button[data-v-f93788b8]{padding:1rem;border:none;border-radius:15px;font-weight:700;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;text-transform:uppercase;letter-spacing:1px;position:relative;overflow:hidden}.refresh-button[data-v-f93788b8]:before,.create-button[data-v-f93788b8]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.refresh-button[data-v-f93788b8]:hover:before,.create-button[data-v-f93788b8]:hover:before{left:100%}.refresh-button[data-v-f93788b8]{background:linear-gradient(45deg,#00d4ff,#09c);color:#fff}.create-button[data-v-f93788b8]{background:linear-gradient(45deg,#22c55e,#16a34a);color:#fff}.refresh-button[data-v-f93788b8]:hover:not(:disabled),.create-button[data-v-f93788b8]:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00d4ff4d}.refresh-button[data-v-f93788b8]:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-section[data-v-f93788b8],.error-section[data-v-f93788b8]{text-align:center;background:#ffffff1a;border-radius:20px;padding:3rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.loading-spinner-large[data-v-f93788b8]{font-size:3rem;margin-bottom:1rem;animation:spin-f93788b8 1s linear infinite}.retry-button[data-v-f93788b8]{margin-top:1rem;padding:1rem 2rem;background:linear-gradient(45deg,#4f46e5,#7c3aed);border:none;border-radius:12px;color:#fff;font-weight:700;cursor:pointer;transition:all .3s ease}.retry-button[data-v-f93788b8]:hover{transform:translateY(-2px);box-shadow:0 10px 25px #4f46e54d}.games-grid[data-v-f93788b8]{display:grid;gap:1.5rem}.no-games[data-v-f93788b8]{text-align:center;background:#ffffff1a;border-radius:20px;padding:3rem;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.no-games-icon[data-v-f93788b8]{font-size:4rem;margin-bottom:1rem}.no-games h3[data-v-f93788b8]{margin:1rem 0;font-size:1.5rem}.no-games p[data-v-f93788b8]{opacity:.8;margin-bottom:2rem}.create-first-game-button[data-v-f93788b8]{padding:1rem 2rem;background:linear-gradient(45deg,#22c55e,#16a34a);border:none;border-radius:12px;color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease}.create-first-game-button[data-v-f93788b8]:hover{transform:translateY(-2px);box-shadow:0 10px 25px #22c55e4d}.game-card[data-v-f93788b8]{background:#0009;border-radius:25px;padding:2rem;backdrop-filter:blur(20px);border:2px solid rgba(255,255,255,.1);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.game-card[data-v-f93788b8]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,212,255,.1),transparent);transition:left .6s}.game-card[data-v-f93788b8]:hover:before{left:100%}.game-card[data-v-f93788b8]:hover{transform:translateY(-10px);box-shadow:0 20px 50px #00d4ff33;border-color:#00d4ff80}.game-card .game-header[data-v-f93788b8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0;background:none;backdrop-filter:none}.game-name[data-v-f93788b8]{font-size:1.3rem;margin:0;color:#fff}.game-status[data-v-f93788b8]{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:700}.game-status.waiting[data-v-f93788b8]{background:#fbbf244d;color:#fbbf24}.game-status.playing[data-v-f93788b8]{background:#22c55e4d;color:#22c55e}.game-status.finished[data-v-f93788b8]{background:#9ca3af4d;color:#9ca3af}.game-info[data-v-f93788b8]{display:grid;gap:.5rem;margin-bottom:1.5rem;font-size:.95rem;opacity:.9}.game-actions[data-v-f93788b8]{display:flex;justify-content:flex-end}.join-button[data-v-f93788b8]{padding:.8rem 1.5rem;background:linear-gradient(45deg,#4f46e5,#7c3aed);border:none;border-radius:10px;color:#fff;font-weight:700;cursor:pointer;transition:all .3s ease}.join-button[data-v-f93788b8]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #4f46e54d}.join-button[data-v-f93788b8]:disabled{background:#9ca3af80;cursor:not-allowed;transform:none}.modal-overlay[data-v-f93788b8]{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(5px)}.modal-content[data-v-f93788b8]{background:#ffffff1a;border-radius:20px;padding:3rem;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);max-width:500px;width:90%;color:#fff}.modal-title[data-v-f93788b8]{font-size:1.5rem;margin:0 0 2rem;text-align:center}.modal-actions[data-v-f93788b8]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.cancel-button[data-v-f93788b8],.confirm-button[data-v-f93788b8]{padding:1rem;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s ease}.cancel-button[data-v-f93788b8]{background:#ef4444cc;color:#fff}.confirm-button[data-v-f93788b8]{background:linear-gradient(45deg,#22c55e,#16a34a);color:#fff}.cancel-button[data-v-f93788b8]:hover,.confirm-button[data-v-f93788b8]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #0003}.confirm-button[data-v-f93788b8]:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (min-width: 768px){.actions-bar[data-v-f93788b8]{grid-template-columns:2fr 3fr;align-items:end}.action-buttons[data-v-f93788b8]{grid-template-columns:repeat(3,1fr)}.games-grid[data-v-f93788b8]{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}}@media (max-width: 768px){.games-container[data-v-f93788b8]{padding:0}.actions-bar[data-v-f93788b8]{margin:1rem;padding:1.5rem}.games-grid[data-v-f93788b8]{padding:0 1rem}.game-card[data-v-f93788b8]{padding:1.5rem}.modal-content[data-v-f93788b8]{padding:2rem;margin:1rem}.modal-actions[data-v-f93788b8]{grid-template-columns:1fr}}:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;width:100%;margin:0;padding:0;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;font-weight:400}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media (hover: hover){a:hover{background-color:#00bd7e33}}:root{--color-primary: #2563eb;--color-primary-light: #3b82f6;--color-primary-dark: #1d4ed8;--color-secondary: #64748b;--color-secondary-light: #94a3b8;--color-secondary-dark: #475569;--color-letter-rouge: #dc2626;--color-letter-rouge-light: #ef4444;--color-letter-rouge-bg: #fecaca;--color-letter-rouge-border: #f87171;--color-letter-bleue: #2563eb;--color-letter-bleue-light: #3b82f6;--color-letter-bleue-bg: #bfdbfe;--color-letter-bleue-border: #93c5fd;--color-role-neutral: #f1f5f9;--color-role-accent: #3b82f6;--color-success: #16a34a;--color-success-light: #22c55e;--color-success-bg: #dcfce7;--color-warning: #d97706;--color-warning-light: #f59e0b;--color-warning-bg: #fed7aa;--color-error: #dc2626;--color-error-light: #ef4444;--color-error-bg: #fee2e2;--color-background: #f8fafc;--color-surface: #ffffff;--color-surface-light: #f9fafb;--color-surface-dark: #f1f5f9;--color-text-primary: #1f2937;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-text-inverse: #ffffff;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-border-dark: #d1d5db;--font-family-base: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-family-mono: "SF Mono", Monaco, Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.625;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 1000;--z-modal: 2000;--z-toast: 3000;--z-tooltip: 4000;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px}.bg-primary{background-color:var(--color-primary)}.bg-surface{background-color:var(--color-surface)}.bg-surface-light{background-color:var(--color-surface-light)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-inverse{color:var(--color-text-inverse)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.transition-fast{transition:all var(--transition-fast)}.transition-base{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-lg);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1;cursor:pointer;transition:all var(--transition-base);text-decoration:none;outline:none}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-dark));color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border-light)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.badge-neutral{background:var(--color-role-neutral);color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge-online{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-light)}.badge-offline{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-light)}.letter-rouge{background:var(--color-letter-rouge-bg);color:var(--color-letter-rouge);border:2px solid var(--color-letter-rouge-border)}.letter-bleue{background:var(--color-letter-bleue-bg);color:var(--color-letter-bleue);border:2px solid var(--color-letter-bleue-border)}.bin-rouge{background:linear-gradient(135deg,var(--color-letter-rouge-light),var(--color-letter-rouge));color:var(--color-text-inverse);border:2px solid var(--color-letter-rouge)}.bin-bleu{background:linear-gradient(135deg,var(--color-letter-bleue-light),var(--color-letter-bleue));color:var(--color-text-inverse);border:2px solid var(--color-letter-bleue)}.status-waiting{color:var(--color-warning)}.status-completed{color:var(--color-success)}.status-error{color:var(--color-error)}.mobile-only{display:block}.desktop-only{display:none}@media (min-width: 768px){.mobile-only{display:none}.desktop-only{display:block}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideInUp{animation:slideInUp .3s ease-out}.animate-pulse{animation:pulse 2s infinite}.animate-spin{animation:spin 1s linear infinite}
