/* The Say-it panel (Little Days, the books, and the game finish card): a child says
   the sentence on screen, with the microphone when a grown-up has turned it on, or
   with the grown-up tapping what they heard. Buttons use .primary/.secondary from the
   page's own stylesheet; the finish card maps its own button styles onto them. */
.say-it .primary,.say-it .secondary{font:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:inherit}
.say-it .primary{background:#24675b;color:#fffdf5;border:2px solid #24675b;box-shadow:0 4px 0 #164a40;border-radius:19px;font-weight:500}
.say-it .secondary{background:#fff8e5;color:#574520;border:2px solid #dbcda5;box-shadow:0 3px 0 #e0d3b1;border-radius:18px}
.say-it .parent-btn{border:1px solid #cbd5c6;background:transparent;border-radius:24px;padding:10px 14px;min-height:44px;font:inherit;font-size:13px;cursor:pointer}
.say-it .w{display:inline}
.finish-say{width:100%;max-width:460px;text-align:left;margin-top:4px}
.finish-say .say-it .say-target{font-size:22px}
.say-it{background:#fffdf6;border:2px solid #d7b7e2;border-radius:24px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;position:relative}
.say-it .say-lead{margin:0;font:600 11px system-ui;letter-spacing:1.5px;text-transform:uppercase;color:#744591}
.say-it .say-target{margin:0;font-size:26px;line-height:1.25;letter-spacing:-.3px}
.say-it .say-target .w.focus{color:#744591;border-bottom:4px solid #d7b7e2}
.say-it .say-target .w.now{background:#f5d17c;border-radius:6px;box-shadow:0 0 0 3px #f5d17c}
.say-it .say-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.say-it .say-actions .secondary,.say-it .say-actions .primary{min-height:48px;padding:10px 14px;font-size:15px}
.say-it .say-yes{background:#2d7a5a;border-color:#2d7a5a;box-shadow:0 4px 0 #1d5a41}
.mic-button{display:inline-flex;align-items:center;gap:10px;background:#bd5036;color:#fffdf5;border:2px solid #bd5036;border-radius:30px;padding:10px 20px 10px 14px;min-height:56px;font-size:19px;font-weight:500;box-shadow:0 4px 0 #8f3822;position:relative}
.mic-button svg{width:28px;height:28px}
.say-it[data-state="listening"] .mic-button{background:#e2634e;animation:mic-breathe .9s infinite alternate}
.say-it[data-state="listening"]::after{content:'';position:absolute;left:16px;right:16px;bottom:8px;height:5px;border-radius:4px;background:linear-gradient(90deg,#bd5036 calc(var(--listen-left,1)*100%),#eadfcd calc(var(--listen-left,1)*100%))}
.say-it[data-state="checking"] .mic-button{opacity:.6}
.say-it[data-state="done"] .mic-button{background:#2d7a5a;border-color:#2d7a5a;box-shadow:0 4px 0 #1d5a41}
@keyframes mic-breathe{to{transform:scale(1.06);box-shadow:0 4px 0 #8f3822,0 0 0 8px #e2634e33}}
.say-it .say-status{margin:0;font-size:14px;color:#435d4c;min-height:20px}
.say-it .say-heard{margin:0;font-size:14px;color:#744591;background:#f4ecf8;border-radius:12px;padding:8px 10px}
.say-it .say-enable{align-self:start;font-size:12px}
.say-it.boss{border-color:#f5d17c}
