/* MyFoods Premium Final Touch */

:root {
  --mf-pft-bg: #F7F2EA;
  --mf-pft-surface: #FFFFFF;
  --mf-pft-footer: #FBF8F2;
  --mf-pft-text: #1F2328;
  --mf-pft-muted: #5F6864;
  --mf-pft-border: #E7DDD2;
  --mf-pft-border-strong: #D8CCBF;
  --mf-pft-green: #2F7D46;
  --mf-pft-deep: #123D34;
  --mf-pft-slate: #27415A;
  --mf-pft-shadow: 0 12px 32px rgba(31,35,40,.06);
  --mf-pft-shadow-soft: 0 8px 22px rgba(31,35,40,.045);
  --mf-pft-font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

body,
body *,
button,
input,
select,
textarea {
  font-family: var(--mf-pft-font) !important;
}

.admin-main,
.business-main,
.portal-main,
.dashboard-main,
.main-content,
.admin-content,
.business-content {
  background:
    radial-gradient(circle at 92% 4%, rgba(47,125,70,.055), transparent 26%),
    linear-gradient(180deg, #FBF8F2 0%, var(--mf-pft-bg) 42%, #F8F1E8 100%) !important;
  color: var(--mf-pft-text) !important;
}

.admin-main h1,
.admin-main h2,
.admin-main h3,
.admin-main h4,
.business-main h1,
.business-main h2,
.business-main h3,
.business-main h4,
.portal-main h1,
.portal-main h2,
.portal-main h3,
.portal-main h4 {
  color: var(--mf-pft-text) !important;
  font-family: var(--mf-pft-font) !important;
  font-weight: 680 !important;
  letter-spacing: -.022em !important;
}

/* Portal shell: keep sidebar dark and readable */
.admin-sidebar,
.business-sidebar,
.portal-sidebar,
.sidebar {
  background: linear-gradient(180deg, #123D34 0%, #0F342D 100%) !important;
  color: rgba(255,255,255,.88) !important;
}

.admin-sidebar a,
.admin-sidebar button,
.admin-sidebar .nav-item,
.business-sidebar a,
.business-sidebar button,
.business-sidebar .nav-item,
.portal-sidebar a,
.portal-sidebar button,
.portal-sidebar .nav-item,
.sidebar a,
.sidebar button,
.sidebar .nav-item {
  color: rgba(255,255,255,.86) !important;
  min-height: 42px !important;
  padding: 10px 13px !important;
}

.admin-sidebar a.active,
.admin-sidebar button.active,
.admin-sidebar .nav-item.active,
.business-sidebar a.active,
.business-sidebar button.active,
.business-sidebar .nav-item.active,
.portal-sidebar a.active,
.portal-sidebar button.active,
.portal-sidebar .nav-item.active,
.sidebar a.active,
.sidebar button.active,
.sidebar .nav-item.active {
  background: rgba(255,255,255,.18) !important;
  color: #FFFFFF !important;
  box-shadow: inset 3px 0 0 rgba(255,255,255,.74) !important;
}

.mf-business-portal .sidebar-logo .brand-logo-img,
.business-sidebar .brand-logo-img,
.business-sidebar .brand img,
.business-sidebar .logo img {
  content: url("/assets/brand/myfoods-logo-tricolor.svg") !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(231,221,210,.9) !important;
  border-radius: 13px !important;
  width: 166px !important;
  max-width: 166px !important;
}

/* Topbar separation */
.admin-main header,
.admin-main .admin-header,
.admin-main .admin-topbar,
.admin-main .content-header,
.admin-main .page-header,
.business-main header,
.business-main .business-header,
.business-main .business-topbar,
.business-main .content-header,
.business-main .page-header,
.topbar {
  background: rgba(255,255,255,.88) !important;
  border-bottom: 1px solid var(--mf-pft-border) !important;
  box-shadow: 0 10px 24px rgba(31,35,40,.04) !important;
  color: var(--mf-pft-text) !important;
}

/* Cards */
.admin-card,
.business-card,
.dashboard-card,
.panel,
.section-card,
.card,
.kpi-card,
.stat-card,
.settings-card,
.profile-card,
.menu-card,
.order-card,
.cms-card,
.media-card,
.empty-state,
.admin-mobile-card,
.menu-mobile-card,
.mf-menu-item-card {
  background: var(--mf-pft-surface) !important;
  border: 1px solid var(--mf-pft-border) !important;
  border-radius: 24px !important;
  box-shadow: var(--mf-pft-shadow) !important;
  color: var(--mf-pft-text) !important;
  padding: 24px !important;
}

.card-header,
.admin-section-head,
.section-header,
.panel-header {
  border-bottom: 1px solid var(--mf-pft-border) !important;
  padding-bottom: 16px !important;
  margin-bottom: 18px !important;
}

.kpi-card,
.stat-card {
  min-height: 132px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 9px !important;
}

.kpi-value,
.stat-value,
.metric-value,
.dashboard-card .value,
.card-value {
  color: var(--mf-pft-slate) !important;
  font-size: clamp(24px, 2.4vw, 32px) !important;
  font-weight: 760 !important;
  line-height: 1 !important;
  letter-spacing: -.03em !important;
}

.kpi-label,
.stat-label,
.metric-label,
.muted,
.text-muted {
  color: var(--mf-pft-muted) !important;
}

/* Forms and buttons */
label,
.form-label {
  color: var(--mf-pft-slate) !important;
  font-size: 13px !important;
  font-weight: 760 !important;
  letter-spacing: .01em !important;
}

input,
select,
textarea,
.form-input,
.form-select,
.form-control {
  min-height: 46px !important;
  border: 1px solid var(--mf-pft-border-strong) !important;
  border-radius: 14px !important;
  background: #FFFFFF !important;
  color: var(--mf-pft-text) !important;
  font-size: 15px !important;
}

button,
.btn,
.primary-btn,
.btn-primary,
.btn-outline,
.btn-ghost {
  min-height: 42px !important;
  border-radius: 13px !important;
  font-weight: 740 !important;
}

.btn-primary,
.primary-btn,
button[type="submit"] {
  background: linear-gradient(135deg, var(--mf-pft-green), var(--mf-pft-deep)) !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 20px rgba(18,61,52,.15) !important;
}

/* Tables */
.admin-business-table-wrap,
.admin-table-wrap,
.table-wrap,
.data-table-wrap,
.admin-main .table-container,
.business-main .table-container {
  background: #FFFFFF !important;
  border: 1px solid var(--mf-pft-border) !important;
  border-radius: 24px !important;
  box-shadow: var(--mf-pft-shadow-soft) !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}

.admin-table,
.data-table,
.admin-main table,
.business-main table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  min-width: 980px !important;
  width: 100% !important;
}

.admin-main th,
.business-main th {
  background: #F7F2EA !important;
  border-bottom: 1px solid var(--mf-pft-border) !important;
  color: var(--mf-pft-slate) !important;
  font-size: 13px !important;
  font-weight: 820 !important;
  letter-spacing: .015em !important;
  padding: 16px 18px !important;
  white-space: nowrap !important;
}

.admin-main td,
.business-main td {
  border-bottom: 1px solid rgba(231,221,210,.72) !important;
  color: var(--mf-pft-text) !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  padding: 18px 18px !important;
  vertical-align: middle !important;
}

.admin-main tbody tr:hover,
.business-main tbody tr:hover {
  background: rgba(47,125,70,.045) !important;
}

.admin-main tbody tr:nth-child(even),
.business-main tbody tr:nth-child(even) {
  background: rgba(247,242,234,.24) !important;
}

.admin-main td:last-child,
.business-main td:last-child,
.admin-business-table-wrap td:last-child,
.actions-cell {
  min-width: 180px !important;
  width: 180px !important;
  overflow: visible !important;
}

.admin-actions,
.row-actions,
.table-actions,
.actions-cell {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
  justify-content: flex-end !important;
  min-width: 180px !important;
}

.admin-actions button,
.row-actions button,
.table-actions button,
.actions-cell button,
.admin-main td:last-child button,
.business-main td:last-child button {
  min-height: 36px !important;
  height: 36px !important;
  max-width: none !important;
  padding: 0 13px !important;
  white-space: nowrap !important;
}

/* Toast */
.toast,
#toast,
.toast.show,
.notification,
.portal-toast {
  bottom: 24px !important;
  right: 24px !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  background: var(--mf-pft-deep) !important;
  color: #FFFFFF !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 34px rgba(31,35,40,.22) !important;
  max-width: min(420px, calc(100vw - 32px)) !important;
}

/* Footer */
footer,
.footer,
.site-footer {
  background: var(--mf-pft-footer) !important;
  border-top: 1px solid var(--mf-pft-border) !important;
  color: var(--mf-pft-text) !important;
  margin-top: clamp(24px, 3.6vw, 44px) !important;
}

.footer-inner,
.site-footer-inner {
  gap: 18px !important;
  padding: 24px clamp(18px, 4vw, 38px) !important;
}

footer h1,
footer h2,
footer h3,
footer h4,
footer .footer-title,
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .footer-title {
  color: var(--mf-pft-slate) !important;
  font-size: 13px !important;
  font-weight: 820 !important;
  letter-spacing: .06em !important;
}

footer p,
footer small,
.site-footer p,
.site-footer small {
  color: var(--mf-pft-muted) !important;
}

footer a,
.site-footer a {
  color: var(--mf-pft-deep) !important;
  opacity: 1 !important;
  text-decoration-color: rgba(18,61,52,.22) !important;
}

.footer-brand-logo,
.site-footer .brand,
.site-footer .logo,
footer .brand,
footer .logo {
  background: rgba(255,255,255,.82) !important;
  border: 1px solid rgba(231,221,210,.74) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  padding: 6px 10px !important;
}

.footer-note,
.footer-bottom,
.site-footer-bottom {
  border-top: 1px solid var(--mf-pft-border) !important;
  color: var(--mf-pft-muted) !important;
  font-size: 0 !important;
  padding-top: 14px !important;
}

.footer-note::before,
.footer-bottom::before,
.site-footer-bottom::before {
  content: "\00A9 MyFoods.ch" !important;
  color: var(--mf-pft-muted) !important;
  font-size: 14px !important;
}

/* Customer cards keep sans text */
.restaurant-card,
.restaurant-card * {
  font-family: var(--mf-pft-font) !important;
}

@media (max-width: 760px) {
  .admin-card,
  .business-card,
  .dashboard-card,
  .panel,
  .section-card,
  .card,
  .kpi-card,
  .stat-card,
  .settings-card,
  .profile-card,
  .menu-card,
  .order-card,
  .cms-card,
  .media-card,
  .empty-state,
  .admin-mobile-card,
  .menu-mobile-card,
  .mf-menu-item-card {
    border-radius: 20px !important;
    padding: 20px !important;
  }

  .admin-main table,
  .business-main table {
    min-width: 780px !important;
  }

  .admin-main th,
  .business-main th,
  .admin-main td,
  .business-main td {
    padding: 15px 16px !important;
  }

  .footer-inner,
  .site-footer-inner {
    padding: 22px 16px !important;
  }
}

/* Final precision overrides */
.admin-main table th,
.business-main table th,
.admin-business-table th,
.admin-business-table-wrap th,
.table-wrap th,
.data-table-wrap th {
  padding: 16px 18px !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}

.admin-main table td,
.business-main table td,
.admin-business-table td,
.admin-business-table-wrap td,
.table-wrap td,
.data-table-wrap td {
  padding: 18px 18px !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
}

.admin-main table td:last-child,
.business-main table td:last-child,
.admin-business-table td:last-child,
.admin-business-table-wrap td:last-child,
.table-wrap td:last-child {
  min-width: 180px !important;
  width: 180px !important;
}

.site-footer {
  padding: 0 !important;
}

.site-footer-inner {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.25fr) repeat(3, minmax(120px, .75fr)) !important;
  align-items: start !important;
  gap: 18px !important;
  padding: 20px clamp(18px, 4vw, 38px) !important;
}

.site-footer-inner + .site-footer-inner {
  display: block !important;
  padding-top: 0 !important;
  padding-bottom: 16px !important;
}

.footer-brand {
  gap: 8px !important;
}

.footer-copy {
  font-size: 13px !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.footer-col-title {
  margin-bottom: 8px !important;
}

.footer-links {
  gap: 5px !important;
}

.footer-links a {
  font-size: 13px !important;
  line-height: 1.35 !important;
}

@media (max-width: 760px) {
  .site-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 18px 16px !important;
  }
}
