html[data-students-view="new"] #studentsTab > *:not(#studentsTabNew) { display: none !important; }
html[data-students-view="old"] #studentsTabNew { display: none !important; }
html:not([data-students-view="new"]) #studentsTabNew { display: none !important; }

#studentsTabNew {
  --snv-ink:   #1A2332;
  --snv-mid:   #55606C;
  --snv-soft:  #8A94A0;
  --snv-rule:  #E3DDCB;
  --snv-rule-soft: #EEE9D8;
  --snv-paper: #FAFAF5;
  --snv-cream: #F6F1E3;
  --snv-navy:  #004272;
  --snv-navy-lt:#E6EEF5;

  /* Referral state palette */
  --ref-both-ink:   #5B1E1A;   /* Both system + teacher = most urgent */
  --ref-both-bg:    #F3DDD9;
  --ref-both-dot:   #A23A2E;

  --ref-sys-ink:    #7A5410;   /* System recommended */
  --ref-sys-bg:     #F5E8CD;
  --ref-sys-dot:    #B88420;

  --ref-tch-ink:    #1F4A74;   /* Teacher flagged */
  --ref-tch-bg:     #DFEAF4;
  --ref-tch-dot:    #3B6BA2;

  --ref-done-ink:   #2B5D4E;   /* Referred / enrolled */
  --ref-done-bg:    #DFEBE3;
  --ref-done-dot:   #4D856F;

  --ref-none-ink:   #6B7480;   /* No recommendation */
  --ref-none-bg:    #ECECE7;
  --ref-none-dot:   #9AA3AE;

  color: var(--snv-ink);
  font-family: Jost, sans-serif;
}

/* --- Top strip ------------------------------------------------------ */
.snv-top {
  display: flex; flex-direction: column; gap: 1rem;
  padding: 0;
  margin-bottom: 0;
}
.snv-top-row1 { display: flex; align-items: stretch; gap: 1rem; flex-wrap: wrap; }
.snv-top-row1 > .snv-scope { flex: 1 1 100%; min-width: 0; }

/* Scope bar: Year/Form filters + export actions */
.snv-scope {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  width: 100%;
  background: #fff;
  border: 1px solid var(--snv-rule);
  border-radius: 10px;
  padding: .7rem .9rem;
}
.snv-scope-group { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
/* Match Cohort Overview look: same wrapper / label / select treatment as .scope-control */
.snv-scope-ctl {
  display: inline-flex; align-items: center; gap: .5rem;
}
.snv-scope-ctl label {
  /* Mirrors skin-unify's .scope-control label */
  font-family: 'Inter', sans-serif;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--u-soft, #64748B);
  margin-right: .35rem;
}
.snv-scope-ctl select {
  /* Sizing only — font/padding/border/radius come from skin-unify !important */
  min-width: 140px;
  min-height: 40px;
  cursor: pointer;
}
.snv-scope-actions { display: inline-flex; gap: .5rem; flex-wrap: wrap; }
.snv-scope-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 34px; padding: 0 .85rem;
  background: var(--snv-navy); color: #fff;
  border: 1px solid var(--snv-navy);
  border-radius: 7px;
  font: 600 .8rem Jost, sans-serif;
  cursor: pointer;
  transition: background .12s;
}
.snv-scope-btn:hover { background: #0D5A91; border-color: #0D5A91; }
.snv-scope-btn svg { transform: rotate(180deg); flex-shrink: 0; }
.snv-scope-btn-alt { background: #2F6E64; border-color: #2F6E64; }
.snv-scope-btn-alt:hover { background: #265A52; border-color: #265A52; }

/* Summary numbers */
.snv-summary {
  display: flex; gap: 1.8rem; flex-wrap: wrap;
  padding: .15rem 0;
}
.snv-summary-item {
  display: flex; flex-direction: column; gap: .15rem;
  background: none; border: none; cursor: pointer; padding: .2rem 0;
  text-align: left;
  font-family: Jost, sans-serif;
}
.snv-summary-item:hover .snv-summary-label { color: var(--snv-ink); }
.snv-summary-num {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600; font-size: 1.8rem; line-height: 1;
  color: var(--snv-ink);
  font-variant-numeric: tabular-nums;
}
.snv-summary-label {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .78rem; color: var(--snv-mid);
  letter-spacing: .01em;
  transition: color .12s;
}
.snv-summary-dot { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.snv-summary-item[data-state="both"]     .snv-summary-num { color: var(--ref-both-ink); }
.snv-summary-item[data-state="both"]     .snv-summary-dot { background: var(--ref-both-dot); }
.snv-summary-item[data-state="system"]   .snv-summary-dot { background: var(--ref-sys-dot); }
.snv-summary-item[data-state="teacher"]  .snv-summary-dot { background: var(--ref-tch-dot); }
.snv-summary-item[data-state="referred"] .snv-summary-dot { background: var(--ref-done-dot); }

/* --- Filter row ---------------------------------------------------- */
.snv-filters {
  display: flex; gap: .5rem; align-items: center; flex-wrap: wrap;
  margin-bottom: 1.2rem;
}
.snv-search {
  display:flex; align-items:center; gap:.55rem;
  background: #fff; border: 1px solid var(--snv-rule);
  border-radius: 9px; padding: 0 .8rem; height: 38px;
  flex: 1 1 280px; min-width: 220px;
  transition: border-color .15s, box-shadow .15s;
}
.snv-search:focus-within {
  border-color: var(--snv-navy);
  box-shadow: 0 0 0 3px rgba(0,66,114,.08);
}
.snv-search svg { color: var(--snv-soft); flex-shrink: 0; }
.snv-search input {
  flex: 1; border:none; background:transparent; outline:none;
  font: 400 .92rem/1 Jost, sans-serif; color: var(--snv-ink);
}
.snv-search input::placeholder { color: var(--snv-soft); }
.snv-search-clear {
  background:none;border:none;cursor:pointer;padding:.3rem;
  color: var(--snv-soft); font-size:1.05rem; line-height:1;
  border-radius:6px; display:none;
}
.snv-search-clear.show { display:inline-flex; }

.snv-chip {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 38px; padding: 0 .9rem;
  border: 1px solid var(--snv-rule); background: #fff;
  border-radius: 9px; cursor: pointer;
  font: 500 .85rem Jost, sans-serif; color: var(--snv-ink);
  transition: border-color .15s, background .15s;
  white-space: nowrap;
}
.snv-chip:hover { border-color: var(--snv-ink); }
.snv-chip[data-active="true"] {
  background: var(--snv-ink); color: #fff; border-color: var(--snv-ink);
}
.snv-chip-dot { width: 8px; height: 8px; border-radius: 2px; }
.snv-chip-clear {
  margin-left: auto;
  background: none; border: none; cursor: pointer;
  color: var(--snv-soft); font: 400 .78rem Jost, sans-serif;
  text-decoration: underline; padding: .3rem .2rem;
}
.snv-chip-clear:hover { color: var(--snv-ink); }
.snv-chip-clear:disabled { opacity: 0; pointer-events: none; }

/* --- Tabs ----------------------------------------------------------- */
.snv-tabs {
  display: flex; flex-wrap: wrap;
  gap: .25rem;
  margin: .4rem 0 1rem;
  border-bottom: 1px solid var(--snv-rule);
  padding-bottom: 0;
}
.snv-tab {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .65rem .95rem .75rem;
  background: none; border: none; cursor: pointer;
  font: 500 .88rem Jost, sans-serif;
  color: var(--snv-mid);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  transition: color .12s, border-color .12s;
}
.snv-tab:hover { color: var(--snv-ink); }
.snv-tab[data-active="true"] {
  color: var(--snv-navy);
  border-bottom-color: var(--snv-navy);
  font-weight: 600;
}
.snv-tab-dot { width: 8px; height: 8px; border-radius: 2px; }
.snv-tab-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 20px; padding: 0 .4rem;
  border-radius: 999px;
  background: var(--snv-rule-soft);
  color: var(--snv-mid);
  font: 600 .72rem Jost, sans-serif;
  font-variant-numeric: tabular-nums;
}
.snv-tab[data-active="true"] .snv-tab-count {
  background: var(--snv-navy);
  color: #fff;
}

/* --- Flat list wrapper --------------------------------------------- */
.snv-list { display: block; }

/* --- Triage stack (legacy, retained if any renderer still emits) --- */
.snv-section { margin-bottom: 1.1rem; }
.snv-section-head {
  display: flex; align-items: center; gap: .65rem;
  padding: .55rem .2rem .55rem;
  cursor: pointer; user-select: none;
  border-bottom: 1px solid var(--snv-rule-soft);
  margin-bottom: .55rem;
}
.snv-section-chev {
  color: var(--snv-soft);
  transition: transform .15s;
  flex-shrink: 0;
}
.snv-section[data-open="false"] .snv-section-chev { transform: rotate(-90deg); }
.snv-section-dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.snv-section[data-state="both"]     .snv-section-dot { background: var(--ref-both-dot); }
.snv-section[data-state="system"]   .snv-section-dot { background: var(--ref-sys-dot); }
.snv-section[data-state="teacher"]  .snv-section-dot { background: var(--ref-tch-dot); }
.snv-section[data-state="referred"] .snv-section-dot { background: var(--ref-done-dot); }
.snv-section[data-state="none"]     .snv-section-dot { background: var(--ref-none-dot); }

.snv-section-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600; font-size: 1.05rem;
  color: var(--snv-ink);
}
.snv-section[data-state="both"]     .snv-section-title { color: var(--ref-both-ink); }
.snv-section[data-state="system"]   .snv-section-title { color: var(--ref-sys-ink); }
.snv-section[data-state="teacher"]  .snv-section-title { color: var(--ref-tch-ink); }
.snv-section[data-state="referred"] .snv-section-title { color: var(--ref-done-ink); }
.snv-section[data-state="none"]     .snv-section-title { color: var(--ref-none-ink); }

.snv-section-hint {
  font-size: .78rem; color: var(--snv-mid);
  margin-left: .2rem;
}
.snv-section-count {
  font: 500 .82rem Jost, sans-serif; color: var(--snv-soft);
  font-variant-numeric: tabular-nums;
  margin-left: auto;
}
.snv-section-body { display: block; }
.snv-section[data-open="false"] .snv-section-body { display: none; }

/* --- Student table ------------------------------------------------ */
.snv-table-wrap {
  background: #fff;
  border: 1px solid var(--snv-rule);
  border-radius: 10px;
  overflow: hidden;
}
.snv-table-meta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  padding: .5rem .2rem .5rem;
  font: 400 .78rem Jost, sans-serif;
  color: var(--snv-soft);
}
.snv-table-meta-left { display: inline-flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.snv-table-meta strong {
  font-weight: 600; color: var(--snv-ink);
}
.snv-table-meta-sort {
  display: inline-flex; align-items: center; gap: .4rem;
}
.snv-table-meta select {
  font: 500 .78rem Jost, sans-serif;
  background: #fff;
  border: 1px solid var(--snv-rule);
  border-radius: 5px;
  padding: .25rem .5rem;
  color: var(--snv-ink);
  cursor: pointer;
}

/* "How this table works" disclosure — matches the cohort domain-explainer pattern */
.snv-help-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-mid);
  font: 600 .76rem Jost, sans-serif;
  padding: .35rem .75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
}
.snv-help-btn:hover { background: var(--snv-navy-lt); border-color: var(--snv-navy); color: var(--snv-navy); }
.snv-help-btn[aria-expanded="true"] { background: var(--snv-navy-lt); color: var(--snv-navy); border-color: var(--snv-navy); }
.snv-help-btn .chev { font-size: .7rem; transition: transform .18s ease; line-height: 1; }
.snv-help-btn[aria-expanded="true"] .chev { transform: rotate(180deg); }

