From 64ccd6c1f3bb34c75f08892fa04c168206311f86 Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@gmail.com>
Date: Fri, 17 Jan 2020 15:52:29 +0100
Subject: [PATCH] use new css classes

---
 devNotes/colorCSS.txt           | 19 +++++++----
 src/endWeek/saGetMilked.js      | 58 ++++++++++++++++-----------------
 src/endWeek/saNanny.js          | 22 ++++++-------
 src/endWeek/saRest.js           | 20 ++++++------
 src/endWeek/saServant.js        | 30 ++++++++---------
 src/endWeek/saServeThePublic.js | 52 ++++++++++++++---------------
 src/endWeek/saStayConfined.js   |  2 +-
 src/endWeek/saTakeClasses.js    | 16 ++++-----
 src/endWeek/saWhore.js          | 58 ++++++++++++++++-----------------
 src/endWeek/saWorkAGloryHole.js |  6 ++--
 src/gui/css/mainStyleSheet.css  |  8 ++---
 11 files changed, 149 insertions(+), 142 deletions(-)

diff --git a/devNotes/colorCSS.txt b/devNotes/colorCSS.txt
index c330bbbb66a..b0f4d786f71 100644
--- a/devNotes/colorCSS.txt
+++ b/devNotes/colorCSS.txt
@@ -1,5 +1,9 @@
 CSS classes to color code important parts of texts:
 class names that are not final are marked, this list is NOT exhaustive and subject to change.
+Note for mass replacing: The following cases have to be checked:
+	@@.trust.inc;
+	<span class="trust inc">
+	App.UI.DOM.makeSpan('string', ['trust', 'inc']);
 
 CLASS         -   COLOR
 
@@ -31,28 +35,30 @@ TRUST (defiant versions for devotion < -20)
 MINDBROKEN
 .mindbroken - red
 
-SKILL (not final)
+SKILL
 - Player
-.skill.advantage - springgreen
+skill.player - springgreen
 - Slave
 .skill - aquamarine
+.skill.inc - green
 
 FETISH
 .fetish.gain - lightcoral
 .fetish.loss - coral
 .fetish.inc - lightsalmon
 
-INTELLIGENCE
+INTELLIGENCE (WIP)
 .intelligent - deepskyblue
 .stupid - orange
+.education.neg - orangered
 
 REPUTATION
-.reputation.inc - green (not final)
+.reputation.inc - green
+.reputation.dec - red
 
 GENERAL CHANGES
-- Player
 .improvement - green
-- Slaves
+- body parts (usually)
 .change.positive - lime
 .change.negative - orange
 
@@ -74,6 +80,7 @@ MONEY
 
 FLAWS
 .flaw.gain - red
+.flaw.break - green
 
 GENERAL
 .error - red
diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js
index 1aeac0abe36..66ea78b69c2 100644
--- a/src/endWeek/saGetMilked.js
+++ b/src/endWeek/saGetMilked.js
@@ -156,7 +156,7 @@ window.saGetMilked = (function saGetMilked() {
 				slave.lactationAdaptation += 1;
 			}
 			if (slave.curatives === 0 && slave.inflationType !== "curative") {
-				r += ` The stress of extreme milk production <span class="red">damages ${his} health.</span>`;
+				r += ` The stress of extreme milk production <span class="health dec">damages ${his} health.</span>`;
 				healthDamage(slave, 3);
 			}
 		}
