.ft602-page {
  --ft-ink: #252725;
  --ft-muted: #747873;
  --ft-sage: #dce8df;
  --ft-cream: #f2e8d8;
}

body.ft602-drawer-open {
  overflow: hidden;
}

body.ft602-drawer-open #family-table {
  animation: none !important;
  transform: none !important;
}

.ft602-shell {
  display: grid;
  gap: 16px;
}

.ft602-child-nav,
.ft602-section-head,
.ft602-privacy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ft602-child-nav button {
  min-height: 44px;
  border: 1px solid rgba(68, 78, 70, .1);
  border-radius: 999px;
  padding: 10px 15px;
  color: #515852;
  background: rgba(255, 255, 255, .72);
  font-weight: 740;
}

.ft602-child-nav span {
  color: #92958f;
  font-size: 12px;
}

.ft602-hero,
.ft602-mood,
.ft602-table,
.ft602-decision,
.ft602-privacy {
  border: 1px solid rgba(255, 255, 255, .84);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .91), rgba(242, 246, 242, .75));
  box-shadow: 0 18px 52px rgba(43, 52, 46, .07), inset 0 1px rgba(255, 255, 255, .92);
  backdrop-filter: blur(22px);
}

.ft602-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr);
  align-items: end;
  gap: 24px;
  padding: 28px;
}

.ft602-kicker {
  color: #829086;
  font-size: 11px;
  font-weight: 780;
  letter-spacing: .17em;
}

.ft602-hero h2,
.ft602-mood h2,
.ft602-section-head h2,
.ft602-privacy-head h2,
.ft602-drawer-head h2 {
  margin: 8px 0;
  color: var(--ft-ink);
  font: 700 clamp(27px, 4vw, 43px)/1.12 Georgia, "Songti SC", serif;
}

.ft602-hero p,
.ft602-section-head p,
.ft602-privacy > p {
  margin: 0;
  color: var(--ft-muted);
  line-height: 1.7;
}

.ft602-draft-state {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 21px;
  background: linear-gradient(145deg, rgba(223, 234, 226, .9), rgba(255, 255, 255, .72));
}

.ft602-draft-state > span {
  display: grid;
  flex: 0 0 34px;
  place-items: center;
  height: 34px;
  border-radius: 50%;
  color: #617367;
  background: rgba(255, 255, 255, .75);
}

.ft602-draft-state b,
.ft602-draft-state small {
  display: block;
}

.ft602-draft-state b {
  color: #45564b;
  font-size: 14px;
}

.ft602-draft-state small {
  margin-top: 5px;
  color: #758078;
  font-size: 11px;
  line-height: 1.5;
}

.ft602-mood {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 24px;
}

.ft602-mood h2 {
  margin-bottom: 0;
  font-size: 23px;
}

.ft602-mood > div:last-child,
.ft602-assignment > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.ft602-mood button,
.ft602-assignment button,
.ft602-filters button {
  min-height: 44px;
  border: 1px solid rgba(74, 82, 76, .1);
  border-radius: 999px;
  padding: 10px 15px;
  color: #6d716d;
  background: rgba(255, 255, 255, .68);
  font-weight: 740;
}

.ft602-mood button.active,
.ft602-assignment button.active,
.ft602-filters button.active {
  border-color: rgba(102, 126, 109, .17);
  color: #405448;
  background: linear-gradient(145deg, var(--ft-sage), rgba(255, 255, 255, .82));
  box-shadow: 0 8px 20px rgba(72, 97, 79, .09);
}

.ft602-table,
.ft602-decision,
.ft602-privacy {
  padding: 24px;
}

.ft602-relationship-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(72, 87, 76, .09);
}

.ft602-relationship-actions div {
  display: grid;
  gap: 5px;
  max-width: 680px;
}

.ft602-relationship-actions b {
  color: var(--ft-ink);
  font-size: 14px;
}

.ft602-relationship-actions small {
  color: var(--ft-muted);
  font-size: 12px;
  line-height: 1.65;
}

.ft602-relationship-actions button {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(132, 93, 83, .18);
  border-radius: 999px;
  color: #785b54;
  background: rgba(250, 245, 242, .76);
  font-weight: 720;
}

