:root{--bg:#f7f5ff;--card:#ffffff;--primary:#6b4eff;--primary-dark:#5436e0;--text:#1f1f2e;--muted:#6b7280;--border:#e5e7eb;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.container{max-width:960px;margin:0 auto;padding:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 8px 24px rgba(107,78,255,.08)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:12px;padding:12px 18px;font-weight:600;cursor:pointer;background:var(--primary);color:white}.btn:hover{background:var(--primary-dark)}.btn-secondary{background:white;color:var(--primary);border:1px solid var(--border)}.input,.select,.textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);font-size:16px}.label{display:block;margin-bottom:6px;font-weight:600}.field{margin-bottom:16px}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge-pending{background:#fef3c7;color:#92400e}.badge-processing{background:#dbeafe;color:#1d4ed8}.badge-ready{background:#d1fae5;color:#065f46}.badge-failed{background:#fee2e2;color:#991b1b}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.nav{gap:16px;align-items:center;margin-bottom:24px}.chat,.nav{display:flex}.chat{flex-direction:column;gap:12px;max-height:420px;overflow-y:auto;margin-bottom:16px}.message{padding:12px 16px;border-radius:16px;max-width:85%}.message-user{align-self:flex-end;background:var(--primary);color:white}.message-assistant{align-self:flex-start;background:#f3f4f6}.stat{font-size:28px;font-weight:800;color:var(--primary)}.muted{color:var(--muted)}.error{color:var(--danger);margin-top:8px}.child-theme{--primary:#ff6b9d;--primary-dark:#e84d86;--bg:#fff8fb}.child-eyebrow{font-size:14px;font-weight:700;color:var(--primary);margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em}.child-login-card{max-width:400px;margin:48px auto 0;text-align:center}.child-pin-input{font-size:28px;letter-spacing:.4em;text-align:center}.child-picker{display:flex;flex-direction:column;gap:12px}.child-picker-btn{width:100%}.btn-large{width:100%;padding:14px 20px;font-size:17px}.journey-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.journey-card{display:block;text-align:left;background:var(--card);border:2px solid var(--border);border-radius:20px;padding:24px;cursor:pointer;transition:transform .15s ease,border-color .15s ease;color:inherit;width:100%}.journey-card:hover{transform:translateY(-2px);border-color:var(--primary)}.journey-card-study{border-color:#c4b5fd}.journey-card-homework{border-color:#fcd34d}.journey-card-upload{border-color:#86efac}.journey-icon{font-size:36px;display:block;margin-bottom:12px}.journey-card h2{margin:0 0 8px;font-size:1.25rem}.material-card{margin:0}.child-activity-card h2{font-size:1.35rem}.mini-stat{display:flex;flex-direction:column;gap:2px;padding:12px;background:var(--bg);border-radius:12px}.mini-stat strong{font-size:1rem}.activity-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:8px}.activity-chart-col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.activity-chart-bar-wrap{width:100%;height:80px;display:flex;align-items:flex-end;justify-content:center}.activity-chart-bar{width:70%;max-width:32px;background:linear-gradient(180deg,#ff6b9d,var(--primary));border-radius:6px 6px 2px 2px;min-height:4px;transition:height .2s ease}.activity-chart-label{font-size:10px;color:var(--muted);text-align:center;line-height:1.2}.activity-timeline{list-style:none;margin:0;padding:0}.activity-timeline li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.activity-timeline li:last-child{border-bottom:none}.activity-timeline-time{font-size:12px;color:var(--muted)}