*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green: #3FAD5D;--oxford: #071F32;--charcoal: #32465C;--cultured: #F6F6F6;--green-pale: #E6F6EA;--white: #FFFFFF;--red: #C0392B}body{font-family:Montserrat,sans-serif;background:var(--cultured);color:var(--oxford);min-height:100vh}.header{background:var(--oxford);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-title{color:var(--white);font-size:16px;font-weight:700;letter-spacing:.05em}.header-title span{color:var(--green)}.header-meta{color:#ffffff73;font-size:11px;font-weight:400;margin-top:2px}.header-right{display:flex;align-items:center;gap:12px}.admin-badge{background:#3fad5d33;color:var(--green);border:1px solid rgba(63,173,93,.4);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600}.btn{border:none;border-radius:8px;padding:7px 16px;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn:hover{opacity:.85}.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.25);color:#ffffffb3}.btn-primary{background:var(--green);color:var(--white)}.btn-danger{background:#c0392b1f;color:var(--red);border:1px solid rgba(192,57,43,.25);font-size:11px;padding:5px 11px}.btn-restore{background:#3fad5d1f;color:var(--green);border:1px solid rgba(63,173,93,.3);font-size:11px;padding:5px 11px}.controls{padding:20px 32px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.controls label{font-size:12px;font-weight:600;color:var(--charcoal)}.select-role{font-family:inherit;font-size:12px;padding:7px 12px;border:1px solid rgba(50,70,92,.18);border-radius:8px;background:var(--white);color:var(--oxford);cursor:pointer;min-width:160px}.toggle-abandoned{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-abandoned input{cursor:pointer}.count-label{margin-left:auto;font-size:11px;color:#32465c80;font-weight:600}.table-wrapper{padding:0 32px 40px}.table-block{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 4px 20px #071f3217}table{width:100%;border-collapse:collapse}thead tr{background:var(--oxford)}thead th{padding:13px 14px;text-align:left;font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#ffffff80;white-space:nowrap}thead th.col-num{width:40px;text-align:center;padding-left:16px}thead th.col-voeu{color:#3fad5dcc}thead th.col-actions{width:120px}tbody tr{border-bottom:1px solid rgba(50,70,92,.06);transition:background .12s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--green-pale)}tbody tr:nth-child(2n){background:#f6f6f6b3}tbody tr:nth-child(2n):hover{background:var(--green-pale)}tbody tr.abandoned{opacity:.42}td{padding:10px 14px;font-size:12px;vertical-align:middle}td.col-num{text-align:center;font-size:10px;font-weight:600;color:#32465c47;padding-left:16px;width:40px}.candidate-name{display:flex;flex-direction:column;gap:1px}.candidate-prenom{font-weight:600;color:var(--oxford);font-size:12px}.candidate-nom{font-weight:400;color:var(--charcoal);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}.voeu-cell{display:inline-flex;align-items:center;gap:4px}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap}.badge-empty{color:#32465c33;font-size:11px}.delete-voeu{background:none;border:none;color:#c0392b80;font-size:14px;line-height:1;cursor:pointer;padding:0 2px;border-radius:4px;transition:color .15s,background .15s}.delete-voeu:hover{color:var(--red);background:#c0392b1a}.abandoned-label{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--red);opacity:.7;margin-left:6px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cultured)}.login-card{background:var(--white);border-radius:16px;box-shadow:0 4px 24px #071f321f;padding:40px;width:360px}.login-card h1{font-size:18px;font-weight:700;color:var(--oxford);margin-bottom:4px}.login-card .subtitle{font-size:12px;color:#32465c80;margin-bottom:28px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--charcoal);margin-bottom:6px}.form-group input{width:100%;font-family:inherit;font-size:13px;padding:10px 12px;border:1px solid rgba(50,70,92,.2);border-radius:8px;outline:none;transition:border-color .15s}.form-group input:focus{border-color:var(--green)}.login-error{font-size:12px;color:var(--red);margin-bottom:14px}.login-card .btn-primary{width:100%;padding:11px;font-size:13px;margin-top:4px}.back-link{display:block;text-align:center;margin-top:16px;font-size:12px;color:#32465c80;text-decoration:none}.back-link:hover{color:var(--green)}.admin-nav{background:#071f320a;border-bottom:1px solid rgba(50,70,92,.08);padding:10px 32px}.admin-nav-link{font-size:12px;font-weight:600;color:var(--charcoal);text-decoration:none}.admin-nav-link:hover{color:var(--green)}.log-date{font-size:11px;color:#32465c8c;white-space:nowrap}.log-action-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600}.log-action-abandoned{background:#c0392b1f;color:var(--red)}.log-action-restored{background:#3fad5d24;color:#1a6e30}.log-action-voeu_deleted{background:#f39c1226;color:#7d5a00}.log-action-voeu_restored{background:#2980b924;color:#1a5276}.log-voeu-detail{font-size:11px;color:var(--charcoal)}.log-voeu-rank{font-weight:600}.log-voeu-role{font-style:italic}.empty-state{padding:48px;text-align:center;color:#32465c66;font-size:13px}
