/* Compact course cards; the visible stack grows with the available screen space. */
.deck-toolbar{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 13px}
.deck-toolbar>div{min-width:0;display:flex;flex-direction:column;gap:5px}
.deck-status{font-size:12px;font-weight:550;color:var(--ink)}
.deck-context{font-size:10px;line-height:1.5;color:var(--muted)}
.deck-toolbar .text-button{font-size:11px;white-space:nowrap}
.course-stack{position:relative;--card-height:180px;--card-offset:150px;height:calc(var(--card-height) + (var(--deck-slots,2) - 1) * var(--card-offset) + 20px);border-radius:24px;outline-offset:5px;isolation:isolate}
.course-stack:focus-visible{outline:2px solid var(--blue)}
.deck-cards{position:relative;height:100%}
.deck-card{position:absolute;inset:0 0 auto;width:100%;height:var(--card-height);display:grid;align-items:stretch;justify-content:stretch;grid-template-columns:minmax(0,1fr);grid-template-rows:30px minmax(0,1fr) 28px;gap:9px;text-align:left;padding:18px 22px;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--block,var(--blue)) 4%,var(--surface)),var(--surface) 70%);color:var(--ink);font-weight:400;overflow:hidden;box-shadow:0 14px 28px -20px #00000055,0 3px 7px #00000005;z-index:calc(4 - var(--card-index));transform:translateY(calc(var(--card-index) * var(--card-offset))) scale(calc(1 - var(--card-index) * .045));transform-origin:50% 0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .18s,box-shadow .18s}
.deck-card:nth-child(n+2){height:calc(var(--card-height) + 20px);padding-top:46px;background:var(--surface);box-shadow:0 10px 24px -20px #00000038}
.deck-card:hover{border-color:color-mix(in srgb,var(--block,var(--blue)) 32%,var(--line));box-shadow:0 16px 32px -22px #00000060}
.deck-card:active{transform:translateY(calc(var(--card-index) * var(--card-offset))) scale(calc(1 - var(--card-index) * .045))}
.deck-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.deck-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0}
.deck-course-id{display:flex;align-items:center;gap:10px;min-width:0}
.deck-block{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:10px;background:color-mix(in srgb,var(--block) 12%,transparent);color:var(--block);font-size:14px;font-weight:650}
.deck-course-id>span:last-child{font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}
.deck-course-id i{font-style:normal;margin:0 6px;opacity:.6}
.deck-state{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;white-space:nowrap}
.deck-state-dot{height:4px;width:4px;border-radius:50%;background:currentColor;opacity:.55}
.deck-card.is-current .deck-state{color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,transparent);padding:5px 8px;border-radius:100px}
.deck-card.is-current .deck-state-dot{opacity:1}
.deck-title{align-self:center;min-width:0;font-size:22px;line-height:1.25;letter-spacing:-.5px;font-weight:600;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.deck-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding-top:5px}
.deck-time{display:flex;align-items:baseline;gap:6px;font-size:22px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.5px;white-space:nowrap}
.deck-time>span{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}
.deck-room{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--muted);font-size:11px;min-width:0;max-width:43%;line-height:1.5}
.deck-room svg{width:13px;height:13px;flex-shrink:0}
.deck-room svg:last-child{width:11px;height:11px;opacity:.65}
.deck-room>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.deck-card.is-past{background:var(--surface-soft)}
.deck-card.is-past .deck-state{opacity:.7}
.deck-dismissal{cursor:default;color:var(--muted);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px}
.deck-dismissal>span{display:flex;align-items:center;gap:7px;font-size:11px}
.deck-dismissal svg{width:18px;height:18px}
.deck-dismissal strong{color:var(--ink);font-size:25px;letter-spacing:-.5px;font-weight:550}
.deck-dismissal small{font-size:11px}
.deck-finished{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);border-radius:24px;background:var(--surface);padding:24px}
.deck-finished-icon{color:var(--blue);background:var(--blue-soft);border-radius:18px;padding:14px;margin-bottom:8px}
.deck-finished-icon svg{width:25px;height:25px;display:block}
.deck-finished h3{font-size:20px;font-weight:600;letter-spacing:-.3px;margin:8px 0}
.deck-finished p{color:var(--muted);font-size:12px;margin:0 0 20px}
.deck-controls{position:relative;display:grid;grid-template-columns:34px minmax(98px,auto) 34px;align-items:center;gap:5px;width:max-content;margin:7px auto 0;padding:4px;border:1px solid var(--line);border-radius:100px;background:color-mix(in srgb,var(--surface) 70%,transparent)}
.deck-controls>div{text-align:center;min-width:0}
.deck-counter{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:1.5px;font-variant-numeric:tabular-nums}
.deck-controls small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.deck-arrow{display:grid;place-items:center;width:34px;height:34px;min-height:0;border:0;border-radius:50%;padding:0;background:transparent;color:var(--ink);box-shadow:none}
.deck-arrow:hover{background:var(--surface-soft);box-shadow:none}
.deck-arrow svg{width:15px;height:15px;transform:rotate(90deg)}
.deck-arrow[data-deck=previous] svg{transform:rotate(-90deg)}
.deck-arrow:disabled{opacity:.25;cursor:default}
@media(max-width:700px){
 .course-stack{--card-height:172px;--card-offset:132px}
 .deck-card{padding:18px;border-radius:22px;grid-template-rows:28px minmax(0,1fr) 26px;gap:8px}
 .deck-card:nth-child(n+2){padding-top:42px}
 .deck-block{width:28px;height:28px;border-radius:9px;font-size:13px}
 .deck-title{font-size:20px;letter-spacing:-.4px}
 .deck-time{font-size:21px}
 .deck-time>span{font-size:11px}
 .deck-course-id>span:last-child{font-size:10px}
 .deck-room{font-size:10px}
 .deck-state{font-size:9px}
}
@media(max-width:360px){.deck-card{padding-left:16px;padding-right:16px}.deck-title{font-size:20px}.deck-time{font-size:19px;gap:5px}.deck-time>span{font-size:10px}.deck-room{max-width:39%;gap:3px}.deck-room svg:last-child{display:none}.deck-card-top{gap:6px}.deck-course-id{gap:7px}}
@media print{.course-stack{height:auto}.deck-card{position:static;transform:none;height:auto;margin:10px 0;box-shadow:none}.deck-dismissal{display:none}}

