.student-dashboard{--sd-blue:#12203f;--sd-muted:#8090b3;--sd-bg:#edf5ff;--sd-orange:#f58634;display:grid;gap:20px;color:var(--sd-blue);font-family:Nunito,sans-serif}.student-dashboard__header h1{margin:0;color:var(--sd-orange);font-size:20px;font-weight:800}.student-dashboard__header p{margin:2px 0 0;color:var(--sd-muted);font-size:12px;font-weight:700}.student-dashboard__accent{height:4px;border-radius:999px;background:#20aaa7}.student-dashboard__indicators{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.student-dashboard__indicator,.student-dashboard__card{background:#fff;border:1px solid rgba(130,151,188,.13);border-radius:12px;box-shadow:0 4px 12px rgba(35,63,105,.08)}.student-dashboard__indicator{display:flex;align-items:center;gap:12px;min-height:70px;padding:12px 14px}.student-dashboard__indicator-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:#eaf9f8;color:#13a8a5}.student-dashboard__indicator strong,.student-dashboard__indicator span{display:block}.student-dashboard__indicator strong{font-size:21px;line-height:1}.student-dashboard__indicator div span{margin-top:5px;color:var(--sd-muted);font-size:10px;font-weight:700}.student-dashboard__indicator--orange .student-dashboard__indicator-icon{color:#f58634;background:#fff1e7}.student-dashboard__indicator--purple .student-dashboard__indicator-icon{color:#655bd4;background:#efefff}.student-dashboard__indicator--red .student-dashboard__indicator-icon{color:#ef6170;background:#fff0f2}.student-dashboard__indicator--cyan .student-dashboard__indicator-icon{color:#0ba6b6;background:#e8fbfd}.student-dashboard__main{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(280px,1fr);gap:18px;align-items:stretch}.student-dashboard__card{padding:20px}.student-dashboard__card h2{margin:0;font-size:16px;font-weight:800}.student-dashboard__schedule h2{text-align:center;margin-bottom:18px}.student-dashboard__schedule-grid{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:9px;overflow-x:auto}.student-dashboard__day header{text-align:center;margin-bottom:10px}.student-dashboard__day header strong,.student-dashboard__day header span{display:block}.student-dashboard__day header strong{font-size:11px}.student-dashboard__day header span{color:var(--sd-muted);font-size:10px}.student-dashboard__lessons{display:grid;gap:7px}.student-dashboard__lesson,.student-dashboard__empty-slot{display:flex;min-height:42px;border-radius:7px}.student-dashboard__lesson{flex-direction:column;justify-content:center;padding:7px 8px;color:#fff}.student-dashboard__lesson strong{overflow:hidden;font-size:10px;line-height:1.15;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.student-dashboard__lesson span{margin-top:3px;overflow:hidden;font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.student-dashboard__lesson--purple{background:#7050ca}.student-dashboard__lesson--orange{background:#f58634}.student-dashboard__lesson--brown{background:#96623e}.student-dashboard__lesson--navy{background:#1d2946}.student-dashboard__lesson--teal{background:#21aaa5}.student-dashboard__lesson--gold{background:#bc9700}.student-dashboard__empty-slot{align-items:center;justify-content:center;background:#f2f5fa;color:#b1bdd3;font-size:9px;font-weight:700}.student-dashboard__location{display:flex;min-height:294px;flex-direction:column}.student-dashboard__location h2{overflow:hidden;margin-bottom:12px;text-overflow:ellipsis;white-space:nowrap}.student-dashboard__map{width:100%;min-height:180px;flex:1;border-radius:8px;background:#f0f2eb;z-index:0}.student-dashboard__address{display:flex;align-items:flex-start;gap:8px;margin-top:12px;color:var(--sd-muted);font-size:11px;text-transform:uppercase}.student-dashboard__address i{margin-top:2px;color:#6c86af}.student-dashboard__route{margin-top:4px;color:var(--sd-orange);font-size:11px;font-weight:800;text-decoration:underline}.student-dashboard__map-empty,.student-dashboard__chart-empty{display:flex;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:7px;min-height:180px;border:1px dashed #ced9ea;border-radius:8px;background:#f8fbff;color:var(--sd-muted);text-align:center}.student-dashboard__map-empty i,.student-dashboard__chart-empty i{font-size:26px;color:#16aaa6}.student-dashboard__map-empty strong{color:var(--sd-blue)}.student-dashboard__map-empty span,.student-dashboard__chart-empty span{max-width:270px;font-size:11px}.student-dashboard__averages{min-height:285px}.student-dashboard__averages>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-dashboard__term{padding:8px 12px;border-radius:8px;background:#f2f5fa;color:var(--sd-muted);font-size:10px;font-weight:700;text-transform:uppercase}.student-dashboard__chart{position:relative;height:235px;margin-top:12px}.student-dashboard__chart-empty{margin-top:16px}.student-dashboard .leaflet-control-attribution{font-size:8px}

/* Keep every lesson inside its grid track so the column and row gaps remain visible. */
.student-dashboard__schedule-grid {
    column-gap: 12px;
    row-gap: 10px;
}

.student-dashboard__day,
.student-dashboard__lessons,
.student-dashboard__lesson,
.student-dashboard__empty-slot,
.student-dashboard__lesson strong,
.student-dashboard__lesson span {
    min-width: 0;
    max-width: 100%;
}

.student-dashboard__lessons {
    row-gap: 9px;
}

.student-dashboard__lesson,
.student-dashboard__empty-slot {
    width: 100%;
    overflow: hidden;
}
@media(max-width:1100px){.student-dashboard__indicators{grid-template-columns:repeat(3,minmax(0,1fr))}.student-dashboard__main{grid-template-columns:1fr}.student-dashboard__location{min-height:330px}.student-dashboard__map{min-height:230px}}
@media(max-width:700px){.student-dashboard{gap:14px}.student-dashboard__indicators{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.student-dashboard__indicator{min-height:62px;padding:10px}.student-dashboard__indicator:last-child{grid-column:1/-1}.student-dashboard__card{padding:15px}.student-dashboard__schedule-grid{grid-template-columns:repeat(6,112px);padding-bottom:8px}.student-dashboard__averages>header{align-items:flex-start}.student-dashboard__chart{height:310px}.student-dashboard__location{min-height:300px}}
@media(max-width:420px){.student-dashboard__indicator-icon{width:32px;height:32px;flex-basis:32px}.student-dashboard__indicator strong{font-size:18px}.student-dashboard__indicator div span{font-size:9px}.student-dashboard__term{padding:6px 8px}}
