/* Global type scale: only Montserrat Regular and Medium are loaded. */
html{font-size:14px;font-synthesis:none;-webkit-text-size-adjust:100%}
html,body,button,input,textarea,select{font-family:Montserrat,Arial,sans-serif!important}
body{font-size:1rem;line-height:1.5}
*,*:before,*:after{font-weight:400}
h1,h2,h3,h4,h5,h6,b,strong,.btn,.eyebrow,label,.nav button,.main-task>summary,.criterion-summary,.score,.status,.home-heading span,.home-group-card small,.calendar-title,.calendar-grid>span,.edit-criterion,.project-tabs button,.print-section,.assign-btn{font-weight:500!important}
.hero h1,.page-head h1,.modal h2,.login-card h1,.section-title,.home-heading h2,.home-group-card b{font-family:Montserrat,Arial,sans-serif!important;font-weight:500!important;letter-spacing:-.025em}
.hero h1,.page-head h1{font-size:27px;line-height:1.18}.modal h2{font-size:21px;line-height:1.25}.section-title{font-size:20px}.project h3,.unit-card h3,.assignment-card h3{font-size:15px}.project p,.flow-item p{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.2px}.btn{border-radius:8px;padding:9px 12px;font-size:12px}.btn-small{padding:6px 9px;font-size:11px}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8ab6d8;outline-offset:2px}
.assignment-card{cursor:default}.assignment-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.assignment-card-head h3{margin:4px 0 0}.assignment-card .btn{flex:0 0 auto}.assignment-card p{margin:10px 0 7px}
.panel{overflow-x:auto}.user-list{min-width:650px}.toast{font-size:12px;max-width:min(360px,calc(100vw - 32px));line-height:1.4}.modal{overscroll-behavior:contain}.modal-actions{flex-wrap:wrap}.modal-actions .btn{min-height:36px}
@media(max-width:850px){
  .topbar{height:auto;min-height:66px;padding:10px 16px;flex-wrap:wrap;gap:8px}.brand-logo{width:112px;height:42px}.topbar>.btn,.topbar>button{margin-left:auto}.topbar .nav{display:flex;order:3;flex:1 0 100%;overflow-x:auto;gap:4px;padding:2px 0 0}.nav button{white-space:nowrap;padding:8px 9px;font-size:11px}.container{padding:24px 16px}.hero{padding:12px 0 18px}.hero h1,.page-head h1{font-size:23px}.page-head{gap:12px;margin-bottom:18px}.page-head>div:last-child{display:flex;flex-wrap:wrap;gap:7px}.modal-back{align-items:start;padding:8px}.modal{width:100%;max-height:calc(100dvh - 16px);border-radius:12px;padding:17px}.modal-title{gap:10px}.main-task>summary{padding:11px 12px}.criterion-summary{padding:10px;gap:10px}.subtask{gap:9px;padding:9px 6px}.subtask>div{white-space:normal}.summary-actions{width:100%;justify-content:flex-start}.assignment-head{align-items:stretch}.assignment-head>.btn{align-self:flex-start}.calendar-day,.calendar-empty{min-height:52px}.calendar-day{font-size:11px}.calendar-grid>span{font-size:9px}.score-strip{gap:7px;padding:9px}.threshold-mini{margin-top:14px}
}
@media(max-width:480px){
  html{font-size:13px}.topbar{padding-inline:12px}.brand-logo{width:98px}.container{padding:19px 12px}.home-column{padding:12px}.project,.flow-group{padding:13px}.project-top,.project-stats{gap:8px}.criterion-side{width:100%;display:flex;flex-wrap:wrap;gap:7px;align-items:center}.criterion-side b{margin-left:auto}.subtask label{min-width:0}.subtask label span{overflow-wrap:anywhere}.assignment-card-head{align-items:center}.assignment-card ul{max-height:none}.modal-actions{justify-content:stretch}.modal-actions .btn{flex:1 1 auto}.project-tabs button{padding:9px 8px;font-size:11px}.home-group-card{padding:18px}
}
@media print{*{font-family:Montserrat,Arial,sans-serif!important;font-weight:400!important}h1,h2,h3,b,strong{font-weight:500!important}}

.mobile-menu-toggle{display:none}
@media(max-width:850px){
  .mobile-menu-toggle{display:inline-flex;align-items:center;gap:7px;margin-left:auto;border:1px solid #b8c9d8;border-radius:8px;background:#fff;color:#0c2545;padding:8px 10px;font-size:11px;line-height:1}.hamburger-icon{font-size:18px;line-height:.7}
  .topbar .nav{display:none!important;order:10;flex:1 0 100%;overflow:visible;margin:2px 0 0;padding:6px;background:#f5f8fa;border:1px solid #dbe5ed;border-radius:10px}.topbar .nav.open{display:flex!important;flex-direction:column;align-items:stretch}.topbar .nav button{width:100%;text-align:left;white-space:normal;padding:10px}.topbar .header-action{margin-left:0}.topbar>.btn,.topbar>button{margin-left:0}
  .admin-tree .criterion-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;flex-direction:unset}.admin-tree .criterion-summary>span{min-width:0;overflow-wrap:anywhere}.admin-tree .criterion-side{width:auto!important;display:flex;max-width:156px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:5px}.admin-tree .criterion-side .all-check{white-space:nowrap;order:1}.admin-tree .criterion-side .assign-btn{order:0}.admin-tree .criterion-side b{flex:1 0 100%;margin-left:0;text-align:right;font-size:10px;order:2}.admin-tree .subtask{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.admin-tree .subtask label{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:6px}.admin-tree .subtask>div{margin-left:0}.admin-tree .subtask input{margin-top:2px}
}
@media(max-width:480px){.topbar .header-action{padding:6px 8px;font-size:10px}.admin-tree .criterion-side{max-width:145px}.admin-tree .criterion-side .all-check{padding:4px 5px}.admin-tree .criterion-side .assign-btn{padding:4px 5px}.admin-tree .subtask{gap:6px}}
