.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.modal-overlay.with-backdrop{background:var(--modal-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-overlay .modal{background:var(--bg-card);border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,.12);border:1px solid var(--border-color);overflow:hidden;max-height:min(1024px,100dvh - 40px);max-width:calc(100vw - 40px);z-index:1;display:flex;flex-direction:column;position:relative}[data-theme=dark] .modal-overlay .modal{background:#162032}.modal-overlay .modal--small{width:400px}.modal-overlay .modal--medium{width:600px}.modal-overlay .modal--large{width:800px}.modal-overlay .modal--full{width:calc(100vw - 40px);height:calc(100dvh - 40px)}.modal-overlay .modal--fade{animation:modalFadeIn .3s ease-out}.modal-overlay .modal--slide{animation:modalSlideIn .3s ease-out}.modal-overlay .modal--scale{animation:modalScaleIn .3s ease-out}.modal-overlay .modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:none;background:rgba(0,0,0,0)}.modal-overlay .modal .modal-header--alert{justify-content:center;text-align:center;padding:1.75rem 1.5rem 0}.modal-overlay .modal .modal-header .modal-title{font-size:var(--font-lg);font-weight:700;color:var(--text-primary);margin:0;line-height:1.3;flex:1 1;min-width:0}.modal-overlay .modal .modal-header .modal-close-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.5rem;border-radius:50%;transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-overlay .modal .modal-header .modal-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-overlay .modal .modal-header .modal-close-btn:focus{outline:none}.modal-overlay .modal .modal-header .modal-close-btn svg{width:18px;height:18px}.modal-overlay .modal .modal-body{padding:1.25rem 1.5rem;overflow-y:auto;overflow-x:hidden;flex:1 1;min-height:0;display:flex;flex-direction:column;gap:16px}.modal-overlay .modal .modal-body.centered-modal-body{display:block}.modal-overlay .modal .modal-body.centered-modal-body>form{max-width:680px;margin:0 auto}.modal-overlay .modal .modal-body>*{width:100%;max-width:100%}.modal-overlay .modal .modal-body form{width:100%;max-width:100%;margin:0 auto}.modal-overlay .modal .modal-body .objectives-container .objective-item,.modal-overlay .modal .modal-body .objectives-container .topic-item,.modal-overlay .modal .modal-body .topics-container .objective-item,.modal-overlay .modal .modal-body .topics-container .topic-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:6px;margin-bottom:.5rem;border:1px solid var(--border-color)}.modal-overlay .modal .modal-body .objectives-container .objective-item span,.modal-overlay .modal .modal-body .objectives-container .topic-item span,.modal-overlay .modal .modal-body .topics-container .objective-item span,.modal-overlay .modal .modal-body .topics-container .topic-item span{color:var(--text-primary);font-size:.875rem;flex:1 1}.modal-overlay .modal .modal-body .objectives-container .objective-item .remove-btn,.modal-overlay .modal .modal-body .objectives-container .topic-item .remove-btn,.modal-overlay .modal .modal-body .topics-container .objective-item .remove-btn,.modal-overlay .modal .modal-body .topics-container .topic-item .remove-btn{background:#fee2e2;color:#dc2626;border:none;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.75rem;transition:all .3s ease}.modal-overlay .modal .modal-body .objectives-container .objective-item .remove-btn:hover,.modal-overlay .modal .modal-body .objectives-container .topic-item .remove-btn:hover,.modal-overlay .modal .modal-body .topics-container .objective-item .remove-btn:hover,.modal-overlay .modal .modal-body .topics-container .topic-item .remove-btn:hover{background:#fecaca}.modal-overlay .modal .modal-body .objectives-container .add-btn,.modal-overlay .modal .modal-body .topics-container .add-btn{background:var(--bg-secondary);color:var(--primary-color);border:2px dashed var(--border-color);border-radius:6px;padding:.5rem .75rem;cursor:pointer;font-size:.875rem;transition:all .3s ease;width:100%}.modal-overlay .modal .modal-body .objectives-container .add-btn:hover,.modal-overlay .modal .modal-body .topics-container .add-btn:hover{border-color:var(--primary-color);background:var(--bg-tertiary)}.modal-overlay .modal .modal-footer{padding:0 1.5rem 1.25rem;border-top:none;background:rgba(0,0,0,0);display:flex;gap:.75rem;align-items:center}.modal-overlay .modal .modal-footer .btn,.modal-overlay .modal .modal-footer button{flex:1 1}.modal-overlay .modal .modal-btn{padding:.6rem 1rem;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center}.modal-overlay .modal .modal-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px var(--shadow)}.modal-overlay .modal .modal-btn.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.modal-overlay .modal .modal-btn.primary:hover{opacity:.95}.modal-overlay .modal .modal-btn.secondary{background:rgba(0,0,0,0);color:var(--primary-color);border-color:var(--primary-color)}.modal-overlay .modal .modal-btn.secondary:hover{background:var(--bg-tertiary)}.modal-overlay .modal .status-badge{align-items:center;padding:5px;font-size:.8rem;text-align:center;font-weight:700;border-radius:999px}.modal-overlay .modal .status-badge.generating{background:rgba(255,193,7,.15);color:#b07a00;border:1px solid rgba(255,193,7,.35)}.modal-overlay .modal .status-badge.completed{background:rgba(0,255,136,.514);color:#fff;border:1px solid rgba(25,135,84,.35)}.modal-overlay .modal .status-badge.info{background:rgba(59,130,246,.12);color:var(--primary-color);border:1px solid rgba(59,130,246,.35)}.modal-overlay .modal .analysis-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-secondary)}.modal-overlay .modal .analysis-meta{display:flex;gap:8px;color:#64748b;font-size:12px}.modal-overlay .modal .analysis-datetime{margin-top:4px;color:#64748b;font-size:12px}.modal-overlay .modal .meta-chip{padding:2px 8px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-color)}.modal-split-body{padding:0}.modal-split{display:flex;gap:16px;min-height:380px;max-height:65vh}.modal-split__left{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.modal-split__student-list{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.modal-split__right{flex:1 1;display:flex;flex-direction:column;justify-content:center;gap:1.25rem}.modal-split__table-wrap{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;flex:1 1;overflow-y:auto}.modal-split__table-wrap .data-table-container{margin:0;box-shadow:none;border:none;border-radius:0;background:rgba(0,0,0,0)}.modal-split__table-wrap .data-table{font-size:var(--font-xs)}.modal-split__table-wrap .data-table thead th{background:var(--bg-secondary);font-size:var(--font-xs);padding:.625rem .75rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-split__table-wrap .data-table tbody td{padding:.5rem .75rem}.modal-split__summary{background:var(--bg-secondary);border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.625rem;margin-top:auto}.modal-split__summary .modal-split__summary-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-xs);color:var(--text-secondary)}.modal-split__summary .modal-split__summary-row span:last-child{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal-split__summary .modal-split__summary-row.total{padding-top:.625rem;margin-top:.25rem;border-top:1px solid var(--border-color);font-size:var(--font-base);font-weight:700;color:var(--text-primary)}.modal-split__summary .modal-split__summary-row.total span:last-child{color:var(--primary-color);font-weight:700}@media(max-width:640px){.modal-split{flex-direction:column;min-height:auto;max-height:none}.modal-split__left{max-height:200px;overflow-y:auto}.modal-split__table-wrap{margin:.75rem}.modal-split__left,.modal-split__right{padding:0}.modal-split__right{gap:1rem}.modal-split__summary{padding:.75rem 1rem}}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.modal-overlay{padding:20px}.modal-overlay .modal{max-height:calc(100dvh - 40px)}.modal-overlay .modal,.modal-overlay .modal--large,.modal-overlay .modal--medium,.modal-overlay .modal--small{width:100%;max-width:100%}.modal-overlay .modal .modal-header{padding:1rem 1.5rem}.modal-overlay .modal .modal-header .modal-title{font-size:1.25rem}.modal-overlay .modal .modal-footer{padding:1rem 1.5rem}}@media(max-width:480px){.modal-overlay{padding:20px}.modal-overlay .modal{width:100%;max-width:100%;max-height:calc(100dvh - 40px)}.modal-overlay .modal .modal-header{padding:1rem}.modal-overlay .modal .modal-header .modal-title{font-size:1.125rem}.modal-overlay .modal .modal-body,.modal-overlay .modal .modal-footer{padding:1rem}}.modal-overlay .modal:focus{outline:none}.modal-overlay .modal .modal-close-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}@media print{.modal-overlay{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-overlay .modal{box-shadow:none;border:1px solid #000;max-height:none;max-width:none}}