.dashboard-view-tools,.dashboard-view-toggle,.calendar-toolbar,.calendar-navigation { display:flex;align-items:center;gap:.6rem;flex-wrap:wrap; }
.dashboard-view-toggle { padding:4px;gap:3px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft); }
.dashboard-view-toggle button { border:0;border-radius:8px;padding:.65rem .9rem;background:transparent;color:var(--muted);cursor:pointer;font-weight:600;transition:background .18s,color .18s; }
.dashboard-view-toggle button[aria-pressed="true"] { background:var(--accent);color:#fff;box-shadow:var(--shadow-sm); }
.dashboard-view-toggle button:hover { background:color-mix(in srgb,var(--accent) 20%,var(--surface));color:var(--text); }
.dashboard-view-toggle button:focus-visible,.calendar-lesson:focus-visible { outline:3px solid var(--accent);outline-offset:2px;z-index:5; }
.calendar-toolbar { justify-content:space-between;margin-bottom:1rem; }
.calendar-toolbar h3 { margin:0 0 .25rem;font-size:1rem; }
.calendar-note { font-size:.78rem;margin-top:1rem; }
.calendar-scroll { overflow:auto;max-height:640px;border:1px solid var(--border);border-radius:12px; }
.calendar-week { display:grid;grid-template-columns:76px repeat(7,minmax(130px,1fr));min-width:986px; }
.calendar-corner,.calendar-day-heading { position:sticky;top:0;z-index:6;background:var(--surface);padding:14px 10px;border-bottom:1px solid var(--border); }
.calendar-day-heading { display:grid;gap:4px;border-left:1px solid var(--border); }
.calendar-day-heading span { font-size:.75rem;color:var(--muted); }
.calendar-day-heading strong { font-size:.86rem; }
.calendar-day-heading.is-today strong { color:var(--accent-dark); }
.calendar-hours { position:relative;background:var(--surface); }
.calendar-hours span { position:absolute;right:10px;font-size:.68rem;color:var(--muted);padding-top:5px; }
.calendar-day { position:relative;border-left:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0,transparent 79px,var(--border) 79px,var(--border) 80px); }
.calendar-day.is-today { background-color:color-mix(in srgb,var(--accent) 4%,var(--surface)); }
.calendar-lesson { position:absolute;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:3px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-left:3px solid var(--accent);border-radius:7px;padding:5px 7px;text-align:left;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--text);cursor:pointer; }
.calendar-lesson:hover { background:color-mix(in srgb,var(--accent) 28%,var(--surface));z-index:3; }
.calendar-lesson strong { font-size:.77rem;line-height:1.2;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0; }
.calendar-lesson span { font-size:.66rem;line-height:1.2;white-space:nowrap;flex-shrink:0; }
.calendar-lesson.is-live { box-shadow:0 0 0 2px var(--accent); }
.calendar-now { position:absolute;left:0;right:0;height:2px;background:var(--accent-dark);z-index:4;pointer-events:none; }
.calendar-now::before { content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent-dark); }
@media(max-width:700px) { .dashboard-schedule-heading { flex-wrap:wrap;gap:.75rem; } .dashboard-view-tools { width:100%;justify-content:space-between; } .calendar-toolbar { align-items:flex-start; } }