.ft602-relationship-actions button:disabled {
  opacity: .48;
}

.ft602-section-head,
.ft602-privacy-head {
  align-items: flex-end;
  margin-bottom: 17px;
}

.ft602-section-head h2,
.ft602-privacy-head h2 {
  font-size: 27px;
}

.ft602-count,
.ft602-privacy-head > span {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 8px 11px;
  color: #5f7065;
  background: rgba(231, 237, 232, .82);
  font-size: 12px;
  font-weight: 740;
}

.ft602-table-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.ft602-table-dish {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 112px;
  padding: 15px;
  border: 1px solid rgba(72, 87, 76, .09);
  border-radius: 21px;
  background: rgba(255, 255, 255, .72);
}

.ft602-table-dish small {
  color: #849087;
  font-size: 10px;
}

.ft602-table-dish b {
  padding-right: 24px;
  color: var(--ft-ink);
  font: 700 18px/1.25 Georgia, "Songti SC", serif;
}

.ft602-table-dish > button[data-remove-family-choice] {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  color: #7b817c;
  background: rgba(238, 241, 238, .92);
}

.ft602-shared-dish {
  min-height: 176px;
  gap: 12px;
}

.ft602-shared-dish > b {
  padding-right: 0;
}

.ft602-shared-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 25px;
}

.ft602-shared-status span {
  border-radius: 999px;
  padding: 5px 8px;
  color: #596b5f;
  background: rgba(222, 234, 225, .82);
  font-size: 10px;
  font-weight: 760;
}

.ft602-shared-status span.both {
  color: #5d4d39;
  background: rgba(241, 226, 203, .9);
}

.ft602-shared-status span.accept {
  color: #70697a;
  background: rgba(234, 230, 242, .86);
}

.ft602-intent-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.ft602-intent-actions button {
  min-height: 38px;
  border: 1px solid rgba(77, 91, 81, .1);
  border-radius: 13px;
  padding: 7px 8px;
  color: #68726b;
  background: rgba(248, 250, 248, .82);
  font-size: 11px;
  font-weight: 740;
}

.ft602-intent-actions button.active {
  border-color: rgba(84, 112, 92, .2);
  color: #405448;
  background: linear-gradient(145deg, rgba(216, 232, 220, .95), rgba(255, 255, 255, .86));
  box-shadow: 0 7px 16px rgba(66, 94, 74, .08);
}

.ft602-intent-actions button[data-family-intent="accept"].active {
  border-color: rgba(114, 100, 130, .16);
  color: #655c70;
  background: linear-gradient(145deg, rgba(233, 229, 241, .95), rgba(255, 255, 255, .86));
}

.ft602-intent-actions button:disabled {
  cursor: wait;
  opacity: .58;
}

.ft602-final-pick {
  min-height: 38px;
  border: 1px dashed rgba(129, 105, 72, .2);
  border-radius: 13px;
  padding: 7px 9px;
  color: #75664f;
  background: rgba(248, 242, 232, .72);
  font-size: 11px;
  font-weight: 760;
}

.ft602-final-pick.active {
  border-style: solid;
  color: #57472f;
  background: linear-gradient(145deg, rgba(241, 226, 203, .96), rgba(255, 255, 255, .86));
  box-shadow: 0 7px 16px rgba(103, 80, 49, .08);
}

.ft602-table-empty {
  display: grid;
  justify-items: center;
  padding: 30px 18px;
  border: 1px dashed rgba(76, 91, 80, .16);
  border-radius: 21px;
  color: #8a908b;
  text-align: center;
}

.ft602-table-empty span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  color: #5f7465;
  background: var(--ft-sage);
  font-size: 22px;
}

.ft602-table-empty p {
  margin: 11px 0 0;
}

.ft602-table-actions {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(3, auto);
  gap: 9px;
  margin-top: 16px;
}

.ft602-table-actions.bound {
  grid-template-columns: minmax(220px, 1fr) auto auto;
}

.ft602-sync-note {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
  padding: 12px 14px;
  border-radius: 17px;
  color: #5c685f;
  background: rgba(229, 237, 231, .62);
}

