:root {
  --color-zucchero-core: #1FA6A0;
  --color-zucchero-halo: rgba(31,166,160,0.25);
  --color-zucchero-text: #ffffff;
  
  --color-grigio-blu-core: #3B4B62;
  --color-grigio-blu-halo: rgba(59,75,98,0.25);
  --color-grigio-blu-text: #ffffff;
  
  --color-malva-core: #8E68B3;
  --color-malva-halo: rgba(142,104,179,0.25);
  --color-malva-text: #ffffff;
  
  --color-crema-core: #F5E6C8;
  --color-crema-halo: rgba(245,230,200,0.25);
  --color-crema-text: #1d1d1f;
  
  --color-spruce-core: #2F6B46;
  --color-spruce-halo: rgba(47,107,70,0.25);
  --color-spruce-text: #ffffff;
  
  --color-inkstone-core: #1F2B3A;
  --color-inkstone-halo: rgba(31,43,58,0.25);
  --color-inkstone-text: #ffffff;
  
  --color-seabright-core: #2E61B5;
  --color-seabright-halo: rgba(46,97,181,0.25);
  --color-seabright-text: #ffffff;
  
  --color-harbor-core: #203B83;
  --color-harbor-halo: rgba(32,59,131,0.25);
  --color-harbor-text: #ffffff;
  
  --color-tidal-core: #1E7BA2;
  --color-tidal-halo: rgba(30,123,162,0.25);
  --color-tidal-text: #ffffff;
  
  --color-tealbrook-core: #177B79;
  --color-tealbrook-halo: rgba(23,123,121,0.25);
  --color-tealbrook-text: #ffffff;
  
  --color-mintwave-core: #3ABFAF;
  --color-mintwave-halo: rgba(58,191,175,0.25);
  --color-mintwave-text: #0f1a14;
  
  --color-thicket-core: #3C7C52;
  --color-thicket-halo: rgba(60,124,82,0.25);
  --color-thicket-text: #ffffff;
  
  --color-grove-core: #1E6F3B;
  --color-grove-halo: rgba(30,111,59,0.25);
  --color-grove-text: #ffffff;
  
  --color-limeleaf-core: #6FBF4B;
  --color-limeleaf-halo: rgba(111,191,75,0.25);
  --color-limeleaf-text: #0d1a0b;
  
  --color-olive-husk-core: #6A6B2C;
  --color-olive-husk-halo: rgba(106,107,44,0.25);
  --color-olive-husk-text: #ffffff;
  
  --color-clay-core: #8A5A32;
  --color-clay-halo: rgba(138,90,50,0.25);
  --color-clay-text: #ffffff;
  
  --color-sandbar-core: #C58A4A;
  --color-sandbar-halo: rgba(197,138,74,0.25);
  --color-sandbar-text: #1d150e;
  
  --color-umber-core: #6A3F2B;
  --color-umber-halo: rgba(106,63,43,0.25);
  --color-umber-text: #ffffff;
  
  --color-sunpetal-core: #E8C83A;
  --color-sunpetal-halo: rgba(232,200,58,0.25);
  --color-sunpetal-text: #1a1600;
  
  --color-clement-core: #F08A21;
  --color-clement-halo: rgba(240,138,33,0.25);
  --color-clement-text: #1a1200;
  
  --color-tanger-core: #E76B2D;
  --color-tanger-halo: rgba(231,107,45,0.25);
  --color-tanger-text: #1a0f07;
  
  --color-brick-core: #C45A1E;
  --color-brick-halo: rgba(196,90,30,0.25);
  --color-brick-text: #ffffff;
  
  --color-crimson-core: #C7383A;
  --color-crimson-halo: rgba(199,56,58,0.25);
  --color-crimson-text: #ffffff;
  
  --color-rubydeep-core: #9B1136;
  --color-rubydeep-halo: rgba(155,17,54,0.25);
  --color-rubydeep-text: #ffffff;
  
  --color-magnetta-core: #C13AA0;
  --color-magnetta-halo: rgba(193,58,160,0.25);
  --color-magnetta-text: #ffffff;
  
  --color-roseglow-core: #E4668C;
  --color-roseglow-halo: rgba(228,102,140,0.25);
  --color-roseglow-text: #1f0e16;
  
  --color-lavandine-core: #8E71C8;
  --color-lavandine-halo: rgba(142,113,200,0.25);
  --color-lavandine-text: #ffffff;
  
  --color-violet-peak-core: #6C3FA3;
  --color-violet-peak-halo: rgba(108,63,163,0.25);
  --color-violet-peak-text: #ffffff;
  
  --color-steel-core: #6E7884;
  --color-steel-halo: rgba(110,120,132,0.25);
  --color-steel-text: #ffffff;
  
  --color-carbon-core: #222426;
  --color-carbon-halo: rgba(34,36,38,0.40);
  --color-carbon-text: #ffffff;
}

