vbb / static /students /timetable.css
PratyanshSrivastava's picture
Upload 2212 files
d7ef89d verified
Raw History Blame Contribute Delete
5.18 kB
.timetable-page {
max-width: 1120px;
margin: 0 auto;
}
.timetable-card {
background: #ffffff;
border-radius: 20px;
padding: 20px 18px 18px;
box-shadow:
0 18px 45px rgba(15, 23, 42, 0.10),
0 0 0 1px rgba(15, 23, 42, 0.02);
}
.timetable-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 12px;
}
.timetable-heading {
margin: 0;
font-size: 17px;
font-weight: 600;
}
.timetable-subtext {
margin: 0;
font-size: 12px;
color: #6b7280;
}
.timetable-grid-wrapper {
overflow-x: auto;
}
.timetable-grid {
width: 100%;
border-collapse: collapse;
font-size: 13px;
}
.timetable-grid th,
.timetable-grid td {
border: 1px solid #e5e7eb;
padding: 6px 8px;
text-align: center;
}
.timetable-grid thead th {
background: #f3f4f6;
font-weight: 600;
}
.tt-day {
font-weight: 600;
background: #f9fafb;
}
.tt-subject {
font-weight: 500;
color: #111827;
}
.tt-empty {
color: #9ca3af;
}
@media (max-width: 768px) {
.timetable-card { padding: 16px 12px 14px; }
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html, body {
margin: 0;
padding: 0;
}
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background: #f3f4f6;
color: #111827;
}
/* App shell */
.app-shell {
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* Top bar */
.topbar {
height: 64px;
background: #0f172a;
color: #fff;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.5);
}
.topbar-left {
display: flex;
align-items: center;
gap: 12px;
}
.avatar {
width: 40px;
height: 40px;
border-radius: 999px;
overflow: hidden;
border: 2px solid rgba(255, 255, 255, 0.6);
flex-shrink: 0;
background: #111827;
}
.avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.identity-name {
font-weight: 600;
font-size: 15px;
}
.identity-meta {
font-size: 13px;
opacity: 0.85;
}
.topbar-right {
display: flex;
align-items: center;
gap: 8px;
}
.icon-btn {
width: 32px;
height: 32px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.3);
background: transparent;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 14px;
transition: background 0.15s ease-out, transform 0.1s ease-out;
}
.icon-btn i {
font-size: 14px;
}
.icon-btn:hover {
background: rgba(15, 23, 42, 0.4);
transform: translateY(-1px);
}
.icon-btn.logout-btn {
background: rgba(239, 68, 68, 0.12);
border-color: rgba(248, 113, 113, 0.7);
}
.icon-btn.logout-btn:hover {
background: rgba(239, 68, 68, 0.22);
}
/* Main area */
.main {
flex: 1;
padding: 24px 18px 32px;
}
/* Grid of tiles */
/* Desktop: 4 columns, Tablet: 3, Mobile: 2 */
.grid {
max-width: 1120px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
.tile {
text-decoration: none;
background: #ffffff;
border-radius: 20px;
padding: 26px 20px 20px;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
box-shadow:
0 18px 45px rgba(15, 23, 42, 0.10),
0 0 0 1px rgba(15, 23, 42, 0.02);
color: #111827;
transition:
transform 0.14s ease-out,
box-shadow 0.14s ease-out,
background 0.14s ease-out;
}
.tile:hover {
transform: translateY(-4px);
box-shadow:
0 26px 60px rgba(15, 23, 42, 0.18),
0 0 0 1px rgba(15, 23, 42, 0.04);
background: #f9fafb;
}
.tile-icon {
width: 52px;
height: 52px;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
background: transparent; /* transparent bg */
color: #1f2933; /* dark grey */
}
.tile-icon i {
font-size: 26px;
font-weight: 400;
}
.tile-label {
text-align: center;
font-size: 14px;
font-weight: 500;
}
/* Responsive */
@media (max-width: 960px) {
.grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
}
}
@media (max-width: 720px) {
.topbar {
padding-inline: 12px;
}
.identity-name {
font-size: 14px;
}
.identity-meta {
font-size: 12px;
}
.grid {
grid-template-columns: repeat(2, minmax(0, 1fr)); /* mobile: 2 columns */
gap: 14px;
}
.tile {
padding: 20px 14px 16px;
}
.tile-icon {
width: 46px;
height: 46px;
}
.tile-icon i {
font-size: 20px;
}
.tile-label {
font-size: 13px;
}
}