:root{--bg: #0A1711;--surface: #122319;--surface-data: #0F1D14;--border: #1E3328;--fg: #F5F0E3;--muted: #8A9A8E;--accent: #C9A03B;--primary: #0B3320;--primary-light: #1A4A30;--copper: #B87333;--clay: #C97B4A;--steel: #6B8FA3;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius: 10px;--radius-sm: 6px;--shadow: 0 2px 8px rgba(0,0,0,.3)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface-data)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-light)}.app-layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--space-6) 0;position:fixed;top:0;left:0;height:100vh;z-index:100}.sidebar-brand{padding:0 var(--space-6) var(--space-8);border-bottom:1px solid var(--border);margin-bottom:var(--space-4)}.sidebar-brand h1{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:.5px;color:var(--fg)}.sidebar-brand .tagline{font-size:11px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);font-size:13px;font-weight:500;letter-spacing:.5px;color:var(--muted);cursor:pointer;border-left:3px solid transparent;transition:all .15s ease;text-decoration:none}.nav-item:hover{color:var(--fg);background:#c9a03b0d}.nav-item.active{color:var(--fg);border-left-color:var(--accent);background:#c9a03b14}.nav-item svg{width:18px;height:18px;flex-shrink:0}.main-content{flex:1;margin-left:220px;padding:var(--space-8);min-height:100vh}.page-header{margin-bottom:var(--space-8)}.page-header h2{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--fg)}.page-header .subtitle{font-size:13px;color:var(--muted);margin-top:var(--space-1)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6)}.card-title{font-family:var(--font-display);font-size:18px;font-weight:600;margin-bottom:var(--space-4);color:var(--fg)}.kpi-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6)}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.kpi-card .label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}.kpi-card .value{font-family:var(--font-display);font-size:42px;font-weight:700;line-height:1;color:var(--fg);font-variant-numeric:tabular-nums}.kpi-card .delta{font-size:12px;color:var(--accent);font-weight:500}.kpi-card .delta.negative{color:var(--clay)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}table.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead th{background:var(--surface-data);color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:1px;padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border);position:sticky;top:0}.data-table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.data-table tbody tr:nth-child(2n){background:#0f1d1480}.data-table tbody tr:hover{background:#c9a03b0f}.data-table tbody tr:last-child td{border-bottom:none}.result-bar{display:inline-block;width:3px;height:28px;border-radius:2px;margin-right:var(--space-3);vertical-align:middle}.result-bar.gagnant{background:var(--accent)}.result-bar.place{background:var(--copper)}.result-bar.perdu{background:#f5f0e326}.result-bar.attente{background:transparent;border:1px dashed var(--muted)}.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:500;letter-spacing:.3px}.badge.gagnant{background:#c9a03b26;color:var(--accent)}.badge.placé{background:#b8733326;color:var(--copper)}.badge.perdu{background:#f5f0e314;color:var(--muted)}.badge.attente{background:#6b8fa31f;color:var(--steel);border:1px dashed var(--steel)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:var(--space-2)}.form-group input,.form-group select,.form-group textarea{width:100%;background:var(--surface-data);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);color:var(--fg);font-family:var(--font-body);font-size:14px;transition:border-color .15s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group select option{background:var(--surface)}.btn{padding:10px 20px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--surface-data);color:var(--fg);transition:all .15s ease}.btn:hover{border-color:var(--primary-light)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}.btn-primary:hover{background:#d4ac4a;border-color:#d4ac4a}.btn-danger{background:transparent;color:var(--clay);border-color:var(--clay)}.btn-danger:hover{background:#c97b4a1a}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);margin-bottom:var(--space-6)}.chart-svg{width:100%;height:240px;display:block}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.stat-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.stat-bar .stat-label{width:100px;font-size:13px;color:var(--muted)}.stat-bar .stat-track{flex:1;height:8px;background:var(--surface-data);border-radius:4px;overflow:hidden}.stat-bar .stat-fill{height:100%;border-radius:4px;transition:width .3s ease}.stat-bar .stat-value{width:60px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;color:var(--fg)}.top-list{list-style:none}.top-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.top-list li:last-child{border-bottom:none}.top-list .rank{color:var(--accent);font-family:var(--font-display);font-size:18px;font-weight:600;width:28px}.top-list .name{flex:1;font-size:13px}.top-list .score{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.empty-state{text-align:center;padding:var(--space-10) var(--space-6);color:var(--muted)}.empty-state p{font-size:14px;margin-top:var(--space-2)}.loading{display:flex;align-items:center;justify-content:center;padding:var(--space-10);color:var(--muted);font-size:14px}.toast{position:fixed;bottom:var(--space-6);right:var(--space-6);background:var(--primary-light);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);color:var(--fg);font-size:14px;z-index:200;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-nav{display:none}@media (max-width: 768px){.sidebar{display:none}.main-content{margin-left:0;padding:var(--space-4)}.kpi-row{grid-template-columns:1fr 1fr}.form-grid,.stats-grid{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:100;padding:var(--space-2) 0}.mobile-nav .nav-item{flex:1;justify-content:center;border-left:none;border-top:3px solid transparent;padding:var(--space-2)}.mobile-nav .nav-item.active{border-top-color:var(--accent);border-left:none}.mobile-nav .nav-item span{display:none}.main-content{padding-bottom:70px}}