.teacher-color-chip {
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.9);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

/* Teacher color badge pills */
.teacher-color-badge {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
  border: 1px solid transparent;
}

/* Base rules for all events with color tokens */
.fc-event[data-color-token],
.fc-daygrid-event[data-color-token],
.fc-timegrid-event[data-color-token] {
  border-radius: 6px;
  padding: 4px 8px;
  overflow: hidden;
}


/* Teacher color badge rules for all color tokens */
.teacher-color-badge[data-color-token="zucchero"] {
  background: var(--color-zucchero-halo);
  color: var(--color-zucchero-core);
  border-color: var(--color-zucchero-core);
}
.teacher-color-badge[data-color-token="grigio-blu"] {
  background: var(--color-grigio-blu-halo);
  color: var(--color-grigio-blu-core);
  border-color: var(--color-grigio-blu-core);
}
.teacher-color-badge[data-color-token="malva"] {
  background: var(--color-malva-halo);
  color: var(--color-malva-core);
  border-color: var(--color-malva-core);
}
.teacher-color-badge[data-color-token="crema"] {
  background: var(--color-crema-halo);
  color: var(--color-crema-core);
  border-color: var(--color-crema-core);
}
.teacher-color-badge[data-color-token="spruce"] {
  background: var(--color-spruce-halo);
  color: var(--color-spruce-core);
  border-color: var(--color-spruce-core);
}
.teacher-color-badge[data-color-token="inkstone"] {
  background: var(--color-inkstone-halo);
  color: var(--color-inkstone-core);
  border-color: var(--color-inkstone-core);
}
.teacher-color-badge[data-color-token="seabright"] {
  background: var(--color-seabright-halo);
  color: var(--color-seabright-core);
  border-color: var(--color-seabright-core);
}
.teacher-color-badge[data-color-token="harbor"] {
  background: var(--color-harbor-halo);
  color: var(--color-harbor-core);
  border-color: var(--color-harbor-core);
}
.teacher-color-badge[data-color-token="tidal"] {
  background: var(--color-tidal-halo);
  color: var(--color-tidal-core);
  border-color: var(--color-tidal-core);
}
.teacher-color-badge[data-color-token="tealbrook"] {
  background: var(--color-tealbrook-halo);
  color: var(--color-tealbrook-core);
  border-color: var(--color-tealbrook-core);
}
.teacher-color-badge[data-color-token="mintwave"] {
  background: var(--color-mintwave-halo);
  color: var(--color-mintwave-core);
  border-color: var(--color-mintwave-core);
}
.teacher-color-badge[data-color-token="thicket"] {
  background: var(--color-thicket-halo);
  color: var(--color-thicket-core);
  border-color: var(--color-thicket-core);
}
.teacher-color-badge[data-color-token="grove"] {
  background: var(--color-grove-halo);
  color: var(--color-grove-core);
  border-color: var(--color-grove-core);
}
.teacher-color-badge[data-color-token="limeleaf"] {
  background: var(--color-limeleaf-halo);
  color: var(--color-limeleaf-core);
  border-color: var(--color-limeleaf-core);
}
.teacher-color-badge[data-color-token="olive-husk"] {
  background: var(--color-olive-husk-halo);
  color: var(--color-olive-husk-core);
  border-color: var(--color-olive-husk-core);
}
.teacher-color-badge[data-color-token="clay"] {
  background: var(--color-clay-halo);
  color: var(--color-clay-core);
  border-color: var(--color-clay-core);
}
.teacher-color-badge[data-color-token="sandbar"] {
  background: var(--color-sandbar-halo);
  color: var(--color-sandbar-core);
  border-color: var(--color-sandbar-core);
}
.teacher-color-badge[data-color-token="umber"] {
  background: var(--color-umber-halo);
  color: var(--color-umber-core);
  border-color: var(--color-umber-core);
}
.teacher-color-badge[data-color-token="sunpetal"] {
  background: var(--color-sunpetal-halo);
  color: var(--color-sunpetal-core);
  border-color: var(--color-sunpetal-core);
}
.teacher-color-badge[data-color-token="clement"] {
  background: var(--color-clement-halo);
  color: var(--color-clement-core);
  border-color: var(--color-clement-core);
}
.teacher-color-badge[data-color-token="tanger"] {
  background: var(--color-tanger-halo);
  color: var(--color-tanger-core);
  border-color: var(--color-tanger-core);
}
.teacher-color-badge[data-color-token="brick"] {
  background: var(--color-brick-halo);
  color: var(--color-brick-core);
  border-color: var(--color-brick-core);
}
.teacher-color-badge[data-color-token="crimson"] {
  background: var(--color-crimson-halo);
  color: var(--color-crimson-core);
  border-color: var(--color-crimson-core);
}
.teacher-color-badge[data-color-token="rubydeep"] {
  background: var(--color-rubydeep-halo);
  color: var(--color-rubydeep-core);
  border-color: var(--color-rubydeep-core);
}
.teacher-color-badge[data-color-token="magnetta"] {
  background: var(--color-magnetta-halo);
  color: var(--color-magnetta-core);
  border-color: var(--color-magnetta-core);
}
.teacher-color-badge[data-color-token="roseglow"] {
  background: var(--color-roseglow-halo);
  color: var(--color-roseglow-core);
  border-color: var(--color-roseglow-core);
}
.teacher-color-badge[data-color-token="lavandine"] {
  background: var(--color-lavandine-halo);
  color: var(--color-lavandine-core);
  border-color: var(--color-lavandine-core);
}
.teacher-color-badge[data-color-token="violet-peak"] {
  background: var(--color-violet-peak-halo);
  color: var(--color-violet-peak-core);
  border-color: var(--color-violet-peak-core);
}
.teacher-color-badge[data-color-token="steel"] {
  background: var(--color-steel-halo);
  color: var(--color-steel-core);
  border-color: var(--color-steel-core);
}
.teacher-color-badge[data-color-token="carbon"] {
  background: var(--color-carbon-halo);
  color: var(--color-carbon-core);
  border-color: var(--color-carbon-core);
}

