/* Admin dashboard — réutilise les tokens de style.css (:root, fonts) */
.admin-body { background:#0b0d10; color:var(--white); font-family:var(--mono); font-size:12px; min-height:100vh; }
.admin-body .brand-logo { width:30px; height:30px; filter:grayscale(1) brightness(0) invert(1); mix-blend-mode:screen; }
.admin-body .brand-name { font-family:var(--display); font-size:19px; font-weight:800; letter-spacing:1.5px; }
.admin-body .brand-name span { color:var(--blue); font-size:8px; }

.admin-header { display:flex; align-items:center; justify-content:space-between; padding:16px clamp(18px,4vw,48px); border-bottom:1px solid var(--line); position:sticky; top:0; background:#0b0d10; z-index:5; }
.admin-header-right { display:flex; align-items:center; gap:16px; }
.admin-status { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:#8f969d; }

.admin-warning { margin:0; padding:14px clamp(18px,4vw,48px); background:rgba(216,211,123,.08); border-bottom:1px solid rgba(216,211,123,.25); color:#d8d37b; font-size:10.5px; line-height:1.7; }
.admin-warning code { background:rgba(255,255,255,.08); padding:1px 5px; border-radius:3px; }
.admin-warning strong { color:#eee4a0; }

.btn { display:inline-flex; align-items:center; gap:8px; padding:11px 16px; font-size:10px; text-transform:uppercase; letter-spacing:.8px; border-radius:4px; border:1px solid transparent; cursor:pointer; font-family:var(--mono); text-decoration:none; }
.btn-primary { background:var(--blue); color:white; }
.btn-primary:hover { background:#2293ff; }
.btn-ghost { background:transparent; color:#d2d7db; border-color:#3a434d; }
.btn-ghost:hover { border-color:var(--blue); color:white; }
.btn-danger { background:transparent; color:#ff8080; border-color:#5a2b2b; }
.btn-danger:hover { background:rgba(255,80,80,.1); }
.file-btn { position:relative; }

.login-panel { min-height:calc(100vh - 130px); display:grid; place-items:center; padding:24px; }
.login-form { width:100%; max-width:340px; display:flex; flex-direction:column; gap:10px; padding:36px 30px; border:1px solid var(--line); border-radius:8px; background:#101319; }
.login-form h1 { font-family:var(--display); font-size:26px; font-weight:800; margin:0 0 10px; letter-spacing:1px; }
.login-hint { color:#6d747a; font-size:10px; margin-top:14px; line-height:1.6; }
.login-hint code { color:#a9b1b9; }

label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.6px; color:#8f969d; margin:14px 0 6px; }
label:first-child { margin-top:0; }
input[type="text"], input[type="password"], input[type="email"], textarea, select {
  width:100%; padding:11px 12px; background:#0e1319; border:1px solid #313a44; border-radius:4px;
  color:var(--white); font-family:var(--mono); font-size:12px;
}
input:focus, textarea:focus, select:focus { outline:none; border-color:var(--blue); }
textarea { resize:vertical; }
input[type="checkbox"] { width:auto; margin-right:8px; }

.two-col { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.three-col { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
@media (max-width:700px) { .two-col, .three-col { grid-template-columns:1fr; } }

.color-field { display:flex; align-items:center; gap:8px; }
.color-field input[type="color"] { width:40px; height:38px; padding:2px; background:#0e1319; border:1px solid #313a44; border-radius:4px; }

.admin-app { display:flex; min-height:calc(100vh - 130px); }
.admin-nav { width:180px; flex-shrink:0; border-right:1px solid var(--line); padding:20px 0; display:flex; flex-direction:column; }
.admin-nav a { padding:12px 24px; color:#8f969d; font-size:10.5px; text-transform:uppercase; letter-spacing:.8px; border-left:2px solid transparent; }
.admin-nav a:hover { color:white; }
.admin-nav a.active { color:white; border-left-color:var(--blue); background:rgba(8,120,255,.08); }

.admin-main { flex:1; padding:32px clamp(20px,3vw,48px); max-width:820px; }
.panel.hidden { display:none; }
.panel h2 { font-family:var(--display); font-size:28px; font-weight:800; margin:0 0 20px; }
.panel h3 { font-family:var(--display); font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin:24px 0 12px; color:#c0c7ce; }
.panel-hint { color:#8f969d; line-height:1.7; font-size:10.5px; margin-bottom:18px; }
.panel-hint code { background:rgba(255,255,255,.08); padding:1px 5px; border-radius:3px; }

.admin-form { max-width:640px; }
.form-actions { display:flex; gap:12px; margin-top:16px; }
.form-msg { margin-top:12px; font-size:10.5px; color:#7ee0a5; }
.form-msg.error { color:#ff8f8f; }

.sep { border:0; border-top:1px solid var(--line); margin:28px 0; }

.admin-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-bottom:24px; }
.admin-card { border:1px solid var(--line); border-radius:6px; padding:14px; background:#101319; }
.admin-card .ac-name { font-family:var(--display); font-size:17px; font-weight:700; }
.admin-card .ac-role { color:#8f969d; font-size:10px; margin-top:2px; }
.admin-card .ac-tag { display:inline-block; margin-top:8px; font-size:9px; color:var(--cyan); letter-spacing:.5px; }
.admin-card .ac-actions { display:flex; gap:8px; margin-top:12px; }
.admin-card .ac-actions button { flex:1; padding:6px 8px; font-size:9px; }
.admin-card.is-hidden { opacity:.5; }

.admin-list { margin-bottom:24px; }
.admin-list-item { display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--line); }
.admin-list-item .al-date { font-family:var(--display); font-size:15px; color:#8f969d; }
.admin-list-item .al-title { font-size:12px; }
.admin-list-item .al-cat { display:block; color:var(--blue); font-size:9px; letter-spacing:.5px; margin-bottom:2px; }
.admin-list-item .ac-actions { display:flex; gap:8px; }
.admin-list-item .ac-actions button { padding:6px 8px; font-size:9px; }

.btn-icon { background:transparent; border:1px solid #3a434d; color:#d2d7db; border-radius:4px; cursor:pointer; }
.btn-icon.danger:hover { border-color:#c04b4b; color:#ff8f8f; }
.btn-icon:hover { border-color:var(--blue); color:white; }

.data-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px; }

.avatar-field { display:flex; gap:16px; align-items:flex-start; margin-bottom:6px; }
.avatar-preview { width:64px; height:64px; flex-shrink:0; border-radius:8px; background:#0e1319; border:1px solid #313a44; display:grid; place-items:center; overflow:hidden; font-family:var(--display); font-size:22px; color:#5c6570; }
.avatar-preview img { width:100%; height:100%; object-fit:cover; }
.avatar-field-controls { flex:1; min-width:0; }
.avatar-field-controls input[type="file"] { padding:8px; font-size:10px; }
.avatar-field-controls .btn { margin-top:8px; }

.toast { position:fixed; right:24px; bottom:24px; background:#101319; border:1px solid var(--blue); color:white; padding:12px 18px; border-radius:6px; font-size:11px; z-index:50; max-width:320px; }
.toast.error { border-color:#c04b4b; color:#ff8f8f; }

.level-tag { display:inline-flex; align-items:center; gap:6px; font-family:var(--display); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:#0b0d10; background:var(--cyan); padding:5px 12px; border-radius:20px; margin-bottom:10px; }

.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin:18px 0 28px; }
.stat-tile { border:1px solid var(--line); border-radius:8px; padding:18px 16px; background:#101319; }
.stat-tile .st-value { display:block; font-family:var(--display); font-size:32px; font-weight:800; color:white; line-height:1; }
.stat-tile .st-label { display:block; margin-top:8px; font-size:9.5px; text-transform:uppercase; letter-spacing:.8px; color:#8f969d; }
.stat-tile.accent .st-value { color:var(--cyan); }

@media (max-width:850px) {
  .admin-app { flex-direction:column; }
  .admin-nav { width:100%; flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--line); padding:8px 12px; }
  .admin-nav a { padding:10px 14px; white-space:nowrap; border-left:0; border-bottom:2px solid transparent; }
  .admin-nav a.active { border-left:0; border-bottom-color:var(--blue); }
}
