:root { --gray-50: #fafafa; --slate-100: #f1f5f9; --gray-100: #f3f4f6; --gray-200: #e5e7eb; --gray-500: #6b7280; --gray-600: #4b5563; --gray-700: #374151; --indigo-100: #e0e7ff; --indigo-500: #6366f1; --indigo-900: #1e3a8a; --purple-600: #8b5cf6; --indigo-400-text: #60a5fa; --amber-50: #fffbeb; --amber-400: #f59e0b; --emerald-50: #ecfdf5; --emerald-400:#34d399; } * { box-sizing: border-box; margin: 0; padding: 0; } html, body { width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; font-family: Arial, sans-serif; background: linear-gradient(to bottom right, var(--gray-50), var(--slate-100)); } .top-bar { /* Full width, horizontally center the content */ width: 90%; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; } /* TITLE: centered left side */ .title { font-size: 1.6rem; font-weight: bold; background: linear-gradient(to right, var(--indigo-500), var(--purple-600)); -webkit-background-clip: text; background-clip: text; color: transparent; position:relative; top: 1.25rem; right: 1rem; } .title::after { content: "Mechanical Engineering 24/25 Plan"; } .legend-bubble { position: absolute; top: 1.6rem; right: 1rem; z-index: 50; display: flex; align-items: center; gap: 1rem; background-color: rgba(255,255,255,0.9); backdrop-filter: blur(6px); border: 1px solid var(--gray-200); border-radius: 9999px; box-shadow: 0 4px 10px rgba(0,0,0,0.06); padding: 0.75rem 1.5rem; } .legend-text { font-size: 0.875rem; font-weight: 500; color: var(--gray-600); } .legend-colors { display: flex; align-items: center; gap: 1rem; } .legend-item { display: flex; align-items: center; gap: 0.25rem; font-size: 0.875rem; color: var(--gray-600); } .legend-dot { width: 0.75rem; height: 0.75rem; border-radius: 9999px; } .dot-amber { background-color: var(--amber-400); } .dot-emerald { background-color: var(--emerald-400); } .year-grid { width: 90%; margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; padding-bottom: 2rem; padding-top: 2rem; } /* or 1200 test then */ @media (max-width: 950px) { .year-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } } /* or 640 test then */ @media (max-width: 450px) { .year-grid { grid-template-columns: 1fr; } } @media (max-width: 800px) { .title::after { content: "ME 24/25 Plan"; } } @media (max-width: 600px) { .title::after { content: "ME Plan"; } } @media (max-width: 510px) { .title::after { content: "ME"; } .legend-bubble { right: 0rem; width: 100%; display: flex; justify-content: center; align-items: center; } } @media (max-width: 415px) { .title { opacity: 0%; } .legend-bubble { right: 0rem; } .legend-text { font-size: 0.8rem; } .legend-dot { height: 0.5rem; width: 0.5rem; } .legend-item { font-size: 0.8rem; } } /* y block styling */ .year-block { background-color: rgba(255,255,255,0.7); backdrop-filter: blur(4px); border: 1px solid var(--gray-200); border-radius: 0.75rem; box-shadow: 0 4px 8px rgba(0,0,0,0.05); padding: 1rem; display: flex; flex-direction: column; gap: 1rem; } .year-title { font-size: 1.25rem; font-weight: 600; color: var(--gray-700); margin-bottom: 0.5rem; text-align: center; } /* Terms stacked */ .term { display: flex; flex-direction: column; gap: 0.5rem; } .term-title { font-size: 1rem; font-weight: 600; color: var(--gray-600); margin-bottom: 0.25rem; margin-top: 0.25rem; } /* 1 column per course */ .course-grid { display: grid; grid-template-columns: 1fr; gap: 0.5rem; } .course-card { position: relative; border-radius: 0.5rem; border: 1px solid var(--gray-100); box-shadow: 0 2px 4px rgba(0,0,0,0.05); padding: 0.75rem; transition: box-shadow 0.3s, transform 0.3s; display: flex; flex-direction: column; justify-content: space-between; height: 5.5rem; cursor: pointer; } .course-card:hover { box-shadow: 0 6px 10px rgba(0,0,0,0.07); transform: translateY(-2px); } .course-code { font-size: 0.9rem; font-weight: 700; color: var(--indigo-900); margin-bottom: 4px; } .course-name { font-size: 0.8rem; color: var(--gray-600); max-width: 120px; overflow-wrap: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .course-credits { position: absolute; bottom: 6px; right: 8px; font-size: 0.75rem; font-weight: 600; color: var(--indigo-400-text); } /* hovering */ .bg-indigo-100 { background-color: var(--indigo-100) !important; } .ring-2-indigo { box-shadow: 0 0 0 2px var(--indigo-500) !important; } .bg-amber-50 { background-color: var(--amber-50) !important; } .ring-2-amber { box-shadow: 0 0 0 2px var(--amber-400) !important; } .bg-emerald-50 { background-color: var(--emerald-50) !important; } .ring-2-emerald { box-shadow: 0 0 0 2px var(--emerald-400) !important; }