/* v5.4.6 — UI 2.0 / 班级 + 作业
   Progressive enhancement only. v5.3/v5.4 cloud/RPC logic remains unchanged. */

/* shared platform modal */
.ui2-v546-platform.v53-backdrop,
.ui2-v546-platform.v54-backdrop{
  background:rgba(23,32,51,.34)!important;
  backdrop-filter:none!important;
}
.ui2-v546-platform .ui2-v546-modal{
  width:min(980px,calc(100% - 28px))!important;
  max-height:min(88vh,900px)!important;
  color:var(--ui2-text)!important;
  background:var(--ui2-surface)!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:16px!important;
  box-shadow:0 18px 48px rgba(23,32,51,.14)!important;
}
.ui2-v546-platform .ui2-v546-head{
  align-items:center!important;
  padding:18px 22px!important;
  background:rgba(255,255,255,.98)!important;
  border-bottom:1px solid var(--ui2-border)!important;
  backdrop-filter:none!important;
}
.ui2-v546-platform .v53-kicker,
.ui2-v546-platform .v54-kicker,
.ui2-v546-platform .ui2-v546-head p{display:none!important}
.ui2-v546-platform .ui2-v546-head h2{
  margin:0!important;
  color:var(--ui2-text)!important;
  font-size:23px!important;
  letter-spacing:-.02em!important;
}
.ui2-v546-platform .v53-close,
.ui2-v546-platform .v54-close{
  width:38px!important;height:38px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:9px!important;
  color:var(--ui2-text-2)!important;
  background:var(--ui2-surface)!important;
  box-shadow:none!important;
  font-size:24px!important;
  line-height:1!important;
}
.ui2-v546-platform .v53-body,
.ui2-v546-platform .v54-body{padding:22px!important;gap:18px!important}
.ui2-v546-platform .v53-grid{gap:18px!important}
.ui2-v546-platform .v53-panel,
.ui2-v546-platform .v53-members,
.ui2-v546-platform .v54-panel{
  padding:18px!important;
  background:var(--ui2-surface)!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:12px!important;
  box-shadow:none!important;
}
.ui2-v546-platform .ui2-v546-primary-panel{border-color:var(--ui2-border-strong)!important}
.ui2-v546-platform .ui2-v546-secondary-panel{background:var(--ui2-surface-2)!important}
.ui2-v546-platform .ui2-v546-collapsed{display:none!important}
.ui2-v546-platform .v53-section-title,
.ui2-v546-platform .v54-section-title{margin-bottom:14px!important;align-items:center!important}
.ui2-v546-platform .v53-section-title>div>span,
.ui2-v546-platform .v54-section-title>div>span{
  display:block;
  margin-bottom:2px;
  color:var(--ui2-text-3)!important;
  font-size:10px!important;
  font-weight:750!important;
  letter-spacing:.08em!important;
}
.ui2-v546-platform .v53-section-title h3,
.ui2-v546-platform .v54-section-title h3{
  margin:0!important;
  color:var(--ui2-text)!important;
  font-size:19px!important;
  line-height:1.35!important;
}
.ui2-v546-panel-extra{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-left:auto}
.ui2-v546-platform .ui2-v546-inline-action,
.ui2-v546-platform .v53-section-title button,
.ui2-v546-platform .v54-section-title button{
  min-height:34px;
  padding:7px 10px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:8px!important;
  color:var(--ui2-text-2)!important;
  background:var(--ui2-surface)!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:750!important;
  cursor:pointer;
}
.ui2-v546-platform button:focus-visible,
.ui2-v546-platform input:focus-visible,
.ui2-v546-platform select:focus-visible,
.ui2-v546-platform textarea:focus-visible{outline:2px solid var(--ui2-brand)!important;outline-offset:2px!important;box-shadow:none!important}
.ui2-v546-platform .v53-verified,
.ui2-v546-platform .v54-badge{
  padding:4px 7px!important;
  border-radius:6px!important;
  font-size:10px!important;
  font-weight:800!important;
}

