Files
svsmspcalc/SVS-MSP-Calculator-light.css
2026-03-13 16:05:38 -04:00

256 lines
10 KiB
CSS

/* ══════════════════════════════════════════════════════════════
SVS MSP Calculator — Light Theme
Imported dynamically by toggleTheme() when user switches to light mode.
Overrides :root design tokens and all hardcoded dark-mode colours
in SVS-MSP-Calculator.css. Never edit layout or structure here.
══════════════════════════════════════════════════════════════ */
/* ── DESIGN TOKENS (light overrides) ───────────────────────────── */
:root {
--ink: #2c2825; /* soft near-black — readable without harshness */
--paper: #ece7dc; /* warm sand/khaki page tone */
--accent: #1a6a98; /* blue — good for buttons, kept full strength */
--muted: #6b6360; /* mid-grey for secondary text */
--border: #d2cbc0; /* warm border to match khaki palette */
--card: #f1ebdf; /* general light-mode utility surface */
--green: #217045; /* darker green — accessible on white */
--amber: #a05f00; /* darker amber — accessible on white */
}
/* ── BODY ────────────────────────────────────────────────────────── */
body {
background: var(--paper);
color: var(--ink);
}
/* ── TOP BAR ─────────────────────────────────────────────────────
Dark CSS sets background: var(--ink). In dark mode --ink is cream.
In light mode --ink becomes near-black, so we must pin it to cream
to keep the SVG logo (fill="#0c0c0c" text) legible.
─────────────────────────────────────────────────────────────────── */
.top-bar {
background: #e3ddd2 !important;
border-bottom-color: rgba(0, 0, 0, 0.09) !important; /* replace strong blue stripe with soft warm separator */
}
/* ── SECTION CARDS ───────────────────────────────────────────────── */
.section {
background: #f5f2ea !important; /* warm cream — floats above khaki paper */
}
/* ── SPLIT LIGHT-MODE SURFACES ─────────────────────────────────────
Keep sections as the main content cards.
Quote settings = warmer utility panel.
Live quote = cooler summary panel, including the mobile sheet.
*/
.quote-settings-bar {
background: #ebe1d2 !important;
border-color: #d8cab8 !important;
}
.qs-divider {
background: #d6c8b7 !important;
}
.qs-fee-input-wrap,
.qs-fee-dollar,
.qs-fee-input {
background: #f6f0e6 !important;
}
.sidebar {
background: #edf3f6 !important;
border-color: #cfdae2 !important;
}
.sidebar-utility .btn-reset-quote,
.mobile-panel-actions .btn-reset-quote {
background: #edf3f6 !important;
border-color: #cfdae2 !important;
}
.sidebar-body {
background: #f3f7f9 !important;
}
.export-wrap {
background: #edf3f6 !important;
border-top: 1px solid #d8e2e8 !important;
}
.mobile-panel-sheet {
background: #edf3f6 !important;
border-top-color: #cfdae2 !important;
}
.mobile-panel-close-row {
background: #edf3f6 !important;
border-bottom-color: #d8e2e8 !important;
}
.mobile-panel-actions {
background: #edf3f6 !important;
border-bottom-color: #d8e2e8 !important;
}
.mobile-panel-sheet .sidebar {
background: transparent !important;
}
.mobile-panel-sheet .sidebar-body {
background: #f3f7f9 !important;
}
.confirm-modal-card {
background: #f5f2ea !important;
}
.confirm-btn-secondary:hover {
background: rgba(0, 0, 0, 0.04) !important;
}
/* ── CHEVRON PILL — swap white-alpha tint for dark-alpha ─────────── */
.sec-chevron {
background: rgba(0, 0, 0, 0.04) !important;
}
.sec-open .sec-chevron,
.section-toggle:hover .sec-chevron {
background: rgba(0, 0, 0, 0.07) !important;
}
/* ── SECTION HOVER / OPEN GLOW ───────────────────────────────────── */
.section:hover {
border-color: rgba(26, 106, 152, 0.22) !important;
box-shadow: -3px 0 0 0 rgba(26, 106, 152, 0.25) !important;
}
.sec-open {
border-color: rgba(26, 106, 152, 0.35) !important;
box-shadow: -3px 0 0 0 rgba(26, 106, 152, 0.45) !important;
}
/* ── CALLOUT BOXES ───────────────────────────────────────────────── */
.callout-green {
background: #e8f7ef !important;
border-color: #3ab870 !important;
color: var(--green) !important;
}
.callout-red {
background: #fceef0 !important;
border-color: #c4526a !important;
color: #7a1520 !important;
}
/* ── NUMBER STEPPER CONTROLS ─────────────────────────────────────── */
/* Dark mode steppers blend in naturally. Light mode needs explicit lift:
white surfaces stand off the warm card bg; accent symbols tie to brand. */
.step-btn {
background: #faf8f3 !important; /* soft cream — not stark white */
border-color: #b8b4ae !important; /* stronger than --border for crispness */
color: var(--accent) !important; /* accent blue +/- symbols instead of muted grey */
}
.step-btn:hover {
background: #ede8de !important; /* warm tint matches khaki family on hover */
border-color: var(--accent) !important;
color: var(--accent) !important;
}
.step-btn:active {
background: var(--accent) !important;
border-color: var(--accent) !important;
color: #fff !important;
}
.num-input {
background: #faf8f3 !important; /* soft cream — matches step buttons */
border-color: #b8b4ae !important;
}
.num-input:focus {
border-color: var(--accent) !important;
box-shadow: 0 0 0 2px rgba(26, 106, 152, 0.15) !important;
}
/* ── ADDON ROW SELECTED ──────────────────────────────────────────── */
.addon-row.selected {
background: #daedf8 !important;
border-color: var(--accent) !important;
box-shadow: inset 3px 0 0 0 var(--accent) !important;
}
.addon-row.selected .addon-name {
color: var(--ink) !important;
}
.addon-row.selected .addon-price {
color: var(--accent) !important; /* override dark-mode #62c5f0 */
}
/* ── FEATURE CARDS ───────────────────────────────────────────────── */
.feature-card {
background: #e9e4da !important;
}
/* ── SIDEBAR / SUMMARY TEXT ────────────────────────────────────────
Base dark theme hardcodes a few bright values for money and labels.
In light mode those need to return to dark text so the desktop
sidebar and the responsive mobile sheet remain readable.
*/
.sidebar-line .val {
color: var(--ink) !important;
}
.sidebar-mrr {
color: var(--ink) !important;
}
.vs-svs-label {
color: var(--ink) !important;
}
.vs-val-accent {
color: var(--accent) !important;
}
.vs-td-muted {
color: var(--muted) !important;
}
/* ── NUDGE BANNER ────────────────────────────────────────────────── */
.nudge-banner.amber {
background: #fff7e0 !important;
color: var(--amber) !important;
}
.nudge-banner.green {
background: #e8f7ef !important;
color: var(--green) !important;
}
.nudge-nav-btn {
background: rgba(0, 0, 0, 0.06) !important;
}
.nudge-nav-btn:hover {
background: rgba(0, 0, 0, 0.11) !important;
}
/* ── VS COMPARISON ───────────────────────────────────────────────── */
.vs-comparison-wrap {
background: #e5edf2 !important;
border-color: #cfdae2 !important;
}
.vs-save-green td { background: rgba(39, 174, 96, 0.10) !important; }
.vs-save-amber td { background: rgba(210, 120, 30, 0.09) !important; }
/* ── SUMMARY BADGE ───────────────────────────────────────────────── */
.sec-summary-badge {
background: rgba(26, 106, 152, 0.09) !important;
border-color: rgba(26, 106, 152, 0.28) !important;
}
/* ── MOBILE PILL HOVER ───────────────────────────────────────────── */
.mobile-quote-pill:hover {
background: #1a5f8a !important;
}
/* ── THEME TOGGLE BUTTON (light-mode variant) ────────────────────── */
.theme-toggle-btn {
background: rgba(0, 0, 0, 0.09) !important;
color: #2a2622 !important;
}
.theme-toggle-btn:hover { background: rgba(0, 0, 0, 0.15) !important; }
.theme-toggle-btn:active { background: rgba(0, 0, 0, 0.21) !important; }
/* ── SAVINGS RESULT BOX ──────────────────────────────────────────── */
.savings-result {
background: #eaf5ef !important;
border-color: #a8d5b8 !important;
}
/* Amber warning state — JS toggles .savings-amber class */
.savings-result.savings-amber {
background: #fff4e0 !important;
border-color: #e8c57a !important;
color: var(--amber) !important;
}
/* ── PITCH FOOTER (green strip) ──────────────────────────────────── */
.pitch-footer {
background: #d4eddc !important;
border-top-color: #a8d5b8 !important;
}