/* שכבת מוצר מעל מעטפת הניהול הקיימת. כל הצבעים, הפונטים והצללים נשענים על
   אותם tokens של admin.css כדי לשמור על השפה החמה והטקסית של המוצר. */

body.has-overlay { overflow: hidden; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* ---------- Controls משותפים ---------- */

.product-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--hairline);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: 0 6px 20px var(--shadow);
}

.toolbar-search { position: relative; flex: 1; max-width: 360px; }
.toolbar-search input,
.toolbar-sort select,
.location-search input {
  width: 100%;
  min-height: 44px;
  padding: 0.62rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text);
  font: inherit;
}

.toolbar-controls { display: flex; align-items: center; gap: 0.65rem; flex-wrap: wrap; }
.toolbar-sort select { width: auto; min-width: 150px; }

.filter-chips { display: flex; gap: 0.38rem; flex-wrap: wrap; }
.filter-chip {
  min-height: 36px;
  padding: 0.42rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--panel);
  color: var(--muted);
  cursor: pointer;
  font-size: 0.8rem;
}
.filter-chip:hover { border-color: var(--accent); color: var(--accent); }
.filter-chip.is-active { border-color: var(--accent); background: rgba(119, 51, 65, 0.09); color: var(--accent); font-weight: 600; }
.results-count { color: var(--muted); font-size: 0.78rem; white-space: nowrap; }

