/* =============================================================================
 *  Project:  Restauracja Demo (RestoOrder)
 *  File:     assets/css/admin.css
 *  Function: Light admin theme (dashboard.php only). Pastel container surfaces
 *            — a different hue per section and per admin page — with near-black
 *            text for maximum legibility. The public site stays dark.
 *            Loaded only when $context === 'admin'; body carries .admin-theme.
 *  Version:  1.0.0  Build: 2026.07.11.1600
 * ========================================================================== */

body.admin-theme {
  /* --- ink + neutrals ---------------------------------------------------- */
  --adm-ink: #12141a;          /* near-black body text */
  --adm-ink-soft: #4a5163;     /* muted text, still AA on every pastel below */
  --adm-line: #dde2ec;
  --adm-bg: #f4f6fb;
  --adm-white: #ffffff;

  /* --- pastel surfaces --------------------------------------------------- */
  --pastel-mint: #e6f6ee;   --pastel-mint-line: #b9dfcb;
  --pastel-sky: #e5f0fc;    --pastel-sky-line: #b6d6f1;
  --pastel-lav: #eee9fc;    --pastel-lav-line: #d2c7f2;
  --pastel-peach: #fdeee2;  --pastel-peach-line: #f4d0b5;
  --pastel-lemon: #faf3d9;  --pastel-lemon-line: #ead9a0;
  --pastel-rose: #fde9ef;   --pastel-rose-line: #f3c4d1;
  --pastel-teal: #e2f4f4;   --pastel-teal-line: #b3e0e0;

  /* accent of the current page (overridden per data-page below) */
  --adm-accent: var(--pastel-sky);
  --adm-accent-line: var(--pastel-sky-line);

  /* --- Bootstrap tokens --------------------------------------------------- */
  --bs-body-bg: var(--adm-bg);
  --bs-body-color: var(--adm-ink);
  --bs-emphasis-color: var(--adm-ink);
  --bs-heading-color: var(--adm-ink);
  --bs-secondary-color: var(--adm-ink-soft);
  --bs-tertiary-bg: var(--adm-white);
  --bs-border-color: var(--adm-line);
  --bs-link-color: #1d4f8f;
  --bs-link-hover-color: #143a6b;

  background: var(--adm-bg) !important;
  color: var(--adm-ink);
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* Per-page accent: every admin screen gets its own pastel identity. */
body.admin-theme[data-page='dashboard']         { --adm-accent: var(--pastel-sky);   --adm-accent-line: var(--pastel-sky-line); }
body.admin-theme[data-page='login']             { --adm-accent: var(--pastel-sky);   --adm-accent-line: var(--pastel-sky-line); }
body.admin-theme[data-page='admin-orders']      { --adm-accent: var(--pastel-sky);   --adm-accent-line: var(--pastel-sky-line); }
body.admin-theme[data-page='admin-products']    { --adm-accent: var(--pastel-mint);  --adm-accent-line: var(--pastel-mint-line); }
body.admin-theme[data-page='admin-categories']  { --adm-accent: var(--pastel-lav);   --adm-accent-line: var(--pastel-lav-line); }
body.admin-theme[data-page='admin-ingredients'] { --adm-accent: var(--pastel-peach); --adm-accent-line: var(--pastel-peach-line); }
body.admin-theme[data-page='admin-allergens']   { --adm-accent: var(--pastel-lemon); --adm-accent-line: var(--pastel-lemon-line); }
body.admin-theme[data-page='admin-coupons']     { --adm-accent: var(--pastel-rose);  --adm-accent-line: var(--pastel-rose-line); }
body.admin-theme[data-page='admin-reports']     { --adm-accent: var(--pastel-teal);  --adm-accent-line: var(--pastel-teal-line); }
body.admin-theme[data-page='admin-groups']      { --adm-accent: var(--pastel-lav);   --adm-accent-line: var(--pastel-lav-line); }
body.admin-theme[data-page='admin-users']       { --adm-accent: var(--pastel-peach); --adm-accent-line: var(--pastel-peach-line); }

/* --- typography ----------------------------------------------------------- */
.admin-theme h1, .admin-theme h2, .admin-theme h3,
.admin-theme .h1, .admin-theme .h2, .admin-theme .h3,
.admin-theme .h4, .admin-theme .h5, .admin-theme .h6 {
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--adm-ink);
  letter-spacing: -.01em;
  font-weight: 600;
}
.admin-theme .text-muted { color: var(--adm-ink-soft) !important; }
.admin-theme code { color: #7a2048; background: #fff; padding: .05rem .3rem; border-radius: .25rem; }

/* --- top navigation ------------------------------------------------------- */
.admin-theme .resto-navbar {
  background: var(--adm-white) !important;
  border-bottom: 1px solid var(--adm-line);
  box-shadow: 0 1px 3px rgba(18, 20, 26, .06);
  backdrop-filter: none;
}
.admin-theme .resto-navbar .navbar-brand,
.admin-theme .resto-brand {
  color: var(--adm-ink) !important;
  font-family: 'Inter', system-ui, sans-serif;
  font-weight: 700;
}
.admin-theme .resto-navbar .nav-link,
.admin-theme .navbar-text { color: var(--adm-ink) !important; }
.admin-theme .resto-navbar .nav-link:hover,
.admin-theme .resto-navbar .nav-link:focus-visible {
  background: var(--adm-accent);
  border-radius: .5rem;
  color: #000 !important;
}

/* --- breadcrumbs ---------------------------------------------------------- */
.admin-theme .breadcrumb { background: transparent; }
.admin-theme .breadcrumb-item,
.admin-theme .breadcrumb-item + .breadcrumb-item::before { color: var(--adm-ink-soft); }
.admin-theme .breadcrumb-item a { color: #1d4f8f; }

/* --- cards: pastel container surfaces ------------------------------------- */
.admin-theme .card {
  background: var(--adm-accent);
  border: 1px solid var(--adm-accent-line);
  border-radius: 14px;
  color: var(--adm-ink);
  box-shadow: 0 1px 2px rgba(18, 20, 26, .05);
}
.admin-theme .card-body { color: var(--adm-ink); }

/* Tiles inside a grid rotate through the palette, so neighbouring boxes
   (KPIs, counters, filters) are always visually separable. */
.admin-theme .row > [class*='col-']:nth-child(6n + 1) > .card { background: var(--pastel-mint);  border-color: var(--pastel-mint-line); }
.admin-theme .row > [class*='col-']:nth-child(6n + 2) > .card { background: var(--pastel-sky);   border-color: var(--pastel-sky-line); }
.admin-theme .row > [class*='col-']:nth-child(6n + 3) > .card { background: var(--pastel-lav);   border-color: var(--pastel-lav-line); }
.admin-theme .row > [class*='col-']:nth-child(6n + 4) > .card { background: var(--pastel-peach); border-color: var(--pastel-peach-line); }
.admin-theme .row > [class*='col-']:nth-child(6n + 5) > .card { background: var(--pastel-lemon); border-color: var(--pastel-lemon-line); }
.admin-theme .row > [class*='col-']:nth-child(6n + 6) > .card { background: var(--pastel-teal);  border-color: var(--pastel-teal-line); }

/* --- data tables: white sheet inside a pastel page ------------------------ */
.admin-theme .table-responsive {
  background: var(--adm-white);
  border: 1px solid var(--adm-line);
  border-radius: 12px;
  padding: .25rem .5rem;
}
.admin-theme .table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--adm-ink);
  --bs-table-border-color: var(--adm-line);
  --bs-table-striped-bg: #f7f9fc;
  --bs-table-striped-color: var(--adm-ink);
  --bs-table-hover-bg: var(--adm-accent);
  --bs-table-hover-color: var(--adm-ink);
  color: var(--adm-ink);
  margin-bottom: .25rem;
}
.admin-theme .table > thead th {
  background: var(--adm-accent);
  color: var(--adm-ink);
  border-bottom: 2px solid var(--adm-accent-line);
  font-weight: 600;
  white-space: nowrap;
}
.admin-theme .table > tbody > tr > td { border-color: #eef1f6; }

/* --- lists ---------------------------------------------------------------- */
.admin-theme .list-group { border-radius: 12px; overflow: hidden; }
.admin-theme .list-group-item {
  background: var(--adm-white);
  color: var(--adm-ink);
  border-color: var(--adm-line);
}
.admin-theme .list-group-item:nth-child(even) { background: #f8fafd; }

/* --- forms ---------------------------------------------------------------- */
.admin-theme .form-label { color: var(--adm-ink); font-weight: 500; }
.admin-theme .form-control,
.admin-theme .form-select {
  background: var(--adm-white);
  color: var(--adm-ink);
  border-color: #c6cddb;
}
.admin-theme .form-control::placeholder { color: #7c8496; }
.admin-theme .form-control:focus,
.admin-theme .form-select:focus {
  border-color: #4d76ab;
  box-shadow: 0 0 0 .2rem rgba(77, 118, 171, .25);
}
.admin-theme .form-check-input { background-color: var(--adm-white); border-color: #9aa4b8; }
.admin-theme .form-check-input:checked { background-color: #2c3a5a; border-color: #2c3a5a; }
.admin-theme .input-group-text { background: var(--adm-accent); color: var(--adm-ink); border-color: #c6cddb; }

/* --- buttons -------------------------------------------------------------- */
.admin-theme .btn-primary {
  --bs-btn-bg: #2c3a5a;
  --bs-btn-border-color: #2c3a5a;
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: #1f2b45;
  --bs-btn-hover-border-color: #1f2b45;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #162034;
}
.admin-theme .btn-outline-primary {
  --bs-btn-color: #22304d;
  --bs-btn-border-color: #8494b5;
  --bs-btn-hover-bg: var(--pastel-sky);
  --bs-btn-hover-color: #12141a;
  --bs-btn-hover-border-color: #4d76ab;
}
.admin-theme .btn-outline-secondary {
  --bs-btn-color: var(--adm-ink);
  --bs-btn-border-color: #a4adbf;
  --bs-btn-hover-bg: #eef1f6;
  --bs-btn-hover-color: var(--adm-ink);
  --bs-btn-hover-border-color: #6f7a90;
}
.admin-theme .btn-outline-danger {
  --bs-btn-color: #8a1f2f;
  --bs-btn-border-color: #dfa4ae;
  --bs-btn-hover-bg: var(--pastel-rose);
  --bs-btn-hover-color: #6d1826;
  --bs-btn-hover-border-color: #c2697c;
}
.admin-theme .btn-link { color: #1d4f8f; }

/* --- badges: pastel chips with near-black text ---------------------------- */
.admin-theme .badge { font-weight: 600; border: 1px solid transparent; }
.admin-theme .badge.text-bg-primary   { background: var(--pastel-sky) !important;   color: var(--adm-ink) !important;  border-color: var(--pastel-sky-line); }
.admin-theme .badge.text-bg-success   { background: var(--pastel-mint) !important;  color: #10331f !important;         border-color: var(--pastel-mint-line); }
.admin-theme .badge.text-bg-secondary { background: #eceff5 !important;             color: var(--adm-ink) !important;  border-color: var(--adm-line); }
.admin-theme .badge.text-bg-warning   { background: var(--pastel-lemon) !important; color: #3d3210 !important;         border-color: var(--pastel-lemon-line); }
.admin-theme .badge.text-bg-danger    { background: var(--pastel-rose) !important;  color: #5d1220 !important;         border-color: var(--pastel-rose-line); }
.admin-theme .badge.text-bg-info      { background: var(--pastel-teal) !important;  color: #0f3333 !important;         border-color: var(--pastel-teal-line); }
.admin-theme .badge.text-bg-light     { background: #f1f3f8 !important;             color: var(--adm-ink) !important;  border-color: var(--adm-line); }
.admin-theme .badge.text-bg-dark      { background: #dfe3ec !important;             color: var(--adm-ink) !important;  border-color: #c3cad8; }

/* --- alerts ---------------------------------------------------------------- */
.admin-theme .alert { border-radius: 12px; color: var(--adm-ink); }
.admin-theme .alert-info    { background: var(--pastel-sky);   border-color: var(--pastel-sky-line); }
.admin-theme .alert-warning { background: var(--pastel-lemon); border-color: var(--pastel-lemon-line); }
.admin-theme .alert-danger  { background: var(--pastel-rose);  border-color: var(--pastel-rose-line); color: #5d1220; }
.admin-theme .alert-success { background: var(--pastel-mint);  border-color: var(--pastel-mint-line); color: #10331f; }

/* --- footer + bottom nav --------------------------------------------------- */
.admin-theme .resto-footer {
  background: var(--adm-white) !important;
  border-top: 1px solid var(--adm-line);
  color: var(--adm-ink-soft);
}
.admin-theme .resto-footer a { color: #1d4f8f; }
.admin-theme .resto-bottomnav {
  background: var(--adm-white) !important;
  border-top: 1px solid var(--adm-line);
}
.admin-theme .resto-bottomnav a { color: var(--adm-ink) !important; }

/* --- accessibility (WCAG 2.2): focus ring readable on light surfaces ------- */
.admin-theme a:focus-visible,
.admin-theme button:focus-visible,
.admin-theme input:focus-visible,
.admin-theme select:focus-visible,
.admin-theme textarea:focus-visible,
.admin-theme [tabindex]:focus-visible {
  outline: 3px solid #1f2937;
  outline-offset: 2px;
}
.admin-theme .skip-link {
  background: #2c3a5a;
  color: #fff;
}

/* ===== Zdjęcie dania: dropzone + dialog kadrowania (admin-products) ======== */
.admin-theme .photo-field {
  background: var(--adm-white);
  border: 1px solid var(--adm-accent-line);
  border-radius: 14px;
  padding: 16px;
}
.admin-theme .photo-drop {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--adm-accent);
  border: 2px dashed var(--adm-accent-line);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  color: var(--adm-ink-soft);
  text-align: center;
}
.admin-theme .photo-drop:hover,
.admin-theme .photo-drop.is-over {
  border-color: #2c3a5a;
  background: #eef2f9;
  color: var(--adm-ink);
}
.admin-theme .photo-drop__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-theme .photo-drop__empty {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
  font-size: .875rem;
}
.admin-theme .photo-drop__empty i { font-size: 1.75rem; }

.photo-dialog {
  width: min(58rem, 94vw);
  padding: 0;
  border: none;
  border-radius: 16px;
  background: #ffffff;
  color: #12141a;
}
.photo-dialog::backdrop { background: rgba(12, 14, 20, .62); }
.photo-dialog__head,
.photo-dialog__foot {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  gap: 8px;
}
.photo-dialog__head { justify-content: space-between; border-bottom: 1px solid #dde2ec; }
.photo-dialog__foot { justify-content: flex-end; border-top: 1px solid #dde2ec; }
.photo-dialog__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 250px;
  gap: 16px;
  padding: 16px;
}
.photo-dialog__canvas {
  background: #101015;
  border-radius: 12px;
  overflow: hidden;
  max-height: 60vh;
}
.photo-dialog__canvas img { display: block; max-width: 100%; }
.photo-dialog .btn { min-height: 44px; }

.photo-preview-card {
  border: 1px solid #dde2ec;
  border-radius: 12px;
  overflow: hidden;
  background: #f7f9fc;
}
.photo-preview-card__img { width: 100%; aspect-ratio: 4 / 3; overflow: hidden; }
.photo-preview-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  font-size: .8125rem;
  color: #12141a;
}

@media (max-width: 860px) {
  .photo-dialog__body { grid-template-columns: minmax(0, 1fr); }
  .photo-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }
}

/* ===== Lista dań: pasek wyszukiwania + grupowanie po kategoriach ========== */
.admin-theme .product-toolbar {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--adm-white);
  border: 1px solid var(--adm-accent-line);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
}
.admin-theme .product-toolbar__row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-start;
}
.admin-theme .product-toolbar__field { flex: 1 1 20rem; min-width: 14rem; }
.admin-theme .product-toolbar__field--narrow { flex: 0 1 12rem; }
.admin-theme .product-toolbar__actions {
  display: flex;
  gap: 6px;
  align-items: center;
  padding-top: 1.65rem;
}
.admin-theme .product-toolbar__count { color: var(--adm-ink-soft); margin-top: 6px; }

.admin-theme .product-group {
  background: var(--adm-white);
  border: 1px solid var(--adm-accent-line);
  border-radius: 14px;
  margin-bottom: 16px;
  overflow: hidden;
}
.admin-theme .product-group__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 16px;
  background: var(--adm-accent);
  border-bottom: 1px solid var(--adm-accent-line);
}
.admin-theme .product-group table { margin-bottom: 0; }
.admin-theme .product-group tbody tr:last-child td { border-bottom: 0; }

.admin-theme .product-row__thumb {
  width: 64px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.admin-theme .product-row__thumb--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--adm-accent);
  color: var(--adm-ink-soft);
  font-weight: 600;
}
.admin-theme .product-row__desc { max-width: 42rem; }
.admin-theme .product-row__match { color: #2c3a5a; }

@media (max-width: 720px) {
  .admin-theme .product-toolbar { position: static; }
  .admin-theme .product-toolbar__actions { padding-top: 0; }
}
