:root{--njit-red: #F7374F;--njit-red-darker: #d52b41;--njit-red-lighter: #f9586e;--njit-secondary: #88304E;--njit-tertiary: #522546;--njit-dark: #2C2C2C;--njit-light: #F4F4F4;--njit-gray: #95A5A6;--njit-accent: #0077B5;--njit-success: #27AE60;--njit-warning: #F39C12;--njit-error: #E74C3C;font-family:Montserrat,Segoe UI,system-ui,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:var(--njit-dark);background-color:var(--njit-light);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-image:linear-gradient(#f4f4f4f2,#f4f4f4f2),url(/assets/njit-campus-bg.svg);background-size:cover;background-attachment:fixed}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--njit-light)}::-webkit-scrollbar-thumb{background:var(--njit-red);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--njit-red-darker)}h1,h2,h3,h4,h5,h6{font-family:Montserrat,sans-serif;font-weight:700;line-height:1.2;color:var(--njit-dark)}h1{font-size:2.5rem;margin-bottom:1.5rem;position:relative}h1:after{content:"";position:absolute;bottom:-10px;left:0;width:80px;height:4px;background-color:var(--njit-red);border-radius:2px}h2{font-size:1.8rem;margin-bottom:1rem}a{font-weight:500;color:var(--njit-red);text-decoration:none;transition:all .2s ease;position:relative}a:hover{color:var(--njit-red-darker)}a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--njit-red);transition:width .3s ease}a:hover:after{width:100%}button{border-radius:8px;border:none;padding:.8em 1.5em;font-size:1rem;font-weight:600;font-family:inherit;background-color:var(--njit-red);color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 5px #0000001a;position:relative;overflow:hidden}button:hover{background-color:var(--njit-red-darker);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}button:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}button:focus{outline:none;box-shadow:0 0 0 3px #f7374f4d}button:active{transform:translateY(0)}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(20);opacity:0}}button:active:after{animation:ripple .6s ease-out}input,select,textarea{font-family:inherit;font-size:1rem;padding:.8em 1em;border:2px solid var(--njit-gray);border-radius:8px;background-color:#fff;transition:all .2s ease}input:focus,select:focus,textarea:focus{border-color:var(--njit-red);outline:none;box-shadow:0 0 0 3px #f7374f33}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23333F48' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;padding-right:2.5em}textarea{min-height:100px;resize:vertical}input[type=radio],input[type=checkbox]{width:1.2em;height:1.2em;margin-right:.5em;vertical-align:middle;position:relative;top:-1px}.card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--njit-red);border-radius:4px 0 0 4px}.card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #0000001f}.container{width:90%;max-width:1200px;margin:0 auto;padding:2rem 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.hex-button{position:relative;width:150px;height:86px;background:var(--njit-red);color:#fff;text-align:center;line-height:86px;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);transition:all .3s ease;cursor:pointer;display:inline-block;margin:10px;font-weight:600}.hex-button:hover{background:var(--njit-red-darker);transform:scale(1.05)}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pulse{animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width: 768px){h1{font-size:2rem}h2{font-size:1.5rem}.container{width:95%;padding:1rem 0}.grid{grid-template-columns:1fr}.hex-button{width:120px;height:69px;line-height:69px;font-size:.9rem}}@media (prefers-color-scheme: dark){:root{color-scheme:dark;color:#f4f4f4;background-color:#1a1a1a}body{background-image:linear-gradient(#1a1a1af2,#1a1a1af2),url(/assets/njit-campus-bg.svg)}h1,h2,h3,h4,h5,h6{color:#f4f4f4}.card{background:#262626}input,select,textarea{background-color:#333;color:#f4f4f4;border-color:#444}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f4f4f4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}}:root{--primary-red: #F7374F;--primary-dark: #88304E;--primary-darker: #522546;--neutral-dark: #2C2C2C;--neutral-light: #F4F4F4;--neutral-mid: #E0E0E0;--shadow-soft: 0 4px 12px rgba(0, 0, 0, .08);--shadow-strong: 0 8px 20px rgba(0, 0, 0, .12);--border-radius: 12px;--border-radius-sm: 6px;--transition-main: all .3s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Arial,sans-serif;background-color:var(--neutral-light);color:var(--neutral-dark)}.app-container{min-height:100vh;display:flex;flex-direction:column}.schedule-builder-container{display:grid;grid-template-columns:1fr 350px;height:100%;min-height:100vh;background-color:var(--neutral-light);overflow:hidden}.coursify-header{grid-column:1 / -1;background-color:var(--primary-red);color:#fff;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-soft);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:1rem}.brand-logo{font-size:1.8rem;font-weight:800;display:flex;align-items:center;gap:10px}.logo-icon{height:36px;width:auto;object-fit:contain}.header-title{font-size:1.5rem;font-weight:600;margin:0;padding-left:1rem;border-left:2px solid rgba(255,255,255,.3)}.schedule-grid{padding:0;margin:0;overflow-y:auto;height:100%}.semester-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--neutral-mid)}.semester-title{font-size:1.5rem;font-weight:600;color:var(--primary-dark);position:relative;padding-left:1rem}.semester-title:before{content:"";position:absolute;left:0;top:10%;height:80%;width:4px;background-color:var(--primary-red);border-radius:2px}.calendar{width:100%;border-collapse:separate;border-spacing:2px;margin-top:0;margin-bottom:3rem;box-shadow:var(--shadow-soft);border-radius:var(--border-radius);table-layout:fixed}.calendar thead{position:sticky;top:0;z-index:10;background-color:var(--primary-red)}.calendarGrid{height:calc(100vh - 130px);overflow-y:auto;padding-bottom:0;margin-bottom:0}.calendarGrid td{height:24px;padding:0;font-size:.75rem}.calendar th{background-color:var(--primary-red);color:#fff;padding:.8rem;text-align:center;font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:.5px}.calendar thead th:first-child{position:sticky;left:0;top:0;z-index:11;background-color:var(--primary-red)}.calendar td{border:1px solid var(--neutral-mid);height:30px;vertical-align:top;position:relative;background-color:#fff;transition:var(--transition-main)}.calendar td:hover{background-color:#f7374f0d}.course-block{position:absolute;width:95%;height:calc(100% - 4px);margin:2px;border-radius:var(--border-radius-sm);padding:.5rem;font-size:.8rem;overflow:hidden;box-shadow:var(--shadow-soft);transition:var(--transition-main);display:flex;flex-direction:column;justify-content:center}.course-block:hover{transform:scale(1.02);box-shadow:var(--shadow-strong);z-index:10}.course-block.it{background-color:#f7374f26;border-left:4px solid var(--primary-red)}.course-block.com{background-color:#88304e26;border-left:4px solid var(--primary-dark)}.course-block.hss{background-color:#52254626;border-left:4px solid var(--primary-darker)}.course-block.cs{background-color:#37caf726;border-left:4px solid var(--primary-red)}.course-block.math{background-color:#235ea126;border-left:4px solid var(--primary-dark)}.course-block.engl{background-color:#e9765326;border-left:4px solid var(--primary-darker)}.course-block.fyssem{background-color:#5fe95326;border-left:4px solid var(--primary-darker)}.course-block.phys,.course-block.physa{background-color:#e9e75326;border-left:4px solid var(--primary-darker)}.course-block.mgmt{background-color:#e97e5326;border-left:4px solid var(--primary-darker)}.course-block.biol{background-color:#71e95326;border-left:4px solid var(--primary-darker)}.course-code{font-weight:700;color:var(--primary-red);margin-bottom:4px}.course-name{font-weight:500;color:var(--neutral-dark)}.course-location{font-size:.75rem;color:#666;margin-top:4px}.right-panel{grid-column:2;display:flex;flex-direction:column;height:calc(100vh - 60px);background-color:#fff;box-shadow:-5px 0 15px #0000000d;position:relative;z-index:5;overflow:hidden}.chat-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.chat-header{padding:1rem;background-color:var(--primary-red);color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px}.chat-header-icon{height:24px;width:auto;margin-right:8px;object-fit:contain}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;min-height:0}.message{max-width:85%;padding:1rem;border-radius:var(--border-radius);position:relative;box-shadow:var(--shadow-soft);line-height:1.5}.bot-message{align-self:flex-start;background-color:#fff;color:var(--neutral-dark);border-left:4px solid var(--primary-red)}.user-message{align-self:flex-end;background-color:var(--primary-red);color:#fff}.message-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.message-btn{padding:.6rem 1rem;background-color:#fff;border:1px solid var(--primary-red);color:var(--primary-red);border-radius:var(--border-radius-sm);cursor:pointer;transition:var(--transition-main);font-weight:500}.message-btn:hover{background-color:var(--primary-red);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-soft)}.message-btn.selected{background-color:var(--primary-red);color:#fff}.course-selection{padding:1rem;border-top:1px solid var(--neutral-mid);background-color:#fff;min-height:150px;max-height:25vh;overflow-y:auto}.selection-title{font-weight:600;margin-bottom:1rem;color:var(--primary-dark);display:flex;align-items:center;gap:8px}.selection-title:before{content:"";display:block;width:12px;height:12px;background-color:var(--primary-red);border-radius:50%}.course-list{display:flex;flex-direction:column;gap:.8rem;max-height:calc(25vh - 70px);overflow-y:auto;padding-right:.5rem}.course-item{display:flex;justify-content:space-between;align-items:center;background-color:#fff;padding:.8rem 1rem;border-radius:var(--border-radius-sm);border-left:3px solid var(--primary-red);box-shadow:var(--shadow-soft);transition:var(--transition-main)}.course-item:hover{transform:translate(5px);box-shadow:var(--shadow-strong)}.course-item-code{font-weight:600;color:var(--primary-red)}.course-item-credits{font-size:.8rem;color:#666}.remove-btn{color:var(--primary-red);background:none;border:none;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;height:24px;width:24px;border-radius:50%;transition:var(--transition-main)}.remove-btn:hover{background-color:#f7374f1a}.credits-total{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--neutral-mid);display:flex;justify-content:space-between;font-weight:600}.credits-total .warning{color:var(--primary-red)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--neutral-light);border-radius:10px}::-webkit-scrollbar-thumb{background:#f7374f66;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#f7374f99}@media (max-width: 1024px){.schedule-builder-container{grid-template-columns:1fr;grid-template-rows:auto 450px;height:auto}.right-panel{grid-column:1;grid-row:2;height:450px;border-left:none;border-top:1px solid var(--neutral-mid)}.schedule-grid{padding-bottom:0;margin-bottom:0;overflow-y:hidden}.coursify-header{padding:.8rem 1rem}.brand-logo{font-size:1.5rem}.header-title{font-size:1.2rem;padding-left:.5rem}.semester-header{margin-bottom:.5rem}.calendar th{padding:.5rem;font-size:.75rem}.time-column{width:80px;font-size:.8rem}.course-block{padding:.3rem;font-size:.7rem}}@media (max-width: 600px){.header-title{display:none}.calendar{font-size:.8rem}.calendar td{height:50px}.course-selection{padding:.8rem}}.header-row{display:flex;width:100%;background-color:var(--primary-red);border-radius:var(--border-radius) var(--border-radius) 0 0;margin-bottom:2px}.semester-label{width:100px;padding:.8rem;text-align:center;font-weight:600;font-size:1rem;color:#fff;position:relative;border-right:2px solid rgba(255,255,255,.2)}.semester-label:before{content:"";position:absolute;left:10px;top:25%;height:50%;width:4px;background-color:#fff;border-radius:2px}.day-label{flex:1;padding:.8rem;text-align:center;font-weight:600;text-transform:uppercase;font-size:.85rem;letter-spacing:.5px;color:#fff}.calendar{width:100%;border-collapse:separate;border-spacing:2px;margin-top:0;box-shadow:var(--shadow-soft);border-radius:0 0 var(--border-radius) var(--border-radius)}.calendar thead{display:none}.time-column{width:100px;text-align:center;font-weight:500;color:var(--neutral-dark);background-color:var(--neutral-light);position:sticky;left:0;z-index:1}.message-btn.disabled{opacity:.6;cursor:not-allowed}.message-btn.disabled:hover{background-color:#fff;color:var(--primary-red);transform:none;box-shadow:none}
