*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Vazirmatn,system-ui,sans-serif;direction:rtl;background:#f1f5f9;color:#1e293b;min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:780px;margin:0 auto;padding-bottom:5rem}.header{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;padding:2.75rem 2rem 2rem;text-align:center;border-radius:0 0 1.5rem 1.5rem;margin-bottom:2rem;box-shadow:0 6px 24px #2563eb47}.header h1{font-size:1.8rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.45rem}.header p{font-size:.95rem;font-weight:300;opacity:.82}.main{display:flex;flex-direction:column;gap:1.25rem;padding:0 1rem}.card{background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 1px 3px #0000000f,0 4px 16px #0000000a}.card>h2{font-size:.95rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1.2rem;padding-bottom:.75rem;border-bottom:1.5px solid #f1f5f9}.field{margin-bottom:1rem}.field:last-of-type{margin-bottom:0}.field label{display:block;font-size:.825rem;font-weight:500;color:#64748b;margin-bottom:.4rem}.field input{width:100%;padding:.6rem .9rem;border:1.5px solid #e2e8f0;border-radius:.6rem;font-family:inherit;font-size:.95rem;color:#1e293b;background:#f8fafc;transition:border-color .15s,box-shadow .15s;direction:rtl}.field input:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px #2563eb1f}.field input:disabled{opacity:.55;cursor:not-allowed}.input-row{display:flex;gap:.6rem;align-items:center}.input-row input{flex:1}.file-name{font-size:.82rem;color:#64748b;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.btn-primary{text-decoration:none}.upload-list{list-style:none;display:flex;flex-direction:column;gap:.4rem}.upload-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;background:#f8fafc;border:1px solid #f1f5f9;border-radius:.55rem}.upload-row.selected{border-color:#2563eb;background:#eff6ff}.upload-pick{flex:1;display:flex;align-items:center;gap:.6rem;background:none;border:none;cursor:pointer;font-family:inherit;text-align:right;padding:.15rem 0}.upload-name{font-weight:600;color:#1e293b;flex:1}.upload-date{font-size:.72rem;color:#94a3b8;direction:ltr}.upload-progress{margin-top:.6rem}.upload-progress .progress-text{margin:.35rem 0 0}.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.4rem;border-radius:.65rem;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,transform .1s,box-shadow .15s}.btn-primary{background:#2563eb;color:#fff;width:100%;margin-top:1rem}.btn-primary:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 12px #2563eb59}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{background:#f1f5f9;color:#374151;border:1.5px solid #e2e8f0;white-space:nowrap;margin-top:0;width:auto}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-danger{background:#ef4444;color:#fff;width:100%;margin-top:1rem}.btn-danger:hover{background:#dc2626}button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.subjects-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin-bottom:.25rem}.subjects-list li{padding:.5rem .8rem;background:#f8fafc;border-radius:.55rem;font-size:.875rem;border:1px solid #f1f5f9}.subject-row{display:flex;align-items:center;gap:.6rem;width:100%}.subject-name{font-weight:600;color:#1e293b;flex:1}.subject-pdf{font-size:.78rem;color:#94a3b8;direction:ltr}.progress-bar-wrap{height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:.6rem}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:999px;transition:width .45s ease;min-width:4px}.progress-text{font-size:.825rem;color:#64748b;margin-bottom:.75rem}.active-banner{display:flex;align-items:center;gap:.6rem;font-size:.875rem;font-weight:500;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-right:3px solid #f59e0b;border-radius:.55rem;padding:.55rem .85rem;margin-bottom:.9rem}.spinner{display:inline-block;width:14px;height:14px;border:2px solid #fbbf24;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.progress-list{list-style:none;display:flex;flex-direction:column;gap:.3rem}.progress-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .75rem;border-radius:.5rem;font-size:.875rem;transition:background .2s}.progress-item.phase-waiting{color:#94a3b8}.progress-item.phase-active{background:#eff6ff;color:#1d4ed8;font-weight:600}.progress-item.phase-done{background:#f0fdf4;color:#15803d}.phase-icon{width:1.2rem;flex-shrink:0;text-align:center;font-size:.8rem}.progress-item .subject-name{flex:1}.page-tag,.pairs-tag{font-size:.75rem;border-radius:999px;padding:.15rem .55rem;font-weight:500;white-space:nowrap}.page-tag{background:#dbeafe;color:#1e40af}.pairs-tag{background:#dcfce7;color:#166534}.done-card{border:1.5px solid #bbf7d0;background:#f0fdf4;text-align:center;padding:2rem 1.5rem}.done-icon{width:3rem;height:3rem;background:#22c55e;color:#fff;border-radius:50%;font-size:1.4rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.done-card h2{color:#15803d;border-color:#bbf7d0;font-size:1.1rem}.done-card p{color:#166534;margin:.5rem 0 1.25rem;font-size:.95rem}.done-card .btn-primary{margin-top:0;width:auto;padding:.65rem 2rem}.error-card{border:1.5px solid #fecaca;background:#fef2f2}.error-card h2{color:#dc2626;border-color:#fecaca}.error-text{color:#991b1b;font-size:.875rem;direction:ltr;text-align:left}.nav{display:flex;gap:.5rem;justify-content:center;padding:.9rem 1rem}.nav-link{text-decoration:none;font-size:.9rem;font-weight:600;color:#475569;background:#fff;border:1.5px solid #e2e8f0;border-radius:999px;padding:.5rem 1.3rem;transition:background .15s,color .15s,box-shadow .15s}.nav-link:hover{background:#f1f5f9}.nav-link.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 4px 12px #2563eb4d}.reviews{display:flex;flex-direction:column;gap:1rem}.review-item{display:flex;gap:.85rem;padding:1rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#f8fafc}.review-badge{flex-shrink:0;width:2.2rem;height:2.2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#2563eb;color:#fff;font-weight:700;font-size:1rem}.review-body{flex:1;min-width:0}.qa-pair{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.85rem}.qa-col{background:#fff;border:1px solid #f1f5f9;border-radius:.6rem;padding:.7rem .85rem;font-size:.9rem;line-height:1.9;overflow-x:auto}.qa-col h3,.review-block h3{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:.45rem}.qa-answer{background:#f0f9ff;border-color:#e0f2fe}.review-block{border-radius:.6rem;padding:.7rem .85rem;font-size:.9rem;line-height:1.9;margin-top:.6rem;background:#fffbeb;border:1px solid #fde68a;border-right:3px solid #f59e0b;overflow-x:auto}.review-block.corrected{background:#f0fdf4;border-color:#bbf7d0;border-right-color:#22c55e}.review-block h3{color:#b45309}.review-block.corrected h3{color:#15803d}.review-block-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.45rem}.review-block-head h3{margin-bottom:0}.btn-docx{background:#15803d;color:#fff;border:none;border-radius:.5rem;font-family:inherit;font-size:.74rem;font-weight:600;padding:.32rem .7rem;cursor:pointer;white-space:nowrap}.btn-docx:hover{background:#166534}.differs-tag{display:inline-block;margin-top:.5rem;font-size:.72rem;font-weight:600;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:999px;padding:.15rem .6rem}.qa-col .katex-display,.review-block .katex-display{direction:ltr;text-align:center;margin:.5rem 0}@media (max-width: 560px){.qa-pair{grid-template-columns:1fr}}.course-chip{font-size:.72rem;border-radius:999px;padding:.15rem .55rem;font-weight:600;white-space:nowrap}.course-chip.has{background:#ede9fe;color:#6d28d9}.course-chip.none{background:#f1f5f9;color:#94a3b8}.course-actions{display:flex;align-items:center;gap:.6rem;margin:.5rem 0 .1rem;padding-right:1.6rem}.btn-upload{font-size:.78rem;padding:.35rem .8rem;cursor:pointer}.btn-link-danger{background:none;border:none;color:#dc2626;font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer;padding:.2rem .3rem}.btn-link-danger:hover:not(:disabled){text-decoration:underline}.course-indexing{display:flex;align-items:center;gap:.55rem;font-size:.8rem;color:#6d28d9;flex:1}.progress-bar-wrap.mini{flex:1;height:5px;margin:0;max-width:200px}.grounding-note{font-size:.82rem;color:#6d28d9;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:.55rem;padding:.5rem .75rem;margin-bottom:1rem}.source-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.source-card{border:1px solid #e2e8f0;border-radius:.75rem;padding:.85rem 1rem;background:#f8fafc}.source-head{display:flex;align-items:center;gap:.6rem}.source-head .subject-name{flex:1}.doc-list{list-style:none;display:flex;flex-direction:column;gap:.3rem;margin:.6rem 0}.doc-row{display:flex;align-items:center;gap:.6rem;font-size:.84rem;background:#fff;border:1px solid #f1f5f9;border-radius:.5rem;padding:.4rem .7rem}.doc-name{flex:1;color:#334155}.source-picker{margin:.45rem 0 .2rem;padding-right:1.6rem}.source-picker>summary{cursor:pointer;font-size:.8rem;color:#6d28d9;font-weight:600;list-style:none}.source-picker>summary::-webkit-details-marker{display:none}.source-picker>summary:before{content:"▾ "}.source-options{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;padding:.5rem .7rem;background:#f5f3ff;border:1px solid #ede9fe;border-radius:.55rem}.source-option{display:flex;align-items:center;gap:.5rem;font-size:.84rem;color:#334155}.source-option>span:first-of-type{flex:1}.no-sources-hint{margin:.45rem 0 .2rem;padding-right:1.6rem;font-size:.78rem;color:#94a3b8}.field select{width:100%;padding:.6rem .9rem;border:1.5px solid #e2e8f0;border-radius:.6rem;font-family:inherit;font-size:.95rem;color:#1e293b;background:#f8fafc;cursor:pointer}.field select:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px #2563eb1f}.model-note{margin-top:.75rem;font-size:.78rem;line-height:1.7;color:#64748b;background:#f8fafc;border:1px solid #f1f5f9;border-radius:.55rem;padding:.55rem .75rem}
