.admin-body{
  min-height:100vh; background:var(--paper); color:var(--ink);
  font-family:var(--body-stack); display:flex; flex-direction:column;
}
.admin-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px; border-bottom:1px solid var(--line);
}
.admin-header .brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:var(--radius-sm);
  background:var(--ember); color:var(--ember-ink); font-weight:700; font-size:.85rem;
  margin-right:10px;
}
.admin-title{ display:flex; align-items:center; font-weight:600; }
.admin-main{ flex:1; width:100%; max-width:960px; margin:0 auto; padding:32px 20px 64px; }

.admin-login-wrap{ display:flex; align-items:center; justify-content:center; min-height:70vh; }
.admin-login-card{
  width:100%; max-width:360px; background:var(--paper-raised);
  border:1px solid var(--line); border-radius:var(--radius-md); padding:28px;
  box-shadow:var(--shadow);
}
.admin-login-card h1{ font-size:1.3rem; margin-bottom:6px; }
.admin-login-card p{ color:var(--ink-soft); font-size:.9rem; margin-bottom:20px; }

.field{ margin-bottom:14px; }
.field label{ display:block; font-size:.8rem; color:var(--ink-soft); margin-bottom:6px; }
.field input, .field textarea{
  width:100%; padding:10px 12px; border-radius:var(--radius-sm);
  border:1px solid var(--line); background:var(--paper); color:var(--ink); font-size:.95rem;
}
.field input:focus, .field textarea:focus{ outline:2px solid var(--ember); outline-offset:1px; }

.admin-msg{ font-size:.85rem; margin-top:10px; min-height:1.2em; }
.admin-msg.error{ color:var(--ember); }
.admin-msg.ok{ color:var(--brass); }

.admin-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; gap:12px; flex-wrap:wrap; }
.admin-toolbar h2{ font-size:1.15rem; }

.upload-panel{
  border:1px dashed var(--line); border-radius:var(--radius-md);
  padding:22px; margin-bottom:32px; background:var(--paper-raised);
}
.upload-panel.dragover{ border-color:var(--ember); background:var(--paper-raised-2); }
.upload-panel p{ color:var(--ink-soft); font-size:.85rem; margin-top:8px; }

.photo-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:16px;
}
.photo-card{
  position:relative; border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--line); background:var(--paper-raised); aspect-ratio:1/1;
}
.photo-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-card .caption{
  position:absolute; left:0; right:0; bottom:0; padding:8px 10px;
  background:linear-gradient(to top, rgba(0,0,0,.7), transparent);
  color:#fff; font-size:.75rem;
}
.photo-card .delete-btn{
  position:absolute; top:8px; right:8px; width:28px; height:28px;
  border-radius:50%; border:none; background:rgba(20,17,14,.7); color:#fff;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.photo-card .delete-btn:hover{ background:var(--ember); }
.empty-note{ color:var(--ink-soft); font-size:.9rem; padding:24px 0; }
