.desktop-shell{display:flex;min-height:100vh}.sidebar{width:195px;flex-shrink:0;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:39px 24px 24px;display:flex;flex-direction:column;background:#f2f3ec}.sidebar>.wordmark{padding-left:9px;margin-bottom:64px}.sidebar nav{display:flex;flex-direction:column;gap:9px}.sidebar nav a,.sidebar-foot>a{display:flex;align-items:center;gap:12px;padding:10px 9px;border-radius:4px;font-size:13px;color:#777f6e}.sidebar nav a svg,.sidebar-foot svg{width:17px;height:17px}.sidebar nav a.active{background:#e0e6d8;color:#315443;font-weight:600}.sidebar nav a:hover,.sidebar-foot>a:hover{background:#e8ecdf;color:var(--ink)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:18px}.sync-state{font-size:10px;color:#838b7d;padding-left:10px;display:flex;align-items:center;gap:6px}.sync-state::before{content:'';width:5px;height:5px;border-radius:50%;background:#92a583}.nav-count{margin-left:auto;font-size:10px}.workspace{margin-left:195px;width:calc(100% - 195px)}.topbar{height:87px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 47px;gap:20px}.page-context{font-size:11px;color:var(--muted);letter-spacing:.3px}.page-context a{color:#55704c}.page-context .crumb-sep{padding:0 9px;color:#b1b8a7}#view{padding:37px 47px 60px;max-width:1800px;margin:0 auto}.book-columns{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:49px}.day-aside{border-left:1px solid var(--line);padding-left:28px}.day-aside section+section{margin-top:42px}.day-aside .empty-state{padding:23px 0;text-align:left;font-size:12px}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.timetable-desktop{display:grid;grid-template-columns:55px repeat(5,minmax(0,1fr));border-top:1px solid var(--line);min-width:670px}.timetable-day{padding:14px 10px 16px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);font-size:12px}.timetable-day b{font-weight:550}.timetable-day span{color:var(--muted);font-size:11px}.timetable-day.today{background:var(--accent-soft)}.time-corner{border-bottom:1px solid var(--line)}.time-axis{position:relative}.time-label{position:absolute;left:0;transform:translateY(-8px);font-size:10px;color:var(--muted)}.time-column{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(transparent 0,transparent 80px,#e4e6dd 80px,#e4e6dd 81px)}.time-column:last-child{border-right:1px solid var(--line)}.timetable-lesson{position:absolute;display:flex;flex-direction:column;align-items:flex-start;padding:9px 9px 7px;gap:3px;overflow:hidden;border-left:3px solid var(--tone);background:var(--tone-soft);border-radius:3px;font-size:11px;color:var(--ink)}.timetable-lesson>b{font-size:12px;font-weight:550;line-height:1.25}.timetable-lesson span,.timetable-lesson small{font-size:10px;opacity:.7}.timetable-lesson:hover{filter:brightness(.98);outline:1px solid var(--tone);color:var(--ink)}.timetable-lesson.is-cancelled{opacity:.5;background:var(--soft)}.timetable-lesson.is-current{box-shadow:inset 0 0 0 1px var(--accent)}.period-check{position:absolute;right:5px;bottom:5px}.period-check svg{width:12px;height:12px}.lesson-workspace{display:grid;grid-template-columns:minmax(360px,1.2fr) minmax(275px,.85fr);gap:38px}.journal-workspace{border-left:1px solid var(--line);padding-left:32px}.attendance-workspace .section-heading{margin-bottom:20px}.journal-workspace .section-heading{margin-bottom:10px}.desktop-shell .lesson-heading-meta{margin-top:-17px;margin-bottom:28px}.course-headline{display:flex;align-items:center;gap:15px}.course-headline .course-swatch{width:10px;height:32px;background:var(--tone);border-radius:2px}.settings-grid{max-width:1050px}.global-actions [data-global=load-names]{margin-right:10px;border:0}.global-actions [data-global=load-names] svg{width:16px;color:var(--muted)}
@media(max-width:1190px){.sidebar{width:172px;padding-left:16px;padding-right:16px}.workspace{margin-left:172px;width:calc(100% - 172px)}.topbar{padding:0 30px}#view{padding:30px}.book-columns{grid-template-columns:minmax(0,1fr) 220px;gap:28px}.day-aside{padding-left:22px}.lesson-row{gap:17px}.lesson-state .lesson-pending{max-width:76px;line-height:1.4}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-workspace{grid-template-columns:minmax(0,1fr)}.journal-workspace{border-left:0;border-top:1px solid var(--line);padding:26px 0 0}.journal-stack{display:grid;grid-template-columns:1fr 1fr}.journal-stack>section{min-width:0}}
@media(max-width:900px){.sidebar{width:150px;padding:30px 10px 20px}.sidebar>.wordmark{font-size:31px;margin-bottom:45px}.sidebar nav a{font-size:12px;gap:8px}.workspace{margin-left:150px;width:calc(100% - 150px)}.topbar{padding:0 20px;height:73px}#view{padding:25px 20px}.book-columns{grid-template-columns:1fr}.day-aside{border:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:30px}.day-aside section+section{margin-top:0}.view-heading{align-items:flex-start;flex-direction:column;gap:18px}.timetable-desktop{min-width:540px}.timetable-lesson>b{font-size:10px}.timetable-lesson{padding:6px}.settings-grid{gap:30px;grid-template-columns:1fr}.members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:28px}.calendar-cell{padding:8px;min-height:95px}.calendar-entry{font-size:9px}.global-actions #identity-count{display:none}}
.timetable-now-line{position:absolute;left:0;right:0;border-top:1px solid #9d5549;z-index:8;pointer-events:none}.timetable-now-line::before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#9d5549;left:-3px;top:-3px}.timetable-now-line span{position:absolute;left:4px;top:-16px;font-size:9px;line-height:13px;color:#8a493f;background:var(--paper);padding:0 3px;font-variant-numeric:tabular-nums}.timetable-lesson em{font-size:9px;font-style:normal;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.timetable-lesson.is-passive{background:#f1f1eb;border-left-color:#aab0a4;color:#6e756b}.timetable-lesson.is-passive:hover{outline-color:#b8bdb3}

/* Nexus 1.2 school timetable */
.timetable-school{grid-template-columns:82px repeat(5,minmax(0,1fr));grid-template-rows:auto auto;min-width:760px;border-top:1px solid var(--line)}
.timetable-school .time-corner{display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line)}
.timetable-school .school-axis{grid-column:1;grid-row:2;position:relative;border-right:1px solid var(--line)}
.timetable-school .week-panel{grid-column:2/7;grid-row:2;position:relative;overflow:hidden;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.timetable-school .week-columns{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.timetable-school .time-column{height:100%;background:transparent;border-left:1px solid var(--line)}
.timetable-school .time-column:first-child{border-left:0}
.timetable-school .today-column{background:rgba(65,84,67,.025)}
.school-time-rule{position:absolute;left:0;right:0;border-top:1px solid #dfe2d9;z-index:1;pointer-events:none}
.school-period-axis{position:absolute;left:0;right:0;border-top:1px solid #dfe2d9;pointer-events:none}
.school-period-axis b{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--paper)}
.school-period-axis .grid-time{position:absolute;right:7px;font-size:9px;line-height:11px;color:var(--muted);font-variant-numeric:tabular-nums;background:var(--paper);padding-left:3px}
.school-period-axis .grid-time-start{top:4px}
.school-period-axis .grid-time-end{bottom:4px}
.timetable-school .timetable-lesson{z-index:3}
.timetable-school .timetable-now-line{z-index:8}
.timetable-school .timetable-lesson.is-cancelled{opacity:.52;background:#ecece7;border-left-color:#a9aaa5}
.timetable-school .timetable-lesson.is-cancelled>b,.timetable-school .timetable-lesson.is-cancelled>em,.timetable-school .timetable-lesson.is-cancelled>span{text-decoration:line-through}
.timetable-school .timetable-lesson small{margin-top:auto}
