:root{--gec-primary:#4f46e5;--gec-primary-hover:#4338ca;--gec-success:#22c55e;--gec-success-bg:#f0fdf4;--gec-danger:#ef4444;--gec-danger-bg:#fef2f2;--gec-warning:#f59e0b;--gec-warning-bg:#fffbeb;--gec-info:#3b82f6;--gec-info-bg:#eff6ff;--gec-gray-50:#f9fafb;--gec-gray-100:#f3f4f6;--gec-gray-200:#e5e7eb;--gec-gray-300:#d1d5db;--gec-gray-500:#6b7280;--gec-gray-700:#374151;--gec-gray-900:#111827;--gec-radius:12px;--gec-radius-sm:8px;--gec-shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);--gec-shadow-md:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -2px rgba(0,0,0,.06);--gec-transition:all .2s ease}
.gec-att-wrap{max-width:1100px;margin:0 auto;padding:24px 16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
.gec-att-header{margin-bottom:28px}.gec-att-title{font-size:24px;font-weight:700;color:var(--gec-gray-900);margin:0 0 4px}
.gec-att-subtitle{font-size:18px;font-weight:600;color:var(--gec-gray-700);margin:0 0 20px}
.gec-att-subtitle-small{font-size:14px;color:var(--gec-gray-500);margin:0}
.gec-att-back-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--gec-primary);text-decoration:none;margin-bottom:16px;font-weight:500;transition:var(--gec-transition)}
.gec-att-back-link:hover{color:var(--gec-primary-hover);text-decoration:none}
.gec-att-courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.gec-att-course-card{background:#fff;border-radius:14px;border:1px solid var(--gec-gray-200);overflow:hidden;transition:var(--gec-transition);display:flex;flex-direction:column}
.gec-att-course-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--gec-primary),#818cf8)}
.gec-att-course-card:hover{border-color:#c7d2fe;box-shadow:0 4px 20px rgba(79,70,229,.08);transform:translateY(-2px)}
.gec-att-card-header{padding:18px 20px 0}.gec-att-card-header h3{font-size:15px;font-weight:600;color:var(--gec-gray-900);margin:0;line-height:1.4;letter-spacing:-.01em}
.gec-att-card-body{padding:14px 20px 16px}
.gec-att-card-stats{display:flex;gap:0;border:1px solid var(--gec-gray-100);border-radius:10px;overflow:hidden;background:var(--gec-gray-50)}
.gec-att-stat{display:flex;flex-direction:column;align-items:center;flex:1;padding:12px 8px;position:relative}
.gec-att-stat+.gec-att-stat::before{content:'';position:absolute;left:0;top:20%;height:60%;width:1px;background:var(--gec-gray-200)}
.gec-att-stat-number{font-size:20px;font-weight:700;color:var(--gec-primary);line-height:1}
.gec-att-stat-label{font-size:10px;color:var(--gec-gray-500);text-transform:uppercase;letter-spacing:.6px;margin-top:4px;font-weight:500}
.gec-att-card-actions{display:flex;gap:8px;padding:12px 20px 16px;margin-top:auto}
.gec-att-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:var(--gec-transition);line-height:1.4;letter-spacing:.01em}
.gec-att-btn-primary{background:var(--gec-primary);color:#fff;box-shadow:0 1px 3px rgba(79,70,229,.3)}.gec-att-btn-primary:hover{background:var(--gec-primary-hover);color:#fff;text-decoration:none;box-shadow:0 3px 8px rgba(79,70,229,.35)}
.gec-att-btn-secondary{background:transparent;color:var(--gec-gray-700);border:1px solid var(--gec-gray-200)}.gec-att-btn-secondary:hover{background:var(--gec-gray-50);color:var(--gec-gray-900);border-color:var(--gec-gray-300);text-decoration:none}
.gec-att-btn-small{padding:6px 12px;font-size:13px;background:var(--gec-gray-50);color:var(--gec-primary);border:1px solid var(--gec-gray-200)}
.gec-att-btn-small:hover{background:var(--gec-primary);color:#fff;text-decoration:none}
.gec-att-btn:disabled{opacity:.6;cursor:not-allowed}
.gec-att-lesson-selector,.gec-att-date-picker{margin-bottom:16px}
.gec-att-lesson-selector label,.gec-att-date-picker label{display:block;font-size:14px;font-weight:500;color:var(--gec-gray-700);margin-bottom:6px}
.gec-att-lesson-selector select,.gec-att-date-picker input[type="date"]{width:100%;max-width:500px;padding:10px 14px;border:1px solid var(--gec-gray-300);border-radius:var(--gec-radius-sm);font-size:14px;color:var(--gec-gray-900);background:#fff;transition:var(--gec-transition)}
.gec-att-lesson-selector select:focus,.gec-att-date-picker input[type="date"]:focus{outline:none;border-color:var(--gec-primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.gec-att-quick-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:12px 16px;background:var(--gec-gray-50);border-radius:var(--gec-radius-sm)}
.gec-att-quick-actions>span{font-size:13px;font-weight:500;color:var(--gec-gray-500);margin-right:4px}
.gec-att-quick-btn{padding:6px 14px;border:2px solid var(--btn-color,var(--gec-gray-300));background:#fff;border-radius:20px;font-size:13px;font-weight:500;color:var(--btn-color,var(--gec-gray-700));cursor:pointer;transition:var(--gec-transition)}
.gec-att-quick-btn:hover,.gec-att-quick-btn.active{background:var(--btn-color,var(--gec-gray-300));color:#fff}
.gec-att-table-wrap{overflow-x:auto;margin-bottom:20px;border-radius:var(--gec-radius);border:1px solid var(--gec-gray-200)}
.gec-att-table{width:100%;border-collapse:collapse;font-size:14px}
.gec-att-table thead{background:var(--gec-gray-50)}
.gec-att-table th{padding:12px 16px;text-align:center;font-weight:600;font-size:12px;color:var(--gec-gray-500);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--gec-gray-200)}
.gec-att-th-student{text-align:left!important;min-width:200px}.gec-att-th-status{width:90px}.gec-att-th-note{min-width:140px}
.gec-att-table td{padding:10px 16px;border-bottom:1px solid var(--gec-gray-100);text-align:center;vertical-align:middle}
.gec-att-table tbody tr:last-child td{border-bottom:none}.gec-att-table tbody tr:hover{background:var(--gec-gray-50)}
.gec-att-row-saved{animation:gecRowFlash .6s ease}@keyframes gecRowFlash{0%{background:rgba(34,197,94,.15)}100%{background:transparent}}
.gec-att-row-fail{background:rgba(239,68,68,.04)}.gec-att-row-fail:hover{background:rgba(239,68,68,.08)!important}
.gec-att-student-cell{text-align:left!important}.gec-att-student-info{display:flex;align-items:center;gap:10px}
.gec-att-avatar img{border-radius:50%;display:block}.gec-att-name{font-weight:500;color:var(--gec-gray-900)}
.gec-att-empty-row{text-align:center!important;color:var(--gec-gray-500);padding:30px!important}
.gec-att-status-cell{width:70px}
.gec-att-radio-label{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:6px;border-radius:50%;transition:var(--gec-transition)}
.gec-att-radio-label:hover{background:rgba(0,0,0,.05)}.gec-att-radio-label input[type="radio"]{display:none}
.gec-att-radio-custom{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--gec-gray-300);transition:var(--gec-transition)}
.gec-att-radio-label input[type="radio"]:checked+.gec-att-radio-custom{border-color:var(--status-color);background:var(--status-color);box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.gec-att-radio-label input[type="radio"]:checked+.gec-att-radio-custom::after{content:'✓';color:#fff;font-size:14px;font-weight:700}
.gec-att-note-input{width:100%;padding:6px 10px;border:1px solid var(--gec-gray-200);border-radius:6px;font-size:13px;color:var(--gec-gray-700);transition:var(--gec-transition)}
.gec-att-note-input:focus{outline:none;border-color:var(--gec-primary);box-shadow:0 0 0 2px rgba(79,70,229,.1)}
.gec-att-note-input::placeholder{color:var(--gec-gray-300)}
.gec-att-form-actions{display:flex;align-items:center;gap:16px;padding-top:16px}
.gec-att-btn-save{font-size:15px;padding:12px 28px}
.gec-att-status-success{color:var(--gec-success);font-weight:500;font-size:14px}
.gec-att-status-error{color:var(--gec-danger);font-weight:500;font-size:14px}
.gec-att-status-warning{color:var(--gec-warning);font-weight:500;font-size:14px}
.gec-att-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;min-width:28px}
.gec-att-badge-presente{background:var(--gec-success-bg);color:#16a34a}.gec-att-badge-ausente{background:var(--gec-danger-bg);color:#dc2626}
.gec-att-badge-tardanza{background:var(--gec-warning-bg);color:#d97706}.gec-att-badge-justificado{background:var(--gec-info-bg);color:#2563eb}
.gec-att-badge-faltas{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;font-weight:700}
.gec-att-pct{font-size:16px;font-weight:700}.gec-att-pct-good{color:var(--gec-success)}.gec-att-pct-warning{color:var(--gec-warning)}.gec-att-pct-danger{color:var(--gec-danger)}
/* Nivel / Aprobación badges */
.gec-att-nivel{display:inline-flex;align-items:center;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.gec-att-nivel-aprobado{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.gec-att-nivel-no_aprobo{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.gec-att-nivel-en_curso{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
/* Approval banner */
.gec-att-approval-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px 20px;border-radius:var(--gec-radius-sm);margin-bottom:20px;border:1px solid}
.gec-att-approval-aprobado{background:#dcfce7;border-color:#bbf7d0}
.gec-att-approval-no_aprobo{background:#fef2f2;border-color:#fecaca}
.gec-att-approval-en_curso{background:#eff6ff;border-color:#bfdbfe}
.gec-att-approval-text{font-size:16px;font-weight:700}
.gec-att-approval-aprobado .gec-att-approval-text{color:#166534}
.gec-att-approval-no_aprobo .gec-att-approval-text{color:#991b1b}
.gec-att-approval-en_curso .gec-att-approval-text{color:#1e40af}
.gec-att-approval-detail{font-size:13px;color:var(--gec-gray-500)}
/* Rule info box */
.gec-att-rule-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--gec-radius-sm);padding:10px 16px;font-size:13px;color:#1e40af;margin-bottom:20px}
/* Pagination */
.gec-att-pagination{display:flex;justify-content:center;gap:6px;margin-top:16px}
.gec-att-page-btn{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gec-gray-200);border-radius:var(--gec-radius-sm);background:#fff;font-size:14px;font-weight:500;color:var(--gec-gray-700);cursor:pointer;transition:var(--gec-transition)}
.gec-att-page-btn:hover{background:var(--gec-gray-100);border-color:var(--gec-gray-300)}
.gec-att-page-active{background:var(--gec-primary)!important;color:#fff!important;border-color:var(--gec-primary)!important}
.gec-att-pagination-info{font-size:13px;color:var(--gec-gray-500);margin-bottom:12px;text-align:center}
/* Summary cards */
.gec-att-summary-cards{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.gec-att-summary-card{flex:1;min-width:100px;padding:16px;border-radius:var(--gec-radius-sm);text-align:center;border:1px solid var(--gec-gray-200)}
.gec-att-sc-num{display:block;font-size:28px;font-weight:700;line-height:1.2}
.gec-att-sc-label{display:block;font-size:12px;color:var(--gec-gray-500);text-transform:uppercase;letter-spacing:.3px;margin-top:4px}
.gec-att-sc-presente{background:var(--gec-success-bg)}.gec-att-sc-presente .gec-att-sc-num{color:#16a34a}
.gec-att-sc-ausente{background:var(--gec-danger-bg)}.gec-att-sc-ausente .gec-att-sc-num{color:#dc2626}
.gec-att-sc-tardanza{background:var(--gec-warning-bg)}.gec-att-sc-tardanza .gec-att-sc-num{color:#d97706}
.gec-att-sc-justificado{background:var(--gec-info-bg)}.gec-att-sc-justificado .gec-att-sc-num{color:#2563eb}
.gec-att-sc-total{background:var(--gec-gray-50)}.gec-att-sc-total .gec-att-sc-num{color:var(--gec-primary)}
.gec-att-report-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.gec-att-student-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.gec-att-student-avatar-large img{border-radius:50%;display:block}
.gec-att-student-course-block{background:#fff;border-radius:var(--gec-radius);border:1px solid var(--gec-gray-200);padding:24px;margin-bottom:20px}
.gec-att-student-course-block h3{font-size:16px;font-weight:600;margin:0 0 16px;color:var(--gec-gray-900)}
.gec-att-no-records{color:var(--gec-gray-500);font-style:italic}
.gec-att-empty,.gec-att-error,.gec-att-placeholder{text-align:center;padding:40px 20px;color:var(--gec-gray-500)}
.gec-att-error{color:var(--gec-danger);background:var(--gec-danger-bg);border-radius:var(--gec-radius-sm)}
.gec-att-placeholder{background:var(--gec-gray-50);border-radius:var(--gec-radius-sm);border:2px dashed var(--gec-gray-200)}
.gec-att-loading{text-align:center;padding:40px;color:var(--gec-gray-500)}
.gec-att-spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--gec-gray-200);border-top-color:var(--gec-primary);border-radius:50%;animation:gecSpin .7s linear infinite;margin-bottom:8px}
@keyframes gecSpin{to{transform:rotate(360deg)}}
@media(max-width:768px){.gec-att-wrap{padding:16px 12px}.gec-att-courses-grid{grid-template-columns:1fr}.gec-att-summary-cards{gap:8px}.gec-att-summary-card{min-width:70px;padding:12px 8px}.gec-att-sc-num{font-size:20px}.gec-att-quick-actions{flex-direction:column;align-items:flex-start}.gec-att-card-actions{flex-direction:column}.gec-att-btn{width:100%}.gec-att-lesson-selector select,.gec-att-date-picker input[type="date"]{max-width:100%}.gec-att-form-actions{flex-direction:column}.gec-att-report-header{flex-direction:column;align-items:flex-start}.gec-att-approval-banner{flex-direction:column;align-items:flex-start}.gec-att-nivel{font-size:11px;padding:4px 8px}}