:root{--bg-1: #fff1d6;--bg-2: #dff3ff;--accent: #ff6b35;--accent-2: #1f9a8a;--accent-3: #6c5ce7;--danger: #e74c3c;--success: #27ae60;--ink: #1f2937;--ink-light: #64748b;--card: #ffffff;--shadow: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 14px 28px rgba(0, 0, 0, .12);--spark: #ffd166;--radius: 20px;--radius-sm: 12px;--radius-xs: 8px}*{box-sizing:border-box}body{margin:0;font-family:DM Sans,sans-serif;color:var(--ink);background:linear-gradient(135deg,#fff8ee,#f0f7ff,#fff3f0);min-height:100vh}h1,h2,h3,h4{font-family:Fredoka,sans-serif;margin:0 0 8px}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;box-shadow:var(--shadow-lg);animation:slideIn .3s ease,fadeOut .3s ease 2.7s;max-width:360px}.toast.success{background:#d4edda;color:#155724;border-left:4px solid var(--success)}.toast.error{background:#f8d7da;color:#721c24;border-left:4px solid var(--danger)}.toast.info{background:#d1ecf1;color:#0c5460;border-left:4px solid #17a2b8}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.app-shell{max-width:960px;margin:0 auto;padding:0 16px 80px}.navbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;margin-bottom:16px;border-bottom:2px solid rgba(0,0,0,.05)}.navbar-brand{display:flex;align-items:center;gap:10px;font-family:Fredoka,sans-serif;font-size:22px;font-weight:600;color:var(--accent)}.navbar-brand .logo-icon{font-size:28px}.navbar-info{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink-light)}.child-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fff3c4,#ffe8a3);padding:6px 14px;border-radius:20px;font-weight:600;font-size:13px;color:var(--ink)}.hero{display:grid;gap:24px;align-items:start;grid-template-columns:1fr 1fr}.card{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.04)}.card-section{background:#f8fafc;border-radius:var(--radius-sm);padding:16px;margin-bottom:16px;border:1px solid #e2e8f0}.card-section h3{font-size:16px;margin-bottom:12px;color:var(--ink)}.card-section h4{font-size:14px;margin-bottom:8px;color:var(--ink-light)}.button{border:none;background:var(--accent);color:#fff;font-family:DM Sans,sans-serif;font-weight:700;font-size:14px;padding:10px 18px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.button:disabled{opacity:.4;cursor:not-allowed;transform:none}.button.secondary{background:var(--accent-2)}.button.purple{background:var(--accent-3)}.button.danger{background:var(--danger)}.button.ghost{background:transparent;color:var(--ink);border:1px solid #e2e8f0}.button.ghost:hover:not(:disabled){background:#f1f5f9}.button.sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-xs)}.button.lg{padding:14px 28px;font-size:16px;border-radius:16px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.subject-tile{padding:20px 16px;border-radius:16px;font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;cursor:pointer;border:2px solid transparent;transition:all .2s ease;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.subject-tile:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #0000001a}.subject-tile:disabled{opacity:.4;cursor:not-allowed}.subject-tile .tile-icon{font-size:28px}.tile-math{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b}.tile-eng{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.tile-hin{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.tile-evs{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.tile-sci{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#5b21b6}.tile-sst{background:linear-gradient(135deg,#ffe4e6,#fecdd3);color:#9f1239}.tile-default{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#334155}.chat-box{display:flex;flex-direction:column;gap:10px;min-height:200px;max-height:calc(100vh - 380px);overflow-y:auto;padding:14px;background:#fafbff;border-radius:var(--radius-sm);border:1px solid #e2e8f0}.chat-bubble{padding:10px 14px;border-radius:14px;max-width:85%;font-size:14px;line-height:1.5;animation:bubbleIn .2s ease}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-bubble.user{background:linear-gradient(135deg,#ffe9d6,#ffd4b0);align-self:flex-end;border-bottom-right-radius:4px}.chat-bubble.ai{background:linear-gradient(135deg,#d9f5f0,#c3ede6);align-self:flex-start;border-bottom-left-radius:4px}.ai-text{white-space:pre-line}.input-row{display:flex;gap:8px;margin-top:12px;align-items:center}.input-row input,input,textarea,select{font-family:DM Sans,sans-serif;font-size:14px;padding:10px 14px;border-radius:var(--radius-xs);border:1px solid #d1d5db;outline:none;transition:border-color .2s;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px #1f9a8a1a}.input-row input{flex:1}.mic{background:#334155;color:#fff;border-radius:var(--radius-xs);padding:10px 14px;border:none;cursor:pointer;font-family:DM Sans,sans-serif;font-weight:600;font-size:13px;transition:all .2s}.mic:hover:not(:disabled){background:#1e293b}.mic:disabled{opacity:.4;cursor:not-allowed}.mic.recording{background:var(--danger);animation:pulse 1s infinite}.recording-banner{margin-top:8px;padding:8px 14px;background:#fee2e2;border-radius:var(--radius-xs);font-weight:600;font-size:13px;color:#991b1b}.transcript{margin-top:8px;padding:8px 14px;background:#eef5ff;border-radius:var(--radius-xs);font-weight:600;font-size:13px}.toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#f8fafc;border-radius:var(--radius-xs);font-weight:500;font-size:13px;cursor:pointer;border:1px solid #e2e8f0;transition:background .2s}.toggle:hover{background:#f1f5f9}.tabs{display:flex;gap:4px;margin-bottom:16px;background:#f1f5f9;border-radius:var(--radius-sm);padding:4px}.tab{border:none;background:transparent;color:var(--ink-light);font-family:DM Sans,sans-serif;font-weight:600;font-size:14px;padding:8px 16px;border-radius:var(--radius-xs);cursor:pointer;transition:all .2s}.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0000001a}.tab:hover:not(.active){color:var(--ink)}.mode-pills{display:flex;gap:6px;flex-wrap:wrap}.mode-pill{border:2px solid #e2e8f0;background:#fff;color:var(--ink);font-family:DM Sans,sans-serif;font-weight:600;font-size:13px;padding:6px 14px;border-radius:20px;cursor:pointer;transition:all .2s}.mode-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.mode-pill:hover:not(.active){border-color:var(--accent);color:var(--accent)}.progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin:8px 0}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:4px;transition:width .4s ease}.spelling-word-display{text-align:center;padding:24px;background:linear-gradient(135deg,#f0f7ff,#fff8ee);border-radius:var(--radius);border:2px dashed #cbd5e1;margin:12px 0}.spelling-word-display .word-prompt{font-family:Fredoka,sans-serif;font-size:20px;color:var(--accent-2);margin-bottom:8px}.spelling-word-display .word-detail{font-size:14px;color:var(--ink-light);margin:4px 0}.spelling-result{text-align:center;padding:12px;border-radius:var(--radius-sm);font-weight:700;font-size:16px;margin:8px 0;animation:bubbleIn .3s ease}.spelling-result.correct{background:#d4edda;color:#155724}.spelling-result.incorrect{background:#f8d7da;color:#721c24}.upload-chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#eef5ff;border-radius:var(--radius-xs);font-weight:600;font-size:13px;cursor:pointer;border:1px dashed #93c5fd;transition:background .2s}.upload-chip:hover{background:#dbeafe}.upload-chip input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload-msg{font-weight:600;font-size:13px;color:var(--accent-2)}.tables-number-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px}.table-number-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 8px;border-radius:14px;border:2px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#eef2ff);cursor:pointer;transition:all .2s;font-family:DM Sans,sans-serif}.table-number-btn:hover{border-color:var(--accent-3);transform:translateY(-2px);box-shadow:0 4px 12px #6c5ce726}.table-number-big{font-family:Fredoka,sans-serif;font-size:28px;font-weight:600;color:var(--accent-3)}.table-number-label{font-size:11px;color:#94a3b8;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.table-grid-display{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.table-row-item{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#f8fafc,#f0f4ff);border-radius:10px;border:1px solid #e8ecf4;transition:background .2s}.table-row-item:hover{background:linear-gradient(135deg,#eef2ff,#e8ecf4)}.table-eq{font-family:Fredoka,sans-serif;font-size:18px;color:var(--ink);min-width:70px}.table-eq-sign{color:#94a3b8;font-weight:700;font-size:16px}.table-result{font-family:Fredoka,sans-serif;font-size:20px;font-weight:600;color:var(--accent-3)}.flex-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.flex-col{display:flex;flex-direction:column;gap:10px}.gap-sm{gap:6px}.gap-md{gap:12px}.gap-lg{gap:20px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9998;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:#fff;border-radius:var(--radius);padding:28px;max-width:400px;width:90%;box-shadow:0 20px 60px #0003;text-align:center}.modal-card h3{margin-bottom:12px}.modal-card p{color:var(--ink-light);margin-bottom:20px;font-size:14px}.spinner{display:inline-block;width:18px;height:18px;border:3px solid #e2e8f0;border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--ink-light);font-weight:600}.usage-bar{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-light)}.usage-bar-track{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;min-width:60px}.usage-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.usage-bar-fill.ok{background:var(--success)}.usage-bar-fill.warn{background:var(--spark)}.usage-bar-fill.critical{background:var(--danger)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width: 768px){.hero{grid-template-columns:1fr}}@media (max-width: 640px){.app-shell{padding:0 10px 60px}.navbar{flex-direction:column;gap:8px;align-items:flex-start}.tile-grid{grid-template-columns:repeat(2,1fr)}.input-row{flex-direction:column}.input-row input{width:100%}.tabs{overflow-x:auto}.chat-box{max-height:50vh}}
