.vue-scheduler-grid{display:grid;gap:2px;font-size:.85rem}.grid-header{background:#f8f9fa;padding:.5rem;border:1px solid #ccc}.grid-period-label{font-weight:700;background:#f1f1f1;padding:.5rem;border:1px solid #ccc;position:sticky;left:0;z-index:2}.grid-cell{display:flex;flex-direction:column;justify-content:space-between;padding:2px;min-height:100px;border:1px solid #ddd;background:#fff;position:relative;transition:all .25s ease-in-out}.grid-cell.cell-focus{cursor:pointer;background:#f5faff;border:1px solid #007bff}.course-name{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:.7rem;font-weight:600;color:#212529;line-height:1.3;letter-spacing:.2px;margin-bottom:2px;text-transform:uppercase}.student-badge-bar{display:flex;flex-wrap:wrap;gap:6px}.student-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.2rem .3rem;line-height:1;border-radius:.2rem;background-color:#777;color:#fff;min-width:1.8rem;text-align:center;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;border:1px solid rgba(0,0,0,.5);transition:box-shadow .2s ease,transform .2s ease;box-shadow:0 2px 2px #0006}.student-badge:hover{box-shadow:0 2px 2px #000c;transform:translateY(-1px)}.student-badge.active{background-color:#3390ff;color:#fff}.badge{font-weight:500;border-radius:.3rem;letter-spacing:.3px}.clear-button{background-color:#3390ff;border:none;border-radius:5px;padding:.7px 5px;font-size:.75rem;cursor:pointer;transition:.2s;color:#fff}.clear-button:hover{background-color:#1d6ed8;color:#fff}.vue-schedule-popover{background:#fff;border:1px solid #ccc;border-radius:.3rem;padding:.5rem;font-size:.75rem;max-width:280px;box-shadow:0 4px 12px #0003;z-index:9999;pointer-events:none}.ghost{opacity:.8;background:#ccc;border-radius:4px}.student-badge-list{min-height:20px;padding:1px;border:1px dashed transparent;border-radius:4px;transition:border-color .2s ease,background-color .2s ease}.student-badge-list.drag-over{border:2px dashed #3390ff;background-color:#eef6ff;border-radius:6px;transition:all .2s ease}.student-badge.active{box-shadow:0 0 0 3px #222;z-index:2;position:relative}.cell-period-conflict{background-color:#fff8e1!important}.cell-subject-conflict{background-color:#ffeccc!important;border:2px dashed orange}.student-badge.search-match{box-shadow:0 0 0 3px #222;z-index:1;position:relative}.vue-schedule-popover{background:#fff;border:1px solid #ccc;border-radius:.4rem;padding:.75rem;font-size:.8rem;max-width:260px;box-shadow:0 6px 14px #0003;pointer-events:none}.cell-lunch{background-color:#fff7d1;border:1px solid #f3e39f;font-weight:700}.card-top{background-color:#dee2e6;border-top-left-radius:8px;border-top-right-radius:8px}.core-missing-badge{background-color:#dc3545;color:#fff;font-size:.75rem;padding:.3rem .6rem;border-radius:4px;display:inline-block}.student-badge.ghost{opacity:.4;filter:grayscale(40%);border-style:dashed}.summary-report{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;padding:20px}.count-box{display:inline-block;min-width:34px;padding:2px 6px;font-size:.75rem;font-weight:600;text-align:center;border:1px solid #aaa;border-radius:4px;background-color:#f8f9fa}.cell-empty{background-color:#f0f0f0;border:1px solid #ddd}.alert-warning{background-color:#fff3cd;border:1px solid #ffeeba;color:#856404;font-size:.85rem;font-weight:600}.alert-success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724;font-size:.85rem;font-weight:600}.student-badge.ghost{opacity:.4}