.snv-help-panel {
  display: none;
  margin: .5rem 0 1rem;
  padding: 1rem 1.2rem;
  background: var(--snv-paper);
  border: 1px solid var(--snv-rule);
  border-radius: 10px;
  font: 400 .86rem/1.55 Jost, sans-serif;
  color: var(--snv-mid);
  animation: snvExpandIn .18s ease;
}
.snv-help-panel[data-open="true"] { display: block; }
.snv-help-lede {
  color: var(--snv-ink);
  margin-bottom: 1rem;
  max-width: 75ch;
}
.snv-help-section {
  margin-bottom: 1rem;
}
.snv-help-section:last-child { margin-bottom: 0; }
.snv-help-section-title {
  font: 700 .9rem Jost, sans-serif;
  margin-bottom: .35rem;
  padding-bottom: .25rem;
  border-bottom: 2px solid currentColor;
  display: inline-block;
}
.snv-help-section[data-tone="thinking"]   .snv-help-section-title { color: #2A6EE5; }
.snv-help-section[data-tone="wellbeing"]  .snv-help-section-title { color: #C2423A; }
.snv-help-section[data-tone="engagement"] .snv-help-section-title { color: #2F6E64; }
.snv-help-section[data-tone="howto"]      .snv-help-section-title { color: var(--snv-ink); }
.snv-help-section[data-tone="legend"]     .snv-help-section-title { color: var(--snv-ink); }
.snv-help-item {
  padding-left: .6rem;
  margin-bottom: .35rem;
}
.snv-help-item:last-child { margin-bottom: 0; }
.snv-help-item strong { color: var(--snv-ink); font-weight: 700; }
.snv-help-sev {
  display: inline-flex; align-items: center; gap: .4rem;
  font: 600 .8rem Jost, sans-serif;
  padding: .1rem .5rem;
  border-radius: 5px;
  margin-right: .25rem;
}
.snv-help-sev-high { background: var(--ref-both-bg);  color: var(--ref-both-ink);  }
.snv-help-sev-mild { background: var(--ref-sys-bg);   color: var(--ref-sys-ink);   }
.snv-help-sev-ok   { background: var(--ref-done-bg);  color: var(--ref-done-ink);  }
.snv-help-sev-none { background: #ECECE7;             color: var(--snv-soft);      }
.snv-thead,
.snv-row {
  display: grid;
  grid-template-columns:
    36px                      /* Select checkbox */
    minmax(230px, 1.05fr)     /* Action (refer + PDF) */
    minmax(190px, 1.9fr)      /* Pupil */
    minmax(110px, 0.8fr)      /* Form */
    minmax(110px, 0.7fr)      /* Source */
    minmax(140px, 1fr)        /* Thinking */
    minmax(140px, 1fr)        /* Wellbeing */
    minmax(140px, 1fr);       /* Engagement */
  gap: 0;
  align-items: center;
}
.snv-thead {
  padding: 0;
  background: var(--snv-paper);
  border-bottom: 2px solid var(--snv-rule);
  font: 600 .7rem/1 Jost, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--snv-mid);
}
.snv-thead .snv-cell {
  padding: .75rem .9rem;
  display: flex; align-items: center; gap: .3rem;
}
.snv-thead .snv-th-right { justify-content: flex-end; }

.snv-row {
  min-height: 54px;
  padding: 0;
  border-bottom: 1px solid var(--snv-rule-soft);
  background: #fff;
  transition: background .08s;
  cursor: pointer;
}
.snv-row .snv-cell {
  padding: .55rem .9rem;
  display: flex; align-items: center;
  min-width: 0;
}
.snv-row:last-child { border-bottom: none; }
.snv-row:hover { background: var(--snv-paper); }
.snv-row:focus-within { background: var(--snv-navy-lt); }
.snv-row[data-selected="true"] { background: var(--snv-navy-lt); }
.snv-row[data-selected="true"]:hover { background: #DDE8F2; }

/* Select checkbox cell */
.snv-cell[data-col="select"] {
  padding: .5rem .25rem .5rem .8rem !important;
  justify-content: center;
}
.snv-check {
  appearance: none;
  -webkit-appearance: none;
  width: 18px; height: 18px;
  border: 1.5px solid var(--snv-rule);
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background .1s, border-color .1s;
}
.snv-check:hover { border-color: var(--snv-navy); }
.snv-check:checked {
  background: var(--snv-navy);
  border-color: var(--snv-navy);
}
.snv-check:checked::after {
  content: "";
  position: absolute; left: 4px; top: 1px;
  width: 6px; height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.snv-check:indeterminate {
  background: var(--snv-navy);
  border-color: var(--snv-navy);
}
.snv-check:indeterminate::after {
  content: "";
  position: absolute; left: 3px; top: 7px;
  width: 10px; height: 2px; background: #fff;
}

/* Row-level quick action button (report) */
.snv-quick {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-mid);
  cursor: pointer;
  margin-left: .4rem;
  flex-shrink: 0;
  transition: background .1s, border-color .1s, color .1s;
}
.snv-quick:hover {
  background: var(--snv-navy-lt);
  border-color: var(--snv-navy);
  color: var(--snv-navy);
}
.snv-quick svg { flex-shrink: 0; }

/* Inline toolbar — select-all + bulk actions, always visible above the table */
.snv-toolbar {
  display: flex; align-items: center; justify-content: flex-start;
  gap: .75rem; flex-wrap: wrap;
  padding: .55rem .75rem .55rem .85rem;
  background: #fff;
  border: 1px solid var(--snv-rule);
  border-radius: 10px 10px 0 0;
  border-bottom: none;
  margin: .25rem 0 0;
  transition: background .12s, border-color .12s;
}
.snv-toolbar[data-has-sel="true"] {
  background: var(--snv-navy-lt);
  border-color: var(--snv-navy);
}
.snv-toolbar-sel {
  display: inline-flex; align-items: center; gap: .55rem;
  font: 600 .85rem Jost, sans-serif;
  color: var(--snv-ink);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.snv-toolbar-sel .snv-check { margin: 0; }
.snv-toolbar-sel-text strong { color: var(--snv-navy); font-weight: 700; }
.snv-toolbar-sel::after {
  content: "";
  display: inline-block;
  width: 1px; height: 18px;
  background: var(--snv-rule);
  margin-left: .55rem;
}
.snv-toolbar-actions {
  display: inline-flex; gap: .4rem; flex-wrap: wrap;
}
.snv-tb-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 32px; padding: 0 .8rem;
  border-radius: 7px;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-ink);
  font: 600 .8rem Jost, sans-serif;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s, transform .08s;
}
.snv-tb-btn:hover:not(:disabled) { border-color: var(--snv-navy); color: var(--snv-navy); }
.snv-tb-btn:active:not(:disabled) { transform: translateY(1px); }
.snv-tb-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.snv-tb-btn svg { flex-shrink: 0; }
.snv-tb-btn-primary:not(:disabled) {
  background: var(--snv-navy);
  border-color: var(--snv-navy);
  color: #fff;
}
.snv-tb-btn-primary:not(:disabled):hover { background: #002E52; border-color: #002E52; color: #fff; }
.snv-tb-btn-refer:not(:disabled) {
  background: #F6F1E2;
  border-color: #E7D9A8;
  color: #5E4A14;
}
.snv-tb-btn-refer:not(:disabled):hover { background: #EFE5C0; border-color: #C8A94A; color: #4A3A0E; }
/* --- Recommend button + modal (comment m0060) --- */
.snv-refer.is-recommended {
  background: #EEF5FF;
  border-color: #B8D0F0;
  color: #2A4A7A;
}

/* === Send-to-parents modal === */
.stp-modal { background:#fff; border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.18); width:min(960px,96vw); max-height:92vh; display:flex; flex-direction:column; overflow:hidden; font:400 14px/1.5 Jost,sans-serif; }
.stp-modal-narrow { width:min(720px,96vw); }
.stp-head { display:flex; align-items:flex-start; justify-content:space-between; padding:1.2rem 1.4rem; border-bottom:1px solid var(--snv-rule,#e8e2d4); gap:1rem; }
.stp-head h2,.stp-head h3 { margin:0; font:600 1.1rem Jost,sans-serif; color:var(--snv-ink,#1A1A1A); }
.stp-sub { font-size:.82rem; color:var(--snv-soft,#6C6758); margin-top:.25rem; }
.stp-summary { display:flex; flex-wrap:wrap; gap:.5rem; padding:.75rem 1.4rem; background:#FAF7EE; border-bottom:1px solid var(--snv-rule-soft,#efe8d5); align-items:center; }
.stp-pill { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .7rem; border-radius:999px; font-size:.8rem; font-weight:500; border:1px solid transparent; }
.stp-pill strong { font-weight:700; }
.stp-pill-ok { background:#E8F4EA; border-color:#BFE1C7; color:#1F5A30; }
.stp-pill-warn { background:#FDF1E0; border-color:#F0D29C; color:#7A4D14; }
.stp-pill-block { background:#FBE8E6; border-color:#F1B8B0; color:#7A2418; }
.stp-summary-toolbar { margin-left:auto; display:flex; gap:.35rem; }
.stp-btn-link { background:none; border:none; color:var(--snv-navy,#0E5A8E); font:500 .82rem Jost,sans-serif; cursor:pointer; padding:.25rem .5rem; border-radius:6px; }
.stp-btn-link:hover { background:rgba(14,90,142,.08); text-decoration:underline; }
.stp-grid { display:grid; grid-template-columns:minmax(280px,360px) 1fr; flex:1; min-height:0; }
.stp-list { border-right:1px solid var(--snv-rule,#e8e2d4); overflow-y:auto; padding:.4rem; }
.stp-item { display:flex; align-items:center; gap:.6rem; padding:.55rem .65rem; border-radius:8px; cursor:pointer; transition:background .08s; }
.stp-item:hover { background:#F6F1E2; }
.stp-item.is-active { background:#E5EEF6; }
.stp-item.is-blocked { opacity:.55; }
.stp-item.is-warn .stp-item-name { color:#7A4D14; }
.stp-item input[type="checkbox"] { width:16px; height:16px; cursor:pointer; flex-shrink:0; accent-color:var(--snv-navy,#0E5A8E); }
.stp-item-body { flex:1; min-width:0; }
.stp-item-name { font-weight:500; color:var(--snv-ink,#1A1A1A); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stp-item-sub { font-size:.72rem; color:var(--snv-soft,#6C6758); margin-top:.15rem; }
.stp-tag { display:inline-flex; align-items:center; padding:.15rem .5rem; border-radius:999px; font-size:.68rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase; flex-shrink:0; }
.stp-tag-ok { background:#E8F4EA; color:#1F5A30; }
.stp-tag-warn { background:#FDF1E0; color:#7A4D14; }
.stp-tag-block { background:#F2EBDF; color:#7A6A48; }
.stp-tag-skip { background:#F0EBDD; color:#6C6758; }
.stp-detail { overflow-y:auto; padding:1.1rem 1.4rem; }
.stp-detail-empty { color:var(--snv-soft,#6C6758); font-style:italic; padding:2rem 0; text-align:center; }
.stp-detail-head { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:.8rem; }
.stp-detail-head h3 { margin:0; font:600 1.05rem Jost,sans-serif; }
.stp-audit { font-size:.78rem; color:var(--snv-soft,#6C6758); background:#F6F1E2; padding:.25rem .65rem; border-radius:999px; }
.stp-audit-muted { background:#F0ECDD; color:#8a8474; font-style:italic; }
.stp-banner { padding:.65rem .9rem; border-radius:8px; font-size:.85rem; margin-bottom:1rem; line-height:1.45; }
.stp-banner-warn { background:#FDF1E0; border:1px solid #F0D29C; color:#5E4A14; }
.stp-banner-block { background:#FBE8E6; border:1px solid #F1B8B0; color:#7A2418; }
.stp-field { display:block; margin-bottom:.9rem; }
.stp-field-label { display:block; font:600 .72rem Jost,sans-serif; letter-spacing:.04em; text-transform:uppercase; color:var(--snv-soft,#6C6758); margin-bottom:.3rem; }
.stp-field select,.stp-field textarea { width:100%; padding:.55rem .7rem; border:1px solid var(--snv-rule,#d8d1be); border-radius:7px; font:inherit; background:#fff; }
.stp-field textarea { resize:vertical; min-height:70px; }
.stp-field select:focus,.stp-field textarea:focus { outline:2px solid var(--snv-navy,#0E5A8E); outline-offset:-1px; }
.stp-contact-card { background:#FAF7EE; border:1px solid var(--snv-rule-soft,#efe8d5); border-radius:8px; padding:.8rem 1rem; margin-bottom:.9rem; }
.stp-contact-row { display:flex; justify-content:space-between; gap:1rem; padding:.25rem 0; font-size:.85rem; }
.stp-contact-row span { color:var(--snv-soft,#6C6758); }
.stp-contact-row strong { color:var(--snv-ink,#1A1A1A); font-weight:500; }
.stp-detail-actions { display:flex; gap:.5rem; margin-top:1rem; }
.stp-btn-ghost { background:#fff; border:1px solid var(--snv-rule,#d8d1be); padding:.5rem 1rem; border-radius:7px; font:500 .82rem Jost,sans-serif; cursor:pointer; color:var(--snv-ink,#1A1A1A); }
.stp-btn-ghost:hover { background:#FAF7EE; }
.stp-foot { display:flex; justify-content:flex-end; gap:.6rem; padding:1rem 1.4rem; border-top:1px solid var(--snv-rule,#e8e2d4); }
.stp-summary-table-wrap { padding:0 1.4rem; max-height:50vh; overflow-y:auto; }
.stp-summary-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.stp-summary-table th { text-align:left; padding:.5rem .7rem; border-bottom:2px solid var(--snv-rule,#e8e2d4); font:600 .72rem Jost,sans-serif; letter-spacing:.04em; text-transform:uppercase; color:var(--snv-soft,#6C6758); }
.stp-summary-table td { padding:.55rem .7rem; border-bottom:1px solid var(--snv-rule-soft,#efe8d5); }
.stp-summary-table tr:last-child td { border-bottom:none; }
.stp-summ-note { color:var(--snv-navy,#0E5A8E); font-weight:500; }
.snv-name-sub { display:block; font-size:.7rem; color:var(--snv-navy,#0E5A8E); font-weight:400; margin-top:.1rem; }
@media (max-width:720px) { .stp-grid { grid-template-columns:1fr; } .stp-list { max-height:30vh; border-right:none; border-bottom:1px solid var(--snv-rule,#e8e2d4); } }

.snv-refer.is-quiet {
  background: transparent;
  border-color: #D8D1BE;
  color: #6C6758;
  font-weight: 500;
  /* Compact secondary so it sits next to Review without crowding */
  height: 28px;
  padding: 0 .6rem;
  font-size: .75rem;
  gap: .3rem;
  border-radius: 7px;
}
.snv-refer.is-quiet svg { width: 11px; height: 11px; }
.snv-refer.is-quiet:hover {
  background: #F6F1E2;
  border-color: #C8A94A;
  color: #5E4A14;
}
.snv-refer.is-quiet.is-recommended {
  background: #EEF5FF;
  border-color: #B8D0F0;
  color: #2A4A7A;
}
.snv-refer.is-quiet.is-recommended:hover {
  background: #DDEBFF;
  border-color: #94B7E0;
  color: #1E3A66;
}
/* Space between the two action buttons in the 'none' state */
/* Spacing handled by the cell's gap now — no margin collisions */
.snv-action-cell .snv-refer.is-quiet + .snv-review {
  margin-left: 0;
}
.snv-refer.is-recommended:hover {
  background: #DDEBFF;
  border-color: #94B7E0;
  color: #1E3A66;
}
.snv-rec-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px; padding: 0 5px; margin-left: 6px;
  border-radius: 8px; background: #2A4A7A; color: #fff;
  font-size: 10px; font-weight: 700; line-height: 1;
}
.snv-refer.is-recommended .snv-rec-badge { background: #2A4A7A; }
.snv-modal-backdrop {
  position: fixed; inset: 0; background: rgba(20,22,28,0.48);
  display: flex; align-items: center; justify-content: center;
  z-index: 10000; animation: snvModalFade 120ms ease-out;
}
@keyframes snvModalFade { from { opacity: 0; } to { opacity: 1; } }
.snv-modal {
  width: min(520px, 92vw); max-height: 86vh; overflow: auto;
  background: #FBFAF6; border: 1px solid #E5DFD0; border-radius: 14px;
  box-shadow: 0 18px 50px rgba(20,22,28,0.28);
  font-family: Jost, sans-serif; color: var(--snv-ink, #1C2230);
  animation: snvModalRise 160ms cubic-bezier(.2,.7,.3,1);
}
@keyframes snvModalRise { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.snv-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px 12px; border-bottom: 1px solid #EFE9DA;
}
.snv-modal-head h3 {
  margin: 0; font-family: 'EB Garamond', serif; font-weight: 500;
  font-size: 20px; line-height: 1.25; letter-spacing: -0.01em;
}
.snv-modal-close {
  border: none; background: transparent; font-size: 22px; line-height: 1;
  color: #6C6758; cursor: pointer; padding: 4px 8px; border-radius: 6px;
}
.snv-modal-close:hover { background: rgba(0,0,0,0.05); color: #1C2230; }
.snv-modal-body { padding: 14px 20px 18px; }
.snv-modal-intro { margin: 0 0 12px; font-size: 14px; line-height: 1.45; color: #3B3A32; }
.snv-modal-intro strong { color: #1C2230; font-weight: 600; }
.snv-modal-label {
  display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
  text-transform: uppercase; color: #6C6758; margin: 14px 0 6px;
}
.snv-modal-select, .snv-modal-textarea {
  width: 100%; box-sizing: border-box; padding: 9px 11px;
  border: 1px solid #D8D1BE; border-radius: 8px; background: #fff;
  font-family: Jost, sans-serif; font-size: 14px; color: #1C2230;
}
.snv-modal-textarea { resize: vertical; min-height: 64px; }
.snv-modal-select:focus, .snv-modal-textarea:focus {
  outline: none; border-color: #8A6E2C; box-shadow: 0 0 0 3px rgba(138,110,44,0.15);
}
.snv-modal-rec-list {
  margin: 4px 0 12px; padding: 10px 12px; background: #F4EFDF;
  border: 1px solid #E7DFC6; border-radius: 8px;
}
.snv-modal-rec-title {
  font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
  text-transform: uppercase; color: #5E4A14; margin-bottom: 6px;
}
.snv-modal-rec-item { font-size: 13px; color: #3B3A32; padding: 4px 0; border-top: 1px dashed #DCD0A7; }
.snv-modal-rec-item:first-of-type { border-top: none; }
.snv-modal-rec-reason { color: #6C6758; }
.snv-modal-rec-note { font-style: italic; color: #6C6758; margin-top: 2px; }
.snv-modal-foot {
  display: flex; justify-content: flex-end; gap: 8px;
  padding: 12px 20px 16px; border-top: 1px solid #EFE9DA; background: #F7F3E6;
  border-radius: 0 0 14px 14px;
}
.snv-modal-foot .snv-tb-btn-refer {
  padding: 8px 14px; border-radius: 8px; font-weight: 600; cursor: pointer;
  border: 1px solid #C8A94A; background: #F6F1E2; color: #5E4A14;
}
.snv-modal-foot .snv-tb-btn-refer:hover { background: #EFE5C0; }
.snv-modal-foot .snv-tb-btn-ghost {
  padding: 8px 14px; border-radius: 8px; font-weight: 500; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: #6C6758;
}
.snv-modal-foot .snv-tb-btn-ghost:hover { background: rgba(0,0,0,0.04); color: #1C2230; }
.snv-tb-btn-ghost {
  background: transparent; border-color: transparent; color: var(--snv-mid);
}
.snv-tb-btn-ghost:hover:not(:disabled) { background: rgba(0,0,0,0.04); color: var(--snv-navy); }

/* When toolbar is above, table gets flat top edge */
.snv-toolbar + .snv-table-wrap { border-top: none; border-radius: 0 0 10px 10px; }

/* Intervention slot tracker on Students page */
.snv-slots {
  display: flex; flex-direction: column; gap: .4rem;
  padding: .7rem .9rem;
  background: #fff;
  border: 1px solid var(--snv-rule);
  border-radius: 10px;
  margin: .25rem 0 .6rem;
}
.snv-slots-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
}
.snv-slots-label { display: inline-flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.snv-slots-title { font: 700 .78rem/1 Jost, sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--snv-navy); }
.snv-slots-meta { font: 500 .82rem Jost, sans-serif; color: var(--snv-mid); }
.snv-slots-meta strong { color: var(--snv-navy); font-weight: 700; }
.snv-slots-status {
  font: 700 .72rem/1 Jost, sans-serif; letter-spacing: .08em; text-transform: uppercase;
  padding: .25rem .55rem;
  border-radius: 999px;
}
.snv-slots-status[data-level="ok"] { color: #2F6E64; background: #E6F1EC; }
.snv-slots-status[data-level="warn"] { color: #8B5A1C; background: #F8ECC8; }
.snv-slots-status[data-level="high"] { color: #A23A2E; background: #F5E0DC; }
.snv-slots-bar {
  position: relative;
  height: 8px;
  background: var(--snv-paper);
  border: 1px solid var(--snv-rule-soft);
  border-radius: 999px;
  overflow: hidden;
}
.snv-slots-fill {
  position: absolute; inset: 0 auto 0 0;
  height: 100%;
  border-radius: 999px;
  transition: width .25s ease;
}
.snv-slots-fill[data-level="ok"] { background: linear-gradient(90deg, #4D856F, #2F6E64); }
.snv-slots-fill[data-level="warn"] { background: linear-gradient(90deg, #CD9A2C, #B88420); }
.snv-slots-fill[data-level="high"] { background: linear-gradient(90deg, #C2423A, #A23A2E); }
.snv-slots-pending {
  position: absolute; top: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, rgba(0,66,114,0.28), rgba(0,66,114,0.28) 4px, rgba(0,66,114,0.12) 4px, rgba(0,66,114,0.12) 8px);
  border-right: 1px dashed var(--snv-navy);
}
.snv-slots-foot { font: 500 .76rem Jost, sans-serif; color: var(--snv-soft); }
.snv-slots-warn { color: #A23A2E; font-weight: 700; }

/* Clear PDF button on row */
.snv-pdf-btn {
  display: inline-flex; align-items: center; gap: .35rem;
  height: 30px; padding: 0 .7rem;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-navy);
  font: 700 .72rem/1 Jost, sans-serif;
  letter-spacing: .05em;
  cursor: pointer;
  margin-left: 0;
  flex-shrink: 0;
  transition: background .1s, border-color .1s, color .1s, transform .08s;
}
.snv-pdf-btn:hover {
  background: var(--snv-navy);
  border-color: var(--snv-navy);
  color: #fff;
}
.snv-pdf-btn:active { transform: translateY(1px); }
.snv-pdf-btn svg { flex-shrink: 0; }
.snv-pdf-btn-label { font-variant: small-caps; letter-spacing: .08em; }

/* Expanded detail action bar */
.snv-exp-actions {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  padding: .75rem 0 .25rem;
  margin-top: .75rem;
  border-top: 1px dashed var(--snv-rule-soft);
}
.snv-exp-btn {
  display: inline-flex; align-items: center; gap: .45rem;
  height: 34px; padding: 0 .9rem;
  border-radius: 7px;
  font: 600 .82rem Jost, sans-serif;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s, transform .08s;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-ink);
}
.snv-exp-btn:hover { border-color: var(--snv-navy); color: var(--snv-navy); }
.snv-exp-btn:active { transform: translateY(1px); }
.snv-exp-btn-primary {
  background: var(--snv-navy);
  border-color: var(--snv-navy);
  color: #fff;
}
.snv-exp-btn-primary:hover { background: #002E52; border-color: #002E52; color: #fff; }
.snv-exp-btn-refer {
  background: #F6F1E2;
  border-color: #E7D9A8;
  color: #5E4A14;
}
.snv-exp-btn-refer:hover { background: #EFE5C0; border-color: #C8A94A; color: #4A3A0E; }
.snv-exp-btn-ghost {
  background: transparent;
  border-color: transparent;
  color: var(--snv-mid);
  margin-left: auto;
}
.snv-exp-btn-ghost:hover { background: var(--snv-paper); color: var(--snv-navy); }
.snv-exp-refstatus {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 34px; padding: 0 .8rem;
  font: 600 .82rem Jost, sans-serif;
  color: #2F6E64;
  background: #E6F1EC;
  border-radius: 7px;
}

/* Bulk-action bar */
.snv-bulkbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  padding: .7rem 1rem;
  background: var(--snv-navy);
  color: #fff;
  border-radius: 10px;
  margin: .25rem 0 .75rem;
  animation: snvExpandIn .18s ease;
  box-shadow: 0 2px 10px rgba(0,66,114,0.2);
}
.snv-bulkbar-count {
  display: inline-flex; align-items: center; gap: .5rem;
  font: 600 .9rem Jost, sans-serif;
}
.snv-bulkbar-count-num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 26px; padding: 0 .5rem;
  background: #fff; color: var(--snv-navy);
  border-radius: 999px;
  font: 700 .85rem Jost, sans-serif;
  font-variant-numeric: tabular-nums;
}
.snv-bulkbar-actions {
  display: inline-flex; gap: .5rem; flex-wrap: wrap;
}
.snv-bulk-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 32px; padding: 0 .85rem;
  background: rgba(255,255,255,0.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 7px;
  font: 600 .8rem Jost, sans-serif;
  cursor: pointer;
  transition: background .12s;
}
.snv-bulk-btn:hover { background: rgba(255,255,255,0.2); }
.snv-bulk-btn-primary { background: #fff; color: var(--snv-navy); border-color: #fff; }
.snv-bulk-btn-primary:hover { background: #F0F4F9; }
.snv-bulk-btn-clear {
  background: transparent; border-color: transparent; color: rgba(255,255,255,0.8);
}
.snv-bulk-btn-clear:hover { background: rgba(255,255,255,0.1); color: #fff; }

.snv-cell { min-width: 0; }
.snv-cell-mono {
  font: 500 .88rem Jost, sans-serif;
  color: var(--snv-ink);
  font-variant-numeric: tabular-nums;
}

.snv-name {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600; font-size: 1.02rem;
  color: var(--snv-ink); letter-spacing: -0.005em;
  background: none; border: none; padding: 0;
  text-align: left; cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  max-width: 100%; display: block;
}
.snv-name:hover { text-decoration: underline; text-underline-offset: 2px; }

.snv-summary-line {
  font: 400 .88rem Jost, sans-serif;
  color: var(--snv-ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  min-width: 0;
}
.snv-summary-line-empty { color: var(--snv-soft); font-style: italic; }

/* Recommender tags */
.snv-tags {
  display: inline-flex; gap: .3rem; align-items: center; flex-wrap: wrap;
}
.snv-tag {
  display: inline-flex; align-items: center; gap: .35rem;
  height: 22px; padding: 0 .55rem;
  border-radius: 999px;
  font: 600 .66rem/1 Jost, sans-serif;
  letter-spacing: .06em; text-transform: uppercase;
  white-space: nowrap;
  border: 1px solid transparent;
}
.snv-tag::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor; opacity: .8;
}
.snv-tag[data-source="system"]  { background: var(--ref-sys-bg);  color: var(--ref-sys-ink);  border-color: rgba(184,132,32,.18); }
.snv-tag[data-source="teacher"] { background: var(--ref-tch-bg);  color: var(--ref-tch-ink);  border-color: rgba(59,107,162,.18); }
.snv-tag[data-source="both"]    { background: var(--ref-both-bg); color: var(--ref-both-ink); border-color: rgba(162,58,46,.2); }
.snv-tag[data-source="referred"]{ background: var(--ref-done-bg); color: var(--ref-done-ink); border-color: rgba(77,133,111,.2); }
.snv-tag[data-source="none"]    { background: transparent;        color: var(--snv-soft);     border-color: var(--snv-rule); }
.snv-tag[data-source="none"]::before { display: none; }

.snv-action-cell {
  display: flex; align-items: center; justify-content: flex-start;
  gap: .35rem;
  min-width: 0;
  flex-wrap: nowrap;
  overflow: hidden;
}
.snv-action-cell > * { flex-shrink: 0; }

/* Row wrapper + expand button */
.snv-row-wrap { border-bottom: 1px solid var(--snv-rule-soft); }
.snv-row-wrap:last-child { border-bottom: none; }
.snv-row-wrap .snv-row { border-bottom: none; }
.snv-cell[data-col="pupil"] {
  display: flex; align-items: center; gap: .5rem;
  min-width: 0;
}
.snv-cell[data-col="pupil"] .snv-name { flex: 1; min-width: 0; }
.snv-row-expand {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 5px;
  background: transparent; border: 1px solid var(--snv-rule);
  color: var(--snv-mid); cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  transition: transform .18s ease, background .12s, color .12s, border-color .12s;
}
.snv-row-expand:hover {
  background: var(--snv-navy-lt);
  color: var(--snv-navy);
  border-color: var(--snv-navy);
}
.snv-row-expand svg { transition: transform .18s ease; }
.snv-row-wrap[data-expanded="true"] .snv-row-expand {
  background: var(--snv-navy);
  color: #fff;
  border-color: var(--snv-navy);
}
.snv-row-wrap[data-expanded="true"] .snv-row-expand svg { transform: rotate(180deg); }

/* Category cell */
.snv-cat {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 26px; padding: 0 .55rem;
  border-radius: 6px;
  font: 500 .82rem Jost, sans-serif;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
  border: 1px solid transparent;
}
.snv-cat-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}
.snv-cat-label {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  min-width: 0;
}
.snv-cat-more {
  font-size: .72rem;
  color: var(--snv-soft);
  margin-left: .15rem;
  font-weight: 400;
}
.snv-cat-high { background: var(--ref-both-bg);  color: var(--ref-both-ink);  border-color: rgba(162,58,46,.2); }
.snv-cat-mild { background: var(--ref-sys-bg);   color: var(--ref-sys-ink);   border-color: rgba(184,132,32,.2); }
.snv-cat-ok   { background: var(--ref-done-bg);  color: var(--ref-done-ink);  border-color: rgba(77,133,111,.2); }
.snv-cat-none { color: var(--snv-soft); font-style: italic; font-size: .82rem; }
.snv-cat-high .snv-cat-more,
.snv-cat-mild .snv-cat-more,
.snv-cat-ok .snv-cat-more { color: inherit; opacity: .75; }

/* Expanded detail panel */
.snv-row-detail {
  background: var(--snv-paper);
  border-top: 1px solid var(--snv-rule-soft);
  padding: 1rem 1.2rem 1.2rem;
  animation: snvExpandIn .18s ease;
  position: relative;
}
.snv-exp-close {
  position: absolute;
  top: .7rem; right: .8rem;
  background: #fff;
  border: 1px solid var(--snv-rule);
  color: var(--snv-mid);
  font: 500 .72rem Jost, sans-serif;
  letter-spacing: .04em;
  padding: .35rem .7rem;
  border-radius: 5px;
  cursor: pointer;
  z-index: 1;
}
.snv-exp-close:hover { background: var(--snv-navy); color: #fff; border-color: var(--snv-navy); }
@keyframes snvExpandIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Helpful expanded panel ── */
.snv-exp-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 .2rem .85rem; margin-bottom:.95rem; border-bottom:1px solid var(--snv-rule-soft); }
.snv-exp-header-name { font: 600 1.05rem Jost, sans-serif; color: var(--snv-ink, #1A2332); }
.snv-exp-header-meta { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font: 500 .78rem Jost, sans-serif; color: var(--snv-soft); margin-top:.18rem; }
.snv-exp-dot { opacity:.5; }
.snv-exp-header-pill { font: 600 .72rem Jost, sans-serif; letter-spacing:.04em; padding:.35rem .65rem; border-radius:999px; white-space:nowrap; }
.snv-exp-pill-ok { background:#E8F4EC; color:#2E7D4F; }
.snv-exp-pill-mild,.snv-exp-pill-watch { background:#FFF4DD; color:#8C5A0A; }
.snv-exp-pill-mod { background:#FCE7CF; color:#A04A0E; }
.snv-exp-pill-sig,.snv-exp-pill-high { background:#FBE2E2; color:#A8221A; }

.snv-exp-col-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.55rem; }
.snv-exp-title { display:flex; align-items:center; gap:.4rem; font: 600 .7rem/1 Jost, sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--snv-soft); margin-bottom:0; }
.snv-exp-title-icon { font-size:.95rem; line-height:1; }
.snv-exp-pill { font: 600 .65rem Jost, sans-serif; letter-spacing:.04em; padding:.2rem .5rem; border-radius:999px; }

.snv-exp-section-title { display:flex; align-items:baseline; gap:.5rem; font: 600 .78rem Jost, sans-serif; color: var(--snv-ink, #1A2332); margin: 1rem 0 .55rem; }
.snv-exp-section-icon { font-size:.95rem; }
.snv-exp-section-sub { font-weight:500; font-size:.7rem; color: var(--snv-soft); letter-spacing:.04em; text-transform:uppercase; }

.snv-exp-strategies { background:#FFFBF2; border:1px solid #F2E4BF; border-radius:10px; padding:.7rem .95rem .85rem; margin-top:1rem; }
.snv-exp-strategies .snv-exp-section-title { margin-top:0; color:#7A5A0F; }
.snv-exp-strat-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:.45rem .9rem; }
.snv-exp-strat-item { display:flex; flex-direction:column; gap:.1rem; padding:.35rem 0; border-bottom:1px dashed #EFD89A; }
.snv-exp-strat-item:last-child { border-bottom:none; }
.snv-exp-strat-area { font: 600 .68rem Jost, sans-serif; letter-spacing:.06em; text-transform:uppercase; color:#8C5A0A; }
.snv-exp-strat-tip { font: 500 .85rem/1.35 Jost, sans-serif; color: var(--snv-ink, #1A2332); }

.snv-exp-notes { margin-top:1rem; }
.snv-exp-notes-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:.5rem .9rem; }
.snv-exp-note { background:#FAFAF7; border:1px solid var(--snv-rule-soft); border-radius:8px; padding:.5rem .7rem; }
.snv-exp-note-k { font: 600 .68rem Jost, sans-serif; letter-spacing:.06em; text-transform:uppercase; color: var(--snv-soft); margin-bottom:.15rem; }
.snv-exp-note-v { font: 500 .84rem/1.4 Jost, sans-serif; color: var(--snv-ink, #1A2332); }

.snv-exp-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; padding-top:.85rem; border-top:1px solid var(--snv-rule-soft); }
.snv-exp-btn-ghost { background:transparent; border:1px solid var(--snv-rule); color: var(--snv-ink, #1A2332); }
.snv-exp-btn-ghost:hover { background: var(--snv-paper); }

.snv-exp-raw { margin-top:.9rem; font: 500 .78rem Jost, sans-serif; }
.snv-exp-raw summary { cursor:pointer; color: var(--snv-soft); user-select:none; }
.snv-exp-raw[open] summary { color: var(--snv-ink, #1A2332); }
.snv-exp-raw-body { margin-top:.4rem; padding:.5rem .7rem; background:#FAFAF7; border:1px solid var(--snv-rule-soft); border-radius:6px; color: var(--snv-ink, #1A2332); line-height:1.5; }

.snv-exp-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.2rem;
}
.snv-exp-col {
  background: #fff;
  border: 1px solid var(--snv-rule-soft);
  border-radius: 8px;
  padding: .7rem .9rem;
}
.snv-exp-title {
  font: 600 .7rem/1 Jost, sans-serif;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--snv-soft);
  margin-bottom: .55rem;
}
.snv-exp-empty {
  font: 400 .82rem Jost, sans-serif;
  color: var(--snv-soft); font-style: italic;
}
.snv-exp-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: .6rem;
  padding: .3rem 0;
  font: 500 .84rem Jost, sans-serif;
  border-bottom: 1px dashed var(--snv-rule-soft);
}
.snv-exp-item:last-child { border-bottom: none; }
.snv-exp-item-label {
  position: relative; padding-left: .8rem;
  color: var(--snv-ink);
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.snv-exp-item-label::before {
  content: ""; position: absolute; left: 0; top: 50%;
  width: 7px; height: 7px; border-radius: 50%;
  transform: translateY(-50%);
}
.snv-exp-item[data-level="high"] .snv-exp-item-label::before { background: var(--ref-both-dot); }
.snv-exp-item[data-level="mild"] .snv-exp-item-label::before { background: var(--ref-sys-dot); }
.snv-exp-item[data-level="ok"]   .snv-exp-item-label::before { background: var(--ref-done-dot); }
.snv-exp-item[data-level="none"] .snv-exp-item-label::before { background: var(--ref-none-dot); }
.snv-exp-item-value {
  font: 400 .78rem Jost, sans-serif;
  color: var(--snv-mid);
  flex-shrink: 0;
}
.snv-exp-notes {
  margin-top: 1rem;
  padding: .75rem .9rem;
  background: #fff;
  border: 1px solid var(--snv-rule-soft);
  border-radius: 8px;
  font: 400 .82rem/1.45 Jost, sans-serif;
  color: var(--snv-mid);
}
.snv-exp-notes strong {
  color: var(--snv-ink); font-weight: 600; margin-right: .2rem;
}
.snv-exp-raw {
  margin-top: .6rem;
  font: 400 .78rem/1.4 Jost, sans-serif;
  color: var(--snv-soft);
}
.snv-exp-raw-label {
  text-transform: uppercase; letter-spacing: .06em;
  font-weight: 600; color: var(--snv-mid);
  margin-right: .3rem;
}

/* Primary action */
.snv-refer {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 36px; padding: 0 1rem;
  border: 1px solid var(--snv-navy); background: var(--snv-navy); color: #fff;
  font: 600 .82rem Jost, sans-serif;
  border-radius: 8px; cursor: pointer;
  white-space: nowrap;
  transition: background .12s;
}
.snv-refer:hover { background: #0D5A91; border-color: #0D5A91; }
.snv-refer svg { flex-shrink: 0; }

.snv-refer-quiet {
  background: transparent; color: var(--snv-navy); border-color: var(--snv-navy);
}
.snv-refer-quiet:hover { background: var(--snv-navy-lt); color: var(--snv-navy); }

.snv-status {
  display: inline-flex; align-items: center; gap: .4rem;
  height: 32px; padding: 0 .8rem;
  border: 1px solid transparent;
  font: 500 .78rem Jost, sans-serif;
  border-radius: 8px;
  white-space: nowrap;
}
.snv-status[data-kind="referred"] { background: var(--ref-done-bg); color: var(--ref-done-ink); }
.snv-status[data-kind="enrolled"] { background: var(--ref-done-bg); color: var(--ref-done-ink); }
.snv-status-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.snv-review {
  display: inline-flex; align-items: center; gap: .3rem;
  background: none; border: none; cursor: pointer;
  color: var(--snv-soft); font: 500 .82rem Jost, sans-serif;
  padding: .4rem .35rem;
  white-space: nowrap;
}
.snv-review:hover { color: var(--snv-ink); text-decoration: underline; }

/* Empty state */
.snv-empty {
  text-align: center; padding: 3.5rem 1rem;
  background: #fff;
  border: 1px dashed var(--snv-rule);
  border-radius: 12px;
  color: var(--snv-mid);
}
.snv-empty h3 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600; font-size: 1.1rem; color: var(--snv-ink);
  margin-bottom: .4rem;
}
.snv-empty p { font-size: .88rem; margin-bottom: .85rem; }
.snv-empty button {
  background: var(--snv-navy-lt); color: var(--snv-navy);
  border: 1px solid transparent; padding: .5rem 1rem;
  border-radius: 9px; cursor: pointer;
  font: 500 .85rem Jost, sans-serif;
}
.snv-empty button:hover { background: var(--snv-navy); color: #fff; }

/* Toast */
.snv-toast {
  position: fixed; bottom: 24px; left: 50%;
  transform: translate(-50%, 120%);
  background: var(--snv-ink); color: #fff;
  padding: .7rem 1.1rem; border-radius: 9px;
  font: 500 .85rem Jost, sans-serif;
  box-shadow: 0 8px 28px rgba(0,0,0,.18);
  z-index: 9999;
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}
.snv-toast.show { transform: translate(-50%, 0); }

@media (max-width: 1200px) {
  .snv-thead { display: none; }
  .snv-row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "name          action"
      "yearform      yearform"
      "tags          tags"
      "thinking      thinking"
      "wellbeing     wellbeing"
      "engagement    engagement";
    gap: .45rem .8rem;
    padding: .9rem 1rem;
  }
  .snv-cell[data-col="pupil"]      { grid-area: name; }
  .snv-cell[data-col="yearform"]   { grid-area: yearform; font: 400 .78rem Jost, sans-serif; color: var(--snv-soft); }
  .snv-cell[data-col="recby"]      { grid-area: tags; }
  .snv-cell[data-col="thinking"]   { grid-area: thinking; }
  .snv-cell[data-col="wellbeing"]  { grid-area: wellbeing; }
  .snv-cell[data-col="engagement"] { grid-area: engagement; }
  .snv-action-cell                 { grid-area: action; }
  .snv-exp-cols { grid-template-columns: 1fr; }
}
       
/* ─── Assessment history block ────────────────────────────────────────
   Renders ONLY when a pupil has 2+ completed assessments. Sits between
   the expanded-row header and the three domain columns, so the
   "before / after intervention" story is the first thing the user
   sees after they expand a pupil's row. */
.snv-hist {
  background: #F4F6FB;
  border: 1px solid var(--snv-rule-soft, #E1E6EE);
  border-radius: .55rem;
  padding: .85rem 1rem;
  margin: 0 .2rem 1rem;
}
.snv-hist-title {
  display: flex;
  align-items: center;
  gap: .45rem;
  font: 600 .9rem Jost, sans-serif;
  color: var(--snv-ink, #1A2332);
  margin-bottom: .7rem;
}
.snv-hist-icon { font-size: 1rem; line-height: 1; }
.snv-hist-count {
  margin-left: auto;
  font: 500 .72rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
  background: #fff;
  padding: .15rem .55rem;
  border-radius: 999px;
  border: 1px solid var(--snv-rule-soft, #E1E6EE);
}
.snv-hist-table {
  width: 100%;
  border-collapse: collapse;
  font: 500 .82rem Jost, sans-serif;
}
.snv-hist-table thead th {
  font: 600 .72rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
  text-align: left;
  padding: .35rem .55rem .45rem;
  border-bottom: 1px solid var(--snv-rule-soft, #E1E6EE);
}
.snv-hist-colnum { font: 600 .78rem Jost, sans-serif; color: var(--snv-ink, #1A2332); letter-spacing: .01em; }
.snv-hist-coldate { font: 500 .7rem Jost, sans-serif; color: var(--snv-soft, #6A7385); margin-top: .15rem; }
.snv-hist-table tbody td {
  padding: .42rem .55rem;
  border-bottom: 1px solid var(--snv-rule-soft, #E1E6EE);
  color: var(--snv-ink, #1A2332);
}
.snv-hist-table tbody tr:last-child td { border-bottom: none; }
.snv-hist-domain {
  width: 6.5rem;
  font: 600 .78rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
}
.snv-hist-col { white-space: nowrap; }
.snv-hist-deltacol { font: 700 .82rem Jost, sans-serif; }
.snv-hist-up    { color: #2E7D4F; }       /* green — improvement */
.snv-hist-down  { color: #B83227; }       /* red — regression */
.snv-hist-flat  { color: #6A7385; }       /* grey — no change */

/* Score + band-label stack inside an assessment-history cell. */
.snv-hist-val  { font: 600 .9rem Jost, sans-serif; color: var(--snv-ink, #1A2332); }
.snv-hist-band { font: 500 .68rem Jost, sans-serif; color: var(--snv-soft, #6A7385); margin-top: .15rem; letter-spacing: .01em; }

/* Footnote under the comparison table — explains "pp" once so teachers
   know what unit they're looking at without us spelling it out everywhere. */
.snv-hist-foot {
  font: 500 .7rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
  margin-top: .55rem;
  font-style: italic;
}

/* ─── Sparkline column + horizontal scroll wrapper for the full table ── */
.snv-hist-scroll { overflow-x: auto; }                    /* lets 6+ col fulltable scroll on narrow screens */
.snv-hist-sparkcol { width: 92px; }
.snv-hist-spark { display: block; }                       /* removes inline-svg baseline gap */
.snv-hist-sparkmuted {
  font: 500 .72rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
}

/* ─── "Show all N assessments" disclosure ─────────────────────────────── */
.snv-hist-expand {
  margin-top: .65rem;
  border-top: 1px dashed var(--snv-rule-soft, #E1E6EE);
  padding-top: .55rem;
}
.snv-hist-expand > summary {
  cursor: pointer;
  font: 600 .78rem Jost, sans-serif;
  color: var(--snv-navy, #0A3D6F);
  list-style: none;
  padding: .25rem 0;
  user-select: none;
}
.snv-hist-expand > summary::-webkit-details-marker { display: none; }
.snv-hist-expand > summary::before {
  content: "▸ ";
  display: inline-block;
  transition: transform .15s ease;
  color: var(--snv-soft, #6A7385);
}
.snv-hist-expand[open] > summary::before { transform: rotate(90deg) translateX(-1px); }
.snv-hist-expand > summary:hover { color: #002E52; }
.snv-hist-expand .snv-hist-scroll { margin-top: .55rem; }

/* ─── Band-pill alignment fix (June 2026 demo-review) ───────────────
   The expanded-row item layout was `display: flex; justify-content:
   space-between` so a row with a band tag and a value rendered them
   somewhere in the middle without a consistent column. Re-laid out
   as a 3-column grid: label takes remaining space, band sits in a
   fixed column, value sits in a final fixed column. All rows align
   regardless of label or band length. */
.snv-exp-item {
  display: grid !important;
  grid-template-columns: 1fr auto 3.2rem !important;
  align-items: center;
  column-gap: .6rem;
}
.snv-exp-item-band {
  font: 600 .68rem Jost, sans-serif;
  color: var(--snv-soft, #6A7385);
  background: var(--snv-paper, #F7F4EB);
  border: 1px solid var(--snv-rule-soft, #E1E6EE);
  border-radius: 999px;
  padding: .15rem .55rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
  justify-self: end;
}
.snv-exp-item[data-level="high"] .snv-exp-item-band {
  background: #FDECEC; color: #B83227; border-color: #F8CBCB;
}
.snv-exp-item[data-level="mild"] .snv-exp-item-band {
  background: #FFF4DD; color: #8C5A0A; border-color: #F0DCA8;
}
.snv-exp-item[data-level="ok"] .snv-exp-item-band {
  background: #E8F4EC; color: #2E7D4F; border-color: #C8E3D2;
}
.snv-exp-item-value {
  text-align: right;
  justify-self: end;
}

/* ─── Static "Done" pill (replaces the Recommend button after a
   teacher has recommended a pupil). Visually compact and clearly
   non-interactive — was previously a still-clickable button labelled
   "Recommended" which both (a) let the user re-submit on every
   click and (b) pushed the adjacent PDF button into a clipped
   state because of the longer label. (June 2026 demo-review fix.)  */
.snv-refer.is-pill {
  cursor: default;
  pointer-events: none;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  /* Match the visual weight of the original button so nothing jumps
     when the state transitions. Background + colour come from the
     existing .is-recommended rule above; we just override interactivity. */
}
.snv-refer.is-pill:hover { background: inherit; }

/* Strong band pill — was falling through to the default grey because
   level priority 0 maps to data-level="none" and that branch had no
   colour rule. Matches snv-cat-strong elsewhere: soft-blue chip with
   navy text. */
.snv-exp-item[data-level="none"] .snv-exp-item-band {
  background: #E8F1FB;
  color: #1565c0;
  border-color: #CFE1F5;
}