.ft602-sync-note > span {
  display: grid;
  flex: 0 0 31px;
  place-items: center;
  height: 31px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
}

.ft602-sync-note b,
.ft602-sync-note small {
  display: block;
}

.ft602-sync-note b {
  font-size: 12px;
}

.ft602-sync-note small {
  margin-top: 3px;
  color: #7f8781;
  font-size: 10px;
  line-height: 1.45;
}

.ft602-table-actions button,
.ft602-drawer-foot button,
.ft602-shopping > button {
  min-height: 48px;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 999px;
  padding: 10px 18px;
  color: #fff;
  background: #26302a;
  font-weight: 750;
}

.ft602-table-actions .ft602-open-menu {
  border: 1px dashed rgba(76, 99, 83, .22);
  color: #506557;
  background: rgba(221, 234, 224, .55);
  text-align: left;
}

.ft602-table-actions .soft {
  border-color: rgba(67, 75, 69, .1);
  color: #687069;
  background: rgba(255, 255, 255, .72);
}

.ft602-table-actions button:disabled {
  cursor: not-allowed;
  opacity: .4;
}

.ft602-decision {
  background: linear-gradient(145deg, rgba(247, 239, 226, .9), rgba(255, 255, 255, .84));
}

.ft602-decided-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.ft602-decided-list > div {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px;
  border-radius: 17px;
  background: rgba(255, 255, 255, .68);
}

.ft602-decided-list span {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 50%;
  color: #526959;
  background: rgba(225, 235, 227, .9);
}

.ft602-assignment {
  display: grid;
  gap: 9px;
  margin-top: 17px;
  padding-top: 17px;
  border-top: 1px solid rgba(80, 72, 57, .1);
}

.ft602-assignment > span {
  color: #7b756b;
  font-size: 12px;
  font-weight: 720;
}

.ft602-shopping {
  margin-top: 17px;
  padding: 17px;
  border-radius: 21px;
  background: rgba(255, 255, 255, .65);
}

.ft602-shopping > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.ft602-shopping > div:first-child span {
  color: #8a8479;
  font-size: 12px;
}

.ft602-shopping-items {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 13px 0;
}

.ft602-shopping-items span {
  padding: 7px 9px;
  border-radius: 999px;
  color: #6f6250;
  background: #f3ede2;
  font-size: 11px;
}

.ft602-shopping > small {
  display: block;
  margin-top: 10px;
  color: #8a8479;
  font-size: 10px;
  line-height: 1.5;
}

.ft602-reset {
  margin-top: 15px;
  border: 0;
  color: #8a8277;
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ft602-privacy > p {
  max-width: 760px;
  margin-bottom: 18px;
}

.ft602-privacy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
}

.ft602-privacy-grid > div {
  padding: 17px;
  border: 1px solid rgba(74, 88, 78, .08);
  border-radius: 21px;
  background: rgba(224, 235, 227, .55);
}

.ft602-privacy-grid > div.never {
  background: rgba(246, 239, 228, .65);
}

.ft602-privacy-grid b {
  color: #4f6255;
}

.ft602-privacy-grid ul {
  display: grid;
  gap: 7px;
  margin: 12px 0 0;
  padding-left: 18px;
  color: #707670;
  font-size: 12px;
  line-height: 1.55;
}

.ft602-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: end center;
  padding: 18px;
  background: rgba(28, 33, 29, .18);
  backdrop-filter: blur(8px);
}

.ft602-drawer {
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
  width: min(700px, 100%);
  max-height: min(760px, calc(100vh - 28px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .94);
  border-radius: 33px;
  background: rgba(249, 251, 249, .91);
  box-shadow: 0 34px 100px rgba(20, 29, 23, .27), inset 0 1px rgba(255, 255, 255, .98);
  backdrop-filter: blur(30px) saturate(135%);
  animation: ft602DrawerIn .25s cubic-bezier(.22, .8, .24, 1) both;
}

.ft602-drawer-handle {
  width: 42px;
  height: 5px;
  margin: 10px auto 2px;
  border-radius: 99px;
  background: rgba(59, 68, 61, .16);
}

.ft602-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 20px 12px;
}

.ft602-drawer-head h2 {
  margin-bottom: 0;
  font-size: 27px;
}

