:root { --bg:#070810; --gold:#e4c15a; --gold2:#b8942a; --text:#f3e7c4; --muted:#b7a57a; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family: Georgia, "Times New Roman", serif; background: radial-gradient(900px 500px at 50% -10%, #1c1633 0%, var(--bg) 55%); color: var(--text); min-height: 100vh; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 18px; }
header { text-align: center; border: 1px solid var(--gold2); background: linear-gradient(180deg,#16102a,#0b0d18); padding: 18px 12px 14px; border-radius: 8px; box-shadow: 0 0 0 4px #0b0d18, 0 0 0 5px #8a6a1e; }
header h1 { font-size: 32px; letter-spacing: 3px; color: var(--gold); }
header p { color: var(--muted); font-size: 13px; margin-top: 4px; }
.layout { display: grid; grid-template-columns: 1.35fr .9fr; gap: 14px; margin-top: 14px; }
@media (max-width: 980px) { .layout { grid-template-columns: 1fr; } }
.panel { background: #0d1220; border: 1px solid #6d5518; border-radius: 8px; padding: 12px; }
h2 { color: var(--gold); font-size: 15px; letter-spacing: 1.5px; text-transform: uppercase; margin: 10px 0 8px; }
input, textarea, select { width: 100%; padding: 8px 10px; border-radius: 6px; border: 1px solid #6d5518; background: #080b14; color: var(--text); font-family: inherit; }
.cat { margin-bottom: 10px; }
.cat-title { background: linear-gradient(90deg,#3a2a0c,#1a1408); border: 1px solid var(--gold2); color: var(--gold); padding: 6px 10px; font-size: 12px; letter-spacing: 2px; font-weight: 700; }
.inf { display: grid; grid-template-columns: 1fr auto auto auto auto; gap: 6px; align-items: center; padding: 7px 8px; border-bottom: 1px solid #2a2312; font-size: 13px; }
.btn { border: 1px solid var(--gold2); background: #1a1408; color: var(--gold); padding: 6px 10px; border-radius: 4px; cursor: pointer; font-size: 12px; }
.btn-red { border-color: #7a3030; color: #e08a8a; }
.exist { color: #ffb4b4; font-size: 11px; font-weight: 700; }
.line { display: flex; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid #2a2312; font-size: 13px; }
.totals { margin-top: 12px; padding: 12px; border: 1px solid var(--gold); background: #16100a; border-radius: 6px; }
.rowline { display: flex; justify-content: space-between; margin: 4px 0; }
.big { font-size: 22px; color: var(--gold); font-weight: 700; }
.wipe { background: #3a1010; border: 1px solid #e06b6b; color: #ffb4b4; padding: 10px; border-radius: 6px; margin-top: 8px; font-weight: 700; display: none; }
.overlay { position: fixed; inset: 0; background: rgba(0,0,0,.75); display: none; place-items: center; padding: 16px; z-index: 20; }
.overlay.on { display: grid; }
.modal { width: min(520px, 100%); background: #120e1c; border: 1px solid var(--gold); border-radius: 10px; padding: 16px; max-height: 90vh; overflow: auto; }
.form-grid { display: grid; gap: 8px; }
.row { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0; justify-content: center; }
.empty { color: var(--muted); font-size: 13px; padding: 10px 0; }
footer { text-align: center; color: #7a6a42; font-size: 11px; margin-top: 16px; }
#login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-box { width: min(440px, 100%); text-align: center; border: 1px solid var(--gold2); background: #120e1c; padding: 28px 20px; border-radius: 12px; }
.modal-wide { width: min(860px, 100%); }
.grade-note { color: var(--muted); font-size: 12px; margin-bottom: 10px; }
.rank-names { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.rank-names label, .add-access label { font-size: 11px; color: var(--muted); }
.add-access { display: grid; grid-template-columns: 1fr 1fr 1fr 1.2fr auto; gap: 6px; align-items: end; margin-bottom: 8px; }
.access-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1.2fr auto; gap: 6px; align-items: center; margin-bottom: 6px; }
@media (max-width: 700px) {
  .rank-names, .add-access, .access-row { grid-template-columns: 1fr 1fr; }
}
.who { font-size: 12px; color: var(--muted); margin-top: 8px; }
.registry { margin-top: 14px; }
.registry input { margin-bottom: 8px; }
#recTbl { overflow-x: auto; }
.rec-sum { color: var(--muted); font-size: 12px; margin: 4px 0 8px; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
td, th { padding: 6px 4px; border-bottom: 1px solid #2a2312; text-align: left; }
.hidden { display: none !important; }

/* --- ajouts : comptes, onglets, admin --- */
.tabs{display:flex;gap:6px;margin:14px 0 12px}
.tab{flex:1;padding:8px;border:1px solid #6d5518;background:#080b14;color:var(--muted);border-radius:6px;cursor:pointer;font-family:inherit}
.tab.on{background:#1a1408;color:var(--gold);border-color:var(--gold)}
.err{color:#e08a8a;font-size:12px;min-height:16px}
.login-box label{display:block;font-size:11px;color:var(--muted)}
.acc-row{display:grid;grid-template-columns:1.2fr 1fr 1.4fr auto;gap:6px;align-items:center;margin-bottom:6px;font-size:13px}
@media(max-width:700px){.acc-row{grid-template-columns:1fr 1fr}}
.chk{display:flex;gap:8px;align-items:center;font-size:12px}.chk input{width:auto}
