@font-face{font-family:Andika;src:url(/fonts/andika-regular-latin.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Andika;src:url(/fonts/andika-regular-latin-ext.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;src:url(/fonts/andika-bold-latin.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Andika;src:url(/fonts/andika-bold-latin-ext.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02BA,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EcritureCursive;src:url(/fonts/cursive.woff2) format("woff2");font-weight:400;font-display:swap}:root{--indigo: #4f46e5;--indigo-dark: #4338ca;--purple: #a855f7;--green: #16a34a;--red: #dc2626;--amber: #f59e0b;--ink: #1e293b;--muted: #64748b;--bg: #eef2ff;--card: #ffffff;--radius: 18px;--shadow: 0 4px 16px rgba(30, 41, 59, .08)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}h1,h2,h3,p{margin:.3em 0}.font-script{font-family:Andika,Comic Sans MS,sans-serif}.font-cursive{font-family:EcritureCursive,Comic Sans MS,cursive}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.7em 1.2em;border-radius:14px;font-weight:600;transition:transform .05s ease;text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--indigo);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-danger-outline{border:2px solid var(--red);color:var(--red)}.btn-ghost{background:#4f46e514;color:var(--indigo-dark)}.btn-small{padding:.2em .6em}.btn-big{font-size:1.4rem;padding:.8em 1.6em}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;background:linear-gradient(160deg,#eef2ff,#fdf4ff)}.home-title{font-size:3rem;color:var(--indigo)}.home-subtitle{color:var(--muted);font-size:1.2rem}.home-buttons{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-top:2rem}.home-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:240px;padding:2rem;border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);font-size:1.3rem;font-weight:700}.home-card small{color:var(--muted);font-weight:400}.home-card-emoji{font-size:4rem}.home-card-child{border:3px solid #86efac}.home-card-parent{border:3px solid #c4b5fd}.tablet{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,#e0f2fe,#fef9c3);text-align:center}.tablet-offline{position:fixed;top:0;left:0;right:0;background:var(--amber);color:#fff;padding:.4rem;font-weight:600}.tablet-error{color:var(--red);font-weight:600}.tablet-join h1{font-size:2.2rem}.code-display{display:flex;gap:.8rem;justify-content:center;margin:1.5rem 0}.code-digit{width:64px;height:84px;border-radius:16px;background:#fff;box-shadow:var(--shadow);font-size:3rem;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--indigo)}.keypad{display:grid;grid-template-columns:repeat(3,88px);gap:.7rem;justify-content:center}.key{height:76px;border-radius:18px;background:#fff;box-shadow:var(--shadow);font-size:2rem;font-weight:700;color:var(--ink)}.key:disabled{opacity:.35}.key-erase{color:var(--red)}.key-ok{background:var(--green);color:#fff}.tablet-avatar{font-size:6rem}.tablet-waiting h1{font-size:2.4rem}.tablet-waiting p{font-size:1.3rem;color:var(--muted)}.leave-button{margin-top:2rem;opacity:.6}.leave-button.btn-danger{opacity:1}.bouncing-dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.5rem}.bouncing-dots span{width:16px;height:16px;border-radius:50%;background:var(--indigo);animation:bounce 1s infinite alternate}.bouncing-dots span:nth-child(2){animation-delay:.2s}.bouncing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{to{transform:translateY(-14px);opacity:.5}}.tablet-exercise{width:100%;max-width:900px}.exercise-instruction{font-size:1.4rem;color:var(--muted);margin-bottom:1.5rem}.reading-text{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;line-height:1.7;text-align:left}.reading-text p{margin:.6em 0;text-align:center}.reading-text p:only-child{text-align:center}.big-number{font-size:clamp(6rem,25vw,14rem);font-weight:800;color:var(--indigo);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 3rem;display:inline-block;font-variant-numeric:tabular-nums}.dictation{display:flex;flex-direction:column;align-items:center;gap:1.2rem}.btn-speak{background:var(--indigo);color:#fff;font-size:1.5rem;padding:.8em 1.4em;border-radius:18px}.answer-display{min-width:200px;min-height:90px;background:#fff;border-radius:16px;box-shadow:var(--shadow);font-size:4rem;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--ink);font-variant-numeric:tabular-nums}.tablet-feedback .feedback-emoji,.tablet-ended .feedback-emoji{font-size:7rem;animation:pop .5s ease}@keyframes pop{0%{transform:scale(.2)}70%{transform:scale(1.2)}to{transform:scale(1)}}.tablet-feedback h1,.tablet-ended h1{font-size:2.6rem}.tablet-feedback.is-correct h1{color:var(--green)}.tablet-feedback.is-wrong h1{color:var(--amber)}.feedback-points{font-size:2rem;font-weight:800;color:var(--amber)}.feedback-bonus{font-size:1.1rem}.feedback-expected{font-size:1.6rem}.parent-page{max-width:640px;margin:0 auto;padding:1rem 1rem 3rem}.parent-page.centered{min-height:100vh;display:flex;align-items:center;justify-content:center}.parent-header{display:flex;align-items:center;gap:.8rem;justify-content:space-between;margin-bottom:1rem}.parent-header h1{font-size:1.4rem;flex:1}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;margin:.8rem 0}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:.8rem}.login-card label,.child-editor label,.slider-label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.95rem}input,select{font:inherit;padding:.6em .8em;border-radius:10px;border:1.5px solid #cbd5e1}input[type=range]{padding:0}input[type=checkbox]{width:1.2em;height:1.2em}.form-error{color:var(--red);font-weight:600}.hint{color:var(--muted)}.session-list{display:flex;flex-direction:column;gap:.5rem}.session-card{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--ink)}.session-avatar{font-size:2.2rem}.session-card>span:nth-child(2){flex:1}.session-points{font-weight:700;color:var(--amber);white-space:nowrap}.child-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem}.child-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.child-edit{position:absolute;top:.6rem;right:.6rem;font-size:1.1rem}.child-avatar{font-size:3.5rem}.child-level{color:var(--muted)}.child-balance{font-weight:700;color:var(--amber)}.child-add{align-items:center;justify-content:center;color:var(--muted);border:2px dashed #cbd5e1;box-shadow:none;font-weight:600}.child-editor{gap:.7rem;text-align:left;align-items:stretch}.points-editor{width:100%}.avatar-picker{display:flex;flex-wrap:wrap;gap:.3rem}.avatar-option{font-size:1.6rem;padding:.2rem .4rem;border-radius:10px}.avatar-option.is-selected{background:#e0e7ff;outline:2px solid var(--indigo)}.editor-actions{display:flex;gap:.5rem;justify-content:flex-end}.tts-toggle{display:flex;align-items:center;gap:.5rem;margin:.6rem 0;font-weight:500}.code-card{text-align:center}.code-big{font-size:4rem;font-weight:800;letter-spacing:.5rem;color:var(--indigo)}.status-card{text-align:center;color:var(--muted)}.current-card{border:2px solid #c7d2fe}.current-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.chip{background:#eef2ff;color:var(--indigo-dark);border-radius:999px;padding:.15em .7em;font-size:.85rem;font-weight:600}.chip-btn.is-selected{background:var(--amber);color:#fff}.chip-btn:disabled{opacity:.4;cursor:not-allowed}.chip-btn small{opacity:.7;font-size:.8em}.chip-queue{background:#fef3c7;color:#92400e}.current-content{font-size:1.5rem;font-weight:600;text-align:center;margin:.8rem 0}.current-number{font-size:3rem;color:var(--indigo)}.bonus-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.5rem 0;color:var(--muted);font-size:.95rem}.validate-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.6rem}.launcher-card h2,.attempts-card h2{font-size:1.1rem}.seg-row{display:flex;gap:.4rem;margin:.5rem 0;flex-wrap:wrap}.seg{flex:1;min-width:90px;padding:.55em .6em;border-radius:12px;background:#f1f5f9;font-weight:600;border:2px solid transparent}.seg.is-selected{background:#e0e7ff;border-color:var(--indigo);color:var(--indigo-dark)}.slider-label{margin:.8rem 0}.form-notice{background:#eef2ff;border:1.5px solid #c7d2fe;color:#3730a3;border-radius:12px;padding:.6em .9em;margin:.6rem 0}.depth-picker{margin-top:.7rem;display:flex;flex-direction:column;gap:.5rem}.depth-toggle{align-self:flex-start;background:none;border:none;padding:0;font:inherit;font-weight:600;color:#4338ca;cursor:pointer;display:flex;align-items:center;gap:.4rem}.depth-axis{display:flex;flex-direction:column;gap:.25rem}.depth-label{font-size:.95rem;font-weight:600}.depth-label small{display:block;font-weight:400;color:#64748b}.profile-save{margin-top:.8rem;border-top:1.5px dashed #e2e8f0;padding-top:.6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.profile-save .hint{margin:0}.basket{margin-top:.8rem;border-top:1.5px dashed #e2e8f0;padding-top:.6rem}.basket h3{font-size:1rem}.basket ul{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-direction:column;gap:.3rem}.basket li{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-radius:10px;padding:.4em .7em;font-size:.95rem}.attempt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.attempt-list li{display:flex;align-items:center;gap:.5rem;padding:.35em .6em;border-radius:10px;background:#f8fafc}.attempt-list li.is-correct{color:var(--green)}.attempt-list li.is-wrong{color:var(--muted)}.attempt-points{margin-left:auto;font-weight:700;color:var(--amber)}.summary-card{text-align:center}.end-row{display:flex;justify-content:center;margin-top:1.5rem}.letter-keyboard{display:flex;flex-direction:column;gap:.45rem;align-items:center}.letter-row{display:flex;gap:.45rem;justify-content:center}.letter-key{width:58px;height:58px;font-size:1.6rem;border-radius:12px}.key-wide{width:130px}.counting-board{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;margin:0 auto 1.2rem;max-width:820px}.counting-scatter{display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:center;padding:.8rem}.counting-item{font-size:2.6rem;display:inline-block}.counting-groups{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;align-items:flex-start}.counting-group{display:grid;grid-template-columns:repeat(5,auto);gap:.25rem;border:3px solid #c7d2fe;border-radius:14px;padding:.5rem;background:#eef2ff}.counting-group .counting-item{font-size:1.7rem}.counting-units{display:flex;flex-wrap:wrap;gap:.4rem;max-width:220px}.counting-units .counting-item{font-size:1.7rem}.writing-area{display:flex;flex-direction:column;align-items:center;gap:1rem}.writing-model{font-size:3rem;padding:.8rem 2rem}.answer-word{font-size:2.6rem;min-width:320px;letter-spacing:.1em}.arithmetic-display{font-size:clamp(3.5rem,14vw,8rem)}.anagram-answer,.anagram-tiles{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;min-height:64px;align-items:center}.anagram-answer{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:.6rem 1rem;min-width:320px}.anagram-tile{font-size:1.9rem}.anagram-tile.is-placed{background:#e0e7ff}.anagram-tile:disabled{background:#f1f5f9;box-shadow:none}.anagram-validate:disabled{opacity:.4}.anagram-validate{background:var(--green);color:#fff}.rewards-button{position:fixed;bottom:1.2rem;right:1.2rem;background:#fff;box-shadow:var(--shadow);font-size:1.1rem}.rewards-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e293b73;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.rewards-panel{background:var(--bg);border-radius:var(--radius);padding:1.2rem;width:100%;max-width:560px;max-height:85vh;overflow-y:auto;text-align:left}.rewards-header{display:flex;align-items:center;gap:.8rem}.rewards-header h2{flex:1}.rewards-balance{font-weight:700;color:var(--amber)}.rewards-list{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.5rem}.rewards-list li{display:flex;align-items:center;gap:.8rem;background:#fff;border-radius:14px;padding:.7rem 1rem;box-shadow:var(--shadow)}.rewards-list li.is-locked{opacity:.55}.reward-icon{font-size:2rem}.reward-label{flex:1;font-weight:600;display:flex;flex-direction:column}.reward-label small{color:var(--amber);font-weight:700}.reward-result{position:fixed;top:0;right:0;bottom:0;left:0;background:#fffffff5;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30;text-align:center;padding:2rem}.reward-editor{display:flex;flex-direction:column;gap:.6rem;background:#fff;border-radius:14px;padding:.9rem 1rem;box-shadow:var(--shadow)}.reward-editor label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.95rem}.redemption-card{border:2px solid #fcd34d;background:#fffbeb}.redemption-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.4rem 0}.redemption-row .reward-label{min-width:160px}.dash-nav{display:flex;gap:.5rem;margin-bottom:.5rem}.seg-row-types .seg{min-width:30%}.preview-answer{color:var(--muted);font-size:1.1rem;font-weight:500}.level-tabs .seg{min-width:40px;flex:1}.content-add{display:flex;gap:.5rem;align-items:flex-start}.content-add textarea{flex:1}textarea{font:inherit;padding:.6em .8em;border-radius:10px;border:1.5px solid #cbd5e1;resize:vertical;width:100%;box-sizing:border-box}.content-list{list-style:none;padding:0;margin:0}.content-item.is-locked{opacity:.55}.content-text{white-space:pre-wrap}.rewards-admin li{box-shadow:none;background:#f8fafc}.password-card{max-width:420px}.journey-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem;margin:.6rem 0}.journey-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;text-align:left;background:#f8fafc;border-radius:var(--radius);border:2px solid transparent;padding:.9rem 1rem;min-height:44px}.journey-card:active{border-color:var(--indigo);background:#e0e7ff}.journey-emoji{font-size:1.8rem;line-height:1}.journey-title{font-weight:700}.journey-sub{color:var(--indigo-dark);font-weight:600;font-size:.85rem}.journey-hint{color:var(--muted);font-size:.85rem}.focus-picker{margin:.6rem 0 .2rem}.focus-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem;font-weight:600}.focus-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.focus-chip{display:flex;align-items:center;gap:.3rem;min-height:44px;min-width:44px;justify-content:center;padding:.35rem .7rem;border:2px solid var(--muted);border-radius:var(--radius);background:#fff;font-weight:700;font-size:1rem}.focus-chip small{font-size:.7rem;font-weight:600;color:var(--muted)}.focus-chip.is-selected{background:#eef2ff;box-shadow:inset 0 0 0 2px currentColor}.focus-chip:disabled{opacity:.35;border-color:var(--muted);color:var(--muted)}.focus-letters .focus-chip{padding:.35rem .5rem;text-transform:uppercase}.reading-header{text-align:center;margin-bottom:.6rem}.episode-badge{display:inline-block;background:var(--indigo);color:#fff;font-weight:700;font-size:.95rem;border-radius:999px;padding:.25rem .9rem}.reading-title{margin:.35rem 0 0;font-size:1.4rem;color:var(--indigo-dark)}.reveal-image{font-size:4.5rem;line-height:1.2;text-align:center;margin:.6rem 0;animation:reveal-pop .5s ease-out}.reveal-before{font-size:3.5rem;margin-bottom:.2rem;animation:none}@keyframes reveal-pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}.feedback-chute{font-size:1.5rem;font-weight:700;text-align:center;margin:.4rem 1rem}.preview-image{font-size:1.3rem}.univers-picker{margin-top:.5rem}.serie-block{margin-bottom:1.2rem}.serie-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:1.1rem;margin:.8rem 0 .4rem}.serie-count{font-size:.85rem;font-weight:600;color:var(--muted)}.content-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.4rem}.content-title{font-weight:700;margin:0 0 .2rem}.series-progress{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.series-dot{width:14px;height:14px;border-radius:50%;background:#e2e8f0;border:2px solid #cbd5e1}.series-dot.is-done{background:var(--indigo);border-color:var(--indigo)}.series-count{margin-left:.4rem;font-weight:700;color:var(--muted)}.univers-label{font-weight:600}@media(prefers-reduced-motion:reduce){.reveal-image{animation:none}}.virgule{display:block;overflow:visible}.virgule .v-body,.virgule .v-head,.virgule .v-tail,.virgule .v-arm,.virgule .v-eyes,.virgule .v-props{transform-box:view-box}.virgule .v-tail{transform-origin:82px 98px;animation:virgule-tail 3.2s ease-in-out infinite}@keyframes virgule-tail{0%,to{transform:rotate(0)}50%{transform:rotate(-6deg)}}.virgule-watching .v-body,.virgule-greeting .v-body,.virgule-encouraging .v-body{transform-origin:60px 109px;animation:virgule-breathe 4s ease-in-out infinite}@keyframes virgule-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}.virgule-watching .v-eyes{transform-origin:60px 45px;animation:virgule-blink 5.5s infinite}@keyframes virgule-blink{0%,94%,to{transform:scaleY(1)}96%,98%{transform:scaleY(.08)}}.virgule-sleeping .v-body{transform-origin:60px 109px;animation:virgule-sleep 5s ease-in-out infinite}@keyframes virgule-sleep{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.03) translateY(1px)}}.virgule-sleeping .v-tail{animation-duration:6s}.virgule-sleeping .v-props{transform-origin:20px 22px;animation:virgule-zzz 3.4s ease-in-out infinite}@keyframes virgule-zzz{0%{opacity:0;transform:translate(4px,8px) scale(.7)}35%{opacity:.9}to{opacity:0;transform:translate(-6px,-14px) scale(1.1)}}.virgule-greeting .v-arm{transform-origin:42px 82px;animation:virgule-wave 1.6s ease-in-out infinite}@keyframes virgule-wave{0%,to{transform:rotate(6deg)}50%{transform:rotate(-16deg)}}.virgule-cheering .v-body{transform-origin:60px 109px;animation:virgule-jump .7s ease-in-out infinite}@keyframes virgule-jump{0%,to{transform:translateY(0) scaleY(1)}30%{transform:translateY(-7px) scaleY(1.04)}60%{transform:translateY(0) scaleY(.97)}}.virgule-cheering .v-props{transform-origin:60px 40px;animation:virgule-sparkle 1.1s ease-in-out infinite}@keyframes virgule-sparkle{0%,to{opacity:1;transform:scale(1) rotate(0)}50%{opacity:.55;transform:scale(1.18) rotate(12deg)}}.virgule-encouraging .v-props{transform-origin:20px 30px;animation:virgule-heart 1.8s ease-in-out infinite}@keyframes virgule-heart{0%,to{transform:scale(1)}45%{transform:scale(1.16)}}.virgule-encouraging .v-arm{transform-origin:42px 84px;animation:virgule-pat 2s ease-in-out infinite}@keyframes virgule-pat{0%,to{transform:rotate(0)}50%{transform:rotate(-7deg)}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:40}.confetti-piece{position:absolute;top:-6vh;border-radius:3px;opacity:.95;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(112vh) rotate(var(--spin, 540deg));opacity:.9}}.goal-bar{background:var(--card);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);width:min(520px,100%)}.goal-head{display:flex;align-items:center;gap:10px;font-weight:700}.goal-icon{font-size:1.6rem;line-height:1}.goal-label{flex:1;text-align:left}.goal-count{color:var(--muted);font-size:.95rem;white-space:nowrap}.goal-track{margin-top:10px;height:14px;border-radius:999px;background:#e2e8f0;overflow:hidden}.goal-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--indigo),var(--purple));transition:width .6s ease}.goal-message{margin:8px 0 0;color:var(--muted);font-size:.95rem}.goal-bar.is-reached .goal-fill{background:linear-gradient(90deg,var(--green),var(--amber))}.goal-bar.is-reached .goal-message{color:var(--green);font-weight:700}.goal-bar.is-compact{padding:8px 10px;box-shadow:none;background:transparent}.goal-bar.is-compact .goal-head{font-size:.9rem;font-weight:600}.goal-bar.is-compact .goal-icon{font-size:1.1rem}.goal-bar.is-compact .goal-track{height:8px;margin-top:6px}.goal-picker{margin-left:auto;display:flex;gap:6px;align-items:center}.goal-flag{background:none;border:none;font-size:1.4rem;padding:4px 6px;cursor:pointer;opacity:.35;line-height:1}.goal-flag.is-goal{opacity:1;filter:drop-shadow(0 0 4px rgba(79,70,229,.5))}.diploma{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:4px double var(--indigo);padding:20px 24px;text-align:center;width:min(560px,92vw)}.diploma-title{margin:0;color:var(--indigo);letter-spacing:.05em;text-transform:uppercase;font-size:1rem}.diploma-name{margin:6px 0 2px;font-size:1.8rem}.diploma-date{margin:0;color:var(--muted);font-size:.9rem}.diploma-stats{display:flex;justify-content:center;gap:22px;margin:16px 0 4px}.diploma-stat strong{display:block;font-size:1.8rem;color:var(--indigo)}.diploma-stat span{color:var(--muted);font-size:.85rem}.brand-mark{display:flex;align-items:center;justify-content:center;gap:12px}.brand-name{margin:0;font-size:2.6rem;color:var(--indigo)}.tablet-waiting .virgule,.tablet-feedback .virgule,.tablet-ended .virgule{margin:0 auto}@media(prefers-reduced-motion:reduce){.virgule *,.confetti-piece{animation:none!important}.goal-fill{transition:none}}.period-picker{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}.stat-banner{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem;text-align:center}.stat-tile{display:flex;flex-direction:column;gap:.2rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--indigo)}.stat-label{font-size:.85rem;color:var(--muted)}.stat-label em{font-style:normal;font-weight:700;margin-left:.3rem}.stat-label .is-up{color:var(--green)}.stat-label .is-down{color:var(--red)}.wall-grid{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.2rem}.wall-days{display:grid;grid-template-rows:repeat(7,1fr);gap:3px;font-size:.6rem;color:var(--muted);line-height:1}.wall-days span{display:flex;align-items:center;height:14px}.wall-cells{display:grid;grid-template-rows:repeat(7,14px);grid-auto-flow:column;grid-auto-columns:14px;gap:3px}.wall-cell{width:14px;height:14px;border-radius:3px;padding:0;background:#e2e8f0}.wall-cell.is-empty{background:transparent}.wall-cell.level-1{background:#c7d2fe}.wall-cell.level-2{background:#a5b4fc}.wall-cell.level-3{background:#818cf8}.wall-cell.level-4{background:var(--indigo)}.wall-cell.is-picked{outline:2px solid var(--ink);outline-offset:1px}.wall-legend{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--muted);margin-top:.5rem}.wall-detail{font-size:.9rem;min-height:2.4em}.donut-block{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.donut{width:160px;flex:0 0 160px}.donut-total{font-size:1.6rem;font-weight:700;fill:var(--ink)}.donut-unit{font-size:.8rem;fill:var(--muted)}.cat-list{list-style:none;margin:0;padding:0;flex:1 1 260px;display:flex;flex-direction:column;gap:.5rem}.cat-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:.5rem;align-items:center;font-size:.9rem}.cat-name{display:flex;align-items:center;gap:.3rem}.cat-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.cat-bar-track{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.cat-bar-fill{display:block;height:100%;border-radius:999px}.cat-figures{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.cat-figures small{color:var(--muted);font-size:.72rem;white-space:nowrap}.sound-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.sound-chip{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .7rem;border-radius:14px;background:#f1f5f9;min-width:78px}.sound-chip.is-fragile{background:#fef2f2;outline:2px solid var(--red)}.sound-name{font-weight:700;font-size:1.15rem}.sound-rate{font-weight:700}.sound-count{color:var(--muted);font-size:.7rem}.ladder-block{display:flex;flex-direction:column;gap:.8rem}.ladder-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.ladder-name{flex:0 0 130px;font-weight:700;font-size:.9rem}.ladder-rungs{display:flex;gap:3px}.rung{width:22px;height:24px;border-radius:4px;background:#e2e8f0;color:transparent;font-size:.7rem;display:flex;align-items:center;justify-content:center}.rung.is-solide{background:var(--green);color:#fff}.rung.is-moyen{background:var(--amber);color:#fff}.rung.is-fragile{background:var(--red);color:#fff}.ladder-suggest{flex:1 1 100%;text-align:left}.balance-chart{width:100%;height:auto}.balance-area{fill:#4f46e51f}.balance-line{fill:none;stroke:var(--indigo);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.balance-spend{fill:var(--red)}.balance-figures{display:flex;flex-wrap:wrap;gap:.8rem;font-weight:700;font-size:.9rem}.balance-in{color:var(--green)}.balance-out{color:var(--red)}.balance-now{color:var(--indigo)}.serie-list,.record-list{list-style:none;margin:.5rem 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.record-list li{font-size:.92rem}.serie-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:.5rem;align-items:center;font-size:.9rem}.serie-track{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.serie-fill{display:block;height:100%;background:var(--purple);border-radius:999px}.serie-count{color:var(--muted);font-size:.8rem;white-space:nowrap}.tablet-wall{margin:.8rem 0;display:flex;flex-direction:column;align-items:center;gap:.3rem}.tablet-wall h2{font-size:1.1rem;color:var(--muted)}.tablet-wall .wall-grid{justify-content:center}.tablet-wall .wall-cells{grid-template-rows:repeat(7,20px);grid-auto-columns:20px;gap:4px}.tablet-wall .wall-cell{width:20px;height:20px;border-radius:4px}.tablet-wall .wall-days span{height:20px}.tablet-wall .wall-days{gap:4px;font-size:.7rem}.wall-child-note{font-weight:700;color:var(--indigo)}.reading-highlight{background:#fde68a;border-radius:4px;box-shadow:0 0 0 4px #fde68a;animation:highlight-pop .5s ease-out}@keyframes highlight-pop{0%{background:#fbbf24;box-shadow:0 0 0 12px #fbbf2466}to{background:#fde68a;box-shadow:0 0 0 4px #fde68a}}.preview-token{display:inline;padding:0;border-radius:4px;font:inherit;color:inherit}.preview-token:active{background:#e2e8f0}.preview-token.is-highlighted{background:#fde68a;box-shadow:0 0 0 3px #fde68a}.highlight-hint{margin:.2rem 0 0;font-size:.9rem}.level-suggest{display:block;width:100%;margin-top:.4rem;text-align:left;font-size:.9rem;line-height:1.35}