.ft602-drawer-head button {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(74, 82, 76, .1);
  border-radius: 50%;
  color: #676d68;
  background: rgba(255, 255, 255, .74);
  font-size: 21px;
}

.ft602-search {
  position: relative;
  margin: 0 20px 11px;
}

.ft602-search span {
  position: absolute;
  top: 50%;
  left: 15px;
  color: #9ba09c;
  transform: translateY(-50%);
}

.ft602-search input {
  width: 100%;
  height: 48px;
  border: 1px solid rgba(75, 86, 78, .09);
  border-radius: 17px;
  outline: 0;
  padding: 0 16px 0 43px;
  color: var(--ft-ink);
  background: rgba(255, 255, 255, .76);
}

.ft602-search input:focus {
  border-color: rgba(82, 115, 92, .28);
  box-shadow: 0 0 0 4px rgba(123, 154, 132, .09);
}

.ft602-filters {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 0 20px 13px;
  scrollbar-width: none;
}

.ft602-filters::-webkit-scrollbar {
  display: none;
}

.ft602-filters button {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 7px 13px;
  font-size: 12px;
}

.ft602-menu-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  overflow: auto;
  padding: 2px 20px 18px;
}

.ft602-menu-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px;
  min-height: 74px;
  border: 1px solid rgba(69, 80, 72, .08);
  border-radius: 18px;
  background: rgba(255, 255, 255, .68);
}

.ft602-menu-row.selected {
  border-color: rgba(76, 112, 87, .22);
  background: linear-gradient(145deg, rgba(218, 234, 222, .9), rgba(255, 255, 255, .82));
}

.ft602-menu-pick {
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 0;
  padding: 10px;
  color: var(--ft-ink);
  background: transparent;
  text-align: left;
}

.ft602-menu-check {
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border-radius: 12px;
  color: #69736c;
  background: #f0f3f0;
}

.ft602-menu-row.selected .ft602-menu-check {
  color: #fff;
  background: #607a68;
}

.ft602-menu-pick b,
.ft602-menu-pick small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ft602-menu-pick b {
  font-size: 14px;
}

.ft602-menu-pick small {
  margin-top: 4px;
  color: #929792;
  font-size: 10px;
}

.ft602-menu-detail {
  display: grid;
  place-items: center;
  min-width: 36px;
  border: 0;
  color: #9ba09c;
  background: transparent;
  font-size: 18px;
}

.ft602-no-result {
  grid-column: 1 / -1;
  display: grid;
  justify-items: center;
  padding: 34px;
  color: #8d938e;
  text-align: center;
}

.ft602-no-result span {
  font-size: 24px;
}

.ft602-no-result p {
  margin: 9px 0 0;
}

.ft602-drawer-foot {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 15px;
  padding: 13px 20px calc(13px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(78, 88, 81, .08);
  background: rgba(250, 251, 250, .88);
}

.ft602-drawer-foot b,
.ft602-drawer-foot small {
  display: block;
}

.ft602-drawer-foot b {
  font-size: 13px;
}

.ft602-drawer-foot small {
  margin-top: 3px;
  color: #8c928d;
  font-size: 10px;
}

.ft602-drawer-foot button {
  min-width: 145px;
}

.ft602-invite-page {
  --invite-lilac: #e9e6f2;
  --invite-sage: #dce8df;
  --invite-cream: #f3eadc;
}

.ft602-invite-shell {
  display: grid;
  gap: 16px;
}

.ft602-child-back {
  justify-self: start;
  min-height: 44px;
  border: 1px solid rgba(79, 89, 82, .09);
  border-radius: 999px;
  padding: 9px 16px;
  color: #5d6961;
  background: rgba(255, 255, 255, .66);
}

.ft602-invite-hero,
.ft602-invite-picker,
.ft602-invite-login,
.ft602-invite-result,
.ft602-invite-loading,
.ft602-invite-expired,
.ft602-invite-join,
.ft602-invite-confirm,
.ft602-invite-bound,
.ft602-invite-privacy {
  border: 1px solid rgba(255, 255, 255, .86);
  border-radius: 30px;
  padding: 25px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .85), rgba(236, 243, 238, .68));
  box-shadow: 0 18px 46px rgba(41, 55, 47, .08), inset 0 1px rgba(255, 255, 255, .96);
  backdrop-filter: blur(24px) saturate(120%);
}

