/* The glass look for Maatru (pregnancy) and Sishu (child) (docs/PATIENT_APP_THEME.md), 3 Oct 2026.
 *
 * Dr. Ranadheer: "integrate Maatru and Sishu with this theme". So the photograph block, the rose,
 * the plum and the clay tiles go, and both screens are laid out again in the app's own grammar:
 * one glass card per idea on the blue and orange field, a caps label, a big bold line, a soft
 * second line, white glyphs on solid round chips, glass rows with solid pills, the thick orange for
 * the thing to press. Red is kept for one thing on each screen - the call button in Maatru and the
 * "bring the child in" card in Sishu - and a small rose stays on the trimester badge, the one place
 * where the pregnancy colour still means something.
 *
 * Loaded after patient_app_glass.css. Every class here is gm-; where an old pg-/cd- name is still on
 * an element (because the script finds it by that name) it is only overridden, never deleted.
 */

/* ------------------------------------------------------------------ shared pieces */
.gm-glass { background:var(--g-glass); border:1px solid var(--g-edge); border-radius:26px; box-shadow:var(--g-shadow);
  -webkit-backdrop-filter:blur(22px) saturate(160%); backdrop-filter:blur(22px) saturate(160%); }
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))) { .gm-glass { background:rgba(255,255,255,.88); } }
.gm-card { padding:16px; margin:0 0 12px; }
.gm-cap { display:block; font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--g-acc); }
body.te .gm-cap { letter-spacing:.02em; }
.gm-head { display:flex; align-items:center; gap:12px; margin:0 0 10px; }
.gm-head h2 { margin:0; font-size:17.5px; font-weight:600; letter-spacing:-.02em; line-height:1.25; color:var(--g-ink); }
.gm-lead { margin:0 0 12px; font-size:15px; font-weight:500; line-height:1.5; color:var(--g-soft); }
.gm-seen { margin:12px 0 0; font-size:13.5px; font-weight:500; line-height:1.45; color:var(--g-soft); }
.gm-seen.center { text-align:center; }
.gm-red { color:#B3261E !important; }

/* a white glyph on a solid round chip - blue, orange, or (danger only) red */
.gm-chip { flex:none; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  background:var(--fl-o); box-shadow:0 8px 16px rgba(var(--fl-o-rgb),.3); }
.gm-chip.orange { background:var(--g-orange); box-shadow:0 8px 16px rgba(238,90,14,0.12); }
.gm-chip.red { background:linear-gradient(135deg, #F0624F 0%, #C21F2E 100%); box-shadow:0 8px 16px rgba(194,31,46,.3); }
.gm-chip svg { display:block; width:20px; height:20px; }

/* solid pills */
.gm-pill { flex:none; display:inline-flex; align-items:center; height:28px; padding:0 11px; border-radius:999px; font-size:12.5px; font-weight:600;
  color:#fff; white-space:nowrap; background:var(--fl-o); }
.gm-pill.orange { background:var(--g-orange); }
.gm-pill.red { background:linear-gradient(135deg, #F0624F 0%, #C21F2E 100%); }

/* glass rows inside a card */
.gm-rows { list-style:none; margin:6px 0 0; padding:0; }
.gm-rows li { display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--g-rail); }
.gm-rows li:first-child { border-top:0; }
.gm-what { flex:1; min-width:0; display:flex; flex-direction:column; }
.gm-what b { font-size:15.5px; font-weight:600; letter-spacing:-.01em; line-height:1.3; color:var(--g-ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-what b.wrap { white-space:normal; }
.gm-what small { font-size:13.5px; font-weight:500; line-height:1.4; color:var(--g-soft); font-variant-numeric:tabular-nums; }

/* buttons: the thick orange, and the quiet glass one with blue letters */
.gm-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 22px; border:0; border-radius:999px;
  background:var(--g-orange); color:#fff; font:inherit; font-size:15px; font-weight:600; white-space:nowrap; text-decoration:none; cursor:pointer;
  box-shadow:0 8px 18px rgba(238,90,14,0.12); -webkit-tap-highlight-color:transparent; }
.gm-btn.wide { display:flex; width:100%; margin-top:12px; }
.gm-btn.big { display:flex; width:100%; min-height:72px; font-size:19px; border-radius:24px; }
.gm-btn.small { min-height:44px; padding:0 15px; font-size:13.5px; }
.gm-btn.quiet { background:rgba(255,255,255,.82); color:var(--g-acc); border:1px solid var(--g-edge); box-shadow:0 6px 14px rgba(16,24,40,0.04); }
.gm-btn.red { background:linear-gradient(135deg, #E8463E 0%, #B3122E 100%); box-shadow:0 10px 22px rgba(179,18,46,.3); }
.gm-btn:active, .gm-pick:active, .gm-tile:active, .gm-sos:active, .gm-call:active, .gm-timer-btn:active { transform:scale(.97); }
.gm-link { border:0; background:none; padding:6px 0; min-height:44px; font:inherit; font-size:13.5px; font-weight:600; color:var(--g-acc); cursor:pointer; }

/* one-tap choices (mood, after a vaccine) */
.gm-picks { display:flex; flex-wrap:wrap; gap:8px; }
.gm-pick { min-height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--g-edge); background:rgba(255,255,255,.82); color:var(--g-ink);
  font:inherit; font-size:14.5px; font-weight:500; cursor:pointer; box-shadow:0 4px 10px rgba(16,24,40,0.03); }
.gm-pick.on { background:var(--g-ink); border-color:var(--g-ink); color:#fff; font-weight:600; }

/* a line of progress in the ring's colours */
.gm-rail { height:6px; border-radius:99px; background:var(--g-rail); overflow:hidden; margin-top:14px; }
.gm-rail i { display:block; height:100%; border-radius:99px; background:var(--g-ring); }
.gm-rail.late i { background:linear-gradient(135deg, #F0624F 0%, #C21F2E 100%); }

/* a section heading between cards */
.gm-sec { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:20px 2px 10px; }
.gm-sec b { font-size:19px; font-weight:600; letter-spacing:-.02em; color:var(--g-ink); }
.gm-sec span { font-size:13.5px; font-weight:500; color:var(--g-soft); }

/* the week's object on its cream plate (the photographs fade to this same cream) */
.gm-plate { display:block; flex:none; width:132px; height:132px; border-radius:50%; overflow:hidden; background:#FAF5EE;
  border:3px solid #fff; box-shadow:0 16px 30px rgba(16,24,40,0.12); }
.gm-plate img { display:block; width:143%; height:143%; margin:-21.5%; max-width:none; object-fit:contain; }
.gm-plate.small { width:74px; height:74px; border-width:2px; box-shadow:0 10px 20px rgba(16,24,40,0.09); }

/* ================================================================== MAATRU */
.gm-wrap { display:block; }

/* the week: one big glass card */
.gm-hero { position:relative; padding:18px 18px 16px; margin:30px 0 12px; }
.gm-hero > .gm-plate { position:absolute; right:-6px; top:-28px; }
.gm-hero.has-plate > .gm-tri, .gm-hero.has-plate > .gm-week, .gm-hero.has-plate > .gm-cap, .gm-hero.has-plate > .gm-togo { margin-right:124px; }
/* the one rose left: the trimester badge, where the pregnancy colour still means something */
.gm-tri { display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px; font-size:12.5px; font-weight:600;
  background:rgba(214,63,125,.12); color:#9C1B50; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-week { display:flex; align-items:baseline; gap:8px; margin:8px 0 6px; }
.gm-week b { font-size:68px; font-weight:600; letter-spacing:-.06em; line-height:.92; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-week span { font-size:17px; font-weight:600; color:var(--g-ink); }
.gm-togo { display:block; margin-top:2px; font-size:24px; font-weight:600; letter-spacing:-.03em; line-height:1.15; color:var(--g-ink); }
.gm-togo.at-term { font-size:22px; }
.gm-hero .gm-rail { margin-top:14px; }
.gm-rail-l { display:flex; justify-content:space-between; gap:10px; margin-top:7px; font-size:13.5px; font-weight:500; color:var(--g-soft);
  font-variant-numeric:tabular-nums; }
.gm-rail-l span:last-child { color:var(--g-ink); font-weight:600; }
.gm-size { margin-top:14px; padding-top:14px; border-top:1px solid var(--g-rail); }
.gm-obj { display:block; margin:4px 0 0; font-size:19px; font-weight:600; letter-spacing:-.02em; line-height:1.25; color:var(--g-ink); }
.gm-nums { display:flex; gap:10px; margin-top:10px; }
.gm-nums span { flex:1; min-width:0; padding:9px 12px; border-radius:18px; background:rgba(255,255,255,.72); border:1px solid var(--g-edge); }
.gm-nums b { display:block; font-size:22px; font-weight:600; letter-spacing:-.03em; line-height:1.1; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-nums small { display:block; font-size:13px; font-weight:500; color:var(--g-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* due this week, and what is next */
.gm-due { display:flex; align-items:center; gap:12px; padding:12px 14px 12px 20px; margin:0 0 12px; border-color:rgba(238,90,14,0.30); background:#FFF4EA;
  box-shadow:inset 5px 0 0 var(--g-acc), var(--g-shadow); }
.gm-due .gm-cap.gm-due-cap { font-size:12.5px; font-weight:800; letter-spacing:.08em; }
.gm-due .gm-what b { font-weight:700; }
/* the two trimester marks on the 40-week rail: 13 weeks (32.5%) and 28 weeks (70%) - NHS, owner approved 23 Oct 2026 */
.gm-rail { position:relative; }
.gm-rail s { position:absolute; top:0; bottom:0; width:2px; margin-left:-1px; background:#fff; box-shadow:0 0 0 .5px rgba(20,26,36,.22); }
.gm-plan .gm-rows { margin-top:4px; }

/* her own lane: three bold tiles */
.gm-log { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin:0 0 12px; }
.gm-tile { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:12px 11px 12px; border-radius:22px; text-align:left;
  font:inherit; color:var(--g-ink); cursor:pointer; }
.gm-tile .gm-chip { width:40px; height:40px; margin-bottom:9px; }
.gm-tile .k { font-size:13.5px; font-weight:600; letter-spacing:-.01em; color:var(--g-acc); max-width:100%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-tile .v { display:block; margin-top:3px; font-size:22px; font-weight:600; letter-spacing:-.04em; line-height:1.15; color:var(--g-ink);
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.gm-tile .v i { font-style:normal; font-size:13px; font-weight:600; letter-spacing:0; color:var(--g-soft); }
.gm-tile .v.add { font-size:15px; letter-spacing:-.01em; color:#C2480A; padding-top:3px; white-space:normal; }
.gm-tile .v.small { font-size:14px; letter-spacing:-.01em; color:var(--g-soft); white-space:normal; padding-top:3px; }
.gm-tile .d { display:block; margin-top:5px; font-size:12.5px; font-weight:500; line-height:1.3; color:var(--g-soft); font-variant-numeric:tabular-nums; }
.gm-tile .d.up { color:var(--fl-o-dk); font-weight:600; }
.gm-tile .pg-spark { display:block; width:100%; height:18px; margin-top:6px; }
.gm-tile.off { cursor:default; }
.gm-tile.off .gm-chip { opacity:.75; }

/* how she feels */
.gm-mood .gm-picks { margin-top:4px; }

/* the movements card (the bar styles below are from the old counter and are no longer used) */
.gm-dots { display:flex; gap:6px; margin:4px 0 12px; }
.gm-dots i { flex:1; height:10px; border-radius:99px; background:var(--g-rail); }
.gm-dots i.on { background:var(--fl-o); }
.gm-count { margin:0 0 12px; font-size:26px; font-weight:600; letter-spacing:-.03em; color:var(--g-ink); }
.gm-count small { display:block; font-size:14px; font-weight:500; letter-spacing:0; color:var(--g-soft); }
.gm-counter .gm-btn:not(.big) { width:100%; display:flex; }
.gm-past { list-style:none; margin:14px 0 0; padding:0; }
.gm-past li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid var(--g-rail);
  font-size:14.5px; font-weight:500; color:var(--g-soft); }

/* baby movements (23 Oct 2026): a diary of times, with a same-day warning above it. No score, no bar. */
.gm-warn { box-shadow:inset 5px 0 0 var(--g-acc), var(--g-shadow); }
.gm-warn .gm-lead { color:var(--g-ink); font-weight:600; }
.gm-warn .gm-btn.red { margin-top:2px; }
.gm-source { margin-top:12px; font-size:12.5px; }
.gm-mv-sub { margin:16px 0 8px; font-size:13.5px; font-weight:700; color:var(--g-soft); }
.gm-mv-times { display:flex; flex-wrap:wrap; gap:6px; }
.gm-mv-none { margin:0; font-size:14.5px; font-weight:500; color:var(--g-soft); }
.gm-mv-past li { align-items:flex-start; }
.gm-mv-past li > span { flex:none; padding-top:4px; }
.gm-mv-past .gm-mv-times { justify-content:flex-end; }

/* the red button: thick, calm, the only red on her screen */
.gm-sos { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:62px; margin:4px 0 12px; padding:0 20px;
  border:0; border-radius:24px; font:inherit; font-size:17px; font-weight:600; color:#fff; cursor:pointer;
  background:linear-gradient(135deg, #E8463E 0%, #B3122E 100%);
  box-shadow:0 14px 30px rgba(179,18,46,.32); }
.gm-sos-ic { width:38px; height:38px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.2); }

/* the four screens: a glass segmented control */
.pg2 { margin-top:0; }
.gm-seg { display:flex; gap:2px; padding:5px; margin:0 0 12px; border-radius:999px; }
.gm-seg button { flex:1 1 auto; min-width:0; min-height:44px; padding:0 9px; border:0; border-radius:999px; background:none; font:inherit;
  font-size:14px; font-weight:600; letter-spacing:-.01em; color:var(--g-ink); cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-seg button.on { background:var(--g-ink); color:#fff; }

/* week by week */
.gm-weeks { display:flex; gap:7px; overflow-x:auto; padding:10px 2px 10px; margin:0 -4px 4px; scrollbar-width:none; }
.gm-weeks::-webkit-scrollbar { display:none; }
.gm-wk { flex:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--g-edge); background:rgba(255,255,255,.82); color:var(--g-ink);
  font:inherit; font-size:15px; font-weight:600; cursor:pointer; font-variant-numeric:tabular-nums; }
.gm-wk.now { box-shadow:0 0 0 2.5px #EE5A0E; }
.gm-wk.on { background:var(--g-ink); border-color:var(--g-ink); color:#fff; }
.gm-wsize { display:flex; align-items:center; gap:14px; padding:12px 0; border-top:1px solid var(--g-rail); border-bottom:1px solid var(--g-rail); }
.gm-wsize small i { font-style:normal; font-weight:600; color:var(--g-ink); }
.gm-note h3 { margin:14px 0 3px; font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--g-acc); }
body.te .gm-note h3 { letter-spacing:.02em; }
.gm-note p { margin:0; font-size:15px; font-weight:500; line-height:1.55; color:var(--g-ink); }
.gm-draft { display:block; margin-top:14px; padding:10px 12px; border-radius:16px; border:1px dashed rgba(var(--fl-o-rgb),.35);
  font-size:13.5px; font-weight:500; color:var(--g-soft); }

/* kegels */
.gm-keg-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.gm-keg { margin:16px auto 4px; width:136px; height:136px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.82); border:5px solid var(--g-rail); transition:transform 1s linear, border-color .3s; }
.gm-keg[hidden] { display:none; }
.gm-keg.hold { border-color:var(--fl-o); transform:scale(1.06); }
.gm-keg.rest { border-color:#FF9647; transform:scale(1); }
.gm-keg b { font-size:17px; font-weight:600; color:var(--g-ink); }

/* the contraction timer */
.gm-timer { display:flex; flex-direction:column; align-items:center; margin:6px 0 4px; }
.gm-timer-btn { width:184px; height:184px; border-radius:50%; border:0; cursor:pointer; font:inherit; color:#fff; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2px; background:var(--g-orange);
  box-shadow:0 18px 36px rgba(238,90,14,0.14), 0 0 0 8px rgba(255,255,255,.55); }
.gm-timer.on .gm-timer-btn { background:var(--fl-o);
  box-shadow:0 18px 36px rgba(var(--fl-o-rgb),.34), 0 0 0 8px rgba(255,255,255,.55); animation:gmPulse 1.9s ease-in-out infinite; }
@keyframes gmPulse { 0%, 100% { transform:scale(1); } 50% { transform:scale(1.03); } }
.gm-timer-btn .lab { font-size:17px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
body.te .gm-timer-btn .lab { letter-spacing:0; }
.gm-timer-btn .num { font-size:44px; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.gm-timer-btn .num:empty { display:none; }
.gm-c-help { margin:14px 0 0; max-width:32ch; text-align:center; font-size:14.5px; font-weight:500; line-height:1.45; color:var(--g-soft); }
.gm-c-hour { margin:14px 0 0; text-align:center; font-size:15px; font-weight:600; color:var(--g-ink); }
.gm-c-avg { margin:4px 0 0; text-align:center; font-size:14px; font-weight:500; color:var(--g-soft); }
.gm-c-list { list-style:none; margin:14px 0 0; padding:0; }
.gm-c-list li { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:10px 0; border-top:1px solid var(--g-rail); }
.gm-c-list li:first-child { border-top:0; }
.gm-c b { display:block; font-size:17px; font-weight:600; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-c small { display:block; font-size:12.5px; font-weight:500; color:var(--g-soft); }
.gm-c-empty { display:block !important; font-size:15px; font-weight:500; color:var(--g-soft); padding:10px 0; }
.gm-noadvice { margin:14px 0 0; padding:11px 13px; border-radius:16px; background:rgba(255,164,92,.2); color:#7A3A0C; font-size:14px; font-weight:500; line-height:1.5; }

/* her weight */
.gm-wtop { display:flex; align-items:baseline; gap:6px; margin:0 0 4px; }
.gm-wtop b { font-size:34px; font-weight:600; letter-spacing:-.04em; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-wtop i { font-style:normal; font-size:15px; font-weight:600; color:var(--g-soft); }
.gm-wtop span { margin-left:auto; font-size:13.5px; font-weight:500; color:var(--g-soft); }
.gm-chart { display:block; width:100%; height:auto; margin:6px 0 2px; overflow:visible; }
.gm-grid { stroke:var(--g-rail); stroke-width:1; }
.gm-ax { font-size:12.5px; font-weight:500; fill:#4F5C78; font-family:inherit; }
.gm-area { fill:url(#gm-wfill); stroke:none; }
.gm-line { fill:none; stroke:var(--fl-o); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.gm-dot { fill:#fff; stroke:#EE5A0E; stroke-width:2.6; }
.gm-gained { margin:6px 0 0; font-size:14px; font-weight:600; color:var(--g-acc); }

/* the bump */
.gm-strip { display:flex; gap:10px; overflow-x:auto; padding:2px 0 10px; scrollbar-width:none; }
.gm-strip::-webkit-scrollbar { display:none; }
.gm-shot { flex:none; width:120px; margin:0; }
.gm-shot img { display:block; width:120px; height:160px; object-fit:cover; border-radius:18px; border:2px solid #fff; background:#EAF1FB;
  box-shadow:0 10px 20px rgba(16,24,40,0.08); }
.gm-shot figcaption { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:4px; font-size:13px; }
.gm-shot figcaption b { font-weight:600; color:var(--g-ink); white-space:nowrap; }
.gm-add { display:inline-block; margin-top:4px; cursor:pointer; }

/* the sheet she types in */
.pg-scrim { background:rgba(12,21,38,.42); }
.pg-sheet.gm-sheet { background:rgba(255,255,255,.9); border:1px solid var(--g-edge); border-bottom:0; border-radius:30px 30px 0 0;
  box-shadow:0 -20px 50px rgba(16,24,40,0.13); padding:18px 20px calc(22px + env(safe-area-inset-bottom));
  -webkit-backdrop-filter:blur(26px) saturate(170%); backdrop-filter:blur(26px) saturate(170%); }
.gm-sheet .pg-grab { background:rgba(12,21,38,.18); }
.gm-sheet h2 { margin:0 0 6px; font-size:20px; font-weight:600; letter-spacing:-.02em; line-height:1.3; color:var(--g-ink); }
.gm-sheet .gm-head h2 { margin:0; }
.gm-sheet .gm-btn.quiet.wide { margin-top:10px; }
.gm-step { display:flex; align-items:center; justify-content:center; gap:16px; margin:8px 0 4px; }
.gm-step button { width:58px; height:58px; border-radius:50%; border:1px solid var(--g-edge); background:rgba(255,255,255,.9); color:var(--g-acc);
  font:inherit; font-size:28px; font-weight:600; cursor:pointer; box-shadow:0 8px 18px rgba(16,24,40,0.06); }
.gm-step .val { min-width:140px; text-align:center; font-size:42px; font-weight:600; letter-spacing:-.05em; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-step .val i { margin-left:4px; font-style:normal; font-size:16px; font-weight:600; letter-spacing:0; color:var(--g-soft); }
.gm-bp { display:flex; align-items:center; justify-content:center; gap:10px; margin:10px 0 4px; }
.gm-bp input { width:108px; min-height:64px; margin:0; padding:8px 6px; text-align:center; font:inherit; font-size:32px; font-weight:600;
  letter-spacing:-.03em; border-radius:20px; border:1px solid rgba(12,21,38,.16); background:rgba(255,255,255,.9); color:var(--g-ink); }
.gm-bp span { font-size:28px; font-weight:600; color:var(--g-soft); }

/* the call screen: the field, one thick red button with the number, the signs as glass rows */
.pg-danger.gm-danger { color:var(--g-ink); background-color:#FFFFFF; background-image:
    radial-gradient(90% 46% at 50% 0%, rgba(240,98,79,.34) 0%, rgba(240,98,79,0) 70%),
    radial-gradient(76% 46% at 2% 40%, #8FBDF5 0%, rgba(143,189,245,0) 70%),
    radial-gradient(64% 42% at 100% 80%, #FFB98A 0%, rgba(255,185,138,0) 70%); }
.gm-danger-in { max-width:560px; margin:0 auto; padding:calc(16px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom)); }
.gm-danger-top { display:flex; align-items:center; justify-content:space-between; }
.gm-danger-mark { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(135deg, #F0624F 0%, #C21F2E 100%); box-shadow:0 10px 22px rgba(194,31,46,.32); }
.gm-x { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer;
  background:var(--g-glass); border:1px solid var(--g-edge); color:var(--g-ink); box-shadow:0 6px 16px rgba(16,24,40,0.05); }
.gm-danger h2 { margin:16px 0 6px; font-size:27px; font-weight:600; letter-spacing:-.035em; line-height:1.15; color:var(--g-ink); }
.gm-sub { margin:0 0 16px; font-size:15px; font-weight:500; line-height:1.5; color:var(--g-soft); }
.gm-sub.why { margin:20px 2px 10px; color:var(--g-ink); font-weight:500; }
.gm-call { display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:26px; text-decoration:none; color:#fff;
  background:linear-gradient(135deg, #E8463E 0%, #B3122E 100%); box-shadow:0 18px 36px rgba(179,18,46,.34); }
.gm-call .ic { flex:none; width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.22); }
.gm-call-t b { display:block; font-size:26px; font-weight:600; letter-spacing:-.02em; line-height:1.15; font-variant-numeric:tabular-nums; }
.gm-call-t small { display:block; font-size:15px; font-weight:500; color:rgba(255,255,255,.92); }
.gm-signs { list-style:none; margin:0; padding:4px 16px; }
.gm-signs li { display:flex; align-items:center; gap:12px; padding:9px 0; border-top:1px solid var(--g-rail); font-size:15.5px; font-weight:600; line-height:1.3; }
.gm-signs li:first-child { border-top:0; }
.gm-signs .gm-chip { width:38px; height:38px; }
.gm-signs .gm-chip svg { width:19px; height:19px; }
.gm-danger .gm-btn.quiet.wide { margin-top:16px; }

/* ================================================================== SISHU */
.gm-kid { padding:16px 18px 16px; margin:6px 0 0; }
.gm-kid-top { display:flex; align-items:center; gap:14px; }
.gm-face { flex:none; width:68px; height:68px; border-radius:50%; overflow:hidden; border:3px solid #fff; background:#DCEBFB;
  box-shadow:0 10px 22px rgba(16,24,40,0.10); }
.gm-face svg { display:block; width:100%; height:100%; }
.gm-kid-name { min-width:0; display:flex; flex-direction:column; }
.gm-kid-name b { font-size:23px; font-weight:600; letter-spacing:-.03em; line-height:1.2; color:var(--g-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gm-kid-name small { font-size:14.5px; font-weight:500; color:var(--g-soft); }
.gm-kid-count { display:flex; align-items:baseline; gap:8px; margin-top:16px; }
.gm-kid-count b { font-size:30px; font-weight:600; letter-spacing:-.04em; line-height:1; color:var(--g-ink); font-variant-numeric:tabular-nums; }
.gm-kid-count span { font-size:15px; font-weight:500; color:var(--g-soft); }
.gm-kid .gm-rail { margin-top:12px; }
.gm-kid-done { display:flex; align-items:center; gap:12px; margin-top:12px; }

.gm-vax { padding:14px 16px 8px; }
.gm-vax-when b { display:block; font-size:24px; font-weight:600; letter-spacing:-.03em; line-height:1.2; color:var(--g-ink); }
.gm-vax-when small { display:block; font-size:14px; font-weight:500; color:var(--g-soft); font-variant-numeric:tabular-nums; }
.gm-vax .gm-rows { margin-top:8px; }
.gm-vax.late { border-color:rgba(194,31,46,.35); }
.gm-come { margin:4px 0 10px; padding:11px 13px; border-radius:16px; background:rgba(217,72,43,.12); color:#8E2A14; font-size:14px; font-weight:500; line-height:1.45; }
.gm-given .gm-btn.quiet.wide { margin:8px 0 2px; }

.gm-kid-danger { border-color:rgba(194,31,46,.3); background:rgba(255,241,238,.74); }
.gm-signs-k { list-style:none; margin:4px 0 0; padding:0; }
.gm-signs-k li { display:flex; flex-direction:column; gap:1px; padding:10px 0 10px 12px; border-top:1px solid rgba(194,31,46,.14); position:relative; }
.gm-signs-k li::before { content:""; position:absolute; left:0; top:12px; bottom:12px; width:4px; border-radius:99px; background:linear-gradient(180deg, #F0624F, #C21F2E); }
.gm-signs-k li:first-child { border-top:0; }
.gm-signs-k span { font-size:12.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:#B3261E; }
.gm-signs-k b { font-size:15.5px; font-weight:600; line-height:1.4; color:var(--g-ink); }

.gm-ask .gm-picks { margin:2px 0 12px; }
.gm-other { width:100%; box-sizing:border-box; resize:none; font:inherit; font-size:16px; font-weight:500; }
.gm-acts { display:flex; gap:10px; margin-top:12px; }
.gm-acts .gm-btn { flex:1; min-width:0; }

@media (prefers-reduced-motion: reduce) {
  .gm-timer.on .gm-timer-btn { animation:none; }
  .gm-keg { transition:none; }
  .gm-btn:active, .gm-pick:active, .gm-tile:active, .gm-sos:active, .gm-call:active, .gm-timer-btn:active { transform:none; }
}
@media (max-width:359px) {
  .gm-hero.has-plate > .gm-tri, .gm-hero.has-plate > .gm-week, .gm-hero.has-plate > .gm-cap, .gm-hero.has-plate > .gm-togo { margin-right:100px; }
  .gm-hero > .gm-plate { width:108px; height:108px; }
  .gm-week b { font-size:56px; }
  .gm-log { gap:8px; }
}

/* ------------------------------------------------------------------ the week, centred (3 Oct 2026)
   He: the picture of how big the baby is "if it's bigger and centre of screen it will be good". The
   object stands large in the middle of the card, rising over its top edge, its name right under it;
   the week, the days to go and the line follow, all centred. */
.gm-hero.gm-hero-c { text-align:center; margin-top:96px; padding:0 18px 18px; }
.gm-hero.gm-hero-c > .gm-plate.big { position:relative; right:auto; top:auto; width:236px; height:236px; margin:-96px auto 12px; border-width:5px;
  box-shadow:0 24px 44px rgba(16,24,40,0.14); }
.gm-hero.gm-hero-c.has-plate > .gm-tri, .gm-hero.gm-hero-c.has-plate > .gm-week, .gm-hero.gm-hero-c.has-plate > .gm-cap,
.gm-hero.gm-hero-c.has-plate > .gm-togo { margin-right:0; }
.gm-hero-c .gm-obj { margin:10px 0 0; font-size:21px; }
.gm-hero-c .gm-week { justify-content:center; margin-top:12px; }
.gm-hero-c .gm-cap { display:block; }
.gm-hero-c .gm-rail-l { text-align:left; }
.gm-hero-c .gm-nums { margin-top:14px; text-align:left; }
@media (max-width:360px) { .gm-hero.gm-hero-c > .gm-plate.big { width:200px; height:200px; } }
/* "In square box try" (3 Oct 2026): the week's object in a large rounded square, not a circle */
.gm-hero.gm-hero-c > .gm-plate.big { border-radius:38px; width:250px; height:250px; }
.gm-hero.gm-hero-c > .gm-plate.big img { width:128%; height:128%; margin:-14%; }
@media (max-width:360px) { .gm-hero.gm-hero-c > .gm-plate.big { width:212px; height:212px; border-radius:32px; } }

/* ------------------------------------------------------------------ Kegel positions (3 Oct 2026) */
.gm-keg-pos { display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:8px; margin:12px 0 4px; }
.gm-keg-pos figure { margin:0; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.gm-keg-pos span { display:flex; align-items:flex-end; justify-content:center; width:100%; height:116px; border-radius:16px; background:var(--fl-o-soft); padding:8px 4px 6px; }
.gm-keg-pos img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.gm-keg-pos figcaption { font-size:13px; font-weight:500; color:var(--g-ink); line-height:1.25; }
.gm-keg-how { margin:10px 0 2px; padding-left:18px; display:grid; gap:6px; }
.gm-keg-how li { font-size:14px; line-height:1.45; color:var(--g-ink); }

/* ------------------------------------------------------------------ the baby that kicks (3 Oct 2026) */
.gm-baby { position:relative; width:min(230px, 62vw); aspect-ratio:1; margin:6px auto 12px; border-radius:50%; overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #FFE9DC 0%, #F8CFB5 100%); box-shadow:0 10px 24px rgba(226,87,15,.18); }
.gm-baby.no-pic:not(.has-video) { display:none; }
.gm-baby.live { cursor:pointer; -webkit-tap-highlight-color:transparent; }
.gm-baby video, .gm-baby img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gm-baby.has-video img { display:none; }
.gm-baby-hint { position:absolute; left:0; right:0; bottom:10px; text-align:center; font-size:12.5px; font-weight:500; color:#7A3A12;
  text-shadow:0 1px 2px rgba(255,255,255,.8); }
/* no video yet: the picture itself kicks - a quick nudge and a ripple from where the foot is */
.gm-baby:not(.has-video).kicking img { animation:gmKick .7s cubic-bezier(.3,1.6,.5,1); }
.gm-baby.kicking::after { content:""; position:absolute; left:58%; top:38%; width:30px; height:30px; margin:-15px; border-radius:50%;
  border:3px solid rgba(226,87,15,.7); animation:gmRipple .7s ease-out forwards; pointer-events:none; }
@keyframes gmKick { 0% { transform:none; } 25% { transform:translate(5px,-6px) rotate(3deg) scale(1.04); }
  55% { transform:translate(-3px,2px) rotate(-2deg); } 100% { transform:none; } }
@keyframes gmRipple { from { transform:scale(.3); opacity:1; } to { transform:scale(3.4); opacity:0; } }
@media (prefers-reduced-motion: reduce) { .gm-baby img, .gm-baby::after { animation:none !important; } }

/* ------------------------------------------------------------------ the baby by week (3 Oct 2026) */
.gm-hero.gm-hero-c > .gm-plate.gm-babyw { display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
  background:radial-gradient(circle at 50% 45%, #FFE9DC 0%, #F8CFB5 100%); }
.gm-babyw img { width:auto; height:auto; max-width:none; margin:0; object-fit:contain; filter:drop-shadow(0 6px 10px rgba(166,62,7,.18)); }
/* which one fills the big square */




.gm-hero-c .gm-obj { display:flex; align-items:center; justify-content:center; gap:10px; }

/* ------------------------------------------------------------------ the week's milestone (3 Oct 2026) */
.gm-ms { display:flex; flex-direction:column; gap:3px; margin:12px 0 0; padding:11px 14px; border-radius:16px;
  background:var(--fl-o-soft); border-left:4px solid var(--fl-o); text-align:left; }
.gm-ms b { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fl-o-dk); }
.gm-ms span { font-size:15px; font-weight:500; line-height:1.4; color:var(--g-ink); }
/* the fruit stands in the corner of the baby's square (3 Oct 2026): seen, not read */
.gm-hero.has-baby > .gm-fruitw { display:none; }
.gm-babyw.with-fruit > img:first-child { max-width:80%; max-height:80%; transform:translate(-13%, -7%); }
.gm-hero.gm-hero-c > .gm-plate.gm-babyw > img.gm-babyw-fruit { position:absolute; right:3%; bottom:3%; width:47%; height:47%; margin:0; object-fit:contain; filter:none; transform:rotate(-8deg); animation:gmFruitIn .6s .25s cubic-bezier(.2,.9,.3,1.3) both; }
@keyframes gmFruitIn { from { opacity:0; transform:translate(18px, 18px) rotate(-40deg) scale(.6); } to { opacity:1; transform:rotate(-8deg); } }
@media (prefers-reduced-motion: reduce) { .gm-hero.gm-hero-c > .gm-plate.gm-babyw > img.gm-babyw-fruit { animation:none; } }

/* ------------------------------------------------------------------ the heart that beats in week 6 (3 Oct 2026) */
.gm-ms.has-heart { position:relative; padding-right:64px; }
.gm-heart { position:absolute; right:14px; top:50%; width:36px; height:36px; margin-top:-18px; fill:#E0314B;
  transform-origin:50% 60%; animation:gmBeat 1s ease-in-out infinite; }
@keyframes gmBeat { 0%, 100% { transform:scale(1); } 12% { transform:scale(1.22); } 24% { transform:scale(1); }
  36% { transform:scale(1.14); } 50% { transform:scale(1); } }
@media (prefers-reduced-motion: reduce) { .gm-heart { animation:none; } }
/* his heartbeat clip under the week 6 line (3 Oct 2026); the box takes the clip's own peach so no edge shows */
.gm-ms.has-pulse { padding-right:14px; background:#FCEDE4; }
.gm-ms.has-pulse .gm-heart { display:none; }
.gm-pulse { display:block; width:100%; aspect-ratio:8 / 3; object-fit:cover; margin-top:8px; border-radius:12px; }
