.admin-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:16px 0; }
.admin-filters label { display:grid; gap:7px; font-size:12px; font-weight:700; }
.admin-filters input,.admin-filters select { border:1px solid var(--line); background:#fff; padding:11px; border-radius:7px; min-height:44px; color:var(--deep); max-width:100%; }
.search-field { flex:1; min-width:200px; }.search-field input { width:100%; }
.today-button { min-height:44px; margin:0; }
.admin-list-shell { position:relative; }.list-meta { font-size:12px; color:var(--muted); margin:14px 0 8px; }
.admin-list-scroll { max-height:min(53dvh,630px); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#c7998f transparent; padding:0 10px 4px 0; }
.admin-list-scroll .admin-card:first-child { margin-top:0; }.admin-list-scroll .admin-card { border-radius:10px; }
.list-pagination { display:flex; justify-content:space-between; gap:12px; align-items:center; padding-top:12px; font-size:12px; }
.list-pagination button { display:flex; gap:10px; align-items:center; justify-content:center; min-height:44px; min-width:110px; background:#fff; color:var(--deep); border:1px solid var(--line); border-radius:7px; font-size:17px; }
.list-pagination button span { font-size:12px; }.list-pagination button:disabled { opacity:.35; cursor:default; }
.list-back-top { position:absolute; right:18px; bottom:74px; z-index:2; width:46px; height:46px; border-radius:50%; border:1px solid #fff7; background:var(--deep); color:#fff; box-shadow:0 4px 18px #17382c30; font-size:24px; }
.card-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }.card-actions select { margin:0; min-height:40px; }.card-actions .button-small { margin:0; }
.product-paused { opacity:.76; background:#eee8e1; }.admin-logout { text-align:right; margin:22px 0 0; }
.settings-layout { padding-top:24px; gap:24px; }.settings-layout fieldset { min-width:0; border:1px solid var(--line); border-radius:12px; padding:20px; display:grid; gap:15px; margin:0; }
.settings-layout legend { font-family:'Playfair Display',serif; font-size:22px; padding:0 8px; }.settings-layout p { margin:0; }
.week-grid { display:grid; gap:0; }.week-row { display:grid; grid-template-columns:110px 140px 1fr; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.admin-form .check-label { display:flex; align-items:center; gap:8px; }.admin-form .check-label input { width:20px; height:20px; min-height:20px; accent-color:var(--deep); }
.week-times { display:flex; gap:8px; align-items:center; }.week-times input { min-width:0; width:100%; }.week-times input:disabled { opacity:.4; }
.exception-row { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:12px; border-radius:8px; background:#f0e5db; margin-top:8px; font-size:13px; }
.exception-row small { display:block; margin-top:5px; color:var(--muted); }.settings-save { position:sticky; bottom:0; box-shadow:0 -6px 24px #faf5ee; min-height:50px; }
.location-picker { display:grid; gap:12px; }.location-picker iframe { border:0; width:100%; height:230px; border-radius:8px; }.location-picker .location-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }.location-status { font-size:12px; color:var(--muted); }.location-status.confirmed { color:#286148; }.location-picker gmp-place-autocomplete { width:100%; color-scheme:light; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.product-title-inline { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.inline-availability { font-size:10px; font-weight:500; color:#42735b; white-space:nowrap; }.inline-availability.paused { color:#9b6b57; }
.admin-filters { display:grid; grid-template-columns:150px minmax(160px,1fr) 125px; align-items:end; }.admin-filters:has(#admin-search):not(:has(#order-filter)) { grid-template-columns:150px minmax(160px,1fr); }.admin-filters:not(:has(#admin-date)) { grid-template-columns:1fr !important; }.admin-filters input,.admin-filters select { width:100%; min-width:0; }.search-field { min-width:0; }
.day-buttons { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }.day-buttons button { aspect-ratio:1; border:1px solid var(--line); background:white; color:var(--deep); border-radius:9px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-width:0; }.day-buttons b { font-size:15px; }.day-buttons span { font-size:9px; }.day-buttons .day-closed { background:#ede7df; color:var(--muted); }.day-buttons .selected { background:var(--deep); border-color:var(--deep); color:white; }.day-title { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:5px 0 16px; }.day-time-fields { grid-template-columns:1fr 1fr; }.apply-hours { margin-top:14px; font-size:12px; padding:6px 0; text-align:left; color:var(--rose); }.settings-details { border:1px solid var(--line); border-radius:10px; padding:16px; }.settings-details summary { cursor:pointer; font-size:14px; font-weight:700; }.settings-details summary span { color:var(--muted); font-size:11px; float:right; }.settings-details-body { padding-top:20px; display:grid; gap:15px; }.location-current { font-size:14px; margin:0; }
.equal-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.equal-actions button { margin:0; min-height:48px; display:flex; align-items:center; justify-content:center; font-size:13px; padding:12px; }.admin-form .featured-check { display:flex; flex-direction:row; align-items:center; gap:9px; align-self:center; }.admin-form .featured-check input { width:20px; height:20px; min-height:20px; margin:0; accent-color:var(--deep); }
.field-label { font-size:12px; font-weight:700; }.product-image-field { display:grid; gap:12px; }.image-field-preview { display:block; padding:0; width:min(100%,260px); aspect-ratio:4/3; position:relative; border:1px solid var(--line); border-radius:9px; background:#f3e8dc; overflow:hidden; }.image-field-preview img,.image-crop-stage img,.product-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform-origin:center; }.image-field-preview span { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); background:#17382ced; color:white; border-radius:20px; padding:7px 12px; font-size:11px; white-space:nowrap; }.no-product-image { padding:25px; border:1px dashed var(--line); border-radius:8px; color:var(--muted); text-align:center; font-size:13px; }.file-picker { cursor:pointer; display:inline-flex !important; align-items:center; justify-content:center; }.file-picker:focus-within { outline:2px solid var(--rose); outline-offset:3px; }
.image-editor-dialog { border:0; border-radius:18px; padding:25px; width:min(94vw,620px); max-height:94dvh; overflow:auto; background:var(--cream); color:var(--deep); box-shadow:var(--shadow); }.image-editor-dialog::backdrop { background:#14251dbb; backdrop-filter:blur(4px); }.image-dialog-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:18px; }.image-dialog-head h2 { font-family:'Playfair Display',serif; font-size:27px; margin:5px 0 0; }.image-crop-stage { position:relative; overflow:hidden; width:100%; aspect-ratio:4/3; background:#f3e8dc; border-radius:10px; touch-action:none; cursor:grab; }.image-crop-stage:active { cursor:grabbing; }.image-crop-stage img { user-select:none; pointer-events:none; }.image-zoom { display:flex; align-items:center; gap:12px; margin-top:15px; }.image-zoom button { width:44px; height:44px; border:1px solid var(--line); background:white; border-radius:50%; flex:none; font-size:22px; }.image-zoom input { min-width:0; width:100%; accent-color:var(--rose); }.image-zoom output { font-size:12px; min-width:36px; }.image-editor-dialog .equal-actions { margin-top:18px; }#image-error { font-size:12px; color:#a83434; }
.product-image { height:auto; aspect-ratio:4/3; }.product-photo { z-index:1; }.product-tag { z-index:2; }.preparation-note { display:block; font-size:11px; line-height:1.5; color:#92766c; margin-bottom:14px; }.cart-emoji { position:relative; overflow:hidden; }.cart-emoji .emoji { font-size:28px; }.cart-emoji .product-photo { object-fit:contain; }
.stock-notice { display:inline-flex; align-self:flex-start; border-radius:5px; padding:5px 8px; margin:1px 0 8px; font-size:11px; font-weight:700; line-height:1.35; }
.stock-notice.plenty { color:#315d48; background:#e8f0e9; }
.stock-notice.medium { color:#935b29; background:#f8ecdc; }
.stock-notice.low { color:#a04b50; background:#fae6e6; }
.checkout-requirement { text-align:center; margin:8px 0 0; min-height:1.4em; }
.checkout-payment-label { display:block; font-size:13px; font-weight:700; margin-top:8px; }
.checkout-payment-options { margin:8px 0 14px; }
.checkout-transfer-note { margin:-7px 0 13px; }
.checkout-payment-options label.unavailable { opacity:.5; cursor:not-allowed; }
.checkout-requirement.is-error { color:#aa3441; background:#fff0f0; border:1px solid #eeb5b9; border-radius:7px; padding:9px 11px; font-weight:800; }
.checkout-form input.checkout-field-error,#order-time-toggle.checkout-field-error { border-color:#c74450; background:#fff5f5; box-shadow:0 0 0 3px #c744502a; }
.checkout-alert-once { animation:checkout-alert-pop .42s ease-out 1; }
@keyframes checkout-alert-pop { 0% { transform:translateY(-6px); } 55% { transform:translateY(2px); } 100% { transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .checkout-alert-once { animation:none; } }
.payment-wait { display:grid; justify-items:center; gap:16px; padding:24px 22px 30px; text-align:center; }
.payment-wait p { max-width:390px; margin:0; font-size:14px; line-height:1.6; }
.payment-wait small { max-width:390px; color:var(--muted); font-size:12px; line-height:1.5; }
.payment-wait-spinner { width:34px; height:34px; border:3px solid #f0d5d3; border-top-color:var(--rose); border-radius:50%; animation:payment-wait-spin .9s linear infinite; }
@keyframes payment-wait-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .payment-wait-spinner { animation:none; border-color:var(--rose); } }
.shop-hours { width:100%; font-size:12px; color:var(--muted); margin-top:12px; }.shop-hours summary { cursor:pointer; }.shop-hours ul { padding:12px 0 0; margin:0; list-style:none; max-width:280px; }.shop-hours li { display:flex; justify-content:space-between; padding:4px 0; gap:14px; }.opening-note { color:var(--deep); font-size:12px; margin:0; }
.announcement { position:relative; z-index:26; padding:0 14px; background:#bc7772; color:white; }
.announcement .shop-hours { width:auto; margin:0; color:inherit; font-size:11px; font-weight:600; letter-spacing:.02em; }
.announcement .shop-hours summary { min-height:34px; display:flex; align-items:center; justify-content:center; gap:10px; list-style:none; }
.announcement .shop-hours summary::-webkit-details-marker { display:none; }
.hours-expand { display:inline-flex; align-items:center; gap:4px; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.hours-expand span { display:inline-block; opacity:1; transition:transform .2s; text-decoration:none; }
.shop-hours[open] .hours-expand span { transform:rotate(180deg); }
.hours-popover { position:absolute; top:100%; left:50%; transform:translateX(-50%); width:min(94vw,380px); padding:17px 20px; background:#fffaf6; color:var(--deep); border:1px solid var(--line); border-radius:0 0 12px 12px; box-shadow:0 18px 40px #17382c24; letter-spacing:0; }
.announcement .shop-hours ul { max-width:none; padding:0; margin:0; }
.announcement .shop-hours li { padding:6px 0; font-size:12px; text-transform:none; }
.announcement .shop-hours li b { font-weight:600; }
.hours-notices { margin-top:9px; padding-top:10px; border-top:1px solid var(--line); }
.hours-notices p { margin:3px 0; font-size:12px; color:var(--rose); line-height:1.5; text-transform:none; }
#login-form { padding-top:0; gap:12px; }
#login-form .remember-device { display:flex; flex-direction:row; align-items:center; gap:9px; font-size:12px; font-weight:500; }
#login-form .remember-device input { width:18px; height:18px; min-height:18px; margin:0; accent-color:var(--deep); }
.checkout-datetime { align-items:end; }
.time-field { display:grid; gap:7px; min-width:0; font-size:12px; font-weight:800; }
.today-unavailable { padding:10px 12px; margin:0; border-radius:7px; background:#f8e8e2; color:#8a4d48; font-size:12px; line-height:1.5; }
.time-picker { position:relative; min-width:0; }
#order-time-toggle { width:100%; min-height:46px; padding:10px 12px; border:1px solid #e9d8d9; border-radius:5px; background:white; color:var(--deep); text-align:left; font-size:14px; }
#order-time-toggle:disabled { opacity:.55; }
.time-options { position:absolute; top:calc(100% + 5px); left:0; right:0; z-index:5; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; max-height:220px; overflow:auto; padding:9px; background:#fffaf6; border:1px solid var(--line); border-radius:9px; box-shadow:0 12px 28px #17382c22; }
.time-options button { min-height:40px; border:1px solid var(--line); border-radius:6px; background:white; color:var(--deep); font-size:13px; }
.time-options button.selected,.time-options button:hover { background:var(--deep); color:white; }
.tracking-head { display:flex; justify-content:space-between; align-items:center; gap:12px; text-align:left; padding:14px 18px; }
.tracking-head h3 { font-size:23px; margin:7px 0 2px; }
.tracking-head p { margin:0; }
.refresh-track { white-space:nowrap; padding:8px; font-size:12px; }
.refresh-track:first-letter { font-size:19px; }
.status-timeline { padding:7px 0; }
.timeline-item { padding:7px 0; }
.timeline-item .dot { width:17px; height:17px; margin-top:1px; }
.timeline-item.done .dot { display:grid; place-items:center; background:var(--rose); border-color:var(--rose); box-shadow:none; color:white; }
.timeline-item.done .dot::after { content:'✓'; font-size:11px; font-weight:800; line-height:1; }
.timeline-item.current .dot { background:var(--rose); border-color:var(--rose); box-shadow:0 0 0 0 #b46d6880; animation:current-order-pulse 1.8s ease-out infinite; }
.delivery-link-editor { display:grid; gap:8px; margin-top:14px; padding:13px; border:1px solid var(--line); border-radius:7px; background:var(--cream); }
.delivery-link-editor label { font-size:12px; font-weight:700; }
.delivery-link-editor label small { color:var(--muted); font-weight:400; }
.delivery-link-editor input { width:100%; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:5px; color:var(--deep); font-size:13px; }
.delivery-link-editor .button-small { justify-self:start; margin:0; }
.delivery-tracking { margin-top:9px; padding:11px; border:1px solid var(--line); border-radius:7px; background:white; max-width:440px; }
.delivery-tracking-link { display:inline-block; margin-bottom:8px; color:var(--rose); font-size:12px; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.delivery-tracking .copy-row { display:flex; gap:7px; }
.delivery-tracking .copy-row input { min-width:0; flex:1; border-radius:4px; background:var(--cream); }
.delivery-tracking .copy-row button { flex:none; }
@keyframes current-order-pulse { 65% { box-shadow:0 0 0 10px #b46d6800; } 100% { box-shadow:0 0 0 0 #b46d6800; } }
.track-auto-note { text-align:center; margin:10px 0 0; color:var(--muted); font-size:11px; }
.cancelled-help { padding:14px; background:#fff; border:1px solid var(--line); border-radius:7px; font-size:13px; }
.cancelled-help a { color:var(--rose); text-decoration:underline; }
.tracking-help { margin-top:12px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:7px; font-size:12px; line-height:1.5; }
.tracking-help summary { cursor:pointer; color:var(--deep); font-weight:700; }
.tracking-help p { margin:10px 0 7px; color:var(--muted); }
.tracking-help a { color:var(--rose); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.order-summary { padding:13px; }
.settings-save { position:static; box-shadow:none; margin:10px 0 16px; }
#settings-form { padding-bottom:18px; }
#admin-search::placeholder { font-size:11px; }
#admin-date { font-size:14px; padding:9px 6px; }
@media(prefers-reduced-motion:reduce) { .timeline-item.current .dot { animation:none; box-shadow:0 0 0 3px #b46d6840; } }
@media(max-width:700px) {
 .admin-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; }.admin-tabs button { min-width:0; padding:12px 3px; font-size:11px; }
 .admin-filters { grid-template-columns:145px minmax(0,1fr) !important; }.admin-filters label:has(#order-filter) { grid-column:1/-1; }.admin-filters:not(:has(#admin-date)) { grid-template-columns:1fr !important; }.admin-filters input,.admin-filters select { padding:10px 7px; font-size:16px; }.admin-filters label { font-size:11px; }
 .day-buttons { gap:4px; }.day-buttons button { border-radius:6px; gap:4px; min-height:48px; }.day-buttons b { font-size:11px; }.day-buttons span { font-size:7px; }.compact-settings fieldset { padding:14px 10px; }.settings-layout .day-time-fields { grid-template-columns:1fr 1fr; }.day-time-fields input { min-width:0; }.day-title { font-size:13px; }.day-title .check-label { font-size:12px; }.settings-details summary { font-size:12px; }.settings-details { padding:14px 10px; }
 .image-editor-dialog { padding:18px; width:calc(100% - 16px); }.image-dialog-head h2 { font-size:24px; }.image-zoom { gap:8px; }.product-image { height:auto; aspect-ratio:4/3; }.shop-hours ul { margin:auto; }.preparation-note { font-size:10px; }.product-title-inline { gap:5px; }.inline-availability { font-size:9px; }.equal-actions { gap:10px; }.equal-actions button { font-size:12px; }
}
@media(max-width:700px) {
  .admin-filters { gap:10px; }.admin-filters input,.admin-filters select { font-size:16px; }.search-field { flex-basis:100%; }
  .admin-list-scroll { max-height:48dvh; padding-right:4px; }.list-pagination button { min-width:90px; }.list-back-top { right:8px; }
  .settings-layout fieldset { padding:16px 12px; }.settings-layout legend { font-size:20px; }.week-row { grid-template-columns:1fr 1fr; gap:10px; }.week-times { grid-column:1/-1; }.week-times input { font-size:16px; padding:10px; }.week-row .check-label { font-size:12px; }
  .card-actions { gap:8px; }.card-actions select { flex-basis:100%; width:100%; font-size:16px; }.exception-row { font-size:12px; }
  .settings-save { position:static; margin-bottom:18px; }.location-picker iframe { height:190px; }
}
@media(max-width:700px) { #admin-date { font-size:14px; padding:9px 3px; } #admin-search::placeholder { font-size:10px; } .tracking-head { padding:12px; } .tracking-head h3 { font-size:21px; } .refresh-track span { display:none; } .refresh-track { font-size:23px; } .checkout-datetime { grid-template-columns:1fr 1fr; } }
.catalog-suspended { background:#f4f1ed; border-color:#e3ded8; }
.catalog-suspended:hover { transform:none; box-shadow:0 10px 35px #7e4d5110; }
.catalog-suspended .product-image { filter:grayscale(.8); opacity:.56; }
.catalog-suspended .product-body { color:#777671; }
.catalog-suspended .product-bottom button:disabled { cursor:not-allowed; background:#e9e6e2; border-color:#d5d0ca; color:#777671; }
.security-panel { margin-top:18px; padding:20px; }
.mp-connection-help { color:var(--muted);font-size:12px;line-height:1.5;margin:12px 0 0; }
.mp-connection-error { color:#8d3030;background:#fff3f0;border:1px solid #e9c7c3;border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.5; }
.security-panel h4 { font-family:'Playfair Display',serif; font-size:21px; margin:0 0 6px; }
.session-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); }
.session-row>div { min-width:0; }
.session-row b { font-size:13px; }
.session-row small { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.session-current { display:inline-block; margin-left:8px; color:#315d48; font-size:10px; font-weight:700; }
.security-password { padding-top:18px; }
.security-password #password-form { max-width:440px; margin-top:15px; }
@media(max-width:700px) { .session-row { align-items:flex-start; } .session-row .button-small { flex:none; } .security-panel { padding:16px 12px; } }
.admin-filters:has(#order-filter) { grid-template-columns:150px 125px minmax(160px,1fr); }
@media(max-width:700px) {
  .admin-filters:has(#order-filter) { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
  .admin-filters label:has(#order-filter) { grid-column:auto; }
  .admin-filters:has(#order-filter) .search-field { grid-column:1/-1; }
  .cancelled-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; align-items:stretch; }
  .cancelled-actions .button-small { display:flex; align-items:center; justify-content:center; min-width:0; min-height:42px; padding:6px 3px; font-size:9px; line-height:1.15; text-align:center; overflow-wrap:anywhere; }
}