/* classes */
.ui2-v546-platform .v53-class-list{display:grid!important;grid-template-columns:1fr!important;gap:0!important;border-top:1px solid var(--ui2-border)!important}
.ui2-v546-platform .ui2-v546-class-row{
  position:relative;
  display:grid!important;
  gap:10px!important;
  padding:15px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--ui2-border)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ui2-v546-platform .ui2-v546-class-row:last-child{border-bottom:0!important}
.ui2-v546-platform .v53-class-card.archived{opacity:.68!important}
.ui2-v546-platform .v53-class-top{align-items:flex-start!important}
.ui2-v546-platform .v53-class-top h4{margin:5px 0 3px!important;font-size:17px!important}
.ui2-v546-platform .v53-class-top p,
.ui2-v546-platform .v53-teacher-line,
.ui2-v546-platform .v53-date{color:var(--ui2-text-3)!important;font-size:12px!important}
.ui2-v546-platform .v53-member-count{min-width:48px!important}
.ui2-v546-platform .v53-member-count b{font-size:21px!important}
.ui2-v546-platform .v53-member-count span{color:var(--ui2-text-3)!important}
.ui2-v546-platform .v53-invite{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin-top:0!important;
  padding:9px 10px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:8px!important;
  background:var(--ui2-surface-2)!important;
}
.ui2-v546-platform .v53-invite span{color:var(--ui2-text-3)!important}
.ui2-v546-platform .v53-invite strong{font-size:15px!important;letter-spacing:.1em!important}
.ui2-v546-platform .v53-invite button,
.ui2-v546-platform .v53-card-actions button,
.ui2-v546-platform .v53-member button{
  min-height:34px;
  padding:7px 10px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:8px!important;
  color:var(--ui2-text-2)!important;
  background:var(--ui2-surface)!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:750!important;
}
.ui2-v546-platform .v53-card-actions{margin-top:0!important;gap:6px!important}
.ui2-v546-platform .v53-card-actions button.danger,
.ui2-v546-platform .v53-member button.danger{color:var(--ui2-danger)!important;background:transparent!important;border-color:var(--ui2-border)!important}
.ui2-v546-platform .v53-form{grid-template-columns:1fr 1fr!important;gap:12px!important}
.ui2-v546-platform .v53-form label,
.ui2-v546-platform .v54-form label{gap:6px!important;color:var(--ui2-text-2)!important;font-size:12px!important;font-weight:750!important}
.ui2-v546-platform .v53-form input,
.ui2-v546-platform .v53-join input,
.ui2-v546-platform .v54-form input,
.ui2-v546-platform .v54-form select,
.ui2-v546-platform .v54-form textarea{
  min-height:42px!important;
  padding:10px 11px!important;
  border:1px solid var(--ui2-border-strong)!important;
  border-radius:8px!important;
  color:var(--ui2-text)!important;
  background:var(--ui2-surface)!important;
  box-shadow:none!important;
  font-size:14px!important;
}
.ui2-v546-platform .v53-btn,
.ui2-v546-platform .v54-btn,
.ui2-v546-platform .v54-card-actions button{
  min-height:38px;
  padding:9px 12px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:8px!important;
  color:var(--ui2-text-2)!important;
  background:var(--ui2-surface)!important;
  box-shadow:none!important;
  font-size:13px!important;
  font-weight:800!important;
}
.ui2-v546-platform .v53-btn.primary,
.ui2-v546-platform .v54-btn.primary,
.ui2-v546-platform .v54-card-actions .primary{
  color:#fff!important;
  background:var(--ui2-brand)!important;
  border-color:var(--ui2-brand)!important;
  box-shadow:none!important;
}
.ui2-v546-form-heading{
  grid-column:1 / -1;
  margin-top:3px;
  padding-top:12px;
  border-top:1px solid var(--ui2-border);
  color:var(--ui2-text)!important;
  font-size:13px!important;
  font-weight:850!important;
}
.ui2-v546-form-heading:first-child{margin-top:0;padding-top:0;border-top:0}
.ui2-v546-platform .v53-join{gap:8px!important}
.ui2-v546-platform .v53-hint{margin-top:8px!important;color:var(--ui2-text-3)!important;font-size:12px!important}
.ui2-v546-platform .v53-member-list{gap:0!important;border-top:1px solid var(--ui2-border)!important}
.ui2-v546-platform .ui2-v546-member-row{
  padding:11px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--ui2-border)!important;
  border-radius:0!important;
}
.ui2-v546-platform .ui2-v546-member-row:last-child{border-bottom:0!important}
.ui2-v546-platform .v53-member-avatar,
.ui2-v546-platform .v54-avatar{
  width:36px!important;height:36px!important;
  border-radius:8px!important;
  color:var(--ui2-brand-strong)!important;
  background:var(--ui2-brand-soft)!important;
}

