/* Assignment Student Status (CRM view-assignment-student-status). The view root also carries .asg-portal-view, so it shares the Reviews pages' navy background. */
.ast-view { --ast-ok:#34d399; --ast-warn:#fbbf24; --ast-info:#60a5fa; --ast-prog:#a78bfa; --ast-bad:#f87171; --ast-mute:#94a3b8; --ast-line:rgba(255,255,255,.09); }
.ast-view h1, .ast-view h2 { margin:0; color:#fff; }
.ast-view .ast-head { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.ast-view .ast-head h1 { font-size:24px; font-weight:800; letter-spacing:-.01em; }
.ast-view .ast-head p { margin:3px 0 0; color:#94a3b8; font-size:13px; line-height:1.4; }
.ast-view .ast-head-ico { width:48px; height:48px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#6366f1,#3b82f6); box-shadow:0 8px 24px rgba(99,102,241,.35); }

.ast-view .ast-tabs { display:flex; gap:10px; margin-bottom:14px; }
.ast-view .ast-tab { flex:0 1 210px; padding:12px 18px; border-radius:12px; border:1px solid var(--ast-line); background:rgba(255,255,255,.05); color:#cbd5e1; font:700 15px inherit; font-family:inherit; cursor:pointer; transition:all .15s; }
.ast-view .ast-tab:hover { background:rgba(255,255,255,.09); }
.ast-view .ast-tab.on { color:#fff; border-color:rgba(129,140,248,.6); background:linear-gradient(135deg,#6366f1,#3b82f6); box-shadow:0 10px 26px rgba(79,70,229,.4); }

.ast-view .ast-scope { display:flex; align-items:center; gap:14px 18px; flex-wrap:wrap; padding:12px 16px; margin-bottom:12px; border-radius:14px; border:1px solid rgba(129,140,248,.4); background:rgba(99,102,241,.08); }
.ast-view .ast-scope-field { display:flex; align-items:center; gap:10px; }
.ast-view .ast-scope-ico { color:#a5b4fc; display:flex; }
.ast-view .ast-scope-static { font-size:14px; font-weight:700; color:#fff; padding:6px 0; }
.ast-view .ast-scope-note { flex:1 1 220px; color:#94a3b8; font-size:12.5px; border-left:1px solid var(--ast-line); padding-left:16px; }
.ast-view .ast-lbl { font-size:11.5px; color:#94a3b8; font-weight:600; margin-bottom:4px; }

.ast-view .ast-filters { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; padding:12px 16px; margin-bottom:12px; border-radius:14px; border:1px solid var(--ast-line); background:rgba(255,255,255,.04); }
.ast-view .ast-fld { min-width:0; }
.ast-view .ast-grow { flex:1 1 240px; }
.ast-view .ast-sel, .ast-view .ast-inp { width:100%; min-width:170px; padding:9px 12px; border-radius:10px; border:1px solid rgba(255,255,255,.14); background:rgba(15,23,42,.8); color:#fff; font:600 13.5px inherit; font-family:inherit; outline:none; }
.ast-view .ast-inp { font-weight:500; }
.ast-view .ast-sel:focus, .ast-view .ast-inp:focus { border-color:#818cf8; box-shadow:0 0 0 3px rgba(129,140,248,.2); }
.ast-view .ast-btn { display:inline-flex; align-items:center; gap:8px; padding:9px 18px; border-radius:10px; border:1px solid rgba(96,165,250,.5); background:rgba(59,130,246,.12); color:#e0f2fe; font:700 13.5px inherit; font-family:inherit; cursor:pointer; }
.ast-view .ast-btn:hover { background:rgba(59,130,246,.25); }

.ast-view .ast-kpis { display:grid; gap:12px; margin-bottom:14px; }
.ast-view .ast-k5 { grid-template-columns:repeat(5,1fr); } .ast-view .ast-k6 { grid-template-columns:repeat(6,1fr); }
.ast-view .ast-kpi { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:14px; border:1px solid var(--ast-line); background:rgba(255,255,255,.05); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); min-width:0; }
.ast-view .ast-kpi-ico { width:46px; height:46px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.ast-view .ast-i-ok { background:rgba(52,211,153,.14); color:var(--ast-ok); } .ast-view .ast-i-warn { background:rgba(251,191,36,.14); color:var(--ast-warn); }
.ast-view .ast-i-info { background:rgba(96,165,250,.14); color:var(--ast-info); } .ast-view .ast-i-prog { background:rgba(167,139,250,.16); color:var(--ast-prog); } .ast-view .ast-i-mute { background:rgba(148,163,184,.14); color:#cbd5e1; }
.ast-view .ast-kpi-l { font-size:12px; color:#94a3b8; font-weight:600; white-space:nowrap; }
.ast-view .ast-kpi-v { font-size:23px; font-weight:800; color:#fff; display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; }
.ast-view .ast-kpi-sub { font-size:11px; font-weight:700; padding:1px 7px; border-radius:100px; background:rgba(255,255,255,.08); color:#cbd5e1; }
.ast-view .ast-s-ok { color:var(--ast-ok); } .ast-view .ast-s-warn { color:var(--ast-warn); } .ast-view .ast-s-info { color:var(--ast-info); } .ast-view .ast-s-prog { color:var(--ast-prog); }

.ast-view .ast-main { display:grid; grid-template-columns:minmax(270px,30%) minmax(0,1fr); gap:14px; align-items:start; }
.ast-view .ast-main > * { min-width:0; }   /* a wide table must scroll inside its card, never stretch the grid */
.ast-view .ast-card { border-radius:16px; border:1px solid var(--ast-line); background:rgba(255,255,255,.04); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); padding:16px; }
.ast-view .ast-card-h { display:flex; align-items:center; gap:8px; font-weight:800; font-size:14.5px; color:#fff; margin-bottom:12px; }
.ast-view .ast-stulist { display:flex; flex-direction:column; gap:6px; }
.ast-view .ast-stu { display:flex; align-items:center; gap:10px; width:100%; text-align:left; padding:9px 10px; border-radius:11px; border:1px solid transparent; background:transparent; color:inherit; font-family:inherit; cursor:pointer; transition:background .15s; }
.ast-view .ast-stu:hover { background:rgba(255,255,255,.05); }
.ast-view .ast-stu.on { background:rgba(99,102,241,.14); border-color:rgba(129,140,248,.65); }
.ast-view .ast-av { width:38px; height:38px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:#fff; }
.ast-view .ast-av-l { width:54px; height:54px; border-radius:12px; font-size:19px; }
.ast-view .ast-stu-m { flex:1; min-width:0; display:flex; flex-direction:column; }
.ast-view .ast-stu-n { font-size:13.5px; font-weight:700; color:#f1f5f9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ast-view .ast-stu-c { font-size:11.5px; color:#94a3b8; }
.ast-view .ast-stu-p { width:78px; flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.ast-view .ast-pct { font-size:12px; font-weight:700; color:#e2e8f0; }
.ast-view .ast-bar { display:block; width:100%; height:6px; border-radius:100px; background:rgba(255,255,255,.1); overflow:hidden; }
.ast-view .ast-bar i { display:block; height:100%; border-radius:100px; }
.ast-view .ast-bar i.hi { background:linear-gradient(90deg,#10b981,#34d399); } .ast-view .ast-bar i.mid { background:linear-gradient(90deg,#f59e0b,#fbbf24); } .ast-view .ast-bar i.lo { background:#64748b; }
.ast-view .ast-bar-l { height:9px; flex:1; }
.ast-view .ast-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-top:12px; padding-top:12px; border-top:1px solid var(--ast-line); font-size:12px; color:#94a3b8; }
.ast-view .ast-pgs { display:flex; align-items:center; gap:5px; }
.ast-view .ast-pg { min-width:30px; height:30px; padding:0 8px; border-radius:8px; border:1px solid var(--ast-line); background:rgba(255,255,255,.05); color:#cbd5e1; font:600 12.5px inherit; font-family:inherit; cursor:pointer; }
.ast-view .ast-pg.on { background:#6366f1; border-color:#818cf8; color:#fff; } .ast-view .ast-pg:disabled { opacity:.35; cursor:default; } .ast-view .ast-gap { color:#64748b; }

.ast-view .ast-dh { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.ast-view .ast-dh-m { flex:1 1 220px; min-width:0; }
.ast-view .ast-dh-m h2 { font-size:21px; font-weight:800; }
.ast-view .ast-dh-s { font-size:12.5px; color:#94a3b8; margin-top:2px; }
.ast-view .ast-infos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.ast-view .ast-info { display:flex; align-items:center; gap:10px; padding:11px 13px; border-radius:12px; border:1px solid var(--ast-line); background:rgba(255,255,255,.04); min-width:0; }
.ast-view .ast-info-ico { width:36px; height:36px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#a5b4fc; background:rgba(99,102,241,.14); }
.ast-view .ast-info-l { font-size:11.5px; color:#94a3b8; font-weight:600; }
.ast-view .ast-info-v { font-size:14px; font-weight:700; color:#fff; overflow-wrap:anywhere; }
.ast-view .ast-stats { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:10px; margin-bottom:10px; }
.ast-view .ast-stat { display:flex; flex-direction:column; justify-content:center; gap:3px; padding:13px 16px; border-radius:12px; border:1px solid var(--ast-line); background:rgba(255,255,255,.04); min-width:0; }
.ast-view .ast-stat-star { flex-direction:row; align-items:center; gap:12px; }
.ast-view .ast-stat-l { font-size:12.5px; color:#cbd5e1; font-weight:600; }
.ast-view .ast-stat-v { font-size:25px; font-weight:800; color:#fff; } .ast-view .ast-stat-v small { font-size:15px; font-weight:600; color:#94a3b8; }
.ast-view .ast-stat-s { font-size:12px; color:#94a3b8; text-align:right; }
.ast-view .ast-prog { display:flex; align-items:center; gap:12px; } .ast-view .ast-prog b { font-size:25px; font-weight:800; color:#fff; }
.ast-view .ast-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.ast-view .ast-chip { font-size:12px; font-weight:700; padding:4px 11px; border-radius:100px; border:1px solid var(--ast-line); }
.ast-view .ast-chip.ast-ok { color:var(--ast-ok); background:rgba(52,211,153,.1); } .ast-view .ast-chip.ast-warn { color:var(--ast-warn); background:rgba(251,191,36,.1); }
.ast-view .ast-chip.ast-info { color:var(--ast-info); background:rgba(96,165,250,.1); } .ast-view .ast-chip.ast-prog { color:var(--ast-prog); background:rgba(167,139,250,.1); } .ast-view .ast-chip.ast-mute { color:#cbd5e1; background:rgba(148,163,184,.1); }

.ast-view .ast-sec { margin-top:6px; border-radius:14px; border:1px solid var(--ast-line); background:rgba(255,255,255,.025); padding:14px; }
.ast-view .ast-sec-h { font-size:14.5px; font-weight:800; color:#fff; margin-bottom:10px; }
.ast-view .ast-tw { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.ast-view .ast-table { width:100%; border-collapse:collapse; font-size:13px; min-width:720px; }
.ast-view .ast-table th { text-align:left; font-size:12px; font-weight:600; color:#94a3b8; padding:6px 10px; white-space:nowrap; }
.ast-view .ast-table td { padding:7px 10px; border-top:1px solid rgba(255,255,255,.05); color:#e2e8f0; vertical-align:middle; }
.ast-view .ast-table tbody tr:hover { background:rgba(255,255,255,.03); }
.ast-view .ast-table .r { text-align:right; font-variant-numeric:tabular-nums; } .ast-view .ast-table .c { text-align:center; } .ast-view .nw { white-space:nowrap; }
.ast-view .ast-sn { display:inline-block; min-width:34px; text-align:center; padding:3px 8px; border-radius:8px; background:rgba(255,255,255,.09); font-weight:800; font-size:12px; }
.ast-view .ast-eye { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; border:0; background:transparent; color:#cbd5e1; cursor:pointer; }
.ast-view .ast-eye:hover { background:rgba(255,255,255,.1); color:#fff; } .ast-view .ast-eye.off { opacity:.25; cursor:default; }
.ast-view .ast-pill { display:inline-flex; align-items:center; padding:3px 11px; border-radius:100px; font-size:12px; font-weight:700; white-space:nowrap; border:1px solid transparent; }
.ast-view .ast-pill.ast-ok { color:var(--ast-ok); background:rgba(52,211,153,.12); border-color:rgba(52,211,153,.3); }
.ast-view .ast-pill.ast-warn { color:var(--ast-warn); background:rgba(251,191,36,.14); border-color:rgba(251,191,36,.35); }
.ast-view .ast-pill.ast-info { color:var(--ast-info); background:rgba(96,165,250,.12); border-color:rgba(96,165,250,.3); }
.ast-view .ast-pill.ast-prog { color:var(--ast-prog); background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.32); }
.ast-view .ast-pill.ast-bad { color:var(--ast-bad); background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.3); }
.ast-view .ast-pill.ast-mute { color:#cbd5e1; background:rgba(148,163,184,.12); border-color:rgba(148,163,184,.25); }
.ast-view .ast-exam { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.ast-view .ast-empty { text-align:center; color:#94a3b8; font-size:13.5px; padding:34px 14px; }
.ast-view .ast-note { color:#94a3b8; font-size:12.5px; margin-bottom:8px; }

.ast-modal-ov { position:fixed; inset:0; z-index:9000; background:rgba(1,8,18,.72); display:flex; align-items:center; justify-content:center; padding:16px; }
.ast-modal { width:min(460px,100%); border-radius:16px; border:1px solid rgba(255,255,255,.14); background:#0f172a; color:#e2e8f0; padding:18px; box-shadow:0 30px 80px rgba(0,0,0,.55); }
.ast-modal-h { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:15px; color:#fff; }
.ast-modal-s { font-size:12.5px; color:#94a3b8; margin:3px 0 14px; }
.ast-mgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ast-modal .ast-info-l { font-size:11.5px; color:#94a3b8; font-weight:600; } .ast-modal .ast-info-v { font-size:14px; font-weight:700; color:#fff; }
.ast-fb { margin-top:4px; padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.05); font-size:13px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.ast-modal-f { display:flex; align-items:center; gap:7px; margin-top:14px; font-size:12px; color:#94a3b8; }
.ast-x { border:0; background:transparent; color:#94a3b8; font-size:16px; cursor:pointer; }
.ast-modal .ast-pill { display:inline-flex; padding:3px 11px; border-radius:100px; font-size:12px; font-weight:700; border:1px solid transparent; }
.ast-modal .ast-ok { color:#34d399; background:rgba(52,211,153,.12); border-color:rgba(52,211,153,.3); } .ast-modal .ast-warn { color:#fbbf24; background:rgba(251,191,36,.14); border-color:rgba(251,191,36,.35); }
.ast-modal .ast-info { color:#60a5fa; background:rgba(96,165,250,.12); border-color:rgba(96,165,250,.3); } .ast-modal .ast-prog { color:#a78bfa; background:rgba(167,139,250,.14); border-color:rgba(167,139,250,.32); }
.ast-modal .ast-bad { color:#f87171; background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.3); } .ast-modal .ast-mute { color:#cbd5e1; background:rgba(148,163,184,.12); border-color:rgba(148,163,184,.25); }

@media (max-width:1280px) { .ast-view .ast-k6 { grid-template-columns:repeat(3,1fr); } .ast-view .ast-k5 { grid-template-columns:repeat(3,1fr); } }
@media (max-width:1100px) { .ast-view .ast-infos { grid-template-columns:repeat(2,minmax(0,1fr)); } .ast-view .ast-stats { grid-template-columns:1fr 1fr; } .ast-view .ast-stat-wide { grid-column:1 / -1; } .ast-view .ast-exam { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .ast-view .ast-main { grid-template-columns:1fr; } }
@media (max-width:640px) {
  .ast-view .ast-head h1 { font-size:20px; } .ast-view .ast-tabs .ast-tab { flex:1; }
  .ast-view .ast-k6, .ast-view .ast-k5 { grid-template-columns:1fr 1fr; }
  .ast-view .ast-filters .ast-fld, .ast-view .ast-filters .ast-sel { width:100%; } .ast-view .ast-fld { flex:1 1 100%; } .ast-view .ast-btn { width:100%; justify-content:center; }
  .ast-view .ast-scope-note { border-left:0; padding-left:0; }
  .ast-view .ast-infos, .ast-view .ast-stats { grid-template-columns:1fr; } .ast-view .ast-exam { grid-template-columns:1fr 1fr; }
}
