.community-chat{
  display:grid;place-items:center;flex:none;width:44px;height:44px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);
}
.community-chat:hover,.community-chat:active{background:var(--wash)}
[data-appearance-theme=university] .masthead .community-chat{
  background:#ffffff24;color:#fff;border-color:#ffffff42;border-radius:12px;--control-focus:#fff;
}
[data-appearance-theme=university] .masthead .community-chat:hover{background:#ffffff38}
@media (max-width:360px), (horizontal-viewport-segments:2){
  .masthead-row:has(#groups:not([hidden])) .brand{font-size:0;gap:0}
}
#main{padding-block-end:calc(56px + env(safe-area-inset-bottom, 0px))}
#main>.list+.list{margin-block-start:12px}
#main .row>button[data-action=delete-post]{flex:none;max-inline-size:100%;overflow-wrap:anywhere}
.gradebook-scroll{isolation:isolate;contain:paint;overscroll-behavior-x:contain}

:root[data-appearance-theme]{
  --accent-light:#235d94;--accent-dark:#a6d2ff;--portal-header:#184276;
}
:root[data-appearance-accent=teal]{--accent-light:#086b65;--accent-dark:#82e0d5;--portal-header:#115b56}
:root[data-appearance-accent=violet]{--accent-light:#624597;--accent-dark:#ceb8ff;--portal-header:#503783}
:root[data-appearance-accent=graphite]{--accent-light:#49576a;--accent-dark:#c4d3e5;--portal-header:#354356}
:root[data-appearance-scheme=light]{
  color-scheme:light;--paper:#f4f7fb;--surface:#fff;--ink:#15283d;--muted:#465c74;
  --line:#d5e1ed;--accent:var(--accent-light);--on-accent:#fff;--wash:#e5effa;--bad:#8d362c;--focus:#305fc4;
}
:root[data-appearance-scheme=dark]{
  color-scheme:dark;--paper:#121e2c;--surface:#19293b;--ink:#edf5ff;--muted:#b8cae0;
  --line:#354b62;--accent:var(--accent-dark);--on-accent:#132a43;--wash:#263e58;--bad:#ffaca0;--focus:#bed8ff;
}
:root[data-appearance-accent]:not([data-appearance-accent=blue]){
  --wash:color-mix(in srgb,var(--surface),var(--accent) 15%);--focus:var(--accent);
}
[data-appearance-theme] .brand svg path{stroke:var(--on-accent)}

.theme-dialog fieldset{min-inline-size:0;margin:0;padding:0;border:0}
.theme-dialog legend{margin-block-end:8px;font-weight:650}
.theme-options{display:flex;flex-wrap:wrap;gap:8px}
.theme-options label{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:8px}
.theme-options label:has(:checked){border-color:var(--accent);background:var(--wash)}
.theme-options input{width:16px;min-height:16px;flex:none;margin:0;accent-color:var(--accent)}
.theme-options [data-swatch]{display:flex;align-items:center;gap:6px}
.theme-options [data-swatch]::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--swatch)}
[data-swatch=blue]{--swatch:#397dc4}
[data-swatch=teal]{--swatch:#188477}
[data-swatch=violet]{--swatch:#7958b4}
[data-swatch=graphite]{--swatch:#647386}

:root[data-appearance-theme=university]{
  --paper:#f1f4fa;--ink:#15203a;--muted:#536173;--line:#d9e0ea;--portal-card:#f5f7fa;
  --accent:var(--portal-header);--wash:color-mix(in srgb,var(--surface),var(--accent) 10%);
}
:root[data-appearance-theme=university][data-appearance-scheme=dark]{
  --paper:#101826;--surface:#1a2535;--ink:#edf3ff;--muted:#becadc;--line:#3a4a62;--portal-card:#202d3f;
  --accent:var(--accent-dark);
}
[data-appearance-theme=university] .masthead{
  background:linear-gradient(112deg,var(--portal-header),color-mix(in srgb,var(--portal-header),#82baff 20%));
  border:0;color:#fff;
}
[data-appearance-theme=university] .masthead-row{min-height:72px}
[data-appearance-theme=university] .brand{color:#fff;letter-spacing:0}
[data-appearance-theme=university] .brand svg{border-radius:50%}
[data-appearance-theme=university] .brand svg path{stroke:var(--portal-header)}
[data-appearance-theme=university] :is(#groups,#new-group,.quick-menu summary){
  color:#fff;background:#ffffff24;border-color:#ffffff42;border-radius:12px;
}
[data-appearance-theme=university] .masthead :is(button,select,summary):focus-visible{outline-color:#fff}
[data-appearance-theme=university] #groups option,[data-appearance-theme=university] .quick-menu-panel{color:var(--ink);background:var(--surface)}
[data-appearance-theme=university] #navigation{margin-top:8px}
[data-appearance-theme=university] :is(.calendar,.list,.gradebook-scroll,dialog,.empty){
  border-radius:16px;background:var(--surface);
}
[data-appearance-theme=university] :is(.calendar,.list,.gradebook-scroll){box-shadow:0 3px 12px #14243b0b}
[data-appearance-theme=university] .list:has(> .lesson){
  display:grid;gap:10px;padding:12px;
}
[data-appearance-theme=university] .lesson{
  display:grid;grid-template-columns:minmax(0,1fr);gap:4px;
  padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--portal-card);
}
[data-appearance-theme=university] .lesson .time small{
  display:inline;color:inherit;font-size:inherit;font-weight:inherit;
}
[data-appearance-theme=university] .lesson .time small::before{content:"–"}
[data-appearance-theme=university] .lesson .actions{grid-column:1;margin-top:4px}
[data-appearance-theme=university] .lesson .actions button{border-radius:8px}
[data-appearance-theme=university] .day-heading{margin-block:16px 8px}
[data-appearance-theme=university] .page-head h1{letter-spacing:-.025em}
[data-appearance-theme=university] .empty{border-style:solid}

:root[data-appearance-theme] :is(button,select,input,textarea,summary,a,.gradebook-scroll){
  -webkit-tap-highlight-color:transparent;
}
:root[data-appearance-theme] :is(button,select,input,textarea,summary,a,.gradebook-scroll):focus-visible{
  outline:0;
  box-shadow:inset 0 0 0 2px var(--control-focus,var(--focus));
}
:root[data-appearance-theme] .primary{--control-focus:var(--on-accent)}
:root[data-appearance-theme] .week button[aria-pressed=true]{--control-focus:var(--on-accent)}
:root[data-appearance-theme=university] .masthead :is(#groups,#new-group,summary){--control-focus:#fff}
:root[data-appearance-theme] input:is([type=checkbox],[type=radio]):focus-visible{
  outline:2px solid var(--focus);
  outline-offset:-2px;
}
@media(forced-colors:active){
  :root[data-appearance-theme] :is(button,select,input,textarea,summary,a,.gradebook-scroll):focus-visible{
    outline:2px solid Highlight;
    outline-offset:-2px;
  }
}
