*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f0f2f5;--color-surface: #ffffff;--color-primary: #4f46e5;--color-primary-light: #818cf8;--color-primary-dark: #3730a3;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-user-bubble: #4f46e5;--color-user-text: #ffffff;--color-tutor-bubble: #ffffff;--color-tutor-text: #1e293b;--color-score-gain: #16a34a;--color-score-loss: #dc2626;--color-error: #fef2f2;--color-error-text: #991b1b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .05);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px}html,body,#root{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;height:100%;max-width:800px;margin:0 auto}.app-header{position:sticky;top:0;z-index:100;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.header-content{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:800px;margin:0 auto}.header-title h1{font-size:1.35rem;font-weight:800;color:var(--color-primary-dark);letter-spacing:-.02em}.header-subtitle{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.score-display{display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;padding:8px 20px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:transform .15s ease,box-shadow .15s ease;min-width:120px}.score-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.score-value{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}.score-display{position:relative}.score-gain{animation:flashGain 1.2s ease}.score-loss{animation:flashLoss 1.2s ease}.score-delta{position:absolute;top:-10px;right:-10px;font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:var(--radius-full);animation:deltaPopIn .4s ease,deltaFadeOut .5s ease 2s forwards;white-space:nowrap}.score-delta-gain{background:var(--color-score-gain);color:#fff;box-shadow:0 2px 8px #16a34a66}.score-delta-loss{background:var(--color-score-loss);color:#fff;box-shadow:0 2px 8px #dc262666}@keyframes deltaPopIn{0%{opacity:0;transform:scale(.5) translateY(4px)}50%{transform:scale(1.2) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes deltaFadeOut{0%{opacity:1}to{opacity:0}}@keyframes flashGain{0%{transform:scale(1);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark))}15%{transform:scale(1.12);background:linear-gradient(135deg,var(--color-score-gain),#15803d);box-shadow:0 0 24px #16a34a80}to{transform:scale(1);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark))}}@keyframes flashLoss{0%{transform:scale(1);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark))}15%{transform:scale(1.12);background:linear-gradient(135deg,var(--color-score-loss),#b91c1c);box-shadow:0 0 24px #dc262680}to{transform:scale(1);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark))}}.app-main{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 16px 16px}.chat-window{flex:1;overflow-y:auto;padding:20px 0;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.chat-window::-webkit-scrollbar{width:6px}.chat-window::-webkit-scrollbar-track{background:transparent}.chat-window::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.message-row{display:flex;align-items:flex-end;gap:10px;animation:messageIn .3s ease}.message-row-user{justify-content:flex-end}.message-row-tutor{justify-content:flex-start}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-avatar{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.tutor-avatar{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff}.user-avatar{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.message-bubble{max-width:75%;padding:12px 16px;line-height:1.55;font-size:.925rem;box-shadow:var(--shadow-sm)}.bubble-user{background:var(--color-user-bubble);color:var(--color-user-text);border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg)}.bubble-user p{margin:0}.bubble-tutor{background:var(--color-tutor-bubble);color:var(--color-tutor-text);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px;border:1px solid var(--color-border)}.bubble-error{background:var(--color-error);color:var(--color-error-text);border-color:#fecaca}.tutor-message-content p{margin:0 0 8px}.tutor-message-content p:last-child{margin-bottom:0}.tutor-message-content strong{font-weight:700;color:var(--color-primary-dark)}.tutor-message-content blockquote{border-left:3px solid var(--color-primary-light);margin:8px 0;padding:6px 12px;background:#f8fafc;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--color-text-secondary)}.tutor-message-content ul,.tutor-message-content ol{margin:6px 0;padding-left:20px}.tutor-message-content li{margin-bottom:4px}.tutor-message-content code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:.85em}.tutor-message-content h1,.tutor-message-content h2,.tutor-message-content h3{margin:10px 0 6px;font-weight:700}.tutor-message-content h1{font-size:1.15em}.tutor-message-content h2{font-size:1.05em}.tutor-message-content h3{font-size:.95em}.typing-indicator{display:flex;gap:5px;padding:4px 0}.typing-indicator span{width:8px;height:8px;background:var(--color-primary-light);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.message-input-form{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:border-color .2s ease,box-shadow .2s ease}.message-input-form:focus-within{border-color:var(--color-primary-light);box-shadow:var(--shadow-md),0 0 0 3px #4f46e51a}.message-input{flex:1;border:none;outline:none;font-family:inherit;font-size:.925rem;line-height:1.5;resize:none;background:transparent;color:var(--color-text);max-height:150px}.message-input::placeholder{color:var(--color-text-secondary)}.message-input:disabled{opacity:.5}.send-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;cursor:pointer;flex-shrink:0;transition:background .15s ease,transform .1s ease}.send-button:hover:not(:disabled){background:var(--color-primary-dark);transform:scale(1.05)}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:600px){.header-content{padding:12px 16px}.header-title h1{font-size:1.1rem}.score-display{padding:6px 14px;min-width:100px}.score-value{font-size:1.25rem}.message-bubble{max-width:85%}.app-main{padding:0 8px 8px}}
