.ikr-nfp {
	--ikr-blue: #0b4f78;
	--ikr-blue-bright: #1677a7;
	--ikr-orange: #d46b24;
	--ikr-ink: #162633;
	--ikr-muted: #61717d;
	--ikr-line: #d7e0e6;
	--ikr-pale: #f3f7fa;
	box-sizing: border-box;
	max-width: 1180px;
	margin: 24px auto;
	padding: clamp(18px, 3vw, 34px);
	border: 1px solid var(--ikr-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 40px rgba(19, 49, 68, .09);
	color: var(--ikr-ink);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Clean Avada page layout, limited to pages containing this shortcode. */
body.ikr-nfp-clean-page .fusion-header-wrapper,
body.ikr-nfp-clean-page .fusion-page-title-bar,
body.ikr-nfp-clean-page .fusion-tb-header,
body.ikr-nfp-clean-page #side-header {
	display: none !important;
}

body.ikr-nfp-clean-page #main {
	padding-top: 24px !important;
}

.ikr-nfp *, .ikr-nfp *::before, .ikr-nfp *::after { box-sizing: border-box; }
.ikr-nfp h2, .ikr-nfp h3, .ikr-nfp p { margin-top: 0; }
.ikr-nfp__header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.ikr-nfp__header h2 { margin-bottom: 8px; font-size: clamp(1.55rem, 3vw, 2.3rem); line-height: 1.12; color: var(--ikr-ink); }
.ikr-nfp__eyebrow { margin-bottom: 6px; color: var(--ikr-blue); font-size: .77rem; font-weight: 800; letter-spacing: .16em; }
.ikr-nfp__intro { max-width: 760px; margin-bottom: 0; color: var(--ikr-muted); }
.ikr-nfp__version { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: var(--ikr-pale); color: var(--ikr-muted); font-size: .78rem; font-weight: 700; }

