/* Admin dashboard — builds on site.css tokens */
body.admin{background:var(--mist); font-size:16px}
.wrap--wide{max-width:1320px}
.site-header .header-row{min-height:66px}
.admin-nav{display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.admin-nav a{font-size:.95rem; font-weight:500; color:var(--body); text-decoration:none; padding:9px 12px; border-radius:8px}
.admin-nav a:hover{background:color-mix(in srgb, var(--royal) 7%, transparent); color:var(--royal)}
.admin-nav a[aria-current="page"]{color:var(--royal); background:color-mix(in srgb, var(--royal) 10%, transparent)}
form.inline{display:inline; margin:0}
.admin-main{padding:34px 0 60px; min-height:70vh}
.admin-footer{padding:22px 0 34px; font-size:.84rem; color:var(--muted)}
.page-head{display:flex; justify-content:space-between; align-items:flex-end; gap:18px; flex-wrap:wrap; margin-bottom:22px}
.page-head h1{font-size:clamp(1.7rem,3vw,2.3rem); margin:0}
.page-head p{margin:.35rem 0 0; color:var(--muted)}
.flash{
  border:1px solid color-mix(in srgb, var(--ok) 40%, transparent); background:color-mix(in srgb, var(--ok) 10%, var(--panel));
  color:var(--ok); padding:13px 16px; border-radius:11px; margin-bottom:20px; font-weight:500;
}
.alert{border:1px solid color-mix(in srgb, var(--err) 45%, transparent); background:var(--err-bg); color:var(--err); padding:13px 16px; border-radius:11px; margin-bottom:18px}
.card{background:var(--panel); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-soft); overflow:hidden}
.card + .card{margin-top:20px}
.card-head{padding:18px 22px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap}
.card-head h2{font-size:1.3rem; margin:0}
.card-body{padding:22px}

.stats{grid-template-columns:repeat(5,1fr)}
.stat a{text-decoration:none; color:inherit}
@media (max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}

.filters{display:grid; grid-template-columns:2fr repeat(3,1fr) auto auto; gap:12px; padding:18px 22px; border-bottom:1px solid var(--line); align-items:end}
.filters .field label{font-size:.8rem; color:var(--muted); font-weight:600}
.filters input,.filters select{padding:11px 12px; font-size:.95rem}
.filters .dates{display:flex; gap:8px}
.filters .actions{display:flex; gap:8px}
@media (max-width:1100px){.filters{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.filters{grid-template-columns:1fr} .filters .dates{flex-direction:column}}

table{min-width:0}
td .code{font-size:.82rem; color:var(--muted); letter-spacing:.03em}
.pill--active{color:var(--ok); background:color-mix(in srgb, var(--ok) 14%, transparent)}
.pill--inactive{color:var(--muted); background:color-mix(in srgb, var(--muted) 14%, transparent)}
.pager{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 22px; flex-wrap:wrap; font-size:.9rem; color:var(--muted)}
.pager .btns{display:flex; gap:8px}

/* Member table becomes stacked cards on phones */
@media (max-width:720px){
  .members-table thead{display:none}
  .members-table, .members-table tbody, .members-table tr, .members-table td{display:block; width:100%}
  .members-table tr{padding:14px 18px; border-bottom:1px solid var(--line)}
  .members-table td{border:0; padding:4px 0; display:flex; justify-content:space-between; gap:14px}
  .members-table td::before{content:attr(data-label); color:var(--muted); font-size:.82rem; font-weight:600}
  .members-table td.cell-main{display:block}
  .members-table td.cell-main::before{content:none}
}

.profile{display:grid; grid-template-columns:2fr 1fr; gap:20px; align-items:start}
@media (max-width:960px){.profile{grid-template-columns:1fr}}
.dl{display:grid; grid-template-columns:minmax(150px, 34%) 1fr; margin:0}
.dl dt, .dl dd{padding:11px 22px; border-bottom:1px solid var(--line); margin:0}
.dl dt{color:var(--muted); font-size:.9rem}
.dl dd{color:var(--ink); overflow-wrap:anywhere; white-space:pre-line}
.dl .group{grid-column:1 / -1; background:var(--mist); font-family:var(--serif); font-size:1.05rem; color:var(--ink); padding:10px 22px; border-bottom:1px solid var(--line)}
@media (max-width:560px){.dl{grid-template-columns:1fr} .dl dt{border-bottom:0; padding-bottom:0} .dl dd{padding-top:4px}}
.stack{display:grid; gap:14px}
.btn--danger{background:var(--err); color:#fff}
.btn--danger:hover{filter:brightness(1.08)}
.danger-zone{border-color:color-mix(in srgb, var(--err) 40%, var(--line))}
.auth-box{max-width:440px; margin:40px auto}
.form-grid .form-section{margin-top:6px}
