/* Sara Santhan - periods and fertile days (patient_app_santhan.js, 5 Oct 2026).
   The screen he approved: a light orange page, white cards in Sara Aahaar's own glass (its .aa
   shell and .aa-top), the month as a 3D desk calendar with raised day keys, his 3D icons.
   While it is open it owns the phone (body.sn-on), like Sara Aahaar and Sara Vyayam. */
body.sn-on #top, body.sn-on #tabs, body.sn-on .pc-fab, body.sn-on .ptr { display:none !important; }
body.sn-on, body.sn-on .aa.sn { background:linear-gradient(180deg,#FFF6EE 0%,#FFEBDB 100%) fixed !important; }
body.sn-on main { padding-top:0; padding-bottom:0; }
.sn { min-height:100vh; padding-bottom:36px; }
.sn .aa-top .t b .sn-name, .gh-sec b .sn-name { color:#C2480A; }
.sn-pic { display:inline-block; flex:none; width:34px; height:34px; font-style:normal; }
.sn-pic img { display:block; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }

/* ---- today: the cycle as a ring */
.sn-hero { padding:16px 14px 14px; margin-top:14px; }
.sn-hero .row { display:flex; align-items:center; gap:14px; }
.sn-ring { position:relative; width:156px; height:156px; flex:none; }
.sn-ring svg { display:block; width:100%; height:100%; filter:drop-shadow(0 4px 5px rgba(20,27,45,.16)); }
.sn-ring .in { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1; }
.sn-ring .in small { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#6B7691; }
.sn-ring .in b { font-size:40px; font-weight:800; letter-spacing:-.03em; color:#141B2D; margin:1px 0; }
.sn-side { flex:1; min-width:0; }
.sn-now { display:inline-block; font-style:normal; font-size:14px; font-weight:800; color:#fff; background:#55617C; border-radius:999px; padding:7px 13px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #3A465F; line-height:1.25; }
.sn-now.f { background:#2E9E6B; box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 3px 0 #12734A; }
.sn-now.b { background:#12734A; box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 3px 0 #0A4A2F; }
.sn-now.p, .sn-now.l { background:#DC3B41; box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 3px 0 #A3161C; }
.sn-now.u { background:#B8440A; box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #7E2E06; }
.sn-side p { margin:11px 0 0; font-size:15px; font-weight:700; color:#141B2D; line-height:1.35; }
.sn-est { display:inline-block; margin-top:9px; font-size:12px; font-weight:700; color:#6B7691; border:1px dashed #C7CDDA; border-radius:999px; padding:4px 10px; }
.sn-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid rgba(20,27,45,.07); }
.sn-facts div { text-align:center; min-width:0; }
.sn-facts .sn-pic { display:block; width:32px; height:32px; margin:0 auto 4px; }
.sn-facts small { display:block; font-size:11.5px; font-weight:700; color:#6B7691; line-height:1.25; }
.sn-facts b { display:block; font-size:16px; font-weight:800; color:#141B2D; margin-top:3px; }
.sn-none { display:flex; align-items:center; gap:12px; padding:8px 4px; }
.sn-none b { font-size:16px; font-weight:700; color:#141B2D; line-height:1.35; }
.sn-none .sn-pic { width:44px; height:44px; }
.sn-tip.warn { background:#FFF6E9; border-color:#F3D29B; color:#7A4A05; }
.sn-tip { margin-top:12px; padding:13px 14px; border-radius:20px; background:#E9F7F0; border:1px solid #BFE5D1; font-size:15px; font-weight:700; color:#0F5C3B; line-height:1.4; }

/* ---- today: what she marks */
.sn-log { padding:14px; margin-top:12px; }
.sn-log h3 { margin:0 0 10px; font-size:15px; font-weight:800; color:#141B2D; }
.sn-big { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:58px; padding:6px 12px; border-radius:16px; border:1.5px solid #F3B5B7;
  background:linear-gradient(180deg,#FFF5F5,#FFE4E5); color:#8F1D1D; font:inherit; font-size:16px; font-weight:800; cursor:pointer;
  box-shadow:inset 0 1px 0 #fff, 0 3px 0 #EDA5A8, 0 7px 12px rgba(190,30,36,.12); }
.sn-big .sn-pic { width:32px; height:36px; }
.sn-big em { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#DC3B41; color:#fff; }
.sn-big em svg { width:14px; height:14px; }
.sn-big.on { background:linear-gradient(180deg,#FFE4E5,#FBC9CB); border-color:#DC3B41; }
.sn-lbl { display:flex; align-items:center; gap:7px; margin:14px 0 8px; font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#6B7691; }
.sn-lbl .sn-pic { width:28px; height:28px; }
.sn-lbl small { margin-left:auto; font-size:12px; font-weight:700; letter-spacing:0; text-transform:none; color:#12734A; }
.sn-heavy { margin:10px 2px 0; font-size:13.5px; font-weight:700; color:#8F1D1D; line-height:1.4; }
/* "move the first day?" - asked in the place of the button that was tapped */
.sn-move { padding:13px 14px; border-radius:16px; border:1.5px solid #F3B5B7; background:#FFF5F5; }
.sn-move b { display:block; font-size:15.5px; font-weight:800; color:#8F1D1D; line-height:1.35; }
.sn-move div { display:flex; gap:8px; margin-top:11px; }
.sn-move button { flex:1; min-height:46px; border-radius:14px; border:1.5px solid #E6E9F0; background:#fff; font:inherit; font-size:15px; font-weight:800; color:#253049; cursor:pointer; }
.sn-move button.yes { background:#DC3B41; border-color:#DC3B41; color:#fff; }
.sn-opts { display:grid; grid-template-columns:1fr; gap:8px; }
.sn-opt { text-align:left; line-height:1.3; min-height:46px; padding:8px 13px; border-radius:14px; border:1.5px solid #E6E9F0; background:#fff; font:inherit; font-size:14.5px; font-weight:700; color:#253049;
  cursor:pointer; box-shadow:inset 0 1px 0 #fff, 0 3px 0 #DCE1EC; }
.sn-opt.on { background:#E9F7F0; border-color:#2E9E6B; color:#12734A; box-shadow:inset 0 1px 0 #fff, 0 3px 0 #8FCFAF; }
.sn-ticks { display:grid; grid-template-columns:1fr; gap:10px; margin-top:13px; }
.sn-tick { display:flex; align-items:center; gap:12px; min-height:58px; padding:8px 12px; border-radius:16px; border:1.5px solid #E6E9F0; background:#fff; font:inherit; font-size:15px;
  font-weight:700; color:#253049; text-align:left; cursor:pointer; box-shadow:inset 0 1px 0 #fff, 0 3px 0 #DCE1EC, 0 6px 10px rgba(20,27,45,.07); }
.sn-tick em { flex:1; min-width:0; font-style:normal; }
.sn-tick > i:not(.sn-pic) { flex:none; width:26px; height:26px; border-radius:50%; border:2.5px solid #D6DBE6; display:grid; place-items:center; color:transparent; font-style:normal; }
.sn-tick > i:not(.sn-pic) svg { width:14px; height:14px; }
.sn-tick.on { border-color:#E2570F; background:#FFF5EE; box-shadow:inset 0 1px 0 #fff, 0 3px 0 #F0B48C, 0 6px 10px rgba(226,87,15,.14); }
.sn-tick.on > i:not(.sn-pic) { background:#E2570F; border-color:#E2570F; color:#fff; }

/* ---- the month: a desk calendar, the days raised keys */
.sn-cal { padding:0 14px 16px; margin-top:12px; overflow:hidden; }
.sn-bind { position:relative; display:flex; align-items:center; justify-content:space-between; margin:0 -14px 14px; padding:10px 10px 9px;
  background:linear-gradient(180deg,#F47B33 0%,#E2570F 100%); box-shadow:inset 0 -3px 0 #B8440A, 0 3px 8px rgba(184,68,10,.25); }
.sn-bind b { font-size:16.5px; font-weight:800; color:#fff; letter-spacing:.01em; }
.sn-bind > i { position:absolute; top:-7px; width:13px; height:22px; border-radius:7px; background:linear-gradient(90deg,#8A93A8,#E9EDF5 45%,#8A93A8); box-shadow:0 2px 3px rgba(20,27,45,.35); }
.sn-bind > i:nth-child(1) { left:27%; } .sn-bind > i:nth-child(2) { right:27%; }
.sn-bind button { display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.18); color:#fff; cursor:pointer; }
.sn-bind button svg { width:20px; height:20px; }
.sn-bind button:disabled { opacity:.3; cursor:default; }
.sn-dow, .sn-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:7px 6px; text-align:center; }
.sn-dow i { font-style:normal; font-size:11.5px; font-weight:700; color:#6B7691; padding-bottom:4px; }
.sn-grid button { position:relative; height:42px; padding:0; border:0; border-radius:12px; font:inherit; font-size:14.5px; font-weight:700; color:#253049; cursor:pointer;
  background:linear-gradient(180deg,#FFFFFF 0%,#EEF1F7 100%); box-shadow:inset 0 1px 0 #fff, 0 3px 0 #CDD4E2, 0 6px 9px rgba(20,27,45,.10); }
.sn-grid button:disabled { cursor:default; }
.sn-grid .dim { background:linear-gradient(180deg,#FAFBFD,#F1F3F8); color:#A9B0BF; box-shadow:inset 0 1px 0 #fff, 0 2px 0 #E1E5EE; }
.sn-grid .p { background:linear-gradient(180deg,#F5777B 0%,#DC3B41 100%); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.45), 0 3px 0 #A3161C, 0 7px 10px rgba(190,30,36,.30); }
.sn-grid .f { background:linear-gradient(180deg,#EAF9F1 0%,#C6EBD7 100%); color:#12734A; box-shadow:inset 0 1px 0 #fff, 0 3px 0 #8FCFAF, 0 6px 9px rgba(18,115,74,.16); }
.sn-grid .b { background:linear-gradient(180deg,#27A96E 0%,#12734A 100%); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 3px 0 #0A4A2F, 0 7px 10px rgba(18,115,74,.32); }
/* a marked period day that is also a fertile / best day: the period's red, ringed in the green */
.sn-grid .pf, .sn-grid .pb { background:linear-gradient(180deg,#F5777B 0%,#DC3B41 100%); color:#fff; box-shadow:inset 0 0 0 3px #2E9E6B, 0 3px 0 #A3161C, 0 7px 10px rgba(190,30,36,.30); }
.sn-grid .pb { box-shadow:inset 0 0 0 3px #12734A, 0 3px 0 #A3161C, 0 7px 10px rgba(190,30,36,.30); }
.sn-grid .x { background:linear-gradient(180deg,#fff,#FFF1F1); color:#D93A40; box-shadow:inset 0 0 0 1.5px #E5484D, 0 3px 0 #EDA5A8, 0 6px 9px rgba(190,30,36,.12); }
.sn-grid .now { transform:translateY(-2px); outline:2.5px solid #141B2D; outline-offset:-2.5px; }
.sn-grid .picked { outline:2.5px solid #E2570F; outline-offset:1px; }
.sn-grid button > i { position:absolute; left:50%; bottom:4px; width:6px; height:6px; margin-left:-3px; border-radius:50%; background:#E2570F; box-shadow:0 0 0 1.5px #fff; }
/* a dark LH test, marked on its day */
.sn-grid button > u { position:absolute; right:4px; top:4px; width:7px; height:7px; border-radius:50%; background:#141B2D; box-shadow:0 0 0 1.5px #fff; text-decoration:none; }
.sn-not { margin:12px 0 0; font-size:13px; font-weight:700; color:#8F1D1D; line-height:1.4; }
.sn-pick { margin-top:14px; padding-top:12px; border-top:1px solid rgba(20,27,45,.08); }
.sn-pick > b { display:block; margin-bottom:9px; font-size:15px; font-weight:800; color:#141B2D; }
.sn-key { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:16px; }
.sn-key span { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:#55617C; }
.sn-key i.k3 { display:inline-block; width:15px; height:13px; border-radius:5px; }
.k3.p { background:linear-gradient(180deg,#F5777B,#DC3B41); box-shadow:0 2px 0 #A3161C; } .k3.f { background:linear-gradient(180deg,#EAF9F1,#C6EBD7); box-shadow:0 2px 0 #8FCFAF; }
.k3.b { background:linear-gradient(180deg,#27A96E,#12734A); box-shadow:0 2px 0 #0A4A2F; } .k3.x { background:#fff; box-shadow:inset 0 0 0 1.5px #E5484D, 0 2px 0 #EDA5A8; }

/* ---- the doctor */
.sn-doc { display:flex; align-items:center; gap:12px; padding:14px; margin-top:12px; }
.sn-doc div { flex:1; min-width:0; }
.sn-doc b { display:block; font-size:15.5px; font-weight:800; color:#141B2D; }
.sn-doc small { display:block; font-size:13.5px; font-weight:600; color:#55617C; margin-top:2px; }
.sn-doc.now { background:#FFF6E9 !important; border-color:#F3D29B !important; }
.sn-doc.now small { color:#7A4A05; font-weight:800; }
.sn-doc a { flex:none; display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:0 14px; border-radius:999px; background:#E2570F; color:#fff; font-size:14px;
  font-weight:800; text-decoration:none; box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #B8440A; }
.sn-doc a svg { width:17px; height:17px; }

/* ---- the questions (the cards and Yes / No are Sara Vyayam's) */
.sn-step { display:flex; align-items:center; justify-content:center; gap:14px; }
.sn-step button { width:52px; height:52px; border-radius:50%; border:1.5px solid #E6E9F0; background:#fff; font:inherit; font-size:26px; font-weight:700; color:#253049; cursor:pointer;
  box-shadow:inset 0 1px 0 #fff, 0 3px 0 #DCE1EC; }
.sn-step b { min-width:52px; text-align:center; font-size:30px; font-weight:800; color:#141B2D; }
.sn-step small { font-size:14px; font-weight:700; color:#6B7691; margin-left:-8px; }
.sn-step.off { opacity:.35; }
.sn-unsure { display:block; margin:12px auto 0; }
.sn-date { width:100%; }

/* ---- the card on Home: light orange, beside Sara Aahaar's green and Sara Vyayam's blue */
#sn-home.gh-glass { display:flex; align-items:center; gap:16px; width:100%; min-height:108px; padding:16px 18px; margin-bottom:6px; text-align:left; font:inherit; cursor:pointer;
  background:linear-gradient(160deg,#FFF6EE 0%,#FFE6D2 100%) !important; border-color:#F8D3B7 !important; }
#sn-home .r { flex:none; width:64px; height:64px; }
#sn-home .r .sn-pic { display:block; width:64px; height:64px; }
#sn-home .w { flex:1; min-width:0; }
#sn-home .w b { display:block; font-size:22px; font-weight:600; letter-spacing:-.02em; color:#0C1526; }
#sn-home .w small { display:block; margin-top:8px; font-size:14px; font-weight:500; color:#4F5C78; }

/* Telugu sits a little smaller, so it is never bigger than the English beside it */
body.te .sn-side p { font-size:14px; } body.te .sn-facts b { font-size:15px; } body.te .sn-opt, body.te .sn-tick { font-size:13.5px; }
body.te .sn-tip { font-size:14px; } body.te .sn-doc b { font-size:14.5px; } body.te .sn-big { font-size:15px; } body.te .sn-now { font-size:13px; }

/* Her cycle plan (9 Oct 2026): the doctor's lines from the follicular chart, in order. */
.sn-plan { padding: 18px 18px 8px; margin: 14px 0; }
.sn-plan h3 { margin: 0; font-size: 19px; font-weight: 800; line-height: 1.2; color: #1c2333; }
.sn-plan .by { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 2px 0 12px; color: #6b7280; font-size: 14px; }
.sn-plan .kind { background: #FFE6D2; color: #C2480A; font-weight: 800; font-size: 12px; letter-spacing: .04em; padding: 3px 10px; border-radius: 999px; }
.sn-pl-row { display: grid; grid-template-columns: 44px 1fr auto; gap: 4px 12px; align-items: center; padding: 11px 0; border-top: 1px solid #f1e6dc; }
.sn-pl-row .sn-pic img { width: 40px; height: 40px; object-fit: contain; }
.sn-pl-row .w b { display: block; font-size: 16px; color: #1c2333; }
.sn-pl-row .w small { display: block; color: #6b7280; font-size: 13px; line-height: 1.3; }
.sn-pl-when { text-align: right; font-weight: 800; font-size: 14px; line-height: 1.35; color: #1c2333; }
.sn-pl-when span { display: block; white-space: nowrap; }
.sn-pl-when i { font-style: normal; color: #12805c; }
.sn-pl-row.done { opacity: .55; }
.sn-pl-row.past { opacity: .8; }
.sn-pl-row.now { background: #FFF3E8; margin: 0 -18px; padding: 11px 18px; border-top-color: transparent; border-radius: 14px; }
.sn-pl-row.now .sn-pl-when, .sn-pl-row.next .sn-pl-when { color: #C2480A; }
.sn-took { grid-column: 2 / 4; justify-self: start; min-height: 44px; margin-top: 2px; padding: 10px 20px; border: 0; border-radius: 999px;
  background: #E2570F; color: #fff; font: inherit; font-weight: 800; font-size: 15px; box-shadow: 0 3px 0 #b8430a; }
.sn-took.no { background: #fff; color: #6b7280; box-shadow: inset 0 0 0 1.5px #e5d8cc; }
.sn-took-ask { grid-column: 2 / 4; display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.sn-took-ask .sn-took { grid-column: auto; }
.sn-took-ask label { display: grid; gap: 4px; font-size: 13px; color: #6b7280; font-weight: 700; }
.sn-took-ask input { min-height: 44px; padding: 6px 10px; border: 1.5px solid #e5d8cc; border-radius: 12px; font: inherit; font-size: 17px; background: #fff; }
.sn-tookat { grid-column: 2 / 4; color: #12805c; font-weight: 800; font-size: 14px; }
.sn-come { padding: 14px 18px; margin: 14px 0; background: #fff5f5; border: 1.5px solid #f3c3c3; border-radius: 22px; }
.sn-come b { color: #a01818; font-size: 15px; }
.sn-come ul { margin: 8px 0 0; padding-left: 18px; color: #3b1d1d; font-size: 14px; line-height: 1.5; }
.sn-grid button.pl { position: relative; }
.sn-grid button.pl::after { content: ""; position: absolute; right: 5px; top: 5px; width: 9px; height: 9px; border-radius: 50%; background: #E2570F; box-shadow: 0 0 0 2px #fff; }
.sn-key .k3.pl { width: 10px; height: 10px; border-radius: 50%; background: #E2570F; box-shadow: none; }

/* ---- Learn (patient_app_santhan_learn.js, 17 Oct 2026): three tiles at the foot, each opening its own page.
   The same light orange page and white glass cards; small, with his 3D icons. */
.snl-sec { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:22px 4px 10px; }
.snl-sec b { font-size:18px; font-weight:800; color:#141B2D; letter-spacing:-.01em; }
.snl-sec small { font-size:13px; font-weight:700; color:#C2480A; }
.snl-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.snl-tile { display:flex; flex-direction:column; align-items:center; gap:4px; min-height:128px; padding:12px 6px 11px; border-radius:20px; border:1.5px solid #F8D3B7;
  background:linear-gradient(170deg,#FFFFFF 0%,#FFF1E6 100%); font:inherit; text-align:center; cursor:pointer;
  box-shadow:inset 0 1px 0 #fff, 0 3px 0 #F0C3A0, 0 8px 14px rgba(194,72,10,.10); }
.snl-tile .sn-pic { width:48px; height:48px; margin-bottom:2px; }
.snl-tile b { font-size:14px; font-weight:800; color:#141B2D; line-height:1.2; }
.snl-tile small { font-size:11.5px; font-weight:600; color:#6B7691; line-height:1.25; }
.snl-tile:active { transform:translateY(2px); box-shadow:inset 0 1px 0 #fff, 0 1px 0 #F0C3A0; }

.snl { padding-bottom:8px; }
.snl-jump { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 2px; }
.snl-jump button { display:inline-flex; align-items:center; gap:5px; min-height:38px; padding:3px 11px 3px 5px; border-radius:999px; border:1.5px solid #F8D3B7; background:#fff;
  font:inherit; font-size:12.5px; font-weight:700; color:#7E2E06; cursor:pointer; box-shadow:0 2px 0 #F0C3A0; }
.snl-jump .sn-pic { width:26px; height:26px; }
.snl-card { padding:14px 14px 12px; margin-top:12px; scroll-margin-top:12px; }
.snl-card h3 { display:flex; align-items:center; gap:9px; margin:0 0 8px; font-size:16px; font-weight:800; color:#141B2D; line-height:1.25; }
.snl-card h3 .sn-pic { width:36px; height:36px; }
.snl-sub { margin:0 0 10px; font-size:13px; font-weight:600; color:#6B7691; line-height:1.4; }
.snl-list { list-style:none; margin:0; padding:0; }
.snl-list li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-top:1px solid rgba(20,27,45,.06); font-size:14px; font-weight:500; color:#3A465F; line-height:1.42; }
.snl-list li:first-child { border-top:0; padding-top:2px; }
.snl-list li b { font-weight:800; color:#141B2D; }
.snl-list .m { flex:none; display:grid; place-items:center; width:22px; height:22px; margin-top:1px; border-radius:50%; font-style:normal; font-size:12px; font-weight:900;
  background:#E9F7F0; color:#12734A; }
.snl-card.habit .m { background:#FFF1E6; color:#C2480A; font-size:18px; line-height:1; }
.snl-card.stop .m, .snl-card.urgent .m { background:#FFE4E5; color:#C0262C; }
.snl-card.why .m { background:#FFF6E0; color:#8A5A00; font-family:Georgia,serif; font-style:italic; }
.snl-card.stop h3 span { color:#A3161C; }
.snl-card.urgent { background:#FFF5F5 !important; border-color:#F3C3C3 !important; }
.snl-card.urgent h3 span { color:#A01818; }
.snl-card.urgent li { border-top-color:rgba(160,24,24,.08); }
.snl-call { display:inline-flex; align-items:center; gap:7px; min-height:44px; margin-top:8px; padding:0 16px; border-radius:999px; background:#E2570F; color:#fff;
  font-size:14px; font-weight:800; text-decoration:none; box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #B8440A; }
.snl-call svg { width:17px; height:17px; }
/* true or false: the belief, then the answer */
.snl-list li.snl-myth { flex-direction:column; gap:4px; }
.snl-myth .q { font-weight:700; color:#141B2D; }
.snl-myth .a { font-size:13.5px; color:#3A465F; }
.snl-myth em { display:inline-block; margin-right:7px; padding:2px 9px; border-radius:999px; font-style:normal; font-size:12px; font-weight:800; background:#FFE4E5; color:#A3161C; }
.snl-myth em.unproven, .snl-myth em.not_medical { background:#FFF1E6; color:#B8440A; }
.snl-closing { display:flex; align-items:center; gap:12px; padding:14px; margin-top:14px; background:linear-gradient(160deg,#FFF6EE,#FFE6D2) !important; border-color:#F8D3B7 !important; }
.snl-closing .sn-pic { width:40px; height:40px; }
.snl-closing b { font-size:14.5px; font-weight:800; color:#7E2E06; line-height:1.4; }
.snl-sources { margin:12px 6px 0; font-size:11.5px; font-weight:600; color:#8A93A8; line-height:1.4; text-align:center; }

/* the partner's week: four ticks, and the last weeks as small filled cups */
.snl-week .sn-ticks { margin-top:4px; gap:8px; }
.snl-week .sn-tick { min-height:52px; }
.snl-week .sn-tick .sn-pic { width:30px; height:30px; }
.snl-weeks { margin-top:12px; padding-top:10px; border-top:1px solid rgba(20,27,45,.07); }
.snl-weeks > small { display:block; font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#6B7691; margin-bottom:7px; }
.snl-weeks > div { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.snl-weeks span { display:flex; flex-direction:column; align-items:center; gap:2px; padding:7px 0 6px; border-radius:14px; background:#fff; border:1.5px solid #EEE3D9; }
.snl-weeks span.now { border-color:#E2570F; background:#FFF5EE; }
.snl-weeks i { position:relative; width:22px; height:22px; border-radius:50%; overflow:hidden; background:#F1E6DC; }
.snl-weeks i::after { content:""; position:absolute; left:0; right:0; bottom:0; height:calc(var(--f) * 100%); background:linear-gradient(180deg,#F47B33,#E2570F); }
.snl-weeks b { font-size:13px; font-weight:800; color:#141B2D; }
.snl-weeks span small { font-size:11px; font-weight:600; color:#6B7691; }

/* the count of days before the sample */
.snl-rule { display:inline-block; margin:0 0 10px; padding:5px 11px; border-radius:999px; background:#E9F7F0; color:#12734A; font-size:12.5px; font-weight:800; line-height:1.3; }
.snl-day { display:flex; align-items:center; gap:14px; }
.snl-day .num { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; width:84px; height:84px; border-radius:50%;
  background:linear-gradient(180deg,#F47B33,#E2570F); color:#fff; box-shadow:inset 0 2px 0 rgba(255,255,255,.35), 0 4px 0 #B8440A, 0 10px 16px rgba(194,72,10,.25); }
.snl-day .num small { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; opacity:.9; }
.snl-day .num b { font-size:34px; font-weight:800; line-height:1; }
.snl-day .say { flex:1; min-width:0; }
.snl-day .say small { display:block; margin-top:6px; font-size:12.5px; font-weight:600; color:#6B7691; }
.snl-state { display:inline-block; padding:6px 12px; border-radius:14px; font-size:13.5px; font-weight:800; line-height:1.3; color:#fff; background:#8A93A8; }
.snl-state.wait { background:#D98A06; } .snl-state.good { background:#2E9E6B; } .snl-state.last { background:#E2570F; } .snl-state.over { background:#DC3B41; }
.snl-bar { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin:14px 0 4px; }
.snl-bar i { display:grid; place-items:center; height:28px; border-radius:9px; font-style:normal; font-size:12px; font-weight:800; color:#8A93A8; background:#F4F1EE; border:1.5px solid transparent; }
.snl-bar i.ok { border-color:#BFE5D1; color:#12734A; }
.snl-bar i.on.lo { background:#F6D9A6; color:#7A4A05; border-color:#F6D9A6; }
.snl-bar i.on.ok { background:#2E9E6B; color:#fff; border-color:#2E9E6B; }
.snl-bar i.on.hi { background:#F47B33; color:#fff; border-color:#F47B33; }
.snl-btn { display:block; width:100%; min-height:48px; margin-top:6px; border:0; border-radius:16px; background:#E2570F; color:#fff; font:inherit; font-size:15.5px; font-weight:800; cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #B8440A; }
.snl-btn.ghost { background:#fff; color:#7E2E06; border:1.5px solid #F0C3A0; box-shadow:0 2px 0 #F0C3A0; min-height:44px; margin-top:10px; }

/* the films: For her / For him */
.snl-films { padding-bottom:6px; }
.snl-film { display:flex; align-items:center; gap:11px; padding:9px 0; border-top:1px solid rgba(20,27,45,.06); text-decoration:none; color:#141B2D; }
.snl-films h3 + .snl-film { border-top:0; }
.snl-film img { flex:none; width:96px; height:54px; border-radius:10px; object-fit:cover; background:#F1E6DC; }
.snl-film .lbl { flex:1; min-width:0; font-size:14.5px; font-weight:700; line-height:1.3; }
.snl-film .go { flex:none; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#E2570F; color:#fff; font-size:13px; box-shadow:0 2px 0 #B8440A; }
.snl-film.soon .sn-pic { width:96px; height:54px; border-radius:10px; background:#FFF1E6; display:grid; place-items:center; }
.snl-film.soon .sn-pic img { width:40px; height:40px; }
.snl-film.soon .lbl { color:#55617C; }
.snl-film.soon em { flex:none; font-style:normal; font-size:11.5px; font-weight:800; color:#B8440A; background:#FFF1E6; border-radius:999px; padding:4px 9px; }

body.te .snl-list li { font-size:13.5px; } body.te .snl-card h3 { font-size:15px; } body.te .snl-tile b { font-size:13px; }
body.te .snl-closing b { font-size:13.5px; } body.te .snl-state { font-size:12.5px; } body.te .snl-film .lbl { font-size:13.5px; }

/* ---- the food cards (17 Oct 2026): like the hospital's diet cards - the picture, the serving, kcal, the
   nutrients as small chips with numbers, one line on why. Eat freely green, only a little amber, avoid red. */
.snl-jump img { width:26px; height:26px; border-radius:50%; object-fit:cover; }
.snl-group { margin-top:18px; scroll-margin-top:12px; }
.snl-group h2 { margin:0 0 8px; }
.snl-group .tag { display:inline-block; padding:6px 13px; border-radius:999px; font-size:14px; font-weight:800; color:#fff; background:#2E9E6B;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #12734A; }
.snl-group.little .tag { background:#D98A06; box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #9A6100; }
.snl-group.avoid .tag { background:#DC3B41; box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #A3161C; }
.snl-food { display:flex; gap:11px; padding:11px; margin-top:9px; border-radius:22px; background:#fff; border:1px solid rgba(20,27,45,.06);
  box-shadow:0 1px 0 rgba(20,27,45,.04), 0 8px 18px rgba(194,72,10,.07); }
.snl-group.little .snl-food { background:#FFFCF5; border-color:#F6E3BF; }
.snl-food .pic { flex:none; width:64px; height:64px; border-radius:16px; object-fit:cover; background:#FFF1E6; }
.snl-food .body { flex:1; min-width:0; }
.snl-food .hd { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.snl-food .hd > b { font-size:15.5px; font-weight:800; color:#141B2D; line-height:1.25; }
.snl-food .kc { flex:none; display:inline-flex; align-items:baseline; gap:3px; padding:3px 9px; border-radius:999px; background:#FFF1E6; color:#B8440A; }
.snl-food .kc b { font-size:15px; font-weight:800; font-variant-numeric:tabular-nums; }
.snl-food .kc small { font-size:11px; font-weight:700; }
.snl-food .sv { display:block; margin-top:3px; font-size:12px; font-weight:600; color:#6B7691; line-height:1.35; }
.snl-food .sv b { color:#3A465F; font-weight:800; }
.snl-chips { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.snl-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 8px 3px 3px; border-radius:999px; background:#F6F7FA; border:1px solid #E8EBF2; font-size:12px; line-height:1; }
.snl-chip i { display:grid; place-items:center; min-width:20px; height:20px; padding:0 3px; border-radius:999px; font-style:normal; font-size:10px; font-weight:900; color:#fff; background:#55617C; }
.snl-chip em { font-style:normal; font-weight:600; color:#55617C; }
.snl-chip b { font-weight:800; color:#141B2D; font-variant-numeric:tabular-nums; }
.snl-chip small { font-size:10.5px; font-weight:700; color:#6B7691; }
.n-protein i { background:#7C5CDB; } .n-iron i { background:#C0262C; } .n-calcium i { background:#3D8BD9; } .n-folate i { background:#2E9E6B; }
.n-zinc i { background:#6B7691; } .n-vitc i { background:#E8901A; } .n-fibre i { background:#8A6D3B; } .n-omega3 i { background:#1F8A99; }
.n-sugar i { background:#D9468A; } .n-fat i, .n-satfat i { background:#B88A00; } .n-betacarotene i { background:#E2570F; } .n-lycopene i { background:#D93A40; }
.n-vite i { background:#5E8C31; }
.snl-food .why { margin:8px 0 0; font-size:13px; font-weight:500; color:#3A465F; line-height:1.4; }
.snl-food .why b { color:#12734A; font-weight:800; }
.snl-group.little .snl-food .why b { color:#9A6100; }
.snl-food .often { display:inline-block; margin-top:7px; padding:3px 9px; border-radius:999px; font-size:11.5px; font-weight:800; color:#12734A; background:#E9F7F0; }
.snl-group.little .snl-food .often { color:#9A6100; background:#FFF4DE; }
.snl-notes { margin-top:9px; }
.snl-group.little .snl-notes .m { background:#FFF4DE; color:#9A6100; }
.snl-group.avoid .snl-notes { background:#FFF5F5 !important; border-color:#F3C3C3 !important; }
.snl-group.avoid .snl-notes .m { background:#FFE4E5; color:#C0262C; }

/* a day on the plate */
.snl-plate { padding:14px 14px 12px; margin-top:14px; }
.snl-plate h3 { display:flex; align-items:center; gap:9px; margin:0 0 10px; font-size:16px; font-weight:800; color:#141B2D; }
.snl-plate h3 .sn-pic { width:36px; height:36px; }
.snl-ptabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:4px; border-radius:16px; background:#FFF1E6; }
.snl-ptabs button { min-height:40px; border:0; border-radius:12px; background:transparent; font:inherit; font-size:14px; font-weight:800; color:#7E2E06; cursor:pointer; }
.snl-ptabs button.on { background:#fff; color:#C2480A; box-shadow:0 2px 6px rgba(194,72,10,.18); }
.snl-pfoods { display:flex; flex-wrap:wrap; gap:4px; margin:12px 0 4px; }
.snl-pfoods img { width:34px; height:34px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 2px 5px rgba(20,27,45,.14); }
.snl-plate .kcal { margin:8px 0 10px; font-size:13.5px; font-weight:600; color:#3A465F; line-height:1.4; }
.snl-plate .kcal b { font-size:20px; font-weight:800; color:#C2480A; font-variant-numeric:tabular-nums; }
.snl-plate .bar { display:grid; grid-template-columns:96px 1fr auto; align-items:center; gap:8px; padding:5px 0; }
.snl-plate .bar .k { display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:#3A465F; }
.snl-plate .bar .k i { display:grid; place-items:center; min-width:20px; height:20px; padding:0 3px; border-radius:999px; font-style:normal; font-size:10px; font-weight:900; color:#fff; background:#55617C; }
.snl-plate .bar .t { position:relative; height:10px; border-radius:999px; background:#F1E6DC; overflow:hidden; }
.snl-plate .bar .t i { position:absolute; left:0; top:0; bottom:0; width:var(--p); border-radius:999px; background:#55617C; }
.snl-plate .n-protein .t i { background:#7C5CDB; } .snl-plate .n-iron .t i { background:#C0262C; } .snl-plate .n-folate .t i { background:#2E9E6B; } .snl-plate .n-calcium .t i { background:#3D8BD9; }
.snl-plate .bar .v { text-align:right; font-size:12px; line-height:1.15; }
.snl-plate .bar .v b { font-size:14px; font-weight:800; color:#141B2D; font-variant-numeric:tabular-nums; }
.snl-plate .bar .v small { display:block; font-size:10.5px; font-weight:700; color:#6B7691; }
.snl-plate .note { margin:8px 0 0; padding:9px 11px; border-radius:14px; background:#FFF6E9; color:#7A4A05; font-size:12.5px; font-weight:700; line-height:1.4; }
.snl-plate details { margin-top:8px; font-size:12.5px; color:#3A465F; }
.snl-plate summary { cursor:pointer; font-weight:800; color:#C2480A; min-height:32px; display:flex; align-items:center; }
.snl-plate details ul { margin:4px 0 0; padding-left:18px; line-height:1.55; }
.snl-plate .rda { display:block; margin-top:8px; font-size:11px; font-weight:600; color:#8A93A8; }

/* moving: only while JS has said it may (snl-moving); none at all under reduced motion */
.snl-moving .snl-anim { opacity:0; transform:translateY(14px); transition:opacity .32s ease-out, transform .32s cubic-bezier(.2,.8,.2,1); transition-delay:calc(var(--i, 0) * 60ms); }
.snl-moving .snl-anim.in { opacity:1; transform:none; }
.snl-moving .snl-plate .bar .t i { width:0; transition:width .4s cubic-bezier(.2,.8,.2,1) .12s; }
.snl-moving .snl-plate.in .bar .t i, .snl-moving .snl-plate-one.fill .bar .t i { width:var(--p); }
@media (prefers-reduced-motion: reduce) {
  .snl-moving .snl-anim, .snl-anim { opacity:1 !important; transform:none !important; transition:none !important; }
  .snl-plate .bar .t i { width:var(--p) !important; transition:none !important; }
}
body.te .snl-food .hd > b { font-size:14.5px; } body.te .snl-food .why { font-size:12.5px; } body.te .snl-chip { font-size:11.5px; }