/* Weeks append below one another; the date controls remain within reach. */
.week-toolbar{position:sticky;top:10px;z-index:5;border-radius:20px;padding:8px 10px;margin:-8px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.week-toolbar>span{padding-left:4px;font-size:11px;color:var(--muted)}
.week-toolbar .datecontrol{flex-shrink:0;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.browsing-weeks{overflow-anchor:none}
.week-stream{display:grid;gap:38px}
.week-section{min-width:0;scroll-margin-top:90px}
.week-section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 2px 16px;flex-wrap:wrap}
.week-section-header h2{font-size:20px;font-weight:650;margin:0;letter-spacing:-.5px}
.week-section-header h2 small{font-size:11px;font-weight:400;color:var(--muted);margin-right:10px;letter-spacing:0}
.week-section-summary{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}
.week-section-summary .tag{color:var(--blue);background:var(--blue-soft);border:0}
.week-section .weekday{scroll-margin-top:90px}
.week-loader{display:flex;flex-direction:column;align-items:center;gap:9px;padding:30px 0 10px;color:var(--muted);font-size:11px}
.week-loader button{min-width:180px;background:var(--surface)}
.week-loader [role=status]{min-height:17px}
.week-stream .closed-day{background:var(--surface-soft)}
.week-stream .pending-day .week-content p{line-height:1.7}
@media(max-width:700px){
  .week-toolbar{top:8px;margin-top:0;padding:0;display:block}
  .week-toolbar>span{display:none}
  .week-toolbar .datecontrol{margin-top:0;width:100%;justify-content:space-between;padding:4px}
  .week-section-header{gap:10px;padding-bottom:13px}
  .week-section-header h2{font-size:19px}
  .week-section-header h2 small{display:block;margin:0 0 4px;font-size:10px}
  .week-section-summary{font-size:10px;gap:6px}
  .week-stream{gap:30px}
  .week-section .mini small{font-size:10px}
}
@media print{.week-toolbar,.week-loader, .deck-controls,.deck-toolbar{display:none}.deck-card{break-inside:avoid}.week-section{break-before:page}}