.status-badge,
.text-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 27px;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--hairline);
  background: var(--bg);
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.2;
}
.status-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
.status-badge--success { color: #4D6140; border-color: #D8E0D0; background: #F1F5EC; }
.status-badge--success::before { background: #708A5A; }
.status-badge--warning { color: #765A2F; border-color: #E6D09A; background: #FBF3E4; }
.status-badge--warning::before { background: #B18C49; }
.status-badge--muted { color: #7C5A53; border-color: #E7C7C2; background: #FBEDEA; }
.status-badge--muted::before { background: #A64A3F; }
.tag-list { display: flex; gap: 0.35rem; flex-wrap: wrap; }

.product-list {
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: 18px;
  background: var(--panel);
  box-shadow: 0 8px 26px var(--shadow);
}

.product-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) minmax(130px, 0.7fr) minmax(220px, 1.2fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--hairline);
}
.product-row:last-child { border-bottom: 0; }
.product-row:hover { background: rgba(250, 246, 240, 0.58); }
.product-row-title { min-width: 0; }
.product-row-title strong { display: block; font-size: 0.95rem; color: var(--text); }
.product-row-title p { margin: 0.18rem 0 0; color: var(--muted); font-size: 0.77rem; white-space: pre-line; }
.product-row-time { direction: ltr; unicode-bidi: isolate; text-align: right; color: var(--accent); font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; }
.product-row-time small { display: block; direction: rtl; color: var(--muted); font-family: var(--font-body); font-size: 0.68rem; font-weight: 400; }
.product-row-actions { display: flex; gap: 0.35rem; justify-content: flex-end; }
.text-button {
  min-height: 38px;
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--panel);
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  font-size: 0.76rem;
}
.text-button:hover { border-color: var(--accent); background: rgba(119, 51, 65, 0.05); }
.text-button:disabled { cursor: not-allowed; opacity: 0.45; }
.text-button.is-danger { color: var(--danger); }
.text-button.is-quiet { color: var(--muted); background: transparent; }

.product-empty {
  padding: 3rem 1.5rem;
  border: 1px dashed var(--border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.55);
  text-align: center;
}
.product-empty h2 { margin: 0; color: var(--accent); font-size: 1.25rem; }
.product-empty p { max-width: 540px; margin: 0.5rem auto 1.1rem; color: var(--muted); font-size: 0.86rem; }
.product-empty.is-critical { border-style: solid; border-color: #E7C7C2; background: #FBEDEA; }

.inline-alert { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 0.9rem 1rem; border: 1px solid #E6D09A; border-radius: 13px; background: #FBF3E4; color: #765A2F; font-size: 0.82rem; }
.inline-alert.is-critical { border-color: #E7C7C2; background: #FBEDEA; color: #7C362E; }

/* ---------- Drawer ---------- */

.drawer-layer,
.modal-layer,
.preview-modal-layer {
  position: fixed;
  z-index: 200;
  inset: 0;
}
.drawer-scrim,
.modal-scrim {
  position: absolute;
  inset: 0;
  background: rgba(36, 31, 26, 0.48);
  backdrop-filter: blur(2px);
}
.admin-drawer {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: min(620px, 94vw);
  display: flex;
  flex-direction: column;
  background: var(--bg);
  border-inline-end: 1px solid var(--hairline);
  box-shadow: -24px 0 64px rgba(36, 31, 26, 0.22);
  animation: drawer-enter 0.24s var(--ease-luxury, ease-out) both;
}
@keyframes drawer-enter { from { transform: translateX(100%); opacity: 0.7; } }
.drawer-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid var(--hairline); background: rgba(255,255,255,0.96); }
.drawer-header h2 { margin: 0.1rem 0 0; color: var(--text); font-size: 1.35rem; }
.drawer-eyebrow { color: var(--accent); font-size: 0.72rem; font-weight: 600; }
.drawer-close { min-height: 40px; padding: 0.45rem 0.75rem; border: 1px solid var(--border); border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; }
.drawer-body { flex: 1; overflow-y: auto; padding: 1.35rem; }
.drawer-form { display: flex; flex-direction: column; gap: 1.1rem; }
.form-section { padding: 1.15rem; border: 1px solid var(--hairline); border-radius: 15px; background: var(--panel); }
.form-section h3 { margin: 0 0 0.9rem; color: var(--accent); font-size: 0.95rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
.form-field { display: flex; flex-direction: column; gap: 0.35rem; color: var(--muted); font-size: 0.8rem; }
.form-field.is-full { grid-column: 1 / -1; }
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%; min-height: 44px; padding: 0.62rem 0.72rem; border: 1px solid var(--border); border-radius: 9px; background: #fff; color: var(--text); font: inherit;
}
.form-field textarea { min-height: 132px; resize: vertical; white-space: pre-wrap; }
.form-field input[dir="ltr"] { text-align: right; }
.field-error { min-height: 1em; color: var(--danger); font-size: 0.72rem; }
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(166, 74, 63, 0.1); }

.radio-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.radio-card { position: relative; display: flex; align-items: flex-start; gap: 0.55rem; padding: 0.8rem; border: 1px solid var(--border); border-radius: 11px; background: var(--panel); color: var(--text); cursor: pointer; }
.radio-card:has(input:checked) { border-color: var(--accent); background: rgba(119, 51, 65, 0.06); }
.radio-card input { margin-top: 0.2rem; accent-color: var(--accent); }
.radio-card strong { display: block; font-size: 0.82rem; }
.radio-card small { display: block; margin-top: 0.1rem; color: var(--muted); font-size: 0.69rem; }

.product-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.35rem; }
.product-days label { position: relative; min-width: 0; }
.product-days input { position: absolute; opacity: 0; pointer-events: none; }
.product-days span { display: grid; place-items: center; min-height: 42px; border: 1px solid var(--border); border-radius: 9px; background: var(--panel); color: var(--muted); cursor: pointer; font-size: 0.72rem; }
.product-days input:checked + span { border-color: var(--accent); background: rgba(119, 51, 65, 0.09); color: var(--accent); font-weight: 600; }
.product-days input:focus-visible + span { box-shadow: 0 0 0 3px rgba(119, 51, 65, 0.28); }

.advanced-panel { border: 1px solid var(--hairline); border-radius: 14px; background: var(--panel); }
.advanced-panel summary { min-height: 46px; display: flex; align-items: center; padding: 0.7rem 1rem; color: var(--accent); cursor: pointer; font-size: 0.84rem; font-weight: 600; }
.advanced-panel[open] summary { border-bottom: 1px solid var(--hairline); }
.advanced-panel-content { padding: 1rem; }
.human-summary { padding: 0.85rem 1rem; border-radius: 12px; background: #FBF6EB; color: #765A2F; font-size: 0.84rem; line-height: 1.5; }
.drawer-actions { position: sticky; bottom: -1.35rem; z-index: 3; display: flex; gap: 0.65rem; margin: 0 -1.35rem -1.35rem; padding: 1rem 1.35rem; border-top: 1px solid var(--hairline); background: rgba(255,255,255,0.97); }
.drawer-actions .btn { min-height: 44px; padding: 0.65rem 1.2rem; }

/* ---------- Modal / Undo ---------- */

.admin-modal { position: relative; width: min(460px, calc(100vw - 2rem)); margin: min(18vh, 150px) auto 0; padding: 1.5rem; border: 1px solid var(--hairline); border-radius: 18px; background: var(--panel); box-shadow: 0 24px 80px rgba(36,31,26,0.26); }
.admin-modal h2 { margin: 0; color: var(--text); font-size: 1.25rem; }
.admin-modal p { margin: 0.65rem 0 1.2rem; color: var(--muted); font-size: 0.86rem; line-height: 1.6; white-space: pre-line; }
.modal-actions { display: flex; justify-content: flex-end; gap: 0.55rem; flex-wrap: wrap; }
.modal-actions button { min-height: 42px; padding: 0.55rem 0.9rem; border: 1px solid var(--border); border-radius: 9px; background: var(--panel); color: var(--muted); cursor: pointer; }
.modal-actions .is-primary { border-color: var(--accent); background: var(--accent); color: #fff; }
.modal-actions .is-danger { border-color: var(--danger); background: var(--danger); color: #fff; }
.toast-action { margin-inline-start: auto; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }

/* ---------- הודעות וגלריה ---------- */

.announcement-row { grid-template-columns: 76px minmax(240px, 1.5fr) minmax(155px, 0.75fr) minmax(120px, 0.55fr) auto; }
.announcement-thumb { width: 64px; height: 48px; object-fit: cover; border-radius: 9px; border: 1px solid var(--hairline); }
.announcement-placeholder { width: 64px; height: 48px; display: grid; place-items: center; border-radius: 9px; background: var(--bg); color: var(--muted); font-size: 0.65rem; }
.announcement-preview-grid { display: grid; grid-template-columns: 1fr; gap: 0.7rem; }
.preview-card-sample { padding: 1rem; border: 1px solid var(--hairline); border-radius: 13px; background: var(--bg); white-space: pre-wrap; font-size: 0.86rem; }
.preview-ticker-sample { overflow: hidden; padding: 0.65rem 0.8rem; border-top: 1px solid rgba(177,140,73,0.55); background: #240A11; color: #FAF6F0; white-space: nowrap; text-overflow: ellipsis; font-size: 0.77rem; }
.length-warning { color: #765A2F; font-size: 0.73rem; }

.upload-zone { display: grid; place-items: center; min-height: 170px; padding: 1.2rem; border: 1.5px dashed var(--border); border-radius: 18px; background: rgba(255,255,255,0.6); text-align: center; cursor: pointer; }
.upload-zone.is-dragging { border-color: var(--accent); background: rgba(119,51,65,0.06); }
.upload-zone strong { display: block; color: var(--accent); }
.upload-zone span { display: block; margin-top: 0.25rem; color: var(--muted); font-size: 0.78rem; }
.upload-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload-queue { display: grid; gap: 0.5rem; }
.upload-item { display: grid; grid-template-columns: minmax(100px, 1fr) 2fr auto; align-items: center; gap: 0.7rem; padding: 0.65rem 0.8rem; border: 1px solid var(--hairline); border-radius: 11px; background: var(--panel); font-size: 0.76rem; }
.upload-progress { height: 7px; overflow: hidden; border-radius: 999px; background: var(--border); }
.upload-progress span { display: block; height: 100%; width: 0; background: var(--accent); transition: width 0.15s linear; }

.gallery-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.gallery-product-card { overflow: hidden; border: 1px solid var(--hairline); border-radius: 16px; background: var(--panel); box-shadow: 0 7px 22px var(--shadow); }
.gallery-product-card.is-hidden { opacity: 0.68; }
.gallery-product-card.is-dragging { opacity: 0.45; }
.gallery-product-image { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg); }
.gallery-product-image img { width: 100%; height: 100%; object-fit: cover; }
.gallery-product-state { position: absolute; top: 0.65rem; inset-inline-start: 0.65rem; }
.gallery-product-body { padding: 0.8rem; }
.gallery-product-actions { display: flex; gap: 0.35rem; flex-wrap: wrap; }
.gallery-product-actions .text-button { flex: 1; min-width: 76px; }
.focus-preview { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 13px; background: var(--bg); }
.focus-preview img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- שבת ---------- */

.shabbat-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.shabbat-section { padding: 1.15rem; border: 1px solid var(--hairline); border-radius: 16px; background: var(--panel); }
.shabbat-section h2 { margin: 0 0 0.8rem; padding-bottom: 0.65rem; border-bottom: 1px solid var(--hairline); color: var(--accent); font-size: 1rem; }
.shabbat-time-list { display: grid; gap: 0.5rem; }
.shabbat-time-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.65rem 0.75rem; border-radius: 10px; background: var(--bg); }
.shabbat-time-row strong { font-size: 0.84rem; }
.shabbat-time-row span { direction: ltr; unicode-bidi: isolate; color: var(--accent); font-family: var(--font-heading); font-weight: 700; }
.mevarchim-editor { display: grid; gap: 0.7rem; }
.mevarchim-row { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; padding: 0.75rem; border: 1px solid var(--hairline); border-radius: 11px; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2 { margin-bottom: 0.2rem; }
.dedication-link-card { display: grid; grid-template-columns: minmax(210px, 0.8fr) minmax(300px, 1.2fr); align-items: end; gap: 1.2rem; }
.dedication-link-card form { display: flex; align-items: flex-end; gap: 0.65rem; }
.dedication-link-card .form-field { flex: 1; }
.dedication-link-card .form-actions { flex-wrap: nowrap; }
.dedication-admin-row { grid-template-columns: minmax(220px, 1.35fr) minmax(150px, 0.75fr) minmax(180px, 0.9fr) auto; }
.dedication-date-value { font-size: 1rem; }

/* ---------- מסכים + Preview ---------- */

.master-detail { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.master-list { overflow: hidden; border: 1px solid var(--hairline); border-radius: 17px; background: var(--panel); box-shadow: 0 8px 24px var(--shadow); }
.master-item { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; padding: 0.85rem 0.9rem; border: 0; border-bottom: 1px solid var(--hairline); background: transparent; color: var(--text); text-align: start; cursor: pointer; }
.master-item:last-child { border-bottom: 0; }
.master-item:hover { background: var(--bg); }
.master-item.is-selected { background: rgba(119,51,65,0.08); box-shadow: inset -3px 0 var(--accent); }
.master-select { min-width: 0; padding: 0; border: 0; background: transparent; color: inherit; text-align: start; cursor: pointer; }
.master-item strong { display: block; font-size: 0.86rem; }
.master-item small { display: block; margin-top: 0.15rem; color: var(--muted); font-size: 0.68rem; }
.master-order-actions { display: flex; gap: 0.25rem; }
.master-order-actions button { min-width: 34px; min-height: 34px; padding: 0; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); color: var(--accent); cursor: pointer; }
.detail-stack { display: grid; gap: 1rem; min-width: 0; }
.preview-panel { position: sticky; top: 98px; padding: 0.8rem; border: 1px solid var(--hairline); border-radius: 17px; background: #240A11; box-shadow: 0 12px 34px rgba(36,31,26,0.14); }
.preview-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; margin-bottom: 0.65rem; color: #F3EDE3; }
.preview-panel-head strong { font-size: 0.82rem; }
.preview-panel-head span { color: #C7B79D; font-size: 0.68rem; }
.preview-frame-wrap { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: var(--bg); }
.preview-frame-wrap iframe { width: 100%; height: 100%; display: block; border: 0; }
.preview-links { display: flex; justify-content: space-between; gap: 0.5rem; margin-top: 0.55rem; }
.preview-links a,
.preview-links button { padding: 0; border: 0; background: none; color: #F3E7C8; cursor: pointer; text-decoration: none; font: inherit; font-size: 0.7rem; }
.settings-preview-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr); gap: 1.2rem; align-items: start; }
.unsaved-bar { position: sticky; bottom: 1rem; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.85rem 1rem; border: 1px solid #D6B673; border-radius: 14px; background: #FBF6EB; color: #765A2F; box-shadow: 0 12px 36px rgba(36,31,26,0.15); }
.unsaved-actions { display: flex; gap: 0.5rem; }
.unsaved-actions button { min-height: 40px; padding: 0.5rem 0.8rem; border: 1px solid var(--border); border-radius: 9px; background: var(--panel); color: var(--muted); cursor: pointer; }
.unsaved-actions .save { border-color: var(--accent); background: var(--accent); color: #fff; }

.toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 0; border-bottom: 1px solid var(--hairline); }
.toggle-row:last-child { border-bottom: 0; }
.toggle-control { position: relative; width: 46px; height: 26px; flex-shrink: 0; }
.toggle-control input { position: absolute; opacity: 0; }
.toggle-control span { position: absolute; inset: 0; border-radius: 999px; background: var(--border); cursor: pointer; transition: background 0.18s ease; }
.toggle-control span::after { content: ''; position: absolute; top: 3px; inset-inline-start: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(36,31,26,0.22); transition: transform 0.18s ease; }
.toggle-control input:checked + span { background: var(--accent); }
.toggle-control input:checked + span::after { transform: translateX(-20px); }
.toggle-control input:focus-visible + span { box-shadow: 0 0 0 3px rgba(119,51,65,0.25); }

/* ---------- נוסחים, הגדרות ו-Onboarding ---------- */

.text-groups { display: grid; gap: 0.8rem; }
.text-group { border: 1px solid var(--hairline); border-radius: 15px; background: var(--panel); }
.text-group summary { padding: 0.9rem 1rem; color: var(--accent); cursor: pointer; font-weight: 600; }
.text-group[open] summary { border-bottom: 1px solid var(--hairline); }
.text-group-fields { display: grid; gap: 0; padding: 0 1rem; }
.text-field-row { display: grid; grid-template-columns: minmax(180px, 0.55fr) minmax(260px, 1.45fr) auto; align-items: center; gap: 0.8rem; padding: 0.85rem 0; border-bottom: 1px solid var(--hairline); }
.text-field-row:last-child { border-bottom: 0; }
.text-field-label strong { display: block; font-size: 0.8rem; }
.text-field-label span { color: var(--muted); font-size: 0.68rem; }
.text-field-row input,
.text-field-row textarea { width: 100%; min-height: 42px; padding: 0.55rem 0.65rem; border: 1px solid var(--border); border-radius: 8px; color: var(--text); font: inherit; }
.text-field-row textarea { min-height: 74px; resize: vertical; }
.text-field-row.is-modified .text-field-label::before { content: 'שונה'; display: inline-flex; margin-inline-end: 0.4rem; padding: 0.15rem 0.38rem; border-radius: 999px; background: #FBF3E4; color: #765A2F; font-size: 0.62rem; }

.location-card { display: grid; gap: 0.8rem; }
.location-results { overflow: hidden; border: 1px solid var(--hairline); border-radius: 12px; background: var(--panel); }
.location-result { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 48px; padding: 0.65rem 0.8rem; border: 0; border-bottom: 1px solid var(--hairline); background: transparent; color: var(--text); text-align: start; cursor: pointer; }
.location-result:last-child { border-bottom: 0; }
.location-result:hover { background: var(--bg); }
.location-result span { color: var(--muted); font-size: 0.73rem; }
.location-selected { padding: 0.9rem 1rem; border: 1px solid #D8E0D0; border-radius: 12px; background: #F1F5EC; color: #4D6140; }
.source-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.7rem; }
.source-card { padding: 0.8rem; border: 1px solid var(--hairline); border-radius: 12px; background: var(--bg); }
.source-card strong { display: block; font-size: 0.8rem; }
.source-card span { display: block; margin-top: 0.2rem; color: var(--muted); font-size: 0.7rem; }

.onboarding-layer { position: fixed; z-index: 300; inset: 0; overflow-y: auto; padding: 2rem; background: var(--bg); }
.onboarding-shell { width: min(980px, 100%); min-height: calc(100vh - 4rem); margin: 0 auto; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--hairline); border-radius: 24px; background: var(--panel); box-shadow: 0 24px 80px rgba(36,31,26,0.14); }
.onboarding-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--hairline); }
.onboarding-header-actions { display: flex; align-items: center; gap: 1rem; }
.onboarding-header span { color: var(--accent); font-size: 0.72rem; font-weight: 600; }
.onboarding-header h1 { margin: 0.1rem 0 0; font-size: 1.45rem; }
.onboarding-progress { display: flex; gap: 0.4rem; }
.onboarding-progress span { width: 28px; height: 5px; border-radius: 999px; background: var(--border); }
.onboarding-progress span.is-complete,
.onboarding-progress span.is-current { background: var(--accent); }
.onboarding-content { flex: 1; padding: 2rem; }
.onboarding-step { max-width: 700px; margin: 0 auto; }
.onboarding-step h2 { margin: 0; color: var(--text); font-size: 1.65rem; }
.onboarding-step > p { margin: 0.5rem 0 1.5rem; color: var(--muted); }
.onboarding-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.6rem; border-top: 1px solid var(--hairline); }
.onboarding-actions button { min-height: 44px; padding: 0.65rem 1.1rem; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); color: var(--muted); cursor: pointer; }
.onboarding-actions .is-primary { border-color: var(--accent); background: var(--accent); color: #fff; }
.onboarding-minyanim { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }
.onboarding-minyan-card { padding: 1rem; border: 1px solid var(--hairline); border-radius: 14px; background: var(--bg); }
.onboarding-minyan-card input { width: 100%; min-height: 44px; margin-top: 0.5rem; padding: 0.55rem; border: 1px solid var(--border); border-radius: 8px; font: inherit; }

/* ---------- Mobile navigation ---------- */

.mobile-bottom-nav { display: none; }

.dashboard-attention { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid #E6D09A; border-radius: 14px; background: #FBF3E4; color: #765A2F; }
.dashboard-attention strong { font-size: 0.84rem; }
.dashboard-attention ul { margin: 0.25rem 0 0; padding-inline-start: 1.1rem; font-size: 0.76rem; }

@media (max-width: 1050px) {
  .settings-preview-grid { grid-template-columns: 1fr; }
  .settings-preview-grid .preview-panel { position: relative; top: auto; }
  .product-row { grid-template-columns: minmax(180px, 1fr) minmax(120px, 0.65fr) minmax(150px, 0.8fr); }
  .product-row-actions { grid-column: 1 / -1; }
  .dedication-link-card { grid-template-columns: 1fr; }
  .announcement-row { grid-template-columns: 70px minmax(220px, 1fr) minmax(140px, 0.6fr) auto; }
  .announcement-row .product-row-actions { grid-column: auto; }
  .announcement-row > :nth-child(4) { display: none; }
}

@media (max-width: 900px) {
  .product-toolbar { align-items: stretch; flex-direction: column; }
  .toolbar-search { max-width: none; }
  .master-detail { grid-template-columns: 1fr; }
  .master-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .master-item { border-inline-end: 1px solid var(--hairline); }
  .preview-panel { position: relative; top: auto; }
  .shabbat-overview { grid-template-columns: 1fr; }
  .dedication-link-card { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .admin-workspace { padding-bottom: 78px; }
  .mobile-bottom-nav {
    position: fixed; z-index: 80; inset-inline: 0; bottom: 0; height: 68px; display: grid; grid-template-columns: repeat(4, 1fr); padding: 0.35rem 0.5rem max(0.35rem, env(safe-area-inset-bottom)); border-top: 1px solid var(--hairline); background: rgba(255,255,255,0.97); box-shadow: 0 -8px 24px rgba(36,31,26,0.08);
  }
  .app-view.sidebar-open .mobile-bottom-nav { visibility: hidden; opacity: 0; pointer-events: none; }
  .mobile-bottom-nav button { min-height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.15rem; border: 0; border-radius: 9px; background: transparent; color: var(--muted); cursor: pointer; font-size: 0.66rem; }
  .mobile-bottom-nav button.is-active { background: rgba(119,51,65,0.08); color: var(--accent); }
  .mobile-bottom-nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }

  .admin-drawer { width: 100%; }
  .onboarding-header { align-items: flex-start; }
  .onboarding-header-actions { align-items: flex-end; flex-direction: column; }
  .mobile-menu-btn { width: 44px; height: 44px; }
  .topbar-preview { display: none !important; }
  .dashboard-link,
  .dashboard-card button.dashboard-link,
  .sidebar-logout,
  .text-button,
  .preview-links a,
  .preview-links button { min-height: 44px; display: inline-flex; align-items: center; }
  .drawer-header { padding: 0.9rem 1rem; }
  .drawer-body { padding: 1rem; padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .drawer-actions { bottom: 0; margin: 0 -1rem -1rem; padding: 0.8rem 1rem max(0.8rem, env(safe-area-inset-bottom)); }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.is-full { grid-column: 1; }
  .radio-card-grid { grid-template-columns: 1fr; }
  .product-days { grid-template-columns: repeat(4, 1fr); }

  .product-row,
  .announcement-row { display: flex; align-items: stretch; flex-direction: column; gap: 0.65rem; padding: 1rem; }
  .product-row-time { text-align: right; }
  .product-row-actions { justify-content: stretch; }
  .product-row-actions .text-button { flex: 1; min-height: 44px; }
  .announcement-row > :nth-child(4) { display: block; }
  .announcement-thumb,
  .announcement-placeholder { width: 100%; height: 120px; }
  .toolbar-controls { align-items: stretch; flex-direction: column; }
  .section-heading, .dedication-link-card form { align-items: stretch; flex-direction: column; }
  .toolbar-sort select { width: 100%; }
  .filter-chips { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 0.15rem; }
  .filter-chip { white-space: nowrap; min-height: 44px; }

  .gallery-product-grid { grid-template-columns: 1fr; }
  .master-list { grid-template-columns: 1fr; }
  .settings-preview-grid { grid-template-columns: 1fr; }
  .text-field-row { grid-template-columns: 1fr; gap: 0.45rem; }
  .source-grid,
  .onboarding-minyanim { grid-template-columns: 1fr; }
  .unsaved-bar { bottom: 76px; align-items: stretch; flex-direction: column; }
  .unsaved-actions button { flex: 1; min-height: 44px; }
  .onboarding-layer { padding: 0; }
  .onboarding-shell { min-height: 100vh; border: 0; border-radius: 0; }
  .onboarding-header,
  .onboarding-content,
  .onboarding-actions { padding-inline: 1rem; }
  .onboarding-header { align-items: flex-start; flex-direction: column; }
  .modal-actions button { flex: 1; min-width: 120px; }
  .toast-region { bottom: 82px; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-drawer { animation: none; }
  .upload-progress span,
  .toggle-control span,
  .toggle-control span::after { transition: none; }
}