@@ -272,13 +272,13 @@ window.saGetMilked = (function saGetMilked() {
 
 		// make sure milkSale is set here
 		if (arcology.FSPastoralistLaw === 1) {
-			r += ` Since breast milk is ${arcology.name}'s only legal dairy product, ${he} can scarcely be milked fast enough, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+			r += ` Since breast milk is ${arcology.name}'s only legal dairy product, ${he} can scarcely be milked fast enough, and ${he} makes <span class="cash inc">${cashFormat(milkSale)}.</span>`;
 		} else if (arcology.FSPastoralist !== "unset") {
-			r += ` Since milk is fast becoming a major part of the ${arcology.name}'s dietary culture, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+			r += ` Since milk is fast becoming a major part of the ${arcology.name}'s dietary culture, ${his} milk is in demand, and ${he} makes <span class="cash inc">${cashFormat(milkSale)}.</span>`;
 		} else if (arcology.FSRepopulationFocusLaw === 1) {
-			r += ` Since the number of hungry babies outweighs the supply of available breasts in ${arcology.name}, ${his} milk is in demand, and ${he} makes <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+			r += ` Since the number of hungry babies outweighs the supply of available breasts in ${arcology.name}, ${his} milk is in demand, and ${he} makes <span class="cash inc">${cashFormat(milkSale)}.</span>`;
 		} else {
-			r += ` ${His} milk is sold for <span class="yellowgreen">${cashFormat(milkSale)}.</span>`;
+			r += ` ${His} milk is sold for <span class="cash inc">${cashFormat(milkSale)}.</span>`;
 		}
 
 		/*
@@ -390,7 +390,7 @@ window.saGetMilked = (function saGetMilked() {
 					slave.devotion -= 3;
 				}
 				if (jsRandom(1, 100) > 50) {
-					r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `;
+					r += ` The constant suction <span class="change positive">permanently protrudes them,</span> and `;
 					if (jsRandom(1, 2) === 1) {
 						r += `it turns out they're absolutely massive.`;
 						slave.nipples = "huge";
@@ -408,7 +408,7 @@ window.saGetMilked = (function saGetMilked() {
 					slave.devotion -= 1;
 				}
 				if (jsRandom(1, 100) > 30) {
-					r += ` The constant suction <span class="lime">permanently protrudes them,</span> and `;
+					r += ` The constant suction <span class="change positive">permanently protrudes them,</span> and `;
 					if (jsRandom(1, 2) === 1) {
 						r += `it turns out they're pretty cute.`;
 						slave.nipples = "cute";
@@ -418,13 +418,13 @@ window.saGetMilked = (function saGetMilked() {
 					}
 				}
 			} else if (slave.nipples === "puffy" && jsRandom(1, 100) > 90) {
-				r += ` Producing this river of milk <span class="lime">enlarges ${his} nipples:</span> they're now enormous.`;
+				r += ` Producing this river of milk <span class="change positive">enlarges ${his} nipples:</span> they're now enormous.`;
 				slave.nipples = "huge";
 			} else if (slave.nipples === "cute" && jsRandom(1, 100) > 80) {
-				r += ` Producing this river of milk <span class="lime">makes ${his} nipples nice and puffy.</span>`;
+				r += ` Producing this river of milk <span class="change positve">makes ${his} nipples nice and puffy.</span>`;
 				slave.nipples = "puffy";
 			} else if (slave.nipples === "tiny") {
-				r += ` Producing this river of milk <span class="lime">makes ${his} nipples grow to a nice size.</span>`;
+				r += ` Producing this river of milk <span class="change positive">makes ${his} nipples grow to a nice size.</span>`;
 				slave.nipples = "cute";
 			} else if (slave.areolae < 4 && jsRandom(1, 100) > (30 + (slave.areolae * 20))) {
 				if (slave.nipples === "fuckable") {
@@ -432,7 +432,7 @@ window.saGetMilked = (function saGetMilked() {
 				} else {
 					r += ` Producing this river of milk`;
 				}
-				r += ` <span class="lime">broadens ${his} areolae.</span>`;
+				r += ` <span class="change positive">broadens ${his} areolae.</span>`;
 				slave.areolae += 1;
 			}
 		}
@@ -537,7 +537,7 @@ window.saGetMilked = (function saGetMilked() {
 
 		if (slave.prostate > 0) {
 			if (slave.prostate > 2) {
-				r += ` ${His} heavily altered prostate greatly increases the volume of ${his} ejaculations and promotes excessive, watery semen production. This dilute ejaculate<span class="red">sells poorly</span> compared to normal cum.`;
+				r += ` ${His} heavily altered prostate greatly increases the volume of ${his} ejaculations and promotes excessive, watery semen production. This dilute ejaculate<span class="cash dec">sells poorly</span> compared to normal cum.`;
 			} else if (slave.prostate > 1) {
 				r += ` ${His} hyperactive prostate increases the volume of ${his} ejaculations and promotes good semen production.`;
 			}
@@ -558,7 +558,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		if (slave.health.illness > 0 || slave.health.tired > 60) {
-			r += ` ${He} performed worse this week due to<span class="red">`;
+			r += ` ${He} performed worse this week due to<span class="cash dec">`;
 			if (slave.health.illness === 1) {
 				r += ` feeling under the weather`;
 			} else if (slave.health.illness === 2) {
@@ -582,9 +582,9 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		if (slave.vasectomy === 1) {
-			r += ` ${His} cum lacks the primary ingredient, sperm, thanks to ${his} vasectomy, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`;
+			r += ` ${His} cum lacks the primary ingredient, sperm, thanks to ${his} vasectomy, <span class="cash dec">considerably lowering the value</span> of ${his} ejaculate.`;
 		} else if (slave.ballType === "sterile") {
-			r += ` ${His} cum lacks vigor entirely, thanks to ${his} chemical castration, <span class="red">considerably lowering the value</span> of ${his} ejaculate.`;
+			r += ` ${His} cum lacks vigor entirely, thanks to ${his} chemical castration, <span class="cash dec">considerably lowering the value</span> of ${his} ejaculate.`;
 		}
 
 		/* Dairy rework cum half here */
@@ -605,11 +605,11 @@ window.saGetMilked = (function saGetMilked() {
 		*/
 
 		if (arcology.FSPastoralist === "unset") {
-			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate is sold for <span class="cash inc">${cashFormat(cumSale)}.</span>`;
 		} else if (arcology.FSPastoralistLaw === 1) {
-			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of ${arcology.name}'s few legal sources of animal protein, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in extremely high demand as one of ${arcology.name}'s few legal sources of animal protein, is sold for <span class="cash inc">${cashFormat(cumSale)}.</span>`;
 		} else {
-			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for <span class="yellowgreen">${cashFormat(cumSale)}.</span>`;
+			r += ` ${He} produces ${cum} deciliters of cum over the week; the fresh ejaculate, which is in high demand given the new cultural preference for slave products, is sold for <span class="cash inc">${cashFormat(cumSale)}.</span>`;
 		}
 
 		/*
@@ -703,7 +703,7 @@ window.saGetMilked = (function saGetMilked() {
 			slave.devotion -= 2;
 			slave.trust -= 2;
 			if (slave.anus === 0) {
-				r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`;
+				r += ` The electrostimulator <span class="virginity loss">breaks in ${his} virgin asshole.</span>`;
 				slave.anus = 1;
 			}
 		} else if (slave.devotion <= 20) {
@@ -711,7 +711,7 @@ window.saGetMilked = (function saGetMilked() {
 			slave.devotion -= 2;
 			slave.trust -= 2;
 			if (slave.anus === 0) {
-				r += ` The electrostimulator <span class="lime">breaks in ${his} virgin asshole.</span>`;
+				r += ` The electrostimulator <span class="virginity loss">breaks in ${his} virgin asshole.</span>`;
 				slave.anus = 1;
 			}
 		}
@@ -719,11 +719,11 @@ window.saGetMilked = (function saGetMilked() {
 		if (slave.balls < 3 && slave.ballType !== "sterile") {
 			if (slave.balls < 2) {
 				if (jsRandom(1, 100) > (70 + (slave.geneMods.NCS * 15))) {
-					r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} tiny testicles.</span>`;
+					r += ` Constant semen production and continual emptying and refilling <span class="change positive">increases the size of ${his} tiny testicles.</span>`;
 					slave.balls += 1;
 				}
 			} else if (jsRandom(1, 100) > (90 + (slave.geneMods.NCS * 5))) {
-				r += ` Constant semen production and continual emptying and refilling <span class="lime">increases the size of ${his} small testicles.</span>`;
+				r += ` Constant semen production and continual emptying and refilling <span class="change positive">increases the size of ${his} small testicles.</span>`;
 				slave.balls += 1;
 			}
 		}
@@ -765,7 +765,7 @@ window.saGetMilked = (function saGetMilked() {
 		if (arcology.FSPastoralist !== "unset" && arcology.FSPastoralist > 30) {
 			r += ` Because of your arcology's cultural preferences, it comes with extra value.`;
 		}
-		r += ` It is sold for <span class="yellowgreen">${cashFormat(fluidSale)}.</span>`;
+		r += ` It is sold for <span class="cash inc">${cashFormat(fluidSale)}.</span>`;
 
 		/*
 		if (slave.assignment === "work in the dairy") {
@@ -844,9 +844,9 @@ window.saGetMilked = (function saGetMilked() {
 		if (vignette.type === "cash") {
 			const cashVign = Math.trunc(FuckResult * vignette.effect);
 			if (vignette.effect > 0) {
-				r += `<span class="yellowgreen">making you an extra ${cashFormat(cashVign)}.</span>`;
+				r += `<span class="cash inc">making you an extra ${cashFormat(cashVign)}.</span>`;
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">losing you ${cashFormat(Math.abs(cashVign))}.</span>`;
+				r += `<span class="cash loss">losing you ${cashFormat(Math.abs(cashVign))}.</span>`;
 			} else {
 				r += `an incident without lasting effect.`;
 			}
@@ -906,18 +906,18 @@ window.saGetMilked = (function saGetMilked() {
 			slave.trust += (1 * vignette.effect);
 		} else if (vignette.type === "health") {
 			if (vignette.effect > 0) {
-				r += `<span class="green">improving ${his} health.</span>`;
+				r += `<span class="health inc">improving ${his} health.</span>`;
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">affecting ${his} health.</span>`;
+				r += `<span class="health dec">affecting ${his} health.</span>`;
 			} else {
 				r += `an incident without lasting effect.`;
 			}
 			improveCondition(slave, 2 * vignette.effect);
 		} else {
 			if (vignette.effect > 0) {
-				r += `<span class="green">gaining you a bit of reputation.</span>`;
+				r += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">losing you a bit of reputation.</span>`;
+				r += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 			} else {
 				r += `an incident without lasting effect.`;
 			}
diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index 547ee8a3f4d..c900cf17ea1 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -30,15 +30,15 @@ window.saNanny = function saNanny(slave) {
 
 		t += ` ${He} is `;
 		if (slave.trust < -20) {
-			t += `frightened of punishment and works very hard, <span class="yellowgreen">reducing the upkeep</span> of ${V.nurseryName}${V.nurseryBabies ? ` and the children within` : ``}.`;
+			t += `frightened of punishment and works very hard, <span class="cash inc">reducing the upkeep</span> of ${V.nurseryName}${V.nurseryBabies ? ` and the children within` : ``}.`;
 		} else if (slave.devotion <= 20) {
-			t += `hesitant, requiring your other slaves to demand ${his} services, and only slightly <span class="yellowgreen">reduces upkeep</span> of your slaves.`;
+			t += `hesitant, requiring your other slaves to demand ${his} services, and only slightly <span class="cash inc">reduces upkeep</span> of your slaves.`;
 		} else if (slave.devotion <= 50) {
-			t += `obedient, offering your other slaves ${his} services, and moderately <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+			t += `obedient, offering your other slaves ${his} services, and moderately <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 		} else if (slave.devotion <= 95) {
-			t += `devoted, happily giving your other slaves ${his} services, and <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+			t += `devoted, happily giving your other slaves ${his} services, and <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 		} else {
-			t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+			t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 		}
 
 		return t;
@@ -135,9 +135,9 @@ window.saNanny = function saNanny(slave) {
 		if (vignette.type === "cash") {
 			let modifier = FResult(slave);
 			if (vignette.effect > 0) {
-				t += `<span class="yellowgreen">making you an extra ${cashFormat(Math.trunc(modifier * vignette.effect))}.</span>`;
+				t += `<span class="cash inc">making you an extra ${cashFormat(Math.trunc(modifier * vignette.effect))}.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">losing you ${cashFormat(Math.abs(Math.trunc(modifier * vignette.effect)))}.</span>`;
+				t += `<span class="cash dec">losing you ${cashFormat(Math.abs(Math.trunc(modifier * vignette.effect)))}.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
@@ -217,9 +217,9 @@ window.saNanny = function saNanny(slave) {
 
 		if (vignette.type === "health") {
 			if (vignette.effect > 0) {
-				t += `<span class="green">improving ${his} health.</span>`;
+				t += `<span class="health inc">improving ${his} health.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">affecting ${his} health.</span>`;
+				t += `<span class="health dec">affecting ${his} health.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
@@ -236,9 +236,9 @@ window.saNanny = function saNanny(slave) {
 		if (vignette.type === "rep") {
 			let modifier = FResult(slave);
 			if (vignette.effect > 0) {
-				t += `<span class="green">gaining you a bit of reputation.</span>`;
+				t += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">losing you a bit of reputation.</span>`;
+				t += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
diff --git a/src/endWeek/saRest.js b/src/endWeek/saRest.js
index 41e0c8d28c6..6f108aded87 100644
--- a/src/endWeek/saRest.js
+++ b/src/endWeek/saRest.js
@@ -25,13 +25,13 @@ window.saRest = function saRest(slave) {
 	if (slave.health.condition > 90) {
 		t += ` ${His} health is so outstanding that rest does not improve it.`;
 	} else if (slave.health.condition > -100) {
-		t += ` ${His} <span class="green">health recovers</span> with rest.`;
+		t += ` ${His} <span class="health inc">health recovers</span> with rest.`;
 		improveCondition(slave, 10);
 		if (!(canHear(slave))) {
-			t += ` Since ${he} is deaf, the hustle and bustle of daily life in the penthouse <span class="green">didn't bother ${him} at all.</span>`;
+			t += ` Since ${he} is deaf, the hustle and bustle of daily life in the penthouse <span class="health inc">didn't bother ${him} at all.</span>`;
 			improveCondition(slave, 3);
 		} else if ((slave.hears === -1 && slave.earwear !== "hearing aids") || (slave.hears === 0 && slave.earwear === "muffling ear plugs")) {
-			t += ` Since ${he} is hard of hearing, the hustle and bustle of daily life in the penthouse <span class="green">didn't disturb ${his} rest as much.</span>`;
+			t += ` Since ${he} is hard of hearing, the hustle and bustle of daily life in the penthouse <span class="health inc">didn't disturb ${his} rest as much.</span>`;
 			improveCondition(slave, 1);
 		}
 	}
@@ -81,15 +81,15 @@ window.saRest = function saRest(slave) {
 	}
 
 	if (V.showVignettes === 1 && slave.assignment === Job.REST) {
-		const _vignette = GetVignette(slave), 
+		const _vignette = GetVignette(slave),
 		FResultNumber = FResult(slave);
 
 		t += ` <span class="story-label">This week</span> ${_vignette.text} `;
 		if (_vignette.type === "cash") {
 			if (_vignette.effect > 0) {
-				t += `<span class="yellowgreen">making you an extra ${cashFormat(Math.trunc(FResultNumber * _vignette.effect))}.</span>`;
+				t += `<span class="cash inc">making you an extra ${cashFormat(Math.trunc(FResultNumber * _vignette.effect))}.</span>`;
 			} else if (_vignette.effect < 0) {
-				t += `<span class="red">losing you ${cashFormat(Math.abs(Math.trunc(FResultNumber * _vignette.effect)))}.</span>`;
+				t += `<span class="cash dec">losing you ${cashFormat(Math.abs(Math.trunc(FResultNumber * _vignette.effect)))}.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
@@ -142,19 +142,19 @@ window.saRest = function saRest(slave) {
 			slave.trust += (1 * _vignette.effect);
 		} else if (_vignette.type === "health") {
 			if (_vignette.effect > 0) {
-				t += `<span class="green">improving ${his} health.</span>`;
+				t += `<span class="health inc">improving ${his} health.</span>`;
 				improveCondition(slave, 2 * _vignette.effect);
 			} else if (_vignette.effect < 0) {
-				t += `<span class="red">affecting ${his} health.</span>`;
+				t += `<span class="health dec">affecting ${his} health.</span>`;
 				healthDamage(slave, 2 * _vignette.effect);
 			} else {
 				t += `an incident without lasting effect.`;
 			}
 		} else {
 			if (_vignette.effect > 0) {
-				t += `<span class="green">gaining you a bit of reputation.</span>`;
+				t += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 			} else if (_vignette.effect < 0) {
-				t += `<span class="red">losing you a bit of reputation.</span>`;
+				t += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index 2c2ec8d7069..f889e83a07e 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -25,10 +25,10 @@ window.saServant = function saServant(slave) {
 					slave.devotion += 2;
 					slave.trust -= 2;
 				} else if (slave.devotion <= 20) {
-					t += `molests ${him}, encouraging the poor slave to <span class="devotion inc">keep ${his} head down</span> and <span class="yellowgreen">work harder.</span>`;
+					t += `molests ${him}, encouraging the poor slave to <span class="devotion inc">keep ${his} head down</span> and <span class="cash inc">work harder.</span>`;
 					slave.devotion += 2;
 				} else {
-					t += `uses <span class="devotion inc">sex as a reward,</span> getting ${him} off when ${he} <span class="yellowgreen">works harder.</span>`;
+					t += `uses <span class="devotion inc">sex as a reward,</span> getting ${him} off when ${he} <span class="cash inc">works harder.</span>`;
 					slave.devotion++;
 				}
 				if (!(canHear(slave))) {
@@ -46,21 +46,21 @@ window.saServant = function saServant(slave) {
 
 	t += ` ${He} is `;
 	if (slave.trust < -20) {
-		t += `frightened of punishment and works very hard, <span class="yellowgreen">reducing the upkeep</span> of your slaves.`;
+		t += `frightened of punishment and works very hard, <span class="cash inc">reducing the upkeep</span> of your slaves.`;
 	} else if (slave.devotion < -20) {
 		if (slave.trust >= 20) {
-			t += `uninterested in doing such work and barely lifts a finger to <span class="yellowgreen">reduce the upkeep</span> of your slaves.`;
+			t += `uninterested in doing such work and barely lifts a finger to <span class="cash inc">reduce the upkeep</span> of your slaves.`;
 		} else {
-			t += `reluctant, requiring your other slaves to force ${his} services, and does not <span class="yellowgreen">reduce upkeep</span> of your slaves much.`;
+			t += `reluctant, requiring your other slaves to force ${his} services, and does not <span class="cash inc">reduce upkeep</span> of your slaves much.`;
 		}
 	} else if (slave.devotion <= 20) {
-		t += `hesitant, requiring your other slaves to demand ${his} services, and only slightly <span class="yellowgreen">reduces upkeep</span> of your slaves.`;
+		t += `hesitant, requiring your other slaves to demand ${his} services, and only slightly <span class="cash inc">reduces upkeep</span> of your slaves.`;
 	} else if (slave.devotion <= 50) {
-		t += `obedient, offering your other slaves ${his} services, and moderately <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+		t += `obedient, offering your other slaves ${his} services, and moderately <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 	} else if (slave.devotion <= 95) {
-		t += `devoted, happily giving your other slaves ${his} services, and <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+		t += `devoted, happily giving your other slaves ${his} services, and <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 	} else {
-		t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
+		t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="cash inc">reduces the upkeep</span> of your slaves.`;
 	}
 
 	if (slave.health.illness > 0 || slave.health.tired > 60) {
@@ -146,9 +146,9 @@ window.saServant = function saServant(slave) {
 		if (vignette.type === "cash") {
 			let modifier = FResult(slave);
 			if (vignette.effect > 0) {
-				t += `<span class="yellowgreen">making you an extra ${cashFormat(Math.trunc(modifier * vignette.effect))}.</span>`;
+				t += `<span class="cash inc">making you an extra ${cashFormat(Math.trunc(modifier * vignette.effect))}.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">losing you ${cashFormat(Math.abs(Math.trunc(modifier * vignette.effect)))}.</span>`;
+				t += `<span class="cash dec">losing you ${cashFormat(Math.abs(Math.trunc(modifier * vignette.effect)))}.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
@@ -201,9 +201,9 @@ window.saServant = function saServant(slave) {
 			slave.trust += (1 * vignette.effect);
 		} else if (vignette.type === "health") {
 			if (vignette.effect > 0) {
-				t += `<span class="green">improving ${his} health.</span>`;
+				t += `<span class="health inc">improving ${his} health.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">affecting ${his} health.</span>`;
+				t += `<span class="health dec">affecting ${his} health.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
@@ -211,9 +211,9 @@ window.saServant = function saServant(slave) {
 		} else {
 			let modifier = FResult(slave);
 			if (vignette.effect > 0) {
-				t += `<span class="green">gaining you a bit of reputation.</span>`;
+				t += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 			} else if (vignette.effect < 0) {
-				t += `<span class="red">losing you a bit of reputation.</span>`;
+				t += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 			} else {
 				t += `an incident without lasting effect.`;
 			}
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index ea5bb6298b4..6661da312c6 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -196,10 +196,10 @@ window.saServeThePublic = (function saServeThePublic() {
 						}
 						if (V.DJignoresFlaws !== 1) {
 							if (!["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes(slave.sexualFlaw) && jsRandom(1, 100) > 90) {
-								r += ` ${SlaveFullName(V.DJ)} manages to <span class="green">break</span> ${slave.slaveName} of ${his} sexual flaws.`;
+								r += ` ${SlaveFullName(V.DJ)} manages to <span class="flaw break">break</span> ${slave.slaveName} of ${his} sexual flaws.`;
 								slave.sexualFlaw = "none";
 							} else if (slave.behavioralFlaw !== "none" && jsRandom(1, 100) > 90) {
-								r += ` ${SlaveFullName(V.DJ)} manages to <span class="green">break</span> ${slave.slaveName} of ${his} flaws.`;
+								r += ` ${SlaveFullName(V.DJ)} manages to <span class="flaw break">break</span> ${slave.slaveName} of ${his} flaws.`;
 								slave.behavioralFlaw = "none";
 							}
 						}
@@ -391,22 +391,22 @@ window.saServeThePublic = (function saServeThePublic() {
 		if (canDoVaginal(slave)) {
 			if (slave.vagina === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion -= 10;
 					slave.trust -= 10;
 					slave.vagina = 1;
 				}
 			} else if (slave.vagina < 3) {
 				if (jsRandom(1, 100) > ((170 - slave.sexAmount) + (slave.vagina * 10) + (slave.skill.vaginal / 3))) {
-					r += ` <span class="lime">${His} pussy gets loosened by the intense use.</span>`;
+					r += ` <span class="change positive">${His} pussy gets loosened by the intense use.</span>`;
 					slave.vagina += 1;
 				}
 			}
@@ -415,15 +415,15 @@ window.saServeThePublic = (function saServeThePublic() {
 		if (canDoAnal(slave)) {
 			if (slave.anus === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion -= 5;
 					slave.trust -= 5;
 					slave.anus = 2;
@@ -431,17 +431,17 @@ window.saServeThePublic = (function saServeThePublic() {
 			} else if (slave.anus < 3) {
 				if (slave.vagina < 0) {
 					if (jsRandom(1, 100) > ((150 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole sees constant use in place of a pussy and loosens.</span>`;
+						r += ` <span class="change positive">${His} asshole sees constant use in place of a pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else if (!canDoVaginal(slave)) {
 					if (jsRandom(1, 100) > ((150 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole sees constant use in place of ${his} protected pussy and loosens.</span>`;
+						r += ` <span class="change positive">${His} asshole sees constant use in place of ${his} protected pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else {
 					if (jsRandom(1, 100) > ((160 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole loosens with constant use.</span>`;
+						r += ` <span class="change positive">${His} asshole loosens with constant use.</span>`;
 						slave.anus += 1;
 					}
 				}
@@ -492,7 +492,7 @@ window.saServeThePublic = (function saServeThePublic() {
 			}
 		} else {
 			if ((slave.skill.oral + slave.skill.anal >= 200) && ((slave.skill.vaginal >= 100) || !canDoVaginal(slave))) {
-				r += ` ${He}'s a <span class="aquamarine">sexual master</span> `;
+				r += ` ${He}'s a <span class="slave skill">sexual master</span> `;
 				if (canDoVaginal(slave)) {
 					r += `whose`;
 				} else {
@@ -534,7 +534,7 @@ window.saServeThePublic = (function saServeThePublic() {
 				}
 				r += ` ${he} offers personal training and sexual therapy.`;
 			} else {
-				r += ` ${He} shows diligence, and ${his} <span class="green">sexual skills improve,</span> according to what the citizens demand`;
+				r += ` ${He} shows diligence, and ${his} <span class="skill inc">sexual skills improve,</span> according to what the citizens demand`;
 				if (!canDoVaginal(slave)) {
 					r += ` and what's possible for ${him}`;
 				}
@@ -557,7 +557,7 @@ window.saServeThePublic = (function saServeThePublic() {
 					r += ` ${SkillIncrease.Entertain(slave, skillIncrease)}`;
 				}
 				if (slave.skill.entertainment > jsRandom(50, 99) && slave.skill.whore < 50) {
-					r += ` ${His} ability to entertain gave ${him} a better understanding of ${his} <span class="green">body's worth as a sexual object.</span>`;
+					r += ` ${His} ability to entertain gave ${him} a better understanding of ${his} <span class="skill inc">body's worth as a sexual object.</span>`;
 					slave.skill.whore += (2.5 + Math.floor((slave.intelligence + slave.intelligenceImplant) / 64));
 				}
 			}
@@ -1232,13 +1232,13 @@ window.saServeThePublic = (function saServeThePublic() {
 		if (slave.devotion < 10) {
 			if (jsRandom(1, 100) > 70) {
 				if (slave.skill.vaginal <= 30 && canDoVaginal(slave)) {
-					r += ` After being fucked too hard too often, ${he} now <span class="red">dislikes being penetrated.</span>`;
+					r += ` After being fucked too hard too often, ${he} now <span class="flaw gain">dislikes being penetrated.</span>`;
 					slave.sexualFlaw = "hates penetration";
 				} else if (slave.skill.anal <= 30 && canDoAnal(slave)) {
-					r += ` After so much anal pain, ${he} now <span class="red">dislikes being buttfucked.</span>`;
+					r += ` After so much anal pain, ${he} now <span class="flaw gain">dislikes being buttfucked.</span>`;
 					slave.sexualFlaw = "hates anal";
 				} else if (slave.skill.oral <= 30) {
-					r += ` After one too many facials, ${he} now <span class="red">dislikes sucking cock.</span>`;
+					r += ` After one too many facials, ${he} now <span class="flaw gain">dislikes sucking cock.</span>`;
 					slave.sexualFlaw = "hates oral";
 				}
 			}
@@ -1501,12 +1501,12 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 
 		if (slave.energy > 40 && slave.energy < 95) {
-			r += ` Being used sexually all week <span class="lime">increases ${his} sex drive.</span>`;
+			r += ` Being used sexually all week <span class="change positive">increases ${his} sex drive.</span>`;
 			slave.energy += 1;
 		}
 
 		if (cervixPump > 0) {
-			r += ` ${He} notices ${his} <span class="lime">belly has swollen</span> from all the `;
+			r += ` ${He} notices ${his} <span class="change positive">belly has swollen</span> from all the `;
 			if (slave.cervixImplant === 1) {
 				r += `vaginal`;
 			} else if (slave.cervixImplant === 2) {
@@ -1528,9 +1528,9 @@ window.saServeThePublic = (function saServeThePublic() {
 			r += ` <span class="story-label">This week</span> ${vignette.text} `;
 			if (vignette.type === "cash") {
 				if (vignette.effect > 0) {
-					r += `<span class="yellowgreen">making you an extra ${cashFormat(Math.trunc(slave.sexQuality * vignette.effect))}.</span>`;
+					r += `<span class="cash inc">making you an extra ${cashFormat(Math.trunc(slave.sexQuality * vignette.effect))}.</span>`;
 				} else if (vignette.effect < 0) {
-					r += `<span class="red">losing you ${cashFormat(Math.abs(Math.trunc(slave.sexQuality * vignette.effect)))}.</span>`;
+					r += `<span class="cash dec">losing you ${cashFormat(Math.abs(Math.trunc(slave.sexQuality * vignette.effect)))}.</span>`;
 				} else {
 					r += `an incident without lasting effect.`;
 				}
@@ -1584,19 +1584,19 @@ window.saServeThePublic = (function saServeThePublic() {
 				slave.trust += (1 * vignette.effect);
 			} else if (vignette.type === "health") {
 				if (vignette.effect > 0) {
-					r += `<span class="green">improving ${his} health.</span>`;
+					r += `<span class="health inc">improving ${his} health.</span>`;
 					improveCondition(slave, 2 * vignette.effect);
 				} else if (vignette.effect < 0) {
-					r += `<span class="red">affecting ${his} health.</span>`;
+					r += `<span class="health dec">affecting ${his} health.</span>`;
 					healthDamage(slave, 2 * vignette.effect);
 				} else {
 					r += `an incident without lasting effect.`;
 				}
 			} else {
 				if (vignette.effect > 0) {
-					r += `<span class="green">gaining you a bit of reputation.</span>`;
+					r += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 				} else if (vignette.effect < 0) {
-					r += `<span class="red">losing you a bit of reputation.</span>`;
+					r += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 				} else {
 					r += `an incident without lasting effect.`;
 				}
diff --git a/src/endWeek/saStayConfined.js b/src/endWeek/saStayConfined.js
index 0ea858cdf70..7b60f4536c8 100644
--- a/src/endWeek/saStayConfined.js
+++ b/src/endWeek/saStayConfined.js
@@ -99,7 +99,7 @@ window.saStayConfined = function saStayConfined(slave) {
 		} else {
 			t += ` ${He} is now willing to <span class="devotion accept">do as ${he}'s told,</span>`;
 		}
-		t += ` so <span class="yellow">${his} assignment has defaulted to rest.</span>`;
+		t += ` so <span class="noteworthy">${his} assignment has defaulted to rest.</span>`;
 		if (slave.assignment === "be confined in the cellblock") {
 			State.temporary.brokenSlaves++;
 			State.temporary.DL--;
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 32f89234de8..0e419349a7d 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -45,7 +45,7 @@ window.saTakeClasses = (function saServeThePublic() {
 	 */
 	function jobPreface(slave) {
 		if (slave.fetish === "mindbroken") {
-			r += `is no longer mentally capable and <span class="yellow">has been dropped from class.</span>`;
+			r += `is no longer mentally capable and <span class="noteworthy">has been dropped from class.</span>`;
 			if (slave.assignment === "take classes") {
 				removeJob(slave, "take classes");
 			}
@@ -346,7 +346,7 @@ window.saTakeClasses = (function saServeThePublic() {
 				slave.intelligenceImplant -= Math.max(1, learning);
 				if (slave.intelligenceImplant <= -15) {
 					slave.intelligenceImplant = -15;
-					r += ` ${He} has completed ${his} special education, and for most purposes ${he} has become <span class="orangered">less intelligent.</span>`;
+					r += ` ${He} has completed ${his} special education, and for most purposes ${he} has become <span class="education neg">less intelligent.</span>`;
 				}
 			}
 		} else if (slave.intelligenceImplant < 30 && slave.assignment === "learn in the schoolroom") {
@@ -359,14 +359,14 @@ window.saTakeClasses = (function saServeThePublic() {
 			slave.intelligenceImplant += Math.max(1, learning);
 			if (slave.intelligenceImplant >= 30) {
 				slave.intelligenceImplant = 30;
-				r += ` ${He} has completed ${his} advanced education, and for most purposes ${he} has become <span class="deepskyblue">more intelligent.</span>`;
+				r += ` ${He} has completed ${his} advanced education, and for most purposes ${he} has become <span class="intelligent">more intelligent.</span>`;
 			}
 		} else if (slave.intelligenceImplant < 15 && slave.assignment === "take classes") {
 			r += ` ${He} makes some progress towards a basic education.`;
 			slave.intelligenceImplant += Math.max(1, learning);
 			if (slave.intelligenceImplant >= 15) {
 				slave.intelligenceImplant = 15;
-				r += ` ${He} has completed a course of slave education, and for most purposes ${he} has become <span class="deepskyblue">more intelligent.</span>`;
+				r += ` ${He} has completed a course of slave education, and for most purposes ${he} has become <span class="intelligent">more intelligent.</span>`;
 			}
 		}
 	}
@@ -381,17 +381,17 @@ window.saTakeClasses = (function saServeThePublic() {
 				if (slave.accent > 3) {
 					const langWeekThreshold = (V.schoolroomUpgradeLanguage === 0) ? 24 : 16;
 					if (V.week - slave.weekAcquired > langWeekThreshold) {
-						r += ` ${He} has <span class="green">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`;
+						r += ` ${He} has <span class="improvement">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`;
 						slave.accent--;
 						if (slave.rules.speech === "language lessons") {
 							slave.rules.speech = "accent elimination";
 						}
 					}
 				} else if (slave.accent === 3) {
-					r += ` ${He} has <span class="green">learned functional ${V.language},</span> and can make ${himself} understood, though ${his} ${aNational(slave.nationality)} accent is still quite heavy.`;
+					r += ` ${He} has <span class="improvement">learned functional ${V.language},</span> and can make ${himself} understood, though ${his} ${aNational(slave.nationality)} accent is still quite heavy.`;
 					slave.accent--;
 				} else if (slave.accent === 2 && V.schoolroomUpgradeLanguage === 1) {
-					r += ` ${He} has <span class="green">learned decent ${V.language},</span> though ${he} retains enough of ${his} ${aNational(slave.nationality)} accent to make ${his} voice distinctly sexy.`;
+					r += ` ${He} has <span class="improvement">learned decent ${V.language},</span> though ${he} retains enough of ${his} ${aNational(slave.nationality)} accent to make ${his} voice distinctly sexy.`;
 					slave.accent--;
 				}
 			}
@@ -410,7 +410,7 @@ window.saTakeClasses = (function saServeThePublic() {
 						if ((slave.skill.entertainment > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.entertainment > 10)) {
 							if ((slave.skill.anal > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.anal > 10)) {
 								if ((slave.skill.vaginal > 30) || (V.schoolroomUpgradeSkills === 0 && slave.skill.vaginal > 10) || (slave.vagina < 0)) {
-									r += ` ${He} can learn little from further classes, so <span class="yellow">${his} assignment has defaulted to rest.</span>`;
+									r += ` ${He} can learn little from further classes, so <span class="noteworthy">${his} assignment has defaulted to rest.</span>`;
 									removeJob(slave, "take classes");
 								}
 							}
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index bbcdf82799c..b918d766a2b 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -228,10 +228,10 @@ window.saWhore = (function saWhore() {
 						}
 						if (V.MadamIgnoresFlaws !== 1) {
 							if (!["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes(slave.sexualFlaw) && jsRandom(1, 100) > 90) {
-								r += ` ${SlaveFullName(V.Madam)} manages to <span class="green">break</span> ${slave.slaveName} of ${his} sexual flaws.`;
+								r += ` ${SlaveFullName(V.Madam)} manages to <span class="flaw break">break</span> ${slave.slaveName} of ${his} sexual flaws.`;
 								slave.sexualFlaw = "none";
 							} else if (slave.behavioralFlaw !== "none" && jsRandom(1, 100) > 90) {
-								r += ` ${SlaveFullName(V.Madam)} manages to <span class="green">break</span> ${slave.slaveName} of ${his} flaws.`;
+								r += ` ${SlaveFullName(V.Madam)} manages to <span class="flaw break">break</span> ${slave.slaveName} of ${his} flaws.`;
 								slave.behavioralFlaw = "none";
 							}
 						}
@@ -453,22 +453,22 @@ window.saWhore = (function saWhore() {
 		if (canDoVaginal(slave)) {
 			if (slave.vagina === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="virginity loss">${His} pussy is now broken in.</span>`;
 					slave.devotion -= 10;
 					slave.trust -= 10;
 					slave.vagina = 1;
 				}
 			} else if (slave.vagina < 3) {
 				if (jsRandom(1, 100) > ((170 - beauty) + (slave.vagina * 10) + (slave.skill.vaginal / 3))) {
-					r += ` <span class="lime">${His} pussy gets loosened by the intense use.</span>`;
+					r += ` <span class="change positive">${His} pussy gets loosened by the intense use.</span>`;
 					slave.vagina += 1;
 				}
 			}
@@ -477,15 +477,15 @@ window.saWhore = (function saWhore() {
 		if (canDoAnal(slave)) {
 			if (slave.anus === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="virginity loss">${he} won't sit down.</span>`;
 					slave.devotion -= 5;
 					slave.trust -= 5;
 					slave.anus = 2;
@@ -493,17 +493,17 @@ window.saWhore = (function saWhore() {
 			} else if (slave.anus < 3) {
 				if (slave.vagina < 0) {
 					if (jsRandom(1, 100) > ((150 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole sees constant use in place of a pussy and loosens.</span>`;
+						r += ` <span class="change positive">${His} asshole sees constant use in place of a pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else if (!canDoVaginal(slave)) {
 					if (jsRandom(1, 100) > ((150 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole sees constant use in place of ${his} protected pussy and loosens.</span>`;
+						r += ` <span class="change positive">${His} asshole sees constant use in place of ${his} protected pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else {
 					if (jsRandom(1, 100) > ((160 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
-						r += ` <span class="lime">${His} asshole loosens with constant use.</span>`;
+						r += ` <span class="change positive">${His} asshole loosens with constant use.</span>`;
 						slave.anus += 1;
 					}
 				}
@@ -543,7 +543,7 @@ window.saWhore = (function saWhore() {
 		if (!isAmputee(slave)) {
 			if (slave.skill.whoring < 100) {
 				slave.skill.whoring += 10 + Math.floor((slave.intelligence + slave.intelligenceImplant) / 32);
-				r += ` ${He} <span class="green">gains experience as a prostitute,</span> and gets better at `;
+				r += ` ${He} <span class="skill inc">gains experience as a prostitute,</span> and gets better at `;
 				if (slave.skill.whoring <= 30) {
 					r += `basic street smarts.`;
 				} else if (slave.skill.whoring <= 60) {
@@ -554,7 +554,7 @@ window.saWhore = (function saWhore() {
 			}
 			if (slave.skill.entertainment < 50 && slave.effectiveWhoreClass > 2) {
 				slave.skill.entertainment += Math.floor(2.5 + (slave.intelligence + slave.intelligenceImplant) / 64);
-				r += ` ${He} learns a little about how to better <span class="green">entertain</span> ${his} classy clients.`;
+				r += ` ${He} learns a little about how to better <span class="skill inc">entertain</span> ${his} classy clients.`;
 			}
 		}
 
@@ -572,7 +572,7 @@ window.saWhore = (function saWhore() {
 			}
 		} else {
 			if ((slave.skill.oral >= 100) && ((slave.skill.anal >= 100) || !canDoAnal(slave)) && ((slave.skill.vaginal >= 100) || !canDoVaginal(slave))) {
-				r += ` ${He}'s a <span class="aquamarine">sexual master</span> `;
+				r += ` ${He}'s a <span class="skill">sexual master</span> `;
 				if (canDoVaginal(slave)) {
 					r += `whose`;
 				} else {
@@ -584,7 +584,7 @@ window.saWhore = (function saWhore() {
 					}
 					r += ` front hole, ${his}`;
 				}
-				r += ` body commands <span class="yellowgreen">a high price.</span> When ${he}'s not `;
+				r += ` body commands <span class="cash inc">a high price.</span> When ${he}'s not `;
 				if (canDoVaginal(slave) && jsRandom(1, 4) === 1) {
 					r += `pleasing the rich with ${his} `;
 					if (slave.prestige > 1 || slave.porn.prestige > 2) {
@@ -616,7 +616,7 @@ window.saWhore = (function saWhore() {
 				}
 				r += ` ${he} works social gatherings and high society.`;
 			} else {
-				r += ` ${He} shows diligence, and ${his} <span class="green">sexual skills improve,</span> according to what the customers demand`;
+				r += ` ${He} shows diligence, and ${his} <span class="skill inc">sexual skills improve,</span> according to what the customers demand`;
 				if (!canDoVaginal(slave)) {
 					r += ` and what's possible for ${him}`;
 				}
@@ -1302,13 +1302,13 @@ window.saWhore = (function saWhore() {
 		if (slave.devotion < 10) {
 			if (jsRandom(1, 100) > 70) {
 				if (slave.skill.vaginal <= 30 && canDoVaginal(slave)) {
-					r += ` After being fucked too hard too often, ${he} now <span class="red">dislikes being penetrated.</span>`;
+					r += ` After being fucked too hard too often, ${he} now <span class="flaw gain">dislikes being penetrated.</span>`;
 					slave.sexualFlaw = "hates penetration";
 				} else if (slave.skill.anal <= 30 && canDoAnal(slave)) {
-					r += ` After so much anal pain, ${he} now <span class="red">dislikes being buttfucked.</span>`;
+					r += ` After so much anal pain, ${he} now <span class="flaw gain">dislikes being buttfucked.</span>`;
 					slave.sexualFlaw = "hates anal";
 				} else if (slave.skill.oral <= 30) {
-					r += ` After one too many facials, ${he} now <span class="red">dislikes sucking cock.</span>`;
+					r += ` After one too many facials, ${he} now <span class="flaw gain">dislikes sucking cock.</span>`;
 					slave.sexualFlaw = "hates oral";
 				}
 			}
@@ -1349,7 +1349,7 @@ window.saWhore = (function saWhore() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function addCashText(slave) {
-		r += ` In total, you were paid <span class="yellowgreen">${cashFormat(cash)}</span> for the use of ${slave.slaveName}'s body this week.`;
+		r += ` In total, you were paid <span class="cash inc">${cashFormat(cash)}</span> for the use of ${slave.slaveName}'s body this week.`;
 	}
 
 	/**
@@ -1582,12 +1582,12 @@ window.saWhore = (function saWhore() {
 		}
 
 		if (slave.energy > 40 && slave.energy < 95) {
-			r += ` Being used sexually all week <span class="lime">increases ${his} sex drive.</span>`;
+			r += ` Being used sexually all week <span class="change positive">increases ${his} sex drive.</span>`;
 			slave.energy += 1;
 		}
 
 		if (cervixPump > 0) {
-			r += ` ${He} notices ${his} <span class="lime">belly has swollen</span> from all the `;
+			r += ` ${He} notices ${his} <span class="change positive">belly has swollen</span> from all the `;
 			if (slave.cervixImplant === 1) {
 				r += `vaginal`;
 			} else if (slave.cervixImplant === 2) {
@@ -1607,9 +1607,9 @@ window.saWhore = (function saWhore() {
 		if (vignette.type === "cash") {
 			const cashVign = Math.trunc(FuckResult * vignette.effect);
 			if (vignette.effect > 0) {
-				r += `<span class="yellowgreen">making you an extra ${cashFormat(cashVign)}.</span>`;
+				r += `<span class="cash inc">making you an extra ${cashFormat(cashVign)}.</span>`;
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">losing you ${cashFormat(Math.abs(cashVign))}.</span>`;
+				r += `<span class="cash dec">losing you ${cashFormat(Math.abs(cashVign))}.</span>`;
 			} else {
 				r += `an incident without lasting effect.`;
 			}
@@ -1669,19 +1669,19 @@ window.saWhore = (function saWhore() {
 			slave.trust += (1 * vignette.effect);
 		} else if (vignette.type === "health") {
 			if (vignette.effect > 0) {
-				r += `<span class="green">improving ${his} health.</span>`;
+				r += `<span class="health inc">improving ${his} health.</span>`;
 				improveCondition(slave, 2 * vignette.effect);
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">affecting ${his} health.</span>`;
+				r += `<span class="health dec">affecting ${his} health.</span>`;
 				healthDamage(slave, 2 * vignette.effect);
 			} else {
 				r += `an incident without lasting effect.`;
 			}
 		} else {
 			if (vignette.effect > 0) {
-				r += `<span class="green">gaining you a bit of reputation.</span>`;
+				r += `<span class="reputation inc">gaining you a bit of reputation.</span>`;
 			} else if (vignette.effect < 0) {
-				r += `<span class="red">losing you a bit of reputation.</span>`;
+				r += `<span class="reputation dec">losing you a bit of reputation.</span>`;
 			} else {
 				r += `an incident without lasting effect.`;
 			}
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index ec081f3da82..54188fce925 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -266,9 +266,9 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 	function jobBody(slave) {
 		r += ` ${His} feelings, skills, and appearance do not matter. ${He} is condemned to a world that consists of a tiny cell, featureless except for the never-ending dicks ${he} is required to service. You `;
 		if (V.publicFuckdolls === 0) {
-			r += `were paid <span class="yellowgreen">${cashFormat((Math.trunc(beauty * FResult)))}</span>`;
+			r += `were paid <span class="cash inc">${cashFormat((Math.trunc(beauty * FResult)))}</span>`;
 		} else {
-			r += `<span class="green">gained reputation</span>`;
+			r += `<span class="reputation inc">gained reputation</span>`;
 		}
 		r += ` for the use of ${slave.slaveName}'s holes this week.`;
 	}
@@ -463,7 +463,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 		}
 
 		if (cervixPump > 0) {
-			r += ` ${He} notices ${his} <span class="lime">belly has swollen</span> from all the `;
+			r += ` ${He} notices ${his} <span class="change positive">belly has swollen</span> from all the `;
 			if (slave.cervixImplant === 1) {
 				r += `vaginal `;
 			} else if (slave.cervixImplant === 2) {
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
index 5db722676d7..2c20405dee1 100644
--- a/src/gui/css/mainStyleSheet.css
+++ b/src/gui/css/mainStyleSheet.css
@@ -195,7 +195,7 @@ span.zeroButton > a:hover { text-decoration: none; }
 .gold, .gold a, .trust.dec, .trust.dec a, .trust.frightened, .trust.frightened a { color: gold }
 .goldenrod, .goldenrod a, .trust.terrified, .trust.terrified a { color: goldenrod }
 .gray, .gray a { color: gray }
-.green, .green a, .reputation.inc, .reputation.inc a, .improvement, .improvement a { color: green }
+.green, .green a, .reputation.inc, .reputation.inc a, .improvement, .improvement a, .flaw.break, .flaw.break a, .skill.inc, .skill.inc a { color: green }
 .hotpink, .hotpink a, .devotion.inc, .devotion.inc a, .devotion.accept, .devotion.accept a { color: hotpink }
 .lawngreen, .lawngreen a { color: lawngreen }
 .lightblue, .lightblue a { color: lightblue }
@@ -210,12 +210,12 @@ span.zeroButton > a:hover { text-decoration: none; }
 .mediumorchid, .mediumorchid a, .devotion.dec, .devotion.dec a, .devotion.resistant, .devotion.resistant a { color: mediumorchid }
 .mediumseagreen, .mediumseagreen a, .trust.trusting, .trust.trusting a { color: mediumseagreen }
 .orange, .orange a, .stupid, .stupid a, .change.negative, .change.negative a, .defiant.careful, .defiant.careful a { color: orange } /* generally between red and green, and a lot of other places */
-.orangered, .orangered a, .defiant.inc, .defiant.inc a, .defiant.bold, .defiant.bold a { color: orangered }
+.orangered, .orangered a, .defiant.inc, .defiant.inc a, .defiant.bold, .defiant.bold, education.neg a { color: orangered }
 .orchid, .orchid a { color: orchid } /* used once (wrong? */
 .pink, .pink a { color: pink } /* also fetish start ??? , and a lot of other stuff */
-.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .flaw.gain, .flaw.gain a, .error, .error a, .elites.loss, .elites.loss a { color: red } /* also generally bad stuff */
+.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .flaw.gain, .flaw.gain a, .error, .error a, .elites.loss, .elites.loss a, .reputation.dec, .reputation.dec a { color: red } /* also generally bad stuff */
 .seagreen, .seagreen a, .trust.prof-trusting, .trust.prof-trusting a { color: seagreen }
-.springgreen, .springgreen a, .skill.advantage, .skill.advantage a { color: springgreen }
+.springgreen, .springgreen a, .skill.player, .skill.player a { color: springgreen }
 .tan, .tan a { color: tan } /* some ethnicity */
 .chocolate, .chocolate a { color: chocolate }
 .saddlebrown, .saddlebrown a { color: saddlebrown }
-- 
GitLab