.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:6px;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,var(--border-color));border-radius:6px;font-size:var(--font-base);transition:border-color .15s ease,box-shadow .15s ease}.actions-bar .search input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.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(var(--primary-color-rgb),.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,var(--border-color));color:var(--text-primary,var(--text-primary));border-radius:999px;padding:6px 10px;font-weight:600}.students-table.credits-table{margin-top:16px;background:var(--bg-card,#fff);border-radius:6px;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}.credits-table__actions{text-align:right}.credits-table__actions .btn{padding:.45rem 1.1rem;border-radius:6px}.error-banner{background:rgba(var(--error-rgb,239,68,68),.05);border:1px solid rgba(var(--error-rgb,239,68,68),.2);color:var(--error-color);padding:10px 12px;border-radius:6px;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:var(--bg-card);border-radius:6px;border:1px solid var(--border-color);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 var(--border-color)}.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 var(--border-color);border-radius:6px;padding:12px}.transfer-box .bulk-info{margin:12px 0;padding:8px;background:var(--bg-secondary,#f3f4f6);border-radius:6px;font-size:var(--font-base);line-height:1.5}.transfer-box .bulk-info strong{color:var(--text-primary,var(--text-primary))}.transfer-box .actions{display:flex;gap:8px;margin-top:8px}.transfer-box .actions .btn{flex:1 1;padding:8px 12px;border-radius:6px;cursor:pointer}.transfer-box .actions .btn--primary{background:var(--primary-color);border:1px solid var(--primary-color);color:#fff}.transfer-box .actions .btn--danger{background:var(--error-color);border:1px solid var(--error-color);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:var(--font-xs)}.history{border:1px solid var(--border-color);border-radius:6px;overflow:hidden;background:var(--bg-card)}.history .history-head{display:flex;justify-content:flex-end;gap:12px;align-items:center;padding:10px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.history .history-table{width:100%;border-collapse:collapse}.history .history-table td,.history .history-table th{padding:10px 12px;border-bottom:1px solid var(--border-color);text-align:left}.history .history-table th{font-weight:600;color:var(--text-primary);background:var(--bg-secondary)}.history .history-table .pos{color:var(--success-color);font-weight:600}.history .history-table .neg{color:var(--error-color);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:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}.alert-head{padding:12px 16px;font-weight:700;border-bottom:1px solid var(--border-color)}.alert-body{padding:14px 16px;color:var(--text-primary)}.alert-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.alert-actions .btn{background:var(--primary-color);border:1px solid var(--primary-color);color:#fff;padding:8px 12px;border-radius:6px;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 var(--border-color);border-radius:6px;padding:12px;background:var(--bg-card);max-height:60vh;overflow:auto}.selected-list h4{margin:0 0 8px;font-size:var(--font-base)}.selected-items{display:flex;flex-direction:column;gap:8px}.selected-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px;background:var(--bg-secondary)}.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,var(--text-primary));font-size:var(--font-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-email{font-size:var(--font-xs);color:var(--text-secondary,#6b7280)}.remove-student{background:rgba(0,0,0,0);border:none;color:var(--error-color);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}}.student-info{gap:.75rem}.student-avatar,.student-info{display:flex;align-items:center}.student-avatar{width:36px;height:36px;border-radius:50%;justify-content:center;font-weight:700;text-transform:uppercase;font-size:var(--font-xs);flex-shrink:0}.student-avatar--placeholder{background:rgba(var(--primary-color-rgb,9,161,255),.1);color:var(--primary-color,#09a1ff)}.student-details{display:flex;flex-direction:column;gap:2px}.student-username{font-size:var(--font-sm);font-weight:600;color:var(--text-primary)}.student-email{font-size:var(--font-xs);color:var(--text-secondary)}