*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #7c3aed;--primary-dark: #6d28d9;--primary-light: #ede9fe;--primary-glow: rgba(124, 58, 237, .18);--accent: #f59e0b;--accent-dark: #d97706;--bg: #fafaf9;--surface: #ffffff;--surface-tinted: #f5f3ff;--border: #ddd6fe;--border-light: #ede9fe;--text: #1a1523;--text-muted: #6b7280;--text-light: #9ca3af;--error: #dc2626;--error-bg: #fef2f2;--error-border: #fecaca;--success: #16a34a;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 4px rgba(109, 40, 217, .08), 0 1px 2px rgba(109, 40, 217, .04);--shadow-md: 0 4px 16px rgba(109, 40, 217, .1), 0 2px 6px rgba(109, 40, 217, .06);--shadow-lg: 0 10px 32px rgba(109, 40, 217, .14), 0 4px 12px rgba(109, 40, 217, .08);--gradient: linear-gradient(135deg, #7c3aed 0%, #4f46e5 100%);--gradient-soft: linear-gradient(135deg, #f5f3ff 0%, #eef2ff 100%)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}.container{max-width:920px;margin:0 auto;padding:0 1.25rem}.card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.75rem;transition:box-shadow .2s}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.2rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;border:none;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 2px 8px #7c3aed59}.btn-primary:hover:not(:disabled){box-shadow:0 4px 14px #7c3aed73;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--primary-light);color:var(--primary-dark)}.btn-secondary:hover:not(:disabled){background:#ddd6fe}.btn-danger{background:#fee2e2;color:var(--error)}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-tinted);border-color:var(--primary-light);color:var(--primary)}.btn-outline-danger{background:transparent;color:var(--error);border:1px solid #fca5a5}.btn-outline-danger:hover:not(:disabled){background:var(--error-bg)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.form-group{display:flex;flex-direction:column;gap:.45rem}.form-group label{font-size:.875rem;font-weight:600;color:var(--text);letter-spacing:.01em}.form-control{width:100%;padding:.65rem .9rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s;outline:none}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-control::placeholder{color:var(--text-light)}.error-msg{color:var(--error);font-size:.83rem;margin-top:.2rem}.alert-error{background:var(--error-bg);border:1px solid var(--error-border);color:#b91c1c;padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem}.badge{display:inline-block;padding:.22rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-summary{background:#dbeafe;color:#1d4ed8}.badge-quiz{background:#fef3c7;color:#92400e}.badge-flashcards,.badge-easy{background:#d1fae5;color:#065f46}.badge-medium{background:#fef3c7;color:#92400e}.badge-hard{background:#fee2e2;color:#991b1b}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center;background:var(--bg);transition:all .2s;cursor:pointer}.upload-zone:hover:not(.upload-zone--disabled){border-color:var(--primary);background:var(--surface-tinted)}.upload-zone--active{border-color:var(--primary);background:var(--surface-tinted);border-style:solid}.upload-zone--disabled{opacity:.5;cursor:not-allowed}.page-header{margin-bottom:1.75rem}.page-header h1{font-size:1.6rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;line-height:1.2}.page-header p{color:var(--text-muted);font-size:.9rem;margin-top:.3rem}.auth-header{background:var(--gradient);margin:-1.75rem -1.75rem 1.75rem;padding:2rem 1.75rem 1.75rem;border-radius:var(--radius) var(--radius) 0 0;color:#fff;text-align:center}.auth-header .auth-icon{font-size:2rem;margin-bottom:.5rem;display:block}.auth-header h1{font-size:1.4rem;font-weight:800;margin-bottom:.2rem;letter-spacing:-.02em}.auth-header p{font-size:.875rem;opacity:.85}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--primary-light);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.generating-bar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:2rem;color:var(--primary);font-weight:600;font-size:.95rem}.summary-output{font-family:inherit;line-height:1.7;color:var(--text);font-size:.95rem;white-space:normal}.summary-output h1,.summary-output h2,.summary-output h3{font-weight:700;margin:1rem 0 .4rem;color:var(--primary)}.summary-output ul{padding-left:1.4rem;margin:.4rem 0 .8rem}.summary-output ul li{margin-bottom:.35rem}.summary-output strong{font-weight:600}.summary-output p{margin:.5rem 0}.quiz-output{display:flex;flex-direction:column;gap:1.5rem}.quiz-question{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:1.1rem 1.2rem}.quiz-question.correct{border-color:#6ee7b7;background:#f0fdf4}.quiz-question.incorrect{border-color:#fca5a5;background:#fff5f5}.quiz-q-text{font-weight:600;margin-bottom:.8rem;color:var(--text);line-height:1.5}.quiz-q-num{color:var(--primary);margin-right:.3rem}.quiz-options{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.9rem}.quiz-option{display:flex;align-items:center;gap:.7rem;padding:.55rem .9rem;border:1.5px solid #e5e7eb;border-radius:7px;background:#fff;cursor:pointer;text-align:left;font-size:.9rem;transition:border-color .15s,background .15s}.quiz-option:hover:not(:disabled){border-color:var(--primary);background:#eff6ff}.quiz-option.option-selected{border-color:var(--primary);background:#eff6ff}.quiz-option.option-correct{border-color:#059669;background:#ecfdf5;font-weight:600}.quiz-option.option-wrong{border-color:#dc2626;background:#fff5f5}.quiz-option:disabled{cursor:default}.option-letter{font-weight:700;color:var(--primary);min-width:1.2rem}.btn-check{padding:.45rem 1.1rem;background:var(--primary);color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:.875rem;font-weight:600;transition:opacity .15s}.btn-check:disabled{opacity:.45;cursor:default}.quiz-feedback{margin-top:.5rem;font-weight:600;font-size:.9rem}.feedback-correct{color:#059669}.feedback-wrong{color:#dc2626}.flashcards-output{display:flex;flex-direction:column;gap:1rem}.flashcards-hint{font-size:.85rem;color:var(--text-muted);text-align:center;margin-bottom:.25rem}.flashcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.flashcard{min-height:160px;perspective:900px;cursor:pointer}.flashcard-inner{position:relative;width:100%;min-height:160px;transition:transform .45s ease;transform-style:preserve-3d}.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:10px;padding:1rem 1.1rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem;overflow-y:auto}.flashcard-front{background:#eff6ff;border:1.5px solid #bfdbfe}.flashcard-back{background:#ecfdf5;border:1.5px solid #6ee7b7;transform:rotateY(180deg)}.card-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.flashcard-front p,.flashcard-back p{font-size:.9rem;font-weight:500;color:var(--text);line-height:1.4;margin:0}.output-text{font-family:inherit;font-size:.9rem;white-space:pre-wrap;word-break:break-word;line-height:1.7;margin:0}
