/**
 * SIP Calculator Pro — Stylesheet
 * -----------------------------------
 * Design intent: trustworthy financial tool with actual visual personality —
 * not the flat, unstyled Elementor-default look of the reference site.
 *
 * Palette:
 *   --scp-navy      #16213E  (headers, primary actions, deep trust color)
 *   --scp-amber     #F2A93B  (the one accent — "value" signal, used sparingly)
 *   --scp-slate-bg  #F6F7FA  (card backgrounds)
 *   --scp-border    #E3E6EC
 *   --scp-text      #1A1D29
 *   --scp-text-soft #65697A
 *
 * Scoped entirely under .scp- so nothing leaks into / clashes with Astra.
 */

.scp-calc {
	--scp-navy: #16213e;
	--scp-navy-light: #233055;
	--scp-amber: #f2a93b;
	--scp-amber-soft: #fdf3e3;
	--scp-slate-bg: #f6f7fa;
	--scp-border: #e3e6ec;
	--scp-text: #1a1d29;
	--scp-text-soft: #65697a;
	--scp-radius: 12px;

	max-width: 880px;
	margin: 0 auto 2.5rem;
	padding: 2rem;
	background: #ffffff;
	border: none;
	border-radius: 16px;
	box-shadow: 0 1px 3px rgba(22, 33, 62, 0.04), 0 12px 32px -16px rgba(22, 33, 62, 0.12);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--scp-text);
	line-height: 1.5;
	box-sizing: border-box;
}

/* Reset box-sizing for all children — Astra (and many themes) set global
   form-field line-height/padding rules that otherwise leak in and cause
   inconsistent rendering (e.g. clipped dropdown text) inside this widget. */
.scp-calc *,
.scp-calc *::before,
.scp-calc *::after {
	box-sizing: border-box;
}

/* ── Header ───────────────────────────────────────────────────────────── */
.scp-calc__header {
	margin-bottom: 1.75rem;
	text-align: center;
}

.scp-calc__title {
	font-size: 2.35rem;
	font-weight: 800;
	color: var(--scp-navy);
	margin: 0 0 0.5rem;
	letter-spacing: -0.01em;
}

.scp-calc__icon {
	display: inline-block;
	margin-right: 0.35rem;
	font-size: 0.85em;
}

.scp-calc__subtitle {
	font-size: 0.97rem;
	color: var(--scp-text-soft);
	margin: 0;
	max-width: 540px;
	margin-inline: auto;
}

/* ── Form grid ────────────────────────────────────────────────────────── */
.scp-calc__form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.1rem 1.25rem;
	margin-bottom: 2rem;
}

.scp-field {
	display: flex;
	flex-direction: column;
}

/* CRITICAL: .scp-field sets display:flex, which has higher specificity
   than the browser's built-in [hidden] { display:none } rule. Without this,
   an element with both class="scp-field" and the hidden attribute would
   incorrectly still render — exactly what caused the Strike Price field to
   stay visible under RSU/ESOP. !important is justified here because we are
   overriding our OWN conflicting rule above, not fighting theme CSS. */
.scp-field[hidden] {
	display: none !important;
}

.scp-field--full {
	grid-column: 1 / -1;
}

.scp-field label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--scp-navy);
	margin-bottom: 0.4rem;
	display: flex;
	align-items: center;
	gap: 0.3rem;
}

.scp-field__icon {
	font-size: 0.95em;
}

.scp-field input,
.scp-field select {
	padding: 0.65rem 0.85rem;
	border: 1.5px solid var(--scp-border);
	border-radius: 8px;
	font-size: 0.97rem;
	line-height: 1.4;
	color: var(--scp-text);
	background: var(--scp-slate-bg);
	transition: border-color 0.15s ease, background 0.15s ease;
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
}

.scp-field select {
	/* Native <select> elements render line-height inconsistently across
	   browsers/themes — padding alone doesn't reliably protect descenders
	   (g, y, p) from clipping. A taller line-height + slightly larger
	   vertical padding here removes the ambiguity entirely rather than
	   relying on the browser's internal text box for the option text. */
	min-height: 3.1rem;
	line-height: 1.6;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
	overflow: visible;
	text-overflow: clip;
	white-space: nowrap;
	vertical-align: middle;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2365697A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem;
	padding-right: 2.5rem;
}

/* Some themes (Astra included) style <option> elements with their own
   line-height/padding that can clip descenders inside the open dropdown
   list itself, not just the closed select box. */
.scp-field select option {
	line-height: 1.6;
	padding: 0.4rem 0;
}

.scp-field input:hover,
.scp-field select:hover {
	border-color: #c7ccd9;
}

.scp-field input:focus,
.scp-field select:focus {
	outline: none;
	border-color: var(--scp-amber);
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(242, 169, 59, 0.18);
}

.scp-field__hint {
	font-size: 0.78rem;
	color: var(--scp-text-soft);
	margin: 0.4rem 0 0;
}

/* ── Growth rate presets ──────────────────────────────────────────────── */
.scp-growth-presets {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.6rem;
	flex-wrap: wrap;
}

.scp-preset {
	flex: 1;
	min-width: 140px;
	padding: 0.55rem 0.75rem;
	border: 1.5px solid var(--scp-border);
	border-radius: 8px;
	background: #ffffff;
	color: var(--scp-text-soft);
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.15s ease;
}

.scp-preset:hover {
	border-color: var(--scp-amber);
	color: var(--scp-navy);
}

