/* ============================================================
   布置作业 · 共享浮层组件样式（契约 A 节，?v=aw1）
   规范：品牌紫 #6b1fb8 / 深 #4a1380；全程无 box-shadow（边框分层）；无 emoji；
   类名前缀 aw-，不与 notes-widget(amn-) / mega-nav(mnav-) 冲突；浅色为主。
   ============================================================ */

/* —— 启动按钮（挂进各页顶栏/工具条；JS 确认老师身份后才 display:inline-flex）—— */
.aw-launch{
  display:none;               /* 初始隐藏，JS 门控 */
  align-items:center;
  gap:5px;
  padding:5px 11px;
  border:1px solid #d9c9ef;
  border-radius:999px;
  background:#fff;
  color:#6b1fb8;
  font-size:12.5px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  font-family:inherit;
}
.aw-launch:hover{ background:#f6f0fc; border-color:#6b1fb8; }
.aw-launch svg{ flex:none; }

/* —— 浮层 —— */
.aw-ov{
  position:fixed;
  inset:0;
  z-index:99990;
  display:none;               /* JS 开关为 flex */
  align-items:center;
  justify-content:center;
  padding:20px;
}
.aw-mask{ position:absolute; inset:0; background:rgba(20,12,32,.45); }
.aw-panel{
  position:relative;
  width:min(560px,100%);
  /* 高度用「视口高减固定量」而不是 86vh：矮视口下 86vh 会把底栏那颗「布置给 N 名学生」
     推到贴近屏幕底沿，撞上 iPad 的 Dock / iOS Safari 的底部工具栏。
     实测（撑满内容）按钮离屏幕底沿：iPad 横屏 768px 高 96px 尚可，但 iPhone 横屏 390px 高只有 40px。
     百分比在矮视口下必然不够，改成固定扣减；配合 margin-bottom，任何视口高度都稳定在 116px。 */
  max-height:min(720px,calc(100vh - 150px));
  margin-bottom:58px;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e6dff1;
  border-radius:16px;
  overflow:hidden;
}

.aw-head{
  display:flex;
  align-items:center;
  gap:8px;
  padding:13px 16px;
  border-bottom:1px solid #efe9f7;
  flex:none;
}
.aw-ttl{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:15px;
  font-weight:700;
  color:#4a1380;
}
.aw-x{
  margin-left:auto;
  width:28px; height:28px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid #e6dff1;
  border-radius:8px;
  background:#fff;
  color:#666;
  cursor:pointer;
  padding:0;
}
.aw-x:hover{ color:#6b1fb8; border-color:#6b1fb8; }

.aw-body{ padding:4px 16px 14px; overflow-y:auto; overscroll-behavior:contain; }

.aw-lb{ display:block; font-size:12px; color:#7a7288; margin:12px 0 4px; }

.aw-input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #ddd4ea;
  border-radius:8px;
  padding:8px 10px;
  font-size:13.5px;
  font-family:inherit;
  color:#1a1a1a;
  background:#fff;
}
.aw-input:focus{ outline:none; border-color:#6b1fb8; }
.aw-note{ resize:vertical; min-height:44px; }

/* 深链只读展示（完整 URL 在 title 里悬停可见） */
.aw-link{
  font-size:12.5px;
  color:#4a1380;
  background:#f6f0fc;
  border:1px solid #e6d8f5;
  border-radius:8px;
  padding:7px 10px;
  word-break:break-all;
  line-height:1.5;
}

.aw-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:0 10px;
}

/* —— 目标学生 chips —— */
.aw-quick{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:6px; }
.aw-quick:empty{ display:none; margin:0; }
.aw-stus{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-content:flex-start;
  max-height:172px;
  overflow-y:auto;
  overscroll-behavior:contain;
  font-size:12.5px;
  color:#8a8296;
}
.aw-chip{
  border:1px solid #ddd4ea;
  border-radius:999px;
  background:#fff;
  color:#3c3547;
  font-size:12.5px;
  line-height:1;
  padding:6px 11px;
  cursor:pointer;
  font-family:inherit;
  white-space:nowrap;
}
.aw-chip:hover{ border-color:#6b1fb8; color:#6b1fb8; }
.aw-chip.on{ background:#6b1fb8; border-color:#6b1fb8; color:#fff; }
.aw-chip.on:hover{ background:#4a1380; border-color:#4a1380; color:#fff; }
.aw-chip-cls{ background:#f6f0fc; border-color:#e6d8f5; color:#4a1380; }
.aw-chip-cls:hover{ border-color:#6b1fb8; color:#6b1fb8; }

/* —— 底栏 —— */
.aw-foot{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-top:1px solid #efe9f7;
  flex:none;
}
.aw-msg{
  flex:1;
  min-width:0;
  font-size:12.5px;
  color:#dc2626;
  word-break:break-all;
  line-height:1.4;
}
.aw-submit{
  flex:none;
  border:1px solid #6b1fb8;
  border-radius:999px;
  background:#6b1fb8;
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  font-family:inherit;
  padding:9px 18px;
  cursor:pointer;
  white-space:nowrap;
}
.aw-submit:hover{ background:#4a1380; border-color:#4a1380; }
.aw-submit:disabled{ opacity:.55; cursor:default; }
.aw-submit:disabled:hover{ background:#6b1fb8; border-color:#6b1fb8; }

/* —— 窄屏：底部满宽面板 —— */
@media (max-width:640px){
  .aw-ov{ padding:0; align-items:flex-end; }
  .aw-panel{
    width:100%;
    max-height:88vh;
    border-radius:16px 16px 0 0;
    border-left:none;
    border-right:none;
    border-bottom:none;
    /* 贴底面板：改前按钮离屏幕底沿只有 12px（底栏自身的内边距），Home 指示条 34px、
       Safari 底部工具栏约 50px 都浮在网页上方，所以老师点不到。
       env() 只在带 viewport-fit=cover 的页面有值（10 个挂载页里只有根 index.html 有），
       所以用 max() 兜一个 38px 的固定下限——加上底栏自身 12px，按钮离底沿 50px。 */
    margin-bottom:0;
    padding-bottom:max(env(safe-area-inset-bottom,0px),38px);
  }
  .aw-grid{ grid-template-columns:1fr 1fr; }
}

/* ---- 作业包：一次布置一整轮（宿主页提供 getBundle 才出现）---- */
.aw-bundle{ margin-top:14px; }
.aw-bunhint{ font-weight:400; color:#9a93a8; font-size:12px; margin-left:6px; }
/* 只布置其中几题：题号密排成网格，老师扫一眼就能勾。房规——无阴影。 */
.aw-qs{margin:12px 0 2px}
.aw-qslist{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow-y:auto;padding:2px 0}
.aw-qsit{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--aw-border,#e8e4f0);border-radius:8px;
  padding:5px 9px;cursor:pointer;font-size:12.5px;background:#fff;font-variant-numeric:tabular-nums}
.aw-qsit:hover{border-color:#c9a9ee}
.aw-qsit:has(input:checked){background:#f3ebff;border-color:#c9a9ee;color:#4a1380;font-weight:600}
.aw-qst{white-space:nowrap}
.aw-bunlist{ max-height:210px; overflow-y:auto; overscroll-behavior:contain;
  border:1px solid #eceaf2; border-radius:10px; padding:6px; display:flex; flex-direction:column; gap:2px; }
.aw-bunit{ display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:8px; cursor:pointer; font-size:13.5px; }
.aw-bunit:hover{ background:#f6f0ff; }
.aw-bunit input{ flex:none; width:15px; height:15px; accent-color:#6b1fb8; }
.aw-bunt{ flex:1; color:#26222e; }
.aw-bune{ flex:none; font-size:11.5px; color:#9a93a8; font-variant-numeric:tabular-nums; }
/* 「这个单元给选中的人布置过没有」——免得老师重复布。
   查不到时这一格是空的（不是显示「未布置」）：把「没查到」说成「没布置过」会误导。 */
.aw-bunasg{ flex:none; }
.aw-asg{ display:inline-block; font:inherit; font-size:10.5px; font-weight:700; border-radius:99px;
  padding:1px 8px; color:#b45309; background:#fffbeb; border:1px solid #fde68a;
  max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  cursor:pointer; text-align:left; }
.aw-asg:hover{ filter:brightness(.97); }
.aw-asg.done{ color:#15803d; background:#f0fdf4; border-color:#bbf7d0; }
/* 展开看全部名字时允许换行，别把行挤成一条省略号 */
.aw-bunit.asg-open .aw-asg{ max-width:none; white-space:normal; }
.aw-bunbar{ display:flex; align-items:center; gap:7px; margin-top:7px; }
.aw-buncnt{ margin-left:auto; font-size:12px; color:#9a93a8; }

/* 名册：班级筛选 + 老师区（选人一步到位，也能点完班级再挑单人） */
.aw-empty{font-size:12.5px;color:#9ca3af;padding:6px 2px;display:inline-block}
.aw-tsec{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  margin-top:10px;padding-top:10px;border-top:1px dashed #e5e7eb}
.aw-tlab{font-size:11px;font-weight:700;color:#9ca3af;letter-spacing:.04em;margin-right:2px}

/* 集训清单：模式切换 + 清单选择 */
.aw-mode{display:flex;gap:6px;align-items:center;flex-wrap:wrap;
  margin-top:12px;padding-top:12px;border-top:1px dashed #e5e7eb}
.aw-modehint{font-size:11.5px;color:#9ca3af;flex:1 1 200px;line-height:1.6}
.aw-list{margin-top:10px}
.aw-list .aw-input{width:100%;margin-top:8px}
.aw-listhint{font-size:11px;color:#9ca3af;margin-top:6px;line-height:1.6}
.aw-quick [data-awlist] i{font-style:normal;font-weight:600;opacity:.72;margin-left:5px;font-size:11px}