.ikr-nfp__upload { display: grid; grid-template-columns: auto minmax(160px, 1fr) auto; gap: 14px; align-items: center; margin-top: 26px; padding: 18px; border: 2px dashed #b9cbd6; border-radius: 13px; background: var(--ikr-pale); transition: .2s ease; }
.ikr-nfp__upload.is-dragging { border-color: var(--ikr-blue-bright); background: #eaf6fb; }
.ikr-nfp__file-label { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border: 1px solid var(--ikr-blue); border-radius: 8px; background: #fff; color: var(--ikr-blue); font-weight: 750; cursor: pointer; }
.ikr-nfp__file-label:hover { background: #edf7fb; }
.ikr-nfp__file-label input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ikr-nfp__file-label:focus-within { outline: 3px solid rgba(22, 119, 167, .22); outline-offset: 2px; }
.ikr-nfp__filename { min-width: 0; overflow: hidden; color: var(--ikr-muted); text-overflow: ellipsis; white-space: nowrap; }
.ikr-nfp__button { min-height: 42px; padding: 0 17px; border: 1px solid var(--ikr-blue); border-radius: 8px; background: var(--ikr-blue); color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.ikr-nfp__button:hover:not(:disabled) { background: #073b5b; }
.ikr-nfp__button:disabled { opacity: .48; cursor: not-allowed; }
.ikr-nfp__button--secondary { background: #fff; color: var(--ikr-blue); }
.ikr-nfp__button--secondary:hover:not(:disabled) { background: #edf7fb; }
.ikr-nfp__status { min-height: 24px; margin: 12px 2px 0; color: var(--ikr-muted); font-size: .93rem; }
.ikr-nfp__status.is-success { color: #236b45; }
.ikr-nfp__status.is-error { color: #a22f2f; font-weight: 650; }

.ikr-nfp__results { scroll-margin-top: 25px; }
.ikr-nfp__summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 10px 0 16px; }
.ikr-nfp__summary > div { padding: 14px 16px; border: 1px solid var(--ikr-line); border-radius: 10px; background: #fff; }
.ikr-nfp__summary span { display: block; margin-bottom: 5px; color: var(--ikr-muted); font-size: .78rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.ikr-nfp__summary strong { display: block; color: var(--ikr-ink); font-size: 1.08rem; }
.ikr-nfp__reserve-control { display: flex; gap: 22px; align-items: center; justify-content: space-between; margin-bottom: 16px; padding: 13px 16px; border-left: 4px solid var(--ikr-orange); border-radius: 8px; background: #fff7f0; }
.ikr-nfp__reserve-control label { display: flex; gap: 12px; align-items: center; font-weight: 750; white-space: nowrap; }
.ikr-nfp__reserve-control input { width: 84px; padding: 7px 8px; border: 1px solid #bdc8cf; border-radius: 6px; font: inherit; text-align: right; }
.ikr-nfp__reserve-control p { margin: 0; color: var(--ikr-muted); font-size: .88rem; }

.ikr-nfp__chart-card { padding: 18px; border: 1px solid var(--ikr-line); border-radius: 13px; background: #fff; }
.ikr-nfp__chart-heading { display: flex; justify-content: space-between; gap: 22px; align-items: flex-start; margin-bottom: 12px; }
.ikr-nfp__chart-heading h3 { margin-bottom: 4px; font-size: 1.2rem; }
.ikr-nfp__chart-heading p { margin-bottom: 0; color: var(--ikr-muted); font-size: .88rem; }
.ikr-nfp__chart-scroll { width: 100%; overflow-x: auto; }
.ikr-nfp__chart-scroll svg { display: block; min-width: 800px; width: 100%; height: auto; }
.ikr-nfp__grid { stroke: #aebdc7; stroke-width: 1.4; }
.ikr-nfp__grid--x { stroke: #bdc9d0; }
.ikr-nfp__axis { stroke: #6d7d87; stroke-width: 1.4; }
.ikr-nfp__axis-label { fill: #52636f; font-size: 13px; }
.ikr-nfp__axis-title { fill: #354753; font-size: 14px; font-weight: 700; }
.ikr-nfp__line { fill: none; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.ikr-nfp__line--fuel { stroke: var(--ikr-blue-bright); }
.ikr-nfp__line--usable { stroke: var(--ikr-orange); }
.ikr-nfp__marker-line { stroke: #657985; stroke-width: 1.5; stroke-dasharray: 5 5; }
.ikr-nfp__marker-dot { fill: #fff; stroke: var(--ikr-blue-bright); stroke-width: 3; }
.ikr-nfp__marker-label { fill: #253946; font-size: 13px; font-weight: 800; }
.ikr-nfp__marker-value { fill: #5d6f7b; font-size: 12px; }
.ikr-nfp__legend { fill: #354753; font-size: 13px; font-weight: 650; }
.ikr-nfp__hit { fill: transparent; cursor: help; }

.ikr-nfp__details { margin-top: 16px; border: 1px solid var(--ikr-line); border-radius: 10px; background: #fff; }
.ikr-nfp__details summary { padding: 14px 16px; color: var(--ikr-blue); font-weight: 750; cursor: pointer; }
.ikr-nfp__details > p { margin: 0; padding: 0 16px 12px; color: var(--ikr-muted); font-size: .88rem; }
.ikr-nfp__table-wrap { max-height: 410px; overflow: auto; border-top: 1px solid var(--ikr-line); }
.ikr-nfp table { width: 100%; border-collapse: collapse; font-size: .89rem; }
.ikr-nfp th, .ikr-nfp td { padding: 9px 12px; border-bottom: 1px solid #e7edf1; text-align: left; }
.ikr-nfp th { position: sticky; top: 0; z-index: 1; background: var(--ikr-pale); color: #3e505c; font-size: .78rem; text-transform: uppercase; }
.ikr-nfp td:nth-child(3), .ikr-nfp td:nth-child(4), .ikr-nfp th:nth-child(3), .ikr-nfp th:nth-child(4) { text-align: right; }
.ikr-nfp__disclaimer { margin: 16px 2px 0; color: var(--ikr-muted); font-size: .8rem; }

@media (max-width: 760px) {
	.ikr-nfp__upload { grid-template-columns: 1fr; }
	.ikr-nfp__file-label, .ikr-nfp__button { justify-content: center; width: 100%; }
	.ikr-nfp__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ikr-nfp__reserve-control, .ikr-nfp__chart-heading { align-items: stretch; flex-direction: column; }
}

@media (max-width: 480px) {
	.ikr-nfp { padding: 16px; border-radius: 12px; }
	.ikr-nfp__summary { grid-template-columns: 1fr; }
}

@page { size: A4 landscape; margin: 8mm; }

@media print {
	html, body { background: #fff !important; }
	body.ikr-nfp-clean-page #wpadminbar,
	body.ikr-nfp-clean-page .fusion-header-wrapper,
	body.ikr-nfp-clean-page .fusion-page-title-bar,
	body.ikr-nfp-clean-page .fusion-tb-header,
	body.ikr-nfp-clean-page #side-header,
	body.ikr-nfp-clean-page footer { display: none !important; }
	body.ikr-nfp-clean-page #main { padding: 0 !important; }
	.ikr-nfp { max-width: none; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
	.ikr-nfp__header, .ikr-nfp__upload, .ikr-nfp__status, .ikr-nfp__button, .ikr-nfp__reserve-control, .ikr-nfp__details { display: none !important; }
	.ikr-nfp__summary { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin: 0 0 7px; }
	.ikr-nfp__summary > div { padding: 6px 8px; border-radius: 5px; }
	.ikr-nfp__summary span { margin-bottom: 2px; font-size: 8px; }
	.ikr-nfp__summary strong { font-size: 11px; }
	.ikr-nfp__chart-card { border: 0; padding: 0; }
	.ikr-nfp__chart-heading { margin-bottom: 3px; }
	.ikr-nfp__chart-heading h3 { margin-bottom: 0; font-size: 14px; }
	.ikr-nfp__chart-heading p { display: none; }
	.ikr-nfp__chart-scroll { overflow: visible; }
	.ikr-nfp__chart-scroll svg { min-width: 0; width: 100%; max-height: 145mm; }
	.ikr-nfp__disclaimer { margin-top: 3px; font-size: 7px; }
}
