.itzel-mc {
	--imc-green: #7cb342;
	--imc-green-d: #5a9216;
	--imc-gold: #f4c430;
	--imc-red: #e8604c;
	--imc-ink: #2f3640;
	--imc-line: #e3e7ec;
	--imc-bg: #f7f9fb;
	max-width: 820px;
	margin: 0 auto;
	color: var(--imc-ink);
	font-family: inherit;
	box-sizing: border-box;
}
.itzel-mc *,
.itzel-mc *::before,
.itzel-mc *::after { box-sizing: border-box; }

/* ---- Form ---- */
.imc-form {
	background: var(--imc-bg);
	border: 1px solid var(--imc-line);
	border-radius: 12px;
	padding: 22px;
}
.imc-fields {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.imc-field { display: flex; flex-direction: column; font-size: 14px; }
.imc-field > span { font-weight: 600; margin-bottom: 6px; }
.imc-input {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid var(--imc-line);
	border-radius: 8px;
	padding: 0 12px;
	height: 46px;
	transition: border-color .15s, box-shadow .15s;
}
.imc-input:focus-within {
	border-color: var(--imc-green);
	box-shadow: 0 0 0 3px rgba(124,179,66,.15);
}
.imc-input i {
	font-style: normal;
	color: #8a94a3;
	font-size: 15px;
}
.imc-input input {
	border: 0;
	outline: 0;
	background: transparent;
	width: 100%;
	font-size: 16px;
	color: var(--imc-ink);
	padding: 0 6px;
	min-width: 0;
}
.imc-input-suffix input { text-align: left; padding-left: 0; }
.imc-pct {
	font-style: normal;
	color: #8a94a3;
	font-size: 13px;
	white-space: nowrap;
	padding-left: 6px;
}

.imc-advanced { margin-top: 16px; }
.imc-advanced > summary {
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	color: var(--imc-green-d);
	user-select: none;
	list-style: none;
}
.imc-advanced > summary::-webkit-details-marker { display: none; }
.imc-advanced > summary::before { content: "+ "; }
.imc-advanced[open] > summary::before { content: "\2013 "; }
.imc-advanced[open] > summary { margin-bottom: 14px; }

.imc-calc-btn {
	margin-top: 18px;
	width: 100%;
	border: 0;
	border-radius: 8px;
	background: var(--imc-green);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .02em;
	padding: 14px 18px;
	cursor: pointer;
	transition: background .15s;
}
.imc-calc-btn:hover { background: var(--imc-green-d); }
.imc-error {
	margin: 12px 0 0;
	color: #c0392b;
	font-size: 14px;
	font-weight: 600;
}

/* ---- Results ---- */
.imc-results { margin-top: 26px; }
.imc-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-bottom: 22px;
}
.imc-card {
	background: #fff;
	border: 1px solid var(--imc-line);
	border-radius: 12px;
	padding: 18px 14px;
	text-align: center;
	box-shadow: 0 1px 2px rgba(20,30,50,.04);
}
.imc-card-val { font-size: 26px; font-weight: 800; line-height: 1.1; }
.imc-card-lbl { font-size: 12.5px; color: #7a8794; margin-top: 6px; }

.imc-chart-wrap {
	background: #fff;
	border: 1px solid var(--imc-line);
	border-radius: 12px;
	padding: 16px;
	margin-bottom: 22px;
}

/* ---- Schedule table ---- */
.imc-table-wrap {
	border: 1px solid var(--imc-line);
	border-radius: 12px;
	overflow: hidden;
}
.imc-schedule { width: 100%; border-collapse: collapse; font-size: 14px; }
.imc-schedule thead th {
	color: #fff;
	font-weight: 700;
	padding: 12px 14px;
	text-align: right;
	position: sticky;
	top: 0;
}
.imc-schedule thead .imc-c-date { text-align: left; background: #555f6b; }
.imc-schedule thead .imc-c-prin { background: var(--imc-green); }
.imc-schedule thead .imc-c-int  { background: var(--imc-gold); color: #5b4a00; }
.imc-schedule thead .imc-c-bal  { background: var(--imc-red); }
.imc-table-wrap { max-height: 460px; overflow-y: auto; }
.imc-schedule tbody td {
	padding: 11px 14px;
	text-align: right;
	border-bottom: 1px solid var(--imc-line);
	font-variant-numeric: tabular-nums;
}
.imc-schedule tbody td:first-child { text-align: left; font-weight: 600; }
.imc-schedule tbody tr:nth-child(even) { background: #fafbfc; }
.imc-schedule tbody tr.imc-year-row td {
	background: #eef3ee;
	font-weight: 700;
	color: var(--imc-green-d);
}

@media (max-width: 600px) {
	.imc-fields { grid-template-columns: 1fr; }
	.imc-cards { grid-template-columns: 1fr; gap: 10px; }
	.imc-card { display: flex; align-items: baseline; justify-content: space-between; text-align: left; padding: 14px; }
	.imc-card-val { font-size: 22px; }
	.imc-card-lbl { margin-top: 0; }
}
