.teacher-workspace{--bg:#f5f7fb}
.teacher-workspace>header{padding-top:18px;padding-bottom:18px}
.teacher-workspace>nav{gap:8px;flex-wrap:wrap}
.teacher-workspace>nav button{font-size:13px;padding:9px 16px;min-height:44px}
.teacher-workspace>nav .teacher-back-home{margin-right:auto}
.teacher-workspace .content:has(.teacher-home){max-width:1160px;padding-top:34px}
.teacher-home-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}
.teacher-home-eyebrow{font-size:12px;color:#858aa0;letter-spacing:1px;margin-bottom:6px}
.teacher-home-heading h1{font-size:30px;letter-spacing:1px;margin:0 0 8px}
.teacher-home-welcome{color:#757b8f;margin:0}
.teacher-home-date{display:flex;align-items:center;gap:9px;color:#646c83;font-size:13px;white-space:nowrap}
.teacher-home svg{width:22px;height:22px;flex-shrink:0}
.teacher-home-date svg{width:19px;height:19px}
.teacher-home-panel{background:#fff;border:1px solid #e8ebf3;border-radius:18px;margin-bottom:24px;box-shadow:0 3px 12px #23335903;overflow:hidden}
.teacher-home-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px}
.teacher-home-section-title{display:flex;align-items:center;gap:10px}
.teacher-section-mark{width:4px;height:17px;border-radius:3px;background:#5285ef}
.teacher-section-mark.violet{background:#7771e9}
.teacher-section-mark.management{background:#299480}
.teacher-home-section-title h2{font-size:17px;margin:0;font-weight:650}
.teacher-todo-count{min-width:24px;text-align:center;padding:1px 7px;border-radius:7px;background:#edf3ff;color:#4274cd;font-size:12px;font-weight:600}
.teacher-home-more{padding:8px;min-height:44px;border:0;color:#56637d;font-size:12px;background:transparent}
.teacher-home-more svg,.teacher-todo-action svg{width:14px;height:14px}
.teacher-todo-summary{margin:0 26px;padding:12px 16px;background:#f7f9fe;border-radius:9px;display:flex;justify-content:space-between;gap:16px;color:#768098;font-size:12px}
.teacher-todo-summary strong{color:#4c6dc4;font-size:14px;padding:0 2px}
.teacher-todo-summary>span:last-child{font-size:11px;color:#69758d}
.teacher-todo-list{padding:6px 26px 9px}
.teacher-todo-row{display:flex;align-items:center;gap:14px;padding:20px 0;border-bottom:1px solid #f0f2f6}
.teacher-todo-row:last-child{border-bottom:0}
.teacher-todo-icon{width:40px;height:44px;display:grid;place-items:center;flex-shrink:0;background:#f0f4ff;border-radius:11px;color:#6384d2}
.teacher-todo-info{flex:1;min-width:0}
.teacher-todo-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.teacher-todo-title h3{font-size:14px;font-weight:600;margin:0;overflow-wrap:anywhere}
.teacher-todo-status{padding:2px 7px;border-radius:5px;background:#eef4ff;color:#527ac3;font-size:12px;white-space:nowrap}
.teacher-todo-status.overdue{background:#fff3e8;color:#b16624}
.teacher-todo-info p{font-size:12px;color:#798296;margin:5px 0 0}
.teacher-todo-action{font-size:13px;color:#546cc0;min-height:44px;padding:8px 13px;border-color:#e5eafb;flex-shrink:0}
.teacher-message-row{align-items:flex-start}
.teacher-todo-icon.moral{color:#ad4d79;background:#fff1f7}
.teacher-message-title{font-weight:550;color:#4c586f!important}
.teacher-message-summary{overflow-wrap:anywhere;line-height:1.6}
.teacher-message-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:#68748b}
.teacher-message-score{padding:2px 7px;border-radius:5px;background:#f1f4fa;color:#59657c}
.teacher-message-score.positive{color:#257a5b;background:#eaf8f0}
.teacher-message-score.negative{color:#ae4f36;background:#fff1ea}
.teacher-todo-overflow button{min-height:44px}
.teacher-todo-overflow{text-align:center;padding:0 16px 12px;font-size:12px}
.teacher-home-caption{font-size:12px;color:#7a8296}
.teacher-app-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:4px 24px 28px}
.teacher-app{min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:18px 7px 14px;border:1px solid transparent;border-radius:14px;background:transparent;text-decoration:none;color:var(--ink);transition:background .15s,border-color .15s}
.teacher-app:hover{background:#f8faff;border-color:#e7ecfa;color:var(--ink)}
.teacher-app strong{font-size:14px;font-weight:550}
.teacher-app-note{font-size:11px;color:#7f879a;line-height:1.5}
.teacher-app-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;margin-bottom:6px}
.teacher-app-icon svg{width:29px;height:29px;stroke-width:1.6}
.teacher-app-icon.blue{color:#fff;background:#5b8dee;box-shadow:0 6px 12px #5b8dee20}
.teacher-app-icon.violet{color:#fff;background:#8a79e9;box-shadow:0 6px 12px #8a79e920}
.teacher-app-icon.teal{color:#fff;background:#46b5a5;box-shadow:0 6px 12px #46b5a520}
.teacher-app-icon.orange{color:#fff;background:#e8a354;box-shadow:0 6px 12px #e8a35420}
.teacher-app-icon.pink{color:#fff;background:#db83a8;box-shadow:0 6px 12px #db83a820}
.teacher-home-empty{display:flex;align-items:center;justify-content:center;gap:16px;padding:36px 24px 40px}
.teacher-home-empty>span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#f0f8f5;color:#5ea48b;flex-shrink:0}
.teacher-home-empty strong{font-size:14px;font-weight:550}
.teacher-home-empty p{color:#859087;font-size:12px;margin:5px 0 0}
.teacher-home-loading{text-align:center;padding:40px;color:var(--muted)}
.teacher-home-error{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 26px 26px}
.teacher-home-error p{font-size:12px;color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere}
.teacher-home-footnote{text-align:center;color:#8991a3;font-size:11px;margin-top:28px}
.teacher-home button:focus-visible,.teacher-home a:focus-visible{outline:3px solid #b6caff;outline-offset:3px}
@media(max-width:900px){.teacher-app-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){
  .teacher-workspace .content:has(.teacher-home){padding-top:22px}
  .teacher-workspace>header{padding:12px 14px}
  .teacher-workspace>nav{gap:3px}
  .teacher-workspace>nav button{padding:8px 12px}
  .teacher-home-heading{align-items:flex-start;gap:16px;flex-direction:column;margin-bottom:22px}
  .teacher-home-heading h1{font-size:26px}
  .teacher-home-welcome{font-size:12px}
  .teacher-home-date{font-size:12px}
  .teacher-home-panel{border-radius:14px;margin-bottom:18px}
  .teacher-home-section-head{padding:18px 16px;gap:8px}
  .teacher-home-section-title{gap:8px}
  .teacher-home-section-title h2{font-size:16px}
  .teacher-todo-summary{margin:0 16px;flex-direction:column;gap:2px;padding:10px 12px}
  .teacher-todo-list{padding:4px 16px}
  .teacher-todo-row{gap:10px;flex-wrap:wrap;padding:16px 0}
  .teacher-todo-icon{width:34px;height:38px;border-radius:9px}
  .teacher-todo-title h3{font-size:13px}
  .teacher-todo-info p{font-size:12px}
  .teacher-todo-action{margin-left:44px;min-height:44px}
  .teacher-home-caption{font-size:10px}
  .teacher-app-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 10px 18px;gap:6px}
  .teacher-app{padding:13px 3px 10px;gap:6px}
  .teacher-app-icon{width:50px;height:50px;border-radius:14px;margin-bottom:4px}
  .teacher-app strong{font-size:13px}
  .teacher-app-note{font-size:10px}
  .teacher-home-empty{padding:30px 18px}
  .teacher-home-empty p{font-size:11px}
  .teacher-home-error{padding:8px 16px 22px;align-items:flex-start;flex-direction:column}
}

/* The signed-in teacher presentation is shared with teacher-mobile.css. */
body.teacher-mobile-ui .teacher-home { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.9fr); gap:22px; align-items:start; }
body.teacher-mobile-ui .teacher-home-heading { grid-column:1/-1; margin:0 0 2px; gap:16px; }
body.teacher-mobile-ui .teacher-home-heading>div { min-width:0; overflow-wrap:anywhere; }
body.teacher-mobile-ui .teacher-home-heading h1 { font-size:29px; font-weight:650; letter-spacing:-.5px; margin-bottom:6px; }
body.teacher-mobile-ui .teacher-home-welcome { color:#627087; font-size:14px; }
body.teacher-mobile-ui .teacher-home-date { color:#627087; font-size:13px; }
body.teacher-mobile-ui .teacher-home-panel { border-color:#e1e9f3; border-radius:20px; box-shadow:0 3px 12px #315a8205; margin:0; }
body.teacher-mobile-ui .teacher-message-panel { grid-column:1; grid-row:2/span 2; }
body.teacher-mobile-ui .teacher-app-panel { grid-column:2; }
body.teacher-mobile-ui .teacher-home-section-head { padding:18px 20px 16px; }
body.teacher-mobile-ui .teacher-section-mark { display:none; }
body.teacher-mobile-ui .teacher-home-section-title h2 { font-size:16px; color:#2e405a; }
body.teacher-mobile-ui .teacher-todo-count { color:#075dbf; background:#eaf3ff; border-radius:8px; }
body.teacher-mobile-ui .teacher-home-more { color:#0861bf; }
body.teacher-mobile-ui .teacher-todo-summary { margin:0 20px; padding:10px 12px; background:#f0f6ff; color:#586c87; border-radius:11px; }
body.teacher-mobile-ui .teacher-todo-summary strong { color:#0861bf; }
body.teacher-mobile-ui .teacher-todo-list { padding:4px 20px 8px; }
body.teacher-mobile-ui .teacher-todo-row { gap:12px; border-color:#eaf0f7; }
body.teacher-mobile-ui .teacher-todo-icon { color:#2476c7; background:#eaf3ff; border-radius:12px; }
body.teacher-mobile-ui .teacher-todo-icon.moral { color:#a94a73; background:#fff0f6; }
body.teacher-mobile-ui .teacher-todo-title h3 { font-size:15px; font-weight:600; line-height:1.5; }
body.teacher-mobile-ui .teacher-todo-info p { color:#627087; font-size:13px; }
body.teacher-mobile-ui .teacher-todo-status { color:#1163bc; background:#eaf3ff; }
body.teacher-mobile-ui .teacher-todo-status.overdue { color:#98521c; background:#fff2e5; }
body.teacher-mobile-ui .teacher-todo-action { color:#0861bf; background:#f5f9ff; border-color:#d9e8fa; border-radius:11px; }
body.teacher-mobile-ui .teacher-message-meta { color:#627087; }
body.teacher-mobile-ui .teacher-app-grid { grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 14px 18px; gap:8px; }
body.teacher-mobile-ui .teacher-app { gap:8px; border-radius:14px; padding:13px 4px; }
body.teacher-mobile-ui .teacher-app strong { color:#35475e; font-size:14px; font-weight:550; line-height:1.5; overflow-wrap:anywhere; }
body.teacher-mobile-ui .teacher-app-icon { width:52px; height:52px; border-radius:16px; margin-bottom:2px; box-shadow:inset 0 1px 0 #ffffffb3; }
body.teacher-mobile-ui .teacher-app-icon svg { width:27px; height:27px; stroke-width:1.7; }
body.teacher-mobile-ui .teacher-app-icon:is(.blue,.violet) { color:#1769c2; background:#e3efff; }
body.teacher-mobile-ui .teacher-app-icon.teal { color:#207c78; background:#e4f4f0; }
body.teacher-mobile-ui .teacher-app-icon.orange { color:#a16629; background:#fff1df; }
body.teacher-mobile-ui .teacher-app-icon.pink { color:#aa4c79; background:#fbeaf2; }
body.teacher-mobile-ui .teacher-home-empty { color:#52667d; padding:32px 20px; }
body.teacher-mobile-ui .teacher-home-empty>span { color:#248457; background:#eaf7ef; }
body.teacher-mobile-ui .teacher-home button[aria-busy=true]::after { content:""; width:14px; height:14px; flex-shrink:0; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:teacher-home-busy .75s linear infinite; }
@keyframes teacher-home-busy { to { transform:rotate(360deg); } }
@media(hover:hover) { body.teacher-mobile-ui .teacher-app:hover { background:#f3f8ff; border-color:#dceafa; } }
@media(max-width:900px) {
  body.teacher-mobile-ui .teacher-home { display:block; }
  body.teacher-mobile-ui .teacher-home-heading { margin-bottom:24px; }
  body.teacher-mobile-ui .teacher-home-panel { margin-bottom:20px; }
  body.teacher-mobile-ui .teacher-app-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:640px) {
  body.teacher-mobile-ui .teacher-home-heading { flex-direction:row; align-items:flex-start; gap:8px; margin-bottom:22px; }
  body.teacher-mobile-ui .teacher-home-heading h1 { font-size:26px; }
  body.teacher-mobile-ui .teacher-home-welcome { font-size:13px; }
  body.teacher-mobile-ui .teacher-home-date { font-size:12px; gap:5px; padding-top:8px; }
  body.teacher-mobile-ui .teacher-home-date svg { width:16px; height:16px; }
  body.teacher-mobile-ui .teacher-home-panel { border-radius:18px; margin-bottom:18px; }
  body.teacher-mobile-ui .teacher-home-section-head { padding:15px 16px 12px; }
  body.teacher-mobile-ui .teacher-home-section-title { gap:7px; }
  body.teacher-mobile-ui .teacher-home-section-title h2 { font-size:16px; }
  body.teacher-mobile-ui .teacher-home-more { font-size:12px; padding:8px 4px; }
  body.teacher-mobile-ui .teacher-todo-summary { margin:0 16px; }
  body.teacher-mobile-ui .teacher-todo-list { padding:4px 16px 8px; }
  body.teacher-mobile-ui .teacher-todo-row { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:start; }
  body.teacher-mobile-ui .teacher-todo-icon { width:34px; height:38px; border-radius:10px; }
  body.teacher-mobile-ui .teacher-todo-title h3 { font-size:15px; }
  body.teacher-mobile-ui .teacher-todo-action { grid-column:2; justify-self:start; margin-left:0; min-height:44px; }
  body.teacher-mobile-ui .teacher-app-grid { grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 10px 16px; gap:6px; }
  body.teacher-mobile-ui .teacher-app strong { font-size:13px; }
}
@media(max-width:360px) {
  body.teacher-mobile-ui .teacher-home-date { font-size:11px; }
  body.teacher-mobile-ui .teacher-home-date svg { display:none; }
  body.teacher-mobile-ui .teacher-home-section-head { padding-inline:12px; }
  body.teacher-mobile-ui .teacher-todo-summary { margin-inline:12px; }
  body.teacher-mobile-ui .teacher-todo-list { padding-inline:12px; }
}
@media(prefers-reduced-motion:reduce) { body.teacher-mobile-ui .teacher-home button[aria-busy=true]::after { animation:none; } }