/* ============================================================================
   TOKEN → VARS BRIDGE (DETERMINISTIC 18%/28% TINT FORMULA)
   - --teacher-color-core: The dark/saturated token color (used for text/ink)
   - --teacher-color-tint: 18% mix of core with white (pill fill)
   - --teacher-color-tint-hover: 28% mix of core with white (pill hover fill)
   ============================================================================ */

/* ZUCCHERO */
[data-color-token="zucchero"] {
  --teacher-color-core: var(--color-zucchero-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-zucchero-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-zucchero-core) 28%, white);
}

/* GRIGIO BLU */
[data-color-token="grigio-blu"],
[data-color-token="grigioblu"] {
  --teacher-color-core: var(--color-grigio-blu-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-grigio-blu-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-grigio-blu-core) 28%, white);
}

/* MALVA */
[data-color-token="malva"] {
  --teacher-color-core: var(--color-malva-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-malva-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-malva-core) 28%, white);
}

/* CREMA */
[data-color-token="crema"] {
  --teacher-color-core: var(--color-crema-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-crema-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-crema-core) 28%, white);
}

/* SPRUCE */
[data-color-token="spruce"] {
  --teacher-color-core: var(--color-spruce-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-spruce-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-spruce-core) 28%, white);
}

/* INKSTONE */
[data-color-token="inkstone"] {
  --teacher-color-core: var(--color-inkstone-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-inkstone-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-inkstone-core) 28%, white);
}

/* MOSS */
[data-color-token="moss"] {
  --teacher-color-core: var(--color-moss-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-moss-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-moss-core) 28%, white);
}

/* FIR */
[data-color-token="fir"] {
  --teacher-color-core: var(--color-fir-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-fir-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-fir-core) 28%, white);
}

