code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.app-container{align-items:flex-start;display:flex;justify-content:center;min-height:100vh;padding-top:50px}.dialog-box{background:#fff;border-radius:12px;box-shadow:0 8px 25px #0000001a;max-width:550px;padding:30px;width:100%}.step-container{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;max-height:500px;opacity:1;overflow:hidden;padding:20px;transition:max-height .7s ease-in-out,opacity .5s ease-in-out}h2{color:#2c3e50;font-size:1.4em;margin-bottom:15px;margin-top:0}input[type=text],select{border:1px solid #ccc;border-radius:6px;box-sizing:border-box;font-size:1em;margin-top:8px;padding:12px 15px;transition:border-color .3s ease-in-out;width:100%}input[type=text]:focus,select:focus{border-color:#007bff;outline:none}.button-group{display:flex;justify-content:flex-end;margin-top:25px}.submit-btn{background-color:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1em;padding:12px 20px;transition:background-color .3s ease}.submit-btn:hover{background-color:#0056b3}.step-container p{color:#555;font-size:1.05em;line-height:1.6}.step-container p strong{color:#333}.schedule-page{box-sizing:border-box;font-family:Roboto,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:space-between}.schedule-container{background:#fff;border-radius:12px;box-shadow:0 6px 18px #00000014;display:flex;flex:2 1;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;padding:25px}.schedule-container h2{color:#2c3e50;font-size:24px;margin-bottom:18px}.schedule-info{margin-bottom:18px}.schedule-info p{color:#555e68;font-size:15px;margin:5px 0}.schedule-table-wrapper{border:1px solid #e0e6ed;border-radius:8px;flex:1 1;margin-top:15px;overflow-y:auto;padding-right:8px}.schedule-table{border-collapse:initial;border-spacing:0;margin-top:0;width:100%}.schedule-table td,.schedule-table th{border-bottom:1px solid #e0e6ed;font-size:14px;padding:14px 18px;text-align:left;vertical-align:middle}.schedule-table td:first-child,.schedule-table th:first-child{padding-left:20px}.schedule-table thead th{background-color:#f8f9fa;border-bottom-width:2px;border-top:none;color:#343a40;font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:10}.schedule-table tbody tr:nth-child(2n){background-color:#fdfdfe}.schedule-table tbody tr:hover{background-color:#f1f5f8}.schedule-table td strong{color:#2c3e50;font-weight:600}.alt-courses-container{background:#fff;border-radius:12px;box-shadow:0 6px 18px #00000014;display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:20px}.alt-courses-container h3{border-bottom:1px solid #e0e6ed;color:#2c3e50;font-size:18px;margin-bottom:12px;padding-bottom:10px}.alt-course-list{display:flex;flex:1 1;flex-direction:column;gap:8px;height:100%;list-style:none;margin:0;overflow-y:auto;padding:0 8px 0 0}.alt-course{align-items:center;background-color:#f8f9fa;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 4px #0000000d;color:#343a40;cursor:grab;display:flex;font-size:14px;gap:10px;padding:12px 15px;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.alt-course:hover{background-color:#e9ecef;box-shadow:0 4px 8px #00000012;transform:translateY(-2px)}.alt-course-list::-webkit-scrollbar,.schedule-table-wrapper::-webkit-scrollbar{width:8px}.alt-course-list::-webkit-scrollbar-thumb,.schedule-table-wrapper::-webkit-scrollbar-thumb{background-color:#bdc3c7;border-radius:4px}.alt-course-list::-webkit-scrollbar-track,.schedule-table-wrapper::-webkit-scrollbar-track{background-color:#f1f1f1}.filter-bar{background-color:#fff;border-radius:12px;box-shadow:0 4px 12px #0000000f;gap:18px;overflow:hidden;padding:20px;transition:flex-basis .3s ease,padding .3s ease,width .3s ease}.filter-bar,.filter-group{display:flex;flex-direction:column}.filter-group label{color:#34495e;font-size:14px;font-weight:600;margin-bottom:8px}.filter-group select{background-color:#fff;border:1px solid #ced4da;border-radius:6px;font-size:15px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.filter-group select:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.drop-cell{background-color:#f9fafb;border:1px dashed #d1d8e0;height:60px;transition:background-color .2s ease;vertical-align:middle}.drop-cell:hover{background-color:#eef2f7}.user-message{background-color:#f8f9fa;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 5px #0000000d;color:#495057;font-size:15px;margin-top:25px;padding:18px 20px;text-align:center}.success-message{background-color:#e9f9f2;border-left:4px solid #22a06b;color:#22a06b}.error-message,.success-message{font-weight:600;margin-bottom:10px;padding:12px 15px}.error-message{background-color:#fdedec;border-left:4px solid #e74c3c;color:#e74c3c}.info-message{background-color:#eaf5fc;border-left:4px solid #3498db;color:#3498db;font-weight:600;margin-bottom:10px;padding:12px 15px}.main-message{font-size:17px;font-weight:600;margin-bottom:12px}.issues-list{margin-top:12px;padding-left:10px;text-align:left}.issue-item{color:#555e68;font-size:14px;font-weight:400;line-height:1.6}.issue-item b{color:#c0392b}.export-button,.import-button{background-color:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:5px;padding:10px 15px;text-align:center;transition:background-color .2s ease,transform .1s ease;width:100%}.export-button:hover,.import-button:hover{background-color:#2980b9;transform:translateY(-1px)}.import-button{background-color:#5cb85c}.import-button:hover{background-color:#4cae4c}.draggable-unit{align-items:center;background-color:#fff;border:1px solid #0000;border-radius:6px;box-shadow:0 1px 3px #0000000d;display:flex;gap:8px;padding:10px 12px;position:relative;transition:background-color .2s ease,box-shadow .2s ease}.draggable-unit:hover{box-shadow:0 2px 6px #0000001a}.unsatisfied-unit{background-color:#fff0f0;border-left:3px solid #e74c3c;color:#7c241c}.unsatisfied-unit:hover{background-color:#ffe6e6}.exclamation-icon{color:#e74c3c;font-size:16px;font-weight:700;margin-right:5px}.tooltip{background-color:#343a40;border-radius:6px;box-shadow:0 3px 7px #00000026;color:#f8f9fa;font-size:12px;left:50%;opacity:0;padding:8px 12px;pointer-events:none;position:absolute;top:calc(100% + 5px);transform:translateX(-50%);transition:opacity .2s ease,visibility .2s ease;visibility:hidden;white-space:nowrap;z-index:1000}.draggable-unit:hover .tooltip{opacity:1;visibility:visible}.tooltip-message{margin-bottom:5px;padding:2px 0}.tooltip-message:last-child{margin-bottom:0}.availability-message{color:#fab1a0}.prereq-message{color:#ffeaa7}.schedule-table-container{flex-grow:1;overflow-x:auto}div.schedule-table-wrapper{overflow-x:auto;width:100%}.schedule-page{align-items:flex-start;background-color:#f4f7f9;display:flex;flex-direction:row;gap:20px;min-height:100vh;padding:20px}.filter-bar{flex:0 0 240px}.schedule-table-container{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.alt-courses-container{flex:0 0 280px;max-height:calc(100vh - 40px)}.schedule-table{min-width:600px}.main-content-wrapper{display:flex;flex-direction:row;flex-grow:1;gap:20px;min-width:0}.filter-toggle-button{background-color:#007bff;border-radius:4px;color:#fff;margin-bottom:0;padding:8px 12px}.filter-toggle-button:hover{background-color:#0056b3}.filter-bar.expanded{padding-top:50px;position:relative}.filter-toggle-button{align-items:center;background-color:initial;border:none;border-radius:50%;color:#333;cursor:pointer;display:inline-flex;font-size:1.5em;height:40px;justify-content:center;line-height:1;padding:0;transition:background-color .2s ease,color .2s ease;width:40px}.filter-toggle-button:hover{background-color:#f0f0f0}.filter-bar.expanded .filter-toggle-button{color:#555;position:absolute;right:10px;top:10px;z-index:10}.filter-bar.collapsed{align-items:center;flex-basis:auto;gap:0;justify-content:center;min-width:0;overflow:hidden;padding:10px;width:auto}.filter-bar.collapsed .filter-toggle-button{color:#007bff;position:static}.filter-bar.collapsed .export-button,.filter-bar.collapsed .filter-group,.filter-bar.collapsed .import-button{display:none}.export-button,.import-button,.print-button{border:none;border-radius:5px;color:#fff;cursor:pointer;display:block;font-size:1em;font-weight:400;margin-bottom:5px;padding:10px 15px;text-align:center;transition:background-color .3s ease;width:100%}.print-button{background-color:#28a745;margin-top:10px}.export-button{background-color:#007bff}.import-button{background-color:#6c757d}.export-button:last-child,.import-button:last-child,.print-button:last-child{margin-bottom:0}.print-button:hover{background-color:#218838}.export-button:hover{background-color:#0056b3}.import-button:hover{background-color:#5a6268}@media print{body *{visibility:hidden}.schedule-table-container,.schedule-table-container *{visibility:visible}.schedule-table-container{left:0;position:absolute;top:0;width:100%}.alt-courses-container,.export-button,.filter-bar,.filter-toggle-button,.import-button,.print-button{display:none!important}}.suggestions-panel{background-color:#f9f9f9;border:1px solid #ddd;border-radius:12px;box-shadow:0 4px 8px #0000001a;margin-top:10px;max-height:300px;overflow-y:auto;padding:0;position:relative}.suggestions-title{background-color:#e3f2fd;border-bottom:1px solid #ddd;color:#1e88e5;font-size:14px;font-weight:700;margin:0;padding:10px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.suggestions-list{list-style-type:disc;margin:0;padding:10px 20px}.suggestion-item{color:#555;font-size:12px;margin-bottom:5px}.suggestion-item:last-child{margin-bottom:0}
/*# sourceMappingURL=main.c7f76734.css.map*/