/* Homework & Assignments — admin (Academic), Teacher App and Parent / Student App.
   Inherits each host's theme variables (--card, --line, --text, --slate, --brass …). */
.csh-hw, .csh-hwp{
  --hw-card:var(--card,#121B30); --hw-line:var(--line,#24314C); --hw-text:var(--text,#E8EDF9); --hw-mute:var(--slate,#92A3C4);
  --hw-acc:var(--brass,#4C8DFF); --hw-bg:var(--bg,var(--paper,#0B1220)); --hw-ok:var(--ok,#2FB67C); --hw-bad:var(--danger,#E5637A); --hw-warn:var(--warn,#E8B84B);
  color:var(--hw-text);
}
.csh-hw, .csh-hw *, .csh-hwp, .csh-hwp *{ box-sizing:border-box; font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif !important; }
.csh-hw-loading{ padding:26px; text-align:center; color:var(--hw-mute); font-weight:600; font-size:13px; }
.csh-hw-empty{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:34px 16px; text-align:center; border:1px dashed var(--hw-line); border-radius:14px; color:var(--hw-mute); font-size:13px; font-weight:600; background:var(--hw-card); }
.csh-hw-empty b{ color:var(--hw-text); font-size:15px; }
.csh-hw-empty.bad{ color:var(--hw-bad); border-color:var(--hw-bad); }
.csh-hw-back{ background:none; border:none; color:var(--hw-mute); font-weight:700; font-size:13px; cursor:pointer; padding:0 0 12px; }
.csh-hw-back:hover{ color:var(--hw-text); }

/* buttons */
.csh-hw-btn{ display:inline-flex; align-items:center; gap:6px; min-height:38px; padding:8px 14px; border-radius:9px; border:1px solid var(--hw-line); background:var(--hw-card); color:var(--hw-text); font-weight:700; font-size:13px; cursor:pointer; white-space:nowrap; line-height:1.1; }
.csh-hw-btn:hover{ border-color:var(--hw-acc); }
.csh-hw-btn.primary{ background:var(--hw-acc); border-color:var(--hw-acc); color:#fff; }
.csh-hw-btn.primary:hover{ filter:brightness(1.08); }
.csh-hw-btn.sm{ min-height:32px; padding:6px 11px; font-size:12px; border-radius:8px; }
.csh-hw-btn.ghost{ background:transparent; }
.csh-hw-btn.danger{ color:var(--hw-bad); }
.csh-hw-btn.danger:hover{ border-color:var(--hw-bad); }
.csh-hw-btn:disabled{ opacity:.55; cursor:default; filter:none; }

/* head */
.csh-hw-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
.csh-hw-head h3{ margin:0 0 4px; font-size:18px; font-weight:800; color:var(--hw-text); }
.csh-hw-head p{ margin:0; font-size:12.5px; color:var(--hw-mute); line-height:1.55; max-width:760px; font-weight:500; }
.csh-hw-head-act{ display:flex; gap:8px; flex-wrap:wrap; }

/* KPI strip */
.csh-hw-kpis{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; margin-bottom:14px; }
.csh-hw-kpis.sm{ grid-template-columns:repeat(auto-fit, minmax(118px, 1fr)); }
.csh-hw-kpi{ position:relative; background:var(--hw-card); border:1px solid var(--hw-line); border-radius:12px; padding:12px 14px 12px 16px; overflow:hidden; }
.csh-hw-kpi::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--k,var(--hw-acc)); }
.csh-hw-kpi small{ display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--hw-mute); font-weight:800; }
.csh-hw-kpi b{ display:block; font-size:24px; font-weight:800; margin-top:4px; color:var(--hw-text); line-height:1.1; }
.csh-hw-kpis.sm .csh-hw-kpi b{ font-size:19px; }
.csh-hw-kpi span{ display:block; font-size:11px; color:var(--hw-mute); margin-top:3px; font-weight:600; }
.k-blue{ --k:#3987e5; } .k-amber{ --k:#E8B84B; } .k-red{ --k:#E5637A; } .k-violet{ --k:#9B7BEA; } .k-green{ --k:#2FB67C; } .k-grey{ --k:#8391AA; }

/* tabs + filters */
.csh-hw-tabs{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.csh-hw-tabs button{ min-height:32px; padding:6px 13px; border-radius:999px; border:1px solid var(--hw-line); background:transparent; color:var(--hw-mute); font-weight:700; font-size:12.5px; cursor:pointer; }
.csh-hw-tabs button:hover{ color:var(--hw-text); }
.csh-hw-tabs button.on{ background:var(--hw-acc); border-color:var(--hw-acc); color:#fff; }
.csh-hw-mine{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--hw-mute); cursor:pointer; }
.csh-hw-filters{ display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:10px 12px; margin-bottom:16px; }
.csh-hw-fld{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.csh-hw-fld > span{ font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--hw-mute); font-weight:800; }
.csh-hw select, .csh-hw input[type=text], .csh-hw input[type=search], .csh-hw input[type=number], .csh-hw input[type=date], .csh-hw input[type=url], .csh-hw textarea{
  width:100%; max-width:none !important; min-height:38px; padding:8px 10px; border-radius:8px; border:1px solid var(--hw-line); background:var(--hw-card); color:var(--hw-text); font-size:13px; font-weight:600; box-shadow:none; }
.csh-hw textarea{ resize:vertical; line-height:1.5; font-weight:500; }
.csh-hw select:focus, .csh-hw input:focus, .csh-hw textarea:focus{ outline:none; border-color:var(--hw-acc); box-shadow:0 0 0 3px color-mix(in srgb, var(--hw-acc) 22%, transparent); }

/* cards */
.csh-hw-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(330px, 1fr)); gap:14px; }
.csh-hw-card, .csh-hw-dhead{ --tc:#3987e5; position:relative; background:var(--hw-card); border:1px solid var(--hw-line); border-radius:14px; padding:14px 16px 14px 18px; display:flex; flex-direction:column; gap:8px; overflow:hidden; }
.csh-hw-card::before, .csh-hw-dhead::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--tc); }
.t-assignment{ --tc:#9B7BEA; } .t-project{ --tc:#E8913B; } .t-classwork{ --tc:#2FB67C; } .t-holiday{ --tc:#D9548F; } .t-homework{ --tc:#3987e5; }
.csh-hw-card .top, .csh-hw-dhead .top{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.csh-hw .type, .csh-hwp .type{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--tc); background:color-mix(in srgb, var(--tc) 14%, transparent); padding:4px 8px; border-radius:6px; }
.csh-hw .subj, .csh-hwp .subj{ font-size:11.5px; font-weight:800; color:var(--hw-text); border:1px solid var(--hw-line); padding:3px 8px; border-radius:6px; }
.csh-hw .due, .csh-hwp .due{ margin-left:auto; font-size:11px; font-weight:800; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.d-today{ background:color-mix(in srgb, #E5637A 18%, transparent); color:#E5637A; }
.d-soon{ background:color-mix(in srgb, #E8B84B 18%, transparent); color:#E0A92E; }
.d-later{ background:color-mix(in srgb, #2FB67C 16%, transparent); color:#2FB67C; }
.d-past{ background:color-mix(in srgb, #8391AA 16%, transparent); color:var(--hw-mute); }
.d-sched{ background:color-mix(in srgb, #9B7BEA 18%, transparent); color:#9B7BEA; }
.d-draft{ background:transparent; border:1px dashed var(--hw-mute); color:var(--hw-mute); }
.csh-hw-card h4{ margin:2px 0 0; font-size:15px; font-weight:800; color:var(--hw-text); line-height:1.3; }
.csh-hw-card .cls, .csh-hw-dhead .cls{ font-size:12px; color:var(--hw-mute); font-weight:700; }
.csh-hw-card .det{ margin:0; font-size:12.5px; color:var(--hw-mute); line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:pre-line; }
.csh-hw-card .dates, .csh-hw-dhead .dates{ display:flex; gap:14px; flex-wrap:wrap; }
.csh-hw-card .dates span, .csh-hw-dhead .dates span{ font-size:12.5px; font-weight:700; color:var(--hw-text); }
.csh-hw-card .dates small, .csh-hw-dhead .dates small{ display:block; font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:var(--hw-mute); font-weight:800; }
.csh-hw-card .meta{ display:flex; gap:10px; font-size:12px; color:var(--hw-mute); font-weight:600; flex-wrap:wrap; }
.csh-hw-card .meta .by{ margin-left:auto; }
.csh-hw-card .prog .bar{ height:6px; background:color-mix(in srgb, var(--hw-line) 70%, transparent); border-radius:99px; overflow:hidden; }
.csh-hw-card .prog .bar i{ display:block; height:100%; background:var(--tc); border-radius:99px; }
.csh-hw-card .prog .nums{ display:flex; gap:12px; margin-top:6px; font-size:11.5px; color:var(--hw-mute); font-weight:600; }
.csh-hw-card .prog .nums b{ color:var(--hw-text); }
.csh-hw-card .act{ display:flex; gap:6px; flex-wrap:wrap; margin-top:2px; padding-top:10px; border-top:1px solid var(--hw-line); }

/* detail */
.csh-hw-dhead{ padding:18px 20px 18px 22px; margin-bottom:14px; }
.csh-hw-dhead h3{ margin:4px 0 0; font-size:20px; font-weight:800; color:var(--hw-text); line-height:1.3; }
.csh-hw-dhead .det, .csh-hwp .det{ white-space:pre-wrap; font-size:13.5px; line-height:1.65; color:var(--hw-text); background:color-mix(in srgb, var(--hw-line) 30%, transparent); border-radius:10px; padding:12px 14px; font-weight:500; }
.csh-hw-dhead .act{ display:flex; gap:6px; flex-wrap:wrap; }
.csh-hw-files{ display:flex; gap:8px; flex-wrap:wrap; }
.csh-hw-file, .csh-hw-link{ display:inline-flex; align-items:center; gap:8px; max-width:100%; padding:8px 12px; border:1px solid var(--hw-line); border-radius:10px; text-decoration:none; color:var(--hw-text); font-size:12.5px; font-weight:700; background:var(--hw-card); }
.csh-hw-file:hover, .csh-hw-link:hover{ border-color:var(--hw-acc); }
.csh-hw-file .ic{ font-size:18px; }
.csh-hw-file .nm{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:240px; }
.csh-hw-file small, .csh-hw-link small{ color:var(--hw-mute); font-weight:600; font-size:11px; }
.csh-hw-link{ align-self:flex-start; }
.csh-hw-link span{ color:var(--hw-acc); }

.csh-hw-checkbar{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.csh-hw-checkbar .csh-hw-tabs{ margin:0; }
.csh-hw-checkbar input[type=search]{ width:200px; }
.csh-hw-students{ display:flex; flex-direction:column; gap:8px; padding-bottom:70px; }
.csh-hw-stu{ display:grid; grid-template-columns:minmax(220px, 1.1fr) auto minmax(220px, 1fr); gap:10px 14px; align-items:center; background:var(--hw-card); border:1px solid var(--hw-line); border-radius:12px; padding:10px 14px; }
.csh-hw-stu.dirty{ border-color:var(--hw-warn); }
.csh-hw-stu .who{ display:flex; align-items:center; gap:10px; min-width:0; }
.csh-hw-stu .who em{ font-style:normal; min-width:44px; text-align:center; font-size:11.5px; font-weight:800; color:var(--hw-acc); border:1px solid var(--hw-line); border-radius:7px; padding:4px 6px; }
.csh-hw-stu .who b{ display:block; font-size:13.5px; color:var(--hw-text); }
.csh-hw-stu .who small{ display:block; font-size:11.5px; color:var(--hw-mute); font-weight:600; }
.csh-hw-stu .who > div{ min-width:0; flex:1; }
.csh-hw-stu .seen{ font-size:15px; opacity:.25; filter:grayscale(1); }
.csh-hw-stu .seen.on{ opacity:1; filter:none; }
.csh-hw-stu .st{ display:flex; gap:4px; flex-wrap:wrap; }
.csh-hw-stu .st button{ min-height:30px; padding:5px 9px; border-radius:7px; border:1px solid var(--hw-line); background:transparent; color:var(--hw-mute); font-size:11.5px; font-weight:700; cursor:pointer; white-space:nowrap; }
.csh-hw-stu .st button:hover{ color:var(--hw-text); }
.csh-hw-stu .st button.on{ color:#fff; }
.csh-hw-stu .st .s-submitted.on{ background:#2FB67C; border-color:#2FB67C; }
.csh-hw-stu .st .s-late.on{ background:#D99A1E; border-color:#D99A1E; }
.csh-hw-stu .st .s-incomplete.on{ background:#E8913B; border-color:#E8913B; }
.csh-hw-stu .st .s-not_submitted.on{ background:#E5637A; border-color:#E5637A; }
.csh-hw-stu .st .s-excused.on{ background:#7D8AA3; border-color:#7D8AA3; }
.csh-hw-stu .more{ display:flex; gap:8px; align-items:center; }
.csh-hw-stu .mk{ display:flex; align-items:center; gap:4px; flex:0 0 auto; font-size:12px; color:var(--hw-mute); font-weight:700; }
.csh-hw-stu .mk input{ width:68px !important; min-height:34px !important; text-align:center; }
.csh-hw-stu .more input[data-rm]{ min-height:34px; }
.csh-hw-savebar{ position:sticky; bottom:10px; z-index:5; display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:10px 12px; margin-top:-60px; border-radius:12px; background:var(--hw-card); border:1px solid var(--hw-line); box-shadow:0 8px 28px rgba(0,0,0,.28); font-size:12.5px; font-weight:700; color:var(--hw-mute); }
.csh-hw-savebar.dirty{ border-color:var(--hw-warn); color:var(--hw-text); }

/* modal */
body.csh-hw-lock{ overflow:hidden; }
.csh-hw-ov{ position:fixed; inset:0; background:rgba(0,0,0,.62); z-index:100000; }
.csh-hw-modal{ position:fixed; z-index:100001; top:50%; left:50%; transform:translate(-50%,-50%); width:min(760px, calc(100vw - 24px)); max-height:calc(100vh - 32px); display:flex; flex-direction:column; background:var(--hw-bg); border:1px solid var(--hw-line); border-radius:16px; box-shadow:0 24px 70px rgba(0,0,0,.5); overflow:hidden; }
.csh-hw-modal[hidden], .csh-hw-ov[hidden]{ display:none; }
.csh-hw-m-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--hw-line); font-size:15px; color:var(--hw-text); }
.csh-hw-m-head .x{ background:none; border:none; color:var(--hw-mute); font-size:24px; line-height:1; cursor:pointer; }
.csh-hw-m-body{ padding:16px 18px; overflow:auto; }
.csh-hw-m-foot{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:12px 18px; border-top:1px solid var(--hw-line); }
.csh-hw-m-foot .grow{ flex:1; }
.csh-hw-chk{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:var(--hw-text); cursor:pointer; }
.csh-hw-seg{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.csh-hw-seg button{ flex:1 1 auto; min-height:36px; padding:7px 10px; border-radius:9px; border:1px solid var(--hw-line); background:var(--hw-card); color:var(--hw-mute); font-weight:700; font-size:12.5px; cursor:pointer; }
.csh-hw-seg button.on{ border-color:var(--hw-acc); color:var(--hw-text); background:color-mix(in srgb, var(--hw-acc) 16%, var(--hw-card)); }
.csh-hw-form{ display:grid; grid-template-columns:1fr 1fr; gap:12px 14px; }
.csh-hw-span2{ grid-column:1 / -1; }
.csh-hw-quick{ display:flex; gap:4px; flex-wrap:wrap; margin-top:5px; }
.csh-hw-quick button{ border:1px solid var(--hw-line); background:transparent; color:var(--hw-mute); border-radius:6px; font-size:11px; font-weight:700; padding:3px 7px; cursor:pointer; }
.csh-hw-quick button:hover{ color:var(--hw-text); border-color:var(--hw-acc); }
.csh-hw-count{ align-self:flex-end; font-size:10.5px; color:var(--hw-mute); font-weight:600; }
.csh-hw-hint{ font-size:11px; color:var(--hw-mute); font-weight:500; }
.csh-hw-note{ font-size:12.5px; color:var(--hw-mute); font-weight:600; padding-top:4px; }
.csh-hw-note b{ color:var(--hw-text); }
.csh-hw-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.csh-hw-chips button{ min-height:32px; padding:5px 12px; border-radius:999px; border:1px solid var(--hw-line); background:var(--hw-card); color:var(--hw-mute); font-weight:700; font-size:12.5px; cursor:pointer; }
.csh-hw-chips button.on{ background:var(--hw-acc); border-color:var(--hw-acc); color:#fff; }
.csh-hw-drop{ border:1.5px dashed var(--hw-line); border-radius:12px; padding:16px; text-align:center; cursor:pointer; display:flex; flex-direction:column; gap:4px; background:var(--hw-card); }
.csh-hw-drop b{ font-size:13px; color:var(--hw-text); }
.csh-hw-drop u{ color:var(--hw-acc); }
.csh-hw-drop small{ font-size:11.5px; color:var(--hw-mute); font-weight:500; }
.csh-hw-drop.over{ border-color:var(--hw-acc); background:color-mix(in srgb, var(--hw-acc) 10%, var(--hw-card)); }
.csh-hw-up{ display:flex; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--hw-line); border-radius:9px; margin-top:6px; background:var(--hw-card); }
.csh-hw-up .ic{ font-size:18px; }
.csh-hw-up .nm{ flex:1; min-width:0; font-size:12.5px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.csh-hw-up .nm small{ display:block; font-size:11px; color:var(--hw-mute); font-weight:600; }
.csh-hw-up.busy{ opacity:.7; }
.csh-hw-up.err{ border-color:var(--hw-bad); }
.csh-hw-up.err small{ color:var(--hw-bad); }
.csh-hw-up button{ background:none; border:none; color:var(--hw-mute); font-size:20px; cursor:pointer; line-height:1; }
.csh-hw-toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:100002; background:var(--ink, #16233D); color:#fff; padding:10px 18px; border-radius:10px; font-weight:700; font-size:13px; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:opacity .4s; }
.csh-hw-toast.out{ opacity:0; }

@media (max-width:760px){
  .csh-hw-stu{ grid-template-columns:1fr; }
  .csh-hw-form{ grid-template-columns:1fr; }
  .csh-hw-grid{ grid-template-columns:1fr; }
  .csh-hw-checkbar input[type=search]{ width:100%; }
  .csh-hw-mine{ margin-left:0; }
  .csh-hw-modal{ top:auto; bottom:0; transform:translateX(-50%); width:100vw; max-height:92vh; border-radius:16px 16px 0 0; }
  .csh-hw-kpi b{ font-size:20px; }
}

/* ---------- Parent / Student App ---------- */
.csh-hwp-tabs{ display:flex; gap:6px; margin:4px 0 12px; }
.csh-hwp-tabs button{ flex:1; min-height:38px; border-radius:10px; border:1px solid var(--hw-line); background:var(--hw-card); color:var(--hw-mute); font-weight:800; font-size:13px; cursor:pointer; }
.csh-hwp-tabs button.on{ background:var(--hw-acc); border-color:var(--hw-acc); color:#fff; }
.csh-hwp-tabs button i{ font-style:normal; font-size:11px; margin-left:4px; opacity:.85; }
.csh-hwp-list{ display:flex; flex-direction:column; gap:10px; }
.csh-hwp-item{ --tc:#3987e5; position:relative; background:var(--hw-card); border:1px solid var(--hw-line); border-radius:14px; padding:12px 14px 12px 17px; overflow:hidden; }
.csh-hwp-item::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--tc); }
.csh-hwp-item .top{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.csh-hwp-item h4{ margin:8px 0 2px; font-size:15px; font-weight:800; color:var(--hw-text); line-height:1.3; }
.csh-hwp-item .sub{ font-size:12px; color:var(--hw-mute); font-weight:600; }
.csh-hwp-item .new{ font-size:10px; font-weight:800; color:#fff; background:#E5637A; padding:2px 7px; border-radius:99px; }
.csh-hwp-item button.open{ all:unset; display:block; width:100%; cursor:pointer; }
.csh-hwp-body{ display:flex; flex-direction:column; gap:10px; margin-top:10px; padding-top:10px; border-top:1px solid var(--hw-line); }
.csh-hwp-check{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12.5px; font-weight:700; padding:9px 11px; border-radius:10px; background:color-mix(in srgb, var(--hw-line) 30%, transparent); }
.csh-hwp-check .pill{ padding:3px 9px; border-radius:99px; color:#fff; font-size:11.5px; }
.csh-hwp-check .p-submitted{ background:#2FB67C; } .csh-hwp-check .p-late{ background:#D99A1E; } .csh-hwp-check .p-incomplete{ background:#E8913B; }
.csh-hwp-check .p-not_submitted{ background:#E5637A; } .csh-hwp-check .p-excused{ background:#7D8AA3; } .csh-hwp-check .p-none{ background:transparent; color:var(--hw-mute); border:1px solid var(--hw-line); }
.csh-hwp-check .rm{ flex-basis:100%; color:var(--hw-mute); font-weight:600; }
.csh-hwp .csh-hw-file .nm{ max-width:200px; }
/*53b956e7af*/
