.npp-app {
	--npp-primary: #176b2c;
	--npp-primary-dark: #123d1d;
	--npp-primary-soft: #e9f5ec;
	--npp-surface: #f7faf7;
	--npp-card: #fff;
	--npp-border: #cbd9cd;
	--npp-text: #172117;
	--npp-muted: #526054;
	--npp-danger: #a62b1f;
	--npp-warning: #7a5200;
	background: var(--npp-surface);
	border: 1px solid var(--npp-border);
	border-radius: 18px;
	box-sizing: border-box;
	color: var(--npp-text);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 18px;
	line-height: 1.55;
	margin: 24px auto;
	max-width: 1040px;
	padding: clamp(20px, 4vw, 44px);
}
.npp-app.npp-theme-calm-blue { --npp-primary:#1d5f8a; --npp-primary-dark:#173047; --npp-primary-soft:#e7f2f9; --npp-surface:#f2f8fc; --npp-border:#c7ddea; --npp-text:#172c3b; --npp-muted:#526777; }
.npp-app.npp-theme-neutral-dark { --npp-primary:#3c434a; --npp-primary-dark:#1d2327; --npp-primary-soft:#eceeef; --npp-surface:#f6f7f7; --npp-border:#c3c4c7; --npp-text:#1d2327; --npp-muted:#555d66; }
.npp-app *, .npp-app *::before, .npp-app *::after { box-sizing: border-box; }
.npp-app [hidden] { display: none !important; }
.npp-app-header { max-width: 820px; }
.npp-eyebrow { color:var(--npp-primary); font-size:15px; font-weight:800; letter-spacing:.05em; margin:0 0 6px; text-transform:uppercase; }
.npp-app h2 { color:var(--npp-primary-dark); font-size:clamp(30px,5vw,46px); line-height:1.12; margin:0 0 16px; }
.npp-app h3 { color:var(--npp-primary-dark); font-size:clamp(24px,3vw,30px); line-height:1.25; margin:0 0 10px; }
.npp-app h4 { font-size:20px; margin:0; }
.npp-lead { font-size:20px; margin:0 0 28px; }
.npp-privacy-note, .npp-help-note, .npp-message, .npp-success-panel { align-items:flex-start; background:var(--npp-card); border:2px solid var(--npp-primary); border-radius:14px; display:flex; gap:14px; margin:22px 0; padding:18px; }
.npp-privacy-note .dashicons, .npp-help-note .dashicons { color:var(--npp-primary); flex:0 0 32px; font-size:30px; height:32px; width:32px; }
.npp-privacy-note p, .npp-help-note p, .npp-message p, .npp-success-panel p { margin:4px 0 0; }
.npp-choice-grid { display:grid; gap:22px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:24px 0; }
.npp-choice-card { appearance:none; background:var(--npp-card); border:3px solid var(--npp-border); border-radius:16px; color:var(--npp-text); cursor:pointer; display:flex; flex-direction:column; font:inherit; min-height:300px; padding:28px; text-align:left; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; width:100%; }
.npp-choice-card:hover { border-color:var(--npp-primary); box-shadow:0 8px 24px rgba(0,0,0,.08); transform:translateY(-2px); }
.npp-choice-card:focus-visible, .npp-button:focus-visible, .npp-back-link:focus-visible, .npp-remove-button:focus-visible, .npp-summary-change:focus-visible, .npp-file-label:focus-within { outline:4px solid #ffbf47; outline-offset:3px; }
.npp-choice-card .dashicons { color:var(--npp-primary); font-size:46px; height:46px; width:46px; }
.npp-choice-title { color:var(--npp-primary-dark); font-size:25px; font-weight:800; margin:14px 0 10px; }
.npp-choice-action { color:var(--npp-primary); font-weight:800; margin-top:auto; padding-top:18px; }
.npp-help-note { border-color:var(--npp-border); }
.npp-view { outline:none; }
.npp-back-link { background:transparent; border:0; color:var(--npp-primary); cursor:pointer; font:inherit; font-weight:800; margin:0 0 24px; padding:8px 0; text-decoration:underline; }
.npp-section-heading { align-items:flex-start; display:flex; gap:16px; margin-bottom:24px; }
.npp-section-heading p { margin:3px 0 0; }
.npp-step-badge { align-items:center; background:var(--npp-primary); border-radius:50%; color:#fff; display:inline-flex; flex:0 0 42px; font-size:22px; font-weight:800; height:42px; justify-content:center; width:42px; }
.npp-file-field { background:var(--npp-card); border:2px dashed var(--npp-primary); border-radius:16px; padding:24px; }
.npp-file-label { align-items:center; cursor:pointer; display:flex; flex-direction:column; padding:20px; text-align:center; }
.npp-file-label .dashicons { color:var(--npp-primary); font-size:52px; height:52px; width:52px; }
.npp-file-label-main { background:var(--npp-primary); border-radius:10px; color:#fff; font-size:20px; font-weight:800; margin:14px 0 8px; padding:13px 24px; }
.npp-file-label-help, .npp-field-help { color:var(--npp-muted); font-size:15px; }
.npp-file-selection { font-weight:700; margin-top:12px; text-align:center; word-break:break-word; }
.npp-visually-hidden { clip:rect(0 0 0 0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.npp-small-notes { background:var(--npp-primary-soft); border-radius:10px; color:var(--npp-muted); font-size:15px; margin:18px 0; padding:14px 16px; }
.npp-small-notes p { margin:4px 0; }
.npp-honeypot { left:-9999px !important; opacity:0 !important; position:absolute !important; }
.npp-checkbox-row { align-items:flex-start; background:var(--npp-card); border:1px solid var(--npp-border); border-radius:12px; cursor:pointer; display:flex; gap:12px; margin:22px 0; padding:16px; }
.npp-checkbox-row input { flex:0 0 24px; height:24px; margin-top:2px; width:24px; }
.npp-progress { background:var(--npp-card); border:1px solid var(--npp-border); border-radius:14px; margin:0 0 26px; padding:18px; }
.npp-progress-text { display:flex; justify-content:space-between; margin-bottom:10px; }
.npp-progress-track { background:#dce3dd; border-radius:99px; height:12px; overflow:hidden; }
.npp-progress-track span { background:var(--npp-primary); display:block; height:100%; transition:width .2s ease; width:20%; }
.npp-progress-list { display:grid; font-size:14px; gap:8px; grid-template-columns:repeat(5,1fr); list-style:none; margin:12px 0 0; padding:0; text-align:center; }
.npp-progress-list li { color:var(--npp-muted); font-weight:700; }
.npp-progress-list li.is-current { color:var(--npp-primary); }
.npp-progress-list li.is-complete::before { content:'✓ '; }
.npp-step { border:0; margin:0; min-width:0; padding:0; }
.npp-step legend { color:var(--npp-primary-dark); font-size:clamp(24px,3vw,30px); font-weight:800; line-height:1.25; margin:0 0 6px; padding:0; width:100%; }
.npp-step-intro { margin:0 0 24px; }
.npp-field-grid { display:grid; gap:20px; }
.npp-field-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.npp-field { margin:0 0 20px; }
.npp-field-medium { max-width:520px; }
.npp-field label { display:block; font-weight:800; margin-bottom:7px; }
.npp-field input, .npp-field select, .npp-field textarea { background:#fff; border:2px solid #869189; border-radius:9px; color:var(--npp-text); font:inherit; min-height:52px; padding:10px 12px; width:100%; }
.npp-field input:focus, .npp-field select:focus, .npp-field textarea:focus { border-color:var(--npp-primary); box-shadow:0 0 0 3px color-mix(in srgb, var(--npp-primary) 22%, transparent); outline:none; }
.npp-field input[aria-invalid="true"], .npp-field select[aria-invalid="true"] { border-color:var(--npp-danger); }
.npp-field-error { color:var(--npp-danger); font-size:15px; font-weight:800; min-height:1.4em; margin-top:4px; }
.npp-field-help { margin:5px 0 0; }
.npp-input-suffix { align-items:stretch; display:flex; }
.npp-input-suffix input { border-radius:9px 0 0 9px; min-width:0; }
.npp-input-suffix > span { align-items:center; background:var(--npp-primary-soft); border:2px solid #869189; border-left:0; border-radius:0 9px 9px 0; display:flex; font-weight:800; padding:0 14px; }
.npp-field.is-disabled, [data-npp-balance-amount-wrap].is-disabled { opacity:.6; }
.npp-cost-item { background:var(--npp-card); border:2px solid var(--npp-border); border-radius:14px; margin:0 0 20px; padding:20px; }
.npp-cost-header { align-items:center; border-bottom:1px solid var(--npp-border); display:flex; justify-content:space-between; margin-bottom:18px; padding-bottom:12px; }
.npp-remove-button, .npp-summary-change { background:transparent; border:0; color:var(--npp-danger); cursor:pointer; font:inherit; font-size:15px; font-weight:800; text-decoration:underline; }
.npp-remove-button:disabled { color:var(--npp-muted); cursor:not-allowed; opacity:.6; }
.npp-button { align-items:center; border:2px solid transparent; border-radius:10px; cursor:pointer; display:inline-flex; font:inherit; font-weight:800; gap:8px; justify-content:center; min-height:54px; padding:12px 22px; text-decoration:none; }
.npp-button-primary { background:var(--npp-primary); color:#fff; }
.npp-button-primary:hover { background:var(--npp-primary-dark); }
.npp-button-secondary { background:#fff; border-color:var(--npp-primary); color:var(--npp-primary); }
.npp-button:disabled { cursor:wait; opacity:.65; }
.npp-add-cost { margin-bottom:20px; }
.npp-form-actions { align-items:center; border-top:1px solid var(--npp-border); display:flex; gap:14px; justify-content:space-between; margin-top:24px; padding-top:22px; }
.npp-form-actions-single { justify-content:flex-end; }
.npp-live-status { color:var(--npp-danger); font-weight:800; margin:14px 0; min-height:1.5em; }
.npp-success-panel { background:#f0f8f1; }
.npp-success-icon { align-items:center; background:var(--npp-primary); border-radius:50%; color:#fff; display:inline-flex; flex:0 0 44px; font-size:28px; height:44px; justify-content:center; width:44px; }
.npp-message-warning { border-color:#d69e00; }
.npp-summary { display:grid; gap:16px; }
.npp-summary-section { background:var(--npp-card); border:1px solid var(--npp-border); border-radius:12px; padding:18px; }
.npp-summary-header { align-items:center; display:flex; justify-content:space-between; margin-bottom:12px; }
.npp-summary-change { color:var(--npp-primary); }
.npp-summary dl { display:grid; gap:7px 18px; grid-template-columns:minmax(170px,1fr) minmax(0,2fr); margin:0; }
.npp-summary dt { color:var(--npp-muted); font-weight:700; }
.npp-summary dd { font-weight:700; margin:0; overflow-wrap:anywhere; }
.npp-confirmation-row { border-width:2px; }
.npp-app-footer { align-items:flex-start; border-top:1px solid var(--npp-border); color:var(--npp-muted); display:flex; gap:10px; margin-top:32px; padding-top:20px; }
.npp-app-footer p { font-size:15px; margin:0; }
.npp-app-footer .dashicons { color:var(--npp-primary); }
@media (max-width:760px) {
	.npp-app { border-radius:10px; font-size:17px; margin:10px auto; padding:18px; }
	.npp-choice-grid, .npp-field-grid-two { grid-template-columns:1fr; }
	.npp-choice-card { min-height:0; }
	.npp-progress-list { display:none; }
	.npp-progress-text { align-items:flex-start; flex-direction:column; }
	.npp-form-actions { align-items:stretch; flex-direction:column-reverse; }
	.npp-form-actions .npp-button { width:100%; }
	.npp-summary dl { grid-template-columns:1fr; }
	.npp-summary dd { margin-bottom:8px; }
	.npp-cost-header { align-items:flex-start; gap:10px; }
}
@media (prefers-reduced-motion:reduce) {
	.npp-app *, .npp-app *::before, .npp-app *::after { scroll-behavior:auto !important; transition:none !important; }
}
@media (forced-colors:active) {
	.npp-button, .npp-choice-card, .npp-field input, .npp-field select { border:2px solid ButtonText; }
}
