/* El panel mantiene la marca de ANKA, con un fondo claro para leer y editar cómodamente. */
.admin-page {
    --admin-ink: #25241f;
    --admin-muted: #6f6a60;
    --admin-line: #e5dfd3;
    --admin-gold: #a87a35;
    color-scheme: light;
    min-height: 100vh;
    color: var(--admin-ink);
    background: #f5f3ed;
    font-family: 'DM Sans', Arial, sans-serif;
    font-size: 18px;
    line-height: 1.5;
}
.admin-page h1 { font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 12px; letter-spacing: -.035em; }
.admin-page h2 { font: 600 1.35rem 'DM Sans', Arial, sans-serif; letter-spacing: -.02em; margin: 0 0 12px; }
.admin-page p { color: var(--admin-muted); line-height: 1.65; }
.admin-page [hidden] { display: none !important; }
.admin-page a:focus-visible, .admin-page button:focus-visible, .admin-page input:focus-visible, .admin-page textarea:focus-visible, .admin-page select:focus-visible {
    outline: 3px solid #a87a35; outline-offset: 3px;
}
/* La cabecera reúne el menú de administración y la salida de la sesión. */
.admin-header { display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; align-items: center; gap: 16px 24px; background: #151513; color: #f3ead9; padding: 18px clamp(20px, 3vw, 48px); }
.admin-header > .admin-brand { grid-column: 1; grid-row: 1; }
.admin-brand { display: grid; grid-template-columns: max-content max-content; align-items: center; gap: 6px 8px; width: max-content; max-width: 100%; }
.admin-brand > span { font-size: 25px; color: #d1a35f; }
.admin-brand strong { font-size: 30px; line-height: 1; letter-spacing: .07em; }
.admin-brand small { grid-column: 1 / -1; font-size: 14px; letter-spacing: .12em; color: #b5b0a7; }
.admin-navigation { grid-column: 2; grid-row: 1; min-width: 0; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.admin-navigation a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 6px; padding: 10px 12px; font-size: 16px; line-height: 1.35; white-space: nowrap; color: #ccc7bc; }
.admin-navigation a:hover, .admin-navigation a.is-active { background: #302b21; color: #e7bd80; }
.admin-session { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 12px; font-size: 16px; }
.admin-session > a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.admin-session form { margin: 0; }
.admin-logout { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: #f3ead9; background: transparent; border: 1px solid #5b5549; padding: 10px 14px; border-radius: 5px; font-size: 16px; line-height: 1.35; }
.admin-logout:hover { background: #302b21; }
/* El contenido queda centrado; las pantallas de edición son más estrechas que el listado. */
.admin-main { max-width: 1280px; padding: 42px 28px 75px; margin: 0 auto; }
.admin-main-narrow { max-width: 930px; }
.admin-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.admin-page-heading p { max-width: 700px; margin-bottom: 0; }
.admin-eyebrow { color: var(--admin-gold); display: block; font-size: 14px; font-weight: 700; letter-spacing: .18em; margin-bottom: 12px; }
.admin-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; border-radius: 6px; padding: 13px 20px; font-size: 16px; font-weight: 600; color: #251e14; background: #d1a35f; border: 1px solid #d1a35f; max-width: 100%; white-space: normal; text-align: center; }
.admin-button:hover { background: #e1b777; border-color: #e1b777; }
.admin-button-secondary { background: #fff; color: var(--admin-ink); border-color: #d9d1c3; }
.admin-button-secondary:hover { background: #f4f0e8; border-color: #c7bda9; }
.admin-button-danger { background: #fff; border-color: #ecd0c9; color: #a03928; }
.admin-button-danger:hover { background: #fff1ed; border-color: #d9a598; }
.admin-button-small { padding: 9px 13px; font-size: 16px; }
/* Las acciones de cada empleado quedan juntas y separadas para no confundir editar con eliminar. */
.admin-staff-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.admin-staff-actions form { margin: 0; }
/* El reparto muestra la dirección y los botones de ruta y llamada con espacio para usarlos en el móvil. */
.admin-delivery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; color: var(--admin-muted); }
.admin-delivery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.admin-delivery-card { padding: 25px; }
.admin-delivery-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.admin-delivery-card h2 { margin: 18px 0 10px; }
.admin-delivery-address { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 1.02rem; line-height: 1.6; }
.admin-delivery-phone { display: inline-block; font-weight: 600; color: #715024; margin: 0 0 20px; }
.admin-delivery-card-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--admin-line); padding-top: 20px; }
.admin-delivery-route { padding: 30px; border-top: 4px solid #d1a35f; }
.admin-delivery-route h2 { font-size: 1.65rem; }
.admin-delivery-route .admin-delivery-address { font-size: 1.15rem; }
.admin-delivery-actions { display: flex; flex-wrap: wrap; gap: 20px; margin: 25px 0 15px; }
.admin-delivery-empty { text-align: center; padding: 40px; }
.admin-delivery-notes, .admin-delivery-assignment { margin: 24px 0; }
.admin-delivery-assignment .admin-section-heading { padding: 0; margin-bottom: 22px; }
.admin-driver-form { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 20px; }
.admin-driver-form > div { flex: 1; min-width: 220px; }
.admin-assignment-history { margin-top: 24px; font-size: 15px; }
.admin-assignment-history summary { cursor: pointer; font-weight: 600; color: #715024; }
.admin-assignment-history li { margin: 14px 0; }
.admin-assignment-history small { display: block; color: var(--admin-muted); margin-top: 5px; font-size: 14px; }
.admin-order-kind, .admin-order-driver { display: block; margin: 8px 0; color: #715024; }
@media (max-width: 650px) {
    .admin-delivery-grid { grid-template-columns: 1fr; }
    .admin-delivery-actions .admin-button, .admin-delivery-card-footer .admin-button { width: 100%; white-space: normal; text-align: center; }
    .admin-delivery-route, .admin-delivery-card { padding: 22px; }
}
.admin-back-link { display: inline-block; color: var(--admin-muted); font-size: 16px; margin-bottom: 25px; }
.admin-back-link:hover { color: var(--admin-gold); }
.admin-panel { background: #fff; border: 1px solid var(--admin-line); border-radius: 11px; box-shadow: 0 3px 12px #34241104; overflow: hidden; }
.admin-alert { background: #eef5e9; color: #3e6030; border: 1px solid #cfdfc2; border-radius: 7px; padding: 15px 18px; margin-bottom: 22px; line-height: 1.55; }
.admin-alert-error { color: #972f24; background: #fff0ed; border-color: #edc5bc; }
.admin-product-state { display: inline-block; padding: 6px 10px; border-radius: 5px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.admin-product-active { color: #35603a; background: #e7f0e2; }
.admin-product-inactive { color: #71614a; background: #eee8da; }
.admin-help { font-size: 16px; color: #756344; line-height: 1.65; padding: 17px 20px; background: #eee8da; border-radius: 7px; margin-bottom: 22px; }
/* Las etiquetas y los campos se separan para que cada dato sea fácil de identificar. */
.admin-form label, .admin-list-toolbar label { display: block; font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.admin-form input:not([type="hidden"]), .admin-form textarea, .admin-form select, .admin-list-toolbar input, .admin-list-toolbar select {
    display: block; width: 100%; max-width: 100%; background: #fff; color: var(--admin-ink); border: 1px solid #d7d1c6; border-radius: 6px; padding: 12px 13px; font: inherit; font-size: 16px;
}
.admin-form input:focus, .admin-form textarea:focus, .admin-form select:focus { border-color: var(--admin-gold); }
.admin-form textarea { resize: vertical; min-height: 90px; line-height: 1.6; }
.admin-form input[type="file"] { padding: 9px; line-height: 1.5; }
.admin-form input[type="file"]::file-selector-button { background: #f0e9da; color: #5b4930; border: 0; border-radius: 4px; padding: 9px 10px; margin-right: 12px; cursor: pointer; font: inherit; }
.admin-form small { display: block; margin-top: 8px; font-size: 14px; color: var(--admin-muted); line-height: 1.6; }
.admin-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.admin-field { margin-bottom: 22px; min-width: 0; }
.admin-form-grid .admin-field { margin-bottom: 0; }
.admin-field-wide { grid-column: 1 / -1; }
.admin-optional { font-weight: 400; color: var(--admin-muted); }
.admin-edit-form { padding: 30px; }
.admin-form-actions { display: flex; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--admin-line); padding-top: 24px; margin-top: 28px; }
/* Las acciones del empleado mantienen espacio entre botones y se ajustan al ancho disponible. */
.admin-employee-actions.admin-form-actions { flex-wrap: wrap; align-items: center; gap: 20px; }
.admin-employee-actions .admin-button { flex: 0 0 auto; }
.admin-employee-action-notes { margin: 18px 0 0; font-size: 14px; line-height: 1.6; color: var(--admin-muted); }
.admin-employee-action-notes p { margin: 6px 0; }
/* En pantallas pequeñas los botones pasan a otra fila para que sigan siendo legibles. */
@media (max-width: 850px) { .admin-employee-actions.admin-form-actions { flex-wrap: wrap; } }
@media (max-width: 480px) { .admin-employee-actions .admin-button { width: 100%; white-space: normal; } }
.admin-image-section { min-width: 0; border: 0; border-top: 1px solid var(--admin-line); padding: 25px 0 0; margin: 28px 0 0; }
.admin-image-section legend { padding: 0 10px 0 0; font-weight: 600; font-size: 1.05rem; }
.admin-image-section p { font-size: 15px; }
.admin-image-field { margin-top: 26px; min-width: 0; }
.admin-image-picker { display: flex; align-items: flex-start; gap: 20px; }
.admin-image-preview { width: 130px; height: 115px; flex: 0 0 130px; object-fit: cover; background: #ede9e0; border-radius: 7px; }
.admin-image-preview-large { width: 195px; height: 175px; flex-basis: 195px; }
.admin-image-inputs { flex: 1; min-width: 0; }
.admin-form .admin-secondary-label { color: var(--admin-muted); font-weight: 400; font-size: 14px; margin-top: 15px; }
/* La tabla coloca las acciones junto a cada producto y admite filtros por nombre y categoría. */
.admin-list-toolbar { display: flex; align-items: flex-end; gap: 20px; padding: 24px; border-bottom: 1px solid var(--admin-line); }
.admin-list-toolbar > div:first-child { flex: 1; }
.admin-list-toolbar > div:nth-child(2) { width: 230px; }
.admin-product-count { color: var(--admin-muted); font-size: 14px; white-space: nowrap; padding-bottom: 13px; }
.admin-product-count strong { color: var(--admin-ink); }
.admin-table-wrap { overflow-x: auto; }
.admin-products-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.admin-products-table th { background: #faf9f6; text-align: left; padding: 15px 24px; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--admin-muted); }
.admin-products-table td { padding: 18px 24px; border-top: 1px solid #efebe3; }
.admin-product-summary { display: flex; align-items: center; gap: 15px; min-width: 260px; }
.admin-product-summary > img { width: 65px; height: 65px; flex: 0 0 65px; border-radius: 7px; background: #ede9e0; }
.admin-product-summary strong { display: block; margin-bottom: 5px; line-height: 1.45; }
.admin-product-summary small { display: block; color: var(--admin-muted); font-size: 14px; max-width: 365px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-category { display: inline-block; padding: 6px 9px; border-radius: 5px; background: #f0ede6; color: #61594a; font-size: 14px; white-space: nowrap; }
.admin-category-extra { background: #f5e4c7; color: #876028; }
.admin-price { font-weight: 600; white-space: nowrap; }
.admin-row-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-row-actions form { margin: 0; }
.admin-empty { padding: 35px 24px; text-align: center; margin: 0; font-size: 16px; }
/* La edición de la portada se organiza en bloques; guardar permanece a mano al bajar. */
.admin-site-form { display: grid; gap: 24px; }
.admin-category-images { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
.admin-category-images .admin-image-picker { flex-direction: column; }
.admin-category-images .admin-image-preview { width: 100%; height: 170px; flex: none; }
.admin-category-images .admin-image-inputs { width: 100%; }
.admin-save-bar { position: sticky; bottom: 15px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 22px; border-radius: 8px; background: #fff; border: 1px solid var(--admin-line); box-shadow: 0 8px 30px #1e1b1720; }
.admin-save-bar p { margin: 0; font-size: 15px; }
/* La pantalla de acceso centra el formulario, también en móviles. */
.admin-login-page { display: grid; place-items: center; padding: 32px 20px; }
.admin-login-card { max-width: 440px; width: 100%; background: #fff; border: 1px solid var(--admin-line); border-radius: 13px; padding: 38px; box-shadow: 0 15px 55px #30261c10; }
.admin-login-card .admin-brand { margin-bottom: 38px; }
.admin-login-card .admin-brand small { color: var(--admin-muted); }
.admin-login-card h1 { font-size: 2.35rem; }
.admin-login-card > p { font-size: 16px; margin-bottom: 25px; }
.admin-login-card .admin-form input { margin-bottom: 22px; }
.admin-login-card .admin-button { width: 100%; margin-top: 4px; }
/* El enlace permite al administrador abrir su formulario sin confundir el correo de los empleados. */
.admin-login-switch { display: block; margin-top: 22px; font-size: 16px; color: var(--admin-gold); text-decoration: underline; text-underline-offset: 3px; }
.admin-login-card .admin-back-link { margin-top: 25px; margin-bottom: 0; }
/* Las filas y los formularios se apilan cuando la pantalla es estrecha. */
@media (max-width: 1100px) {
    .admin-navigation { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 1000px) {
    .admin-products-table th, .admin-products-table td { padding-left: 17px; padding-right: 17px; }
    .admin-product-summary small { max-width: 230px; }
}
@media (max-width: 700px) {
    .admin-header { grid-template-columns: max-content minmax(0, 1fr); padding: 18px 20px; column-gap: 12px; }
    .admin-navigation { gap: 6px; flex-wrap: nowrap; max-width: 100%; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; overscroll-behavior-x: contain; }
    .admin-navigation a { padding: 10px 11px; font-size: 16px; }
    .admin-navigation > a { flex: 0 0 auto; }
    .admin-session { grid-column: 2; gap: 12px; }
    .admin-main { padding: 30px 18px 60px; }
    .admin-page-heading { flex-direction: column; align-items: flex-start; gap: 20px; }
    .admin-list-toolbar { padding: 20px; flex-wrap: wrap; gap: 16px; }
    .admin-list-toolbar > div:first-child { flex: 1 0 100%; }
    .admin-list-toolbar > div:nth-child(2) { flex: 1; width: auto; }
    .admin-product-count { padding-bottom: 14px; }
    .admin-products-table thead { display: none; }
    .admin-products-table tbody { display: block; }
    .admin-products-table tr { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-top: 1px solid var(--admin-line); padding: 20px; }
    .admin-products-table tr:first-child { border-top: 0; }
    .admin-products-table td { display: block; padding: 0; border: 0; }
    .admin-products-table td:first-child { flex: 1 0 100%; margin-bottom: 5px; }
    .admin-products-table td:last-child { flex: 1 0 100%; margin-top: 4px; }
    .admin-product-summary { min-width: 0; }
    .admin-product-summary > div { min-width: 0; }
    .admin-product-summary small { max-width: none; white-space: normal; }
    .admin-edit-form { padding: 22px; }
    .admin-form-grid, .admin-category-images { grid-template-columns: 1fr; }
    .admin-image-picker { flex-direction: column; }
    .admin-image-inputs { width: 100%; }
    .admin-image-preview-large { width: 100%; height: 200px; flex-basis: auto; }
    .admin-save-bar { flex-direction: column; align-items: stretch; text-align: center; bottom: 8px; padding: 14px; gap: 10px; }
    .admin-login-card { padding: 28px; }
}

@media (max-width: 360px) {
    .admin-session { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
    .admin-navigation { grid-row: 3; }
    .admin-header > .admin-order-notifications { align-items: stretch; }
    .admin-order-notifications .admin-sound-button { flex: 0 1 calc((100% - 10px) / 2); min-width: 0; min-height: 44px; font-size: 14px; white-space: normal; }
}
/* Los dos controles de sonido comparten una fila inferior de la cabecera. */
.admin-order-notifications { grid-column: 1 / -1; min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; border-top: 1px solid #3b3529; padding-top: 12px; font-size: 15px; line-height: 1.4; color: #bbb4a8; }
.admin-order-notifications.has-new-orders { color: #f0d3a0; }
.admin-order-notifications a { color: #f3d39f; text-decoration: underline; text-underline-offset: 3px; }
.admin-sound-button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; border: 1px solid #74603e; border-radius: 5px; color: #f0d3a0; background: #2c271d; padding: 8px 12px; font: inherit; cursor: pointer; white-space: nowrap; }
.admin-sound-button[aria-pressed="true"] { color: #d6e7c7; border-color: #6c8057; background: #293124; }
.admin-sound-button:disabled { opacity: .65; cursor: default; }
.admin-order-sound-settings { padding: 28px; margin-top: 28px; }
.admin-order-sound-settings > p { font-size: 16px; }
.admin-order-sound-settings .admin-field { margin-bottom: 0; }
.admin-order-sound-settings label { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 24px; }
.admin-order-sound-settings output { margin-left: auto; color: var(--admin-gold); }
.admin-order-sound-settings input[type="range"] { height: 48px; margin: 0; padding: 0; border: 0; accent-color: var(--admin-gold); cursor: pointer; }
.admin-order-sound-settings .admin-help { margin-top: 22px; }
.admin-order-sound-settings [data-order-sound-settings-status] { margin: 16px 0 0; }
.admin-order-sound-settings [data-order-sound-settings-status]:empty { display: none; }
@media (max-width: 650px) {
    .admin-order-sound-settings { padding: 22px; }
    .admin-order-sound-settings .admin-form-grid { grid-template-columns: 1fr; }
    .admin-order-sound-settings .admin-form-actions .admin-button { width: 100%; }
}
.admin-new-orders { font-weight: 700; }
.admin-test-badge { border-radius: 5px; padding: 9px 13px; font-size: 14px; color: #785621; background: #f1e1c4; white-space: nowrap; }
.admin-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; }
.admin-section-heading h2 { margin-bottom: 5px; }
.admin-section-heading p { margin: 0; font-size: 15px; }
.admin-order-counter { font-size: 1.8rem; color: var(--admin-gold); }
.admin-active-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; padding: 0 24px 24px; }
.admin-active-card { display: block; border: 1px solid #e6dccb; background: #fcfaf5; border-radius: 8px; padding: 20px; }
.admin-active-card:hover { border-color: #b38c4f; background: #faf2e3; }
.admin-active-card > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-bottom: 15px; font-size: 16px; }
.admin-active-card p { margin: 12px 0 2px; color: var(--admin-ink); }
.admin-active-card small, .admin-cell-note { display: block; color: var(--admin-muted); font-size: 14px; line-height: 1.5; margin-top: 5px; }
.admin-order-status { display: inline-block; border-radius: 5px; padding: 7px 10px; font: 600 14px 'DM Sans', Arial, sans-serif; white-space: nowrap; color: #715a23; background: #f3e7c1; }
.admin-order-status[data-status="PREPARING"] { background: #e3edf5; color: #335d7b; }
.admin-order-status[data-status="READY"] { background: #e5efce; color: #54691f; }
.admin-order-status[data-status="COMPLETED"] { background: #e1eddf; color: #3d693c; }
.admin-order-status[data-status="CANCELLED"] { background: #f7e2dc; color: #993f30; }
.admin-date-filter { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; margin: 30px 0 22px; }
.admin-date-filter > div { width: 220px; }
.admin-filter-hint { font-size: 15px; margin: -8px 0 20px; }
/* Las franjas del horario se agrupan por día y se apilan en pantallas estrechas. */
.admin-schedule-day { border: 0; border-top: 1px solid var(--admin-line); margin: 22px 0; padding: 20px 0 0; }
.admin-schedule-day legend { font-weight: 600; padding-right: 12px; }
.admin-schedule-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.admin-schedule-slot { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-correction { padding: 22px 25px; border-top: 1px solid var(--admin-line); font-size: 16px; }
.admin-correction p { margin: 8px 0; }
.admin-overtime-report { margin-top: 24px; }
.admin-overtime-report > h2, .admin-overtime-report > p { margin: 20px 25px; }
/* Las acciones tienen espacio y se colocan en otra fila cuando la pantalla es estrecha. */
.admin-fichajes .admin-date-filter, .admin-fichajes .admin-form-actions { gap: 20px; }
.admin-fichajes .admin-form-actions { flex-wrap: wrap; }
.admin-overtime-actions { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 20px; margin: 0; }
.admin-overtime-actions .admin-field { margin: 0; }
.admin-overtime-actions .admin-field > span { display: block; font-size: 16px; font-weight: 600; margin-bottom: 8px; }
/* El color del texto permite reconocer la clasificación seleccionada. */
.admin-overtime-select { display: block; min-width: 170px; max-width: 100%; margin: 0; padding: 10px; border: 1px solid #d6b06b; border-radius: 6px; background: #f7edd9; color: #78511b; font: 600 16px 'DM Sans', Arial, sans-serif; cursor: pointer; }
.admin-overtime-select[data-type="PENDIENTE"] { color: #78511b; background: #f7edd9; border-color: #d6b06b; }
.admin-overtime-select[data-type="EXTRAS"] { color: #256044; background: #e8f3eb; border-color: #7ab891; }
.admin-overtime-select[data-type="COMPLEMENTARIAS"] { color: #25568a; background: #e9f1fb; border-color: #83aad0; }
.admin-overtime-select:focus { outline: 3px solid #a87a35; outline-offset: 3px; }
@media (max-width: 700px) { .admin-schedule-slots { grid-template-columns: 1fr; } }
.admin-schedule-form { padding: 0 25px 25px; }
.admin-timezone-note { padding: 0 25px; font-size: 15px; }
.admin-schedule-week { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 25px; }
.admin-schedule-day .admin-schedule-slot { display: block; margin: 14px 0; }
.admin-schedule-hours { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.admin-schedule-form .admin-timezone-note { padding: 0; }
@media (max-width: 700px) { .admin-schedule-week { grid-template-columns: 1fr; } }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.admin-stat { background: #fff; border: 1px solid var(--admin-line); border-radius: 9px; padding: 23px; }
.admin-stat > span { display: block; color: var(--admin-muted); font-size: 15px; }
.admin-stat > strong { display: block; color: var(--admin-ink); font-size: 2.25rem; letter-spacing: -.04em; margin: 9px 0; }
.admin-stat > small { font-size: 14px; color: var(--admin-muted); line-height: 1.45; }
.admin-stat-gold { background: #eee5d3; border-color: #dfcdad; }
.admin-chart-controls { display: flex; gap: 5px; background: #f3efe7; padding: 4px; border-radius: 6px; }
.admin-chart-controls button { padding: 8px 13px; border: 0; border-radius: 4px; background: transparent; color: var(--admin-muted); font: 600 16px 'DM Sans', Arial, sans-serif; cursor: pointer; }
.admin-chart-controls button.is-active { color: #775721; background: #fff; box-shadow: 0 1px 5px #32291712; }
.admin-chart-wrap { margin: 0 24px; }
.admin-chart-wrap canvas { display: block; width: 100%; }
.admin-chart-note { margin: 5px 24px 18px; font-size: 14px; }
.admin-chart-data { border-top: 1px solid var(--admin-line); }
.admin-chart-data summary { padding: 17px 24px; font-size: 15px; cursor: pointer; }
.admin-order-history { margin-top: 24px; }
.admin-detail-panel { padding: 25px; }
.admin-detail-panel p { font-size: 16px; }
.admin-status-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
.admin-status-actions form { margin: 0; }
.admin-terminal-order { font-weight: 600; }
.admin-mail-status { border-top: 1px solid var(--admin-line); padding-top: 17px; font-size: 15px; color: var(--admin-muted); line-height: 1.65; }
.admin-mail-status small { display: block; color: #99432c; margin-top: 5px; overflow-wrap: anywhere; font-size: 14px; }
.admin-order-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.admin-contact-list { margin: 0; font-size: 16px; }
.admin-contact-list dt { font-size: 14px; color: var(--admin-muted); margin: 18px 0 4px; }
.admin-contact-list dd { margin: 0; overflow-wrap: anywhere; }
.admin-contact-list a { color: #8e672a; text-decoration: underline; text-underline-offset: 3px; }
.admin-order-notes { white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-order-items tfoot th, .admin-order-items tfoot td { border-top: 1px solid var(--admin-line); background: #f5efe5; }
/* El seguimiento del cliente muestra el estado y el contenido; los contactos quedan solo en administración. */
.order-tracking-page { max-width: 950px; }
.order-tracking-card { border: 1px solid #534731; border-radius: 10px; background: #191814; padding: 28px; margin: 28px 0; }
.order-tracking-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; flex-wrap: wrap; }
.order-tracking-heading h2 { margin: 0; font-size: 1.4rem; }
.order-tracking-items { margin-top: 28px; border-top: 1px solid #433b2e; }
.order-tracking-items > div { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid #302d25; font-size: 16px; }
.order-tracking-items .total { border-bottom: 0; font-size: 1.1rem; padding-bottom: 0; }
@media (max-width: 1000px) {
    .admin-active-grid { grid-template-columns: repeat(2, 1fr); }
    .admin-stat-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
    .admin-section-heading { flex-direction: column; align-items: flex-start; padding: 20px; }
    .admin-active-grid { grid-template-columns: 1fr; padding: 0 20px 20px; }
    .admin-stat { padding: 18px; }
    .admin-stat > strong { font-size: 1.85rem; }
    .admin-stat-grid { gap: 10px; }
    .admin-date-filter > div { width: 100%; }
    .admin-chart-wrap { margin: 0 10px; }
    .admin-chart-note { margin-left: 20px; margin-right: 20px; }
    .admin-order-detail-grid { grid-template-columns: 1fr; }
    .admin-chart-data table { min-width: 400px; }
    .admin-chart-data thead, .admin-order-items thead { display: table-header-group; }
    .admin-chart-data tbody, .admin-order-items tbody { display: table-row-group; }
    .admin-chart-data tr, .admin-order-items tr { display: table-row; }
    .admin-chart-data td, .admin-order-items td { display: table-cell; padding: 15px 17px; }
    .admin-order-items { min-width: 500px; }
    .admin-detail-panel { padding: 22px; }
    .order-tracking-card { padding: 22px; }
}

/* El botón de cada campo permite comprobar lo escrito sin guardar ni revelar claves antiguas. */
.admin-password-field { display: flex; align-items: stretch; gap: 0; border: 1px solid #d7d1c6; border-radius: 6px; overflow: hidden; background: #fff; }
.admin-form .admin-password-field input { border: 0; border-radius: 0; flex: 1; min-width: 0; }
.admin-password-field button { flex: 0 0 auto; padding: 0 12px; border: 0; border-left: 1px solid #e4dfd5; background: #f4f0e8; color: #785722; font: 600 15px 'DM Sans', Arial, sans-serif; cursor: pointer; }
.admin-password-field button:hover { background: #eae1d1; }
.admin-login-card .admin-form .admin-password-field input { margin-bottom: 0; }
.admin-login-card .admin-password-field { margin-bottom: 22px; }
.admin-form .admin-checkbox-label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.admin-form .admin-checkbox-label input[type="checkbox"] { width: 18px; height: 18px; accent-color: #a87a35; margin: 0; padding: 0; }
.admin-staff-access { margin-top: 26px; }
.admin-staff-status { display: inline-block; font-size: 14px; font-weight: 600; white-space: nowrap; padding: 7px 10px; border-radius: 5px; background: #eeeae2; color: #6c6457; }
.admin-staff-status.is-active { background: #e1eddb; color: #476733; }
.admin-staff-status.is-inactive { background: #f2e3de; color: #925444; }
.admin-staff-status.is-idle { background: #eeeae2; color: #6c6457; }
.admin-email-cell { overflow-wrap: anywhere; }
.admin-clock-action { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 30px; margin-bottom: 24px; }
.admin-clock-action p { margin: 0; font-size: 16px; }
.admin-clock-action form { margin: 0; }
.admin-clock-button { min-height: 56px; padding: 18px 25px; }
.admin-clock-stats { grid-template-columns: 1fr 1fr; }
.admin-clock-stats .admin-stat strong { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.admin-timezone-note { font-size: 14px; margin-top: 20px; }
@media (max-width: 700px) {
    .admin-password-field button { padding: 0 10px; }
    .admin-clock-action { flex-direction: column; align-items: flex-start; padding: 24px; }
    .admin-clock-action form, .admin-clock-button { width: 100%; }
    .admin-clock-stats { grid-template-columns: 1fr; }
    .admin-staff-table td::before, .admin-shift-table td::before { color: var(--admin-muted); }
    .admin-shift-table { min-width: 580px; }
    .admin-shift-table thead { display: table-header-group; }
    .admin-shift-table tbody { display: table-row-group; }
    .admin-shift-table tr { display: table-row; }
    .admin-shift-table td { display: table-cell; padding: 15px 17px; }
}

/* El puesto y las horas clasificadas se leen también desde la cuenta del empleado. */
.admin-rank { display: inline-block; color: #78511b; background: #f3e7d0; border-radius: 6px; padding: 7px 12px; font-size: 14px; font-weight: 600; margin: 0 0 10px; }
.admin-personal-hours-summary { border-top: 1px solid var(--admin-line); padding-top: 16px; margin: 20px 0 0; font-size: 15px; }
.admin-personal-hours-summary > div { display: flex; justify-content: space-between; gap: 14px; margin: 9px 0; }
.admin-personal-hours-summary dt, .admin-personal-hours-summary dd { margin: 0; }
.admin-personal-hours-summary dd { font-weight: 600; white-space: nowrap; }
.admin-hours-extra { color: #256044; }
.admin-hours-complementary { color: #25568a; }
.admin-hours-pending { color: #78511b; }
.admin-personal-hours-table td { font-size: 15px; white-space: nowrap; }
@media (max-width: 650px) {
    .admin-personal-hours-table td { flex: 1 0 100%; display: flex; justify-content: space-between; gap: 12px; white-space: normal; }
    .admin-personal-hours-table td::before { content: attr(data-label); font-weight: 600; }
    .admin-personal-hours-summary > div { flex-wrap: wrap; }
}

/* Finanzas separa los movimientos del día de las opciones de la pasarela y del banco. */
.admin-finance-main .admin-stat strong { font-size: clamp(1.5rem, 2.6vw, 2.25rem); overflow-wrap: anywhere; }
.admin-finance-payments { margin: 24px 0 30px; }
.admin-finance-settings-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.admin-finance-methods { min-width: 0; margin: 0 0 28px; padding: 0; border: 0; }
.admin-finance-methods legend { padding: 0; margin-bottom: 14px; font-size: 18px; font-weight: 600; }
.admin-finance-methods-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 16px; }
.admin-finance-method { min-width: 0; padding: 20px; border: 1px solid var(--admin-line); border-radius: 6px; }
.admin-finance-method h3 { margin: 0 0 12px; font-size: 20px; }
.admin-finance-method .admin-finance-state { max-width: 100%; }
.admin-finance-methods > .admin-help { margin: 16px 0 0; }
.admin-finance-config-status { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 0 26px 24px; }
.admin-finance-config-status small { color: var(--admin-muted); font-size: 14px; }
.admin-finance-config-form { padding: 0 26px 28px; }
.admin-form .admin-finance-check { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; line-height: 1.55; margin-top: 16px; cursor: pointer; }
.admin-form .admin-finance-check input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #b38543; padding: 0; }
.admin-finance-bank { padding: 30px; }
.admin-finance-bank > p { font-size: 16px; }
.admin-finance-bank-actions { display: flex; flex-wrap: wrap; gap: 18px; margin: 26px 0; }
.admin-finance-bank-actions .admin-button { max-width: 100%; white-space: normal; text-align: center; line-height: 1.55; }
.admin-finance-bank-note { border-top: 1px solid var(--admin-line); padding-top: 20px; }
.admin-finance-state { display: inline-block; border-radius: 5px; font-size: 14px; font-weight: 600; line-height: 1.5; padding: 7px 11px; background: #f4e8ca; color: #806020; }
.admin-finance-state[data-state="SUCCEEDED"] { color: #35603a; background: #e7f0e2; }
.admin-finance-state[data-state="FAILED"], .admin-finance-state[data-state="CANCELED"] { color: #963f31; background: #f9e7e1; }
.admin-finance-state[data-state="REQUIRES_ACTION"] { color: #245680; background: #e4edf5; }
.admin-finance-refunded { color: #35603a; font-weight: 600; white-space: nowrap; }
.admin-finance-order-link { margin-top: 22px; max-width: 100%; white-space: normal; text-align: center; }
.admin-finance-text-link { display: inline-block; color: #76521f; text-decoration: underline; text-underline-offset: 3px; font-size: 16px; margin-top: 10px; }
.admin-finance-webhook-url { display: inline; font-size: 14px; overflow-wrap: anywhere; }
.admin-finance-sync { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin: 25px 0; }
.admin-finance-sync form { margin: 0; }
.admin-finance-sync p { flex: 1; min-width: 220px; margin: 0; font-size: 15px; }
.admin-finance-main button:disabled { opacity: .6; cursor: default; }
.admin-finance-retry-note { font-size: 14px; line-height: 1.6; background: #f5eedc; padding: 12px; border-radius: 6px; }
.admin-finance-refund-form { padding: 28px; margin: 26px 0; }
.admin-finance-refund-form input[type="number"] { max-width: 280px; }
.admin-finance-refund-history { margin-top: 28px; }
.admin-finance-refund { border-top: 1px solid var(--admin-line); padding: 24px; }
.admin-finance-refund-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px; }
.admin-finance-refund-heading > strong { font-size: 1.2rem; }
.admin-finance-reason { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 16px; margin: 15px 0 9px; }
.admin-finance-refund-actions { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.admin-finance-refund-actions form { margin: 0; }
@media (max-width: 850px) {
    .admin-finance-settings-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
    .admin-finance-table { min-width: 730px; }
    .admin-finance-table thead { display: table-header-group; }
    .admin-finance-table tbody { display: table-row-group; }
    .admin-finance-table tr { display: table-row; }
    .admin-finance-table td { display: table-cell; padding: 16px; }
    .admin-finance-table td:last-child { margin: 0; }
    .admin-finance-bank, .admin-finance-refund-form { padding: 23px; }
    .admin-finance-config-form { padding: 0 23px 25px; }
    .admin-finance-bank-actions .admin-button { width: 100%; }
    .admin-finance-refund-actions form, .admin-finance-refund-actions .admin-button { width: 100%; }
}
/* Editor de páginas, navegación y contenido. */
.cms-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 28px; }
.cms-tabs a { padding: 12px 18px; border: 1px solid var(--admin-line); border-radius: 6px; background: white; color: #785722; font-size: 16px; }
.cms-page-row { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--admin-line); }
.cms-page-row small { display: block; margin: 8px 0; overflow-wrap: anywhere; color: var(--admin-muted); }
.cms-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 22px; }
.cms-page-row .cms-actions { margin: 0; }
.cms-new, .cms-block-editor { border: 1px solid var(--admin-line); border-radius: 6px; padding: 18px; margin-top: 20px; }
.cms-new summary, .cms-block-editor summary { font-weight: 600; cursor: pointer; color: #785722; }
.cms-new > form, .cms-block-editor > form { margin-top: 20px; }
.cms-link-row { border-bottom: 1px solid var(--admin-line); padding: 22px 0; }
.cms-link-form { display: grid; grid-template-columns: minmax(130px,1fr) minmax(180px,2fr) 85px 100px auto; gap: 16px; align-items: end; margin-bottom: 12px; }
.cms-link-form label { min-width: 0; }
.admin-form .cms-check { display: flex; align-items: center; gap: 10px; margin: 22px 0; }
.admin-form .cms-check input[type='checkbox'] { width: 20px; height: 20px; margin: 0; accent-color: #a87934; flex: 0 0 20px; }
.cms-link-form .cms-check { margin: 0 0 20px; }
.cms-section-row { display: grid; grid-template-columns: minmax(150px,1fr) 140px 110px; align-items: center; gap: 20px; border-top: 1px solid var(--admin-line); padding: 18px 0; }
.admin-form input[type='color'] { height: 48px; padding: 5px; }
.cms-block-form [hidden] { display: none; }
.cms-block-editor > form + form { margin-bottom: 10px; }
.cms-copy-fields { margin-top: 24px; }
@media (max-width: 1000px) { .cms-link-form { grid-template-columns: 1fr 1fr; } .cms-page-row { flex-direction: column; } }
@media (max-width: 650px) { .cms-link-form { grid-template-columns: 1fr; } .cms-section-row { grid-template-columns: 1fr 1fr; } .cms-section-row strong { grid-column: 1/-1; } }
/* El correo usa el mismo aspecto del panel y separa las opciones avanzadas de la clave. */
.admin-mail-toolbar { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 25px; }
.admin-mail-config-link { margin-top: 20px; }
.admin-mail-advanced { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--admin-line); }
.admin-mail-advanced summary { color: #785722; cursor: pointer; font-size: 16px; font-weight: 600; }
.admin-mail-advanced > p { font-size: 15px; margin: 18px 0 22px; }
.admin-mail-actions { flex-wrap: wrap; gap: 20px; }
.admin-mail-notices { margin-top: 24px; }
/* Cada aviso conserva su propio formulario y una vista previa del texto guardado. */
.admin-mail-template { margin-top: 24px; scroll-margin-top: 24px; }
.admin-mail-template-form { padding: 0 26px 24px; }
.admin-mail-template-form .admin-finance-check { margin: 0 0 24px; }
.admin-mail-template-footer { padding: 0 26px 26px; }
.admin-mail-template-footer > form { margin: 22px 0 0; }
.admin-mail-template-footer > small { display: block; color: var(--admin-muted); font-size: 14px; margin-top: 14px; overflow-wrap: anywhere; }
.admin-mail-preview, .admin-mail-variables { border-top: 1px solid var(--admin-line); padding-top: 20px; }
.admin-mail-preview summary, .admin-mail-variables summary { cursor: pointer; color: #785722; font-weight: 600; font-size: 16px; }
.admin-mail-preview > p, .admin-mail-variables > p { font-size: 15px; }
.admin-mail-preview-message { margin-top: 18px; padding: 20px; border: 1px solid var(--admin-line); border-radius: 7px; background: #faf9f6; }
.admin-mail-preview-message strong { display: block; font-size: 16px; overflow-wrap: anywhere; }
.admin-mail-preview-message pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 16px; line-height: 1.7; margin: 18px 0 0; color: var(--admin-ink); }
.admin-mail-variable-list { display: grid; gap: 12px; margin: 20px 0; }
.admin-mail-variable-list > div { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr); gap: 14px; }
.admin-mail-variable-list dt, .admin-mail-variable-list dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; line-height: 1.6; }
.admin-mail-variable-list code { padding: 3px 5px; background: #f0ede6; border-radius: 4px; font-size: 14px; }
.admin-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.admin-settings-card { display: flex; flex-direction: column; align-items: flex-start; padding: 28px; }
.admin-settings-card p { font-size: 16px; margin: 0 0 26px; }
.admin-settings-card .admin-button { margin-top: auto; max-width: 100%; white-space: normal; text-align: center; }
@media (max-width: 650px) {
    .admin-mail-template-form { padding: 0 23px 24px; }
    .admin-mail-template-footer { padding: 0 23px 24px; }
    .admin-mail-variable-list > div, .admin-settings-grid { grid-template-columns: 1fr; }
    .admin-settings-card { padding: 23px; }
    .admin-mail-template-footer > form .admin-button { width: 100%; white-space: normal; }
}
/* El cobro se muestra separado del estado de cocina para no confundir preparado con pagado. */
.admin-pending-collections { margin-bottom: 26px; }
.admin-payment-badge { display: inline-block; width: fit-content; border-radius: 5px; padding: 6px 10px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.admin-payment-pending { color: #80570f; background: #f8ebc9; }
.admin-payment-paid { color: #2d6444; background: #e1f0e5; }
.admin-test-badge-small { display: inline-block; margin-top: 9px; font-size: 14px; padding: 5px 8px; }
.admin-active-card > .admin-active-payment { align-items: center; flex-wrap: wrap; gap: 8px; margin: 13px 0 0; }
.admin-active-payment small { margin: 0; }
.admin-orders-table .admin-payment-badge { margin-top: 9px; }
.admin-collection-panel { margin-top: 24px; }
.admin-collection-panel > .admin-section-heading { padding: 0; align-items: flex-start; gap: 18px; }
.admin-collection-summary { margin: 18px 0; }
div.admin-collection-summary { display: flex; justify-content: space-between; align-items: center; gap: 15px; flex-wrap: wrap; font-size: 16px; }
.admin-collection-form { border-top: 1px solid var(--admin-line); padding-top: 22px; margin-top: 22px; }
.admin-form .admin-collection-confirm { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; cursor: pointer; font-size: 16px; line-height: 1.6; }
.admin-form .admin-collection-confirm input[type="checkbox"] { width: 19px; height: 19px; flex: 0 0 19px; padding: 0; margin: 3px 0 0; accent-color: #a87934; }
.admin-order-stat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-order-stat-grid-real { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-order-stat-grid .admin-stat strong { font-size: clamp(1.6rem, 2.5vw, 2.3rem); }
@media (max-width: 1000px) {
    .admin-order-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
    .admin-mail-actions .admin-button { width: 100%; }
    .admin-order-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-collection-form .admin-button { width: 100%; }
    .admin-collection-panel > .admin-section-heading { flex-direction: column; }
    .admin-pending-payment-table td { width: 100%; }
    .admin-pending-payment-table .admin-button { width: 100%; }
}
