body.admin { margin:0; font-family:"TT Firs Neue",system-ui,sans-serif; background:#f4efe6; color:#25251F; display:grid; grid-template-columns: 260px 1fr; min-height:100vh; }
.admin-sidebar { background:#25251F; color:#ECE2D2; padding:24px 18px; overflow:auto; }
.admin-logo { color:#ECE2D2; text-decoration:none; font-weight:700; display:block; margin-bottom:24px; }
.admin-sidebar nav { display:grid; gap:4px; }
.admin-sidebar a { color:#ECE2D2; text-decoration:none; padding:8px 10px; display:block; }
.admin-sidebar a:hover { background:#5E6552; }
.admin-sidebar p { margin:16px 0 6px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#9A6A43; }
.admin-main { min-width:0; }
.admin-top { display:flex; justify-content:space-between; gap:16px; padding:16px 24px; background:#ECE2D2; border-bottom:1px solid rgba(37,37,31,.1); }
.admin-content { padding:24px; }
.card { background:#fff; border:1px solid rgba(37,37,31,.08); padding:16px; margin-bottom:16px; }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:32px; }
.stat-grid strong { font-size:2rem; display:block; }
.table { width:100%; border-collapse:collapse; background:#fff; }
.table th,.table td { text-align:left; padding:10px 12px; border-bottom:1px solid rgba(37,37,31,.08); }
.admin-form { display:grid; gap:12px; max-width:880px; }
.home-editor { max-width: 1040px; }
.band-item { border: 1px solid rgba(37,37,31,.12); padding: 12px; display: grid; gap: 8px; margin: 0; }
.band-item legend { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; padding: 0 6px; }
.admin-form label { display:grid; gap:6px; font-size:13px; font-weight:600; }
.admin-form input,.admin-form textarea,.admin-form select { font:inherit; padding:10px; border:1px solid rgba(37,37,31,.2); }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.check { display:flex !important; flex-direction:row; align-items:center; gap:8px; font-weight:400 !important; }
.btn { min-height:42px; padding:0 16px; border:1px solid #25251F; background:#25251F; color:#ECE2D2; cursor:pointer; }
.btn-outline { background:transparent; color:#25251F; }
.btn-primary { background:#25251F; }
.sticky-actions { position:sticky; bottom:0; background:#f4efe6; padding:12px 0; display:flex; gap:8px; }
.toast { padding:12px 16px; margin:12px 24px 0; color:#25251F; }
.toast-ok { background:#dfe6d8; }
.toast-err { background:#f3e2d4; }
.stack { list-style:none; padding:0; margin:0; display:grid; gap:16px; }
.card-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:12px; }
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.media-grid img { width:100%; height:140px; object-fit:cover; }
.admin-burger { display:none; }
.linkish { background:none; border:0; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; }
.auth-body { min-height:100vh; margin:0; display:grid; place-items:center; background:#25251F; font-family:"TT Firs Neue",system-ui,sans-serif; color:#ECE2D2; }
.auth-body *, .auth-body *::before, .auth-body *::after { box-sizing: border-box; }
.auth-card { width:min(420px,92vw); background:#1b1b16; padding:40px; color:#ECE2D2; }
.auth-brand img { height:48px; width:auto; margin: 8px 0 24px; }
.auth-card .admin-form { max-width: none; }
.auth-card .admin-form input { background:#25251F; color:#ECE2D2; border-color:rgba(236,226,210,.28); }
.auth-card .admin-form input:focus { outline: 2px solid #9A6A43; outline-offset: 1px; }
.auth-card h1 { color:#ECE2D2; font-size:1.4rem; margin: 0 0 16px; }
.auth-card p { color:#cfc6b6; margin: 0 0 16px; line-height: 1.6; }
.auth-card .eyebrow {
  color:#9A6A43;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  margin: 0 0 8px;
}
.auth-card .toast { margin: 0 0 20px; color: #25251F; }
.auth-card .toast-err { background: #f3e2d4; color: #5a2e1a; }
.auth-card .toast-ok { background: #dfe6d8; color: #24301c; }
.auth-card .check { color: #cfc6b6; }
.auth-card .check input { width: 16px; height: 16px; accent-color: #9A6A43; flex: none; }
.auth-card .btn {
  width: 100%;
  margin-top: 4px;
  background: #ECE2D2;
  border-color: #ECE2D2;
  color: #25251F;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 13px;
}
.auth-card .btn:hover { background: #d7c7b0; border-color: #d7c7b0; color: #25251F; }
.auth-card a { color: #d7c7b0; text-decoration: none; }
.auth-card a:hover { color: #ECE2D2; text-decoration: underline; }
.auth-card .admin-form > p { margin: 8px 0 0; text-align: center; }
.help { font-size:13px; color:#5c5a52; }
.image-attach { display:grid; gap:8px; }
.image-attach__label { font-size:13px; font-weight:600; }
.image-attach__frame { border:1px solid rgba(37,37,31,.12); background:#f4efe6; overflow:hidden; max-width:420px; }
.image-attach__preview { display:block; width:100%; max-height:220px; object-fit:cover; }
.image-attach__actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.image-attach__pick { position:relative; display:inline-flex; align-items:center; justify-content:center; margin:0; font-weight:600; }
.image-attach__pick input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.grid-2 > .image-attach { grid-column: 1 / -1; }
.gallery-admin { display:grid; gap:16px; }
.gallery-admin__item { display:grid; gap:8px; max-width:420px; padding:12px; border:1px solid rgba(37,37,31,.12); background:#fff; }
.incomplete-flag { color:#9A6A43; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.editor-bar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.editor-bar button { background:#ECE2D2; border:1px solid rgba(37,37,31,.2); min-height:32px; padding:0 10px; cursor:pointer; }
.editor-surface { min-height:220px; background:#fff; border:1px solid rgba(37,37,31,.2); padding:12px; }
@media (max-width: 900px) {
  body.admin { grid-template-columns:1fr; }
  .admin-sidebar { display:none; position:fixed; inset:0 auto 0 0; width:260px; z-index:20; }
  body.admin.nav-open .admin-sidebar { display:block; }
  .admin-burger { display:block; margin:12px; }
  .grid-2 { grid-template-columns:1fr; }
}
