.admin-library__intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
    color: var(--fg-soft);
    font-size: .9rem;
}
.admin-library__intro .upload-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    white-space: nowrap;
    text-decoration: none;
}
.admin-library__count, .admin-library__empty {
    margin: 1rem 0;
    color: var(--fg-soft);
    font-size: .8rem;
}
.admin-photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
    gap: 1rem;
}
.admin-photo-card {
    overflow: hidden;
    border: 1px solid rgba(212, 165, 116, .22);
    background: #11100e;
}
.admin-photo-card[hidden] { display: none; }
.admin-photo-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: #24211d;
}
.admin-photo-card__body { padding: .85rem; }
.admin-photo-card h2 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    min-height: 2.8em;
    font: 500 .92rem/1.4 var(--sans);
}
.admin-photo-card p { margin: .45rem 0 .8rem; color: var(--accent); font-size: .73rem; }
.admin-photo-card__actions { display: flex; gap: .5rem; }
.admin-photo-card__actions > * { flex: 1; }
.admin-photo-card__actions .upload-logout,
.admin-photo-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .45rem .6rem;
    border: 1px solid rgba(212, 165, 116, .4);
    color: var(--fg);
    background: rgba(212, 165, 116, .08);
    font: 500 .75rem var(--sans);
    text-decoration: none;
    cursor: pointer;
}
.admin-photo-delete { border-color: rgba(207, 119, 112, .5); color: #ebaaa4; }
.admin-photo-card__actions > :focus-visible,
.admin-delete-dialog button:focus-visible,
.admin-delete-dialog input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.admin-delete-dialog {
    width: min(92vw, 430px);
    max-height: 90svh;
    margin: auto;
    padding: 1.5rem;
    border: 1px solid rgba(212, 165, 116, .5);
    background: #171614;
    color: var(--fg);
    box-shadow: 0 30px 90px #000b;
}
.admin-delete-dialog::backdrop { background: rgba(0, 0, 0, .78); }
.admin-delete-dialog form { display: grid; gap: .8rem; }
.admin-delete-dialog h2 { font: 400 2rem var(--serif); }
.admin-delete-dialog p { font-size: .85rem; color: var(--fg-soft); }
.admin-delete-dialog label { font-size: .74rem; letter-spacing: .05em; }
.admin-delete-dialog input {
    width: 100%;
    padding: .75rem;
    border: 1px solid rgba(243, 240, 234, .35);
    background: #0a0a0a;
    color: var(--fg);
    font: 500 .9rem var(--sans);
}
.admin-delete-dialog__error { color: #ebaaa4 !important; }
.admin-delete-dialog__actions { display: flex; gap: .6rem; }
.admin-delete-dialog__actions button {
    flex: 1;
    min-height: 44px;
    padding: .6rem;
    border: 1px solid rgba(212, 165, 116, .5);
    background: transparent;
    color: var(--fg);
    font: 500 .78rem var(--sans);
    cursor: pointer;
}
.admin-delete-dialog__actions button[type="submit"] { border-color: #d9766d; background: #81312c; }
.admin-delete-dialog__actions button:disabled { opacity: .5; cursor: wait; }
.page-editor-options { margin: 1.5rem 0; padding: 1rem; border: 1px solid rgba(212,165,116,.25); }
.page-editor-options h2 { margin: 0 0 .4rem; font: 400 1.4rem var(--serif); color: var(--accent); }
.page-editor-options__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin-top: .9rem; }
.page-editor-option { display:flex; justify-content:space-between; align-items:center; gap:.6rem; min-height:48px; padding:.7rem .85rem; border:1px solid var(--line); color:var(--fg); text-decoration:none; font:.8rem var(--sans); }
.page-editor-option span:last-child { color:var(--accent); white-space:nowrap; }
.page-editor-option:hover,.page-editor-option:focus-visible { border-color:var(--accent); }
.site-page-editor { gap: .85rem; }
.page-editor-toolbar { display:flex; flex-wrap:wrap; gap:.4rem; }
.page-editor-toolbar button { min-height:40px; padding:.5rem .7rem; border:1px solid var(--line); background:var(--bg-soft); color:var(--fg); font:.75rem var(--sans); cursor:pointer; }
.page-editor-toolbar button:hover,.page-editor-toolbar button:focus-visible { border-color:var(--accent); color:var(--accent); }
.page-editor-surface { min-height:320px; max-height:65vh; overflow:auto; padding:1rem; border:1px solid var(--line); background:var(--bg-soft); color:var(--fg); font:.9rem/1.7 var(--sans); }
.page-editor-surface:focus { outline:2px solid var(--accent); outline-offset:2px; }
.page-editor-surface h2,.page-editor-surface h3 { margin:1.3rem 0 .5rem; color:var(--accent); }
.admin-category-card { display:grid; grid-template-columns:minmax(150px,.65fr) minmax(0,1fr); gap:1.2rem; margin:1rem 0; padding:1rem; border:1px solid var(--line); background:var(--bg-soft); }
.admin-category-card h2 { margin:0; overflow-wrap:anywhere; font:400 1.4rem var(--serif); color:var(--accent); }
.admin-category-card p { color:var(--fg-soft); font-size:.8rem; }
.admin-category-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; align-items:end; }
.admin-category-form [data-delete-confirm] { grid-column:1/-1; }
.admin-category-form .upload-submit { min-height:44px; }
.admin-category-form [hidden] { display:none!important; }
.admin-category-form select,.admin-category-form input { box-sizing:border-box; }
@media (max-width: 600px) {
    .admin-library__intro { align-items: stretch; flex-direction: column; }
    .admin-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .admin-photo-card__body { padding: .65rem; }
    .admin-photo-card h2 { font-size: .8rem; }
    .admin-photo-card__actions { flex-direction: column; }
    .admin-delete-dialog__actions { flex-direction: column; }
    .page-editor-options__grid { grid-template-columns:1fr; }
    .page-editor-surface { min-height:240px; }
    .admin-category-card { grid-template-columns:1fr; gap:.6rem; padding:.8rem; }
    .admin-category-form { grid-template-columns:1fr; }
    .admin-category-form [data-delete-confirm] { grid-column:auto; }
}

/* Biblioteca visual, edición rápida y carga por lotes */
.admin-library__intro-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.admin-library__intro-actions .upload-submit { display:inline-flex; align-items:center; justify-content:center; min-height:44px; white-space:nowrap; text-decoration:none; }
.admin-library-tools { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:.7rem; align-items:end; }
.admin-library-tools .upload-field { margin:0; }
.admin-photo-card__actions { flex-wrap:wrap; }
.admin-photo-card__actions > * { min-width:0; }
.admin-quick-edit {
    width:min(94vw,560px); max-height:90svh; overflow:auto; margin:auto; padding:1.35rem;
    border:1px solid rgba(212,165,116,.45); border-radius:20px; color:var(--fg);
    background:#171614; box-shadow:0 30px 90px #000b;
}
.admin-quick-edit::backdrop { background:rgba(0,0,0,.78); }
.admin-quick-edit form { display:grid; gap:.65rem; }
.admin-quick-edit h2 { margin:0; font:400 1.8rem var(--serif); }
.admin-quick-edit__hint { margin:0 0 .35rem; color:var(--fg-soft); font-size:.82rem; }
.admin-quick-edit .upload-field { margin:.2rem 0; }
.admin-quick-edit input:not([type=checkbox]), .admin-quick-edit textarea {
    box-sizing:border-box; width:100%; padding:.75rem; border:1px solid var(--line);
    background:#0b0a09; color:var(--fg); font:.9rem/1.5 var(--sans);
}
.admin-quick-edit__checks { display:flex; flex-wrap:wrap; gap:1rem; color:var(--fg-soft); font-size:.85rem; }
.admin-quick-edit__error { color:#ebaaa4; }
.admin-batch { max-width:760px; margin:0 auto; }
.admin-batch__intro { color:var(--fg-soft); line-height:1.6; }
.admin-batch form { display:grid; gap:.8rem; }
.admin-batch__preview { display:grid; gap:.45rem; max-height:38vh; overflow:auto; padding:.8rem; border:1px solid var(--line); border-radius:14px; background:var(--bg-soft); }
.admin-batch__preview > p { margin:.15rem 0; color:var(--fg-soft); font-size:.85rem; }
.admin-batch__summary { font-weight:600; }
.admin-batch__file { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.55rem .65rem; border-radius:8px; background:rgba(255,255,255,.035); font-size:.8rem; }
.admin-batch__file span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-batch__file small { flex:0 0 auto; color:var(--fg-soft); }
.admin-batch__file[data-invalid=true], .admin-batch__file[data-state=error] { color:#ebaaa4; background:rgba(180,65,57,.12); }
.admin-batch__file[data-state=success] { color:#a9d8ad; }
.admin-batch__file[data-state=uploading] { outline:1px solid var(--accent); }
.admin-batch__status { min-height:1.4em; color:var(--fg-soft); font-size:.85rem; }
.admin-batch__library-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; text-decoration:none; }
@media (max-width:600px) {
    .admin-library__intro-actions { display:grid; grid-template-columns:1fr 1fr; }
    .admin-library__intro-actions > * { white-space:normal; text-align:center; font-size:.72rem; }
    .admin-library-tools { grid-template-columns:1fr 1fr; }
    .admin-library-tools > .upload-field:first-child { grid-column:1/-1; }
    .admin-photo-card__actions { flex-direction:column; }
    .admin-photo-card__actions > * { width:100%; }
    .admin-quick-edit { max-height:88svh; padding:1rem; border-radius:20px 20px 0 0; }
    .admin-batch__file { align-items:flex-start; }
}

.admin-batch .upload-field[hidden] { display:none; }
