:root{--ink:#1a1a2e;--gold:#d4a853;--gold-light:#f5e6c8;--cream:#faf8f5;--paper:#f4f1ec;--green:#27ae60;--danger:#e74c3c;--warning:#f39c12;--n200:#e5e5e5;--n400:#999;--n700:#444;--radius:12px;--shadow:0 2px 12px #00000014}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--ink);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--gold);text-decoration:none}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;background:#fff;padding:40px}.login-card h1{margin-bottom:8px;font-size:1.5rem}.login-card p{color:var(--n400);margin-bottom:24px;font-size:.85rem}.login-card input{border:1px solid var(--n200);border-radius:8px;width:100%;margin-bottom:12px;padding:12px;font-size:.95rem}.login-card button{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:.95rem;font-weight:600}.login-card button:hover{opacity:.9}.login-error{color:var(--danger);margin-top:8px;font-size:.85rem}.app{display:none}.app.active{display:block}.header{background:var(--ink);color:#fff;z-index:100;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.header h1{font-size:1.1rem;font-weight:700}.header .spacer{flex:1}.header .user-info{color:var(--gold);font-size:.85rem}.header button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:8px;padding:6px 14px;font-size:.8rem}.header button:hover{background:#ffffff1a}.tabs{border-bottom:1px solid var(--n200);background:#fff;gap:0;padding:0 24px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--n400);white-space:nowrap;border-bottom:3px solid #0000;padding:14px 20px;font-size:.9rem;font-weight:500}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--gold)}.content{max-width:1400px;margin:0 auto;padding:24px}.section{display:none}.section.active{display:block}.card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-bottom:16px;overflow:hidden}.card-header{border-bottom:1px solid var(--n200);align-items:center;gap:12px;padding:16px 20px;display:flex}.card-header h2{font-size:1rem;font-weight:600}.card-body{padding:20px}.stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:20px}.stat-card .label{color:var(--n400);margin-bottom:4px;font-size:.8rem}.stat-card .value{font-size:1.8rem;font-weight:700}.stat-card .sub{color:var(--n400);margin-top:4px;font-size:.8rem}table{border-collapse:collapse;width:100%;font-size:.85rem}th{text-align:left;background:var(--paper);color:var(--n700);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--n200);padding:10px 12px;font-size:.8rem;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--n200);vertical-align:top;padding:10px 12px}tr:hover td{background:var(--cream)}.badge{border-radius:99px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-gold{background:var(--gold-light);color:#8b6914}.badge-green{color:#155724;background:#d4edda}.badge-red{color:#721c24;background:#f8d7da}.badge-blue{color:#1a5276;background:#d6eaf8}.badge-gray{color:#555;background:#eee}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{opacity:.85}.btn-success{background:var(--green);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-outline{border:1px solid var(--n200);color:var(--n700);background:0 0}.btn-outline:hover{background:var(--paper)}.btn-sm{padding:4px 10px;font-size:.75rem}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar input[type=search]{border:1px solid var(--n200);border-radius:8px;min-width:250px;padding:8px 14px;font-size:.85rem}.toolbar select{border:1px solid var(--n200);background:#fff;border-radius:8px;padding:8px 14px;font-size:.85rem}.next-step{background:var(--gold-light);border-radius:8px;margin-top:6px;padding:8px 12px;font-size:.8rem;display:inline-block}.detail-panel{z-index:200;background:#fff;width:480px;max-width:100vw;height:100vh;transition:transform .3s;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-4px 0 20px #00000026}.detail-panel.open{transform:translate(0)}.detail-panel .panel-header{border-bottom:1px solid var(--n200);align-items:center;gap:12px;padding:20px;display:flex}.detail-panel .panel-header h2{flex:1;font-size:1rem}.detail-panel .close-btn{cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.3rem}.detail-panel .panel-body{padding:20px}.detail-panel .detail-row{border-bottom:1px solid var(--n200);justify-content:space-between;padding:8px 0;font-size:.85rem;display:flex}.detail-panel .detail-row .label{color:var(--n400)}.modal-overlay{z-index:300;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius);background:#fff;width:90%;max-width:500px;max-height:90vh;padding:30px;overflow-y:auto}.modal h2{margin-bottom:16px;font-size:1.1rem}.modal label{color:var(--n700);margin:12px 0 4px;font-size:.85rem;display:block}.modal input,.modal select{border:1px solid var(--n200);border-radius:8px;width:100%;padding:10px;font-size:.9rem}.modal .actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}@keyframes swUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes swPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes swFloat{0%,to{transform:translate(0)}50%{transform:translate(5px,-5px)scale(1.06)}}.ic{vertical-align:-.13em;stroke:currentColor;fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em;display:inline-block}.chk{color:var(--green)}.section.active .stat-card{animation:swUp .5s var(--ease-out) both}.section.active .stat-card:nth-child(2){animation-delay:60ms}.section.active .stat-card:nth-child(3){animation-delay:.12s}.section.active .stat-card:nth-child(4){animation-delay:.18s}.section.active .stat-card:nth-child(5){animation-delay:.24s}.section.active>.card{animation:swUp .55s var(--ease-out) both;animation-delay:80ms}.stat-card{transition:transform .26s var(--ease-out),box-shadow .26s;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--gold-light);z-index:0;border-radius:50%;width:60px;height:60px;animation:7s ease-in-out infinite swFloat;position:absolute;top:-14px;right:-14px}.stat-card>*{z-index:1;position:relative}.stat-card .value{font-variant-numeric:tabular-nums}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.card{transition:box-shadow .26s,transform .26s}button,.btn{transition:transform .12s var(--ease-spring),box-shadow .18s,opacity .18s}button:active,.btn:active{transform:scale(.96)}.tab{transition:color .18s,transform .18s}.tab:hover{transform:translateY(-1px)}.tab.active{animation:swPop .3s var(--ease-out)}tr{transition:background .15s}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important}}@media (width<=768px){.content{padding:12px}.stats{grid-template-columns:1fr 1fr}.detail-panel{width:100%}.toolbar input[type=search]{min-width:150px}}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h1,h2,h3,.stat-card .value,.login-card h1{font-family:Syne,DM Sans,system-ui,sans-serif}.tab{align-items:center;gap:8px;display:inline-flex}.tab .ic{flex:none}.tab.active .ic{color:var(--gold)}.btn .ic{flex:none}.vide{text-align:center;color:var(--n400);padding:28px 20px;font-size:.88rem}.bandeau-hors-service{color:#7d1f1f;background:#fdeaea;border-bottom:1px solid #f3c6c6;align-items:center;gap:10px;padding:10px 24px;font-size:.84rem;display:flex}.bandeau-hors-service .ic{color:var(--danger);flex:none}
