.institution-credits-page{padding:16px}.institution-credits-page h2{margin:0 0 12px}.page-head{margin-bottom:12px;gap:12px}.bulk-actions-bar,.page-head{display:flex;justify-content:space-between;align-items:center}.bulk-actions-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;margin-bottom:16px}.bulk-actions-bar .selected-count{font-weight:500;color:var(--text-primary)}.checkbox-column{width:40px;text-align:center;padding:0 8px!important}.checkbox-column input[type=checkbox]{width:16px;height:16px;cursor:pointer}.actions-bar{display:flex;gap:12px;align-items:center}.actions-bar .bulk-controls{display:flex;gap:8px;align-items:center}.actions-bar .search{position:relative;display:flex;align-items:center}.actions-bar .search input{width:280px;max-width:100%;padding:10px 40px 10px 14px;background:var(--bg-card,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:8px;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.actions-bar .search input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.15)}.actions-bar .search .clear-search{position:absolute;right:10px;background:none;border:none;color:var(--text-secondary,#6b7280);font-size:1.1rem;cursor:pointer;padding:0;line-height:1;width:1.6rem;height:1.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .2s ease,background-color .2s ease}.actions-bar .search .clear-search:hover:not(:disabled){color:var(--text-primary,#1f2937);background-color:rgba(15,23,42,.08)}.actions-bar .search .clear-search:focus-visible{outline:2px solid rgba(124,58,237,.45);outline-offset:2px}.actions-bar .search .clear-search:disabled{opacity:.4;cursor:default}.balance-pill{display:inline-flex;align-items:center;gap:8px;background:var(--bg-secondary,#f3f4f6);border:1px solid var(--border-color,#e5e7eb);color:var(--text-primary,#111827);border-radius:999px;padding:6px 10px;font-weight:600}.students-table.credits-table{margin-top:16px;background:var(--bg-card,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;box-shadow:0 2px 8px rgba(15,23,42,.08);overflow:hidden}.students-table.credits-table .checkbox-col{width:40px;text-align:center;padding:0 8px!important}.students-table.credits-table .checkbox-col input[type=checkbox]{width:16px;height:16px;cursor:pointer}.credits-table table{width:100%}.credits-table td.numeric,.credits-table th.numeric{text-align:right}.credits-table tbody tr:hover{background-color:var(--bg-hover,rgba(15,23,42,.05))}.credits-table .empty{text-align:center;color:var(--text-secondary,#6b7280);padding:24px 12px;font-style:italic}.credits-table__balance{font-weight:600;letter-spacing:.01em}.credits-table__actions{text-align:right}.credits-table__actions .btn{padding:.45rem 1.1rem;border-radius:8px}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:10px 12px;border-radius:8px;margin-bottom:10px}.loading{padding:12px}.credits-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999}.credits-modal{width:min(960px,100%);background:#fff;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 10px 30px rgba(0,0,0,.08);max-height:90vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.modal-head h3{margin:0}.modal-head .close{font-size:22px;background:rgba(0,0,0,0);border:none;cursor:pointer}.modal-body{z-index:9999;display:grid;grid-template-columns:340px 1fr;grid-gap:16px;gap:16px;padding:16px}.transfer-box{border:1px solid #e5e7eb;border-radius:8px;padding:12px}.transfer-box .bulk-info{margin:12px 0;padding:8px;background:var(--bg-secondary,#f3f4f6);border-radius:6px;font-size:14px;line-height:1.5}.transfer-box .bulk-info strong{color:var(--text-primary,#111827)}.transfer-box .form-group{margin-bottom:10px}.transfer-box label{display:block;font-size:13px;color:#374151;margin-bottom:6px}.transfer-box input{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px}.transfer-box .actions{display:flex;gap:8px;margin-top:8px}.transfer-box .actions .btn{flex:1 1;padding:8px 12px;border-radius:8px;cursor:pointer}.transfer-box .actions .btn--primary{background:#6d28d9;border:1px solid #6d28d9;color:#fff}.transfer-box .actions .btn--danger{background:#ef4444;border:1px solid #ef4444;color:#fff}.sort-button{background:none;border:none;color:inherit;font:inherit;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:0}.sort-button:focus{outline:none}.sort-button:hover{text-decoration:underline}.sort-indicator{font-size:12px}.history{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.history .history-head{display:flex;justify-content:flex-end;gap:12px;align-items:center;padding:10px 12px;background:#f9fafb;border-bottom:1px solid #e5e7eb}.history .history-table{width:100%;border-collapse:collapse}.history .history-table td,.history .history-table th{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left}.history .history-table th{font-weight:600;color:#374151;background:#fafafa}.history .history-table .pos{color:#16a34a;font-weight:600}.history .history-table .neg{color:#ef4444;font-weight:600}@media(max-width:640px){.credits-modal{width:100%;max-height:100vh;border-radius:0}.modal-body{grid-template-columns:1fr;gap:12px;padding:12px}.transfer-box .actions{flex-direction:column}.transfer-box .actions .btn{width:100%;padding:12px 14px}.transfer-box input{padding:12px 14px;font-size:16px}.modal-head{padding:12px 14px}}.alert-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:10000}.alert-modal{width:min(420px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}.alert-head{padding:12px 16px;font-weight:700;border-bottom:1px solid #e5e7eb}.alert-body{padding:14px 16px;color:#111827}.alert-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;background:#fafafa;border-top:1px solid #e5e7eb}.alert-actions .btn{background:#6d28d9;border:1px solid #6d28d9;color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer}@media(max-width:640px){.alert-modal{border-radius:10px}.alert-actions .btn{width:100%}}.select-modal-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start;grid-column:1/-1}.selected-list{border:1px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff;max-height:60vh;overflow:auto}.selected-list h4{margin:0 0 8px;font-size:14px}.selected-items{display:flex;flex-direction:column;gap:8px}.selected-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;background:#f9fafb}.student-avatar.small{width:32px;height:32px}.selected-meta{flex:1 1 auto;min-width:0}.selected-name{font-weight:600;color:var(--text-primary,#111827);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-email{font-size:12px;color:var(--text-secondary,#6b7280)}.remove-student{background:rgba(0,0,0,0);border:none;color:#ef4444;font-size:18px;line-height:1;cursor:pointer;padding:4px 6px}@media(max-width:640px){.select-modal-grid{grid-template-columns:1fr}.selected-list{max-height:30vh}}