
*{box-sizing:border-box;margin:0;padding:0}
:root{--accent:#000091;--accent2:#1b1bc9;--ink:#16161D;--muted:#62626F;--line:#E3E3ED;--red:#E1000F;
  --ok:#0B7A3B;--sans:"Marianne","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif}
html,body{height:100%}
body{font-family:var(--sans);color:var(--ink);background:#F3F4FB;-webkit-font-smoothing:antialiased}
.tricolore{position:fixed;top:0;left:0;right:0;height:5px;display:flex;z-index:10}
.tricolore i{flex:1}.tb{background:#000091}.tw{background:#fff}.tr{background:#E1000F}
.wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:34px 20px}
.card{background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px -28px rgba(0,0,60,.4);width:100%;max-width:460px;padding:40px 40px 30px;text-align:center}
.wm{line-height:1}.wm .l1{font-weight:300;letter-spacing:.26em;font-size:26px}
.wm .l2{letter-spacing:.34em;font-size:9px;color:var(--ink);margin-top:5px}
.kick{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-top:22px}
h1{font-size:21px;font-weight:700;margin:9px 0 0}
.beta{display:inline-block;border:1.5px solid var(--red);color:var(--red);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;margin-top:12px}
.rule{width:54px;height:4px;display:flex;margin:20px auto}.rule i{flex:1}
.tabs{display:flex;border:1px solid var(--accent);margin:4px 0 20px}
.tabs button{flex:1;background:#fff;color:var(--accent);border:none;border-right:1px solid var(--accent);font-family:var(--sans);font-size:13px;font-weight:600;padding:10px;cursor:pointer}
.tabs button:last-child{border-right:none}.tabs button.on{background:var(--accent);color:#fff}
label{display:block;text-align:left;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 5px}
input{width:100%;font-family:var(--sans);font-size:15px;padding:11px 13px;border:1px solid #CACAD9;border-radius:0;outline:none}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #E5E5FB}
.btn{width:100%;background:var(--accent);color:#fff;border:none;font-family:var(--sans);font-size:15px;font-weight:700;padding:13px;margin-top:20px;cursor:pointer}
.btn:hover{background:var(--accent2)}.btn:disabled{opacity:.6;cursor:default}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid #CACAD9;margin-top:10px}
.msg{font-size:13.5px;line-height:1.5;margin-top:16px;padding:12px;border-radius:0}
.msg.err{background:#FCEBEB;color:#A32D2D;border:1px solid #F0999A}
.msg.ok{background:#E7F4EC;color:var(--ok);border:1px solid #A9D9BC}
.msg.info{background:#E5E5FB;color:var(--accent);border:1px solid #C9C9FF}
.sub{color:var(--muted);font-size:13.5px;margin-top:14px;line-height:1.5}
.credit{margin-top:28px;padding-top:14px;font-size:10.5px;color:var(--muted)}
.credit .cr{position:relative;display:inline-block;padding-bottom:9px}
.credit .cr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(to right,#000091 0 33.33%,#fff 33.33% 66.66%,#E1000F 66.66% 100%);border:1px solid var(--line)}
/* Admin */
.admin{max-width:760px;text-align:left}
.admin h2{font-size:19px;font-weight:700;margin-bottom:4px}
.admin .top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border:1px solid}
.tag.en_attente{color:#8a6d1e;border-color:#e0c478;background:#FBF3E2}
.tag.approuve{color:var(--ok);border-color:#A9D9BC;background:#E7F4EC}
.tag.refuse{color:#A32D2D;border-color:#F0999A;background:#FCEBEB}
.act{display:inline-flex;gap:6px}
.mini{font-size:11.5px;font-weight:700;padding:5px 9px;border:1px solid;cursor:pointer;background:#fff}
.mini.ap{color:var(--ok);border-color:var(--ok)}.mini.re{color:#A32D2D;border-color:#A32D2D}
.bar{position:fixed;top:5px;left:0;right:0;height:48px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:9}
.bar .l{font-weight:300;letter-spacing:.2em;font-size:14px}
.bar .r{display:flex;gap:8px;align-items:center}
.bar button{font-family:var(--sans);font-size:12px;font-weight:600;padding:6px 11px;border:1px solid var(--accent);background:#fff;color:var(--accent);cursor:pointer}
iframe#dash{position:fixed;top:53px;left:0;right:0;bottom:0;width:100%;height:calc(100% - 53px);border:0}
.center{min-height:100%;display:flex;align-items:center;justify-content:center;padding:40px}

.security{max-width:640px;text-align:left}.security h2{font-size:20px;margin-bottom:10px}.security h3{font-size:16px;margin-top:24px}.security .sub{margin-top:8px}.security .btn{max-width:360px}.security input{max-width:440px}.security code{display:block;overflow-wrap:anywhere;margin:12px 0;padding:12px;background:#F3F4FB}.security .qr{display:block;max-width:220px;height:auto;margin:16px 0}.bar .r{flex-wrap:wrap}.bar .l{flex-shrink:0}.field-hint{font-size:12px;color:var(--muted);margin:8px 0;text-align:left}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.msg:empty{display:none}.admin-table{overflow-x:auto}.security-actions{display:flex;flex-wrap:wrap;gap:10px}.security-actions button{width:auto}.note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:12px}@media(max-width:520px){.card{padding:30px 22px}.bar{padding:0 8px}.bar .l{font-size:11px;letter-spacing:.08em}.bar .r{gap:4px}.bar button{font-size:10px;padding:6px}.admin,.security{padding:24px 18px}.wrap{padding:70px 12px 24px}}
