.combinator-page{min-height:100vh;background:#0f172a;display:flex;flex-direction:column}.settings-bar{background:#1e293b;border-bottom:1px solid #334155;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.settings-left .page-title{font-size:1.85rem;font-weight:300;margin:0;color:#f1f5f9;letter-spacing:3px;position:relative;display:inline-block;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;transition:all .5s cubic-bezier(.4,0,.2,1);cursor:default;padding:.75rem 1.5rem;border-radius:8px;background:#0f172a4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1)}.settings-left .page-title:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#60a5fa,#3b82f6,#2563eb);border-radius:8px 0 0 8px;opacity:0;transform:scaleX(0);transform-origin:left;transition:all .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 20px #60a5fa80}.settings-left .page-title:hover:before{opacity:1;transform:scaleX(1)}.settings-left .page-title:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#60a5fa,#3b82f6,#8b5cf6);border-radius:0 0 8px 8px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 15px #60a5fa99}.settings-left .page-title:hover:after{width:100%}.settings-left .page-title:hover{color:#fff;letter-spacing:3.5px;background:#0f172a80;border-color:#60a5fa4d;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d,0 0 30px #60a5fa33,inset 0 0 20px #60a5fa0d}.settings-left .page-title-wrap{position:relative;display:inline-block}.settings-left .page-title-credit{position:absolute;top:.1rem;right:.75rem;z-index:2;font-size:.9rem;font-weight:500;color:#e2e8f0e6;font-family:Caveat,cursive;transform:rotate(12deg);white-space:nowrap;pointer-events:none}.settings-left{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.settings-left-row{display:flex;align-items:center;gap:.75rem;width:100%}.filter-toggle-btn{display:none}.settings-left-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-right{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.day-filters{display:flex;align-items:center;gap:.75rem}.day-filters-label{font-size:.875rem;color:#cbd5e1;font-weight:500;white-space:nowrap}.day-filters-buttons{display:flex;gap:.5rem}.day-filter-btn{padding:.4rem .75rem;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:40px;text-align:center}.day-filter-btn:hover{background:#475569;border-color:#64748b;transform:translateY(-1px)}.day-filter-btn.disabled{background:#1e293b;border-color:#ef4444;color:#ef4444;opacity:.7;text-decoration:line-through}.day-filter-btn.disabled:hover{background:#334155;border-color:#f87171;color:#f87171}.day-disabled{background:#1e293b!important;color:#64748b!important;position:relative;opacity:.5}.day-disabled-badge{position:absolute;top:2px;right:4px;color:#ef4444;font-size:.7rem;font-weight:700}.hour-close-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;position:relative}.hour-close-btn:hover{background:#1e3a8a40;color:#60a5fa;border-color:#60a5fa4d}.hour-close-badge{background:#ef4444;color:#fff;font-size:.7rem;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.hour-close-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.hour-close-modal{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:1.25rem;max-width:95vw;max-height:90vh;overflow:auto;box-shadow:0 20px 50px #00000080;touch-action:pan-y}.hour-close-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.hour-close-modal-title{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.hour-close-modal-close{width:32px;height:32px;border:none;background:#334155;color:#94a3b8;border-radius:8px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.hour-close-modal-close:hover{background:#475569;color:#f87171}.hour-close-modal-hint{margin:0 0 1rem;font-size:.8rem;color:#94a3b8;line-height:1.4}.hour-close-table-wrap{overflow-x:auto;margin-bottom:1rem;touch-action:none;-webkit-overflow-scrolling:touch}.hour-close-table{width:100%;border-collapse:collapse;font-size:.8rem}.hour-close-th-time,.hour-close-th-day,.hour-close-td-time{padding:.35rem .5rem;text-align:center;border:1px solid #334155;background:#1e293b;color:#94a3b8;font-weight:500}.hour-close-th-time{min-width:48px}.hour-close-th-day{min-width:36px}.hour-close-td-time{background:#0f172a;color:#cbd5e1}.hour-close-cell{width:36px;min-width:36px;height:28px;padding:0;border:1px solid #334155;background:#1e293b;color:transparent;cursor:pointer;transition:background .15s,color .15s;text-align:center;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}.hour-close-cell:hover{background:#334155}.hour-close-cell-disabled{background:#ef444440;border-color:#ef444480;color:#f87171;font-weight:600}.hour-close-cell-disabled:hover{background:#ef444459}.hour-close-modal-footer{display:flex;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #334155}.hour-close-done-btn{padding:.5rem 1.25rem;border-radius:8px;border:none;background:#3b82f6;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.hour-close-done-btn:hover{background:#2563eb}@media (max-width: 640px){.hour-close-modal{padding:1rem}.hour-close-modal-title{font-size:1rem}.hour-close-cell{width:28px;min-width:28px;height:24px;font-size:.75rem}.hour-close-th-day{min-width:28px}}.day-disabled-cell{background:#0a0f1a!important;opacity:.3;pointer-events:none}.overlap-selector{display:flex;align-items:center;gap:.5rem}.overlap-label{font-size:.9rem;font-weight:500;color:#cbd5e1;white-space:nowrap}.overlap-select{background:#1e293b;border:1px solid #334155;border-radius:6px;padding:.5rem .75rem;color:#f1f5f9;font-size:.875rem;cursor:pointer;transition:all .15s;min-width:180px}.overlap-select:hover{border-color:#475569;background:#0f172a}.overlap-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label input{display:none}.toggle-slider{position:relative;width:44px;height:24px;background:#334155;border-radius:12px;transition:background .2s;flex-shrink:0}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;background:#64748b;border-radius:50%;top:3px;left:3px;transition:all .2s}.toggle-label input:checked+.toggle-slider{background:#3b82f6}.toggle-label input:checked+.toggle-slider:before{left:23px;background:#fff}.toggle-text{font-size:.9rem;font-weight:500;color:#cbd5e1;min-width:85px}.combinator-content{flex:1;display:flex;gap:1.5rem;padding:1.5rem;overflow:hidden;min-height:0}.schedule-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.schedule-container{flex:1;background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;overflow:auto}.schedule-table{display:flex;flex-direction:column;min-width:1100px}.schedule-header{display:grid;grid-template-columns:70px repeat(7,1fr);gap:1px;margin-bottom:1px}.header-cell{background:#334155;color:#f1f5f9;font-weight:600;font-size:.875rem;padding:.75rem;text-align:center}.schedule-row{display:grid;grid-template-columns:70px repeat(7,1fr);gap:1px;margin-bottom:1px}.time-cell{background:#1e293b;color:#94a3b8;font-weight:500;font-size:.8rem;padding:.5rem;text-align:center;display:flex;align-items:center;justify-content:center;border-right:1px solid #334155}.schedule-cell{background:#0f172a;border:1px solid #1e293b;min-height:50px;position:relative;transition:background .15s}.schedule-cell:hover{background:#1e293b}.schedule-slot{position:absolute;top:1px;left:1px;right:1px;border-radius:4px;padding:.4rem;cursor:default;transition:all .15s;border:1px solid rgba(255,255,255,.1);overflow:hidden;min-height:fit-content;box-sizing:border-box}.schedule-slot:hover{transform:translateY(-1px);border-color:#ffffff4d;box-shadow:0 2px 8px #0000004d;z-index:20!important}.schedule-slot.has-overlap{border:2px solid #ef4444!important;box-shadow:0 0 0 2px #ef44444d}.schedule-slot.overlapping-slot{position:absolute}.slot-hide-btn{position:absolute;top:4px;right:4px;background:#000000b3;border:1px solid rgba(255,255,255,.3);color:#fff;width:22px;height:22px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:5}.slot-hide-btn:hover{background:#ef4444;border-color:#ffffff80;transform:scale(1.1)}.overlap-indicator{font-size:.6rem;color:#ef4444;margin-top:.1rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;text-shadow:0 1px 2px rgba(0,0,0,.7)}.combinations-container{display:flex;flex-direction:column;gap:2rem;padding:1rem;overflow-y:auto;flex:1;min-width:0;width:100%}.combinations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1.5rem}.combinations-loading p{color:#cbd5e1;font-size:1rem;margin:0}.loading-spinner{width:48px;height:48px;border:4px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.combination-table-wrapper{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem}.combination-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #334155;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.combination-header h4{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.combination-header-right{display:flex;align-items:center;gap:1rem}@media (max-width: 640px){.combination-header{flex-direction:column;align-items:flex-start;gap:.75rem}.combination-header-right{width:100%;flex-wrap:wrap;justify-content:flex-start;row-gap:.5rem}.combination-courses{width:100%}.combination-badge{font-size:.8rem;padding:.25rem .6rem}}.graph-view-toggle-btn{background:#334155;border:1px solid #475569;border-radius:6px;padding:.5rem .75rem;color:#f1f5f9;font-size:1.2rem;cursor:pointer;transition:all .2s ease;min-width:40px;display:flex;align-items:center;justify-content:center}.graph-view-toggle-btn:hover{background:#475569;border-color:#60a5fa;transform:translateY(-1px)}.faculty-graph-container{background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid #334155;border-radius:12px;padding:2rem;overflow:auto;position:relative}.graph-legend{display:flex;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #334155;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#cbd5e1}.legend-color{width:40px;height:3px;border-radius:2px}.legend-color.flow-forward{background:#60a5fa}.legend-color.flow-backward{background:#f59e0b}.legend-color.flow-interday{background:#8b5cf6}.daily-graphs-container{display:flex;flex-direction:row;gap:1.5rem;overflow-x:auto;padding:1rem 0}.daily-graph-section{background:#0f172a4d;border:1px solid #334155;border-radius:12px;padding:1.5rem;min-width:400px;flex-shrink:0}.daily-graph-header{text-align:center;margin-bottom:1.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,#334155,#475569);border-radius:8px;box-shadow:0 2px 8px #0003}.daily-graph-wrapper{width:100%;height:400px;background:#0f172a33;border-radius:8px;overflow:visible;position:relative}.daily-graph-svg{width:100%;height:100%;background:transparent}.daily-graph-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#94a3b8;opacity:.6}.graph-edge{transition:all .3s ease}.graph-edge:hover{stroke-width:5;opacity:1}.intraday-edge,.interday-edge{stroke-dasharray:none}.faculty-node-group{cursor:pointer;transition:all .3s ease}.faculty-node-group:hover .faculty-circle{r:50;stroke-width:4;filter:drop-shadow(0 0 8px rgba(96,165,250,.6))}.faculty-circle{transition:all .3s ease}.faculty-name-text,.faculty-count-text{pointer-events:none;-webkit-user-select:none;user-select:none}.faculty-graph{display:flex;gap:3rem;min-width:fit-content;position:relative;padding:2rem 0}.graph-background-svg{pointer-events:none}.graph-day-column{position:relative;min-width:200px;display:flex;flex-direction:column;align-items:center;z-index:2}.graph-day-header{font-weight:600;color:#f1f5f9;font-size:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#334155,#475569);border-radius:10px;white-space:nowrap;text-align:center;box-shadow:0 4px 12px #0000004d;border:1px solid #475569;min-width:180px}.day-name{font-size:1.1rem;margin-bottom:.25rem}.day-course-count{font-size:.75rem;color:#94a3b8;font-weight:400;margin-top:.25rem}.graph-faculties{position:relative;width:100%;min-height:600px;padding:0 2rem}.graph-faculty-node-wrapper{position:relative;width:100%}.graph-faculty-node{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:1rem 1.25rem;border-radius:12px;font-size:.9rem;font-weight:500;text-align:center;position:absolute;box-shadow:0 4px 16px #3b82f666,0 0 0 1px #60a5fa4d;border:2px solid rgba(96,165,250,.6);min-width:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;transition:all .3s ease;z-index:10}.graph-faculty-node:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #3b82f699,0 0 0 2px #60a5fa80}.graph-faculty-node.has-incoming{border-left:4px solid #10b981}.graph-faculty-node.has-outgoing{border-right:4px solid #60a5fa}.faculty-icon{font-size:1.5rem;margin-bottom:.25rem}.faculty-name{font-weight:600;font-size:1rem;margin-bottom:.25rem}.faculty-course-count{font-size:.75rem;opacity:.9;background:#ffffff26;padding:.25rem .5rem;border-radius:12px;margin-top:.25rem}.transition-badges{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}.transition-badge{font-size:.7rem;padding:.25rem .5rem;border-radius:8px;font-weight:600;white-space:nowrap}.transition-badge.incoming{background:#10b98133;color:#10b981;border:1px solid rgba(16,185,129,.4)}.transition-badge.outgoing{background:#60a5fa33;color:#60a5fa;border:1px solid rgba(96,165,250,.4)}.graph-faculty-node.empty{background:#334155;color:#94a3b8;border-color:#475569;box-shadow:none;opacity:.6}.empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.empty-text{font-size:.85rem}.graph-transition-line{position:absolute;pointer-events:none;z-index:1;overflow:visible}.intraday-line{z-index:2}.interday-line{z-index:1}.transition-line-animated{animation:linePulse 2s ease-in-out infinite;filter:drop-shadow(0 0 3px currentColor)}@keyframes linePulse{0%,to{opacity:.7}50%{opacity:1}}.graph-day-separator{position:absolute;right:-1.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.5rem;z-index:1}.separator-line{width:60px;height:2px;background:linear-gradient(90deg,#60a5fa,transparent);border-radius:1px}.separator-arrow{color:#60a5fa;font-size:1.5rem;font-weight:700;animation:arrowMove 1.5s ease-in-out infinite}@keyframes arrowMove{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.combination-courses{display:flex;flex-wrap:wrap;gap:.5rem}.combination-badge{background:#334155;color:#cbd5e1;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500}.no-combinations{text-align:center;padding:3rem 2rem;color:#94a3b8}.no-combinations p{margin:.5rem 0;font-size:1rem}.no-combinations-hint{font-size:.9rem!important;color:#64748b!important;margin-top:1rem!important}.slot-content{color:#fff;font-size:.8rem;display:flex;flex-direction:column;gap:.1rem;overflow:hidden;height:100%;justify-content:flex-start;min-height:0}.slot-code{font-weight:600;font-size:.8rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.slot-section{font-size:.65rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.slot-instructor,.slot-faculty{font-size:.6rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 3px rgba(0,0,0,.6);font-weight:500}.slot-time{font-size:.6rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;margin-top:auto;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.courses-sidebar{width:340px;background:#1e293b;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1.25rem 1.25rem 1rem;border-bottom:1px solid #334155;display:flex;flex-direction:column;gap:.75rem}.sidebar-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.sidebar-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.search-section{padding:1rem 1.25rem;border-bottom:1px solid #334155;position:relative}.search-input{width:100%;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:.65rem 2.5rem .65rem .85rem;color:#f1f5f9;font-size:.875rem;transition:border-color .15s}.search-input:focus{outline:none;border-color:#3b82f6}.search-input::placeholder{color:#64748b}.clear-search-btn{position:absolute;right:1.6rem;top:1.35rem;background:#334155;border:none;color:#94a3b8;width:22px;height:22px;border-radius:4px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.clear-search-btn:hover{background:#475569;color:#f1f5f9}.no-results{padding:2rem 1rem;text-align:center;color:#94a3b8}.no-results p{font-size:.9rem;margin-bottom:.5rem;color:#cbd5e1}.no-results span{font-size:.85rem;color:#64748b;font-style:italic}.add-course-btn{background:#10b981;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:background .15s;flex:1;min-width:120px}.add-course-btn:hover{background:#059669}.bulk-action-btn{background:#334155;color:#f1f5f9;border:none;padding:.5rem .875rem;border-radius:6px;font-weight:500;font-size:.8rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.25rem}.bulk-action-btn:hover{background:#475569}.hide-all-btn{color:#fbbf24}.hide-all-btn:hover{background:#475569;color:#fcd34d}.delete-all-btn{color:#ef4444}.delete-all-btn:hover{background:#dc2626;color:#fff}.courses-list{flex:1;overflow-y:auto;padding:1rem}.course-item{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:1rem;margin-bottom:.75rem;transition:all .15s;cursor:grab}.course-item:active{cursor:grabbing}.course-item:hover{border-color:#475569}.course-item.dragging{opacity:.5;border-color:#3b82f6;cursor:grabbing}.drop-indicator{height:4px;background:#3b82f6;border-radius:2px;margin-bottom:.75rem;box-shadow:0 0 8px #3b82f680;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.course-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.course-actions{display:flex;gap:.5rem;align-items:center}.drag-handle{color:#64748b;font-size:1.1rem;cursor:grab;padding:0 .25rem;-webkit-user-select:none;user-select:none;transition:color .15s}.drag-handle:active{cursor:grabbing}.course-item:hover .drag-handle{color:#94a3b8}.add-section-btn-small{background:#10b981;border:none;color:#fff;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:1.1rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:background .15s}.add-section-btn-small:hover{background:#059669}.course-save-btn{background:#334155;border:none;color:#3b82f6;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.course-save-btn:hover{background:#475569;color:#60a5fa}.course-save-btn.saved{background:#1e3a8a;color:#93c5fd}.course-save-btn.saved:hover{background:#1e40af;color:#bfdbfe}.course-delete-btn{background:#334155;border:none;color:#ef4444;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.course-delete-btn:hover{background:#475569}.course-info{display:flex;align-items:center;gap:.75rem;flex:1}.color-picker-btn{width:32px;height:32px;border-radius:6px;border:2px solid rgba(255,255,255,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .15s;flex-shrink:0;position:relative}.color-picker-btn:hover{transform:scale(1.1);border-color:#fff6}.color-picker-btn:active{transform:scale(.95)}.course-code{font-size:.95rem;font-weight:600;color:#f1f5f9}.course-name{font-size:.8rem;color:#94a3b8;margin-top:.15rem}.course-meta{display:flex;gap:.5rem;margin-top:.3rem;font-size:.7rem;color:#64748b}.visibility-btn{background:#334155;border:none;color:#10b981;padding:.35rem .7rem;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .15s;font-weight:600}.visibility-btn:hover{background:#475569}.visibility-btn.hidden{color:#64748b}.instructor-filter{padding:.75rem 1rem;background:#0f172a;border:1px solid #334155;border-radius:6px;margin:.5rem 1rem .5rem 1.5rem}.instructor-filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.instructor-filter-label{font-size:.8rem;font-weight:500;color:#cbd5e1}.instructor-filter-toggle{background:#334155;border:none;color:#3b82f6;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .15s}.instructor-filter-toggle:hover{background:#475569;color:#60a5fa}.instructor-filter-list{display:flex;flex-wrap:wrap;gap:.4rem}.instructor-filter-item{background:#334155;border:1px solid #475569;color:#cbd5e1;padding:.3rem .6rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .15s;white-space:nowrap}.instructor-filter-item:hover{background:#475569;border-color:#64748b}.instructor-filter-item.selected{background:#1e40af;border-color:#3b82f6;color:#fff;font-weight:500}.instructor-filter-item.selected:hover{background:#1e3a8a;border-color:#2563eb}.sections-list{display:flex;flex-direction:column;gap:.5rem;padding-left:1.5rem}.section-item{background:#1e293b;border:1px solid #334155;border-radius:4px;padding:.65rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;transition:border-color .15s}.section-item:hover{border-color:#475569}.section-info{display:flex;flex-direction:column;gap:.4rem;flex:1;min-width:0}.section-header-info{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.section-number{font-size:.85rem;font-weight:600;color:#cbd5e1}.section-quota{font-size:.7rem;color:#64748b}.section-times{display:flex;flex-direction:column;gap:.25rem}.time-slot-detail{display:flex;flex-direction:column;gap:.15rem}.section-time-badge{font-size:.7rem;color:#94a3b8;background:#0f172a;padding:.2rem .5rem;border-radius:3px;display:inline-block;width:fit-content}.slot-instructor{font-size:.65rem;color:#fff;padding-left:.5rem}.section-slots{font-size:.7rem;color:#94a3b8}.section-visibility-btn{background:#334155;border:none;color:#10b981;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .15s;flex-shrink:0;font-weight:600}.section-visibility-btn:hover{background:#475569}.section-visibility-btn.hidden{color:#64748b}.section-actions{display:flex;gap:.4rem;flex-shrink:0}.section-delete-btn{background:#334155;border:none;color:#ef4444;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .15s}.section-delete-btn:hover{background:#475569}.modal-overlay{position:fixed;inset:0;background:#0009;z-index:999;animation:fadeIn .15s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #334155}.modal-header h4{font-size:1.1rem;font-weight:600;color:#f1f5f9;margin:0}.modal-close{background:#334155;border:none;color:#ef4444;width:2rem;height:2rem;border-radius:4px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.modal-close:hover{background:#475569}.modal-body{margin-bottom:1rem}.modal-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #334155}.edit-section-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;min-width:500px;max-width:600px;max-height:85vh;overflow-y:auto;z-index:1000;box-shadow:0 8px 32px #00000080;animation:fadeIn .2s ease-out}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:#cbd5e1;margin-bottom:.5rem}.form-input,.form-select{width:100%;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:.65rem .85rem;color:#f1f5f9;font-size:.9rem;transition:border-color .15s}.form-input:focus,.form-select:focus{outline:none;border-color:#3b82f6}.form-select{cursor:pointer}.form-section{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:1rem;margin-top:1rem}.form-section-title{font-size:.95rem;font-weight:600;color:#f1f5f9;margin:0 0 1rem}.time-slot-form{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:.75rem;align-items:end;margin-bottom:1rem}.form-row-full{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.add-slot-btn-full{background:#10b981;border:none;color:#fff;width:100%;padding:.65rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s}.add-slot-btn-full:hover{background:#059669}.slot-form-actions{display:flex;gap:.75rem}.cancel-edit-slot-btn{background:#334155;border:none;color:#f1f5f9;padding:.65rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .15s}.cancel-edit-slot-btn:hover{background:#475569}.add-slot-btn-full{flex:1}.added-slots{display:flex;flex-direction:column;gap:.5rem}.added-slot-item{background:#1e293b;border:1px solid #334155;border-radius:4px;padding:.6rem .75rem;display:flex;justify-content:space-between;align-items:flex-start;color:#cbd5e1;font-size:.875rem;gap:.5rem;transition:all .15s;cursor:pointer}.added-slot-item:hover{border-color:#475569;background:#243447}.added-slot-item.editing{border-color:#3b82f6;background:#3b82f61a}.added-slot-main{display:flex;flex-direction:column;gap:.3rem;flex:1}.slot-time-text{font-weight:500;color:#cbd5e1}.slot-detail{font-size:.75rem;color:#94a3b8}.remove-slot-btn{background:#334155;border:none;color:#ef4444;width:24px;height:24px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.remove-slot-btn:hover{background:#475569}.cancel-btn,.save-btn{flex:1;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .15s;font-size:.9rem}.cancel-btn{background:#334155;color:#f1f5f9}.cancel-btn:hover{background:#475569}.save-btn{background:#3b82f6;color:#fff}.save-btn:hover{background:#2563eb}.save-btn:disabled{cursor:not-allowed;opacity:.5}.save-btn:disabled:hover{background:#3b82f6}.color-picker-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;width:420px;max-height:80vh;overflow-y:auto;z-index:1000;box-shadow:0 8px 32px #00000080;animation:fadeIn .2s ease-out}.color-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:.5rem;margin-top:1rem}.color-option{width:100%;aspect-ratio:1;border:2px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer;transition:all .15s;position:relative}.color-option:hover{transform:scale(1.15);border-color:#f1f5f9;box-shadow:0 2px 8px #0000004d}.color-option:active{transform:scale(.95)}.schedule-container::-webkit-scrollbar,.courses-list::-webkit-scrollbar{width:6px;height:6px}.schedule-container::-webkit-scrollbar-track,.courses-list::-webkit-scrollbar-track{background:#0f172a}.schedule-container::-webkit-scrollbar-thumb,.courses-list::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.schedule-container::-webkit-scrollbar-thumb:hover,.courses-list::-webkit-scrollbar-thumb:hover{background:#475569}.saved-schedules-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e2e8f0;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap;font-family:inherit}.saved-schedules-btn:hover{background:#1e3a8a59;border-color:#60a5fa59;color:#f1f5f9;box-shadow:0 2px 12px #3b82f633}.saved-schedules-btn:active{transform:scale(.98)}.saved-schedules-icon{font-size:1rem;opacity:.95}.saved-schedules-label{letter-spacing:.02em}.saved-schedules-count{color:#94a3b8;font-weight:600;font-size:.8rem}.saved-schedules-btn:hover .saved-schedules-count{color:#cbd5e1}.tutorial-help-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:36px;height:36px;padding:0 8px;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;font-size:1.1rem;font-weight:600;cursor:pointer;overflow:hidden;transition:width .4s ease,background .3s ease,border-color .3s ease,color .25s ease;flex-shrink:0;font-family:inherit;box-sizing:border-box}.tutorial-help-btn.tutorial-hint-open{width:200px;background:#3b82f626;border-color:#60a5fa59;color:#93c5fd;justify-content:center}.tutorial-hint-text{white-space:nowrap;font-size:.9rem;font-weight:500;max-width:0;overflow:hidden;opacity:0;transition:max-width .4s ease,opacity .3s ease}.tutorial-help-btn.tutorial-hint-open .tutorial-hint-text{max-width:160px;opacity:1}.tutorial-help-char{flex-shrink:0;line-height:1}.tutorial-help-btn:hover{background:#1e3a8a40;color:#60a5fa;border-color:#60a5fa4d;transform:scale(1.05)}.download-image-btn{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);color:#a78bfa;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.download-image-btn:hover{background:#8b5cf633;border-color:#8b5cf680;color:#c4b5fd}.copy-schedule-btn{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#60a5fa;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.copy-schedule-btn:hover{background:#3b82f633;border-color:#3b82f680;color:#93c5fd}.save-schedule-btn{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.save-schedule-btn:hover{background:#10b98133;border-color:#10b98180;transform:translateY(-1px)}.saved-schedules-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.5rem;width:550px;max-width:90vw;max-height:80vh;overflow-y:auto;z-index:1100;box-shadow:0 20px 50px #00000080;animation:fadeIn .2s ease-out}.saved-schedules-list{display:flex;flex-direction:column;gap:1rem}.no-schedules{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#94a3b8;text-align:center}.no-schedules-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.saved-schedule-item{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:1.25rem;transition:all .2s}.saved-schedule-item:hover{border-color:#475569;background:#131c31}.saved-schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #1e293b}.saved-schedule-info{display:flex;flex-direction:column;gap:.25rem}.schedule-title{color:#f1f5f9;font-weight:600;font-size:1rem;display:flex;align-items:center;gap:.5rem}.schedule-title:before{content:"🏷️";font-size:.9rem}.schedule-date{color:#94a3b8;font-size:.8rem;font-weight:400;display:flex;align-items:center;gap:.4rem}.schedule-date:before{content:"📅";font-size:.8rem}.delete-schedule-btn{background:#ef44441a;color:#ef4444;border:none;border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.delete-schedule-btn:hover{background:#ef4444;color:#fff;transform:scale(1.05)}.saved-schedule-courses{display:flex;flex-wrap:wrap;gap:.6rem}.saved-course-badge{background:#1e293b;border:1px solid;padding:.35rem .75rem;border-radius:8px;display:flex;gap:.5rem;font-size:.85rem;align-items:center;box-shadow:0 2px 4px #0000001a}.saved-course-code{font-weight:600;color:#f1f5f9}.saved-section-num{color:#94a3b8;font-size:.8rem;background:#ffffff1a;padding:.1rem .4rem;border-radius:4px}.saved-schedule-actions{display:flex;gap:.5rem}.view-schedule-btn{background:#3b82f61a;color:#60a5fa;border:none;padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.view-schedule-btn:hover{background:#3b82f633;color:#93c5fd}.saved-schedule-preview{margin-top:1rem;padding-top:1rem;border-top:1px solid #1e293b;animation:slideDown .3s ease-out}.mini-schedule-container{display:flex;flex-direction:column;border:1px solid #334155;border-radius:6px;background:#1e293b;overflow-x:auto}.mini-schedule-container .schedule-header{margin-bottom:0;border-bottom:1px solid #334155;display:grid;grid-template-columns:50px repeat(7,1fr)}.mini-schedule-container .header-cell{font-size:.75rem;padding:.5rem;color:#94a3b8;font-weight:600;text-align:center;background:#0f172a}.mini-schedule-container .schedule-row{border-bottom:1px solid #334155;display:grid;grid-template-columns:50px repeat(7,1fr);position:relative}.mini-schedule-container .schedule-row:last-child{border-bottom:none}.mini-schedule-container .time-cell{font-size:.7rem;padding:.5rem;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#94a3b8;border-right:1px solid #334155}.mini-schedule-container .schedule-cell{height:50px;border-right:1px solid #334155;position:relative;background:#1e293b}.mini-schedule-container .schedule-cell:last-child{border-right:none}.mini-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;line-height:1.1;overflow:hidden;box-shadow:0 2px 4px #0006;border-radius:4px;position:absolute;border:1px solid rgba(255,255,255,.1)}.mini-slot .slot-code{font-weight:700;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-shadow:0 1px 2px rgba(0,0,0,.5)}.mini-slot .slot-room{font-size:.6rem;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}@media (max-width: 1200px){.combinator-content{flex-direction:column}.courses-sidebar{width:100%;max-height:400px}.schedule-area{min-height:600px}}@media (max-width: 768px){.settings-bar{padding:1rem;flex-direction:column;gap:1rem}.settings-left .page-title{font-size:1.3rem;letter-spacing:1.2px}.settings-left .page-title:after{width:0}.settings-left .page-title:hover:after{width:100%}.settings-left .page-title:hover{letter-spacing:1.5px}.combinator-content{padding:1rem;gap:1rem}.schedule-container{padding:1rem}.courses-sidebar{max-height:300px}.edit-section-modal{min-width:90%;max-width:90%;padding:1.25rem}.form-row{grid-template-columns:1fr;gap:.5rem}.form-row-full{grid-template-columns:1fr}.color-picker-modal{width:90%;max-width:350px}.color-grid{grid-template-columns:repeat(6,1fr);gap:.4rem}}.add-course-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:12px;padding:0;max-width:700px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000004d;z-index:1000}.add-course-tabs{display:flex;border-bottom:1px solid #334155;background:#0f172a}.add-course-tab{flex:1;padding:1rem 1.5rem;background:transparent;border:none;color:#94a3b8;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.add-course-tab:hover{color:#cbd5e1;background:#3b82f61a}.add-course-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#1e293b}.add-course-modal .modal-body{padding:1.5rem;overflow-y:auto;flex:1}.catalog-add-form,.manual-add-form,.bulk-add-form{display:flex;flex-direction:column;gap:1.25rem}.catalog-status{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:#cbd5e1;text-align:center}.catalog-status-spinner{width:28px;height:28px;border:3px solid #334155;border-top-color:#60a5fa;border-radius:50%;animation:catalogSpin .8s linear infinite}@keyframes catalogSpin{to{transform:rotate(360deg)}}.catalog-status-error{color:#fca5a5}.catalog-status-error span{color:#cbd5e1;font-size:.875rem}.catalog-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid rgba(59,130,246,.3);border-radius:10px;background:#1e40af1f}.catalog-meta>div{display:flex;flex-direction:column;gap:.2rem}.catalog-meta strong{color:#dbeafe;font-size:.95rem}.catalog-meta span{color:#94a3b8;font-size:.78rem}.catalog-meta-count{flex-shrink:0;padding:.3rem .55rem;color:#93c5fd!important;background:#3b82f629;border-radius:999px}.catalog-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.catalog-field{display:flex;flex-direction:column;gap:.4rem;color:#cbd5e1;font-size:.82rem;font-weight:500}.catalog-field-full{grid-column:1 / -1}.catalog-field select{cursor:pointer}.catalog-course-toolbar{display:flex;gap:.65rem}.catalog-search-input{flex:1}.catalog-select-all-btn{flex-shrink:0;padding:.6rem .85rem;border:1px solid #475569;border-radius:7px;background:#334155;color:#e2e8f0;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.catalog-select-all-btn:hover:not(:disabled){background:#475569;border-color:#64748b}.catalog-select-all-btn:disabled{opacity:.45;cursor:not-allowed}.catalog-selection-summary{display:flex;justify-content:space-between;color:#94a3b8;font-size:.78rem}.catalog-selection-summary strong{color:#93c5fd}.catalog-course-list{display:flex;flex-direction:column;gap:.55rem;max-height:310px;overflow-y:auto;padding-right:.25rem}.catalog-course-item{display:flex;align-items:flex-start;gap:.8rem;padding:.85rem;border:1px solid #334155;border-radius:9px;background:#0f172a;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.catalog-course-item:hover{border-color:#475569;transform:translateY(-1px)}.catalog-course-item.selected{border-color:#3b82f6;background:#1e40af29}.catalog-course-item input{width:17px;height:17px;margin-top:.15rem;accent-color:#3b82f6}.catalog-course-main{min-width:0;display:flex;flex:1;flex-direction:column;gap:.2rem}.catalog-course-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.catalog-course-heading strong{color:#f8fafc;font-size:.9rem}.catalog-course-heading>span{flex-shrink:0;padding:.15rem .4rem;border-radius:999px;background:#1e293b;color:#94a3b8;font-size:.68rem}.catalog-course-name{color:#cbd5e1;font-size:.84rem}.catalog-course-instructors{overflow:hidden;color:#64748b;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}.catalog-empty{padding:2rem 1rem;border:1px dashed #334155;border-radius:9px;color:#64748b;text-align:center;font-size:.85rem}.bulk-paste-textarea{width:100%;min-height:300px;padding:1rem;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-family:Courier New,monospace;font-size:.875rem;line-height:1.6;resize:vertical;transition:border-color .2s}.bulk-paste-textarea:focus{outline:none;border-color:#3b82f6}.bulk-paste-textarea::placeholder{color:#64748b}.form-note{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:1rem;margin-top:.5rem}.form-note p{margin:0 0 .75rem;color:#cbd5e1;font-size:.9rem;line-height:1.6}.form-note ol{margin:.5rem 0;padding-left:1.5rem;color:#cbd5e1;font-size:.9rem;line-height:1.8}.form-note li{margin-bottom:.5rem}.form-note-warning{color:#fbbf24!important;font-weight:500;margin-top:.75rem!important;margin-bottom:0!important}.color-picker-inline{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.color-option-small{width:32px;height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s;flex-shrink:0}.color-option-small:hover{transform:scale(1.1);border-color:#64748b}.color-option-small.selected{border-color:#3b82f6;border-width:3px;box-shadow:0 0 0 2px #3b82f64d}@media (max-width: 768px){.add-course-modal{width:95%;max-height:95vh}.add-course-tab{padding:.8rem .45rem;font-size:.78rem}.add-course-modal .modal-body{padding:1.25rem}.bulk-paste-textarea{min-height:250px;font-size:.8rem}.catalog-meta{align-items:flex-start;flex-direction:column}.catalog-select-grid{grid-template-columns:1fr}.catalog-field-full{grid-column:auto}.catalog-course-toolbar{flex-direction:column}.catalog-select-all-btn{width:100%}.catalog-course-list{max-height:280px}}.desktop-banner{background:linear-gradient(135deg,#1e40af,#3b82f6);border-bottom:2px solid #60a5fa;box-shadow:0 4px 12px #0000004d;position:sticky;top:0;z-index:1000;animation:slideDown .4s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.desktop-banner-content{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.5rem;color:#fff;font-size:.9rem;font-weight:500;position:relative}.desktop-banner-icon{font-size:1.5rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.desktop-banner-text{text-align:center;line-height:1.4}.desktop-banner-close{background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:1.1rem;transition:all .2s ease;flex-shrink:0}.desktop-banner-close:hover{background:#ffffff4d;transform:scale(1.1)}@media (max-width: 1024px){.settings-bar{flex-direction:column;gap:1rem;padding:1rem}.settings-left{width:100%}.settings-left-row{flex-wrap:wrap}.filter-toggle-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#0f172a80;color:#94a3b8;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s,border-color .2s;flex-shrink:0}.filter-toggle-btn:hover{background:#1e3a8a33;color:#60a5fa;border-color:#60a5fa4d}.filter-toggle-icon{font-size:.7rem;line-height:1}.filter-toggle-text{white-space:nowrap}.settings-bar--filters-collapsed .settings-right{display:none}.settings-left-top{width:100%}.settings-left .page-title{font-size:1.35rem;letter-spacing:2px;padding:.5rem 1rem}.settings-left .page-title-credit{right:.5rem;top:.05rem;font-size:.75rem}.saved-schedules-btn{padding:.45rem .85rem;font-size:.8rem}.saved-schedules-count{font-size:.75rem}.tutorial-help-btn{width:32px;height:32px;padding:0 6px;font-size:1rem}.tutorial-help-btn.tutorial-hint-open{max-width:200px}.tutorial-help-btn.tutorial-hint-open .tutorial-hint-text{max-width:140px}.settings-right{width:100%;justify-content:space-between;gap:.75rem}.day-filters{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.day-filters-buttons{width:100%;justify-content:space-between}.day-filter-btn{flex:1;min-width:auto;padding:.5rem;font-size:.7rem}.overlap-selector{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.overlap-select{width:100%;font-size:.8rem}.toggle-label{width:100%;justify-content:space-between}.combinator-content{flex-direction:column;padding:1rem;gap:1rem}.schedule-container{padding:1rem;overflow-x:auto}.courses-sidebar{min-width:100%;max-width:100%}.schedule-table{min-width:900px}.combination-table-wrapper{padding:1rem}.combination-header{flex-direction:column;align-items:flex-start}.desktop-banner-text{font-size:.85rem}}@media (max-width: 640px){.settings-left .page-title{font-size:1.1rem}.settings-left .page-title-credit{right:.4rem;top:0;font-size:.65rem}.settings-left .page-title{letter-spacing:1.5px;padding:.4rem .75rem}.settings-left-top{gap:.4rem}.saved-schedules-btn{padding:.4rem .75rem;font-size:.8rem}.schedule-row{grid-template-columns:60px repeat(7,1fr)}.time-cell{padding:.25rem;font-size:.7rem}.schedule-cell{min-height:38px}.day-filter-btn{font-size:.65rem;padding:.4rem .35rem}.overlap-label,.toggle-text{font-size:.8rem}.desktop-banner-content{padding:.75rem 1rem;font-size:.8rem}.desktop-banner-icon{font-size:1.2rem}.desktop-banner-close{width:24px;height:24px;font-size:1rem}.schedule-table .slot-content{padding:.35rem .4rem}.schedule-table .slot-code,.schedule-table .slot-section,.schedule-table .slot-instructor,.schedule-table .slot-faculty{white-space:normal;font-size:.7rem}.course-header{flex-direction:column;gap:.5rem}.course-actions{width:100%;justify-content:flex-end}.faculty-graph-container{padding:1rem}.graph-legend{gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.legend-item{font-size:.75rem}.legend-color{width:30px}.daily-graphs-container{gap:1rem;padding:.5rem 0}.daily-graph-section{padding:1rem;min-width:320px}.daily-graph-header{margin-bottom:1rem;padding:.5rem .75rem}.day-name{font-size:.95rem}.day-course-count{font-size:.7rem}.daily-graph-wrapper,.daily-graph-empty{height:280px}.empty-icon{font-size:1.5rem}.empty-text{font-size:.8rem}}.mobile-fab{display:none;position:fixed;bottom:2rem;right:2rem;width:64px;height:64px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:50%;color:#fff;font-size:1.75rem;cursor:pointer;box-shadow:0 8px 24px #3b82f680;z-index:1000;transition:all .3s cubic-bezier(.4,0,.2,1);flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.mobile-fab:hover{transform:scale(1.1);box-shadow:0 12px 32px #3b82f699}.mobile-fab:active{transform:scale(.95)}.fab-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.mobile-sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:998;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-sidebar-close{display:none;position:absolute;top:1rem;right:1rem;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:50%;width:36px;height:36px;color:#ef4444;font-size:1.25rem;cursor:pointer;transition:all .2s ease;align-items:center;justify-content:center;z-index:10}.mobile-sidebar-close:hover{background:#ef44444d;transform:scale(1.1)}@media (max-width: 1024px){.mobile-fab{display:flex}.mobile-sidebar-overlay{display:block}.mobile-sidebar-close{display:flex}.courses-sidebar{position:fixed;top:0;right:-100%;height:100vh;width:100%;max-width:100%;background-color:#0f172a;max-height:none!important;z-index:1100;transition:right .3s cubic-bezier(.4,0,.2,1);box-shadow:-4px 0 24px #0000004d;padding-top:0;margin-top:0;overflow-y:auto}.mobile-fab{z-index:1200}.courses-sidebar.mobile-open{right:0}.modal-overlay{z-index:1300}.edit-section-modal,.add-course-modal,.color-picker-modal,.saved-schedules-modal{z-index:1301}.sidebar-header{margin-top:0;padding-top:2rem;padding-bottom:6rem}}@media (max-width: 640px){.courses-sidebar{width:100%;max-width:100%}.mobile-fab{width:56px;height:56px;font-size:1.5rem;bottom:1.5rem;left:1.5rem;right:auto}.fab-label{font-size:.6rem}}.lc-footer{background:#1e293b;border-top:1px solid #334155;padding:1rem 2rem;text-align:center;margin-top:auto}.lc-footer p{margin:0;color:#64748b;font-size:.8rem}.lc-footer-seo{margin-top:.5rem!important;font-size:.75rem!important;color:#475569!important}.lc-footer-link{color:#94a3b8;text-decoration:none;transition:color .2s ease}.lc-footer-link:hover{color:#60a5fa}.coffee-reminder-toast{position:fixed;left:auto;right:1.5rem;bottom:5.5rem;z-index:900;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;box-shadow:0 8px 24px #00000059;animation:coffeeToastIn .3s ease-out}@keyframes coffeeToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.coffee-reminder-text{font-size:.9rem;color:#e2e8f0}.coffee-reminder-close{flex-shrink:0;width:28px;height:28px;border:none;background:#ffffff14;color:#94a3b8;border-radius:8px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.coffee-reminder-close:hover{background:#ffffff1f;color:#f1f5f9}.lecture-tutorial-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box;opacity:0;visibility:hidden;transition:opacity .28s ease-out,visibility .28s ease-out}.lecture-tutorial-overlay.lecture-tutorial-visible{opacity:1;visibility:visible}.lecture-tutorial-backdrop{position:absolute;inset:0;background:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.lecture-tutorial-modal{position:relative;width:100%;max-width:520px;max-height:calc(100vh - 2rem);background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;box-shadow:0 24px 48px #0006,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;transform:scale(.94) translateY(12px);transition:transform .28s cubic-bezier(.34,1.56,.64,1)}.lecture-tutorial-visible .lecture-tutorial-modal{transform:scale(1) translateY(0)}.lecture-tutorial-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#ffffff14;color:#94a3b8;border-radius:10px;font-size:1.1rem;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s,transform .2s}.lecture-tutorial-close:hover{background:#ef444433;color:#f87171;transform:scale(1.05)}.lecture-tutorial-header{padding:1.5rem 1.5rem .75rem;flex-shrink:0}.lecture-tutorial-title{margin:0 0 1rem;font-size:1.35rem;font-weight:600;color:#f1f5f9;text-align:center;letter-spacing:.02em}.lecture-tutorial-dots{display:flex;justify-content:center;gap:.5rem}.lecture-tutorial-dot{width:10px;height:10px;border-radius:50%;border:none;background:#334155;cursor:pointer;padding:0;transition:background .25s ease,transform .2s ease}.lecture-tutorial-dot:hover{background:#475569;transform:scale(1.2)}.lecture-tutorial-dot.active{background:#3b82f6;transform:scale(1.2);box-shadow:0 0 0 2px #3b82f666}.lecture-tutorial-body{flex:1;overflow-y:auto;padding:0 1.5rem 1rem;min-height:0}.lecture-tutorial-slide-content{display:flex;flex-direction:column;gap:1.25rem}.lecture-tutorial-media-stack{display:flex;flex-direction:column;gap:.75rem;width:100%}.lecture-tutorial-media-item{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #334155}.lecture-tutorial-media-placeholder{position:absolute;inset:0;z-index:1}.lecture-tutorial-media-item.lecture-tutorial-media-video{aspect-ratio:16 / 10}.lecture-tutorial-video{width:100%;height:100%;display:block;object-fit:contain;object-position:center}.lecture-tutorial-media-item.lecture-tutorial-media-image{max-height:180px}.lecture-tutorial-stack-image{width:100%;height:100%;max-height:180px;object-fit:contain;object-position:center;display:block}.lecture-tutorial-image-wrap{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #334155}.lecture-tutorial-image{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.lecture-tutorial-placeholder{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#0f172a;border-radius:12px}.lecture-tutorial-placeholder.show{display:flex;animation:tutorialPlaceholderIn .3s ease-out}@keyframes tutorialPlaceholderIn{0%{opacity:0}to{opacity:1}}.lecture-tutorial-skeleton{position:relative;width:80%;max-width:240px;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.lecture-tutorial-skeleton-shimmer{position:absolute;inset:-100%;background:linear-gradient(105deg,transparent 0%,transparent 40%,rgba(255,255,255,.06) 50%,transparent 60%,transparent 100%);background-size:200% 100%;animation:lectureTutorialShimmer 1.5s ease-in-out infinite;pointer-events:none}@keyframes lectureTutorialShimmer{0%{transform:translate(-50%)}to{transform:translate(50%)}}.lecture-tutorial-skeleton-bar{height:12px;border-radius:8px;background:#1e293b;opacity:.9}.lecture-tutorial-skeleton-bar-1{width:100%}.lecture-tutorial-skeleton-bar-2{width:85%;align-self:flex-end}.lecture-tutorial-skeleton-bar-3{width:70%}.lecture-tutorial-text{padding:0 .25rem}.lecture-tutorial-slide-title{margin:0 0 .5rem;font-size:1.15rem;font-weight:600;color:#e2e8f0}.lecture-tutorial-slide-desc{margin:0;font-size:.95rem;line-height:1.6;color:#94a3b8}.lecture-tutorial-icon-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.6rem}.lecture-tutorial-icon-item{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:#94a3b8;line-height:1.4}.lecture-tutorial-icon-bullet{flex-shrink:0;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;background:#33415599;border-radius:8px}.lecture-tutorial-footer{flex-shrink:0;padding:1rem 1.5rem 1.5rem;border-top:1px solid #334155;display:flex;flex-direction:column;gap:1rem}.lecture-tutorial-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#94a3b8;-webkit-user-select:none;user-select:none}.lecture-tutorial-checkbox input{width:18px;height:18px;accent-color:#3b82f6;cursor:pointer}.lecture-tutorial-actions{display:flex;justify-content:flex-end;gap:.75rem}.lecture-tutorial-btn{padding:.65rem 1.35rem;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;border:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.lecture-tutorial-btn:active{transform:scale(.98)}.lecture-tutorial-btn-prev{background:#334155;color:#e2e8f0}.lecture-tutorial-btn-prev:hover{background:#475569;box-shadow:0 2px 8px #0003}.lecture-tutorial-btn-next{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 10px #3b82f659}.lecture-tutorial-btn-next:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 16px #3b82f673;transform:translateY(-1px)}.lecture-tutorial-slide-content{animation:tutorialSlideIn .3s ease-out}@keyframes tutorialSlideIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.lecture-tutorial-overlay{padding:.75rem .75rem 5.5rem;align-items:flex-end;justify-content:flex-end}.lecture-tutorial-modal{max-height:calc(92vh - 4rem);border-radius:16px 16px 0 0;margin-bottom:0}.lecture-tutorial-header{padding:1.25rem 1.25rem .5rem}.lecture-tutorial-title{font-size:1.2rem}.lecture-tutorial-body{padding:0 1.25rem 1rem}.lecture-tutorial-image-wrap,.lecture-tutorial-media-item.lecture-tutorial-media-video{aspect-ratio:4 / 3}.lecture-tutorial-media-item.lecture-tutorial-media-image,.lecture-tutorial-stack-image{max-height:140px}.lecture-tutorial-placeholder-icon{font-size:2.5rem}.lecture-tutorial-slide-title{font-size:1.05rem}.lecture-tutorial-slide-desc{font-size:.9rem}.lecture-tutorial-footer{padding:1rem 1.25rem 1.25rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom,0px) + 1rem)}.lecture-tutorial-close{top:.75rem;right:.75rem;width:32px;height:32px}}@media (min-width: 641px){.lecture-tutorial-modal{max-height:85vh}}.splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0f172aa6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:splash-overlay-in .5s ease-out;transition:opacity .5s ease-out,visibility .5s ease-out}.splash-screen--out{opacity:0;visibility:hidden;pointer-events:none}@keyframes splash-overlay-in{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}}.splash-content{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:90%;animation:splash-content-in .6s cubic-bezier(.34,1.56,.64,1) .15s both}.splash-screen--out .splash-content{animation:splash-content-out .4s ease-in forwards}@keyframes splash-content-in{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes splash-content-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.98) translateY(-8px)}}.splash-logo-wrap{position:relative;display:inline-block}.splash-logo{font-size:2rem;font-weight:300;margin:0;color:#f1f5f9;letter-spacing:4px;position:relative;display:inline-block;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;padding:.75rem 1.5rem;border-radius:8px;background:#0f172a80;border:1px solid rgba(148,163,184,.15);box-shadow:0 4px 24px #0000004d;animation:splash-logo-glow 2.5s ease-in-out infinite}.splash-logo:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#60a5fa,#3b82f6,#2563eb);border-radius:8px 0 0 8px;box-shadow:0 0 20px #60a5fa80}@keyframes splash-logo-glow{0%,to{box-shadow:0 4px 24px #0000004d,0 0 #60a5fa00}50%{box-shadow:0 4px 24px #0000004d,0 0 30px #60a5fa26}}.splash-credit{position:absolute;top:.15rem;right:.9rem;font-size:.95rem;font-weight:500;color:#e2e8f0d9;font-family:Caveat,cursive;transform:rotate(12deg);white-space:nowrap;pointer-events:none}.splash-slogan{margin:0;font-size:1rem;line-height:1.6;color:#94a3b8;text-align:center;max-width:420px;font-weight:500;animation:splash-slogan-in .5s ease-out .35s both}.splash-copy{display:flex;flex-direction:column;align-items:center;gap:.9rem}.splash-loading{display:inline-flex;align-items:center;gap:.55rem;color:#cbd5e1;font-size:.82rem;font-weight:500;animation:splash-slogan-in .5s ease-out .5s both}.splash-loading-indicator{width:12px;height:12px;flex:0 0 12px;border:2px solid rgba(148,163,184,.35);border-top-color:#60a5fa;border-radius:50%;animation:splash-loading-spin .8s linear infinite}@keyframes splash-loading-spin{to{transform:rotate(360deg)}}.splash-screen--out .splash-slogan{animation:none;opacity:0;transition:opacity .3s ease-out}.splash-screen--out .splash-loading{opacity:0;transition:opacity .25s ease-out}@keyframes splash-slogan-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){.splash-logo{font-size:2.25rem;letter-spacing:5px}.splash-slogan{font-size:1.1rem;max-width:480px}}