/* assignments */
.ui2-v546-platform .v54-card-grid{display:grid!important;grid-template-columns:1fr!important;gap:0!important;border-top:1px solid var(--ui2-border)!important}
.ui2-v546-platform .ui2-v546-assignment-row{
  padding:15px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--ui2-border)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.ui2-v546-platform .ui2-v546-assignment-row:last-child{border-bottom:0!important}
.ui2-v546-platform .v54-card h4{margin:7px 0 4px!important;font-size:17px!important}
.ui2-v546-platform .v54-card>p,
.ui2-v546-platform .v54-card>small{color:var(--ui2-text-3)!important;font-size:12px!important}
.ui2-v546-platform .v54-desc{
  margin-top:9px!important;
  padding:7px 9px!important;
  color:var(--ui2-text-2)!important;
  background:var(--ui2-surface-2)!important;
  border:0!important;
  border-radius:6px!important;
  font-size:12px!important;
}
.ui2-v546-platform .v54-mini-stats{margin-top:10px!important;gap:14px!important}
.ui2-v546-platform .v54-mini-stats span{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  color:var(--ui2-text-3)!important;
  background:transparent!important;
}
.ui2-v546-platform .v54-card-actions{margin-top:10px!important;gap:6px!important}
.ui2-v546-platform .v54-card-actions button.danger{color:var(--ui2-danger)!important;background:transparent!important;border-color:var(--ui2-border)!important}
.ui2-v546-platform .v54-scoreline{
  display:flex;align-items:baseline;gap:8px;
  margin-top:10px!important;padding:9px 10px!important;
  border:1px solid var(--ui2-border)!important;border-radius:8px!important;
  background:var(--ui2-brand-soft)!important;
}
.ui2-v546-platform .v54-scoreline b{font-size:18px!important;color:var(--ui2-brand-strong)!important;margin:0!important}
.ui2-v546-platform .v54-scoreline span{color:var(--ui2-text-2)!important}
.ui2-v546-platform .v54-form{grid-template-columns:1fr 1fr!important;gap:12px!important}
.ui2-v546-platform .v54-form .wide{grid-column:1 / -1!important}
.ui2-v546-platform .v54-check{padding-top:26px!important;align-self:end!important}
.ui2-v546-platform .v54-check input{min-height:auto!important;width:17px!important;height:17px!important}
.ui2-v546-platform .ui2-v546-legacy-note{display:none!important}
.ui2-v546-availability{
  padding:9px 10px;
  border:1px solid var(--ui2-border);
  border-radius:8px;
  color:var(--ui2-text-2);
  background:var(--ui2-surface-2);
  font-size:12px;
}
.ui2-v546-platform .v54-actions{gap:8px!important}
.ui2-v546-platform .v54-picked-head{margin:15px 0 8px!important}
.ui2-v546-platform .v54-picked-head span{color:var(--ui2-text-3)!important}
.ui2-v546-platform .v54-question-preview{gap:0!important;border-top:1px solid var(--ui2-border)!important}
.ui2-v546-platform .v54-qrow{
  grid-template-columns:30px 1fr!important;
  padding:10px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--ui2-border)!important;
  border-radius:0!important;
  background:transparent!important;
}
.ui2-v546-platform .v54-qrow>span{
  width:26px!important;height:26px!important;
  border-radius:6px!important;
  color:var(--ui2-brand-strong)!important;
  background:var(--ui2-brand-soft)!important;
}
.ui2-v546-platform .v54-qrow p{color:var(--ui2-text-2)!important}
.ui2-v546-platform .ui2-v546-preview-extra{display:none!important}
.ui2-v546-platform .ui2-v546-preview-expanded .ui2-v546-preview-extra{display:grid!important}
.ui2-v546-preview-toggle{margin-top:9px!important}
.ui2-v546-platform .v54-preview-empty,
.ui2-v546-platform .v54-more{
  margin-top:10px!important;
  padding:10px!important;
  border:1px solid var(--ui2-border)!important;
  border-radius:8px!important;
  color:var(--ui2-text-3)!important;
  background:var(--ui2-surface-2)!important;
}
.ui2-v546-platform .v54-submission-list{gap:0!important;border-top:1px solid var(--ui2-border)!important}
.ui2-v546-platform .ui2-v546-submission-row{
  padding:10px 2px!important;
  border:0!important;
  border-bottom:1px solid var(--ui2-border)!important;
  border-radius:0!important;
}
.ui2-v546-platform .v54-submission small{color:var(--ui2-text-3)!important}
.ui2-v546-platform .v54-info{color:var(--ui2-text-2)!important;background:var(--ui2-surface-2)!important;border-color:var(--ui2-border)!important;border-radius:8px!important}
.ui2-v546-platform .v53-msg,
.ui2-v546-platform .v54-msg,
.ui2-v546-platform .v53-status,
.ui2-v546-platform .v54-warning{border-radius:8px!important;box-shadow:none!important}

