/* Keep the page controls fixed and contain any genuine high-density overflow. */
@media (min-width:701px){
  body{overflow:hidden}
  .workspace{height:calc(100dvh - 116px);min-height:0}
  aside{min-height:0;overflow:hidden}
  nav{min-height:0;overflow:auto}
  main{min-height:0;display:flex;flex-direction:column;padding-top:15px}
  .heading{flex-shrink:0;margin-bottom:12px}
  .toolbar{flex-shrink:0;margin-bottom:10px}
  .board{flex:1;min-height:0}
  footer{flex-shrink:0}
  td{height:64px;padding:3px 4px}
  .dash{min-height:54px}
}
.card{padding:3px 5px;line-height:1.3}
.card .course{line-height:1.3;margin:2px 0}
.card .numbers{font-size:10px;align-items:center;gap:3px}
.card .numbers .badge{margin:0;font-size:9px;white-space:nowrap;padding:1px 4px}
@media(min-height:850px) and (min-width:701px){td{height:78px}.dash{min-height:68px}}
/* Short laptop screens use two readable lines per card, not clipped courses.
   The complete class type remains available in the read-only detail dialog. */
@media (min-width:701px) and (max-height:999px){
  td{height:52px}
  .dash{min-height:42px}
  .card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:4px;row-gap:2px;text-align:left}
  .card .time{grid-column:1;grid-row:1;font-size:11px;white-space:nowrap}
  .card .course{grid-column:1;grid-row:2;font-size:11px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .card .numbers{display:contents}
  .card .numbers>span:first-child{display:none}
  .card .numbers>strong{grid-column:2;grid-row:1;align-self:center;font-size:10px}
  .card .numbers>.badge{grid-column:2;grid-row:2;align-self:center;justify-self:end}
  nav button{padding-top:6px;padding-bottom:6px}
}