.scp-preset.is-active {
	background: var(--scp-navy);
	border-color: var(--scp-navy);
	color: #ffffff;
}

/* ── Advanced toggle ──────────────────────────────────────────────────── */
.scp-advanced-toggle {
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	padding: 0.6rem 0;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--scp-navy);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	border-top: 1px dashed var(--scp-border);
	border-bottom: 1px dashed var(--scp-border);
}

.scp-advanced-toggle:hover {
	color: var(--scp-amber);
}

.scp-advanced-toggle__chevron {
	font-size: 0.8em;
	transition: transform 0.15s ease;
}

.scp-advanced-panel {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	padding: 1rem;
	margin-top: 0.75rem;
	background: var(--scp-slate-bg);
	border-radius: var(--scp-radius);
}

.scp-advanced-note {
	grid-column: 1 / -1;
	font-size: 0.8rem;
	color: var(--scp-text-soft);
	margin: 0;
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.scp-actions {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.scp-btn {
	flex: 1;
	min-width: 180px;
	padding: 0.85rem 1.5rem;
	border-radius: 10px;
	font-size: 0.98rem;
	font-weight: 700;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: transform 0.1s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.scp-btn:active {
	transform: translateY(1px);
}

.scp-btn--primary {
	background: var(--scp-navy);
	color: #ffffff;
}

.scp-btn--primary:hover {
	background: var(--scp-navy-light);
	box-shadow: 0 8px 20px -8px rgba(22, 33, 62, 0.45);
}

.scp-btn--secondary {
	background: #ffffff;
	border-color: var(--scp-border);
	color: var(--scp-navy);
}

.scp-btn--secondary:hover {
	border-color: var(--scp-amber);
	color: var(--scp-amber);
}

.scp-btn:focus-visible {
	outline: 3px solid var(--scp-amber);
	outline-offset: 2px;
}

.scp-btn:disabled {
	opacity: 0.65;
	cursor: wait;
	transform: none;
}

/* ── Results ──────────────────────────────────────────────────────────── */
.scp-results__heading {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--scp-navy);
	margin: 0 0 1rem;
}

.scp-summary-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.85rem;
	margin-bottom: 1.75rem;
}

.scp-card {
	padding: 1.1rem 1rem;
	background: var(--scp-slate-bg);
	border-radius: var(--scp-radius);
	border-top: 3px solid var(--scp-border);
	text-align: left;
}

.scp-card--highlight {
	background: var(--scp-amber-soft);
	border-top-color: var(--scp-amber);
}

.scp-card__label {
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--scp-text-soft);
	margin-bottom: 0.35rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.scp-card__value {
	font-size: 1.55rem;
	font-weight: 800;
	color: var(--scp-navy);
	letter-spacing: -0.01em;
	white-space: nowrap;
	overflow-x: auto;
}

/* Scale down automatically for very large numbers so 7-figure totals don't
   wrap mid-digit or get clipped on narrower card widths. */
@media (max-width: 900px) {
	.scp-card__value {
		font-size: 1.25rem;
	}
}

/* ── Chart ────────────────────────────────────────────────────────────── */
.scp-chart-wrap {
	height: 260px;
	margin-bottom: 1.75rem;
	position: relative;
}

/* ── Table ────────────────────────────────────────────────────────────── */
.scp-table-wrap {
	overflow-x: auto;
	margin-bottom: 1.5rem;
	border: 1px solid var(--scp-border);
	border-radius: var(--scp-radius);
}

.scp-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
}

.scp-table th,
.scp-table td {
	padding: 0.7rem 0.9rem;
	text-align: left;
	white-space: nowrap;
}

.scp-table thead th {
	background: var(--scp-navy);
	color: #ffffff;
	font-weight: 600;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.scp-table tbody tr:nth-child(even) {
	background: var(--scp-slate-bg);
}

.scp-table tbody tr:hover {
	background: var(--scp-amber-soft);
}

/* ── Interpretation ───────────────────────────────────────────────────── */
.scp-interpretation {
	padding: 1rem 1.25rem;
	background: var(--scp-slate-bg);
	border-left: 3px solid var(--scp-navy);
	border-radius: 0 var(--scp-radius) var(--scp-radius) 0;
	font-size: 0.92rem;
	color: var(--scp-text);
}

.scp-interpretation p {
	margin: 0;
}

/* ── Disclaimer ───────────────────────────────────────────────────────── */
.scp-disclaimer {
	font-size: 0.78rem;
	color: var(--scp-text-soft);
	border-top: 1px solid var(--scp-border);
	padding-top: 1rem;
	margin: 1.5rem 0 0;
	line-height: 1.6;
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 680px) {
	.scp-calc {
		padding: 1.25rem;
		margin: 0 auto 1.25rem;
		border-radius: 12px;
	}

	.scp-calc__form,
	.scp-advanced-panel {
		grid-template-columns: 1fr;
	}

	.scp-summary-cards {
		grid-template-columns: 1fr;
	}

	.scp-growth-presets {
		flex-direction: column;
	}

	.scp-actions {
		flex-direction: column;
	}

	.scp-btn {
		min-width: 0;
	}

	.scp-calc__title {
		font-size: 1.85rem;
	}
}

/* ── Reduced motion ───────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.scp-btn,
	.scp-preset,
	.scp-field input,
	.scp-field select {
		transition: none;
	}
}
