/* Legacy module nav — sidebar overrides in design-system.css */
.mod-btn:not(.mm-sidebar__nav .mod-btn) {
  font-size: 0.75rem;
  padding: 0.375rem 0.75rem;
  border-radius: 0.5rem;
  background: #15803d;
  color: #dcfce7;
  transition: background 0.15s;
  border: none;
  cursor: pointer;
}
.mod-active:not(.mm-sidebar__nav .mod-btn) { background: #22c55e !important; color: white !important; font-weight: 600; }
.tab-active { border-bottom: none; }
.adm-active { background: #16a34a !important; color: white !important; border-color: #16a34a !important; font-weight: 600; }

/* Admin panel */
.admin-shell { display: flex; flex-direction: column; gap: 1rem; }
.admin-tabs-bar {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  padding: 0.75rem; background: #fff; border: 1px solid #e2e8f0;
  border-radius: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.adm-tab {
  font-size: 0.8125rem; padding: 0.5rem 0.875rem; border-radius: 0.625rem;
  border: 1px solid #e2e8f0; background: #f8fafc; color: #334155;
  cursor: pointer; transition: all 0.15s;
}
.adm-tab:hover { background: #ecfdf5; border-color: #86efac; color: #166534; }
.admin-panels { width: 100%; }
.admin-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem;
  padding: 1.25rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  max-width: 960px;
}
.admin-card-wide { max-width: 1100px; }
.admin-card-scroll { max-height: 680px; overflow: auto; }
.admin-form { display: flex; flex-direction: column; gap: 1.25rem; }
.admin-section {
  border: 1px solid #e2e8f0; border-radius: 0.875rem; overflow: hidden; background: #fafafa;
}
.admin-section-sunat { border-color: #fde68a; background: #fffbeb; }
.admin-section-danger { border-color: #fecaca; }
.admin-section-head {
  padding: 0.875rem 1rem; border-bottom: 1px solid #e2e8f0; background: #fff;
}
.admin-section-sunat .admin-section-head { background: #fffbeb; border-color: #fde68a; }
.admin-section-title { font-weight: 700; color: #166534; font-size: 0.9375rem; }
.admin-section-sunat .admin-section-title { color: #92400e; }
.admin-section-sub { font-size: 0.75rem; color: #64748b; margin-top: 0.15rem; }
.admin-section-body { padding: 1rem; display: flex; flex-direction: column; gap: 0.875rem; }
.admin-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; }
@media (max-width: 768px) { .admin-grid-2 { grid-template-columns: 1fr; } }
.admin-field { display: flex; flex-direction: column; gap: 0.35rem; }
.admin-label { font-size: 0.75rem; font-weight: 600; color: #475569; }
.admin-input, .admin-textarea {
  width: 100%; border: 1px solid #cbd5e1; border-radius: 0.625rem;
  padding: 0.625rem 0.75rem; font-size: 0.875rem; background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-input:focus, .admin-textarea:focus {
  outline: none; border-color: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,0.15);
}
.admin-textarea { min-height: 4.5rem; resize: vertical; }
.admin-check {
  display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #334155;
}
.admin-hint { font-size: 0.75rem; color: #64748b; }
.admin-hint-box {
  font-size: 0.75rem; color: #475569; padding: 0.75rem; background: #f1f5f9;
  border-radius: 0.625rem; border: 1px solid #e2e8f0;
}
.admin-checklist {
  font-size: 0.75rem; color: #92400e; padding: 0.875rem; background: #fff7ed;
  border: 1px solid #fed7aa; border-radius: 0.625rem;
}
.admin-checklist ul { list-style: disc; margin: 0.5rem 0 0 1.25rem; }
.admin-actions-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.admin-btn {
  font-size: 0.8125rem; font-weight: 600; padding: 0.625rem 1rem;
  border-radius: 0.625rem; border: 1px solid transparent; cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}
.admin-btn:active { transform: scale(0.98); }
.admin-btn-primary { background: #16a34a; color: #fff; }
.admin-btn-primary:hover { background: #15803d; }
.admin-btn-secondary { background: #f1f5f9; color: #334155; border-color: #cbd5e1; }
.admin-btn-outline { background: #fff; color: #166534; border-color: #86efac; }
.admin-btn-outline:hover { background: #ecfdf5; }
.admin-btn-danger-outline { background: #fff; color: #b91c1c; border-color: #fca5a5; }
.admin-btn-danger-outline:hover { background: #fef2f2; }
.admin-upload {
  display: block; text-align: center; padding: 0.75rem; border: 1px dashed #fbbf24;
  border-radius: 0.625rem; color: #92400e; font-size: 0.8125rem; cursor: pointer;
  background: #fffbeb;
}
.admin-upload:hover { background: #fef3c7; }
.admin-form-footer {
  position: sticky; bottom: 0; padding: 1rem 0 0.25rem;
  background: linear-gradient(transparent, #fff 30%);
}
.admin-loading, .admin-error {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.75rem; padding: 3rem 1.5rem; text-align: center; color: #64748b;
}
.admin-error { color: #b91c1c; }
.admin-spinner {
  width: 1.75rem; height: 1.75rem; border: 3px solid #dcfce7;
  border-top-color: #16a34a; border-radius: 50%; animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.admin-sistema-info { font-size: 0.75rem; color: #64748b; padding: 0 0.25rem; }
.app-header { border-bottom: 3px solid #14532d; }
.ds-btn--blocked { opacity: 0.65; cursor: not-allowed; }
.cart-item { animation: fadeIn 0.15s ease-out; }
.product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 0.5rem; }
.catalog-card {
  display: flex; flex-direction: column; align-items: center; gap: 0.35rem;
  padding: 0.5rem; border: 1px solid #e2e8f0; border-radius: 0.75rem; background: #f8fafc;
  cursor: pointer; transition: transform 0.12s, box-shadow 0.12s, border-color 0.12s;
}
.catalog-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); border-color: #86efac; }
.catalog-card img { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 0.5rem; background: #fff; }
.catalog-name { font-size: 0.7rem; font-weight: 600; text-align: center; line-height: 1.2; color: #334155; max-height: 2.4em; overflow: hidden; }
.catalog-price { font-size: 0.75rem; font-weight: 800; color: #15803d; }
.inv-row { cursor: pointer; transition: background 0.12s; }
.inv-row:hover { background: #ecfdf5 !important; }
.search-hit { display: flex; gap: 0.75rem; align-items: center; width: 100%; text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid #f1f5f9; transition: background 0.12s; }
.search-hit:last-child { border-bottom: none; }
.search-hit:hover, .search-hit.active { background: #ecfdf5; }
.search-hit:disabled { opacity: 0.5; cursor: not-allowed; }
.cart-item img, #last-product img { background: #fff; border: 1px solid #e2e8f0; }
@keyframes fadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
#scanner-input:focus { box-shadow: 0 0 0 3px rgba(34,197,94,0.35); }
@media print {
  body * { visibility: hidden; }
  #ticket-print, #ticket-print * { visibility: visible; }
  #ticket-print { position: absolute; left: 0; top: 0; width: 80mm; }
  #turno-print, #turno-print * { visibility: visible; }
  #turno-print { position: absolute; left: 0; top: 0; width: 80mm; }
}

body.touch-mode .catalog-card { min-height: 120px; padding: 0.75rem; }
body.touch-mode .catalog-card img { width: 5.5rem; height: 5.5rem; }
body.touch-mode .cart-item { padding: 0.75rem; }
body.touch-mode .qty-btn, body.touch-mode .rm-btn { min-width: 2.5rem; min-height: 2.5rem; font-size: 1rem; }
body.touch-mode #btn-cobrar { min-height: 3.5rem; font-size: 1.25rem; }
body.touch-mode .tab-btn { padding: 0.5rem 0.75rem; font-size: 0.875rem; }

body.dark-mode { background: var(--mm-bg); color: var(--mm-text); }
body.dark-mode .bg-white { background: var(--mm-surface) !important; color: var(--mm-text); }
body.dark-mode .bg-slate-50, body.dark-mode .bg-slate-100 { background: var(--mm-surface-raised) !important; }
body.dark-mode .border-slate-200, body.dark-mode .border { border-color: var(--mm-border) !important; }
body.dark-mode .text-slate-800, body.dark-mode .text-slate-700 { color: var(--mm-text) !important; }
body.dark-mode .text-slate-500, body.dark-mode .text-slate-400 { color: var(--mm-text-muted) !important; }
body.dark-mode input, body.dark-mode select, body.dark-mode textarea { background: var(--mm-surface); color: var(--mm-text); border-color: var(--mm-border); }
body.dark-mode .catalog-card { background: var(--mm-surface-raised); border-color: var(--mm-border); }
body.dark-mode .search-hit:hover, body.dark-mode .search-hit.active { background: var(--mm-surface-raised); }
body.dark-mode .cart-item { background: var(--mm-bg); border-color: var(--mm-border); }
body.dark-mode .mm-dropdown, body.dark-mode .mm-topbar, body.dark-mode .mm-sidebar { background: var(--mm-surface); border-color: var(--mm-border); }
body.dark-mode .admin-section { background: var(--mm-bg); border-color: var(--mm-border); }
body.dark-mode .admin-section-head { background: var(--mm-surface); }
body.dark-mode .admin-form-footer { background: linear-gradient(transparent, var(--mm-surface) 30%); }
