/* =========================================================
   Dashboard enhancements — Pebble editorial layout
   Applies to School Dashboard only
   ========================================================= */

/* Fix: .app-hidden specificity so it beats .app display */
.app.app-hidden,
.app-hidden{ display:none !important; }

/* ---------- Editorial numbered section headers ---------- */
.dash-section {
  position: relative;
  margin-top: 2.2rem;
  padding-top: 2.2rem;
  border-top: 1px solid rgba(20,30,50,.08);
}
.dash-section:first-child { border-top: none; margin-top: 0; padding-top: 0; }

.dash-section-header { margin-bottom: 1.4rem !important; }

.dash-section-num {
  display:inline-block;
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-weight:400;
  font-size:.85rem;
  letter-spacing:.04em;
  color:var(--navy, #2A6EE5);
  padding:.2rem .65rem;
  border:1px solid var(--navy, #2A6EE5);
  border-radius:2rem;
  margin-bottom:.55rem;
  background:#fff;
}
.dash-section-num .dot {
  display:inline-block;width:.42rem;height:.42rem;border-radius:50%;
  vertical-align:middle;margin-right:.4rem;background:var(--gold, #FF8C01);
  position:relative;top:-1px;
}
.dash-section-title {
  font-family:'Playfair Display',serif !important;
  font-weight:700 !important;
  font-size:1.7rem !important;
  letter-spacing:-.01em;
  color:var(--ink, #1A2332);
  line-height:1.1;
  margin-bottom:.3rem;
}
.dash-section-desc {
  font-family:'EB Garamond',serif;
  font-style:italic;
  font-size:1.02rem;
  color:#5A6570;
  max-width:62ch;
  line-height:1.4;
}

/* ---------- HERO ROW (new, above metric cards) ---------- */
.peb-hero {
  display:grid;
  grid-template-columns: 1.1fr 1.3fr 1fr;
  gap: 1.2rem;
  margin-bottom: 1.8rem;
  align-items: stretch;
}
.peb-hero > * { min-width: 0; }

.peb-hero-card {
  background:#fff;
  border:1px solid rgba(20,30,50,.08);
  border-radius:18px;
  padding:1.3rem 1.4rem;
  box-shadow:0 1px 2px rgba(20,30,50,.04);
  display:flex;flex-direction:column;
  position:relative;
  overflow:hidden;
}

.peb-hero-card .peb-card-num {
  position:absolute; right:1rem; top:.9rem;
  font-family:'EB Garamond',serif; font-style:italic;
  font-size:.78rem; color:#8E99A4; letter-spacing:.04em;
}

.peb-hero-eyebrow {
  font-family:'Jost',sans-serif;
  font-size:.7rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:#6b7280;
  margin-bottom:.45rem;
}
.peb-hero-heading {
  font-family:'Playfair Display',serif;
  font-weight:700; font-size:1.25rem;
  color:var(--ink, #1A2332);
  margin-bottom:.8rem;
  line-height:1.15;
}

/* Hero — left card: snapshot KPIs */
.peb-snap {
  background: linear-gradient(180deg, #1B5AC4 0%, #2A6EE5 100%);
  color:#fff;
  border-color:transparent;
}
.peb-snap .peb-hero-eyebrow { color: rgba(255,255,255,.65); }
.peb-snap .peb-hero-heading { color:#fff; }
.peb-snap .peb-snap-figures {
  display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.2rem;
  margin-top:.4rem;
}
.peb-snap-fig-label {
  font-family:'Jost',sans-serif;
  font-size:.65rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
  margin-bottom:.12rem;
}
.peb-snap-fig-val {
  font-family:'Playfair Display',serif;
  font-weight:700; font-size:1.75rem;
  color:#FF8C01;
  line-height:1;
}
.peb-snap-fig-sub {
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.8rem; color:rgba(255,255,255,.75);
  margin-top:.15rem;
}
.peb-snap-motto {
  margin-top:auto; padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.15);
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.9rem; color:rgba(255,255,255,.8);
}

/* Hero — center card: assessment progress donut + breakdown */
.peb-donut-wrap {
  display:flex; gap:1.2rem; align-items:center;
  margin-top:.2rem;
}
.peb-donut {
  width:130px;height:130px;flex-shrink:0;position:relative;
}
.peb-donut-center {
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
}
.peb-donut-big {
  font-family:'Playfair Display',serif;
  font-weight:700;font-size:1.7rem;color:var(--ink);
  line-height:1;
}
.peb-donut-lbl {
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.78rem;color:#6b7280;margin-top:.2rem;
}
.peb-donut-legend { flex:1; display:flex; flex-direction:column; gap:.5rem; }
.peb-legend-row {
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:.88rem;
}
.peb-legend-row .dot {
  display:inline-block;width:.6rem;height:.6rem;border-radius:50%;
  margin-right:.5rem;vertical-align:middle;
}
.peb-legend-name { color:#475569; font-weight:500; }
.peb-legend-val { font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; }

/* Hero — right card: Flagged students */
.peb-flagged { }
.peb-flagged-list { display:flex; flex-direction:column; }
.peb-flagged-row {
  display:grid; grid-template-columns:auto 1fr auto; gap:.8rem;
  padding:.55rem 0; align-items:center;
  border-bottom:1px dashed rgba(20,30,50,.08);
  cursor:pointer;
}
.peb-flagged-row:last-child { border-bottom:none; }
.peb-flagged-row:hover { background:#FAF8F3; border-radius:.35rem; }
.peb-flag-avatar {
  width:32px;height:32px;border-radius:50%;
  background:var(--navy, #2A6EE5); color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:600; font-size:.78rem;
  font-family:'Jost',sans-serif;
}
.peb-flag-body { display:flex; flex-direction:column; min-width:0; }
.peb-flag-name {
  font-weight:600; color:var(--ink); font-size:.9rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.peb-flag-reason {
  font-family:'EB Garamond',serif; font-style:italic;
  font-size:.78rem; color:#6b7280;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.peb-flag-chip {
  font-size:.65rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  padding:.22rem .5rem; border-radius:.3rem;
  white-space:nowrap;
}
.peb-flag-chip.red    { background:#FCE4F1; color:#C4123F; }
.peb-flag-chip.amber  { background:#FFF3E0; color:#9E6E00; }
.peb-flag-chip.teal   { background:#E3EDFA; color:#4A8579; }
.peb-flag-chip.purple { background:#F0EAFC; color:#5A2E99; }

.peb-flagged-foot {
  margin-top:.6rem; padding-top:.6rem;
  border-top:1px solid rgba(20,30,50,.08);
  display:flex; justify-content:space-between; align-items:center;
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.85rem; color:#6b7280;
}
.peb-flagged-foot a { color:var(--navy, #2A6EE5); font-weight:600; font-style:normal; font-family:'Jost'; font-size:.82rem; }

/* ---------- Metric-card variants ---------- */
[data-metric-style="outlined"] .metric-card {
  background:transparent !important;
  border:1px solid rgba(20,30,50,.12) !important;
  box-shadow:none !important;
}
[data-metric-style="outlined"] .metric-card::before { display:none !important; }
[data-metric-style="outlined"] .metric-card-bar { display:block; }

[data-metric-style="solid"] .metric-card {
  background: var(--navy, #2A6EE5) !important;
  color:#fff !important;
  border-color:transparent !important;
}
[data-metric-style="solid"] .metric-card .metric-card-label,
[data-metric-style="solid"] .metric-card .metric-card-number,
[data-metric-style="solid"] .metric-card .metric-card-desc {
  color:#fff !important;
}
[data-metric-style="solid"] .metric-card .metric-card-desc { color:rgba(255,255,255,.75) !important; }
[data-metric-style="solid"] .metric-card .metric-card-label { color:rgba(255,255,255,.7) !important; }
[data-metric-style="solid"] .metric-card::before { color:rgba(255,255,255,.25) !important; }
[data-metric-style="solid"] .metric-card .metric-card-arrow { color:rgba(255,255,255,.5) !important; }

/* ---------- 3 / 5 / 7 card counts ---------- */
[data-card-count="3"] .metrics-row { grid-template-columns: repeat(3, 1fr) !important; }
[data-card-count="3"] .metric-card[data-kpi-idx="3"],
[data-card-count="3"] .metric-card[data-kpi-idx="4"],
[data-card-count="3"] .metric-card[data-kpi-idx="5"],
[data-card-count="3"] .metric-card[data-kpi-idx="6"] { display:none; }

[data-card-count="5"] .metrics-row { grid-template-columns: repeat(5, 1fr) !important; }
[data-card-count="5"] .metric-card[data-kpi-idx="5"],
[data-card-count="5"] .metric-card[data-kpi-idx="6"] { display:none; }

[data-card-count="7"] .metrics-row { grid-template-columns: repeat(7, 1fr) !important; }

/* ---------- Hero variant switches ---------- */
[data-hero-style="minimal"] .peb-hero { display:none; }
[data-hero-style="donut"]   .peb-hero { grid-template-columns: 2fr 1fr; }
[data-hero-style="donut"]   .peb-flagged { display:none; }
[data-hero-style="compact"] .peb-hero { grid-template-columns: 1fr 1fr; }
[data-hero-style="compact"] .peb-snap { display:none; }

[data-show-flagged="false"] .peb-flagged { display:none; }
[data-show-flagged="false"][data-hero-style="editorial"] .peb-hero { grid-template-columns: 1.1fr 1.3fr; }

[data-show-trends="false"] .peb-trends-section { display:none; }

/* ---------- Trends section ---------- */
.peb-trends-section { }
.peb-trends-grid {
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem;
}
.peb-trend-card {
  background:#fff; border:1px solid rgba(20,30,50,.08);
  border-radius:14px; padding:1.1rem 1.2rem;
  display:flex;flex-direction:column;gap:.3rem;
  position:relative; overflow:hidden;
}
.peb-trend-label {
  font-family:'Jost',sans-serif;font-size:.7rem;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#6b7280;
}
.peb-trend-val {
  font-family:'Playfair Display',serif;
  font-weight:700;font-size:1.7rem;
  color:var(--ink);line-height:1;
}
.peb-trend-delta {
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.82rem;
}
.peb-trend-delta.up   { color:#3A7A6D; }
.peb-trend-delta.down { color:#C4123F; }
.peb-trend-delta.flat { color:#6b7280; }
.peb-trend-spark {
  height:36px;margin-top:.4rem;
}

/* ---------- Intervention slot tracker (dashboard) ---------- */
.peb-slot {
  background:#fff;border:1px solid rgba(20,30,50,.08);
  border-radius:14px; padding:1.1rem 1.4rem;
  margin-bottom:1rem;
}
.peb-slot-head {
  display:flex; justify-content:space-between; align-items:baseline;
  margin-bottom:.7rem;
}
.peb-slot-title {
  font-family:'Playfair Display',serif;font-weight:700;font-size:1.1rem;
  color:var(--ink);
}
.peb-slot-fig {
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:.9rem; color:#6b7280;
}
.peb-slot-fig strong { font-style:normal;font-weight:700;font-family:'Jost';color:var(--ink); }
.peb-slot-bar {
  height:14px; background:#F1EFE8;
  border-radius:999px; overflow:hidden; display:flex;
}
.peb-slot-seg-active    { background: var(--navy, #2A6EE5); }
.peb-slot-seg-notstarted{ background: var(--gold, #FF8C01); }
.peb-slot-seg-free      { background: transparent; }
.peb-slot-legend {
  display:flex; gap:1.2rem; margin-top:.6rem;
  font-size:.78rem; color:#6b7280;
}
.peb-slot-legend .dot {
  display:inline-block; width:.6rem; height:.6rem; border-radius:50%;
  margin-right:.4rem; vertical-align:middle;
}

/* ---------- Chart style variants ---------- */
[data-chart-style="serif"] .widget h3,
[data-chart-style="serif"] .peb-section-card h3 {
  font-family:'Playfair Display',serif !important;
  font-style:italic;font-weight:700;
}
[data-chart-style="compact"] .widget { padding: 1rem 1.2rem !important; }
[data-chart-style="compact"] .dash-section-grid { gap: 1rem !important; }

/* ---------- Subtle polish to existing widgets ---------- */
.widget {
  border:1px solid rgba(20,30,50,.08) !important;
}

/* ---------- Benchmark widget (Cognitive vs national) ---------- */
.peb-bench-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:.75rem; }
.peb-bench-legend { display:flex; gap:.9rem; font-size:.72rem; color:var(--mid,#5A6570); font-family:'Jost',sans-serif; font-weight:500; }
.peb-bench-leg { display:inline-flex; align-items:center; gap:.35rem; }
.peb-bench-leg .dot { width:8px; height:8px; border-radius:50%; display:inline-block; }

.peb-bench-summary {
  display:flex; align-items:flex-start; gap:.65rem;
  padding:.7rem .9rem; border-radius:8px; margin-bottom:1rem;
  font-family:'EB Garamond',serif; font-size:1rem; line-height:1.4;
}
.peb-bench-summary .peb-bench-sum-mark {
  flex:0 0 20px; width:20px; height:20px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Jost',sans-serif; font-weight:700; font-size:.8rem; color:#fff;
}
.peb-bench-tone-good { background:#EAF1EA; color:#3B5F44; border:1px solid rgba(123,168,133,.25); }
.peb-bench-tone-good .peb-bench-sum-mark { background:#7BA885; }
.peb-bench-tone-warn { background:#FDEDDB; color:#8A4A0E; border:1px solid rgba(255,140,1,.22); }
.peb-bench-tone-warn .peb-bench-sum-mark { background:#FF8C01; }

.peb-bench-grid { display:grid; grid-template-columns:1fr; gap:.75rem; }

.peb-bench-card {
  border:1px solid rgba(20,30,50,.1);
  border-radius:10px; padding:.9rem 1rem;
  background:#fff;
  border-left:4px solid var(--accent);
  position:relative;
}
.peb-bench-below { background: linear-gradient(180deg, var(--accent-lt) 0%, #fff 45%); border-color:color-mix(in srgb, var(--accent) 22%, transparent); }
.peb-bench-above { background: linear-gradient(180deg, rgba(123,168,133,.08) 0%, #fff 45%); }

.peb-bench-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem; margin-bottom:.5rem; }
.peb-bench-name { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:600; line-height:1.1; }
.peb-bench-desc { font-family:'EB Garamond',serif; font-style:italic; color:var(--stone,#8E99A4); font-size:.85rem; }

.peb-bench-badge {
  font-family:'Jost',sans-serif; font-weight:600; font-size:.72rem;
  padding:.25rem .55rem; border-radius:99px;
  display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap;
}
.peb-bench-badge-above { background:#EAF1EA; color:#3B5F44; }
.peb-bench-badge-onpar { background:#F4EFE6; color:#6B6152; }
.peb-bench-badge-below { background:var(--accent-lt); color:color-mix(in srgb, var(--accent) 75%, #1A2332); }

.peb-bench-scale {
  position:relative; height:34px; margin:.9rem 0 .6rem;
  padding-top:14px;
}
.peb-bench-scale-bar {
  position:absolute; left:0; right:0; top:18px; height:8px;
  background:#eef1f5; border-radius:4px; overflow:hidden;
}
.peb-bench-scale-fill {
  height:100%; background:var(--accent); opacity:.8; border-radius:4px;
  transition: width .4s ease;
}
.peb-bench-scale-marker {
  position:absolute; top:14px; bottom:8px; width:2px; background:#1A2332;
  transform:translateX(-1px);
  border-radius:1px;
}
/* Tick extending above the bar to connect the label */
.peb-bench-scale-marker::before {
  content:''; position:absolute; top:-6px; left:-1px; width:4px; height:6px;
  background:#1A2332; border-radius:1px;
}
.peb-bench-scale-marker::after {
  content:'Nat avg';
  position:absolute; bottom:100%; left:50%;
  transform:translate(-50%, -4px);
  font-family:'Jost',sans-serif; font-size:.6rem; font-weight:600;
  letter-spacing:.02em;
  color:#1A2332; white-space:nowrap;
  background:#fff;
  padding:1px 6px;
  border-radius:10px;
  border:1px solid rgba(20,30,50,.12);
  line-height:1.3;
}

.peb-bench-nums { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
.peb-bench-nums > div { text-align:center; padding:.4rem .2rem; border-radius:6px; background:var(--accent-lt); }
.peb-bench-num-val { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:600; color:#1A2332; line-height:1; }
.peb-bench-num-dim { color:var(--stone,#8E99A4); }
.peb-bench-num-risk { color:var(--accent); }
.peb-bench-num-lbl { font-family:'Jost',sans-serif; font-size:.68rem; color:var(--mid,#5A6570); margin-top:.25rem; line-height:1.2; }

/* Small screens */
@media (max-width: 1100px) {
  .peb-hero { grid-template-columns: 1fr !important; }
  .peb-trends-grid { grid-template-columns: repeat(2,1fr); }
}

/* Remove "Metric" vertical side-label from KPI cards */
.metric-card::before { content: none !important; display: none !important; }

/* ========== Tabbar left-shift + cleanup (m0233) ========== */
.pebble-tabbar-inner {
  margin-left: 0 !important;
  padding-left: 1rem !important;
  justify-content: flex-start !important;
}
.pebble-tabbar { padding-left: 1.5rem !important; }

/* Tidy topbar (avatar + school chip) */
.avatar-section { gap: .55rem !important; }
.avatar-section > div:not(.avatar) { line-height: 1.1; }

/* ========== Wellbeing section (peb-wb-*) ========== */
.peb-wb-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.25rem;
  width: 100%;
}
.peb-wb-hero-stat {
  background: #fff;
  border: 1px solid rgba(20,30,50,.08);
  border-left: 4px solid var(--navy, #2A6EE5);
  border-radius: 10px;
  padding: 1.35rem 1.75rem;
  display: flex;
  align-items: center;
  gap: 1.4rem;
  min-height: 110px;
}
.peb-wb-hero-risk { border-left-color: #E72997; }
.peb-wb-hero-num {
  font-family: 'Playfair Display', serif;
  font-size: 3.6rem; font-weight: 700;
  color: var(--ink, #0E1A2B);
  line-height: .95;
  flex-shrink: 0;
  min-width: 4ch;
}
.peb-wb-hero-stat > div:last-child { flex: 1; min-width: 0; }
.peb-wb-hero-lbl {
  font-family: 'Jost', sans-serif;
  font-size: .8rem; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: var(--mid, #5A6570);
  margin-bottom: .35rem;
  line-height: 1.25;
}
.peb-wb-hero-sub {
  font-family: 'EB Garamond', serif; font-style: italic;
  font-size: 1rem; color: #6b7280; line-height: 1.35;
}

.peb-wb-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .85rem;
  margin-bottom: 1.5rem;
}
.peb-wb-card {
  text-align: left; cursor: pointer;
  background: #fff;
  border: 1px solid rgba(20,30,50,.1);
  border-radius: 10px;
  padding: .9rem 1rem 1rem;
  font-family: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  position: relative;
}
.peb-wb-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(20,30,50,.08); border-color: rgba(20,30,50,.2); }
.peb-wb-sev-high { border-left: 4px solid #E72997; }
.peb-wb-sev-medium { border-left: 4px solid #FF8C01; }
.peb-wb-sev-low { border-left: 4px solid #2A6EE5; }

.peb-wb-card-head {
  display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; margin-bottom: .7rem;
}
.peb-wb-card-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.05rem; font-weight: 600; color: var(--ink, #0E1A2B); line-height: 1.2;
}
.peb-wb-card-desc {
  font-family: 'EB Garamond', serif; font-style: italic;
  font-size: .8rem; color: #6b7280; margin-top: .15rem; line-height: 1.3;
}
.peb-wb-card-count { text-align: right; }
.peb-wb-card-count-n {
  font-family: 'Playfair Display', serif;
  font-size: 1.7rem; font-weight: 700; color: var(--ink, #0E1A2B); line-height: 1;
}
.peb-wb-sev-high .peb-wb-card-count-n { color: #E72997; }
.peb-wb-card-count-l {
  font-family: 'Jost', sans-serif;
  font-size: .65rem; color: var(--mid, #5A6570); text-transform: uppercase; letter-spacing: .06em; margin-top: .15rem;
}

.peb-wb-stack {
  display: flex;
  height: 10px; border-radius: 5px; overflow: hidden;
  background: #E8ECF1;
  margin-bottom: .55rem;
}
.peb-wb-stack > div { height: 100%; transition: width .3s ease; }

.peb-wb-stack-legend {
  display: flex; justify-content: flex-start; align-items: center; gap: .9rem; flex-wrap: wrap;
  font-family: 'Jost', sans-serif; font-size: .72rem; color: var(--mid, #5A6570);
  line-height: 1.3;
}
.peb-wb-stack-legend > span { display: inline-flex; align-items: center; gap: .35rem; }
.peb-wb-stack-legend > span strong { color: #1A2332; font-weight: 700; font-size: .78rem; }
.peb-wb-stack-legend .sq { width: 9px; height: 9px; border-radius: 2px; display: inline-block; flex-shrink: 0; }
.peb-wb-cta {
  margin-left: auto !important;
  color: var(--navy, #2A6EE5) !important;
  font-weight: 600;
}
.peb-wb-card:hover .peb-wb-cta { text-decoration: underline; }

.peb-wb-flagged {
  background: #fff;
  border: 1px solid rgba(20,30,50,.08);
  border-radius: 10px;
  padding: .7rem .9rem .5rem;
}
.peb-wb-flagged-head {
  display: flex; justify-content: space-between; align-items: center; gap: .8rem;
  padding-bottom: .5rem; border-bottom: 1px solid rgba(20,30,50,.06); margin-bottom: .2rem;
}
.peb-wb-flagged-title {
  font-family: 'Playfair Display', serif; font-size: .98rem; font-weight: 600; color: var(--ink, #0E1A2B);
  line-height: 1.2;
}
.peb-wb-flagged-desc {
  font-family: 'EB Garamond', serif; font-style: italic; font-size: .8rem; color: #6b7280;
  line-height: 1.25;
}
.peb-wb-flagged-all {
  background: transparent; border: 1px solid rgba(20,30,50,.15);
  color: var(--navy, #2A6EE5);
  padding: .32rem .7rem; border-radius: 6px; font-family: 'Jost', sans-serif; font-weight: 600; font-size: .72rem; cursor: pointer;
  white-space: nowrap;
}
.peb-wb-flagged-all:hover { background: var(--cream, #F6F2E9); }

.peb-wb-flag-row {
  display: grid;
  grid-template-columns: 30px 1fr auto 14px;
  gap: .65rem;
  align-items: center;
  width: 100%;
  background: transparent; border: none; border-bottom: 1px solid rgba(20,30,50,.04);
  padding: .42rem .15rem;
  cursor: pointer; text-align: left;
  font-family: inherit;
}
.peb-wb-flag-row:last-child { border-bottom: none; }
.peb-wb-flag-row:hover { background: rgba(246,242,233,.45); }

.peb-wb-flag-avatar {
  width: 30px; height: 30px; border-radius: 50%;
  background: linear-gradient(135deg, var(--navy, #2A6EE5), var(--navy-dk, #1B5AC4));
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif; font-weight: 700; font-size: .72rem;
  letter-spacing: .02em;
}
.peb-wb-flag-name {
  font-family: 'Playfair Display', serif; font-weight: 600; color: var(--ink, #0E1A2B);
  font-size: .88rem; line-height: 1.1;
}
.peb-wb-flag-meta {
  font-family: 'EB Garamond', serif; font-style: italic; font-size: .74rem; color: #6b7280;
  line-height: 1.15;
}
.peb-wb-flag-chips { display: flex; gap: .25rem; flex-wrap: wrap; max-width: 240px; justify-content: flex-end; }
.peb-wb-flag-chip {
  font-family: 'Jost', sans-serif; font-size: .6rem; font-weight: 600;
  padding: .12rem .38rem; border-radius: 4px; 99px;
  background: #FCE4F1; color: #7a0b2a;
  white-space: nowrap;
}
.peb-wb-flag-chip-more { background: #E8ECF1; color: var(--mid, #5A6570); }
.peb-wb-flag-arrow {
  font-size: 1.4rem; color: rgba(20,30,50,.25); line-height: 1;
}
.peb-wb-flag-row:hover .peb-wb-flag-arrow { color: var(--navy, #2A6EE5); }

/* ========== Year-group "Groups needing attention" (peb-yr-*) ========== */
.peb-yr-list { display: flex; flex-direction: column; gap: .5rem; margin-top: .8rem; }
.peb-yr-row {
  display: grid;
  grid-template-columns: 36px 110px 1fr 160px 20px;
  gap: 1rem; align-items: center;
  background: #fff;
  border: 1px solid rgba(20,30,50,.08);
  border-radius: 10px;
  padding: .7rem .9rem;
  cursor: pointer; text-align: left; font-family: inherit;
  transition: transform .15s ease, box-shadow .15s ease;
}
.peb-yr-row:hover { transform: translateX(2px); box-shadow: 0 4px 14px rgba(20,30,50,.06); }
.peb-yr-sev-high { border-left: 4px solid #E72997; }
.peb-yr-sev-med { border-left: 4px solid #FF8C01; }
.peb-yr-sev-low { border-left: 4px solid #2A6EE5; }

.peb-yr-rank {
  font-family: 'Playfair Display', serif; font-size: 1.6rem; font-weight: 700;
  color: var(--stone, #8E99A4); line-height: 1; text-align: center;
}
.peb-yr-sev-high .peb-yr-rank { color: #E72997; }

.peb-yr-year { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 1.05rem; color: var(--ink, #0E1A2B); }
.peb-yr-total { font-family: 'EB Garamond', serif; font-style: italic; font-size: .8rem; color: #6b7280; }

.peb-yr-bars { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: .35rem; }
.peb-yr-bar {
  height: 26px; background: #F3F5F8; border-radius: 4px; overflow: hidden; position: relative;
}
.peb-yr-bar span {
  display: block; height: 100%; border-radius: 4px; transition: width .4s ease;
}

.peb-yr-signal {
  text-align: right;
  font-family: 'Jost', sans-serif;
}
.peb-yr-signal-lbl {
  font-size: .62rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--stone, #8E99A4); font-weight: 500;
}
.peb-yr-signal-val {
  font-size: .82rem; color: var(--ink, #0E1A2B); font-weight: 600; margin-top: .15rem;
}

.peb-yr-arrow {
  font-size: 1.3rem; color: rgba(20,30,50,.25); text-align: center;
}
.peb-yr-row:hover .peb-yr-arrow { color: var(--navy, #2A6EE5); }

.peb-yr-legend {
  display: flex; gap: 1rem; flex-wrap: wrap; margin-top: .9rem;
  font-family: 'Jost', sans-serif; font-size: .7rem; color: var(--mid, #5A6570);
  padding-top: .75rem; border-top: 1px dashed rgba(20,30,50,.1);
}
.peb-yr-legend > span { display: inline-flex; align-items: center; gap: .35rem; }
.peb-yr-legend .sq { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }

@media (max-width: 1200px) {
  .peb-yr-row { grid-template-columns: 28px 90px 1fr 120px 20px; gap: .6rem; }
  .peb-wb-grid { grid-template-columns: repeat(2, 1fr); }
  .peb-wb-hero { grid-template-columns: 1fr 1fr; }
  .peb-wb-hero-stat:nth-child(3) { grid-column: span 2; }
}
@media (max-width: 800px) {
  .peb-wb-grid { grid-template-columns: 1fr; }
  .peb-wb-hero { grid-template-columns: 1fr; }
  .peb-wb-hero-stat:nth-child(3) { grid-column: auto; }
  .peb-wb-flag-row { grid-template-columns: 36px 1fr 20px; }
  .peb-wb-flag-chips { display: none; }
  .peb-yr-row { grid-template-columns: 28px 1fr 20px; }
  .peb-yr-bars, .peb-yr-signal { display: none; }
}

/* ============================================================
   TWEAKS PANEL — expanded controls & their CSS effects
   ============================================================ */

/* ============================================================
   TOPBAR → TABBAR merge (m0271)
   Move school chip, avatar, and sign-out onto the Pebble tabbar row.
   ============================================================ */
.pebble-tabbar { padding-right: 1.5rem !important; }
.pebble-tabbar-inner {
  display: flex !important;
  align-items: stretch !important;
}
.pebble-tabbar-inner .pebble-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: .4rem;
}
.pebble-tabbar-inner .pebble-right .school-chip { padding: .35rem .85rem; font-size: .82rem; }
.pebble-tabbar-inner .pebble-right .avatar-section { gap: .55rem; }
.pebble-tabbar-inner .pebble-right .avatar {
  width: 32px; height: 32px; font-size: .8rem;
}
.pebble-tabbar-inner .pebble-right .role-badge { font-size: .65rem; padding: .2rem .45rem; }

/* Slim topbar: original topbar replaced by enriched pebble tab bar (m0424/m0433) */
.topbar { display: none !important; }

/* Enriched pebble tab bar: logo absolute-left, tabs centered (original styling), right cluster absolute-right */
.pebble-tabbar { position: relative; }
.pebble-tabbar-logo {
  position: absolute;
  left: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  height: 40px; width: auto; display: block;
  z-index: 2;
  filter: brightness(0) invert(1);
}
.pebble-tabbar-right {
  position: absolute;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 2;
}
.pebble-tabbar-right .school-chip {
  background: rgba(255,255,255,.15);
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
  padding: .45rem .9rem;
  border-radius: 2rem;
  font-size: .85rem;
  font-family: 'Jost', sans-serif;
  font-weight: 500;
}
.pebble-tabbar-right .avatar-section {
  display: flex; align-items: center; gap: .7rem;
}
.pebble-tabbar-right .avatar {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--primary, #2A6EE5); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif; font-weight: 700; font-size: .95rem;
  flex-shrink: 0;
}
.pebble-tabbar-right .role-badge {
  display: inline-block;
  font-family: 'Jost', sans-serif;
  font-size: .62rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  padding: .25rem .55rem;
  border-radius: .3rem;
  background: #FBC258;
  color: #004272;
}
.pebble-signout {
  padding: .4rem .8rem;
  background: var(--pale, #E8ECF1);
  border: 1px solid var(--mist, #D1D8E0);
  border-radius: .4rem;
  font-size: .78rem;
  font-weight: 600;
  font-family: 'Jost', sans-serif;
  color: var(--mid, #5A6570);
  cursor: pointer;
  transition: background .15s;
}
.pebble-signout:hover { background: var(--mist, #D1D8E0); }

/* Reserve room on left/right of inner tabs so they don't overlap the clusters */
.pebble-tabbar-inner {
  padding-left: 110px !important;   /* leave room for logo */
  padding-right: 340px !important;  /* leave room for right cluster */
}

/* Group title in tweaks panel */
.tweaks-body .tweak-group-title {
  font-family: 'Jost', sans-serif;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--stone, #8E99A4);
  padding: .8rem 0 .3rem;
  margin-top: .2rem;
  border-top: 1px dashed rgba(20,30,50,.08);
}
.tweaks-body .tweak-group-title:first-child {
  border-top: none; margin-top: 0; padding-top: 0;
}
.tweaks-body .tweak-row { margin-bottom: .55rem; }

/* Report palette accent (new default) — draws from pebble.css tokens */
html[data-accent="report"] { --navy: #2A6EE5; --navy-dk: #1B5AC4; }
html[data-accent="gold"] { --navy: #A9881A; --navy-dk: #7A610D; }
html[data-accent="slate"] { --navy: #334155; --navy-dk: #1e293b; }

/* Chart palette (wire up in JS via data-chart-palette but tokenized here) */
html[data-chart-palette="warm"] { --peb-chart-1:#E72997; --peb-chart-2:#FF8C01; --peb-chart-3:#FF8C01; --peb-chart-4:#C44A00; }
html[data-chart-palette="cool"] { --peb-chart-1:#2A6EE5; --peb-chart-2:#2A6EE5; --peb-chart-3:#2A6EE5; --peb-chart-4:#1f6c5b; }
html[data-chart-palette="mono"] { --peb-chart-1:#0E1A2B; --peb-chart-2:#5A6570; --peb-chart-3:#8E99A4; --peb-chart-4:#D1D8E0; }
html[data-chart-palette="report"] { --peb-chart-1:#2A6EE5; --peb-chart-2:#E8C840; --peb-chart-3:#E72997; --peb-chart-4:#2A6EE5; }

/* Background textures */
html[data-bg-texture="cool"] body {
  background:
    radial-gradient(1200px 600px at 90% -200px, #EEF6FD 0%, transparent 60%),
    radial-gradient(900px 500px at -10% 120%, #E3EDFA 0%, transparent 55%),
    #F5F7FA !important;
}
html[data-bg-texture="flat"] body {
  background: #FAFAF5 !important;
}

/* Corners */
html[data-corner-style="sharp"] .metric-card,
html[data-corner-style="sharp"] .widget,
html[data-corner-style="sharp"] .section-card,
html[data-corner-style="sharp"] .charts-section,
html[data-corner-style="sharp"] .rp-page,
html[data-corner-style="sharp"] .peb-wb-card,
html[data-corner-style="sharp"] .peb-yr-row,
html[data-corner-style="sharp"] #pebHero .peb-hero { border-radius: 2px !important; }

html[data-corner-style="soft"] .metric-card,
html[data-corner-style="soft"] .widget,
html[data-corner-style="soft"] .section-card,
html[data-corner-style="soft"] .charts-section,
html[data-corner-style="soft"] .rp-page,
html[data-corner-style="soft"] .peb-wb-card,
html[data-corner-style="soft"] .peb-yr-row { border-radius: 20px !important; }

/* Card shadow */
html[data-card-shadow="none"] .metric-card,
html[data-card-shadow="none"] .widget,
html[data-card-shadow="none"] .section-card,
html[data-card-shadow="none"] .charts-section,
html[data-card-shadow="none"] .peb-wb-card,
html[data-card-shadow="none"] .peb-yr-row { box-shadow: none !important; }

html[data-card-shadow="lift"] .metric-card,
html[data-card-shadow="lift"] .widget,
html[data-card-shadow="lift"] .section-card,
html[data-card-shadow="lift"] .charts-section,
html[data-card-shadow="lift"] .peb-wb-card { box-shadow: 0 8px 28px rgba(20,30,50,.12), 0 2px 6px rgba(0,0,0,.05) !important; }

/* Page width */
:root { --peb-page-max: 1600px; }
.app-main, .dashboard-content, #dashboardSections, #metricsRow, .pebble-tabbar-inner, .topbar, #pebHero .peb-hero {
  max-width: var(--peb-page-max);
  margin-left: auto; margin-right: auto;
}

/* Typography */
html[data-font-head="garamond"] h1, html[data-font-head="garamond"] h2, html[data-font-head="garamond"] h3,
html[data-font-head="garamond"] .metric-card-number, html[data-font-head="garamond"] .peb-wb-card-name, html[data-font-head="garamond"] .peb-yr-year {
  font-family: 'EB Garamond', serif !important;
}
html[data-font-head="jost"] h1, html[data-font-head="jost"] h2, html[data-font-head="jost"] h3,
html[data-font-head="jost"] .metric-card-number, html[data-font-head="jost"] .peb-wb-card-name, html[data-font-head="jost"] .peb-yr-year {
  font-family: 'Jost', sans-serif !important;
  letter-spacing: -.02em;
}
html[data-font-body="garamond"] body { font-family: 'EB Garamond', serif !important; }
html[data-font-body="system"] body { font-family: -apple-system, system-ui, sans-serif !important; }

/* Show/hide topbar elements */
html[data-show-motto="false"] .pebble-brand-motto { display: none !important; }
html[data-show-page-num="false"] .pebble-page-num { display: none !important; }
html[data-show-subband="false"] .pebble-subband { display: none !important; }
html[data-show-school-chip="false"] .school-chip { display: none !important; }
html[data-show-avatar="false"] .avatar-section .avatar { display: none !important; }

/* Tab shape */
html[data-tab-style="flat"] .pebble-tab {
  border-radius: 0 !important; border: none !important; border-bottom: 2px solid transparent !important; background: transparent !important;
}
html[data-tab-style="flat"] .pebble-tab.active { border-bottom-color: var(--navy) !important; background: transparent !important; color: var(--navy) !important; }
html[data-tab-style="pill"] .pebble-tab {
  border-radius: 99px !important; border: 1px solid rgba(20,30,50,.1) !important; margin-right: .5rem; background: #fff !important;
}
html[data-tab-style="pill"] .pebble-tab.active { background: var(--navy) !important; color: #fff !important; border-color: var(--navy) !important; }

/* Report button style */
html[data-report-btn-style="gold"] .generate-report-btn { background: var(--gold, #E8C840) !important; color: #1A2332 !important; }
html[data-report-btn-style="gold"] .generate-report-btn:hover { background: #d4b224 !important; }
html[data-report-btn-style="ghost"] .generate-report-btn { background: transparent !important; color: var(--navy) !important; border: 1px solid var(--navy) !important; }

/* KPI accent bar position */
html[data-kpi-bar-pos="top"] .metric-card::after { width: auto !important; height: 4px !important; right: 0 !important; left: 0 !important; bottom: auto !important; top: 0 !important; border-radius: 14px 14px 0 0 !important; }
html[data-kpi-bar-pos="off"] .metric-card::after { display: none !important; }

/* Widget layout */
html[data-widget-layout="grid3"] .dash-section-grid { grid-template-columns: repeat(3, 1fr) !important; }
html[data-widget-layout="stack"] .dash-section-grid { grid-template-columns: 1fr !important; }

/* Grid lines */
html[data-chart-grid="off"] canvas { /* handled by JS options; this provides a softer look if needed */ }

/* Row stripes on student table */
html[data-row-stripes="on"] .student-table tbody tr:nth-child(even) { background: rgba(246,242,233,.5); }

/* Section visibility */
html[data-benchmark-visible="false"] .peb-bench-panel,
html[data-benchmark-visible="false"] .section-card:has(.peb-bench-panel) { display: none !important; }
html[data-year-groups-visible="false"] .widget:has(.peb-yr-list) { display: none !important; }
html[data-show-trends-sparklines="false"] .peb-trend-spark { display: none !important; }

/* Trend toggle */
html[data-show-trends="false"] #pebTrends { display: none !important; }
html[data-show-flagged="false"] .peb-wb-flagged { display: none !important; }


/* ========== Benchmarking widget: report palette (m0297) ========== */
/* Cream "paper" background matching the report's feel */
.widget:has(.peb-bench-grid) {
  background: linear-gradient(180deg, #FAF6EC 0%, #FFFFFF 55%) !important;
  border: 1px solid rgba(178,160,120,.22) !important;
  box-shadow: 0 1px 0 rgba(20,30,50,.02), 0 4px 14px rgba(178,160,120,.08) !important;
}
.widget:has(.peb-bench-grid) h3 {
  color: #1A2332;
  font-family: 'Playfair Display', serif;
}

/* Softer card surface on inner bench-cards */
.peb-bench-card {
  background: #FFFDF9;
  border-color: rgba(178,160,120,.18);
}
.peb-bench-card.peb-bench-onpar {
  background: linear-gradient(180deg, #FBF7EC 0%, #FFFDF9 55%);
}

/* Number tiles: warm paper tone instead of tinted by accent */
.peb-bench-nums > div {
  background: color-mix(in srgb, var(--accent-lt) 55%, #FBF6E9);
}


/* ========== Unified CLEAN WHITE palette for ALL dashboard widgets (m0438/m0439) ========== */
/* Replace paper look with plain white backgrounds; keep serif/italic typography system */
.widget {
  background: #FFFFFF !important;
  border: 1px solid rgba(20,30,50,.08) !important;
  box-shadow: 0 1px 3px rgba(20,30,50,.04), 0 4px 14px rgba(20,30,50,.03) !important;
  border-radius: .75rem !important;
}
.widget h3 {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: 1.15rem !important;
  color: #1A2332 !important;
  letter-spacing: -0.005em;
  margin-bottom: .35rem !important;
  line-height: 1.2;
}
.widget .chart-desc {
  font-family: 'EB Garamond', serif !important;
  font-style: italic;
  font-size: .92rem;
  color: #6b7280;
  margin-bottom: 1rem;
  line-height: 1.45;
}

/* Section headers across the dashboard: serif + warm ink */
.dash-section-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: 1.35rem !important;
  color: #1A2332 !important;
  letter-spacing: -.01em;
}
.dash-section-desc {
  font-family: 'EB Garamond', serif !important;
  font-style: italic;
  font-size: 1rem;
  color: #6b7280;
  line-height: 1.45;
  margin-top: .15rem;
}

/* Wellbeing hero stats — clean white */
.peb-wb-hero-stat {
  background: #FFFFFF !important;
  border: 1px solid rgba(20,30,50,.08) !important;
  border-left-width: 4px !important;
}
.peb-wb-hero-num {
  font-family: 'Playfair Display', serif !important;
}

/* Wellbeing area cards — white */
.peb-wb-card {
  background: #FFFFFF !important;
  border-color: rgba(20,30,50,.08) !important;
}
.peb-wb-card:hover {
  border-color: rgba(20,30,50,.22) !important;
}
.peb-wb-card-name { font-family: 'Playfair Display', serif !important; }
.peb-wb-card-desc { font-family: 'EB Garamond', serif !important; font-style: italic; }

/* Trends cards — white */
.peb-trend-card,
.peb-yr-signal,
.peb-yr-card {
  background: #FFFFFF !important;
  border-color: rgba(20,30,50,.08) !important;
}

/* Stat tiles */
.stat-box {
  background: #F8FAFC !important;
  border: 1px solid rgba(20,30,50,.06) !important;
}
.stat-value { font-family: 'Playfair Display', serif !important; font-weight: 600 !important; }
.stat-label {
  font-family: 'Jost', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .7rem;
  color: #6b7280;
}

/* Insight boxes */
.insight-box {
  background: #F8FAFC !important;
  border: 1px solid rgba(20,30,50,.06) !important;
  border-left: 4px solid var(--primary, #2A6EE5) !important;
  font-family: 'EB Garamond', serif !important;
  font-size: .95rem;
  line-height: 1.45;
}

/* Slot tracker */
.slot-bar {
  background: #F1F4F8 !important;
  border: 1px solid rgba(20,30,50,.06);
}
.slot-label {
  font-family: 'Jost', sans-serif;
  font-weight: 600;
  color: #5A6570;
  font-size: .78rem;
  letter-spacing: .03em;
}

/* Flagged pupils widget */
.peb-wb-flagged {
  background: #FFFFFF !important;
  border: 1px solid rgba(20,30,50,.08) !important;
}
.peb-wb-flagged-title { font-family: 'Playfair Display', serif !important; }
.peb-wb-flagged-desc { font-family: 'EB Garamond', serif !important; font-style: italic; }

/* Benchmarking widget — override prior cream treatment to white */
.widget:has(.peb-bench-grid) {
  background: #FFFFFF !important;
  border: 1px solid rgba(20,30,50,.08) !important;
  box-shadow: 0 1px 3px rgba(20,30,50,.04), 0 4px 14px rgba(20,30,50,.03) !important;
}
.peb-bench-card {
  background: #FFFFFF !important;
  border-color: rgba(20,30,50,.08) !important;
}
.peb-bench-card.peb-bench-onpar {
  background: #F8FAFC !important;
}
.peb-bench-nums > div {
  background: #F8FAFC !important;
}


/* ========== Palette Systems (m0475) ==========
   Three coherent palettes selectable via Tweaks > Palette system.
   Each overrides root colour vars so existing rules use the new tokens.
   Cards/surfaces stay WHITE in all three — colour only signals meaning. */

/* --- Quiet Structure: Schologists navy primary, strict severity semantics --- */
html[data-palette-system="quiet"] {
  --primary:#004272;--primary-lt:#E6EEF5;--primary-md:#8BB0CF;
  --blue:#004272;--blue-lt:#E6EEF5;--blue-md:#8BB0CF;
  --green:#2F8A6B;--green-lt:#DEEFE7;
  --teal:#2F8A6B;--teal-lt:#DEEFE7;
  --amber:#D89A2A;--amber-lt:#FBF0D8;
  --accent-yellow:#D89A2A;--accent-yellow-lt:#FBF0D8;
  --red:#D14343;--red-lt:#FBEAEA;
  --accent-red:#D14343;--accent-red-lt:#FBEAEA;
  --accent-green:#2F8A6B;--accent-green-lt:#DEEFE7;
  --purple:#D14343;--purple-lt:#FBEAEA;
  --focus:#FF8C01;--focus-lt:#FFF3E0;--focus-md:#FFB74D;--focus-dk:#E67A00;
  --thinking:#004272;--thinking-lt:#E6EEF5;--thinking-md:#7EAAF0;--thinking-dk:#002847;
  --memory:#B11E77;--memory-lt:#F6DEED;--memory-md:#DB86BA;--memory-dk:#7D1554;
  --navy:#004272;--navy-dk:#002847;
  --veyra-navy:#004272;--veyra-gold:#D89A2A;
  --gold:#D89A2A;--gold-soft:#E8B857;
}

/* --- Schologists Editorial: navy + gold, muted domain roles --- */
html[data-palette-system="editorial"] {
  --primary:#004272;--primary-lt:#E6EEF5;--primary-md:#8BB0CF;
  --blue:#004272;--blue-lt:#E6EEF5;--blue-md:#8BB0CF;
  --green:#2F6E64;--green-lt:#DCE9E6;
  --teal:#2F6E64;--teal-lt:#DCE9E6;
  --amber:#CD9A2C;--amber-lt:#FAEFD4;
  --accent-yellow:#CD9A2C;--accent-yellow-lt:#FAEFD4;
  --red:#C2423A;--red-lt:#F8E7E5;
  --accent-red:#C2423A;--accent-red-lt:#F8E7E5;
  --accent-green:#2F6E64;--accent-green-lt:#DCE9E6;
  --purple:#C2423A;--purple-lt:#F8E7E5;
  --focus:#E6A22E;--focus-lt:#FAEFD4;--focus-md:#F0BF6D;--focus-dk:#B6801E;
  --thinking:#004272;--thinking-lt:#E6EEF5;--thinking-md:#8BB0CF;--thinking-dk:#002847;
  --memory:#8E2A5F;--memory-lt:#EFDDE7;--memory-md:#BC7AA1;--memory-dk:#5E1B3E;
  --navy:#004272;--navy-dk:#002847;
  --veyra-navy:#004272;--veyra-gold:#CD9A2C;
  --gold:#CD9A2C;--gold-soft:#E8C480;
}

/* --- Domain Forward: the 3 domain brand colours --- */
html[data-palette-system="domain"] {
  --primary:#2A6EE5;--primary-lt:#E3EDFA;--primary-md:#7EAAF0;
  --blue:#2A6EE5;--blue-lt:#E3EDFA;--blue-md:#7EAAF0;
  --green:#2A6EE5;--green-lt:#E3EDFA;
  --teal:#2A6EE5;--teal-lt:#E3EDFA;
  --amber:#FF8C01;--amber-lt:#FFF3E0;
  --accent-yellow:#FF8C01;--accent-yellow-lt:#FFF3E0;
  --red:#E72997;--red-lt:#FCE4F1;
  --accent-red:#E72997;--accent-red-lt:#FCE4F1;
  --accent-green:#2A6EE5;--accent-green-lt:#E3EDFA;
  --purple:#E72997;--purple-lt:#FCE4F1;
  --focus:#FF8C01;--focus-lt:#FFF3E0;--focus-md:#FFB74D;--focus-dk:#E67A00;
  --thinking:#2A6EE5;--thinking-lt:#E3EDFA;--thinking-md:#7EAAF0;--thinking-dk:#1B5AC4;
  --memory:#E72997;--memory-lt:#FCE4F1;--memory-md:#F48DC4;--memory-dk:#C4157A;
  --navy:#2A6EE5;--navy-dk:#1B5AC4;
  --veyra-navy:#2A6EE5;--veyra-gold:#FF8C01;
  --gold:#FF8C01;--gold-soft:#FFB74D;
}

/* All palettes share: white paper surfaces, grey rules, no tinted cards */
html[data-palette-system] .widget,
html[data-palette-system] .peb-wb-hero-stat,
html[data-palette-system] .peb-wb-card,
html[data-palette-system] .peb-wb-flagged,
html[data-palette-system] .peb-bench-card,
html[data-palette-system] .peb-trend-card,
html[data-palette-system] .peb-yr-signal,
html[data-palette-system] .peb-yr-card {
  background:#FFFFFF !important;
}


/* Palette system picker — big, prominent card-choice UI at top of Tweaks */
.palette-row { padding-top: 0 !important; }
.palette-choices {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  width: 100%;
}
.palette-choice {
  display: grid;
  grid-template-columns: 56px 1fr;
  grid-template-rows: auto auto;
  column-gap: .75rem;
  row-gap: .1rem;
  align-items: center;
  padding: .6rem .75rem;
  background: #fff;
  border: 1px solid rgba(20,30,50,.12);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  text-align: left;
}
.palette-choice:hover {
  border-color: #004272;
  background: #F8FAFC;
}
.palette-choice.active {
  border-color: #004272;
  border-width: 2px;
  background: #F8FAFC;
  padding: calc(.6rem - 1px) calc(.75rem - 1px);
}
.palette-swatches {
  grid-row: 1 / span 2;
  display: flex;
  gap: 3px;
  border-radius: 4px;
  overflow: hidden;
  height: 36px;
  width: 56px;
}
.palette-swatches > span {
  flex: 1;
  display: block;
}
.palette-name {
  font-family: 'Jost', sans-serif;
  font-weight: 700;
  font-size: .82rem;
  color: #1A2332;
  line-height: 1.15;
}
.palette-desc {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: .78rem;
  color: #6B7280;
  line-height: 1.2;
}


/* Hide 'Most at-risk pupils' widget per user request (m0551) */
.peb-wb-flagged { display: none !important; }


/* Clean engagement metric rows — no coloured icons, uniform navy treatment (m0569) */
.eng-metric.eng-metric-clean {
  background: #fff !important;
  border: 1px solid var(--mist, #e4e0da) !important;
  padding: .75rem .9rem !important;
  border-radius: .5rem !important;
  margin-bottom: .5rem !important;
  display: block !important;
}
.eng-metric.eng-metric-clean .eng-metric-label {
  font-family: 'Jost', sans-serif;
  font-size: .72rem;
  color: var(--stone, #5A6570);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .1rem;
}
.eng-metric.eng-metric-clean .eng-metric-value {
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--blue, #004272);
  line-height: 1.2;
  margin-bottom: .15rem;
}
.eng-metric.eng-metric-clean .eng-metric-sub {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: .82rem;
  color: var(--stone, #5A6570);
  line-height: 1.3;
}


/* ---------- Intervention gap by year group ---------- */
.igap-list {
  display: flex;
  flex-direction: column;
  gap: .85rem;
  padding-top: .25rem;
}
.igap-row {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(20,30,50,.08);
  padding: .55rem 0 .85rem;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
  transition: background .15s ease;
}
.igap-row:last-child { border-bottom: none; }
.igap-row:hover { background: rgba(0,66,114,.035); }
.igap-row:focus-visible { outline: 2px solid var(--navy, #004272); outline-offset: 2px; }

.igap-row-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .45rem;
}
.igap-year {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: -.01em;
  color: var(--ink, #1A2332);
}
.igap-count {
  font-family: 'EB Garamond', serif;
  font-size: .92rem;
  color: var(--stone, #5A6570);
}
.igap-gap-label {
  color: var(--stone, #5A6570);
}
.igap-gap-label.has-gap {
  color: var(--red, #D14343);
  font-weight: 600;
}

.igap-bar {
  position: relative;
  height: 22px;
  background: var(--red, #D14343);
  border-radius: 3px;
  overflow: hidden;
  min-width: 80px;
}
.igap-bar-referred {
  position: absolute;
  top: 0; left: 0; bottom: 0;
  background: var(--navy, #004272);
  transition: width .3s ease;
}
.igap-bar-pct {
  position: absolute;
  top: 0; bottom: 0; right: .55rem;
  display: flex;
  align-items: center;
  font-family: 'Jost', sans-serif;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: #fff;
  mix-blend-mode: normal;
  text-shadow: 0 0 2px rgba(0,0,0,.2);
}

.igap-empty {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  color: var(--stone, #5A6570);
  padding: 1.25rem 0;
}



/* ---------- Engagement matrix (whole school × year groups) ---------- */
.eng-matrix {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-top: .5rem;
}
.eng-matrix-row {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(20,30,50,.08);
}
.eng-matrix-row:last-child { border-bottom: none; }

.eng-matrix-head-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.eng-matrix-meta {
  flex: 1 1 auto;
  min-width: 0;
}

.eng-matrix-label {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: -.01em;
  color: var(--ink, #1A2332);
  line-height: 1.25;
  margin-bottom: .1rem;
}
.eng-matrix-sub {
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: .88rem;
  color: var(--stone, #5A6570);
  line-height: 1.35;
}
.eng-matrix-head-val {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -.02em;
  color: var(--ink, #1A2332);
  line-height: 1.1;
  white-space: nowrap;
  flex: 0 0 auto;
}
.eng-matrix-link {
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
  font-family: 'EB Garamond', serif;
  font-style: italic;
  font-size: .85rem;
  color: var(--navy, #004272);
  cursor: pointer;
  opacity: .8;
  white-space: nowrap;
  margin-left: .75rem;
}
.eng-matrix-link:hover { opacity: 1; text-decoration: underline; }

.eng-matrix-cells {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .4rem;
}
.eng-yr-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .1rem;
  padding: .4rem .2rem;
  background: rgba(20,30,50,.03);
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
  transition: background .15s ease, border-color .15s ease;
  min-width: 0;
}
.eng-yr-cell:hover {
  background: rgba(0,66,114,.08);
  border-color: rgba(0,66,114,.25);
}
.eng-yr-cell:focus-visible {
  outline: 2px solid var(--navy, #004272);
  outline-offset: 2px;
}
.eng-yr-cell-val {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: -.02em;
  color: var(--ink, #1A2332);
  line-height: 1;
}
.eng-yr-cell-lbl {
  font-family: 'Jost', sans-serif;
  font-size: .62rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--stone, #5A6570);
}
.eng-yr-cell.is-flag {
  background: rgba(209,67,67,.1);
  border-color: rgba(209,67,67,.35);
}
.eng-yr-cell.is-flag .eng-yr-cell-val {
  color: var(--red, #D14343);
}
.eng-yr-cell.is-flag .eng-yr-cell-lbl {
  color: rgba(209,67,67,.75);
}

@media (max-width: 900px) {
  .eng-matrix-cells { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
