body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App,body{background-color:#f5f5f5}.App{min-height:100vh}.header{background-color:#2563eb;box-shadow:0 2px 8px #0000001a;color:#fff;padding:1rem}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.back-button{align-items:center;background:none;border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;gap:.5rem;padding:.5rem .75rem;transition:background-color .2s}.back-button:hover{background-color:#1d4ed8}.header-title{font-size:1.25rem;font-weight:700}.header-subtitle{font-size:.875rem;opacity:.75}.main-content{margin:0 auto;max-width:1200px;padding:2rem 1rem}.loading-container{align-items:center;display:flex;height:16rem;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:3rem;width:3rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background-color:#fee2e2;border:1px solid #fca5a5;border-radius:.5rem;color:#dc2626;margin-bottom:1rem;padding:1rem}.grid-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;cursor:pointer;padding:1.5rem;transition:all .2s}.card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.card-icon{color:#2563eb}.course-card{border-left:4px solid #2563eb}.class-card{border-left:4px solid #059669}.card-title{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.card-description{color:#6b7280;font-size:.875rem;margin-bottom:1rem}.card-stats{justify-content:space-between}.card-details,.card-stats{color:#6b7280;display:flex;font-size:.875rem}.card-details{flex-direction:column;gap:.5rem}.detail-row{display:flex;justify-content:space-between}.status-badge{border-radius:9999px;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.status-badge.active{background-color:#dcfce7;color:#166534}.status-badge.required{background-color:#fee2e2;color:#dc2626}.status-badge.optional{background-color:#f3f4f6;color:#374151}.reports-container{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.report-card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;cursor:pointer;padding:2rem;text-align:center;transition:all .2s}.report-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.students-report{border-left:4px solid #7c3aed}.general-report{border-left:4px solid #ea580c}.report-icon{display:flex;justify-content:center;margin-bottom:1.5rem}.students-report .report-icon{color:#7c3aed}.general-report .report-icon{color:#ea580c}.report-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.report-description{color:#6b7280;line-height:1.5}.activities-card,.table-container{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.section-title{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.table-wrapper{overflow-x:auto}.activities-table,.students-table{border-collapse:collapse;width:100%}.activities-table td,.activities-table th,.students-table td,.students-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}.activities-table th,.students-table th{background-color:#f9fafb;color:#374151;font-weight:600}.activities-table tr:hover,.students-table tr:hover{background-color:#f9fafb}.clickable-row{cursor:pointer;transition:background-color .2s}.clickable-row:hover{background-color:#f3f4f6!important}.activity-name,.student-name{font-weight:500}.activities-count,.activity-order,.completed-count,.not-completed-count,.percentage,.required-status{text-align:center}.progress-cell{width:120px}.progress-bar{background-color:#e5e7eb;border-radius:9999px;height:.5rem;overflow:hidden;width:100%}.progress-fill{height:100%;transition:width .3s ease}.progress-green{background-color:#10b981}.progress-yellow{background-color:#f59e0b}.progress-orange{background-color:#f97316}.progress-red{background-color:#ef4444}.percentage{font-weight:600}.general-container{display:flex;flex-direction:column;gap:1.5rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.stat-content{align-items:center;display:flex;justify-content:space-between}.stat-label{color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.stat-value{font-size:1.5rem;font-weight:600}.stat-icon{color:#6b7280}.extraction-card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.extraction-header{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.extraction-header h3{font-size:1.125rem;font-weight:600}.extraction-date{color:#6b7280}.count-with-icon{align-items:center;display:flex;gap:.25rem;justify-content:center}.check-icon{color:#10b981}.x-icon{color:#ef4444}.completion-cell{align-items:center;display:flex;gap:.5rem;justify-content:center}.mini-progress-bar{background-color:#e5e7eb;border-radius:9999px;height:.5rem;overflow:hidden;width:4rem}.mini-progress-fill{height:100%;transition:width .3s ease}.percentage-text{font-size:.875rem;font-weight:600}@media (max-width:768px){.main-content{padding:1rem}.header-content{flex-direction:column;gap:1rem;text-align:center}.header-left{flex-direction:column;gap:.5rem}.grid-container,.reports-container{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.table-wrapper{font-size:.875rem}.activities-table td,.activities-table th,.students-table td,.students-table th{padding:.5rem}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.card{padding:1rem}.report-card{padding:1.5rem}.modal-content{margin:1rem;max-height:80vh}.activity-item,.student-info{padding:.75rem}.activity-header{gap:.5rem}.activity-details,.activity-header{align-items:flex-start;flex-direction:column}.activity-details{gap:.25rem}}