body{--columns:2}.data-table{width:100%;border-collapse:collapse}.row{display:grid;grid-template-columns:40px repeat(var(--columns),1fr) 40px;align-items:center;column-gap:20px;padding:0 20px}.cell{padding:16px 0}.header-row{border-bottom:2px solid #ddd}.header-row .cell{padding:0 0 16px;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.05em;color:#666}.parent-row{border-bottom:1px solid #eee;transition:background .15s;font-weight:600}.group:nth-of-type(odd) .parent-row{background:#fafafa}.parent-row:hover{background:#eef4ff}.group:has(.toggle-btn.expanded) .parent-row{background:#eef4ff}.parent-row .cell:nth-child(2) a{font-weight:600;color:#222}.parent-row .cell:nth-child(2) a:hover{color:#2563eb}.toggle-cell{display:flex}.toggle-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:#888;cursor:pointer;border-radius:6px;transition:background .15s,color .15s}.toggle-btn:hover{background:#eef4ff;color:#2563eb}.toggle-btn svg{width:16px;height:16px;transition:transform .2s ease}.toggle-btn.expanded svg{transform:rotate(180deg)}.actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;white-space:nowrap}.nested-subjects{border-bottom:1px solid #eee;animation:expand .15s ease}@keyframes expand{from{opacity:0}to{opacity:1}}.subject-row{padding:0 20px 0 44px;border-bottom:1px solid #f2f2f2}.subject-row:last-child{border-bottom:0}.subject-row:hover{background:#eef4ff}.subject-row .cell{padding:10px 0;font-size:.92rem}.subject-row .cell:nth-child(2) a{font-weight:500;color:#333}.subject-row .cell:nth-child(2) a:hover{color:#2563eb}.subject-row .actions{font-size:.85rem;gap:14px}.empty-subjects{margin:0;padding:12px 20px 12px 44px;font-size:.88rem;color:#999;font-style:italic}.transcript-summary-row{padding:8px 20px;font-size:.9rem;color:#444;background:#fafbfd;border-bottom:1px solid #f2f2f2}.course-summary-row{padding:6px 20px;font-size:.87rem;color:#777;border-bottom:1px solid #f5f5f5}.course-summary-row:last-child{border-bottom:0}.section-heading-group{display:flex;align-items:baseline;gap:14px}.section-heading-group h2{margin:0}.ects-value{font-variant-numeric:tabular-nums}.ects-total{font-weight:700;color:#2563eb}.ects-subtotal{font-weight:600;color:#5b7ec9;font-size:.9rem}.course-summary-row .ects-value{font-weight:400;color:#888;font-size:.88rem}.ects-grand-total{font-size:.95rem;font-weight:700;color:#2563eb;background:#eef4ff;padding:3px 10px;border-radius:6px}