@media (max-width:760px){
  .ui2-v546-platform.v53-backdrop,
  .ui2-v546-platform.v54-backdrop{padding:0!important;align-items:flex-end!important}
  .ui2-v546-platform .ui2-v546-modal{
    width:100%!important;
    max-height:calc(var(--jx-visual-viewport,100dvh) - max(4px,env(safe-area-inset-top)))!important;
    border-left:0!important;border-right:0!important;border-bottom:0!important;
    border-radius:14px 14px 0 0!important;
  }
  .ui2-v546-platform .ui2-v546-head{padding:14px 16px!important;padding-top:max(14px,env(safe-area-inset-top))!important}
  .ui2-v546-platform .ui2-v546-head h2{font-size:20px!important}
  .ui2-v546-platform .v53-body,
  .ui2-v546-platform .v54-body{padding:14px 14px calc(22px + env(safe-area-inset-bottom))!important}
  .ui2-v546-platform .v53-panel,
  .ui2-v546-platform .v53-members,
  .ui2-v546-platform .v54-panel{padding:14px!important;border-radius:10px!important}
  .ui2-v546-platform .v53-section-title,
  .ui2-v546-platform .v54-section-title{align-items:flex-start!important;gap:8px!important}
  .ui2-v546-panel-extra{gap:5px;flex-wrap:wrap}
  .ui2-v546-platform .v53-form,
  .ui2-v546-platform .v54-form{grid-template-columns:1fr!important}
  .ui2-v546-platform .v53-form label:first-child,
  .ui2-v546-platform .v53-form .v53-btn,
  .ui2-v546-platform .v54-form .wide,
  .ui2-v546-form-heading{grid-column:auto!important}
  .ui2-v546-platform .v54-check{padding-top:2px!important}
  .ui2-v546-platform .v53-invite{display:grid!important;grid-template-columns:1fr auto!important}
  .ui2-v546-platform .v53-invite span{grid-column:1 / -1!important}
  .ui2-v546-platform .v53-class-top{gap:10px!important}
  .ui2-v546-platform .v54-card-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .ui2-v546-platform .v54-card-actions .primary{grid-column:1 / -1!important}
  .ui2-v546-platform .v54-scoreline{align-items:flex-start;flex-direction:column;gap:2px}
  .ui2-v546-platform .v54-actions{display:grid!important;grid-template-columns:1fr!important}
  .ui2-v546-platform .v54-actions .v54-btn{width:100%!important}
}

@media (max-width:430px){
  .ui2-v546-platform .v53-section-title,
  .ui2-v546-platform .v54-section-title{flex-direction:column!important}
  .ui2-v546-panel-extra{width:100%;justify-content:flex-start;margin-left:0}
  .ui2-v546-platform .v53-section-title>button,
  .ui2-v546-platform .v54-section-title>button{align-self:flex-start}
  .ui2-v546-platform .v54-card-actions{grid-template-columns:1fr!important}
  .ui2-v546-platform .v54-card-actions .primary{grid-column:auto!important}
}
