/* ===== Layout & Cards (same as items) ===== */
.em-top-layout{ display:grid; grid-template-columns:minmax(560px,1fr) minmax(400px,.9fr); gap:14px; align-items:start; }
@media (max-width:1100px){ .em-top-layout{ grid-template-columns:1fr; } }
.em-card.big{ background:#fff; border:1px solid #eef2f7; border-radius:14px; box-shadow:0 1px 2px rgba(0,0,0,.02); }
.em-card.em-compact{ padding:14px; }
.em-card .em-card-title{ font-size:16px; font-weight:600; margin-bottom:12px; }
.em-card-actions{ display:flex; justify-content:flex-end; margin:6px 0 8px; }

/* ===== Form fields ===== */
.em-form .mimamenu-select,
.em-form input[type="text"],
.em-form input[type="number"],
.em-form textarea{
  color:#0f172a; background:#fff; border:1px solid #cbd5e1; border-radius:10px; padding:9px 10px; width:100%;
}
.em-form textarea{ min-height:110px; resize:vertical; }
.em-form input:focus, .em-form textarea:focus, .em-form select:focus{
  outline:0; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.15);
}
.em-fieldgrid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
@media (max-width:1100px){ .em-fieldgrid-2{ grid-template-columns:1fr; } }
.em-field{ display:flex; flex-direction:column; gap:6px; }
.em-field > label{ font-size:12px; color:#6b7280; }
.em-actions-row{ margin-top:18px; display:flex; gap:8px; align-items:center; }

/* ===== Buttons ===== */
.em-btn{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:10px; border:1px solid transparent; cursor:pointer; text-decoration:none; }
.em-btn-green{ background:#10b981; color:#fff; }
.em-btn-primary{ background:#3b82f6; color:#fff; }
.em-btn-ghost{ background:#fff; color:#334155; border-color:#e5e7eb; }
.em-btn-sm{ padding:5px 9px; border-radius:8px; border:1px solid #e5e7eb; text-decoration:none; }
.em-blue{ background:#e0f2fe; color:#0ea5e9; }
.em-red{ background:#fee2e2; color:#ef4444; }
.em-btn[disabled]{ opacity:.55; cursor:not-allowed; }

/* ===== Image & Options ===== */
.em-io-grid{ display:grid; grid-template-columns:1fr 360px; gap:14px; align-items:stretch; }
@media (max-width:1100px){ .em-io-grid{ grid-template-columns:1fr; } }
.em-io-left{ display:flex; flex-direction:column; gap:12px; }
.em-io-preview{ display:flex; }
.em-io-frame{
  border:2px dashed #cbd5e1; border-radius:12px;
  width:100%; min-height:180px;
  display:flex; align-items:center; justify-content:center;
  background:#fafafa; position:relative; cursor:pointer; overflow:hidden;
}
.em-io-frame img{ width:100%; height:auto; object-fit:cover; border-radius:10px; transition:transform .25s ease; z-index:1; position:relative; }
.em-io-frame:hover img{ transform:scale(1.02); }
/* overlay below remove button */
.em-io-overlay{ position:absolute; inset:0; border-radius:12px; background:rgba(0,0,0,.06); opacity:0; transition:.2s; z-index:2; pointer-events:none; }
.em-io-hover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:600; color:#111827; background:rgba(255,255,255,.6); border-radius:12px; text-align:center; padding:6px 10px; opacity:0; transition:.2s; z-index:2; pointer-events:none; }
.em-io-frame:hover .em-io-hover, .em-io-frame:hover .em-io-overlay{ opacity:1; }
.em-io-placeholder{ color:#94a3b8; font-weight:600; }
/* X must stay on top */
.em-img-remove{ position:absolute; top:8px; right:8px; width:28px; height:28px; border-radius:999px; border:none; background:#ef4444; color:#fff; font-weight:700; line-height:28px; text-align:center; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.15); z-index:5; }

/* ===== Filter box (same look as items) ===== */
.em-filterbox{ border:1px solid #eef2f7; background:#fafcff; border-radius:12px; padding:10px 12px; margin:6px 0 12px; }
.em-filterbox__title{ font-weight:600; margin-bottom:6px; font-size:13px; color:#334155; }
.em-filterbox__grid{ display:grid; grid-template-columns:260px 160px minmax(220px,1fr); gap:10px 12px; align-items:center; }
.em-filter-tight .em-field > label{ display:none; }
.em-search{ max-width:320px; }

/* ===== Table ===== */
.em-table{ table-layout:fixed; width:100%; border-collapse:separate; border-spacing:0; }
.em-table thead th{ position:sticky; top:0; background:#fff; z-index:2; border-bottom:1px solid #eef2f7; }
#emCatsTable td, #emCatsTable th{ padding:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }
#emCatsTable tbody tr{ border-top:1px solid #f3f4f6; }
#emCatsTable tbody tr:hover{ background:#fcfcff; }
.drag-handle{ cursor:move; opacity:.6; font-weight:700; }

/* ===== Switch (like items) ===== */
.switch{ position:relative; display:inline-block; width:46px; height:24px; vertical-align:middle; transform:translateY(1px); }
.switch input{ display:none; }
.switch .slider{ position:absolute; inset:0; background:#cbd5e1; border-radius:999px; transition:.25s; }
.switch .slider:before{ content:""; position:absolute; left:3px; bottom:3px; width:18px; height:18px; background:#fff; border-radius:50%; transition:.25s; }
.switch input:checked + .slider{ background:#22c55e; }
.switch input:checked + .slider:before{ transform:translateX(22px); }
.switch.small{ width:38px; height:20px; }
.switch.small .slider:before{ width:14px; height:14px; bottom:3px; left:3px; }
.switch.small input:checked + .slider:before{ transform:translateX(18px); }

/* ===== Toast ===== */
.em-toast{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%) translateY(20px); background:#111827; color:#fff; padding:10px 14px; border-radius:10px; opacity:0; box-shadow:0 6px 20px rgba(0,0,0,.2); transition:.25s; z-index:99999; font-size:13px; }
.em-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.em-toast.bad{ background:#dc2626; }


/* Bulk actions */
body[class*="mimamenu_categories"] .em-cats-bulkbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  margin:10px 0 12px;
  border:1px solid #eef2f7;
  border-radius:12px;
  background:#fff;
}
body[class*="mimamenu_categories"] .em-bulk-left,
body[class*="mimamenu_categories"] .em-bulk-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
body[class*="mimamenu_categories"] .em-bulk-selectall{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  color:#1f2937;
}
body[class*="mimamenu_categories"] .em-check-col{
  width:38px;
  text-align:center;
}
body[class*="mimamenu_categories"] .em-check-col input[type="checkbox"]{
  margin:0;
}
@media (max-width: 782px){
  body[class*="mimamenu_categories"] .em-cats-bulkbar,
  body[class*="mimamenu_categories"] .em-bulk-left,
  body[class*="mimamenu_categories"] .em-bulk-actions{
    align-items:stretch;
    flex-direction:column;
  }
  body[class*="mimamenu_categories"] .em-bulk-actions .em-btn{
    width:100%;
    justify-content:center;
  }
}

body[class*="mimamenu_categories"] .em-bulk-actions .em-btn:not([disabled]){
  box-shadow:0 0 0 3px rgba(59,130,246,.10), 0 8px 18px rgba(59,130,246,.08);
}
body[class*="mimamenu_categories"] .em-bulk-actions .em-btn:not([disabled]):hover{
  box-shadow:0 0 0 4px rgba(59,130,246,.14), 0 10px 22px rgba(59,130,246,.12);
}

/* Make category bulk delete button consistent with Items bulk delete button */
body[class*="mimamenu_categories"] .em-btn-danger{
  background:#ef4444;
  color:#fff;
  border-color:#ef4444;
  font-weight:700;
}
body[class*="mimamenu_categories"] .em-btn-danger:hover:not([disabled]){
  background:#dc2626;
  border-color:#dc2626;
  color:#fff;
}
body[class*="mimamenu_categories"] .em-btn-danger[disabled]{
  background:#fca5a5;
  border-color:#fca5a5;
  color:#fff;
  opacity:.75;
  box-shadow:none;
}

/* Icon action buttons */
body[class*="mimamenu_categories"] .em-actions-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
}
body[class*="mimamenu_categories"] .em-btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  padding:0;
  border-radius:10px;
  border:1px solid #dbeafe;
  background:#e0f2fe;
  color:#1d4ed8;
  text-decoration:none;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(37,99,235,.08);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
body[class*="mimamenu_categories"] .em-btn-icon:hover{
  filter:brightness(.98);
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(37,99,235,.14);
}
body[class*="mimamenu_categories"] .em-btn-icon.em-purple{
  border-color:#ddd6fe;
  background:#f3e8ff;
  color:#7e22ce;
}
body[class*="mimamenu_categories"] .em-btn-icon.em-red{
  border-color:#fecaca;
  background:#fee2e2;
  color:#b91c1c;
}
body[class*="mimamenu_categories"] .em-btn-icon .dashicons{font-size:18px;width:18px;height:18px;line-height:18px;}

/* Unified page primary CTA buttons */
body[class*="mimamenu_items"] #em-add-item.em-btn.em-btn-primary,
body[class*="mimamenu_categories"] #em-add-category.em-btn.em-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .01em;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(37, 99, 235, .18), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

body[class*="mimamenu_items"] #em-add-item.em-btn.em-btn-primary:hover,
body[class*="mimamenu_categories"] #em-add-category.em-btn.em-btn-primary:hover {
  color: #ffffff;
  filter: brightness(1.02);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(37, 99, 235, .24), inset 0 1px 0 rgba(255,255,255,.2);
}

body[class*="mimamenu_items"] #em-add-item.em-btn.em-btn-primary:focus,
body[class*="mimamenu_categories"] #em-add-category.em-btn.em-btn-primary:focus {
  outline: none;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, .18), 0 14px 28px rgba(37, 99, 235, .22);
}

body[class*="mimamenu_items"] #em-add-item.em-btn.em-btn-primary:active,
body[class*="mimamenu_categories"] #em-add-category.em-btn.em-btn-primary:active {
  transform: translateY(0);
}

body[class*="mimamenu_items"] .em-card-actions-items,
body[class*="mimamenu_categories"] .em-card-actions {
  align-items: center;
}

@media (max-width: 782px) {
  body[class*="mimamenu_items"] #em-add-item.em-btn.em-btn-primary,
  body[class*="mimamenu_categories"] #em-add-category.em-btn.em-btn-primary {
    width: 100%;
    min-height: 46px;
  }
}

/* Clean empty state for Categories, aligned with Items list */
body[class*="mimamenu_categories"] .em-list-empty .em-empty-line{
  padding:44px 16px;
  text-align:center;
  color:#64748b;
  font-size:14px;
  letter-spacing:.2px;
}
body[class*="mimamenu_categories"] .em-filterbox select:disabled,
body[class*="mimamenu_categories"] .em-filterbox input:disabled{
  opacity:.55;
  cursor:not-allowed;
  background:#f8fafc;
}
body[class*="mimamenu_categories"] .em-filterbox .switch input:disabled + .slider{
  opacity:.7;
  cursor:not-allowed;
}

/* Categories filters: match Items filter layout exactly */
body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
  display: grid;
  grid-template-columns: minmax(220px, 300px) auto minmax(220px, 320px);
  align-items: center;
  gap: 8px 10px;
}
body[class*="mimamenu_categories"] .em-inline-field {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
body[class*="mimamenu_categories"] .em-inline-field .mimamenu-select,
body[class*="mimamenu_categories"] .em-inline-field input[type="text"] {
  flex: 1;
  min-height: 36px;
  min-width: 120px;
}
body[class*="mimamenu_categories"] .em-inline-field .switch {
  flex: 0 0 auto;
}
body[class*="mimamenu_categories"] .em-switchtext {
  margin-left: 6px;
  font-size: 12.5px;
  color: #6b7280;
  font-weight: 600;
  white-space: nowrap;
}
@media (max-width: 1200px) {
  body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 782px) {
  body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
    grid-template-columns: 1fr;
  }
}

/* Final alignment: make Categories filters behave exactly like Items filters */
body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
  display: grid;
  grid-template-columns: minmax(220px, 300px) auto auto minmax(220px, 320px);
  align-items: center;
  gap: 8px 10px;
}
body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline .em-inline-field:nth-child(3) {
  grid-column: 4;
}
body[class*="mimamenu_categories"] .em-filterbox select:disabled,
body[class*="mimamenu_categories"] .em-filterbox input:disabled,
body[class*="mimamenu_items"] .em-filterbox select:disabled,
body[class*="mimamenu_items"] .em-filterbox input:disabled {
  opacity: 1;
  cursor: not-allowed;
  color: #94a3b8;
  -webkit-text-fill-color: #94a3b8;
  background-color: #fff;
  border-color: #e5e7eb;
  box-shadow: none;
}
body[class*="mimamenu_categories"] .em-filterbox input:disabled::placeholder,
body[class*="mimamenu_items"] .em-filterbox input:disabled::placeholder {
  color: #94a3b8;
  opacity: 1;
}
body[class*="mimamenu_categories"] .em-filterbox .switch,
body[class*="mimamenu_categories"] .em-filterbox .switch .slider,
body[class*="mimamenu_items"] .em-filterbox .switch,
body[class*="mimamenu_items"] .em-filterbox .switch .slider {
  cursor: pointer;
}
body[class*="mimamenu_categories"] .em-filterbox .switch input:disabled + .slider,
body[class*="mimamenu_items"] .em-filterbox .switch input:disabled + .slider {
  opacity: 1;
  cursor: not-allowed;
  background: #cbd5e1;
}
body[class*="mimamenu_categories"] .em-filterbox .switch:has(input:disabled),
body[class*="mimamenu_items"] .em-filterbox .switch:has(input:disabled) {
  cursor: not-allowed;
}
body[class*="mimamenu_categories"] .em-filterbox .em-switchtext,
body[class*="mimamenu_items"] .em-filterbox .em-switchtext {
  cursor: default;
}
@media (max-width: 1200px) {
  body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
    grid-template-columns: 1fr 1fr;
  }
  body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline .em-inline-field:nth-child(3) {
    grid-column: auto;
  }
}
@media (max-width: 782px) {
  body[class*="mimamenu_categories"] .em-filterbox__grid.em-filters-inline {
    grid-template-columns: 1fr;
  }
}
