.admin-shell { padding-block: clamp(2rem, 5vw, 4rem); min-height: 55vh; }
.admin-shell--narrow { max-width: 37rem; }
.admin-heading, .admin-toolbar, .admin-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.admin-heading { margin-bottom: 1.6rem; }
.admin-heading h1 { margin: .15em 0 0; font-size: clamp(2rem, 5vw, 3.5rem); }
.admin-toolbar { margin-block: 0 1rem; }
.admin-toolbar p, .admin-editing { color: #5b5355; }
.admin-list { padding: 0; margin: 0; list-style: none; display: grid; gap: .7rem; }
.admin-list li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; padding: .8rem; border: 1px solid #e4dfe0; background: #fff; border-radius: .8rem; }
.admin-list li div { display: grid; gap: .25rem; overflow-wrap: anywhere; }
.admin-list li img, .admin-no-photo { width: 100%; height: 4.1rem; object-fit: cover; border-radius: .45rem; }
.admin-no-photo { display: grid; place-items: center; font-size: .75rem; background: #f3f0f0; }
.admin-editor { max-width: 57rem; }
.admin-panel { border: 1px solid #e4dfe0; background: #fff; border-radius: .85rem; margin: 0; padding: clamp(1rem, 4vw, 1.6rem); min-width: 0; }
.admin-panel legend { font-weight: 800; padding-inline: .4rem; }
.admin-panel > p { margin-top: 0; }
.admin-form, .admin-panel { display: grid; gap: 1rem; }
.admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.admin-form label { min-width: 0; display: grid; gap: .35rem; font-weight: 650; }
.admin-form :is(input:not([type="checkbox"], [type="radio"]), select, textarea) { width: 100%; min-width: 0; padding: .65rem .75rem; border: 1px solid #aaa2a4; border-radius: .45rem; background: #fff; color: #171717; font: inherit; font-size: 1rem; font-weight: 400; }
.admin-form :is(input[type="radio"], input[type="checkbox"]) { accent-color: #a11727; }
.admin-form textarea { resize: vertical; }
.admin-form small { color: #5b5355; font-weight: 400; }
.admin-form button { justify-self: start; }
.admin-form button:disabled { opacity: .7; cursor: wait; }
.admin-form-actions { justify-content: start; }
.admin-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: .75rem; }
.admin-photo { min-width: 0; padding: .55rem; border: 1px solid #e4dfe0; border-radius: .55rem; }
.admin-photo img { width: 100%; height: 5.5rem; object-fit: cover; border-radius: .35rem; }
.admin-photo label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; }
.admin-message, .admin-success { padding: .8rem 1rem; border-radius: .55rem; background: #fae6e7; color: #801422; }
.admin-success { background: #e3f3e8; color: #1b5b37; }
.admin-success a, .admin-editing a { text-decoration: underline; }
@media (max-width: 650px) {
  .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-list li { grid-template-columns: 4rem minmax(0, 1fr) auto; gap: .6rem; }
  .admin-list li .badge { grid-column: 2; justify-self: start; }
  .admin-list li .button { grid-column: 3; grid-row: 1 / span 2; padding-inline: .65rem; }
}
