body.admin-body{
  margin:0;
  background:var(--paper-dim);
  font-family:var(--font-body);
  color:var(--ink);
}
.admin-shell{ display:flex; min-height:100vh; }
.admin-sidebar{
  width:220px; flex-shrink:0;
  background:var(--navy);
  color:#DCE4EB;
  padding:24px 0;
  overflow-y:auto;
  max-height:100vh;
  position:sticky; top:0;
}
.sidebar-group-label{
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blueline); padding:16px 20px 6px;
}
.admin-sidebar .brand{
  padding:0 20px 20px;
  font-family:var(--font-display); font-weight:700; color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:12px; font-size:.95rem;
}
.admin-sidebar .brand span{ display:block; font-family:var(--font-mono); font-size:.66rem; color:var(--blueline); font-weight:400; margin-top:4px; }
.admin-sidebar a{
  display:block; padding:7px 20px; color:#DCE4EB; font-size:.83rem;
}
.admin-sidebar a:hover, .admin-sidebar a.active{ background:rgba(255,255,255,.08); color:#fff; }
.admin-sidebar a.active{ border-left:3px solid var(--orange); }
.admin-main{ flex:1; padding:32px 40px; }
.admin-topbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; }
.admin-topbar h1{ font-size:1.4rem; margin:0; }
.admin-topbar .who{ font-size:.85rem; color:var(--ink-soft); }
.admin-topbar .who a{ color:var(--orange); font-weight:600; }

.admin-card{ background:#fff; border:1px solid var(--line); padding:22px; margin-bottom:20px; }
.admin-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 16px; font-size:.85rem; font-weight:600;
  border-radius:var(--radius); border:1px solid var(--line);
  background:#fff; color:var(--navy); cursor:pointer;
}
.admin-btn:hover{ border-color:var(--blueline); }
.admin-btn-primary{ background:var(--orange); color:#fff; border-color:var(--orange); }
.admin-btn-primary:hover{ background:var(--orange-dark); }
.admin-btn-danger{ color:#b3261e; border-color:#e8b4ae; }
.admin-btn-danger:hover{ background:#fdecea; }

table.admin-table{ width:100%; border-collapse:collapse; background:#fff; }
table.admin-table th, table.admin-table td{ border:1px solid var(--line); padding:10px 14px; font-size:.88rem; text-align:left; vertical-align:middle; }
table.admin-table th{ background:var(--paper-dim); font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
table.admin-table img.thumb-sm{ width:52px; height:52px; object-fit:cover; border:1px solid var(--line); }
.admin-actions{ display:flex; gap:8px; }

.admin-form label{ font-size:.85rem; font-weight:600; color:var(--navy); display:block; margin:16px 0 6px; }
.admin-form label:first-child{ margin-top:0; }
.admin-form input[type=text], .admin-form input[type=email], .admin-form input[type=date],
.admin-form input[type=number], .admin-form input[type=password], .admin-form textarea, .admin-form input[type=file]{
  width:100%; padding:10px 12px; border:1px solid var(--line); font-size:.92rem; font-family:var(--font-body); border-radius:var(--radius);
}
.admin-form textarea{ resize:vertical; }
.admin-form .hint{ font-size:.78rem; color:var(--ink-soft); margin-top:4px; }
.admin-form .row-actions{ margin-top:24px; display:flex; gap:10px; }

.flash{ padding:12px 16px; border-radius:var(--radius); font-size:.88rem; margin-bottom:20px; }
.flash-success{ background:#eaf3de; color:#27500a; border:1px solid #c0dd97; }
.flash-error{ background:#fcebeb; color:#791f1f; border:1px solid #f09595; }

.login-shell{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy); }
.login-card{ background:#fff; padding:36px 32px; width:360px; border-top:4px solid var(--orange); }
.login-card h1{ font-size:1.3rem; margin-bottom:4px; }
.login-card p.sub{ color:var(--ink-soft); font-size:.85rem; margin-bottom:20px; }

@media (max-width:800px){
  .admin-shell{ flex-direction:column; }
  .admin-sidebar{ width:100%; display:flex; flex-wrap:wrap; padding:12px; }
  .admin-sidebar .brand{ width:100%; border-bottom:none; margin-bottom:8px; padding:0 8px 8px; }
  .admin-sidebar a{ padding:8px 12px; }
  .admin-main{ padding:20px; }
}
