.operational-form { display: grid; gap: 18px; }
.operational-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.operational-field { display: grid; gap: 6px; color: #475569; font-size: 13px; font-weight: 700; }
.operational-field input, .operational-field select, .operational-field textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 10px 12px; color: #0f172a; font: inherit; font-weight: 400; background: #fff; }
.operational-field textarea { min-height: 96px; resize: vertical; }
.operational-field.full { grid-column: 1 / -1; }
.operational-section { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px; }
.operational-section > strong { display: block; margin-bottom: 5px; color: #0f172a; }
.operational-help { color: #64748b; font-size: 12px; line-height: 1.45; margin: 0 0 10px; }
.operational-checklist { max-height: 180px; overflow: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
.operational-checklist label { display: flex; gap: 7px; align-items: flex-start; font-size: 13px; color: #334155; }
.operational-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }
.availability-admin-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.availability-admin-head .card-title { margin-bottom:6px; }
.availability-empty { padding:32px !important; text-align:center; color:#64748b; }
.availability-full-day { min-height:58px; justify-content:center; padding:12px 14px; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; }
.availability-full-day > span { display:flex; align-items:center; gap:8px; color:#334155; font-weight:700; }
.availability-full-day .operational-help { margin:2px 0 0; }
.availability-range-summary { padding:11px 13px; border:1px solid #f1df8c; border-radius:10px; background:#fffbea; color:#68591b; font-size:12px; line-height:1.5; }
.worker-zone-label { color:#475569; font-size:13px; font-weight:700; }
.worker-zone-dropdown { position:relative; }
.worker-zone-dropdown summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:42px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:#0f172a; font-weight:400; cursor:pointer; list-style:none; }
.worker-zone-dropdown summary::-webkit-details-marker { display:none; }
.worker-zone-dropdown[open] summary { border-color:#eab308; box-shadow:0 0 0 3px rgba(234,179,8,.14); }
.worker-zone-summary { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.worker-zone-chevron { flex:0 0 auto; color:#64748b; font-size:11px; font-weight:700; }
.worker-zone-dropdown[open] .worker-zone-chevron { font-size:0; }
.worker-zone-dropdown[open] .worker-zone-chevron::after { content:'Cerrar'; font-size:11px; }
.worker-zone-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; max-height:210px; overflow:auto; margin-top:7px; padding:10px; border:1px solid #e2e8f0; border-radius:9px; background:#fff; box-shadow:0 14px 30px rgba(15,23,42,.12); }
.worker-zone-option { display:flex; align-items:center; gap:8px; min-width:0; padding:8px 9px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; color:#334155; font-size:12px; font-weight:600; cursor:pointer; }
.worker-zone-option:hover { border-color:#eab308; background:#fffbeb; }
.worker-zone-option input { width:auto; margin:0; accent-color:#eab308; }
.worker-zone-dropdown + .operational-help { margin:2px 0 0; }
@media (max-width: 640px) { .operational-grid, .operational-checklist { grid-template-columns: 1fr; } .operational-actions .btn { width: 100% !important; } }

.availability-view-switch { display:inline-flex; gap:4px; padding:4px; margin:0 0 14px; border:1px solid #e2e8f0; border-radius:10px; background:#f1f5f9; }
.availability-view-btn { border:0; border-radius:7px; padding:8px 14px; background:transparent; color:#64748b; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.availability-view-btn.active { background:#fff; color:#0f172a; box-shadow:0 1px 3px rgba(15,23,42,.12); }
.availability-view-btn span { color:#94a3b8; font-size:11px; }
.availability-simple-filters { display:flex; align-items:end; gap:10px; margin-bottom:12px; }
.availability-search { position:relative; flex:1; max-width:420px; }
.availability-search input { width:100%; height:40px; padding:9px 12px 9px 36px; border:1px solid #d7dee8; border-radius:9px; background:#fff; color:#0f172a; font:inherit; }
.availability-search-icon { position:absolute; left:12px; top:8px; color:#64748b; font-size:20px; line-height:1; pointer-events:none; }
.availability-worker-filter { display:grid; gap:4px; min-width:190px; color:#64748b; font-size:11px; font-weight:700; }
.availability-worker-filter select { height:40px; padding:8px 11px; border:1px solid #d7dee8; border-radius:9px; background:#fff; color:#0f172a; font:inherit; }
.availability-clear-btn { height:40px; padding:0 12px; border:0; background:transparent; color:#64748b; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.availability-results-count { margin:4px 0 10px; color:#64748b; font-size:12px; }
.availability-status { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:999px; font-size:11px; font-weight:700; }
.availability-status::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.availability-status.active { background:#dcfce7; color:#15803d; }
.availability-status.expired { background:#e2e8f0; color:#64748b; }
.expired-block-row { opacity:.58; background:#f8fafc; }
.expired-block-row:hover { opacity:.78; }
.availability-finished { color:#94a3b8; font-size:12px; font-weight:600; }
@media (max-width: 700px) { .availability-simple-filters { align-items:stretch; flex-direction:column; } .availability-search { max-width:none; } .availability-worker-filter { width:100%; } .availability-clear-btn { align-self:flex-start; } .availability-block-table { min-width:720px; } }

@media (max-width: 640px) { .availability-admin-head { flex-direction:column; } .availability-admin-head .btn { width:100% !important; } }
@media (max-width: 640px) { .worker-zone-options { grid-template-columns:1fr; } }

/* Filtros y modal de reservas */
.catalog-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) repeat(2,minmax(160px,.45fr)); gap:12px; align-items:end; padding:14px; margin:0 0 18px; background:linear-gradient(135deg,#f8fafc,#fff); border:1px solid #e2e8f0; border-radius:12px; }
.catalog-toolbar .operational-field { min-width:0; }
.catalog-toolbar input, .catalog-toolbar select { width:100%; border:1px solid #cbd5e1; border-radius:8px; padding:10px 12px; color:#0f172a; font:inherit; background:#fff; }
.catalog-empty { padding:30px !important; text-align:center; color:#64748b; }
.catalog-heading-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.catalog-heading-actions .btn { width:auto; white-space:nowrap; }
.category-manager-intro { margin-bottom:14px; padding:13px 15px; border:1px solid #f1df8c; border-radius:11px; background:#fffbea; color:#5f5215; font-size:13px; line-height:1.55; }
.category-manager-intro p { margin:0; }
.category-manager-list { display:grid; gap:9px; }
.category-manager-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 14px; border:1px solid #e2e8f0; border-radius:11px; background:#fff; }
.category-manager-row > div { min-width:0; display:grid; gap:3px; }
.category-manager-row strong { color:#0f172a; overflow-wrap:anywhere; }
.category-manager-row small { color:#64748b; }
.category-rename-note { display:grid; gap:4px; padding:14px; border:1px solid #e2e8f0; border-radius:11px; background:#f8fafc; color:#475569; font-size:13px; }
.category-rename-note strong { color:#0f172a; }
.service-variants { border:1px solid #dbe2ea; border-radius:11px; background:#f8fafc; overflow:hidden; }
.service-variants.full { grid-column:1 / -1; }
.service-variants summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 14px; cursor:pointer; list-style:none; color:#0f172a; }
.service-variants summary::-webkit-details-marker { display:none; }
.service-variants summary > span:first-child { display:grid; gap:3px; }
.service-variants summary small { color:#64748b; font-size:12px; font-weight:400; }
.service-variants-state { flex:none; color:#806800; font-size:12px; font-weight:700; }
.service-variants[open] .service-variants-state { font-size:0; }
.service-variants[open] .service-variants-state::after { content:'Ocultar'; font-size:12px; }
.service-variants-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:14px; border-top:1px solid #dbe2ea; background:#fff; }
.reservation-modal .modal-content { max-width:760px !important; }
.reservation-modal .modal-header { margin-bottom:18px; }
.reservation-client-picker { position:relative; padding:14px; border:1px solid #e4d477; border-radius:12px; background:linear-gradient(135deg,#fffbea,#fff); }
.reservation-client-picker-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:11px; }
.reservation-client-picker-head > div { display:grid; gap:3px; }
.reservation-client-picker-head strong { color:#17191e; font-size:14px; }
.reservation-client-picker-head small { color:#6b7280; font-size:12px; font-weight:400; }
.reservation-client-picker-icon { display:grid; width:34px; height:34px; place-items:center; flex:none; border-radius:9px; background:#ffd21c; color:#17191e; }
.reservation-client-picker-icon svg, .reservation-client-search svg, .reservation-client-selected svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.reservation-client-search { display:flex; align-items:center; gap:9px; padding:0 12px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#6b7280; transition:border-color .16s ease,box-shadow .16s ease; }
.reservation-client-search:focus-within { border-color:#d9b400; box-shadow:0 0 0 3px rgba(255,210,28,.18); }
.reservation-client-search input { width:100%; min-width:0; height:42px; padding:0; border:0; outline:0; background:transparent; color:#0f172a; font:inherit; }
.reservation-client-results { position:absolute; z-index:12; right:14px; left:14px; max-height:280px; overflow:auto; margin-top:7px; border:1px solid #dbe2ea; border-radius:11px; background:#fff; box-shadow:0 18px 38px rgba(15,23,42,.18); }
.reservation-client-results button { display:grid; width:100%; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:10px; padding:11px 12px; border:0; border-bottom:1px solid #edf0f4; background:#fff; color:#0f172a; text-align:left; cursor:pointer; }
.reservation-client-results button:last-child { border-bottom:0; }
.reservation-client-results button:hover,.reservation-client-results button:focus-visible { outline:0; background:#fffbea; }
.reservation-client-avatar { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; background:#f2f4f7; color:#59616e; font-size:13px; font-weight:850; }
.reservation-client-result-copy { display:grid; min-width:0; gap:2px; }
.reservation-client-result-copy strong,.reservation-client-result-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reservation-client-result-copy strong { font-size:13px; }
.reservation-client-result-copy small { color:#6b7280; font-size:11px; font-weight:500; }
.reservation-client-use { color:#806800; font-size:11px; font-weight:800; white-space:nowrap; }
.reservation-client-empty { padding:15px; color:#64748b; font-size:12px; line-height:1.45; text-align:center; }
.reservation-client-empty.is-error { color:#b42318; }
.reservation-client-selected { display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding:10px 11px; border:1px solid #bce8cd; border-radius:9px; background:#effbf3; color:#18683a; font-size:12px; line-height:1.45; }
.reservation-client-selected svg { flex:none; margin-top:1px; }
.reservation-client-selected span { display:grid; gap:2px; }
.reservation-client-selected small { color:#7a5b00; }
.admin-schedule-override { display:flex; align-items:flex-start; gap:9px; margin:10px 0 13px; padding:10px 11px; border:1px solid #ead778; border-radius:9px; background:#fffbea; color:#665500; }
.admin-schedule-override svg { width:18px; height:18px; flex:none; margin-top:1px; padding:3px; border-radius:5px; background:#ffd21c; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.admin-schedule-override span { display:grid; gap:2px; }
.admin-schedule-override strong { color:#3f3500; font-size:12px; }
.admin-schedule-override small { color:#75651c; font-size:11px; line-height:1.4; }
@media (max-width:760px) { .catalog-toolbar { grid-template-columns:1fr; } .catalog-heading-actions { width:100%; justify-content:stretch; } .catalog-heading-actions .btn { flex:1; } }
@media (max-width:520px) { .catalog-heading-actions { flex-direction:column; } .category-manager-row { align-items:flex-start; } .service-variants-grid { grid-template-columns:1fr; } .reservation-client-results button { grid-template-columns:34px minmax(0,1fr); } .reservation-client-use { display:none; } }
