*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;background:#1a1a2e}#root{min-height:100vh}@media(pointer:coarse){*{-webkit-tap-highlight-color:transparent}}::selection{background:#667eea4d}html{scroll-behavior:smooth}:focus-visible{outline:2px solid #667eea;outline-offset:2px}button:focus-visible{outline:2px solid #667eea;outline-offset:2px}.course{padding:8px 28px 8px 10px;border-radius:6px;margin-bottom:6px;cursor:grab;transition:transform .15s ease,box-shadow .15s ease,opacity .3s ease;border:1px solid rgba(0,0,0,.15);display:flex;flex-direction:column;gap:2px;min-height:50px;box-shadow:0 1px 3px #0000001a;position:relative}.course:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.course:active{cursor:grabbing}.course.dragging{transform:rotate(3deg);box-shadow:0 8px 20px #00000040;z-index:1000}.course.placeholder{border-style:dashed;border-width:2px;opacity:.8}.course.prerequisite-highlight{animation:prereqPulse 1s ease-in-out infinite;z-index:50}@keyframes prereqPulse{0%,to{box-shadow:0 0 0 2px #ff3b3099,0 0 8px #ff3b3066}50%{box-shadow:0 0 0 4px #ff3b30e6,0 0 16px #ff3b3099}}.course.completed{opacity:.45;filter:grayscale(40%)}.course.completed .course-code,.course.completed .course-name{text-decoration:line-through;text-decoration-color:#0006}.course.completed:hover{opacity:.6}.course-checkbox{position:absolute;top:6px;right:6px;width:18px;height:18px;cursor:pointer;z-index:5;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid rgba(0,0,0,.25);border-radius:50%;background:#fff9;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.course-checkbox:after{content:"";width:6px;height:10px;border:solid white;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);transition:transform .15s ease;margin-top:-2px}.course-checkbox:checked{background:linear-gradient(180deg,#34c759,#28a745);border-color:transparent;box-shadow:0 2px 6px #34c75966}.course-checkbox:checked:after{transform:rotate(45deg) scale(1)}.course-checkbox:hover{transform:scale(1.1);border-color:#00000059;box-shadow:0 2px 8px #00000026}.course-checkbox:checked:hover{box-shadow:0 3px 10px #34c75980}.course-checkbox:active{transform:scale(.95)}.course-code{font-weight:700;font-size:.75rem;color:#333;letter-spacing:.02em}.course-name{font-size:.65rem;color:#555;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}@media(min-width:768px){.course{padding:10px 32px 10px 12px;min-height:60px}.course-code{font-size:.8rem}.course-name{font-size:.7rem}.course-checkbox{width:18px;height:18px;top:8px;right:8px}}.semester{min-width:140px;max-width:160px;flex-shrink:0;display:flex;flex-direction:column;background:#ffffff80;border-radius:8px;position:relative}.semester-header{padding:10px;text-align:center;font-weight:700;background:linear-gradient(180deg,#007aff,#0056cc);color:#fff;border-radius:8px 8px 0 0;position:sticky;top:0;z-index:10}.semester-number{font-size:1.2rem}.semester-courses{flex:1;padding:8px;min-height:400px;background:#f5f5f5;border-radius:0 0 8px 8px;transition:background-color .2s ease}.semester-courses.dragging-over{background:#667eea1a;border:2px dashed #667eea}.barrier-indicator{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;padding:6px 16px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.1em;box-shadow:0 2px 8px #ff6b6b66;z-index:20;white-space:nowrap}@media(min-width:768px){.semester{min-width:160px;max-width:180px}.semester-courses{padding:10px;min-height:500px}.semester-header{padding:12px}.semester-number{font-size:1.4rem}}@media(min-width:1200px){.semester{min-width:180px;max-width:200px}.semester-courses{min-height:600px}}.course-grid{width:100%;overflow-x:auto;overflow-y:hidden;padding:20px 20px 40px;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.semesters-container{display:flex;gap:12px;padding-bottom:20px}.semesters-container:after{content:"";min-width:20px;flex-shrink:0}.course-grid::-webkit-scrollbar{height:8px}.course-grid::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.course-grid::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#007aff,#0056cc);border-radius:4px}.course-grid::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#06d,#04a)}@media(min-width:768px){.course-grid{padding:30px}.semesters-container{gap:16px}}@media(min-width:1400px){.semesters-container{width:fit-content;margin:0 auto}}.notifications-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:320px}.notification{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:#1e1e1ef2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff1a;color:#fff;font-size:.9rem;pointer-events:auto;animation:slideIn .3s ease;transform-origin:top right}.notification.exiting{animation:slideOut .3s ease forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes slideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(50%) scale(.9)}}.notification-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.notification.success .notification-icon{background:linear-gradient(180deg,#34c759,#28a745);color:#fff}.notification.error .notification-icon{background:linear-gradient(180deg,#ff3b30,#cc2d25);color:#fff}.notification.info .notification-icon{background:linear-gradient(180deg,#007aff,#0056cc);color:#fff}.notification-message{flex:1;font-weight:500;line-height:1.3}.notification-close{background:#ffffff26;border:none;color:#ffffffb3;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.notification-close:hover{background:#ffffff40;color:#fff}@media(max-width:480px){.notifications-container{left:20px;right:20px;max-width:none}.notification{font-size:.85rem;padding:12px 14px}}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#1a1a2e,#16213e,#0f3460)}.app-header{padding:20px;text-align:center;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1)}.app-header h1{margin:0;font-size:1.4rem;color:#fff;font-weight:700;letter-spacing:-.02em}.app-header .subtitle{margin:8px 0 16px;font-size:.85rem;color:#ffffffb3}.header-buttons{display:flex;gap:12px;justify-content:center}.save-btn{padding:10px 20px;border:none;border-radius:8px;background:linear-gradient(180deg,#34c759,#28a745);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;font-size:.9rem}.save-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #34c75966}.save-btn:active{transform:translateY(0)}.reset-btn{padding:10px 20px;border:none;border-radius:8px;background:linear-gradient(180deg,#007aff,#0056cc);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;font-size:.9rem}.reset-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #007aff66}.reset-btn:active{transform:translateY(0)}.save-message{display:block;margin-top:10px;color:#34c759;font-weight:600;font-size:.85rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-main{flex:1;overflow:hidden}.error-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;padding:12px 20px;border-radius:12px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 20px #ff6b6b66;animation:slideIn .3s ease;max-width:90%}@keyframes slideIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.error-icon{font-size:1.2rem}.error-close{background:#fff3;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .2s}.error-close:hover{background:#ffffff4d}.app-footer{padding:16px 20px;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1)}.legend{display:flex;flex-direction:column;gap:10px;align-items:center}.legend-title{color:#fffc;font-weight:600;font-size:.85rem}.legend-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.legend-item{padding:6px 12px;border-radius:6px;font-size:.7rem;font-weight:600;color:#333;background:var(--color)}@media(min-width:768px){.app-header h1{font-size:1.8rem}.app-header .subtitle{font-size:1rem}.legend{flex-direction:row;justify-content:center}.legend-item{font-size:.75rem;padding:8px 14px}}
