*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #e8f4f0;--color-bg-wash: linear-gradient(165deg, #c5e8f5 0%, #e8f7f4 40%, #fff8e7 100%);--color-surface: #ffffff;--color-primary: #1e3a5f;--color-primary-dark: #152a45;--color-teal: #0d9488;--color-text: #0f172a;--color-text-muted: #5b7a74;--color-border: #b7d0dc;--color-error: #ef4444;--color-success: #22c55e;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-reward: #f59e0b;--color-reward-bg: #fef3c7;--color-bubble-student-bg: var(--color-primary);--color-bubble-student-text: #ffffff;--color-bubble-tutor-bg: rgba(13, 148, 136, .12);--color-bubble-tutor-text: #134e4a;--radius: 14px;--radius-sm: 12px;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.5rem;--font-display: "Fraunces", Georgia, serif;--font-body: "Source Sans 3", system-ui, sans-serif;--shadow: 0 2px 8px rgba(30, 58, 95, .08)}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);font-size:var(--font-base);line-height:1.5;min-height:100dvh}#app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--color-bg-wash);display:flex;flex-direction:column}.offline-banner{background:var(--color-warning);color:#fff;text-align:center;padding:8px 16px;font-size:var(--font-sm);font-weight:600}.hidden{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:opacity .15s;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn--secondary{background:#0d948824;color:#0f766e}.btn--secondary:hover:not(:disabled){background:#0d948838}.btn--ghost{background:transparent;color:var(--color-primary)}.btn--quiet{background:transparent;color:var(--color-primary);font-weight:600;box-shadow:none}.btn--quiet:hover:not(:disabled){background:#1e3a5f0f}.btn--full{width:100%}.input{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-base);color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color .15s}.input:focus{border-color:var(--color-primary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.bubble{max-width:80%;padding:10px 14px;border-radius:var(--radius);font-size:var(--font-base);line-height:1.5;margin-bottom:8px;word-break:break-word;white-space:pre-wrap}.bubble--tutor{background:var(--color-bubble-tutor-bg);color:var(--color-bubble-tutor-text);border-bottom-left-radius:4px;align-self:flex-start}.bubble--student{background:var(--color-bubble-student-bg);color:var(--color-bubble-student-text);border-bottom-right-radius:4px;align-self:flex-end}.show-answer-link{font-size:var(--font-sm);color:var(--color-text-muted);text-decoration:underline;cursor:pointer;background:none;border:none;padding:0;margin-top:4px;display:inline-block;align-self:flex-start}.show-answer-link:hover{color:var(--color-text)}.note-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px}.note-card__title{font-weight:600;margin-bottom:4px}.note-card__body{font-size:var(--font-sm);color:var(--color-text-muted)}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.error-msg{color:var(--color-error);font-size:var(--font-sm);margin-top:6px}.logo-plate{background:var(--color-surface);border-radius:20px;padding:10px 14px;box-shadow:var(--shadow);display:inline-block}.logo-plate img,.logo-plate .auth-screen__logo-img,.logo-plate .home-screen__logo{display:block;width:100%;height:auto;max-width:240px;margin:0 auto}.coin-chip{display:inline-block;border-radius:999px;padding:6px 14px;font-size:var(--font-sm);font-weight:700;border:1.5px solid var(--color-reward);background:var(--color-reward-bg);color:#b45309;cursor:pointer}button.coin-chip{font-family:inherit}@keyframes mathez-bounce-in{0%{transform:scale(.92);opacity:0}70%{transform:scale(1.03)}to{transform:scale(1);opacity:1}}@keyframes mathez-float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes mathez-wiggle{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes mathez-pop{0%{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}.anim-bounce{animation:mathez-bounce-in .5s cubic-bezier(.34,1.4,.64,1) both}.anim-float{animation:mathez-float-y 2.4s ease-in-out infinite}.anim-wiggle{animation:mathez-wiggle 1.8s ease-in-out infinite;display:inline-block}.anim-pop{animation:mathez-pop .35s ease-out both}@media (prefers-reduced-motion: reduce){.anim-bounce,.anim-float,.anim-wiggle,.anim-pop{animation:none!important}}.screen{flex:1;display:flex;flex-direction:column;padding:24px 20px}.screen-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.screen-header h1{font-family:var(--font-display);font-size:var(--font-xl);font-weight:800;color:#0f3d56}.auth-screen{justify-content:center;gap:12px}.auth-screen__logo{text-align:center;font-size:2rem;font-weight:800;color:var(--color-primary);margin-bottom:8px;font-family:var(--font-display)}.auth-screen__logo-img{display:block;width:100%;max-width:240px;height:auto;margin:0 auto}.auth-screen__subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:16px}.auth-screen form{display:flex;flex-direction:column;gap:12px}.auth-screen .input{background:#ffffffe0}.auth-screen__toggle{text-align:center;font-size:var(--font-sm);color:var(--color-text-muted);margin-top:12px}.auth-screen__toggle a{color:var(--color-primary);cursor:pointer;font-weight:700}.auth-screen__earn{text-align:center;margin-top:auto;padding-top:20px}.auth-screen .logo-plate{margin:0 auto 8px}.setup-screen form{display:flex;flex-direction:column;gap:16px}.setup-screen label{font-weight:600;margin-bottom:4px;display:block}.home-screen__logo{display:block;width:100%;max-width:180px;height:auto;margin:0 auto}.logo-plate--home{margin:4px auto 12px;padding:8px 12px;display:block;max-width:70%}.home-screen__header{justify-content:space-between;margin-bottom:12px}.home-screen__greeting{font-family:var(--font-display);font-size:var(--font-xl);font-weight:800;color:#0f3d56}.home-screen__coins{margin-bottom:16px;align-self:flex-start}.home-screen__subject{margin-bottom:16px}.home-screen__subject label{display:block;font-size:var(--font-sm);font-weight:600;color:var(--color-text-muted);margin-bottom:6px}.home-screen__actions{display:flex;flex-direction:column;gap:4px;margin-bottom:28px}.home-screen__section-title{font-size:.7rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.home-screen__session-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-sm);color:var(--color-text-muted);cursor:pointer}.home-screen__session-item:hover{color:var(--color-text)}.home-screen__session-label{flex:1;min-width:0}.home-screen__session-delete{flex:none;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:4px 6px;border-radius:var(--radius-sm)}.home-screen__session-delete:hover{color:var(--color-error)}.home-screen__nav{display:flex;gap:16px;margin-top:auto;padding-top:20px;border-top:1px solid var(--color-border)}.home-screen__nav a{font-size:var(--font-sm);color:var(--color-primary);text-decoration:none;font-weight:700}.session-screen{padding:0;background:var(--color-surface)}.session-screen__top{padding:6px 10px;border-bottom:1px solid var(--color-border);background:#ffffffeb}.session-screen__problem-wrap{background:linear-gradient(165deg,#c5e8f5,#e8f7f4);padding:12px 12px 10px}.session-screen__problem-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow)}.session-screen__problem-label{font-size:.7rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.session-screen__problem{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-base);font-weight:700;color:var(--color-text);background:transparent;padding:0}.session-screen__messages{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;background:linear-gradient(180deg,#f7fbf9,#fffef8)}.session-screen__messages>:first-child{margin-top:auto}.session-screen__input-row{display:flex;gap:10px;padding:12px 20px;border-top:1px solid var(--color-border);background:var(--color-surface)}.session-screen__input-row .input{flex:1}.session-screen__send{padding:10px 16px}.session-screen__nav{display:flex;gap:16px;justify-content:space-around;padding:10px 20px;border-top:1px solid var(--color-border);background:var(--color-surface)}.session-screen__nav a{font-size:var(--font-sm);color:var(--color-primary);text-decoration:none;font-weight:700}.session-screen__celebrate{text-align:center;padding:12px 20px 4px}.session-screen__celebrate-title{font-family:var(--font-display);font-size:var(--font-xl);font-weight:800;color:var(--color-teal);margin-bottom:8px}.solution-screen__steps{margin-bottom:20px}.solution-step{display:flex;gap:12px;margin-bottom:12px}.solution-step__num{font-weight:700;color:var(--color-primary);min-width:24px}.solution-step__action{font-size:var(--font-sm);color:var(--color-text-muted)}.solution-step__result{font-weight:600}.solution-screen__followup{background:var(--color-bubble-tutor-bg);border-radius:var(--radius-sm);padding:14px;margin-bottom:16px;font-style:italic}.solution-screen__alert{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:14px;margin-bottom:16px}.notes-screen__add-btn{margin-bottom:16px}.notes-screen__empty{color:var(--color-text-muted);text-align:center;margin-top:40px}.note-card__actions{display:flex;gap:8px;margin-top:8px}.note-card__due{font-size:var(--font-sm);font-weight:600;margin-top:6px}.note-card__due--overdue{color:var(--color-error)}.note-card__due--soon{color:var(--color-warning)}.note-card__due--upcoming{color:var(--color-text-muted)}.note-card__edit{font-size:var(--font-sm);color:var(--color-primary);cursor:pointer;background:none;border:none}.note-card__delete{font-size:var(--font-sm);color:var(--color-error);cursor:pointer;background:none;border:none}.parent-screen__child-card{margin-bottom:16px}.parent-screen__stat{display:flex;justify-content:space-between;font-size:var(--font-sm);padding:6px 0;border-bottom:1px solid var(--color-border)}.parent-screen__stat:last-child{border-bottom:none}.reward-balance{text-align:center;font-family:var(--font-display);font-size:2rem;font-weight:800;color:#b45309;margin:8px 0 20px}.reward-balance span{font-family:var(--font-body);font-size:var(--font-base);color:var(--color-text-muted);font-weight:600}.reward-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px}.reward-card__name{font-weight:600}.reward-card__cost{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:2px}.reward-txn{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:var(--font-sm)}.reward-txn__delta{font-weight:700}.reward-txn__delta--earn{color:var(--color-success)}.reward-txn__delta--spend{color:var(--color-error)}.formulas-screen__subject{font-size:var(--font-sm);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:18px 0 8px}.formula-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px}.formula-card__name{font-weight:600;margin-bottom:6px}.formula-card__formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-base);color:var(--color-primary)}.paywall-screen{justify-content:center;text-align:center;gap:16px}.paywall-screen__icon{font-size:3rem}.paywall-screen__title{font-family:var(--font-display);font-size:var(--font-xl);font-weight:800;color:#0f3d56}.paywall-screen__body{color:var(--color-text-muted)}.note-card,.formula-card,.reward-card,.parent-screen__child-card.card,.card{background:#ffffffeb;border-color:var(--color-border)}
