/* ==========================================================================
   Nonna Do — Games arcade & Toolbox styles (apps.css)
   All classes are namespaced with "ndo-". Uses global site tokens with
   safe fallbacks so it also works standalone.
   ========================================================================== */

.ndo-arcade, .ndo-toolbox {
  --ndo-bg: var(--bg, #fffaf3);
  --ndo-surface: var(--surface, #fff);
  --ndo-ink: var(--ink, #2b2320);
  --ndo-muted: var(--muted, #6f625a);
  --ndo-line: var(--line, #eadfd2);
  --ndo-accent: var(--accent, #c0392b);
  --ndo-accent-soft: var(--accent-soft, #fbe9e6);
  --ndo-radius: var(--radius, 18px);
  --ndo-shadow: var(--shadow, 0 6px 24px rgba(60, 35, 20, .08));
  --ndo-head: var(--font-head, 'Playfair Display', Georgia, serif);
  --ndo-body: var(--font-body, 'Nunito', system-ui, sans-serif);
  --ndo-script: var(--font-script, 'Dancing Script', cursive);
  --ndo-c: var(--ndo-accent);
  --ndo-good: #2e8b57;
  --ndo-bad: #b3261e;
  font-family: var(--ndo-body);
  color: var(--ndo-ink);
  font-size: 1.05rem;
  line-height: 1.5;
  position: relative;
}
.ndo-arcade *, .ndo-toolbox *, .ndo-arcade *::before, .ndo-toolbox *::before, .ndo-arcade *::after, .ndo-toolbox *::after { box-sizing: border-box; }
.ndo-arcade [hidden], .ndo-toolbox [hidden] { display: none !important; }

/* ---------- utilities ---------- */
.ndo-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ndo-muted { color: var(--ndo-muted); }
.ndo-small { font-size: .92rem; }
.ndo-italic { font-style: italic; }
.ndo-center { justify-content: center; text-align: center; }
.ndo-print-only { display: none; }
.ndo-h2 { font-family: var(--ndo-head); font-size: clamp(1.4rem, 3.4vw, 1.9rem); margin: 0; line-height: 1.2; }
.ndo-h3 { font-family: var(--ndo-head); font-size: 1.3rem; margin: 0 0 .75rem; line-height: 1.25; }
.ndo-h4 { font-family: var(--ndo-body); font-weight: 800; font-size: 1.08rem; margin: 0 0 .5rem; }
.ndo-empty { color: var(--ndo-muted); text-align: center; padding: 1.25rem .5rem; margin: 0; font-style: italic; }
.ndo-msg { min-height: 1.6em; margin: .75rem 0; font-weight: 700; text-align: center; font-size: 1.08rem; }
.ndo-hint { color: var(--ndo-muted); font-size: .95rem; text-align: center; margin: .6rem 0 0; }
.ndo-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: .75rem; }
.ndo-two { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); align-items: start; }

/* ---------- buttons ---------- */
.ndo-btn {
  -webkit-appearance: none; appearance: none;
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-height: 48px; padding: .6rem 1.15rem;
  border-radius: 999px; border: 2px solid transparent;
  font: 800 1rem/1.2 var(--ndo-body); color: var(--ndo-ink);
  background: var(--ndo-surface); cursor: pointer;
  transition: transform .12s ease, background-color .15s ease, box-shadow .15s ease, border-color .15s;
  touch-action: manipulation; text-decoration: none;
}
.ndo-btn:hover:not(:disabled) { transform: translateY(-1px); }
.ndo-btn:active:not(:disabled) { transform: translateY(1px) scale(.98); }
.ndo-btn:disabled { opacity: .45; cursor: not-allowed; }
.ndo-btn-primary { background: var(--ndo-c); color: #fff; box-shadow: 0 4px 14px color-mix(in srgb, var(--ndo-c) 30%, transparent); }
.ndo-btn-primary:hover:not(:disabled) { filter: brightness(1.07); }
.ndo-btn-soft { background: color-mix(in srgb, var(--ndo-c) 11%, #fff); border-color: color-mix(in srgb, var(--ndo-c) 22%, #fff); color: color-mix(in srgb, var(--ndo-c) 70%, #2b2320); }
.ndo-btn-soft:hover:not(:disabled) { background: color-mix(in srgb, var(--ndo-c) 18%, #fff); }
.ndo-btn-ghost { background: transparent; border-color: var(--ndo-line); }
.ndo-btn-ghost:hover:not(:disabled) { background: var(--ndo-surface); border-color: color-mix(in srgb, var(--ndo-c) 40%, var(--ndo-line)); }
.ndo-btn-lg { min-height: 56px; padding: .8rem 1.6rem; font-size: 1.12rem; }
.ndo-btn-sm { min-height: 44px; padding: .45rem .9rem; font-size: .95rem; }
.ndo-btn-xs { min-height: 32px; min-width: 32px; padding: .2rem .45rem; font-size: .85rem; }
.ndo-btn-icon { min-width: 48px; padding-left: .6rem; padding-right: .6rem; }
.ndo-btn-icon.ndo-btn-xs { min-width: 32px; }
.ndo-arcade :focus-visible, .ndo-toolbox :focus-visible { outline: 3px solid var(--ndo-c); outline-offset: 3px; }
.ndo-arcade button:focus-visible, .ndo-toolbox button:focus-visible { box-shadow: 0 0 0 6px color-mix(in srgb, var(--ndo-c) 20%, transparent); }

.ndo-chip {
  display: inline-block; padding: .2rem .7rem; border-radius: 999px;
  font-size: .8rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase;
  color: var(--ndo-c); background: color-mix(in srgb, var(--ndo-c) 12%, #fff);
}

/* ==========================================================================
   ARCADE
   ========================================================================== */
.ndo-filter { display: flex; gap: .5rem; flex-wrap: wrap; margin: 0 0 1.1rem; }
.ndo-fchip {
  min-height: 44px; padding: .4rem 1rem; border-radius: 999px; cursor: pointer;
  border: 2px solid var(--ndo-line); background: var(--ndo-surface); color: var(--ndo-ink);
  font: 800 .95rem var(--ndo-body);
}
.ndo-fchip[aria-pressed="true"] { background: var(--ndo-c); border-color: var(--ndo-c); color: #fff; }

.ndo-game-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.ndo-gcard {
  -webkit-appearance: none; appearance: none; text-align: left; cursor: pointer;
  display: flex; flex-direction: column; gap: .45rem;
  padding: 1.15rem 1.2rem 1rem; border-radius: var(--ndo-radius);
  border: 2px solid var(--ndo-line); background: var(--ndo-surface); color: var(--ndo-ink);
  box-shadow: var(--ndo-shadow); font-family: var(--ndo-body);
  position: relative; overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ndo-gcard::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: var(--ndo-c);
}
.ndo-gcard:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--ndo-c) 45%, var(--ndo-line)); box-shadow: 0 14px 30px rgba(60, 35, 20, .12); }
.ndo-gcard.ndo-is-active { border-color: var(--ndo-c); }
.ndo-gcard-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.ndo-gcard-icon {
  font-size: 2.1rem; width: 62px; height: 62px; display: grid; place-items: center; border-radius: 18px;
  background: color-mix(in srgb, var(--ndo-c) 12%, #fff);
}
.ndo-gcard-title { font-family: var(--ndo-head); font-size: 1.22rem; font-weight: 700; line-height: 1.25; }
.ndo-gcard-desc { color: var(--ndo-muted); font-size: .98rem; flex: 1; }
.ndo-gcard-foot { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: .35rem; font-size: .9rem; }
.ndo-gcard-best { color: var(--ndo-muted); font-weight: 700; }
.ndo-gcard-play { color: var(--ndo-c); font-weight: 800; }

/* stage */
.ndo-stage {
  background: var(--ndo-surface); border-radius: calc(var(--ndo-radius) + 6px);
  border: 2px solid color-mix(in srgb, var(--ndo-c) 30%, var(--ndo-line));
  box-shadow: 0 16px 40px rgba(60, 35, 20, .12);
  padding: 1rem clamp(.75rem, 2.5vw, 1.6rem) 1.4rem; margin: 0 0 1.75rem;
  scroll-margin-top: 80px; position: relative; overflow: hidden;
  animation: ndo-pop .28s ease;
}
.ndo-stage:focus { outline: none; }
@keyframes ndo-pop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.ndo-stage-head { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.ndo-stage-title { font-family: var(--ndo-head); font-size: clamp(1.3rem, 3.6vw, 1.8rem); margin: 0; flex: 1 1 200px; line-height: 1.2; }
.ndo-stage-title:focus { outline: none; }
.ndo-stage-icon { display: inline-block; margin-right: .15rem; }
.ndo-hudbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .85rem 0 1rem; padding-bottom: .85rem; border-bottom: 2px dashed var(--ndo-line); }
.ndo-hud { display: contents; }
.ndo-pill { display: inline-flex; align-items: baseline; gap: .4rem; padding: .35rem .85rem; border-radius: 999px; background: color-mix(in srgb, var(--ndo-c) 10%, #fff); font-size: .98rem; }
.ndo-pill-k { color: var(--ndo-muted); font-size: .85rem; font-weight: 700; }
.ndo-pill b { font-weight: 900; color: color-mix(in srgb, var(--ndo-c) 75%, #2b2320); font-variant-numeric: tabular-nums; }
.ndo-best { margin-left: auto; font-weight: 800; color: #9a6f14; font-size: .95rem; }
.ndo-stage-body { position: relative; }
.ndo-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; justify-content: center; margin-bottom: 1rem; }

.ndo-seg { display: inline-flex; flex-wrap: wrap; gap: .25rem; padding: .25rem; border-radius: 999px; background: color-mix(in srgb, var(--ndo-c) 9%, #fff); }
.ndo-seg-btn { min-height: 44px; border-radius: 999px; background: transparent; border: 0; padding: .4rem 1rem; font-size: .95rem; }
.ndo-seg-btn[aria-pressed="true"] { background: var(--ndo-c); color: #fff; box-shadow: 0 3px 10px color-mix(in srgb, var(--ndo-c) 35%, transparent); }

/* canvas */
.ndo-canvas-wrap { position: relative; max-width: 760px; margin: 0 auto; border-radius: var(--ndo-radius); overflow: hidden; box-shadow: inset 0 0 0 2px var(--ndo-line); background: #fff6e8; }
.ndo-canvas { display: block; width: 100%; touch-action: none; -webkit-user-select: none; user-select: none; cursor: pointer; }
.ndo-canvas:focus-visible { outline: 3px solid var(--ndo-c); outline-offset: -3px; }
.ndo-overlay { position: absolute; inset: 0; display: grid; place-items: center; padding: 1rem; background: rgba(43, 35, 32, .38); z-index: 2; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.ndo-overlay-card { background: var(--ndo-surface); border-radius: var(--ndo-radius); padding: 1.3rem 1.4rem; max-width: 420px; text-align: center; box-shadow: 0 18px 40px rgba(0, 0, 0, .2); animation: ndo-pop .25s ease; }
.ndo-overlay-card h3 { font-family: var(--ndo-head); font-size: 1.45rem; margin: 0 0 .5rem; }
.ndo-overlay-card p { margin: 0 0 1rem; color: var(--ndo-muted); }
.ndo-pad { display: flex; justify-content: center; gap: 1rem; margin-top: .85rem; }
.ndo-pad .ndo-btn { flex: 1 1 0; max-width: 220px; -webkit-user-select: none; user-select: none; }
@media (hover: hover) and (pointer: fine) { .ndo-pad { display: none; } }

/* memory */
.ndo-mem-board { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.4rem, 1.5vw, .8rem); max-width: 600px; margin: 0 auto; }
.ndo-mem-card { -webkit-appearance: none; appearance: none; border: 0; padding: 0; background: none; cursor: pointer; aspect-ratio: 1; perspective: 800px; border-radius: 14px; font: inherit; }
.ndo-mem-inner { position: relative; display: block; width: 100%; height: 100%; transition: transform .45s cubic-bezier(.2, .8, .3, 1.2); transform-style: preserve-3d; }
.ndo-mem-card.ndo-is-flipped .ndo-mem-inner { transform: rotateY(180deg); }
.ndo-mem-front, .ndo-mem-back { position: absolute; inset: 0; border-radius: 14px; -webkit-backface-visibility: hidden; backface-visibility: hidden; overflow: hidden; display: grid; place-items: center; }
.ndo-mem-front {
  font-size: clamp(1.6rem, 6vw, 2.4rem);
  background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .35) 0 18%, transparent 19%), linear-gradient(135deg, #b0287a, #7b4fb3);
  box-shadow: 0 4px 12px rgba(123, 79, 179, .3); color: #fff;
}
.ndo-mem-card:hover .ndo-mem-front { filter: brightness(1.08); }
.ndo-mem-back { transform: rotateY(180deg); background: #fff; border: 3px solid #fff; box-shadow: 0 4px 12px rgba(0, 0, 0, .15); }
.ndo-mem-back img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ndo-mem-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: .2rem .3rem; font-size: clamp(.58rem, 1.9vw, .75rem); font-weight: 800; line-height: 1.15; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .65)); text-align: center; }
.ndo-mem-back.ndo-noimg { background: linear-gradient(135deg, #fbe7f2, #efe6fb); }
.ndo-mem-back.ndo-noimg .ndo-mem-cap { position: static; color: #7b4fb3; background: none; font-size: .8rem; }
.ndo-mem-card.ndo-is-matched .ndo-mem-back { border-color: var(--ndo-good); box-shadow: 0 0 0 3px rgba(46, 139, 87, .35); }
.ndo-mem-card:disabled { cursor: default; }

/* recipe order */
.ndo-step-pool { display: flex; flex-direction: column; gap: .55rem; }
.ndo-step {
  width: 100%; justify-content: flex-start; text-align: left; border-radius: 14px; min-height: 52px;
  background: #fff; border: 2px solid var(--ndo-line); font-weight: 700; line-height: 1.35; padding: .65rem .9rem;
  box-shadow: 0 2px 6px rgba(60, 35, 20, .05);
}
.ndo-step-pool .ndo-step:hover { border-color: var(--ndo-c); background: color-mix(in srgb, var(--ndo-c) 5%, #fff); }
.ndo-step[draggable="true"] { cursor: grab; }
.ndo-step-order { list-style: none; counter-reset: ndo-step; padding: .6rem; margin: 0; min-height: 120px; border-radius: 16px; border: 2px dashed color-mix(in srgb, var(--ndo-c) 35%, var(--ndo-line)); display: flex; flex-direction: column; gap: .5rem; background: color-mix(in srgb, var(--ndo-c) 4%, #fff); }
.ndo-step-order.ndo-is-over { background: color-mix(in srgb, var(--ndo-c) 12%, #fff); }
.ndo-step-order li { counter-increment: ndo-step; display: flex; gap: .5rem; align-items: center; }
.ndo-step-order li::before { content: counter(ndo-step); flex: 0 0 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--ndo-c); color: #fff; font-weight: 900; }
.ndo-step-order li.ndo-drop-hint { color: var(--ndo-muted); font-style: italic; justify-content: center; padding: 1.5rem .5rem; }
.ndo-step-order li.ndo-drop-hint::before { display: none; }
.ndo-step-placed { border-color: color-mix(in srgb, var(--ndo-c) 30%, var(--ndo-line)); }
.ndo-step.ndo-is-right { border-color: var(--ndo-good); background: #eaf6ef; opacity: 1; }
.ndo-step.ndo-is-wrong { border-color: var(--ndo-bad); background: #fcecea; opacity: 1; }

.ndo-result { text-align: center; padding: 1.5rem .5rem; }
.ndo-result-emoji { font-size: 3.5rem; line-height: 1; margin-bottom: .5rem; }
.ndo-result p { font-size: 1.12rem; margin: 0 0 1rem; }

/* word scramble */
.ndo-scramble { text-align: center; max-width: 640px; margin: 0 auto; }
.ndo-clue { font-size: 1.15rem; font-weight: 700; margin: 0 0 1rem; padding: .7rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--ndo-c) 8%, #fff); }
.ndo-slots, .ndo-tiles { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin: .5rem 0; }
.ndo-slot, .ndo-tile {
  -webkit-appearance: none; appearance: none; font: 900 clamp(1.1rem, 4.6vw, 1.6rem) var(--ndo-body);
  width: clamp(34px, 8.5vw, 52px); height: clamp(42px, 10vw, 58px); border-radius: 12px; cursor: pointer; padding: 0;
  display: grid; place-items: center; color: var(--ndo-ink);
}
.ndo-slot { background: #fff; border: 2px dashed var(--ndo-line); }
.ndo-slot.ndo-is-filled { border-style: solid; border-color: var(--ndo-c); }
.ndo-slot.ndo-is-locked { background: #fff6dc; border-color: #c9962b; }
.ndo-slot.ndo-is-solved { background: #eaf6ef; border-color: var(--ndo-good); color: var(--ndo-good); }
.ndo-slot:disabled { cursor: default; opacity: 1; }
.ndo-slots.ndo-is-wrong { animation: ndo-shake .4s; }
.ndo-tile { background: linear-gradient(#fff, #fbf1e4); border: 2px solid #e2cdb3; box-shadow: 0 3px 0 #e2cdb3; transition: transform .1s; }
.ndo-tile:hover:not(:disabled) { transform: translateY(-2px); }
.ndo-tile:disabled { opacity: .25; cursor: default; box-shadow: none; }
.ndo-scramble .ndo-actions { justify-content: center; }
@keyframes ndo-shake { 0%, 100% { transform: none; } 20%, 60% { transform: translateX(-7px); } 40%, 80% { transform: translateX(7px); } }

/* garden */
.ndo-tipline { background: #eef7f1; border-left: 5px solid var(--ndo-good); border-radius: 12px; padding: .65rem .9rem; margin: 0 0 1rem; font-size: .98rem; }
.ndo-garden-wrap { position: relative; border-radius: var(--ndo-radius); min-height: 320px; }
.ndo-garden { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.ndo-pot {
  background: linear-gradient(#fff, #fbf5ec); border: 2px solid var(--ndo-line); border-radius: 18px;
  padding: .7rem; text-align: center; display: flex; flex-direction: column; gap: .35rem;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ndo-pot.ndo-is-good { animation: ndo-glow-good .6s; }
.ndo-pot.ndo-is-bad { animation: ndo-shake .4s; border-color: var(--ndo-bad); }
.ndo-pot.ndo-is-sad { background: linear-gradient(#fff, #f7ebe2); }
.ndo-pot.ndo-is-sad .ndo-plant-icon { filter: saturate(.35); transform: rotate(-8deg); }
.ndo-pot.ndo-is-bloom { border-color: #b0287a; box-shadow: 0 0 0 3px rgba(176, 40, 122, .15); }
@keyframes ndo-glow-good { 50% { box-shadow: 0 0 0 5px rgba(46, 139, 87, .3); } }
.ndo-plant-name { font-size: .8rem; font-weight: 800; color: var(--ndo-muted); text-transform: uppercase; letter-spacing: .04em; }
.ndo-plant-icon { font-size: clamp(2.2rem, 7vw, 3rem); height: clamp(64px, 16vw, 84px); display: grid; place-items: center; transition: transform .3s, filter .3s; }
.ndo-plant-icon img { width: clamp(64px, 16vw, 84px); height: clamp(64px, 16vw, 84px); object-fit: cover; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 4px 12px rgba(176, 40, 122, .35); }
.ndo-plant-stage { font-weight: 800; font-size: .9rem; }
.ndo-meter-row { display: flex; align-items: center; gap: .35rem; font-size: .9rem; }
.ndo-meter { position: relative; flex: 1; height: 14px; border-radius: 999px; background: #efe7dc; overflow: hidden; }
.ndo-meter-zone { position: absolute; top: 0; bottom: 0; background: rgba(46, 139, 87, .28); }
.ndo-meter-fill { position: absolute; left: 0; top: 3px; bottom: 3px; border-radius: 999px; transition: width .2s linear; }
.ndo-meter.ndo-is-water .ndo-meter-fill { background: #1f7fb8; }
.ndo-meter.ndo-is-sun .ndo-meter-fill { background: #e0a21b; }
.ndo-meter.ndo-is-off { box-shadow: 0 0 0 2px rgba(179, 38, 30, .55); }
.ndo-grow { height: 6px; border-radius: 999px; background: #f1e6f0; overflow: hidden; }
.ndo-grow-fill { display: block; height: 100%; background: linear-gradient(90deg, #2e8b57, #b0287a); transition: width .2s linear; }
.ndo-pot-btns { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3rem; margin-top: .2rem; }
.ndo-pot-btn { min-height: 52px; padding: .25rem; border-radius: 12px; background: #fff; border-color: var(--ndo-line); font-size: 1.2rem; }
.ndo-pot-btn > span { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.ndo-pot-btn small { font-size: .7rem; font-weight: 800; color: var(--ndo-muted); }

/* language */
.ndo-lang-bar { align-items: flex-end; }
.ndo-field-inline { display: flex; flex-direction: column; gap: .2rem; font-weight: 800; font-size: .88rem; color: var(--ndo-muted); }
.ndo-field-inline select, .ndo-toolbox select, .ndo-toolbox input:not([type=checkbox]):not([type=radio]):not([type=file]), .ndo-toolbox textarea {
  font: 600 1.02rem var(--ndo-body); color: var(--ndo-ink);
  min-height: 48px; padding: .55rem .8rem; border-radius: 12px; border: 2px solid var(--ndo-line); background: #fff; width: 100%; max-width: 100%;
}
.ndo-field-inline select { min-width: 150px; }
.ndo-toolbox textarea { resize: vertical; line-height: 1.5; }
.ndo-field-inline select:focus, .ndo-toolbox select:focus, .ndo-toolbox input:focus, .ndo-toolbox textarea:focus { border-color: var(--ndo-c); outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--ndo-c) 18%, transparent); }
.ndo-flash-q { text-align: center; padding: 1.1rem 1rem; border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--ndo-c) 10%, #fff), #fff); border: 2px solid var(--ndo-line); margin-bottom: 1rem; }
.ndo-flash-emoji { font-size: 2.6rem; line-height: 1.1; }
.ndo-flash-lang { color: var(--ndo-muted); font-weight: 700; font-size: .9rem; margin: .25rem 0; }
.ndo-flash-word { font-family: var(--ndo-head); font-size: clamp(1.6rem, 6vw, 2.3rem); font-weight: 700; display: flex; justify-content: center; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ndo-choices { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }
.ndo-choices-1 { grid-template-columns: 1fr; }
.ndo-choice {
  min-height: 58px; border-radius: 14px; border: 2px solid var(--ndo-line); background: #fff; font-size: 1.08rem; text-align: center; line-height: 1.3;
}
.ndo-choices-1 .ndo-choice { justify-content: flex-start; text-align: left; }
.ndo-choice:hover:not(:disabled) { border-color: var(--ndo-c); background: color-mix(in srgb, var(--ndo-c) 5%, #fff); }
.ndo-choice:disabled { opacity: .6; }
.ndo-choice.ndo-is-right { border-color: var(--ndo-good); background: #eaf6ef; opacity: 1; color: #1f5f3b; }
.ndo-choice.ndo-is-wrong { border-color: var(--ndo-bad); background: #fcecea; opacity: 1; color: #8a1d16; }
.ndo-lang-area .ndo-actions, .ndo-trivia .ndo-actions { justify-content: center; }
.ndo-fcard {
  -webkit-appearance: none; appearance: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem;
  width: 100%; max-width: 520px; min-height: 240px; margin: 0 auto; padding: 1.5rem; cursor: pointer;
  border-radius: 22px; border: 2px solid var(--ndo-line); color: var(--ndo-ink); font-family: var(--ndo-body);
  background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--ndo-c) 8%, #fff)); box-shadow: var(--ndo-shadow);
  transition: transform .3s ease;
}
.ndo-fcard.ndo-is-flipped { background: linear-gradient(145deg, color-mix(in srgb, var(--ndo-c) 88%, #000), var(--ndo-c)); color: #fff; animation: ndo-flip .35s ease; }
@keyframes ndo-flip { 0% { transform: rotateY(90deg); } 100% { transform: none; } }
.ndo-fcard-emoji { font-size: 3rem; line-height: 1; }
.ndo-fcard-lang { font-weight: 800; font-size: .9rem; opacity: .8; }
.ndo-fcard-word { font-family: var(--ndo-head); font-size: clamp(1.8rem, 7vw, 2.6rem); font-weight: 700; text-align: center; line-height: 1.15; }
.ndo-fcard-tip { font-size: .9rem; opacity: .75; }

/* trivia */
.ndo-trivia { max-width: 720px; margin: 0 auto; }
.ndo-question { font-family: var(--ndo-head); font-size: clamp(1.25rem, 4vw, 1.6rem); margin: .6rem 0 1rem; line-height: 1.3; }
.ndo-explain { margin-top: 1rem; padding: 0; border-radius: 14px; }
.ndo-explain.ndo-is-shown { padding: .85rem 1rem; background: #fff8e8; border-left: 5px solid #c9962b; }

/* confetti */
.ndo-confetti { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 5; }
.ndo-confetti i { position: absolute; top: -12px; width: 10px; height: 14px; border-radius: 2px; opacity: .9; animation: ndo-fall 2s ease-in forwards; }
@keyframes ndo-fall { to { transform: translateY(110vh) rotate(720deg); opacity: .2; } }

/* ==========================================================================
   TOOLBOX
   ========================================================================== */
.ndo-backup { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .8rem; font-size: .95rem; }
.ndo-backup-text { color: var(--ndo-muted); font-weight: 700; margin-right: auto; }
.ndo-notice { padding: .75rem 1rem; border-radius: 14px; background: #eef7f1; border: 2px solid #cfe8d9; margin-bottom: .8rem; font-weight: 700; }
.ndo-notice.ndo-is-warn { background: #fff6e0; border-color: #efd9a5; }

.ndo-tabs {
  display: flex; gap: .5rem; overflow-x: auto; padding: .35rem .2rem .7rem; margin: 0 -.2rem .8rem;
  scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: thin;
}
.ndo-tab {
  -webkit-appearance: none; appearance: none; flex: 0 0 auto; scroll-snap-align: start;
  display: inline-flex; align-items: center; gap: .45rem; min-height: 50px; padding: .5rem 1rem;
  border-radius: 999px; border: 2px solid var(--ndo-line); background: var(--ndo-surface); color: var(--ndo-ink);
  font: 800 .98rem var(--ndo-body); cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s, transform .12s;
}
.ndo-tab:hover { border-color: color-mix(in srgb, var(--ndo-c) 50%, var(--ndo-line)); transform: translateY(-1px); }
.ndo-tab[aria-selected="true"] { background: var(--ndo-c); border-color: var(--ndo-c); color: #fff; box-shadow: 0 5px 14px color-mix(in srgb, var(--ndo-c) 35%, transparent); }
.ndo-tab-icon { font-size: 1.2rem; }
@media (min-width: 900px) { .ndo-tabs { flex-wrap: wrap; overflow: visible; } }
.ndo-panel { animation: ndo-pop .25s ease; }
.ndo-panel:focus { outline: none; }

.ndo-toolhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.ndo-toolhead .ndo-actions { margin-top: 0; }
.ndo-card { background: var(--ndo-surface); border: 1px solid var(--ndo-line); border-radius: var(--ndo-radius); box-shadow: var(--ndo-shadow); padding: clamp(1rem, 3vw, 1.4rem); margin-bottom: 1rem; min-width: 0; }
.ndo-two > .ndo-card { margin-bottom: 0; }
.ndo-two + .ndo-card, .ndo-card + .ndo-two, .ndo-two + .ndo-two { margin-top: 1rem; }

.ndo-field { display: flex; flex-direction: column; gap: .3rem; min-width: 0; margin-bottom: .2rem; }
.ndo-label { font-weight: 800; font-size: .93rem; color: var(--ndo-muted); }
.ndo-form-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.ndo-form-row > .ndo-field { flex: 1 1 150px; }
.ndo-form-row > .ndo-flex { flex: 3 1 220px; }
.ndo-form-row > .ndo-btn { flex: 0 0 auto; }
.ndo-form-grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); align-items: end; }
.ndo-span2 { grid-column: 1 / -1; }
.ndo-narrow { max-width: 220px; }
.ndo-fieldset { border: 0; padding: 0; margin: 1rem 0; min-width: 0; }
.ndo-fieldset legend { margin-bottom: .45rem; padding: 0; }
.ndo-check { display: flex; align-items: center; gap: .65rem; cursor: pointer; min-height: 44px; flex: 1; min-width: 0; }
.ndo-check input { width: 26px; height: 26px; flex: 0 0 26px; accent-color: var(--ndo-c); cursor: pointer; margin: 0; }
.ndo-badge { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 800; background: #f4ece2; color: var(--ndo-muted); white-space: nowrap; }
.ndo-pri-high { background: #fcecea; color: #a52a1f; }
.ndo-pri-med { background: #fff4d8; color: #8a6310; }
.ndo-pri-low { background: #eaf6ef; color: #23714a; }
.ndo-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: .5rem 0 .8rem; }
.ndo-chipbtn { min-height: 44px; padding: .35rem .95rem; border-radius: 999px; border: 2px solid var(--ndo-line); background: #fff; font-size: .95rem; }
.ndo-chipbtn[aria-pressed="true"] { background: var(--ndo-c); color: #fff; border-color: var(--ndo-c); }
.ndo-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ndo-table { width: 100%; border-collapse: collapse; font-size: .98rem; }
.ndo-table th, .ndo-table td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid var(--ndo-line); }
.ndo-table thead th { font-size: .85rem; color: var(--ndo-muted); text-transform: uppercase; letter-spacing: .03em; }
.ndo-table tbody th { font-weight: 700; }
.ndo-table tbody tr:nth-child(even) { background: #fdf8f1; }

/* planner */
.ndo-daynav { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.ndo-daynav input[type=date] { width: auto !important; }
.ndo-bigdate { font-family: var(--ndo-script); font-size: clamp(1.8rem, 6vw, 2.6rem); color: var(--ndo-c); margin: 0 0 .8rem; font-weight: 700; line-height: 1.15; }
.ndo-quote { background: linear-gradient(135deg, #fff8ec, #fff); border-left: 6px solid #c9962b; }
.ndo-quote-label { font-weight: 800; color: #9a6f14; font-size: .92rem; }
.ndo-quote blockquote { margin: .4rem 0 .3rem; }
.ndo-quote blockquote p { font-family: var(--ndo-head); font-size: clamp(1.15rem, 3.4vw, 1.45rem); margin: 0; font-style: italic; line-height: 1.35; }
.ndo-quote .ndo-quote-by { color: var(--ndo-muted); font-style: normal; font-family: var(--ndo-script); font-size: 1.3rem; margin-top: .2rem; }
.ndo-todo { list-style: none; padding: 0; margin: .5rem 0 0; }
.ndo-todo-item { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; border-bottom: 1px dashed var(--ndo-line); }
.ndo-todo-item.ndo-is-done .ndo-check span { text-decoration: line-through; color: var(--ndo-muted); }

/* journal */
.ndo-prompt { flex: 3 1 240px; margin: 0; padding: .7rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--ndo-c) 8%, #fff); font-family: var(--ndo-head); font-style: italic; font-size: 1.12rem; }
.ndo-moods { display: flex; flex-wrap: wrap; gap: .45rem; }
.ndo-mood { flex-direction: column; min-width: 72px; min-height: 72px; border-radius: 16px; padding: .4rem .5rem; border: 2px solid var(--ndo-line); background: #fff; }
.ndo-mood > span { display: flex; flex-direction: column; align-items: center; }
.ndo-mood-e { font-size: 1.8rem; line-height: 1.1; }
.ndo-mood small { font-size: .78rem; font-weight: 800; color: var(--ndo-muted); }
.ndo-mood[aria-checked="true"] { border-color: var(--ndo-c); background: color-mix(in srgb, var(--ndo-c) 10%, #fff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ndo-c) 18%, transparent); }
.ndo-num-field { display: flex; align-items: center; gap: .6rem; margin-bottom: .5rem; }
.ndo-num { flex: 0 0 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--ndo-c); color: #fff; font-weight: 900; }
.ndo-entries { display: flex; flex-direction: column; gap: .8rem; margin-top: .8rem; }
.ndo-entry { border: 1px solid var(--ndo-line); border-radius: 16px; padding: .9rem 1rem; background: #fffdf9; }
.ndo-entry-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; align-items: center; }
.ndo-entry p { margin: .35rem 0; }
.ndo-entry-text { white-space: pre-wrap; }
.ndo-grat { margin: .4rem 0; padding-left: 1.2rem; }
.ndo-grat li::marker { content: "💛 "; }
.ndo-entry .ndo-actions { margin-top: .4rem; }

/* orchids */
.ndo-tipcard { background: #fbf0f7; border-color: #f0d5e6; }
.ndo-tipcard p { margin: 0; }
.ndo-summary { font-weight: 800; font-size: 1.08rem; margin: 0 0 .75rem; }
.ndo-plants { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.ndo-plant { background: var(--ndo-surface); border: 1px solid var(--ndo-line); border-radius: var(--ndo-radius); box-shadow: var(--ndo-shadow); padding: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.ndo-plant-head { display: flex; justify-content: space-between; gap: .5rem; align-items: flex-start; }
.ndo-plant-head p { margin: 0; font-size: .92rem; }
.ndo-due { flex: 0 0 auto; padding: .3rem .75rem; border-radius: 999px; font-weight: 800; font-size: .88rem; white-space: nowrap; }
.ndo-due.ndo-is-late { background: #fcecea; color: #a52a1f; }
.ndo-due.ndo-is-due { background: #1f7fb8; color: #fff; }
.ndo-due.ndo-is-soon { background: #e6f2fa; color: #185f8a; }
.ndo-due.ndo-is-ok { background: #eaf6ef; color: #23714a; }
.ndo-lastlist { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .8rem; margin: 0; font-size: .92rem; }
.ndo-lastlist dt { font-weight: 800; color: var(--ndo-muted); font-size: .82rem; }
.ndo-lastlist dd { margin: 0; }
.ndo-log-wrap { display: flex; flex-direction: column; gap: .45rem; padding-top: .5rem; border-top: 1px dashed var(--ndo-line); }
.ndo-inline-label { display: flex; align-items: center; gap: .5rem; font-weight: 800; font-size: .9rem; color: var(--ndo-muted); }
.ndo-inline-label input { width: auto !important; min-height: 40px !important; }
.ndo-log-btns { display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem; }
.ndo-details summary { cursor: pointer; font-weight: 800; color: var(--ndo-c); min-height: 40px; display: flex; align-items: center; }
.ndo-hist { list-style: none; padding: 0; margin: .5rem 0; font-size: .92rem; }
.ndo-hist li { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed var(--ndo-line); padding: .15rem 0; }

/* wellness */
.ndo-well-top { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; margin-bottom: 1rem; }
.ndo-ring { position: relative; width: 140px; height: 140px; flex: 0 0 140px; }
.ndo-ring svg { display: block; }
.ndo-ring svg circle:last-child { transition: stroke-dasharray .6s ease; }
.ndo-ring-label { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.ndo-ring-label strong { font-size: 1.9rem; line-height: 1; }
.ndo-ring-label small { color: var(--ndo-muted); font-weight: 700; }
.ndo-cheer { font-family: var(--ndo-head); font-size: 1.25rem; margin: 0 0 .5rem; }
.ndo-table-card { padding: .6rem; }
.ndo-habits { border-collapse: separate; border-spacing: 3px; width: 100%; min-width: 300px; }
.ndo-habits th, .ndo-habits td { text-align: center; padding: 0; }
.ndo-habits thead th { font-size: .8rem; color: var(--ndo-muted); font-weight: 800; padding: .25rem 0; }
.ndo-habits thead th span, .ndo-habits thead th small { display: block; }
.ndo-habits thead th small { font-size: .95rem; color: var(--ndo-ink); }
.ndo-habits th.ndo-is-today { color: var(--ndo-c); }
.ndo-habits th.ndo-is-today small { color: #fff; background: var(--ndo-c); border-radius: 999px; width: 1.8em; margin: 0 auto; }
.ndo-habit-name { text-align: left !important; font-weight: 700; font-size: .95rem; padding-right: .3rem !important; }
.ndo-habits .ndo-habit-name { width: 34%; min-width: 96px; }
.ndo-habit-inner { display: flex; align-items: center; justify-content: space-between; gap: .2rem; min-height: 46px; }
.ndo-habit-label { min-width: 0; overflow-wrap: anywhere; line-height: 1.2; }
.ndo-hcell {
  -webkit-appearance: none; appearance: none; width: 100%; min-width: 34px; height: 44px; border-radius: 10px; cursor: pointer;
  border: 2px solid var(--ndo-line); background: #fff; font: 900 1.2rem var(--ndo-body); color: #fff; padding: 0;
}
.ndo-hcell.ndo-is-on { background: var(--ndo-good); border-color: var(--ndo-good); }
.ndo-hcell:disabled { background: #f7f2ea; border-style: dashed; cursor: not-allowed; }
td.ndo-is-today .ndo-hcell:not(.ndo-is-on) { border-color: var(--ndo-c); }
.ndo-streak { font-weight: 900; color: #b8651b; min-width: 32px; }
.ndo-emoji-in { max-width: 80px; text-align: center; font-size: 1.3rem !important; }
.ndo-form-row > .ndo-field:has(.ndo-emoji-in) { flex: 0 0 80px; }

/* meals */
.ndo-meal-grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); margin-bottom: 1rem; }
.ndo-meal-day { background: var(--ndo-surface); border: 1px solid var(--ndo-line); border-radius: 16px; padding: .85rem; box-shadow: var(--ndo-shadow); }
.ndo-meal-day .ndo-h4 { font-family: var(--ndo-head); font-size: 1.15rem; color: var(--ndo-c); }
.ndo-meal-slot { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .55rem; }
.ndo-meal-slot select { font-size: .95rem !important; }
.ndo-shoplist { list-style: none; padding: 0; margin: 0; columns: 2 260px; column-gap: 1.5rem; }
.ndo-shoplist li { break-inside: avoid; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px dashed var(--ndo-line); }
.ndo-shoplist li.ndo-is-done .ndo-check > span { text-decoration: line-through; color: var(--ndo-muted); }
.ndo-shoplist .ndo-check > span::first-letter { text-transform: uppercase; }

/* scaler */
.ndo-factor { font-weight: 800; color: var(--ndo-c); margin: 0 0 .5rem; }
.ndo-scaled { margin: 0; padding-left: 1.4rem; font-size: 1.08rem; }
.ndo-scaled li { padding: .3rem 0; border-bottom: 1px dashed var(--ndo-line); }
.ndo-scaled strong { color: var(--ndo-c); font-size: 1.12rem; }
.ndo-unscaled { color: var(--ndo-muted); }

/* converter */
.ndo-conv-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); margin-bottom: 1rem; }
.ndo-conv-grid > .ndo-card { margin: 0; }
.ndo-conv-out { list-style: none; padding: 0; margin: .7rem 0 0; }
.ndo-conv-out li { padding: .3rem 0; border-bottom: 1px dashed var(--ndo-line); }
.ndo-conv-out strong { font-size: 1.15rem; color: var(--ndo-c); font-variant-numeric: tabular-nums; }
.ndo-temp { flex-wrap: nowrap; }
.ndo-temp > .ndo-field { flex: 1 1 0; }
.ndo-eq { font-size: 1.4rem; color: var(--ndo-muted); padding-bottom: .6rem; }

/* collection */
.ndo-totals { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(min(46%, 120px), 1fr)); margin-bottom: 1rem; }
.ndo-total { background: var(--ndo-surface); border: 1px solid var(--ndo-line); border-radius: 16px; padding: .7rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: .05rem; box-shadow: var(--ndo-shadow); }
.ndo-total-i { font-size: 1.5rem; }
.ndo-total strong { font-size: 1.5rem; line-height: 1.1; }
.ndo-total small { font-weight: 700; }
.ndo-total.ndo-is-grand { background: color-mix(in srgb, var(--ndo-c) 10%, #fff); border-color: color-mix(in srgb, var(--ndo-c) 30%, var(--ndo-line)); }
.ndo-coll-list { display: flex; flex-direction: column; gap: .6rem; margin-top: .8rem; }
.ndo-coll-item { display: flex; gap: .8rem; align-items: flex-start; padding: .75rem; border: 1px solid var(--ndo-line); border-radius: 16px; background: #fffdf9; }
.ndo-coll-icon { font-size: 1.7rem; width: 50px; height: 50px; flex: 0 0 50px; display: grid; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--ndo-c) 10%, #fff); }
.ndo-coll-body { flex: 1; min-width: 0; }
.ndo-coll-body p { margin: .15rem 0; overflow-wrap: anywhere; }
.ndo-coll-body .ndo-h4 { margin: 0; overflow-wrap: anywhere; }
.ndo-coll-side { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.ndo-coll-side .ndo-actions { margin: 0; gap: .2rem; flex-wrap: nowrap; }

/* dates */
.ndo-today-banner { padding: 1rem 1.2rem; border-radius: var(--ndo-radius); margin-bottom: 1rem; font-weight: 800; font-size: 1.12rem; color: #fff; background: linear-gradient(135deg, #b0287a, #c9962b); box-shadow: var(--ndo-shadow); }
.ndo-dates { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.ndo-date { display: flex; gap: .8rem; align-items: center; padding: .7rem; border-radius: 16px; border: 1px solid var(--ndo-line); background: #fffdf9; }
.ndo-date.ndo-is-soon { border-color: color-mix(in srgb, var(--ndo-c) 40%, var(--ndo-line)); }
.ndo-date.ndo-is-today { background: #fff4df; border-color: #c9962b; box-shadow: 0 0 0 3px rgba(201, 150, 43, .2); }
.ndo-date-cal { flex: 0 0 60px; height: 64px; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; text-align: center; background: #fff; border: 2px solid var(--ndo-line); }
.ndo-date-cal small { background: var(--ndo-c); color: #fff; font-weight: 800; font-size: .75rem; text-transform: uppercase; padding: .1rem 0; }
.ndo-date-cal strong { font-size: 1.55rem; flex: 1; display: grid; place-items: center; }
.ndo-date-body { flex: 1; min-width: 0; }
.ndo-date-body .ndo-h4 { margin: 0; overflow-wrap: anywhere; }
.ndo-date-body p { margin: .1rem 0; }
.ndo-date-side { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.ndo-countdown { font-weight: 900; color: var(--ndo-c); white-space: nowrap; }
.ndo-date.ndo-is-today .ndo-countdown { color: #9a6f14; }

/* ---------- responsive ---------- */
@media (max-width: 640px) {
  .ndo-garden { grid-template-columns: repeat(2, 1fr); gap: .55rem; }
  .ndo-pot { padding: .5rem; }
  .ndo-choices { grid-template-columns: 1fr; }
  .ndo-seg { flex-wrap: nowrap; }
  .ndo-seg-btn { padding: .4rem .7rem; font-size: .88rem; }
  .ndo-stage-head .ndo-btn { min-height: 44px; padding: .45rem .8rem; font-size: .92rem; }
  .ndo-stage-title { order: -1; flex-basis: 100%; }
  .ndo-best { margin-left: 0; }
  .ndo-lastlist { grid-template-columns: 1fr; }
  .ndo-mood { min-width: 62px; min-height: 64px; }
  .ndo-temp { flex-wrap: wrap; }
  .ndo-eq { display: none; }
  .ndo-hcell { min-width: 26px; height: 40px; }
  .ndo-habits { border-spacing: 2px; }
  .ndo-habit-inner { flex-direction: column; align-items: flex-start; }
  .ndo-habit-name { font-size: .88rem; }
}
@media (max-width: 420px) {
  .ndo-arcade, .ndo-toolbox { font-size: 1rem; }
  .ndo-pot-btn small { display: none; }
  .ndo-pot-btn { min-height: 46px; }
  .ndo-gcard { padding: 1rem; }
  .ndo-coll-item { flex-wrap: wrap; }
  .ndo-coll-side { flex-direction: row; width: 100%; justify-content: space-between; align-items: center; }
  .ndo-date { flex-wrap: wrap; }
  .ndo-date-side { flex-direction: row; width: 100%; justify-content: space-between; align-items: center; }
  .ndo-backup-text { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ndo-arcade *, .ndo-toolbox * { animation: none !important; transition: none !important; }
}

/* ---------- print: only the active tool ---------- */
@media print {
  body * { visibility: hidden !important; }
  #toolbox .ndo-panel, #toolbox .ndo-panel * { visibility: visible !important; }
  #toolbox .ndo-panel { position: absolute; left: 0; top: 0; width: 100%; animation: none; }
  .ndo-noprint, .ndo-backup, .ndo-tabs, .ndo-notice, .ndo-confetti { display: none !important; }
  .ndo-print-only { display: block; font-weight: 700; }
  .ndo-meal-slot select, .ndo-meal-slot input { display: none !important; }
  .ndo-card, .ndo-plant, .ndo-meal-day, .ndo-total { box-shadow: none !important; break-inside: avoid; }
  .ndo-toolbox { font-size: 11pt; color: #000; }
  .ndo-btn-primary, .ndo-tab[aria-selected="true"] { box-shadow: none; }
  .ndo-meal-grid { grid-template-columns: repeat(4, 1fr); }
  .ndo-hcell { border: 1px solid #999 !important; }
  .ndo-hcell.ndo-is-on { background: #ccc !important; color: #000 !important; }
  .ndo-hcell:disabled { opacity: 1; }
}
