[hidden]{display:none!important}
#login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}
#login-screen>.panel{width:min(100%,460px);padding:36px}
#login-screen h1{font-size:32px;margin:18px 0}
#login-message{min-height:48px;line-height:1.6}
/* Override both ordinary and compact teacher headers, including their fixed heights. */
#app-shell header{height:auto;min-height:52px;padding:4px 16px;display:grid;grid-template-columns:auto minmax(100px,1fr) auto auto;gap:12px;align-items:center}
#account-name{min-width:0;max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:14px;line-height:1.5}
#account-email{color:var(--muted);overflow-wrap:anywhere}
.account-actions{display:flex;gap:8px;flex-shrink:0}
#app-shell .account-actions .btn{min-height:40px;padding:5px 10px;white-space:nowrap;font-size:14px}
body.is-saving #main,body.is-saving #dialog{pointer-events:none;opacity:.72}
#sync-status{font-size:14px;overflow-wrap:anywhere;min-width:0;line-height:1.5;color:#536e78}
#app-shell #breadcrumb{white-space:nowrap;font-size:14px}
@media(max-width:1100px){#app-shell header{grid-template-columns:minmax(100px,1fr) minmax(0,auto) auto;gap:10px}#app-shell #breadcrumb{display:none}}
@media(pointer:coarse){#app-shell .account-actions .btn{min-height:44px}}
.roster-import{width:100%;min-height:160px;font-size:16px;font-family:inherit}
.formal-admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.honor-group-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.honor-member{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--ink)}
.honor-member span{min-width:0;overflow-wrap:anywhere}
.honor-member small{display:block;color:var(--muted);margin-bottom:3px}
.honor-member select{flex-shrink:0;max-width:120px}
.honor-group-summary{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
@media(max-width:1000px){.honor-group-editor{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){
  #app-shell header{grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:6px 12px;min-height:0}
  #app-shell #breadcrumb{display:none}
  #account-name{grid-column:1;grid-row:1;margin:0;gap:0 8px}
  #account-display-name{font-size:14px}
  .account-actions{grid-column:2;grid-row:1;justify-content:flex-end;gap:6px}
  #app-shell #sync-status{grid-column:1/-1;grid-row:2;padding:0;line-height:1.5}
  .compact-title{flex-wrap:wrap;align-items:flex-start}
  .compact-title .caption{flex-basis:100%}
}
@media(max-width:600px){.honor-group-editor{grid-template-columns:1fr}.honor-member select{font-size:16px}.honor-group-controls{align-items:stretch}.honor-group-controls label{flex:1;min-width:120px}}

/* Task dashboard shares the school's existing teal and cream surfaces. */
.task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.task-card{display:flex;flex-direction:column;min-width:0;border-top:4px solid var(--teal)}
.task-card h2{margin:18px 0 8px;font-size:20px;overflow-wrap:anywhere}
.task-description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.7}
.task-card .task-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 12px}
.task-card>.btn{margin-top:auto}
.task-capabilities{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.task-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 0;border-top:1px solid var(--line)}
.task-numbers div{display:grid;gap:5px;text-align:center}.task-numbers strong{font-size:28px;color:var(--teal)}.task-numbers span{font-size:14px;color:var(--muted)}
.task-progress{margin:0 0 20px}.task-filters{margin:16px 0}.task-detail{margin:18px 0}.task-detail h1{margin-top:16px}
.task-note{white-space:pre-wrap;min-width:220px;max-width:380px;overflow-wrap:anywhere}
dialog:has(#task-create-form),dialog:has(#task-review-form){width:min(94vw,820px)}
#task-create-form textarea,#task-review-form textarea,#task-submit-form textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);padding:10px;border:1px solid #cbdbe0;border-radius:8px;resize:vertical}
.task-form-row{align-items:flex-start}.task-form-row>label{flex:1;min-width:150px}
.task-ability-picker{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.task-ability-picker label,.task-assignees label{display:flex;gap:8px;align-items:flex-start;margin:0;color:var(--ink)}
.task-ability-picker input,.task-assignees input,.task-review-item input{flex-shrink:0;margin-top:4px}
.task-ability-picker small{display:block;color:var(--muted);font-size:12px;line-height:1.6}
.task-assignees{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:280px;overflow:auto;padding:12px;background:#f4f8f9;border-radius:10px}
.task-assignees label{min-height:36px;align-items:center}.task-group-buttons{margin:12px 0}
.task-review-list{max-height:45vh;overflow:auto;margin:12px 0}
.task-review-item{display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding:12px 0;color:var(--ink)}
.task-review-item>span{display:grid;gap:6px;min-width:0}.task-review-item small{color:var(--muted)}
.ability-progress{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.ability-progress label{font-size:14px}
@media(min-width:1450px){.task-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.task-grid{grid-template-columns:1fr}.task-ability-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.task-assignees{grid-template-columns:1fr}.task-stats .stat{padding:12px 8px}.task-stats .stat span{font-size:14px}.task-filters{gap:6px}.task-form-row input,.task-form-row select{font-size:16px}}

.board-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.board-toolbar label{flex:1;min-width:150px}.board-toolbar select,.board-toolbar input{width:100%;font-size:16px}
.leaderboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.leaderboard-panel{padding:18px;min-width:0;border-top:4px solid #e7b755}
.board-heading{display:flex;align-items:center;gap:10px;margin-bottom:18px}.board-heading>span{color:#b57b20;font-size:26px}.board-heading h2{margin:0}
.board-winners{list-style:none;padding:0;margin:0;display:grid;gap:10px}.board-winner{display:flex;gap:10px;align-items:center;padding:15px 10px;border:1px solid var(--line);border-radius:12px;background:#f5f9fa}.board-winner.rank-1{background:#fff8e9;border-color:#ebd29c}
.board-medal{font-size:28px;flex-shrink:0}.board-person{display:grid;gap:6px;min-width:0;flex:1}.board-person strong{font-size:17px;overflow-wrap:anywhere}.board-person small,.board-score small{font-size:13px;color:var(--muted)}.board-score{display:grid;gap:4px;text-align:right;flex-shrink:0}.board-score strong{font-size:25px;color:var(--teal)}
.board-rules{margin-top:22px}.board-rules summary{cursor:pointer;font-weight:600}.board-rules li{line-height:1.8;margin:8px 0}
@media(max-width:1150px){.leaderboard-grid{grid-template-columns:1fr}.board-winners{grid-template-columns:repeat(3,minmax(0,1fr))}.board-winner{flex-wrap:wrap}.board-score{margin-left:auto}}
@media(max-width:650px){.board-winners{grid-template-columns:1fr}.board-winner{flex-wrap:nowrap}.board-toolbar{gap:12px}.board-toolbar label{min-width:130px}.board-toolbar>.btn{width:100%}}

.student-history-wrap{min-width:0;display:flex;flex-direction:column}.student-history-wrap>.student{flex:1;width:100%}.student-history-link{background:transparent;color:var(--teal);border:0;font-size:12px;min-height:28px;padding:3px 6px;text-align:right;text-decoration:underline}
.growth-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.growth-controls label{flex:1;min-width:145px}.growth-controls input,.growth-controls select{width:100%;font-size:16px}
.growth-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.growth-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.growth-source{display:grid;gap:10px;text-align:left;color:var(--ink);background:#f5f9fa;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}.growth-source.selected{border-color:var(--teal);background:#e9f5f2}.growth-source b{overflow-wrap:anywhere}.growth-source strong{color:var(--teal)}.growth-source small{color:var(--muted);font-size:14px;line-height:1.6}
.growth-details,.growth-finance{margin-top:20px}.growth-text{white-space:pre-wrap;min-width:170px;max-width:330px;overflow-wrap:anywhere}.growth-details td small{display:block;white-space:normal;color:var(--muted);margin-top:6px}.growth-pagination{margin-top:16px}.growth-details h2{margin:0}
@media(max-width:750px){.growth-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-sources{grid-template-columns:1fr}.growth-controls>.btn{width:100%}.growth-pagination{font-size:14px;gap:8px}}
.payment-source-options{border:1px solid #cedcdf;border-radius:12px;padding:12px;margin:12px 0;max-height:260px;overflow:auto;min-width:0}
.payment-source-options .inline-choice{display:flex;align-items:center;gap:8px;margin:8px 0}
.payment-source-options input[type=checkbox]{width:20px;height:20px;flex:none}