.ft602-invite-hero {
  display: grid;
  gap: 9px;
  background: radial-gradient(circle at 88% 10%, rgba(222, 217, 238, .62), transparent 35%), linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(230, 240, 233, .74));
}

.ft602-invite-hero h2,
.ft602-invite-result h2,
.ft602-invite-loading h2,
.ft602-invite-expired h2,
.ft602-invite-bound h2 {
  max-width: 760px;
  margin: 0;
  color: #292c29;
  font-size: clamp(30px, 4.5vw, 48px);
  letter-spacing: -.045em;
}

.ft602-invite-hero p,
.ft602-invite-result p,
.ft602-invite-loading p,
.ft602-invite-expired p,
.ft602-invite-login p,
.ft602-invite-join p,
.ft602-invite-confirm p,
.ft602-invite-bound p,
.ft602-invite-privacy p {
  margin: 0;
  color: #747a75;
  line-height: 1.65;
}

.ft602-invite-hero small,
.ft602-invite-result > small {
  color: #777f79;
}

.ft602-invite-picker {
  display: grid;
  gap: 16px;
}

.ft602-invite-picker h3 {
  margin: 4px 0 0;
  font-size: 23px;
}

.ft602-invite-picker .ft602-section-head > span {
  min-width: 52px;
  border-radius: 999px;
  padding: 7px 11px;
  color: #5e7063;
  background: rgba(220, 232, 223, .74);
  font-size: 12px;
  font-weight: 760;
  text-align: center;
}

.ft602-invite-recipes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.ft602-invite-recipe {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-height: 72px;
  border: 1px solid rgba(78, 88, 81, .08);
  border-radius: 19px;
  padding: 11px;
  color: #303531;
  background: rgba(255, 255, 255, .7);
  text-align: left;
}

button.ft602-invite-recipe.selected {
  border-color: rgba(87, 115, 96, .2);
  background: linear-gradient(145deg, rgba(220, 234, 224, .92), rgba(255, 255, 255, .82));
}

.ft602-invite-recipe b,
.ft602-invite-recipe small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ft602-invite-recipe small {
  margin-top: 4px;
  color: #8d938e;
  font-size: 10px;
}

.ft602-invite-check {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 13px;
  color: #657068;
  background: #eef2ef;
  font-weight: 800;
}

.ft602-invite-recipe.selected .ft602-invite-check,
div.ft602-invite-recipe .ft602-invite-check {
  color: #fff;
  background: #617a69;
}

.ft602-invite-create,
.ft602-invite-login button,
.ft602-invite-result-actions button,
.ft602-invite-expired button,
.ft602-invite-join button,
.ft602-invite-confirm button,
.ft602-invite-bound button {
  min-height: 50px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 999px;
  padding: 11px 19px;
  color: #fff;
  background: #28312b;
  font-weight: 760;
}

.ft602-invite-create:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.ft602-invite-confirm button:disabled {
  cursor: wait;
  opacity: .58;
}

.ft602-invite-login,
.ft602-invite-join {
  display: grid;
  justify-items: start;
  gap: 10px;
  background: linear-gradient(145deg, rgba(243, 234, 220, .88), rgba(255, 255, 255, .8));
}

.ft602-invite-confirm,
.ft602-invite-bound {
  display: grid;
  gap: 15px;
  background: radial-gradient(circle at 88% 8%, rgba(220, 232, 223, .74), transparent 38%), linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(238, 234, 247, .7));
}

.ft602-invite-confirm h3 {
  margin: 0;
  color: #2d312e;
  font-size: 24px;
  letter-spacing: -.025em;
}

