body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-content{flex-grow:1;display:flex;flex-wrap:wrap;gap:20px;margin-left:20px;transition:margin-right .3s ease}.main-content.sidebar-expanded{margin-right:350px}.right-sidebar{background-color:#f8f9fa;top:0;right:0;padding:10px;height:100vh;position:fixed;display:flex;flex-direction:column;overflow-y:auto;box-shadow:-2px 0 5px #0000001a;transition:width}.resizer{width:5px;cursor:ew-resize;background:#ccc;position:absolute;top:0;bottom:0;left:-2px}.acknowledge-checkbox{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer}.acknowledge-checkbox input{cursor:pointer;width:20px;height:20px;transform:scale(1.5);accent-color:#0077cc}.dynamic-schedule{display:flex;justify-content:flex-start;flex-wrap:wrap;padding:20px;color:#333;background-color:#f9f9f9;gap:20px;margin-bottom:50px}.semester-column{background-color:#1e798b;position:relative;padding:20px;border-radius:10px;margin:10px;min-width:180px;box-shadow:0 6px 12px #0003;transition:background-color .3s ease}.semester-column:hover{background-color:#4b5b6b}.semester-column h2{text-align:center;margin-bottom:20px;color:#edf1f0;font-size:1.6rem;letter-spacing:1px}.semester-name-input{text-align:center;font-size:1.3rem;margin-top:35px;margin-bottom:15px;padding:5px;border:none;border-radius:5px;background-color:#edf1f0;z-index:1}.insert-semester-button{position:absolute;top:10px;right:10px;background-color:transparent;color:#fff;border:none;border-radius:50%;width:35px;height:35px;font-size:22px;cursor:pointer;display:flex;justify-content:center;align-items:center;box-shadow:0 3px 6px #00000026;font-size:30px}.insert-semester-button:hover{background-color:#45a049}.delete-semester-button{background-color:transparent;color:#fff;border:none;border-radius:50%;width:35px;height:35px;font-size:22px;cursor:pointer;display:flex;justify-content:center;align-items:center;box-shadow:0 3px 6px #00000026;position:absolute;top:10px;left:10px;z-index:10}.delete-semester-button:hover{background-color:#ff2d2d}.semester-header{display:flex;align-items:center;justify-content:space-between;position:relative;padding:5px 10px}.mark-taken-button{background-color:#28a745;color:#fff;font-size:16px;font-weight:700;padding:4px 8px;border:none;border-radius:50%;cursor:pointer;transition:background-color .2s,transform .1s;position:absolute;left:50%;transform:translate(-50%);top:5px;height:24px;width:24px;display:flex;align-items:center;justify-content:center}.mark-taken-button:hover{background-color:#218838}.mark-taken-button.revert{background-color:#dc3545}.mark-taken-button.revert:hover{background-color:#c82333}.delete-course-button{background-color:#ff4d4d;color:#781717;border:none;border-radius:50%;width:25px;height:25px;font-size:16px;cursor:pointer;display:flex;justify-content:center;align-items:center;position:absolute;top:12px;right:15px;z-index:10;transition:background-color .3s ease}.delete-course-button:hover{background-color:#c00}.semester-name-input:focus{outline:none;border:2px solid #4CAF50}.course-token{padding:12px;margin-bottom:12px;border-radius:5px;text-align:left;cursor:pointer;transition:transform .3s ease,background-color .3s ease;font-size:1rem;box-shadow:0 3px 8px #00000026;background-color:#fff;border:1px solid #ccc;color:#333;width:180px;position:relative}.course-token.completed{background-color:#71ad18;color:#121010}.course-token.ongoing{background-color:#7398be;color:#fff}.course-token.retake{border:8px solid #4CAF50;background-color:#fff;color:#333}.course-token.substituted{background-color:#d59d35}.course-token:hover{transform:scale(1.05)}.semester-column p{text-align:center;font-size:22px;color:#fff;margin-top:10px}.download-upload-container{text-align:center;background-color:#f1f1f1;padding:20px;border-radius:15px;box-shadow:0 4px 10px #0000001a;max-width:300px;margin:40px auto}.download-upload-container h2,.download-upload-container h3{color:#333;margin-bottom:10px}.download-upload-button{background-color:#4caf50;color:#fff;padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:16px;transition:background-color .3s ease;margin:10px 0;width:100%}.download-upload-button:hover{background-color:#45a049}.file-input{margin:15px 0}.file-input input{display:block;margin:10px auto}input[type=file]{display:block;margin:0 auto 15px}.notes-container{position:fixed;bottom:120px;left:20px;width:250px;height:200px;z-index:100}.notes-textbox{width:100%;height:100%;padding:10px;font-size:1rem;border-radius:8px;border:1px solid #159c2b;background-color:#f9f9f9;box-shadow:0 4px 8px #0000001a;resize:none}.notes-textbox:focus{outline:none;border:2px solid #4CAF50}.course-token.tobe{background-color:#fcf5f5;color:#000}.course-token.taken{background-color:#71ad18;color:#fff}.course-token.ongoing{background-color:#1f64ad;color:#fff}.course-token:hover{transform:scale(1.05);box-shadow:0 4px 8px #0003}.course-token.is-dragging{z-index:10;box-shadow:0 0 15px #0003}.context-menu{position:absolute;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:10px;margin:0;box-shadow:0 4px 8px #00000080;z-index:1000}.context-menu li{padding:8px 12px;color:#333;cursor:pointer}.context-menu li:hover{background-color:#f0f0f0}.new-course-form{margin:20px 0}.new-course-form input{margin-right:10px;padding:5px}.new-course-form button{padding:5px 10px;background-color:#28a745;color:#fff;border:none;cursor:pointer}.exclamation-button{background-color:transparent;border:none;cursor:pointer;font-size:18px;margin-left:5px;margin-right:5px;outline:none}.white-exclamation{color:#084b97}.red-exclamation{color:red}.course-note-textbox{width:100%;height:100px;margin-top:10px;padding:5px;border-radius:5px;border:1px solid #ccc;font-size:14px;resize:vertical}.course-note-textbox:focus{outline:none;border:1px solid #4CAF50}.general-notes-section{position:fixed;bottom:20px;right:20px;width:flex;padding:10px;background-color:#f8f8f8;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 8px #0000001a}.general-notes-section h3{margin-top:0;font-size:16px}.general-notes-textbox{width:flex;height:120px;padding:8px;font-size:14px;border:1px solid #ddd;border-radius:4px;resize:none}@media (max-width: 768px){.general-notes-section{width:90%;left:5%;bottom:10px}}.side-tabs{position:fixed;top:20px;right:20px;background-color:#1e798b;width:flex;border-radius:10px;box-shadow:0 4px 8px #0000001a;z-index:1000;overflow:hidden}.side-tabs .tab{padding:15px;color:#fff;font-size:16px;cursor:pointer;text-align:center;background-color:#1e798b;border-bottom:1px solid rgba(255,255,255,.2);transition:background-color .3s ease}.side-tabs .tab:hover{background-color:#4b5b6b}.tab-content{background-color:#f9f9f9;padding:15px;border-top:1px solid #ddd;display:flex;flex-direction:column;align-items:center}.tab-content input,.tab-content textarea{width:90%;margin:10px 0;padding:8px;font-size:14px;border:1px solid #ddd;border-radius:5px}.tab-content button{width:90%;padding:10px;background-color:#4caf50;color:#fff;border:none;border-radius:5px;font-size:14px;cursor:pointer;margin-top:10px}.tab-content button:hover{background-color:#45a049}.add-transfer-semester-button{display:block;width:10%;height:5%;margin:10px auto;padding:8px 14px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:6px;cursor:pointer;box-shadow:1px 2px 6px #00000026;transition:all .2s ease-in-out}.add-transfer-semester-button:hover{background:linear-gradient(135deg,#66bb6a,#388e3c);transform:scale(1.03);box-shadow:2px 4px 8px #0003}.add-transfer-semester-button:active{transform:scale(.97);box-shadow:1px 1px 4px #00000026}.color-picker{display:flex;gap:8px;padding:5px}.color-circle{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid;transition:border .2s ease-in-out}.color-circle.red{background-color:#e9848c}.color-circle.blue{background-color:#82bce1}.color-circle.yellow{background-color:#efa8f7}.color-circle.default{background-color:#fff}.color-circle.selected{border:2px solid black}@media (max-width: 768px){.dynamic-schedule{flex-direction:column}.side-tabs{position:static;width:100%;margin-top:20px}.main-content{justify-content:center}}.side-tabs .tab.active{background-color:#4caf50;font-weight:700}.gen-ed-table-container{background-color:#fff;padding:10px;border-radius:5px;box-shadow:0 2px 5px #0000001a;margin:20px auto;width:auto;height:auto;overflow-y:auto;overflow-x:hidden;display:none;opacity:0;transition:opacity .3s ease}.gen-ed-table-container{display:none;opacity:0;transition:opacity .3s ease}.gen-ed-table-container.visible{display:block;opacity:1}.gen-ed-table-container.hidden{display:block;opacity:0}.gen-ed-table-container.hidden{display:block;opacity:-10}.gen-ed-table{width:100%;border-collapse:collapse;margin:10px 0;background-color:#fff;box-shadow:0 2px 5px #0000001a}.gen-ed-table th{background-color:#2c7f2e;color:#fff;font-weight:700;padding:10px;text-align:center}.gen-ed-table td{padding:10px;text-align:left;vertical-align:middle;border:1px solid #ddd}.gen-ed-table td input[type=checkbox]{margin:0 auto;display:block}.gen-ed-table td input[type=text]{width:calc(100% - 20px);padding:5px;margin:5px 0;border:1px solid #ccc;border-radius:4px;font-size:.9em}.gen-ed-table tr:nth-child(odd){background-color:#f9f9f9}.gen-ed-table td span{font-weight:700;display:block;margin-bottom:5px}.gen-ed-table{max-width:100%;overflow-x:auto;display:block}@media (max-width: 768px){.gen-ed-table-container{width:90%;height:300px}.gen-ed-table th,.gen-ed-table td{font-size:.75rem;padding:3px}}.tab-button{flex:1;padding:10px;font-size:16px;background-color:#f1f1f1;border:none;cursor:pointer;border-bottom:2px solid transparent;transition:background-color .3s ease,border-bottom .3s ease}.tab-button.active{background-color:#4caf50;color:#fff;border-bottom:2px solid #45a049}.tab-button:hover{background-color:#d4f0db}.tab-content{padding:15px;border:1px solid #ddd;border-radius:8px;background-color:#f9f9f9}.add-course-tab,.download-upload-tab,.gen-ed-tab,.general-notes-tab{display:flex;flex-direction:column;gap:10px}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:30px;border-radius:12px;width:400px;box-shadow:0 8px 16px #00000040;text-align:center;font-family:Segoe UI,sans-serif}.modal-content h3{margin-bottom:20px;font-size:1.5rem}.modal-content select,.modal-content input{width:90%;padding:10px;margin-bottom:15px;font-size:1rem;border:1px solid #ccc;border-radius:6px}.modal-content button{background-color:#07c;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .3s ease}.modal-content button:hover{background-color:#005fa3}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body *{visibility:hidden}.dynamic-schedule,.dynamic-schedule *{visibility:visible}.right-sidebar,.context-menu,.tabs,.tab-content,.resizer,.modal-overlay,.add-transfer-semester-button,.mark-taken-button,.delete-semester-button,.insert-semester-button,.delete-course-button,textarea,.print-button{display:none!important}.semester-column{border:1px solid #ccc;padding:10px;margin-bottom:10px;page-break-inside:avoid}.course-token{font-size:14px!important;color:#000!important;border:1px solid #000;padding:6px;margin-bottom:4px;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.semester-container{display:block!important}.main-content{margin:0!important;width:100%!important}.page-title{text-align:center;margin-bottom:20px}}.acknowledge-checkbox{display:flex;align-items:center;margin-top:15px;gap:10px;font-size:16px}button{padding:10px 15px;font-size:16px;margin-top:10px;cursor:pointer}button:disabled{background-color:#ccc;cursor:not-allowed}.editable-title{font-size:24px;font-weight:700;margin:20px auto;display:block;border:none;border-bottom:2px solid #ccc;width:80%;background:transparent;color:#333}.close-button{position:absolute;top:12px;right:12px;background:#f44336;color:#fff;border:none;font-size:18px;padding:6px 12px;border-radius:50%;cursor:pointer;transition:background .3s ease,transform .2s ease;z-index:999}.close-button:hover{background:#d32f2f;transform:scale(1.1)}.close-button:focus{outline:none;box-shadow:0 0 0 2px #f4433680}.footnote{margin-top:20px;font-size:14px;color:#d90c0c;text-align:center;font-style:italic}