/* LIMELEAF */
[data-color-token="limeleaf"] {
  --teacher-color-core: var(--color-limeleaf-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-limeleaf-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-limeleaf-core) 28%, white);
}

/* OLIVE HUSK */
[data-color-token="olive-husk"] {
  --teacher-color-core: var(--color-olive-husk-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-olive-husk-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-olive-husk-core) 28%, white);
}

/* CLAY (Sammy West) */
[data-color-token="clay"] {
  --teacher-color-core: var(--color-clay-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-clay-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-clay-core) 28%, white);
}

/* SANDBAR */
[data-color-token="sandbar"] {
  --teacher-color-core: var(--color-sandbar-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-sandbar-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-sandbar-core) 28%, white);
}

/* UMBER */
[data-color-token="umber"] {
  --teacher-color-core: var(--color-umber-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-umber-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-umber-core) 28%, white);
}

/* HONEY */
[data-color-token="honey"] {
  --teacher-color-core: var(--color-honey-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-honey-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-honey-core) 28%, white);
}

/* JASMINE */
[data-color-token="jasmine"] {
  --teacher-color-core: var(--color-jasmine-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-jasmine-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-jasmine-core) 28%, white);
}

/* TANGER */
[data-color-token="tanger"] {
  --teacher-color-core: var(--color-tanger-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-tanger-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-tanger-core) 28%, white);
}

/* EMBER */
[data-color-token="ember"] {
  --teacher-color-core: var(--color-ember-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-ember-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-ember-core) 28%, white);
}

/* CORAL DUSK */
[data-color-token="coral-dusk"] {
  --teacher-color-core: var(--color-coral-dusk-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-coral-dusk-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-coral-dusk-core) 28%, white);
}

/* BRICK */
[data-color-token="brick"] {
  --teacher-color-core: var(--color-brick-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-brick-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-brick-core) 28%, white);
}

/* CRIMSON */
[data-color-token="crimson"] {
  --teacher-color-core: var(--color-crimson-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-crimson-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-crimson-core) 28%, white);
}

/* RUBYDEEP */
[data-color-token="rubydeep"] {
  --teacher-color-core: var(--color-rubydeep-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-rubydeep-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-rubydeep-core) 28%, white);
}

/* CERISE */
[data-color-token="cerise"] {
  --teacher-color-core: var(--color-cerise-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-cerise-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-cerise-core) 28%, white);
}

/* MAGNETTA */
[data-color-token="magnetta"] {
  --teacher-color-core: var(--color-magnetta-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-magnetta-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-magnetta-core) 28%, white);
}

/* ROSEGLOW */
[data-color-token="roseglow"] {
  --teacher-color-core: var(--color-roseglow-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-roseglow-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-roseglow-core) 28%, white);
}

/* LAVANDINE */
[data-color-token="lavandine"] {
  --teacher-color-core: var(--color-lavandine-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-lavandine-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-lavandine-core) 28%, white);
}

/* VIOLET PEAK */
[data-color-token="violet-peak"],
[data-color-token="violetpeak"] {
  --teacher-color-core: var(--color-violet-peak-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-violet-peak-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-violet-peak-core) 28%, white);
}

/* AZURE */
[data-color-token="azure"] {
  --teacher-color-core: var(--color-azure-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-azure-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-azure-core) 28%, white);
}

/* FROST */
[data-color-token="frost"] {
  --teacher-color-core: var(--color-frost-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-frost-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-frost-core) 28%, white);
}

/* STEEL */
[data-color-token="steel"] {
  --teacher-color-core: var(--color-steel-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-steel-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-steel-core) 28%, white);
}

/* CARBON */
[data-color-token="carbon"] {
  --teacher-color-core: var(--color-carbon-core);
  --teacher-color-tint: color-mix(in srgb, var(--color-carbon-core) 18%, white);
  --teacher-color-tint-hover: color-mix(in srgb, var(--color-carbon-core) 28%, white);
}

/* ENFORCE INK COLOR (dark/core) on all event text */
.fc-event[data-color-token] .fc-event-title,
.fc-event[data-color-token] .fc-event-time,
.fc-event[data-color-token] .fc-event-main,
.fc-event[data-color-token] .pill-label {
  color: var(--teacher-color-core, #222) !important;
}