.ft602-invite-people {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.ft602-invite-people div {
  min-width: 0;
  border: 1px solid rgba(75, 87, 79, .08);
  border-radius: 19px;
  padding: 14px;
  background: rgba(255, 255, 255, .68);
}

.ft602-invite-people span,
.ft602-invite-people b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ft602-invite-people span {
  color: #8a918c;
  font-size: 11px;
}

.ft602-invite-people b {
  margin-top: 5px;
  color: #343a36;
  font-size: 17px;
}

.ft602-invite-people i {
  color: #758279;
  font-style: normal;
  font-weight: 800;
}

.ft602-invite-join {
  justify-items: stretch;
  text-align: center;
}

.ft602-invite-error {
  margin: 0;
  color: #a34b4b;
  font-size: 13px;
}

.ft602-invite-privacy {
  background: linear-gradient(145deg, rgba(237, 234, 246, .8), rgba(255, 255, 255, .76));
}

.ft602-invite-privacy b {
  display: block;
  margin-bottom: 8px;
  color: #525769;
}

.ft602-invite-empty,
.ft602-invite-loading,
.ft602-invite-expired {
  display: grid;
  justify-items: center;
  gap: 10px;
  text-align: center;
}

.ft602-invite-empty {
  padding: 30px;
  border: 1px dashed rgba(77, 90, 80, .14);
  border-radius: 21px;
  color: #7a827c;
}

.ft602-invite-empty span,
.ft602-invite-expired > span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: #647269;
  background: var(--invite-sage);
  font-size: 22px;
}

.ft602-invite-result {
  display: grid;
  gap: 13px;
  background: radial-gradient(circle at 80% 5%, rgba(219, 232, 223, .8), transparent 36%), rgba(255, 255, 255, .82);
}

.ft602-invite-code {
  justify-self: start;
  border: 1px solid rgba(70, 86, 75, .1);
  border-radius: 18px;
  padding: 15px 18px;
  color: #334039;
  background: rgba(255, 255, 255, .76);
  font: 800 21px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .08em;
}

.ft602-invite-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.ft602-invite-result-actions .muted {
  color: #6e746f;
  background: rgba(255, 255, 255, .72);
}

@keyframes ft602DrawerIn {
  from { opacity: 0; transform: translateY(28px) scale(.985); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 720px) {
  .ft602-shell { gap: 13px; }
  .ft602-child-nav span { display: none; }
  .ft602-hero { grid-template-columns: 1fr; padding: 21px; }
  .ft602-hero h2 { font-size: 35px; }
  .ft602-mood { display: grid; padding: 18px; }
  .ft602-mood > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .ft602-mood button { padding-inline: 8px; }
  .ft602-table,
  .ft602-decision,
  .ft602-privacy { padding: 19px; }
  .ft602-section-head,
  .ft602-privacy-head { align-items: flex-start; }
  .ft602-table-grid,
  .ft602-decided-list,
  .ft602-privacy-grid { grid-template-columns: 1fr 1fr; }
  .ft602-table-dish { min-height: 96px; }
  .ft602-shared-dish { min-height: 172px; }
  .ft602-table-actions { grid-template-columns: 1fr 1fr; }
  .ft602-table-actions .ft602-open-menu { grid-column: 1 / -1; text-align: center; }
  .ft602-table-actions .ft602-open-invite { grid-column: 1 / -1; }
  .ft602-table-actions.bound { grid-template-columns: 1fr; }
  .ft602-relationship-actions { align-items: stretch; flex-direction: column; }
  .ft602-relationship-actions button { width: 100%; }
  .ft602-shopping > div:first-child { display: grid; }
  .ft602-assignment > div { display: grid; grid-template-columns: repeat(3, 1fr); }
  .ft602-assignment button { padding-inline: 6px; font-size: 12px; }
  .ft602-drawer-backdrop { align-items: end; padding: 0; }
  .ft602-drawer { width: 100%; max-height: 88vh; border-bottom: 0; border-radius: 29px 29px 0 0; }
  .ft602-menu-list { grid-template-columns: 1fr; }
  .ft602-invite-hero,
  .ft602-invite-picker,
  .ft602-invite-login,
  .ft602-invite-result,
  .ft602-invite-loading,
  .ft602-invite-expired,
  .ft602-invite-join,
  .ft602-invite-confirm,
  .ft602-invite-bound,
  .ft602-invite-privacy { padding: 20px; border-radius: 25px; }
  .ft602-invite-recipes { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .ft602-table-grid,
  .ft602-privacy-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .ft602-drawer { animation: none; }
}
