/* IA Moderation (TripleMark) */
#ia-mark-form input[type="number"]{width:76px; padding:6px 8px; text-align:center; font-family:var(--f-mono)}
#ia-release-form input[type="number"]{width:76px; padding:6px 8px; text-align:center; font-family:var(--f-mono)}
#ia-text{width:100%}
.cal-card details summary{color:var(--hema); font-weight:600}
.cal-card table td .chip{white-space:nowrap}
/* ia.js is self-contained: it owns its toast element and the class picker in its list header */
.lt-ia-toast{position:fixed; left:50%; bottom:calc(20px + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); background:var(--ink); color:var(--bg); padding:10px 16px; border-radius:8px; font-size:.88rem; font-weight:700; z-index:20; max-width:92vw; text-align:center}
.lt-ia-toast[hidden]{display:none}
#ia-class-pick{width:auto; max-width:240px; padding:6px 8px}

/* Class discussion (discussion.js) */
.disc-banner{background:var(--card,#f6f1e7); border:1px solid var(--line,#ddd); border-radius:10px; padding:10px 12px; font-size:.88rem; margin:12px 0}
.disc-setup{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:10px 0; font-size:.9rem}
.disc-classpick{display:block; margin:10px 0; font-size:.9rem}
.disc-classpick select{margin-left:6px}
.disc-attention{border:1px solid var(--warn,#c98a00); border-radius:10px; padding:10px 12px; margin:12px 0}
.disc-attention h3{margin:0 0 8px; font-size:1rem}
.disc-att-item{padding:8px 0; border-top:1px solid var(--line,#ddd)}
.disc-composer{margin:12px 0}
.disc-composer textarea{width:100%}
.disc-post{border:1px solid var(--line,#ddd); border-radius:10px; padding:12px; margin:12px 0; background:var(--bg,#fff)}
.disc-shared{border-left:4px solid var(--hema,#7a4fd0)}
.disc-hidden{opacity:.55}
.disc-meta{font-size:.85rem; margin-bottom:4px}
.disc-role{font-size:.72rem; border:1px solid var(--line,#bbb); border-radius:999px; padding:1px 7px; vertical-align:middle}
.disc-role-shared{border-color:var(--hema,#7a4fd0); color:var(--hema,#7a4fd0)}
.disc-time{color:var(--muted,#777)}
.disc-flag{font-size:.72rem; border-radius:999px; padding:1px 7px; background:var(--surface-2)}
.disc-flag-hidden{background:var(--warn-soft)}
.disc-flag-rep{background:var(--crit-soft)}
.disc-body{white-space:pre-wrap; font-size:.93rem; overflow-wrap:anywhere}
.disc-orig{font-size:.8rem; color:var(--muted,#777); margin-top:6px; white-space:pre-wrap}
.disc-row{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:8px}
.disc-mini{background:none; border:1px solid var(--line,#ccc); border-radius:999px; padding:2px 10px; font-size:.8rem; cursor:pointer; color:inherit}
.disc-mini.armed{background:#f3d2c2}
.disc-liked{border-color:var(--hema,#7a4fd0); color:var(--hema,#7a4fd0); font-weight:700}
.disc-comments{margin-top:10px; border-top:1px dashed var(--line,#ddd); padding-top:8px}
.disc-comment{padding:8px 0; border-top:1px solid var(--line,#eee)}
.disc-comment:first-child{border-top:none}
.disc-commentbox{display:flex; gap:8px; margin-top:8px}
.disc-comment-input{flex:1}
.disc-locked-note{font-size:.85rem; color:var(--muted,#777); margin:8px 0 0}
.disc-edittext{width:100%}

/* ---- F22: marking panel, strands, scoring sheet, My IA ---- */
.ia-mkrow{border-top:1px solid var(--line); padding:10px 0}
.ia-mkrow:first-of-type{border-top:none}
.ia-mkhead{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px}
.ia-taps{display:flex; gap:6px}
.ia-tap{flex:1; min-height:44px; min-width:44px; border:1px solid var(--line); background:var(--surface); border-radius:10px; font:inherit; font-weight:700; cursor:pointer; color:var(--ink)}
.ia-tap.on{background:var(--hema); border-color:var(--hema); color:var(--on-hema)}
.ia-cmt{margin-top:8px}
.ia-cmt summary{cursor:pointer; font-size:.88rem; font-weight:600; min-height:32px; padding:6px 0}
.ia-cmt input{width:100%; margin-top:6px}
.ia-report{font-family:inherit; max-height:none; white-space:pre-wrap; font-size:.95rem; line-height:1.55}
.ia-strands{margin-top:6px}
.ia-strand{font-size:.88rem; margin:4px 0}
.ia-strand .chip{margin-right:4px}
.ia-watch ul{margin:6px 0 0; padding-left:18px; font-size:.9rem}
.ia-watch li{margin:4px 0}
.ia-sectswitch{display:none}
.ia-pdfdrop{display:flex; flex-direction:column; gap:8px; border:2px dashed var(--line); border-radius:var(--r); padding:22px 16px; text-align:center; cursor:pointer; font-weight:700}
.ia-pdfdrop input{margin:0 auto}
.ia-newver{margin-top:14px}
.ia-newver > summary{cursor:pointer; font-weight:700; font-size:1.02rem; padding:10px 0; min-height:44px}
@media (max-width:700px){
  .ia-savebar{position:sticky; bottom:84px; background:var(--surface); padding:10px 0; border-top:1px solid var(--line); z-index:5}
  .ia-savebar .btn{width:100%; min-height:48px}
  .ia-sectswitch{display:flex; gap:8px; margin:0 0 10px}
  .ia-sectswitch .btn{flex:1; min-height:44px}
  .ia-sectswitch .btn[aria-pressed="true"]{background:var(--hema); color:var(--on-hema); border-color:var(--hema)}
  #ia-detail[data-sect="report"] [data-sect-panel="marks"]{display:none}
  #ia-detail[data-sect="marks"] [data-sect-panel="report"]{display:none}
  .disc-mini, .disc-chipbtn{min-height:44px; padding:10px 14px}
  .disc-act{min-height:44px; min-width:44px}
}
/* Class discussion reading column */
.disc-col{max-width:720px}

/* ---- F22: discussion polish ---- */
.disc-menu{display:inline-block; position:relative}
.disc-menu summary{list-style:none; cursor:pointer; min-width:44px; min-height:32px; display:inline-flex; align-items:center; justify-content:center; font-weight:700; border:1px solid var(--line); border-radius:99px; padding:2px 10px; background:var(--surface)}
.disc-menu summary::-webkit-details-marker{display:none}
.disc-menu-items{display:inline-flex; gap:6px; margin-left:6px}
.disc-flash{animation:disc-flash 2s ease-out}
@keyframes disc-flash{0%{background:var(--hema-soft, rgba(67,52,163,.18))}100%{background:transparent}}
.disc-composer textarea{min-height:44px; transition:min-height .15s ease}
.disc-composer textarea:focus{min-height:96px}
.disc-more{margin:4px 0}
.disc-commentbox{margin-top:8px}

/* F27 moderation cases */
.mod-mblock{margin:10px 0}
.mod-mrow{display:flex;gap:10px;align-items:baseline;padding:3px 0;font-size:.88rem;flex-wrap:wrap}
.mod-mname{font-weight:600;min-width:140px}
.mod-mval{font-variant-numeric:tabular-nums}
.mod-mcom{color:var(--muted,#5b6478);font-size:.82rem;flex:1;min-width:180px}
.mod-table{border-collapse:collapse;width:100%;font-size:.88rem}
.mod-table th,.mod-table td{border:1px solid var(--line,#e3e6ef);padding:6px 8px;text-align:left;font-variant-numeric:tabular-nums}
.mod-table thead th{background:var(--hema-soft)}
.mod-table tr.mod-flag td{background:var(--warn-soft)}
.mod-grade{margin:12px 0}
.mod-grow{display:flex;gap:8px;align-items:center;margin:6px 0;flex-wrap:wrap}
.mod-gname{min-width:170px;font-size:.88rem}
.mod-gm{width:84px}
.mod-gc{flex:1;min-width:180px}
.mod-assign{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:8px 0}
.mod-assign .f{margin:0}
.mod-thr{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0;font-size:.86rem}
.mod-thr input[type=number]{width:76px}
.mod-notes{margin:12px 0}
.mod-noteadd{display:flex;gap:8px;margin-top:6px}
.mod-noteadd input{flex:1}
.mod-final{margin:12px 0;border-top:2px solid var(--line,#e3e6ef);padding-top:10px}

/* F28 discussion refresh */
.disc-hero{background:linear-gradient(100deg,#3730a3 0%,#4f46e5 45%,#0d9488 100%);color:#fff;border-radius:14px;padding:16px 18px;margin:0 0 10px}
.disc-hero h2{color:#fff;margin:0 0 2px;font-size:1.35rem}
.disc-hero p{margin:0;opacity:.92;font-size:.92rem}
.disc-banner{background:var(--warn-soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:.85rem}
.disc-post{transition:box-shadow .15s ease,transform .15s ease}
.disc-post:hover{box-shadow:0 6px 18px rgba(27,32,64,.12);transform:translateY(-1px)}
.disc-teacher{background:var(--warn-soft)}
.disc-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.78rem;font-weight:700;color:#26304d;margin-right:6px;vertical-align:-6px}
.disc-cat{display:inline-block;border:1px solid;border-radius:999px;padding:0 8px;font-size:.72rem;font-weight:600;color:#26304d;margin-left:6px}
.disc-replies{font-size:.78rem;color:var(--muted,#5b6478);margin-left:6px}
.disc-filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.disc-fchip{border:1.5px solid var(--line);background:var(--surface-2);border-radius:999px;padding:5px 12px;font-size:.82rem;font-weight:600;color:var(--ink);cursor:pointer;min-height:34px}
.disc-fchip.on{outline:2px solid var(--hema);outline-offset:1px}
.disc-catpick{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}
.disc-forq{background:var(--hema-soft);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.85rem;margin:6px 0}
.disc-drop{outline:2.5px dashed #4f46e5;outline-offset:-4px}
.disc-drop-hint{font-size:.78rem}
.disc-pstrip{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.disc-pfile{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:4px 6px;font-size:.8rem}
.disc-pfile img{width:30px;height:30px;object-fit:cover;border-radius:5px}
.disc-atts{margin:8px 0;display:flex;flex-direction:column;gap:6px}
.disc-att-imgwrap{margin:0}
.disc-att-img{max-width:100%;max-height:360px;width:auto;border-radius:10px;cursor:zoom-in;display:block}
.disc-att-imgwrap figcaption{font-size:.75rem;color:var(--muted,#5b6478);margin-top:2px}
.disc-att-card{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.disc-att-icon{background:#26304d;color:#fff;border-radius:6px;font-size:.68rem;font-weight:700;padding:3px 6px;letter-spacing:.04em}
.disc-att-name{flex:1;font-size:.86rem;min-width:0;overflow-wrap:anywhere}
.disc-att-name small{display:block;color:var(--muted,#5b6478)}
.disc-att-del{align-self:flex-start}
.disc-prog{background:var(--good-soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:8px 0;font-size:.88rem}
.disc-prog-done{background:var(--good-soft)}
.disc-prog-badge{background:#2e7d43;color:#fff;border-radius:999px;padding:1px 9px;font-size:.74rem;font-weight:700}
.disc-prog-hint{font-size:.78rem;margin-top:4px}
.disc-progtable{margin:8px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.disc-prow{display:grid;grid-template-columns:1.4fr .6fr .8fr 1fr auto;gap:8px;align-items:center;padding:6px 10px;font-size:.86rem;background:var(--surface);border-top:1px solid var(--line)}
.disc-prow-head{background:var(--hema-soft);font-weight:700;border-top:none}
.disc-pname{font-weight:600}
.disc-lightbox{position:fixed;inset:0;background:rgba(10,12,26,.88);z-index:200;display:flex;align-items:center;justify-content:center}
.disc-lightbox[hidden]{display:none}
.disc-lightbox img{max-width:94vw;max-height:92vh;border-radius:10px}
.disc-lb-x{position:absolute;top:14px;right:16px;background:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:1rem;cursor:pointer}
@media (max-width:680px){
  .disc-prow{grid-template-columns:1.2fr .5fr .7fr 1fr;gap:6px;font-size:.8rem}
  .disc-prow .disc-mini{min-height:36px}
  .disc-att-img{max-width:100%}
}

/* F30 — MYP Grade Moderation */
.myp-task { display:block; width:100%; text-align:left; cursor:pointer; }
.myp-task b { display:block; font-size:1.02rem; margin:4px 0; }
.myp-band { border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:8px 0; }
.myp-band-h { font-weight:700; margin-bottom:4px; }
.myp-band p { margin:3px 0; font-size:.9rem; }
.myp-strand { margin:10px 0; }
.myp-strand summary { cursor:pointer; }
.myp-lock { border-left:4px solid var(--hema, #2f7f6f); }
.myp-warn { background:var(--warn-soft); border-radius:10px; padding:8px 12px; font-size:.88rem; }
.myp-cmp td, .myp-cmp th { text-align:center; }
.myp-cmp td:first-child, .myp-cmp th:first-child { text-align:left; }
.myp-d1 td { background:var(--warn-soft); }
.myp-d2 td { background:var(--crit-soft); }
.myp-just { font-size:.8rem; margin-top:4px; }
.myp-sugg { background:var(--hema-soft, #e4f0ec); border-radius:12px; padding:10px 14px; margin-top:10px; }
.myp-sugg ul { margin:6px 0; padding-left:18px; }
.myp-notes { margin-top:10px; }
.myp-note { background:var(--surface-2, #f4f6f8); border-radius:10px; padding:8px 12px; font-size:.9rem; }
.myp-grow { border-bottom:1px dashed var(--line); padding-bottom:8px; margin-bottom:8px; }
.myp-print { display:none; }
@media print { .myp-print { display:block; } }
