/* Admin — réutilise les tokens de styles.css, doit être chargé après lui. */

body.admin{
  background:var(--paper-alt);
  display:flex;
  min-height:100vh;
}
.admin-sidebar{
  width:230px;flex-shrink:0;background:var(--ink);color:var(--paper);
  padding:26px 18px;position:sticky;top:0;height:100vh;
}
.admin-sidebar .brand{margin-bottom:36px;}
.admin-sidebar .brand strong{color:var(--white);font-size:.95rem;}
.admin-nav{display:flex;flex-direction:column;gap:2px;}
.admin-nav a{
  display:block;padding:10px 12px;border-radius:var(--radius);
  color:rgba(246,241,230,0.75);text-decoration:none;font-size:.9rem;
}
.admin-nav a:hover{background:rgba(246,241,230,0.08);color:var(--white);}
.admin-nav a.active{background:var(--gold);color:var(--ink);font-weight:600;}
.admin-main{flex:1;padding:36px 44px;max-width:1600px;}
.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;}
.admin-topbar h1{font-size:1.5rem;margin:0;}
.admin-topbar .who{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft);}

.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:36px;}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;}
.kpi .label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);}
.kpi .value{font-family:var(--font-display);font-size:2rem;margin-top:6px;}

.admin-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:0;overflow:hidden;margin-bottom:32px;}
.admin-panel .panel-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.admin-panel .panel-head h2{font-size:1.1rem;margin:0;}

table.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;}
.admin-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.admin-table th{
  text-align:left;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);padding:12px 20px;border-bottom:1px solid var(--line);background:var(--paper);
  white-space:nowrap;
}
table.admin-table th > span{vertical-align:middle;margin-left:4px;}
table.admin-table td{padding:12px 20px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.admin-table tr:last-child td{border-bottom:none;}
table.admin-table tr:hover td{background:var(--paper);}

.badge{
  display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.03em;
  padding:4px 10px;border-radius:999px;text-transform:uppercase;
}
.badge-actif{background:#E9EEE6;color:var(--sage);}
.badge-attente{background:#F3EAD3;color:var(--gold);}
.badge-expire, .badge-annule{background:#F4E3E0;color:#8A3B2E;}

.admin-filters{display:flex;gap:10px;padding:16px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.admin-filters select, .admin-filters input{width:auto;padding:8px 12px;font-size:.85rem;}

.admin-form{padding:24px;max-width:560px;}
.inline-form{display:flex;gap:8px;align-items:center;}
.inline-form select{padding:6px 10px;font-size:.8rem;}
.link-danger{color:#8A3B2E;font-size:.82rem;text-decoration:underline;}
.empty-state{padding:40px 24px;text-align:center;color:var(--ink-soft);font-size:.9rem;}

@media (max-width:900px){
  body.admin{flex-direction:column;}
  .admin-sidebar{width:100%;height:auto;position:relative;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
}
