.app-shell{background:var(--canvas);grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.app-shell:not(:has(>.sidebar)){display:block}.app-shell>.workspace{flex-direction:column;min-width:0;min-height:100vh;display:flex}.sidebar{z-index:5;height:100vh;padding:var(--space-24) var(--space-16);background:var(--surface);border-right:1px solid var(--border-card);flex-direction:column;display:flex;position:sticky;top:0}.sidebar-brand{padding:var(--space-8) var(--space-12) var(--space-24);display:block}.sidebar-brand .logo-full{width:168px;height:auto;display:block}.sidebar-brand .logo-star{width:28px;height:28px;display:none}.nav-list{gap:var(--space-2);flex-direction:column;display:flex}.nav-item{align-items:center;gap:var(--space-12);min-height:44px;padding:0 var(--space-12);border-radius:var(--radius-control);color:var(--text-body);font-family:var(--font-heading);font-size:15px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-tint)}.nav-item[aria-current=page]{background:var(--surface-subtle);color:var(--text);font-weight:600}.nav-item .icon{flex:none}.sidebar-foot{padding-top:var(--space-16);border-top:1px solid var(--border-card);align-items:center;gap:var(--space-12);margin-top:auto;display:flex}.sidebar-foot>.menu-anchor{flex:1;min-width:0;display:flex}.sidebar-account{align-items:center;gap:var(--space-12);border-radius:var(--radius-control);min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0;display:flex}.sidebar-who{flex-direction:column;min-width:0;display:flex}.sidebar-name,.sidebar-school{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-name{font-family:var(--font-heading);color:var(--text);font-size:14px;font-weight:700}.sidebar-school{color:var(--text-muted);font-size:12px}.account-photo{object-fit:cover;border-radius:50%;flex:none;width:36px;height:36px;display:block}@media (min-width:768px){.app-shell[data-rail=icons]{grid-template-columns:72px minmax(0,1fr)}.app-shell[data-rail=icons] .sidebar{padding:var(--space-24) var(--space-12);align-items:center}.app-shell[data-rail=icons] .sidebar-brand{min-width:44px;padding:var(--space-4) 0 var(--space-24);justify-content:center;display:flex}.app-shell[data-rail=icons] .sidebar-brand .logo-full,.app-shell[data-rail=icons] .sidebar-who,.app-shell[data-rail=icons] .sidebar-gear{display:none}.app-shell[data-rail=icons] .sidebar-brand .logo-star{display:block}.app-shell[data-rail=icons] .nav-list{align-self:stretch}.app-shell[data-rail=icons] .nav-item{justify-content:center;padding:0}.app-shell[data-rail=icons] .nav-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell[data-rail=icons] .sidebar-foot{border:0;flex-direction:column;padding:0}.app-shell[data-rail=icons] .sidebar-foot>.menu-anchor{flex:none}}.topbar{justify-content:space-between;align-items:center;gap:var(--space-16);height:64px;padding:0 var(--space-48);background:var(--surface);border-bottom:1px solid var(--border-card);display:flex}.topbar-context{align-items:center;gap:var(--space-12);min-width:0;font-family:var(--font-heading);color:var(--text);flex:1;font-weight:600;display:flex}.topbar-slot{flex:1;min-width:0}.topbar-slot:empty,.topbar-status:empty{display:none}.topbar-context:has(.topbar-trail) .topbar-root{color:var(--text-muted)}.topbar-trail{align-items:center;gap:var(--space-12);min-width:0;display:flex}.topbar-sep{color:var(--text-faint)}.topbar-sub{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-muted);font-weight:500;overflow:hidden}.topbar-tools{align-items:center;gap:var(--space-12);flex:none;display:flex}.topbar-status{color:var(--text-muted);font-size:13px}.topbar-logo{width:140px;height:auto;display:block}.mobile-brand{width:32px;height:32px;display:none}button.mobile-menu{display:none}.topbar-title,.topbar-facts{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.topbar-title>.display{font-size:20px;display:inline}.topbar-classroom{color:var(--text-muted);font-size:20px}.topbar-facts{color:var(--text-muted);font-size:13px}.content{width:100%;max-width:calc(var(--content-max) + 2 * var(--space-48));padding:var(--space-40) var(--space-48) var(--space-64);flex:1 0 auto;margin:0}.content.content-landing{max-width:none;padding:0}.app-shell:not(:has(>.sidebar)):has(>.workspace>.topbar)>.workspace>.content{margin-inline:auto}.page-foot{justify-content:center;gap:var(--space-16);padding:var(--space-24) var(--space-48);color:var(--text-muted);font-size:13px;display:flex}.page-foot a{color:inherit}.page-foot a:hover{color:var(--text)}.bar-clearance{height:var(--bar-clearance,0px)}.chat-fab{right:28px;bottom:calc(var(--bottom-nav-height,0px) + 28px);z-index:6;width:56px;height:56px;box-shadow:var(--shadow-popover);border:0;border-radius:50%;padding:0;position:fixed}.chat-fab .icon{width:24px;height:24px}.mobile-bottom{display:none}.mobile-bottom a{gap:var(--space-4);padding:var(--space-4) var(--space-12);min-width:64px;min-height:48px;color:var(--text-muted);flex-direction:column;align-items:center;font-size:11px;text-decoration:none;display:flex}.mobile-bottom a[aria-current=page]{color:var(--text);font-weight:600}@media (max-width:1200px){.content{padding:var(--space-32)}.topbar{padding:0 var(--space-32)}}@media (max-width:1023px){.topbar-facts{display:none}}@media (max-width:767px){.app-shell{display:block}.sidebar{z-index:35;width:256px;box-shadow:var(--shadow-popover);display:none;position:fixed;inset:0 auto 0 0}.sidebar.open{display:flex}.rail-toggle{display:none}button.mobile-menu{display:inline-flex}.mobile-brand{display:block}.topbar{gap:var(--space-8);padding:0 var(--space-16)}.content{padding:var(--space-24) var(--space-16) var(--space-96)}.mobile-bottom{z-index:10;background:var(--surface);border-top:1px solid var(--border);padding:var(--space-8) var(--space-12) max(var(--space-8),env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}:root:has(.mobile-bottom){--bar-clearance:var(--space-96)}}@media print{.sidebar,.topbar,.mobile-bottom,.page-foot,.chat-fab{display:none!important}.app-shell{display:block}.content{padding:0}}
