.admin { padding-block: 25px 48px; }
.admin h1 { margin: 0; font-size: clamp(1.8rem, 5vw, 2.6rem); }
.admin h2 { margin: 0 0 15px; font-size: 1.3rem; }
.admin-status { color: var(--muted); margin: 8px 0 20px; }
.admin-status[data-error] { color: var(--accent); }
.admin-columns { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.admin-panel { padding: 18px; border: 1px solid var(--line); background: var(--paper); border-radius: 14px; min-width: 0; }
#login { max-width: 420px; }
.admin label { display: grid; gap: 4px; min-width: 0; margin-bottom: 12px; font-size: .9rem; font-weight: 700; }
.admin input, .admin textarea, .admin select { width: 100%; min-width: 0; min-height: 44px; padding: 8px; background: var(--background); color: var(--ink); border: 1px solid var(--line); border-radius: 7px; font: inherit; font-size: 1rem; font-weight: 400; }
.admin textarea { min-height: 70px; resize: vertical; }
.admin select:focus-visible, .admin textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.admin fieldset { min-width: 0; margin: 0 0 12px; padding: 8px; border: 1px solid var(--line); border-radius: 7px; }
.admin fieldset p { font-size: .85rem; margin: 0 0 8px; color: var(--muted); }
.admin fieldset label { margin-bottom: 0; }
.admin-pair, .admin-prices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-prices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#editor > .admin-actions { justify-content: space-between; margin-bottom: 12px; }
.admin button { padding: 8px 13px; min-height: 44px; border-radius: 7px; border: 1px solid var(--accent-fill); color: var(--accent-ink); background: var(--accent-fill); }
.admin button.secondary { background: var(--paper); color: var(--accent); border-color: var(--line); }
.admin button:disabled { opacity: .55; cursor: default; }
@media (max-width: 680px) { .admin-columns, .admin-pair { grid-template-columns: minmax(0, 1fr); } }

.admin input, .admin select { color-scheme: light; color: #000; }
.admin input:autofill { -webkit-text-fill-color: #000; }
.admin input:-webkit-autofill { -webkit-text-fill-color: #000; }
#photo-help, #dish-search-status { margin: -4px 0 12px; color: var(--muted); font-size: .85rem; }
#photo-preview { margin-bottom: 12px; border-radius: 8px; object-fit: cover; }

.poster-panel { margin-bottom: 16px; }
.poster-panel > p, #poster-help { color: var(--muted); margin: 0 0 12px; font-size: .85rem; }
#poster-preview { display: block; object-fit: contain; background: var(--background); margin-bottom: 12px; border-radius: 8px; }
#poster-status:empty { display: none; }
.poster-list { display: grid; gap: 8px; padding: 0; margin: 16px 0 0; list-style: none; }
.poster-list li { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; }
.poster-list img { width: 80px; height: 50px; object-fit: contain; background: var(--background); }
.poster-list span { flex: 1; min-width: 80px; overflow-wrap: anywhere; }

.admin .poster-position { display: flex; align-items: center; gap: 5px; margin: 0; }
.poster-position select { width: auto; min-width: 60px; }
.admin .poster-dish-toggle { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; min-height: 44px; }
.admin .poster-dish-toggle input { width: 18px; min-height: 18px; flex: none; accent-color: var(--accent-fill); }
#featured-help { margin: -4px 0 12px; color: var(--muted); font-size: .85rem; }
#slideshow-status:empty { display: none; }

.slide-text { margin-bottom: 12px; }
.slide-text summary { cursor: pointer; padding-block: 10px; font-weight: 700; }
.slide-text p { margin: 0 0 10px; color: var(--muted); font-size: .85rem; }
.slide-text fieldset label + label { margin-top: 8px; }

#admin-dialog { width: min(420px, calc(100% - 32px)); padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); color: var(--ink); }
#admin-dialog::backdrop { background: #21160faa; }
#admin-dialog h2 { margin: 0 0 8px; font-size: 1.2rem; }
#admin-dialog p { margin: 0 0 16px; overflow-wrap: anywhere; }
#admin-dialog .admin-actions { justify-content: flex-end; }
#admin-dialog button { min-height: 44px; padding: 8px 16px; border-radius: 7px; border: 1px solid var(--accent-fill); background: var(--accent-fill); color: var(--accent-ink); }
#admin-dialog button.secondary { background: var(--paper); color: var(--ink); border-color: var(--line); }
