:root{color-scheme:light;--bg: #fff8f0;--bg-elevated: #ffffff;--border: #f0c4a8;--text: #3d2f4d;--muted: #7a658c;--accent: #ff6b9d;--accent-2: #6b8cff;--accent-3: #ffc93c;--accent-mint: #5fe3c0;--accent-dim: #e8487a;--danger: #e85d75;--font-sans: "Nunito", system-ui, sans-serif;--font-display: "Fredoka", "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);background-image:radial-gradient(circle at 12% 18%,rgba(255,107,157,.22),transparent 42%),radial-gradient(circle at 88% 8%,rgba(107,140,255,.2),transparent 38%),radial-gradient(circle at 70% 92%,rgba(255,201,60,.28),transparent 45%),radial-gradient(circle at 5% 80%,rgba(95,227,192,.18),transparent 40%),repeating-linear-gradient(125deg,transparent,transparent 18px,rgba(255,255,255,.35) 18px,rgba(255,255,255,.35) 20px);color:var(--text);line-height:1.55}code{font-size:.9em;background:var(--bg-elevated);padding:.1em .35em;border-radius:4px}.muted{color:var(--muted);font-size:.92rem}.error{color:var(--danger);margin:0;font-size:.9rem}.app-loading{min-height:100%;display:grid;place-items:center}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.auth-page{min-height:100%;display:grid;place-items:center;padding:2rem}.auth-card{width:min(420px,100%);padding:2.25rem 2rem;background:var(--bg-elevated);border:3px solid transparent;border-radius:22px;background-image:linear-gradient(var(--bg-elevated),var(--bg-elevated)),linear-gradient(135deg,var(--accent),var(--accent-2),var(--accent-3));background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 18px 40px #ff6b9d26,0 8px 24px #6b8cff1a}.auth-card h1{font-family:var(--font-display);font-weight:600;margin:0 0 .35rem;font-size:1.75rem}.auth-card form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.auth-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted)}.auth-card input{padding:.65rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit}.auth-card input:focus{outline:2px solid var(--accent-dim);border-color:transparent}.auth-card button[type=submit]{margin-top:.25rem;padding:.75rem;border:none;border-radius:14px;background:linear-gradient(135deg,var(--accent-2),var(--accent));color:#fff;font-weight:700;cursor:pointer;font:inherit;box-shadow:0 4px #c44d7a}.auth-card button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.footer-link{margin-top:1.25rem;text-align:center;font-size:.9rem;color:var(--muted)}.footer-link a{color:var(--accent);text-decoration:none}.footer-link a:hover{text-decoration:underline}.app-shell{min-height:100%;display:flex;flex-direction:column}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:3px dashed rgba(255,107,157,.35);background:linear-gradient(180deg,#fffffff2,#fff8f0eb);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.75rem}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent-3),var(--accent));border-radius:14px;font-size:1.35rem;line-height:1;box-shadow:0 4px #e8487a59}.brand-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem}.brand-sub{font-size:.75rem;color:var(--muted)}.tabs{display:flex;gap:.35rem}.tabs button{padding:.5rem 1rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.tabs button:hover{color:var(--text)}.tabs button.active{background:linear-gradient(135deg,#ff6b9d33,#6b8cff33);border-color:var(--accent);color:var(--accent-dim);font-weight:700}.header-actions .ghost{padding:.45rem .9rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font:inherit;cursor:pointer}.header-actions .ghost:hover{color:var(--text);border-color:var(--muted)}.main{flex:1;padding:1.5rem;max-width:960px;margin:0 auto;width:100%}.panel{background:#ffffffb8;border-radius:20px;padding:1.35rem 1.5rem 1.75rem;border:2px solid rgba(255,201,60,.45);box-shadow:0 8px 28px #6b8cff14}.panel h2{font-family:var(--font-display);margin:0 0 .5rem;font-weight:700;font-size:1.65rem;background:linear-gradient(90deg,var(--accent-dim),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.panel h3{margin:0;font-size:1rem}.stack{display:flex;flex-direction:column;gap:.85rem;margin-top:1rem}.stack label,.chat-input label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted)}.stack input,.stack textarea,.chat-input input,.chat-input textarea,.stack select,.chat-input select,.inline-form input,.inline-form select{padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit}.stack textarea{resize:vertical;min-height:120px}.session-picker-row{margin-top:.75rem;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.small-hint{font-size:.82rem;line-height:1.35}.chat-textarea-wrap{display:flex;gap:.5rem;align-items:flex-start}.chat-textarea-wrap textarea{flex:1;min-width:0}.btn-mic{position:relative;flex-shrink:0;margin-top:.2rem;width:2.6rem;height:2.6rem;border-radius:12px;border:2px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;font-size:1.15rem;line-height:1;display:grid;place-items:center;transition:border-color .15s,background .2s,transform .15s;overflow:visible}.btn-mic-icon{position:relative;z-index:1}.btn-mic:hover:not(:disabled){border-color:var(--accent);transform:scale(1.04)}.btn-mic:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-mic.recording{border-color:var(--accent-dim);background:linear-gradient(145deg,#ff6b9d40,#ffc93c33);box-shadow:0 0 0 2px #ff6b9d59;animation:mic-glow 1.1s ease-in-out infinite}@keyframes mic-glow{50%{box-shadow:0 0 0 4px #ff6b9d73}}.btn-mic-pulse{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:16px;border:2px solid var(--accent-dim);animation:mic-pulse-ring 1.2s ease-out infinite;pointer-events:none;z-index:0}@keyframes mic-pulse-ring{0%{transform:scale(.92);opacity:.85}to{transform:scale(1.45);opacity:0}}.btn-mic.done{border-color:#34d399;background:linear-gradient(145deg,#34d39973,#5fe3c080);color:#065f46;font-weight:800;font-size:1.05rem;animation:none;box-shadow:0 2px #065f4640}.speech-hint{margin:.35rem 0 0;font-size:.88rem}.stack button[type=submit],.chat-input button[type=submit]{align-self:flex-start;padding:.65rem 1.25rem;border:none;border-radius:14px;background:linear-gradient(135deg,var(--accent-2),var(--accent));color:#fff;font-weight:700;cursor:pointer;font:inherit;box-shadow:0 4px #e8487a73}.stack button:disabled,.chat-input button:disabled{opacity:.5;cursor:not-allowed}.list-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.ghost{padding:.35rem .75rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font:inherit;cursor:pointer;font-size:.85rem}.cw-list{list-style:none;margin:0;padding:0}.cw-list li{display:flex;align-items:baseline;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.cw-id{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.cw-title{font-weight:500}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1.25rem}.inline-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.inline-form button{padding:.55rem 1rem;border-radius:10px;border:none;background:var(--bg-elevated);color:var(--accent);border:1px solid var(--border);font:inherit;font-weight:600;cursor:pointer}.session-badge{font-size:.85rem;color:var(--muted)}.session-badge strong{color:var(--accent-2)}.kid-lead code{font-size:.82rem;background:#ffc93c40;padding:.15em .4em;border-radius:6px}.kid-primary-btn{padding:.65rem 1.35rem;border:none;border-radius:999px;background:linear-gradient(135deg,var(--accent-mint),var(--accent-2));color:#fff;font-weight:800;font-family:var(--font-display);cursor:pointer;font-size:1rem;box-shadow:0 4px #5a6fd4}.kid-primary-btn:hover:not(:disabled){filter:brightness(1.05)}.kid-primary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.cw-pick-block{flex:1 1 100%;min-width:min(100%,320px);padding:.85rem 1rem;background:#ffffffd9;border-radius:16px;border:2px solid rgba(107,140,255,.22)}.cw-pick-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.cw-pick-title{font-weight:700;font-family:var(--font-display);color:var(--accent-dim);font-size:.95rem}.cw-pick-actions{display:flex;gap:.35rem}.pill-btn{padding:.25rem .65rem;border-radius:999px;border:2px solid var(--accent-3);background:#fff;color:var(--text);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.pill-btn:hover:not(:disabled){background:#ffc93c33}.pill-btn:disabled{opacity:.45;cursor:not-allowed}.cw-check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:200px;overflow-y:auto}.cw-check-label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;font-size:.9rem;padding:.35rem .25rem;border-radius:10px}.cw-check-label:hover{background:#ff6b9d14}.cw-check-label input{margin-top:.2rem;accent-color:var(--accent-2)}.cw-guided-toggle{display:flex;align-items:flex-start;gap:.55rem;margin:.65rem 0 .35rem;padding:.55rem .75rem;max-width:36rem;font-size:.88rem;line-height:1.45;background:#6b8cff1f;border-radius:12px;border:2px dashed rgba(107,140,255,.35);cursor:pointer}.cw-guided-toggle input{margin-top:.25rem;accent-color:var(--accent-3);flex-shrink:0}.cw-guided-toggle:has(input:disabled){opacity:.55;cursor:not-allowed}.hint-step{margin:.75rem 0 0;padding:.65rem .9rem;font-size:.9rem;color:var(--accent-dim);background:linear-gradient(90deg,#ffc93c40,#6b8cff26);border:2px dashed rgba(255,107,157,.4);border-radius:14px;max-width:52rem}.history-err{margin:0 0 .75rem}.chat-wrap{display:grid;gap:1rem}.chat-wrap.chat-playground-wrap{display:block}.messages{min-height:240px;max-height:420px;overflow-y:auto;padding:1rem;background:linear-gradient(165deg,#fffffff2,#fff0fce6);border:2px solid rgba(107,140,255,.25);border-radius:18px}.empty-hint{margin:0;text-align:center;padding:2rem}.bubble{margin-bottom:1rem;padding:.75rem 1rem;border-radius:12px;max-width:95%}.bubble.user{margin-left:auto;background:linear-gradient(135deg,#ffc93c59,#ff6b9d33);border:2px solid rgba(255,107,157,.35)}.bubble.assistant{margin-right:auto;background:linear-gradient(135deg,#6b8cff1f,#5fe3c026);border:2px solid rgba(107,140,255,.28)}.bubble-meta{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.25rem}.bubble-time{text-transform:none;letter-spacing:normal;font-weight:400;font-size:.68rem}.bubble-text{white-space:pre-wrap;word-break:break-word}.bubble-img{display:block;max-width:min(100%,280px);max-height:220px;object-fit:contain;margin:.5rem 0;border-radius:12px;border:3px solid rgba(255,201,60,.7);box-shadow:0 6px 16px #3d2f4d1f}.bubble-plain{white-space:pre-wrap}.linkish{margin-top:.35rem;padding:0;border:none;background:none;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline}.chat-input{margin-top:0}.playground-stage{position:relative;border-radius:28px;overflow:hidden;min-height:480px;box-shadow:0 12px 40px #ff8c5a2e,0 4px #ffc93c59;background:linear-gradient(165deg,#fffcf5f0,#e8f8e4eb 45%,#fff5e6f2),url(/playground-bg.png) center 20% / cover no-repeat;border:3px solid rgba(255,180,100,.45)}.playground-topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.65rem 1rem .5rem;background:linear-gradient(90deg,#ffdc9680,#b4e6c859);border-bottom:2px dashed rgba(255,140,90,.25)}.playground-voice-row{display:flex;align-items:center;gap:.65rem;flex:1;min-width:0}.play-speak-label{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:#e85d2c;text-shadow:1px 1px 0 #fff}.play-wave-bars{display:flex;align-items:flex-end;gap:3px;height:22px;padding:0 .35rem}.play-wave-bar{width:5px;height:18px;border-radius:3px;background:linear-gradient(180deg,#ff9f45,#ffc93c);transform-origin:bottom center;transform:scaleY(.28);opacity:.35}.play-wave-bars--hot .play-wave-bar{opacity:1;animation:play-wave-jump .55s ease-in-out infinite alternate}@keyframes play-wave-jump{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}.play-top-hint{font-size:.82rem;font-weight:700;color:#8b5a3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.play-ai-disclaimer{margin:0;font-size:.68rem;color:#a08070}.playground-body{display:flex;gap:.75rem 1rem;padding:1rem 1rem .5rem;align-items:stretch}@media (max-width: 640px){.playground-body{flex-direction:column;align-items:center}.playground-mascot{flex-direction:row!important;width:100%;justify-content:center}}.playground-mascot{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-shrink:0;width:88px}.mascot-ring{width:76px;height:76px;border-radius:50%;background:linear-gradient(145deg,#ffe066,#ff9f1c);display:grid;place-items:center;box-shadow:0 6px #e85d2c,inset 0 -4px 12px #ffffff80;border:3px solid #fff}.mascot-face{font-size:2.35rem;line-height:1}.mascot-owl{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.65rem;font-weight:700;color:#5b4b8a;text-align:center;line-height:1.2;max-width:5.5rem}.mascot-owl-ico{font-size:1.25rem}.playground-main{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;padding-bottom:4.5rem}.playground-scroll{flex:1;min-height:220px;max-height:380px;overflow-y:auto;padding:.35rem .25rem .75rem;scrollbar-color:rgba(255,140,90,.5) transparent}.play-empty-hint{margin:2rem .5rem;text-align:center;font-size:.95rem;color:#7a658c;line-height:1.55}.play-bubble{display:flex;align-items:flex-start;margin-bottom:1rem;gap:0}.play-bubble--user{flex-direction:row;justify-content:flex-end}.play-bubble-card{position:relative;z-index:1;max-width:min(100%,28rem);background:#fff;border-radius:22px;padding:.75rem 1rem .85rem;box-shadow:0 8px 24px #3d2f4d1a,0 2px #ffc87866;border:2px solid rgba(255,220,180,.8)}.play-bubble-card--kid{background:linear-gradient(160deg,#fff5e6,#ffe0c2);border-color:#ff966473;box-shadow:0 6px 18px #ff785026}.play-bubble-tail{width:14px;height:14px;flex-shrink:0;margin-top:1.1rem;border-radius:2px;transform:rotate(45deg);z-index:0}.play-bubble-tail--left{background:#fff;margin-right:-7px;border-left:2px solid rgba(255,220,180,.8);border-bottom:2px solid rgba(255,220,180,.8);box-shadow:-2px 2px 4px #0000000a}.play-bubble-tail--right{background:linear-gradient(160deg,#fff5e6,#ffe0c2);margin-left:-7px;border-right:2px solid rgba(255,150,100,.35);border-top:2px solid rgba(255,150,100,.35)}.play-bubble-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;margin-bottom:.45rem}.play-bubble-toolbar--kid{justify-content:flex-end}.play-bubble-who{font-family:var(--font-display);font-weight:700;font-size:.78rem;color:#e85d2c}.play-bubble-toolbar--kid .play-bubble-who{color:#c45a1a}.play-bubble-time{font-size:.68rem;color:#a09098}.play-tool-btn{margin-left:auto;width:2rem;height:2rem;border:none;border-radius:12px;background:linear-gradient(180deg,#fff3e0,#ffd8a8);cursor:pointer;font-size:1rem;line-height:1;box-shadow:0 2px #f0a060}.play-tool-btn:hover{filter:brightness(1.05)}.play-bubble-text{white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.55;color:#3d2f4d}.play-bubble-text .bubble-img{max-width:min(100%,260px);border-color:#ffb464e6}.play-hint-card{margin:.5rem 0 1rem;padding:.85rem 1rem;border-radius:18px;background:linear-gradient(125deg,#ba8cff59,#8ca0ff4d);border:2px solid rgba(120,90,200,.25);box-shadow:0 6px 20px #6450b41f}.play-hint-title{font-family:var(--font-display);font-weight:800;font-size:.88rem;color:#4a3d7a;margin-bottom:.35rem}.play-hint-body{margin:0 0 .65rem;font-size:.85rem;color:#5a4a72;line-height:1.5}.play-hint-actions{display:flex;gap:.5rem;flex-wrap:wrap}.play-hint-mic{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;border:none;border-radius:999px;font:inherit;font-weight:800;font-size:.82rem;cursor:pointer;color:#fff;background:linear-gradient(135deg,#9b7eed,#6b5cff);box-shadow:0 3px #4a3d9e}.play-hint-mic:hover{filter:brightness(1.06)}.playground-dock{margin-top:.5rem;padding:.65rem .75rem .85rem;background:#ffffffc7;border-radius:18px 18px 24px 24px;border:2px solid rgba(255,200,140,.45)}.playground-dock-row{display:flex;gap:.5rem;align-items:stretch}.playground-textarea{flex:1;min-width:0;resize:vertical;min-height:52px;padding:.55rem .75rem;border-radius:14px;border:2px solid rgba(255,180,120,.5);background:#fffffff2;font:inherit;font-size:.9rem}.playground-send-btn{flex-shrink:0;padding:0 1rem;border:none;border-radius:14px;font-family:var(--font-display);font-weight:800;font-size:.95rem;cursor:pointer;color:#fff;background:linear-gradient(180deg,#ff9f45,#ff7b2e);box-shadow:0 4px #d65a20}.playground-send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.play-advanced{margin-top:.45rem;font-size:.78rem;color:var(--muted)}.play-advanced summary{cursor:pointer;font-weight:600}.play-advanced input{width:100%;margin-top:.35rem;padding:.4rem .55rem;border-radius:10px;border:1px solid var(--border);font:inherit}.play-dock-tip{margin:.4rem 0 0;font-size:.75rem;color:#8a7890}.play-mic-fab{position:absolute;right:.65rem;bottom:.5rem;width:4.25rem;height:4.25rem;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;background:linear-gradient(165deg,#ffe566,#7ec8ff 45%,#4a9fff);box-shadow:0 8px #2d7ad4,0 12px 28px #2d78c859;z-index:6}.play-mic-fab:hover:not(:disabled){transform:scale(1.04);filter:brightness(1.03)}.play-mic-fab:disabled{opacity:.65;cursor:not-allowed;transform:none}.play-mic-fab-inner{font-size:1.75rem;line-height:1;position:relative;z-index:2}.play-mic-fab--rec{animation:play-fab-pulse 1s ease-in-out infinite}.play-mic-fab--done{background:linear-gradient(165deg,#86efac,#34d399);box-shadow:0 6px #059669}.play-mic-fab--done .play-mic-fab-inner{font-size:1.5rem;font-weight:900;color:#065f46}.play-mic-fab-ring{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:3px solid rgba(255,200,60,.85);animation:play-fab-ring-out 1.15s ease-out infinite;pointer-events:none}@keyframes play-fab-pulse{50%{box-shadow:0 8px #2d7ad4,0 12px 32px #ffb43c8c}}@keyframes play-fab-ring-out{0%{transform:scale(.88);opacity:.9}to{transform:scale(1.35);opacity:0}}
