:root {
  --ink: #17130f;
  --ink-soft: #4e473f;
  --paper: #fbf7f1;
  --card: #ffffff;
  --line: #e9e0d5;
  --accent: #f0643b;
  --accent-2: #ffb11b;
  --green: #1b7d61;
  --purple: #6b4ee6;
  --shadow: 0 18px 55px rgba(37, 25, 14, .10);
  --radius-xl: 26px;
  --radius-lg: 20px;
  --radius-md: 14px;
}

* { box-sizing: border-box; }
html { background: var(--paper); }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% -10%, rgba(255,177,27,.12), transparent 24rem),
    radial-gradient(circle at 95% 0%, rgba(240,100,59,.10), transparent 26rem),
    var(--paper);
  min-height: 100vh;
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.desktop-only { display: flex; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: minmax(190px,.7fr) minmax(260px,1.3fr) auto minmax(190px,.7fr);
  align-items: center;
  gap: 22px;
  padding: 16px clamp(18px, 4vw, 56px);
  background: rgba(251,247,241,.88);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(233,224,213,.75);
}
.brand {
  border: 0;
  background: transparent;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  color: var(--ink);
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 15px;
  background: var(--ink);
  color: #fff;
  font-weight: 900;
  letter-spacing: -.04em;
}
.brand-copy { display: grid; line-height: 1.05; }
.brand-copy strong { font-size: 15px; }
.brand-copy small { margin-top: 5px; color: #82786d; font-size: 11px; }
.top-search {
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 0 16px;
  box-shadow: 0 8px 28px rgba(37,25,14,.04);
}
.top-search input {
  width: 100%;
  border: 0;
  outline: 0;
  padding: 13px 0;
  background: transparent;
  color: var(--ink);
}
.top-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:3px; }
.desktop-nav-item { border:0; background:transparent; color:#766c62; padding:9px 11px; border-radius:999px; font-size:12px; font-weight:850; white-space:nowrap; }
.desktop-nav-item:hover, .desktop-nav-item.active { background:#fff; color:var(--ink); box-shadow:0 7px 22px rgba(37,25,14,.06); }

.privacy-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.privacy-strip > div { display:grid; gap:4px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px 16px; }
.privacy-strip strong { font-size:13px; }
.privacy-strip span { font-size:11px; line-height:1.45; color:#857a6f; }
.recipe-form-v2 { display:grid; gap:18px; }
.form-section { margin:0 !important; }
.form-section-head { display:flex; align-items:flex-start; gap:12px; margin-bottom:20px; }
.form-section-head > span:first-child { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#f4eee6; font-weight:950; font-size:11px; color:#76685c; flex:0 0 auto; }
.form-section-head h3 { margin:1px 0 4px; font-size:20px; letter-spacing:-.025em; }
.form-section-head p { margin:0; color:#8c8176; font-size:12px; }
.private-section { border-color:#d8c7f7; box-shadow:inset 0 0 0 1px rgba(107,78,230,.05); }
.private-badge { margin-left:auto; background:#eee8ff !important; color:#5c43c6 !important; width:auto !important; height:auto !important; padding:7px 10px !important; border-radius:999px !important; }
.optional { color:#9b9187; font-weight:600; }
.format-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.format-card { position:relative; display:grid; gap:5px; border:1px solid var(--line); background:#fffdf9; border-radius:16px; padding:15px; cursor:pointer; }
.format-card input { position:absolute; top:12px; right:12px; width:auto; accent-color:var(--accent); }
.format-card strong { padding-right:24px; }
.format-card span { color:#8c8176; font-size:11px; }
.format-card:has(input:checked) { border-color:#f1997e; background:#fff5ef; box-shadow:0 0 0 3px rgba(240,100,59,.08); }
.upload-box { position:relative; min-height:116px; display:grid; place-items:center; text-align:center; align-content:center; gap:5px; border:1.5px dashed #cdbdab; background:#fffaf4; border-radius:18px; padding:18px; overflow:hidden; }
.upload-box input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.upload-box strong { font-size:13px; }
.upload-box span { max-width:540px; color:#918579; font-size:11px; line-height:1.45; }
.private-upload { background:#faf8ff; border-color:#cbbdf0; }
.media-preview { display:flex; gap:9px; flex-wrap:wrap; margin-top:9px; }
.preview-item { width:108px; display:grid; gap:5px; }
.preview-item img, .preview-item video { width:108px; height:82px; object-fit:cover; border-radius:12px; border:1px solid var(--line); background:#eee; }
.preview-item small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#82776c; font-size:9px; }
.repeat-list { display:grid; gap:9px; }
.repeat-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:start; }
.repeat-row.step-row { grid-template-columns:34px 1fr auto; }
.repeat-row textarea { min-height:74px; }
.step-number { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#f4eee6; font-size:11px; font-weight:950; margin-top:3px; }
.icon-button { width:36px; height:36px; border:0; border-radius:11px; background:#f4eee6; color:#7b7065; font-size:19px; }
.mini-add { margin-top:9px; border:0; background:transparent; color:var(--accent); font-size:12px; font-weight:900; padding:5px 0; }
.legal-checks { display:grid; gap:10px; }
.legal-checks label { display:flex; align-items:flex-start; gap:9px; border:1px solid var(--line); background:#fffdf9; padding:12px 14px; border-radius:14px; font-size:12px; line-height:1.45; color:#5e554c; }
.legal-checks input { width:auto; margin-top:2px; accent-color:var(--green); }
.submission-note { display:grid; gap:5px; margin:16px 0; padding:14px 16px; background:#f4fbf7; border:1px solid #cce9dd; border-radius:16px; }
.submission-note strong { color:#176649; }
.submission-note span { color:#6e7e76; font-size:11px; line-height:1.45; }
.submit-recipe { padding:14px 18px; font-size:14px; }


.button {
  border: 0;
  border-radius: 999px;
  padding: 11px 17px;
  font-weight: 800;
  transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;
}
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.button-dark { background: var(--ink); color: #fff; }
.button-accent { background: var(--accent); color: #fff; box-shadow: 0 10px 24px rgba(240,100,59,.26); }
.button-light { background: #f4eee6; color: var(--ink); }
.button-green { background: var(--green); color: #fff; }
.button-outline { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.button-block { width: 100%; }
.credit-pill {
  border: 0;
  background: #fff1ca;
  color: #7c5410;
  padding: 10px 13px;
  border-radius: 999px;
  font-weight: 900;
}

main { padding-bottom: 56px; }
.page {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 56px;
}
.hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 24px;
  align-items: center;
  padding: clamp(28px, 5vw, 58px);
  border-radius: 34px;
  background: var(--ink);
  color: #fff;
  min-height: 330px;
}
.hero::after {
  content: '';
  position: absolute;
  width: 440px;
  height: 440px;
  border-radius: 50%;
  right: -140px;
  top: -180px;
  background: radial-gradient(circle, rgba(255,177,27,.55), rgba(240,100,59,.08) 62%, transparent 70%);
}
.hero-copy { position: relative; z-index: 2; }
.eyebrow {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: #ffcf5c;
}
.hero h1 { font-size: clamp(36px, 5vw, 66px); line-height: .98; letter-spacing: -.055em; margin: 16px 0; max-width: 760px; }
.hero p { color: #cfc7bd; font-size: clamp(15px, 2vw, 18px); line-height: 1.6; max-width: 690px; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.hero-visual { position: relative; z-index: 2; min-height: 220px; }
.float-card {
  position: absolute;
  background: #fff;
  color: var(--ink);
  border-radius: 24px;
  padding: 14px;
  box-shadow: 0 24px 50px rgba(0,0,0,.24);
  width: 230px;
}
.float-card.one { right: 0; top: 10px; transform: rotate(5deg); }
.float-card.two { right: 130px; bottom: -10px; transform: rotate(-8deg); }
.mini-media { height: 110px; display: grid; place-items: center; border-radius: 17px; background: linear-gradient(135deg,#f7d79f,#ef784c); font-size: 54px; }
.float-card strong { display:block; margin-top:10px; font-size:14px; }
.float-card small { color:#8b8178; }

.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 36px 0 16px; }
.section-head h2 { margin: 0; font-size: clamp(23px, 3vw, 34px); letter-spacing: -.035em; }
.section-head p { margin: 5px 0 0; color: #82786d; }
.link-button { border: 0; background: transparent; color: var(--accent); font-weight: 900; }

.chips { display:flex; gap:8px; flex-wrap:wrap; margin: 18px 0; }
.chip {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.8);
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 750;
  color: #675e54;
}
.chip.active, .chip:hover { background: var(--ink); color:#fff; border-color:var(--ink); }

.recipe-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.recipe-card {
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  transition: transform .2s ease, box-shadow .2s ease;
}
.recipe-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.card-media {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 210px;
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,.7), transparent 18%),
    linear-gradient(135deg,#ffd98c 0%,#f39762 48%,#b63b2d 100%);
  font-size: 82px;
}
.card-media[data-cuisine="Mexicana"] { background: linear-gradient(135deg,#ffe68d,#f0683b,#6b2b1c); }
.card-media[data-cuisine="Española"] { background: linear-gradient(135deg,#f7dfaa,#e68039,#9d281f); }
.card-media[data-cuisine="Turca"] { background: linear-gradient(135deg,#f3d79b,#db6b3b,#8a261f); }
.card-media[data-cuisine="África Occidental"] { background: linear-gradient(135deg,#f7e3a3,#c8802c,#56793d); }
.badge-row { position:absolute; top:14px; left:14px; right:14px; display:flex; justify-content:space-between; align-items:flex-start; }
.badge { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:7px 9px; font-size:11px; font-weight:900; backdrop-filter:blur(10px); }
.badge-light { background:rgba(255,255,255,.88); color:var(--ink); }
.badge-featured { background:#fff1ca; color:#704a07; }
.card-body { padding: 17px; }
.card-kicker { display:flex; justify-content:space-between; gap:10px; color:#8d8277; font-size:12px; font-weight:750; }
.card-title { margin:8px 0 5px; font-size:20px; letter-spacing:-.025em; }
.card-desc { margin:0; color:#746b62; line-height:1.48; font-size:13px; min-height:58px; }
.card-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; }
.rating { font-weight:800; font-size:13px; }
.price { font-size:19px; font-weight:950; letter-spacing:-.025em; }

.stats-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.stat-card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:20px; }
.stat-card small { color:#887d72; font-weight:800; }
.stat-card strong { display:block; margin-top:8px; font-size:28px; letter-spacing:-.04em; }

.panel { background:#fff; border:1px solid var(--line); border-radius:var(--radius-xl); padding:22px; }
.panel + .panel { margin-top:18px; }
.panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.panel-head h3 { margin:0; }
.table-list { display:grid; gap:10px; }
.table-row { display:grid; grid-template-columns:1.4fr .7fr .5fr auto; gap:12px; align-items:center; border:1px solid var(--line); border-radius:16px; padding:13px 14px; }
.table-row strong { font-size:14px; }
.status { display:inline-flex; width:max-content; padding:6px 9px; border-radius:999px; font-size:11px; font-weight:900; }
.status.published { background:#dff7ed; color:#176649; }
.status.pending { background:#fff1ca; color:#745009; }

.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-size:12px; font-weight:900; color:#62594f; }
.field input, .field textarea, .field select {
  width:100%;
  border:1px solid var(--line);
  background:#fffdf9;
  color:var(--ink);
  border-radius:14px;
  padding:12px 13px;
  outline:none;
}
.field textarea { min-height:110px; resize:vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color:#c9aa87; box-shadow:0 0 0 4px rgba(201,170,135,.14); }
.help { color:#92887e; font-size:12px; line-height:1.5; }

.search-panel { display:flex; gap:10px; margin-bottom:18px; }
.search-panel input { flex:1; border:1px solid var(--line); background:#fff; border-radius:999px; padding:13px 17px; outline:none; }
.empty { text-align:center; padding:45px 20px; border:1px dashed #d9cdbf; border-radius:22px; color:#857a6f; background:rgba(255,255,255,.45); }

.profile-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px; background:#fff; border:1px solid var(--line); border-radius:24px; padding:20px; }
.avatar { width:58px; height:58px; border-radius:18px; display:grid; place-items:center; background:var(--ink); color:#fff; font-size:24px; font-weight:900; }
.profile-card h3 { margin:0 0 5px; }
.profile-card p { margin:0; color:#82786d; }


.modal-backdrop {
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(17,13,10,.62);
  display:grid;
  place-items:center;
  padding:20px;
  backdrop-filter:blur(8px);
}
.modal {
  width:min(760px,100%);
  max-height:min(880px,92vh);
  overflow:auto;
  background:#fff;
  border-radius:28px;
  box-shadow:0 35px 100px rgba(0,0,0,.35);
}
.modal.small { width:min(480px,100%); }
.modal-head { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:20px 22px; border-bottom:1px solid var(--line); }
.modal-head h2 { margin:0; font-size:22px; }
.close { width:38px; height:38px; border-radius:50%; border:0; background:#f3eee8; font-size:20px; }
.modal-body { padding:22px; }
.recipe-hero { display:grid; grid-template-columns:240px 1fr; gap:20px; align-items:center; }
.recipe-hero .card-media { min-height:210px; border-radius:22px; }
.recipe-hero h1 { margin:8px 0; font-size:32px; letter-spacing:-.04em; }
.recipe-hero p { color:#756b61; line-height:1.55; }
.locked-box { margin-top:18px; border:1px dashed #d5c7b7; background:#fbf7f1; border-radius:18px; padding:18px; }
.lock-list { display:grid; gap:9px; margin:12px 0 0; }
.lock-item { display:flex; gap:9px; align-items:center; color:#6f665d; }
.full-recipe { display:grid; gap:18px; margin-top:20px; }
.full-recipe section { border-top:1px solid var(--line); padding-top:16px; }
.full-recipe h3 { margin:0 0 10px; }
.full-recipe ol, .full-recipe ul { margin:0; padding-left:22px; line-height:1.75; color:#554d45; }
.step-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.step-photo { min-height:105px; border-radius:16px; display:grid; place-items:center; padding:10px; text-align:center; background:linear-gradient(135deg,#f8e5bb,#ed9875); font-weight:900; }

.boost-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.boost-card { border:1px solid var(--line); border-radius:18px; padding:15px; }
.boost-card strong { display:block; margin-bottom:5px; }
.boost-card p { color:#81766c; font-size:12px; min-height:38px; }
.boost-cost { font-size:20px; font-weight:950; margin:8px 0 12px; }

.toast-root { position:fixed; right:20px; bottom:92px; z-index:120; display:grid; gap:10px; }
.toast { background:var(--ink); color:#fff; border-radius:14px; padding:12px 15px; box-shadow:var(--shadow); animation:pop .18s ease; max-width:360px; }
.toast.error { background:#982f28; }
@keyframes pop { from { transform:translateY(8px); opacity:0; } }

.bottom-nav {
  display:none;
  position:fixed;
  left:50%;
  bottom:18px;
  z-index:60;
  transform:translateX(-50%);
  gap:4px;
  padding:7px;
  background:rgba(23,19,15,.94);
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  box-shadow:0 22px 60px rgba(0,0,0,.28);
  backdrop-filter:blur(12px);
}
.nav-item { min-width:72px; border:0; background:transparent; color:#a9a097; border-radius:16px; padding:9px 10px; display:grid; place-items:center; gap:3px; }
.nav-item span { font-size:20px; line-height:1; }
.nav-item small { font-size:10px; font-weight:800; }
.nav-item.active { background:#fff; color:var(--ink); }
.nav-plus { width:28px; height:28px; border-radius:9px; background:var(--accent); color:#fff; display:grid; place-items:center; }

@media (max-width: 920px) {
  main { padding-bottom:110px; }
  .topbar { grid-template-columns: 1fr auto; padding:12px 16px; }
  .desktop-nav { display:none; }
  .bottom-nav { display:flex; }
  .top-search { display:none; }
  .brand-copy small { display:none; }
  .hero { grid-template-columns:1fr; min-height:unset; }
  .hero-visual { display:none; }
  .recipe-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .table-row { grid-template-columns:1.2fr .6fr auto; }
  .table-row .hide-tablet { display:none; }
  .privacy-strip { grid-template-columns:1fr; }
  .format-options { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
  .page { width:min(100% - 22px,1180px); padding-top:16px; }
  .topbar { gap:8px; }
  .brand-mark { width:39px; height:39px; border-radius:13px; font-size:13px; }
  .brand-copy strong { font-size:13px; }
  .top-actions { gap:6px; }
  .credit-pill { padding:9px 10px; font-size:11px; }
  #authButton { padding:10px 12px; font-size:12px; }
  .hero { padding:27px 22px; border-radius:26px; }
  .hero h1 { font-size:39px; }
  .recipe-grid { grid-template-columns:1fr; }
  .card-media { min-height:190px; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:9px; }
  .stat-card { padding:15px; }
  .stat-card strong { font-size:22px; }
  .form-grid { grid-template-columns:1fr; }
  .form-section { padding:17px; }
  .form-section-head { margin-bottom:16px; }
  .private-badge { display:none; }
  .field.full { grid-column:auto; }
  .recipe-hero { grid-template-columns:1fr; }
  .modal-backdrop { padding:9px; align-items:end; }
  .modal { max-height:94vh; border-radius:26px 26px 18px 18px; }
  .boost-grid { grid-template-columns:1fr; }
  .table-row { grid-template-columns:1fr auto; }
  .table-row .mobile-hide { display:none; }
  .bottom-nav { bottom:8px; max-width:calc(100% - 14px); width:max-content; }
  .nav-item { min-width:57px; padding:8px 7px; }
  .nav-item small { font-size:9px; }
  .section-head { align-items:center; }
  .section-head p { display:none; }
  .step-photos { grid-template-columns:1fr 1fr; }
}

/* V3 account menu + creator profiles */
.top-actions { position: relative; }
.account-trigger { min-width: 108px; }
.account-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: 230px;
  z-index: 120;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 8px;
  box-shadow: 0 18px 50px rgba(34, 25, 18, .16);
}
.account-menu-head { padding: 10px 12px 12px; display:flex; flex-direction:column; gap:3px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.account-menu-head small { color:#8e8378; overflow:hidden; text-overflow:ellipsis; }
.account-menu button { width:100%; border:0; background:transparent; text-align:left; padding:10px 12px; border-radius:12px; font-weight:800; cursor:pointer; color:var(--ink); }
.account-menu button:hover { background:#f7f2ec; }
.account-menu button.danger { color:#a43b33; }
.account-menu-sep { height:1px; background:var(--line); margin:6px 4px; }

.recipe-cover-image { width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
.recipe-cover-emoji { position:relative; z-index:1; }
.card-media { overflow:hidden; position:relative; }
.card-media .badge-row { position:relative; z-index:3; }
.chef-link { border:0; background:transparent; padding:0; display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; font-weight:800; color:#7d7064; cursor:pointer; margin:2px 0 8px; }
.chef-link:hover { color:var(--accent); }
.chef-link img { width:23px; height:23px; object-fit:cover; border-radius:50%; }
.modal-chef-link { font-size:14px; margin:5px 0; }

.status.approved { background:#dff7ed; color:#176649; }
.status.rejected { background:#ffe3df; color:#8d332a; }
.status.draft { background:#eee9e3; color:#645d56; }
.profile-status-card { margin: 0 0 18px; border:1px solid var(--line); border-radius:22px; padding:18px 20px; background:#fff; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.profile-status-card h3 { margin:8px 0 4px; }
.profile-status-card p { margin:0; color:#7d7166; }
.profile-status-card.pending { border-color:#eed594; background:#fffaf0; }
.profile-status-card.rejected { border-color:#f0b8b0; background:#fff6f5; }
.profile-status-card.approved { border-color:#bce1d2; background:#f5fcf9; }

.profile-tabs { display:flex; gap:8px; flex-wrap:wrap; margin: 0 0 18px; padding:6px; background:#eee8e1; width:max-content; max-width:100%; border-radius:999px; }
.profile-tab { border:0; background:transparent; padding:10px 15px; border-radius:999px; font-weight:900; cursor:pointer; color:#74685c; }
.profile-tab.active { background:#fff; color:var(--ink); box-shadow:0 4px 15px rgba(42,31,22,.07); }
.profile-editor.hidden { display:none !important; }
.profile-photo-editor { display:flex; align-items:center; gap:16px; padding:14px; background:#faf7f3; border:1px solid var(--line); border-radius:18px; }
.avatar-large { width:78px; height:78px; border-radius:24px; overflow:hidden; }
.avatar-xl { width:96px; height:96px; border-radius:28px; overflow:hidden; flex:0 0 auto; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.file-button { cursor:pointer; display:inline-flex; }
.input-prefix { display:flex; align-items:center; border:1px solid var(--line); background:#fff; border-radius:14px; overflow:hidden; }
.input-prefix span { padding:0 0 0 13px; font-weight:900; color:#8a7e72; }
.input-prefix input { border:0 !important; border-radius:0 !important; flex:1; }
.specialty-picker { display:flex; flex-wrap:wrap; gap:8px; }
.specialty-chip { position:relative; cursor:pointer; }
.specialty-chip input { position:absolute; opacity:0; pointer-events:none; }
.specialty-chip span { display:inline-flex; padding:9px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:12px; font-weight:850; }
.specialty-chip.selected span, .specialty-chip:hover span { background:var(--ink); color:#fff; border-color:var(--ink); }
.profile-status-inline { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; padding:12px 14px; background:#faf7f3; border-radius:15px; }
.public-profile-preview { display:grid; gap:18px; }
.public-chef-card { background:#fff; border:1px solid var(--line); border-radius:24px; padding:22px; }
.public-chef-head { display:flex; align-items:center; gap:16px; margin-bottom:14px; }
.public-chef-head h2 { margin:4px 0 4px; }
.public-chef-card > p { color:#675d54; line-height:1.6; }
.specialty-list { display:flex; flex-wrap:wrap; gap:8px; margin:15px 0; }
.specialty-list span { padding:7px 10px; background:#f4eee7; border-radius:999px; font-size:12px; font-weight:800; }
.chef-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; }
.chef-metrics div { background:#f8f4ef; border-radius:15px; padding:12px; display:flex; flex-direction:column; gap:3px; }
.chef-metrics strong { font-size:20px; }
.chef-metrics span { color:#81756a; font-size:11px; }
.teaser-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0; }
.teaser-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:16px; }
.admin-profile-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.admin-profile-row:last-child { border-bottom:0; }
.admin-profile-summary { display:flex; align-items:center; gap:12px; min-width:0; }
.admin-profile-summary img, .mini-avatar { width:48px; height:48px; border-radius:15px; object-fit:cover; background:#eee7df; display:grid; place-items:center; flex:0 0 auto; }
.admin-actions { display:flex; gap:8px; }
.admin-profile-bio { margin-top:7px; max-width:720px; color:#5f554c; line-height:1.45; font-size:13px; }
.section-head.compact { margin-top:22px; margin-bottom:12px; }
.chef-recipes { margin-top:8px; }

@media (max-width: 760px) {
  .account-menu { position:fixed; right:12px; top:68px; width:min(280px,calc(100vw - 24px)); }
  .profile-status-card { align-items:flex-start; flex-direction:column; }
  .profile-tabs { width:100%; overflow:auto; flex-wrap:nowrap; }
  .profile-tab { white-space:nowrap; }
  .profile-photo-editor { align-items:flex-start; }
  .chef-metrics { grid-template-columns:1fr 1fr 1fr; }
  .admin-profile-row { grid-template-columns:1fr; }
  .admin-actions { justify-content:flex-start; }
  .teaser-gallery { grid-template-columns:1fr 1fr; }
}


/* V3.2.2 creator profile submission confirmation */
.profile-success-backdrop { z-index: 140; }
.profile-success-modal {
  padding: 34px 30px 30px;
  text-align: center;
  display: grid;
  justify-items: center;
  gap: 12px;
}
.profile-success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #e4f6ef;
  color: var(--green);
  font-size: 34px;
  font-weight: 900;
  margin-bottom: 2px;
}
.profile-success-modal h2 { margin: 4px 0 0; font-size: 28px; }
.profile-success-modal p { margin: 0; color: var(--ink-soft); line-height: 1.55; }
.profile-success-help { font-size: 13px; color: #7d7166 !important; }
.profile-success-modal .button { margin-top: 10px; }
.button:disabled { opacity: .62; cursor: wait; }

@media (max-width: 640px) {
  .profile-success-modal { padding: 30px 22px 24px; }
  .profile-success-modal h2 { font-size: 25px; }
}

/* V3.3 multilingual language selector */
.language-picker {
  display:inline-flex;
  align-items:center;
  gap:5px;
  height:40px;
  padding:0 8px 0 10px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  box-shadow:0 7px 22px rgba(37,25,14,.04);
}
.language-icon { font-size:13px; line-height:1; }
.language-picker select {
  border:0;
  outline:0;
  background:transparent;
  color:var(--ink);
  font-size:11px;
  font-weight:900;
  padding:0 2px;
  cursor:pointer;
}
@media (max-width: 620px) {
  .language-picker { height:38px; padding:0 6px 0 8px; }
  .language-icon { display:none; }
  .language-picker select { font-size:10px; }
}

/* V3.4-dev unified member account */
.account-trigger.account-logged {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  box-shadow: 0 7px 22px rgba(37,25,14,.06);
  padding: 7px 11px 7px 7px;
}
.header-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  overflow: hidden;
  background: #f1e7de;
  display: grid;
  place-items: center;
  font-weight: 950;
  flex: 0 0 auto;
}
.header-avatar img { width:100%; height:100%; object-fit:cover; }
.header-account-name { max-width: 120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.favorite-button {
  position:absolute;
  z-index:4;
  right:14px;
  bottom:14px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:#55473c;
  font-size:20px;
  line-height:1;
  box-shadow:0 7px 18px rgba(35,24,16,.12);
  cursor:pointer;
}
.favorite-button.active { color:#d34d43; background:#fff7f6; }
.creator-cta-compact {
  margin-top:18px;
  padding:14px 16px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.creator-cta-compact div { display:grid; gap:3px; min-width:0; }
.creator-cta-compact span { color:#82776d; font-size:12px; line-height:1.4; }
.creator-link-button {
  border:1px solid var(--accent);
  background:var(--accent);
  color:#fff;
  font-weight:900;
  padding:11px 16px;
  border-radius:999px;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(244,92,58,.18);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.creator-link-button:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(244,92,58,.24); filter:saturate(1.04); }
.creator-mini-status {
  margin-top:18px;
  padding:14px 16px;
  border:1px solid #eed594;
  background:#fffaf0;
  border-radius:17px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
}
.creator-mini-status.rejected { border-color:#f0b8b0; background:#fff6f5; }
.creator-mini-status > div { display:grid; gap:5px; }
.creator-mini-status p { margin:0; color:#7d7166; font-size:12px; line-height:1.4; }
.wallet-actions { display:flex; flex-wrap:wrap; gap:9px; }
.auth-switch { width:100%; text-align:center; margin-top:2px; }
.credits-overview { margin-bottom:18px; }

@media (max-width: 620px) {
  .header-account-name { display:none; }
  .account-trigger.account-logged { padding-right:8px; gap:5px; }
  .creator-cta-compact, .creator-mini-status { align-items:flex-start; flex-direction:column; }
  .creator-link-button { width:100%; text-align:center; }
  .favorite-button { width:36px; height:36px; right:12px; bottom:12px; }
}

/* V3.4 active Boost status */
.boost-active-summary {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fffaf2;
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}
.boost-active-summary h3,
.boost-active-summary p { margin: 0; }

/* V3.6 moderation + recipe revision workflow */
.button-danger { background:#a63b32; color:#fff; }
.status.changes-requested { background:#fff0d8; color:#80520c; }
.review-note { display:block; max-width:360px; font-size:12px; line-height:1.45; color:#6d6258; }
.rejected-note { color:#8d332a; }
.seller-review-action { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.review-feedback-banner { margin-bottom:18px; padding:14px 16px; border:1px solid #efcf92; border-radius:16px; background:#fff9ed; display:flex; gap:8px; flex-wrap:wrap; }
.existing-media-note { padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#f8f4ef; font-size:12px; font-weight:800; }
.moderation-modal { width:min(1040px,calc(100vw - 28px)); max-height:92vh; overflow:auto; }
.moderation-body { display:grid; gap:18px; }
.moderation-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.moderation-meta > div { border:1px solid var(--line); border-radius:15px; padding:12px 14px; background:#faf7f3; display:flex; flex-direction:column; gap:4px; min-width:0; }
.moderation-meta small { color:#877a6f; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:10px; }
.moderation-meta span { color:#776c62; font-size:12px; overflow:hidden; text-overflow:ellipsis; }
.moderation-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.moderation-tab.active { background:var(--ink); color:#fff; border-color:var(--ink); }
.moderation-pane { display:grid; gap:16px; }
.moderation-public-grid { display:grid; grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr); gap:18px; align-items:start; }
.moderation-cover { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:20px; border:1px solid var(--line); background:#f2ebe4; }
.moderation-cover-placeholder { display:grid; place-items:center; font-size:76px; }
.review-copy { border-left:3px solid #e5d5c4; padding-left:12px; margin-top:12px; }
.review-copy p { margin:5px 0 0; color:#665b52; line-height:1.55; }
.review-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.review-chips span { padding:7px 10px; border-radius:999px; background:#f4eee7; font-size:12px; font-weight:800; }
.moderation-media-grid, .moderation-full-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.moderation-media-grid > div, .moderation-full-grid > div { border:1px solid var(--line); border-radius:17px; padding:16px; background:#fff; }
.moderation-file-list, .moderation-content-list { margin:8px 0 0; padding-left:20px; }
.moderation-file-list li { margin:7px 0; display:flex; flex-direction:column; gap:2px; }
.moderation-file-list li span { font-size:11px; color:#80746a; }
.moderation-content-list li { margin:8px 0; line-height:1.5; }
.moderation-actions { display:flex; gap:10px; justify-content:flex-end; padding:16px 22px 22px; border-top:1px solid var(--line); flex-wrap:wrap; }
.review-reason-modal textarea { width:100%; min-height:150px; resize:vertical; }
.admin-recipe-row { grid-template-columns:minmax(0,1fr) auto auto auto; }

@media (max-width: 760px) {
  .moderation-meta, .moderation-public-grid, .moderation-media-grid, .moderation-full-grid { grid-template-columns:1fr; }
  .moderation-actions { justify-content:stretch; }
  .moderation-actions .button { flex:1 1 100%; }
  .admin-recipe-row { grid-template-columns:1fr; }
  .seller-review-action { justify-content:flex-start; }
}

/* V3.6 email verification */
.verification-modal .modal-body { text-align: center; }
.verification-icon { width: 64px; height: 64px; margin: 0 auto 14px; border-radius: 20px; display: grid; place-items: center; font-size: 28px; background: #fff2e8; border: 1px solid #f2d7c4; }
.verification-copy { margin: 0 auto 6px; max-width: 420px; color: var(--muted); line-height: 1.55; }
.verification-email { margin: 0 0 18px; font-weight: 800; word-break: break-word; }
.verification-modal .field { text-align: left; }
.verification-modal #verificationCode { text-align: center; letter-spacing: .45em; font-size: 1.55rem; font-weight: 800; font-variant-numeric: tabular-nums; padding-left: calc(1rem + .45em); }
.verification-modal .auth-switch { display: block; margin: 13px auto 0; }
.verification-modal .verification-back { margin-top: 8px; }
.verification-help { margin: 14px auto 0; }
.verification-note { margin: 0 0 16px; }

/* V3.7 private R2 media */
.step-photo { overflow:hidden; align-content:start; }
.step-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; display:block; }
.step-photo small { display:block; padding-top:8px; }
.private-recipe-video { width:100%; max-height:70vh; border-radius:18px; background:#111; display:block; }
.moderation-file-list a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.teaser-recipe-video { width:100%; max-height:420px; border-radius:18px; background:#111; display:block; margin:16px 0; }
.toast-modern{position:fixed!important;top:18%;left:50%;right:auto;transform:translateX(-50%);background:#fff;color:#222;border-radius:18px;padding:16px 26px;box-shadow:0 12px 40px rgba(0,0,0,.18);font-weight:600;z-index:9999}.toast-modern:not(.error)::before{content:'✓ ';color:#16a34a}.toast-modern.error{border-left:4px solid #ef4444}

/* V3.8.4 admin members dashboard */
.admin-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; padding:6px; background:#eee8e1; border-radius:999px; width:max-content; max-width:100%; }
.admin-tab { border:0; background:transparent; color:#74685c; padding:10px 17px; border-radius:999px; font-weight:900; cursor:pointer; }
.admin-tab.active { background:#fff; color:var(--ink); box-shadow:0 4px 15px rgba(42,31,22,.07); }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.admin-stat-card { min-height:132px; padding:20px; border:1px solid var(--line); border-radius:22px; background:#fff; display:flex; flex-direction:column; justify-content:center; gap:5px; box-shadow:0 8px 30px rgba(42,31,22,.035); }
.admin-stat-card > span { color:#766b61; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.admin-stat-card > strong { font-size:32px; line-height:1; color:var(--ink); }
.admin-stat-card > small { color:#8a7d72; line-height:1.35; }
.admin-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,.7fr); gap:18px; align-items:start; }
.admin-recent-list { display:grid; }
.admin-recent-member { width:100%; border:0; border-bottom:1px solid var(--line); background:transparent; display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:13px 2px; text-align:left; cursor:pointer; color:var(--ink); }
.admin-recent-member:last-child { border-bottom:0; }
.admin-recent-member:hover { background:#fcf9f5; }
.admin-recent-member > span:nth-child(2) { display:flex; flex-direction:column; gap:2px; min-width:0; }
.admin-recent-member small { color:#877b70; overflow:hidden; text-overflow:ellipsis; }
.admin-user-avatar { width:46px; height:46px; border-radius:15px; overflow:hidden; background:#eee7df; display:grid; place-items:center; font-weight:900; flex:0 0 auto; }
.admin-user-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.admin-avatar-fallback { font-size:11px; font-weight:950; color:#5f554c; }
.admin-attention-panel { display:grid; gap:12px; }
.admin-attention-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.admin-attention-row strong { font-size:22px; }
.admin-users-head { align-items:flex-start; }
.admin-users-head > strong { min-width:max-content; padding:8px 12px; border-radius:999px; background:#f5efe8; }
.admin-user-filters { display:grid; grid-template-columns:minmax(230px,1fr) 180px 180px auto; gap:10px; align-items:end; margin:14px 0 18px; }
.admin-user-filters label { display:grid; gap:6px; font-size:12px; font-weight:850; color:#685e55; }
.admin-user-filters input, .admin-user-filters select { width:100%; min-height:44px; border:1px solid var(--line); border-radius:13px; background:#fff; padding:10px 12px; font:inherit; color:var(--ink); }
.admin-users-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:18px; }
.admin-users-table { width:100%; border-collapse:collapse; min-width:900px; background:#fff; }
.admin-users-table th { padding:12px 14px; background:#faf7f3; color:#766b61; font-size:11px; text-transform:uppercase; letter-spacing:.04em; text-align:left; border-bottom:1px solid var(--line); }
.admin-users-table td { padding:13px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
.admin-users-table tr:last-child td { border-bottom:0; }
.admin-user-identity { border:0; background:transparent; padding:0; display:flex; align-items:center; gap:11px; text-align:left; cursor:pointer; color:var(--ink); }
.admin-user-identity > span:last-child { display:flex; flex-direction:column; gap:2px; min-width:0; }
.admin-user-identity small, .table-subline { display:block; margin-top:2px; color:#887c71; font-size:11px; }
.status.neutral { background:#eee9e3; color:#645d56; }
.admin-user-modal { width:min(1080px,calc(100vw - 28px)); max-height:92vh; overflow:auto; }
.admin-user-modal-body { display:grid; gap:18px; }
.admin-user-hero { display:flex; align-items:center; gap:16px; padding:18px; border:1px solid var(--line); border-radius:20px; background:#faf7f3; }
.admin-user-hero h3, .admin-user-hero p { margin:0; }
.admin-user-hero p { margin-top:4px; color:#766b61; }
.admin-user-badges { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }
.admin-detail-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.admin-detail-stats > div { border:1px solid var(--line); border-radius:17px; padding:15px; background:#fff; display:flex; flex-direction:column; gap:3px; }
.admin-detail-stats span { color:#81756a; font-size:11px; font-weight:850; text-transform:uppercase; }
.admin-detail-stats strong { font-size:23px; }
.admin-detail-stats small { color:#8b8076; }
.admin-user-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.admin-detail-card { border:1px solid var(--line); border-radius:19px; background:#fff; padding:17px; min-width:0; }
.admin-detail-card h3 { margin:0 0 13px; }
.admin-detail-stack { display:grid; gap:14px; }
.admin-data-list { margin:0; display:grid; }
.admin-data-list > div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.admin-data-list > div:last-child { border-bottom:0; }
.admin-data-list dt { color:#81756a; font-weight:800; }
.admin-data-list dd { margin:0; font-weight:750; word-break:break-word; }
.admin-activity-list { display:grid; max-height:520px; overflow:auto; padding-right:3px; }
.admin-activity-item { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.admin-activity-item:last-child { border-bottom:0; }
.admin-activity-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:11px; background:#f4eee7; }
.admin-activity-item > div { display:flex; flex-direction:column; gap:2px; }
.admin-activity-item small { color:#8b8076; }
.admin-detail-row { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.admin-detail-row:last-child { border-bottom:0; }
.admin-detail-row > div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.admin-detail-row small { color:#8b8076; font-size:11px; }
.positive { color:#16845f; }
.negative { color:#a34238; }
.empty.compact { padding:18px; }

@media (max-width: 900px) {
  .admin-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-dashboard-grid, .admin-user-columns { grid-template-columns:1fr; }
  .admin-user-filters { grid-template-columns:1fr 1fr; }
  .admin-search-field { grid-column:1/-1; }
}
@media (max-width: 600px) {
  .admin-tabs { width:100%; overflow:auto; flex-wrap:nowrap; }
  .admin-tab { white-space:nowrap; flex:1; }
  .admin-stat-grid, .admin-detail-stats { grid-template-columns:1fr 1fr; }
  .admin-user-filters { grid-template-columns:1fr; }
  .admin-search-field { grid-column:auto; }
  .admin-recent-member { grid-template-columns:auto minmax(0,1fr) auto; }
  .admin-recent-member > .help { display:none; }
  .admin-user-hero { align-items:flex-start; }
}

/* V3.9 consolidated UX, nutrition and print polish */
/* System notifications: one consistent, larger style; timing remains controlled by JS (3200 ms). */
.toast-root { position:fixed; inset:0; z-index:9998; pointer-events:none; display:block; }
.toast.toast-modern {
  position:fixed !important;
  top:10vh;
  left:50%;
  right:auto;
  bottom:auto;
  width:min(520px,calc(100vw - 32px));
  max-width:none;
  min-height:88px;
  transform:translate(-50%,0);
  display:flex;
  align-items:center;
  gap:15px;
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  color:var(--ink);
  box-shadow:0 20px 60px rgba(37,25,14,.20);
  font-weight:600;
  pointer-events:auto;
  animation:ppaToastIn .2s ease both;
}
.toast.toast-modern::before { content:none !important; }
.toast-modern .toast-icon {
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  font-size:24px;
  font-weight:950;
}
.toast-modern .toast-copy { display:grid; gap:3px; min-width:0; line-height:1.35; }
.toast-modern .toast-copy strong { font-size:16px; }
.toast-modern .toast-copy > span { color:#6e645b; font-size:13px; overflow-wrap:anywhere; }
.toast-modern.toast-success { border-color:#cce9dd; }
.toast-modern.toast-success .toast-icon { background:#e5f6ef; color:#16845f; }
.toast-modern.toast-warning { border-color:#efdcae; }
.toast-modern.toast-warning .toast-icon { background:#fff4d8; color:#9a6500; }
.toast-modern.toast-error { border-color:#efc9c5; }
.toast-modern.toast-error .toast-icon { background:#fde9e7; color:#a34238; }
.toast-modern.toast-info { border-color:#d7d5ef; }
.toast-modern.toast-info .toast-icon { background:#eeedff; color:#5c43c6; }
.toast-modern.error { border-left:1px solid #efc9c5; }
@keyframes ppaToastIn { from { opacity:0; transform:translate(-50%,-10px) scale(.985); } to { opacity:1; transform:translate(-50%,0) scale(1); } }

/* Compact informational tooltip. Deliberately separate from system toasts. */
.label-with-help { display:flex; align-items:center; gap:7px; width:max-content; max-width:100%; }
.info-tip {
  position:relative;
  width:18px;
  height:18px;
  border:1px solid #baaea2;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  color:#766b61;
  background:#fff;
  font-size:11px;
  font-weight:900;
  line-height:1;
  cursor:help;
  outline:none;
  flex:0 0 auto;
}
.info-tip:hover, .info-tip:focus { border-color:var(--ink); color:var(--ink); }
.info-tip-popup {
  position:absolute;
  z-index:70;
  top:calc(100% + 8px);
  left:50%;
  width:min(300px,calc(100vw - 38px));
  transform:translateX(-50%) translateY(-4px);
  display:grid;
  gap:6px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
  color:#51483f;
  box-shadow:0 13px 32px rgba(37,25,14,.14);
  font-size:10.5px;
  font-weight:600;
  line-height:1.35;
  text-align:left;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease;
}
.info-tip-popup strong { color:var(--ink); font-size:11.5px; }
.info-tip-popup span { display:block; }
.info-tip-popup small { display:block; padding-top:3px; color:#8a7d72; font-size:9.5px; }
.info-tip:hover .info-tip-popup, .info-tip:focus .info-tip-popup, .info-tip:focus-within .info-tip-popup {
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}

/* Required-rights gating */
.submit-recipe:disabled, .submit-recipe.is-disabled {
  opacity:.42;
  filter:saturate(.55);
  cursor:not-allowed;
  box-shadow:none;
}
.submit-recipe:disabled:hover, .submit-recipe.is-disabled:hover { transform:none; }

/* Creator-owned branding */
.creator-logo-editor { border-top:1px solid var(--line); padding-top:16px; }
.creator-logo-row { display:flex; align-items:center; gap:15px; flex-wrap:wrap; }
.creator-logo-preview {
  width:108px;
  height:76px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#918579;
  font-size:11px;
}
.creator-logo-preview img { width:100%; height:100%; object-fit:contain; padding:7px; }

/* Estimated nutrition */
.nutrition-card {
  border:1px solid #d8e7df;
  border-radius:20px;
  background:#fbfffd;
  padding:18px;
  display:grid;
  gap:13px;
}
.nutrition-card.compact { padding:14px; border-radius:16px; }
.nutrition-card-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.nutrition-card-head h3, .nutrition-card-head p { margin:0; }
.nutrition-card-head p { margin-top:4px; color:#7d7167; font-size:11px; }
.nutrition-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.nutrition-grid > div { border:1px solid #e4ece7; background:#fff; border-radius:14px; padding:11px; display:grid; gap:2px; }
.nutrition-grid span { color:#81766c; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.025em; }
.nutrition-grid strong { font-size:18px; }
.nutrition-disclaimer { margin:0; color:#8b8076; font-size:10px; line-height:1.45; }
.nutrition-trust-pill { display:inline-flex; width:max-content; max-width:100%; margin-top:7px; padding:7px 10px; border:1px solid #d5e8df; border-radius:999px; background:#f2fbf7; color:#197357; font-size:11px; font-weight:850; }

.admin-nutrition-card { border-color:#d9e3dd; }
.admin-nutrition-inputs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.admin-nutrition-inputs label { display:grid; gap:5px; color:#756a60; font-size:10px; font-weight:850; }
.admin-nutrition-inputs input { width:100%; min-height:42px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:9px 10px; color:var(--ink); }
.admin-nutrition-actions { display:flex; gap:9px; flex-wrap:wrap; }
.nutrition-unmatched { margin:0; padding:10px 12px; border-radius:12px; background:#fff8e8; color:#755d22; font-size:10px; line-height:1.45; }

/* Unlocked recipe tools and summary */
.unlocked-recipe-tools { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin-bottom:13px; }
.recipe-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:4px 0 16px; }
.recipe-facts > span { display:grid; gap:2px; padding:11px; border:1px solid var(--line); border-radius:14px; background:#faf7f3; color:#80746a; font-size:10px; }
.recipe-facts b { color:var(--ink); font-size:15px; }

/* Creator review avatar: public creator photo -> member avatar -> visible PPA fallback. */
.admin-review-avatar { position:relative; overflow:hidden; background:#eee7df; }
.admin-review-avatar .admin-avatar-fallback { position:absolute; inset:0; display:grid; place-items:center; font-size:10px; font-weight:950; color:#675d54; }
.admin-review-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }

/* Creator dashboard greeting gets a little more presence without changing layout. */
.page > .section-head:first-child h2 { font-size:clamp(30px,3vw,42px); letter-spacing:-.035em; line-height:1.05; }
.page > .section-head:first-child p { font-size:14px; }

@media (max-width:760px) {
  .toast.toast-modern { top:8vh; min-height:78px; padding:15px 16px; border-radius:19px; }
  .toast-modern .toast-icon { width:42px; height:42px; font-size:21px; }
  .info-tip-popup { left:0; transform:translateY(-4px); }
  .info-tip:hover .info-tip-popup, .info-tip:focus .info-tip-popup, .info-tip:focus-within .info-tip-popup { transform:translateY(0); }
  .nutrition-grid, .admin-nutrition-inputs, .recipe-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  .nutrition-grid, .admin-nutrition-inputs, .recipe-facts { grid-template-columns:1fr 1fr; }
  .creator-logo-row { align-items:flex-start; }
}
.nutrition-estimate-badge { display:inline-flex; align-items:center; padding:6px 9px; border-radius:999px; background:#e8f5ee; color:#197357; font-size:10px; font-weight:900; white-space:nowrap; }
.nutrition-grid small { color:#84786e; font-size:10px; }
.nutrition-grid > div > span { text-transform:none; letter-spacing:0; font-size:10px; font-weight:700; }
.nutrition-note { margin:0; color:#8b8076; font-size:10px; line-height:1.45; }
.admin-nutrition-card { border:1px solid #d9e3dd; border-radius:19px; background:#fbfffd; padding:17px; display:grid; gap:13px; }
.nutrition-match-ok { margin:0; padding:10px 12px; border-radius:12px; background:#eef9f4; color:#197357; font-size:10px; font-weight:750; }
.purchase-confirm-summary { display:grid; gap:4px; margin:12px 0; padding:12px 14px; border:1px solid var(--line); border-radius:14px; background:#faf7f3; }
.purchase-confirm-summary p { margin:0; display:flex; justify-content:space-between; gap:12px; }


/* Authentication / password recovery */
.password-field { position:relative; display:flex; align-items:center; }
.password-field input { width:100%; padding-right:52px !important; }
.password-toggle {
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  width:38px; height:38px; border:0; border-radius:50%; background:transparent;
  color:#6d6259; cursor:pointer; font-size:18px; display:grid; place-items:center;
}
.password-toggle:hover, .password-toggle:focus-visible { background:#f4ede5; color:#17130f; outline:none; }
.auth-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.forgot-password-link { font-size:13px; margin-left:auto; }
.reset-sent-modal .modal-body { text-align:center; }
.reset-mail-icon { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; margin:0 auto 14px; background:#fff2e8; color:#e95b35; font-size:28px; }
@media (max-width:560px) { .auth-row { align-items:flex-start; gap:10px; } .forgot-password-link { margin-left:0; } }

.password-eye-svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
