/* ══════════════════════════════════════════════════════════════ SVS MSP Calculator — Retro Cyberpunk Theme Warm parchment paper base with neon-warm accents — hot rose highlights, electric amber secondary, warm teal pop, dark charcoal header. Vintage paper meets neon signage. ══════════════════════════════════════════════════════════════ */ :root { /* ── Core palette ────────────────────────────────────────── */ --retro-cream: #f0e4d0; --retro-muted-warm: #c0aa98; --retro-dark: #1c1317; --retro-dark-mid: #2a1e22; --retro-dark-deep: #140e11; --retro-cta-gradient: linear-gradient(180deg, #e11d48 0%, #be123c 100%); --retro-dark-gradient: linear-gradient(180deg, var(--retro-dark-mid) 0%, var(--retro-dark) 100%); --ink: #1c1317; --paper: #f0e4c8; --accent: #e11d48; --muted: #8a7a72; --border: #d0c4b0; --border-soft: #d8ccb8; --card: #e8dcc0; --green: #0d9488; --amber: #d97706; --sky: #6366f1; --focus-ring-soft: rgba(225, 29, 72, 0.2); /* ── Top bar ─────────────────────────────────────────────── */ --top-bar-bg: var(--retro-dark); --top-bar-border: rgba(225, 29, 72, 0.35); --top-bar-meta: var(--retro-muted-warm); --top-bar-shadow: 0 4px 16px rgba(28, 19, 23, 0.2); /* ── Theme chip ──────────────────────────────────────────── */ --theme-chip-bg: rgba(225, 29, 72, 0.1); --theme-chip-hover: rgba(225, 29, 72, 0.18); --theme-chip-active: rgba(225, 29, 72, 0.26); --theme-chip-fg: var(--retro-cream); /* ── Surfaces ────────────────────────────────────────────── */ --surface-section: #e4d5b5; --surface-feature: #dccda8; --surface-settings: #d6c49e; --surface-settings-divider: #c4ae8a; --surface-input: #efe2c4; --surface-term-wrap: #e0d0ad; --surface-term-tile: transparent; --surface-term-tile-hover: rgba(225, 29, 72, 0.05); --surface-term-tile-active: linear-gradient(180deg, #e11d48 0%, #be123c 100%); --border-term-wrap: #c4ae8a; --border-term-tile-active: rgba(225, 29, 72, 0.3); --shadow-term-wrap: inset 0 1px 0 rgba(255, 255, 255, 0.3); --shadow-term-tile-active: inset 0 1px 0 rgba(255, 255, 255, 0.2); /* ── Term text ───────────────────────────────────────────── */ --text-term-name: #8a7a72; --text-term-sub: #6a5a50; --text-term-sub-active: #fff; --text-term-name-active: #fff; --text-term-discount: #1c1317; --text-term-discount-active: #ffffff; /* ── Best value badge ────────────────────────────────────── */ --surface-best-value: rgba(13, 148, 136, 0.12); --border-best-value: rgba(13, 148, 136, 0.32); --text-best-value: #0d9488; --surface-best-value-active: rgba(255, 255, 255, 0.2); --border-best-value-active: rgba(255, 255, 255, 0.4); --text-best-value-active: #ffffff; /* ── Sidebar ─────────────────────────────────────────────── */ --surface-sidebar: #e0d4b6; --surface-sidebar-header: var(--retro-dark); --surface-sidebar-body: #e6d8b8; --surface-sidebar-utility: #d0be98; --surface-export: #ccba94; --border-sidebar: #c4ae8a; --surface-sidebar-utility-border: #b5a07a; --border-export-top: #c4ae8a; /* ── Compare / Modal ─────────────────────────────────────── */ --surface-compare: #d6c8a6; --border-compare: #c4ae8a; --surface-modal: var(--surface-input); --surface-backdrop: rgba(28, 19, 23, 0.6); --shadow-modal: 0 16px 50px rgba(28, 19, 23, 0.35); /* ── Mobile ──────────────────────────────────────────────── */ --surface-mobile-sheet: var(--surface-section); --surface-mobile-close-row: var(--surface-settings); --surface-mobile-actions: var(--surface-settings); --surface-mobile-sidebar: transparent; --surface-mobile-close-btn: rgba(28, 19, 23, 0.08); --surface-mobile-close-btn-active: rgba(28, 19, 23, 0.14); --border-mobile-sheet: #c4ae8a; --border-mobile-row: #c4ae8a; /* ── Ghost / Utility surfaces ────────────────────────────── */ --surface-accent-soft: rgba(225, 29, 72, 0.05); --surface-summary-badge: rgba(225, 29, 72, 0.08); --border-summary-badge: rgba(225, 29, 72, 0.2); --surface-chevron: rgba(28, 19, 23, 0.05); --surface-chevron-active: rgba(28, 19, 23, 0.09); --surface-ghost: rgba(28, 19, 23, 0.06); --surface-ghost-hover: rgba(28, 19, 23, 0.12); --surface-step: var(--surface-input); --surface-step-hover: var(--surface-settings); --surface-step-active: var(--accent); --surface-step-border: #b5a07a; --text-step: var(--accent); /* ── State surfaces ──────────────────────────────────────── */ --surface-success: #dceee6; --surface-success-border: #6db89a; --surface-danger: #f5dcd6; --surface-danger-border: #d4827a; --text-danger: #b91c1c; --surface-warning: #f0e4c4; --surface-warning-panel: #ecdcb8; --surface-warning-border: #d4a860; --surface-compare-success: rgba(13, 148, 136, 0.12); --surface-compare-warning: rgba(217, 119, 6, 0.12); --surface-selected: rgba(225, 29, 72, 0.06); --surface-addon-hover: rgba(225, 29, 72, 0.04); --border-addon-hover: rgba(225, 29, 72, 0.18); --text-selected-accent: #9f1239; /* ── Text colours ────────────────────────────────────────── */ --text-sidebar-kicker: rgba(255, 255, 255, 0.84); --text-sidebar-heading: #fff; --text-sidebar-placeholder: rgba(255, 255, 255, 0.72); --text-money: var(--ink); --text-money-hero: var(--ink); --text-vs-heading: var(--ink); --text-vs-accent: #be123c; --text-vs-muted: var(--muted); --text-incentive: #0d9488; --text-pill-savings-active: #ccfbf1; /* ── Section interaction ─────────────────────────────────── */ --group-strip: rgba(225, 29, 72, 0.12); --section-hover-border: rgba(225, 29, 72, 0.18); --section-hover-shadow: -3px 0 0 0 rgba(225, 29, 72, 0.2); --section-open-border: rgba(225, 29, 72, 0.3); --section-open-shadow: -3px 0 0 0 rgba(225, 29, 72, 0.35); /* ── Buttons ─────────────────────────────────────────────── */ --btn-primary-fg: #ffffff; --btn-primary-hover: #be123c; --surface-pill-icon: rgba(255, 255, 255, 0.2); --sidebar-zone-services: rgba(0, 0, 0, 0.04); --sidebar-zone-invoice: rgba(0, 0, 0, 0.06); --sidebar-zone-value: rgba(13, 148, 136, 0.04); --sidebar-zone-summary: rgba(0, 0, 0, 0.025); --sidebar-row-stripe: rgba(0, 0, 0, 0.025); --sidebar-line-rule: color-mix(in srgb, var(--border) 60%, transparent); --sidebar-total-rule: color-mix(in srgb, var(--border) 85%, transparent); --surface-switch-off: #c0b4a0; --surface-switch-on: var(--green); } /* ── Retro cyberpunk typography ───────────────────────────── */ .top-bar, .section-header .section-title, .sidebar-header, .sidebar-mrr, .sidebar-hero-label { font-family: 'Poppins', sans-serif; letter-spacing: 0.04em; } /* ── Top bar — warm dark with hot rose neon edge ─────────── */ .top-bar { background: linear-gradient(180deg, var(--retro-dark-mid) 0%, var(--retro-dark) 60%, var(--retro-dark-deep) 100%) !important; border-bottom: 1px solid rgba(225, 29, 72, 0.3) !important; box-shadow: 0 2px 16px rgba(225, 29, 72, 0.06) !important; color: var(--retro-cream) !important; } .top-bar .top-bar-meta { color: var(--retro-muted-warm) !important; } /* ── Logo fix — SVG text paths hardcoded #0c0c0c, override to cream so they pop on the dark header ─────── */ .top-bar-logo path { fill: var(--retro-cream) !important; } /* ── Sidebar header — matches top bar ────────────────────── */ .sidebar-header { background: var(--retro-dark-gradient) !important; color: var(--text-on-accent) !important; } /* ── Section number — hot rose (faded on paper) ──────────── */ .section-num { color: rgba(225, 29, 72, 0.15) !important; } /* ── Pill toggle checked — hot rose gradient ─────────────── */ .pill-toggle input:checked + label { background: var(--retro-cta-gradient) !important; color: var(--text-on-accent) !important; } .pill-toggle input:checked + label .pill-price, .pill-toggle input:checked + label .pill-desc { color: var(--text-on-accent) !important; } /* ── Export buttons — hot rose CTA ───────────────────────── */ .btn-export { background: var(--retro-cta-gradient) !important; color: var(--text-on-accent) !important; } .btn-export:hover { filter: brightness(1.1) !important; box-shadow: 0 2px 12px rgba(225, 29, 72, 0.3) !important; } /* ── Tier segment active — hot rose gradient ─────────────── */ .tier-seg.active { background: var(--retro-cta-gradient) !important; color: var(--text-on-accent) !important; } /* ── Import button hover — teal accent ───────────────────── */ .btn-import-quote:hover { background: color-mix(in srgb, var(--sky) 8%, transparent); border-color: color-mix(in srgb, var(--sky) 30%, transparent); color: var(--sky); } /* ── Addon selected — rose tint on paper ─────────────────── */ .addon-row.selected { background: rgba(225, 29, 72, 0.04) !important; border-color: rgba(225, 29, 72, 0.18) !important; box-shadow: inset 3px 0 0 0 var(--accent) !important; } /* ── Paper texture with warm scanlines ───────────────────── */ body { background-color: var(--paper); background-image: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(180, 150, 100, 0.03) 2px, rgba(180, 150, 100, 0.03) 4px ); } /* ── Switch knob — hot rose when active ──────────────────── */ .switch input:checked + .switch-track { background: var(--accent) !important; } /* ── Nudge banners — warm paper tints ────────────────────── */ .nudge-banner.amber { background: #f0dab0 !important; border-color: #d4a040 !important; } .nudge-banner.green { background: #d6ece4 !important; border-color: #5aaa98 !important; } /* ── Callout boxes ───────────────────────────────────────── */ .callout-green { background: var(--surface-success) !important; border-color: var(--surface-success-border) !important; color: var(--green) !important; } .callout-red { background: var(--surface-danger) !important; border-color: var(--surface-danger-border) !important; } /* ── Mobile quote pill — hot rose with glow ──────────────── */ .mobile-quote-pill { background: var(--retro-cta-gradient) !important; color: var(--text-on-accent) !important; box-shadow: 0 0 10px rgba(225, 29, 72, 0.25) !important; } /* ── Progress bar — rose to teal gradient ────────────────── */ .progress-fill { background: linear-gradient(90deg, var(--accent) 0%, var(--green) 100%) !important; } /* ── Full-screen sidebar export-wrap ─────────────────────── */ body.sidebar-focus-open .side-col .export-wrap { background: transparent !important; border-top: none !important; }