/* CQOP - Calcolo tariffa e requisiti SOA (shortcode [vn_cqop_calcolo_soa]) */

.vnsoa {
	--vnsoa-blue: #123A5E;
	--vnsoa-red: #7A2230;
	--vnsoa-red-accent: #B4474B;
	--vnsoa-pink: #E39AA2;
	--vnsoa-pink-light: #F0DDDF;
	--vnsoa-ink: #201E1D;
	--vnsoa-text: #3A3733;
	--vnsoa-muted: #6B665E;
	--vnsoa-sand: #F5F2EF;
	--vnsoa-sand-light: #FBF8F6;
	--vnsoa-line: rgba(32, 30, 29, 0.12);
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
	color: var(--vnsoa-ink);
	font-variant-numeric: tabular-nums;
	scroll-margin-top: 140px;
}

.vnsoa *,
.vnsoa *::before,
.vnsoa *::after { box-sizing: border-box; }

.vnsoa svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.vnsoa button { font-family: inherit; border-radius: 0; }

.vnsoa .screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.vnsoa .vnsoa-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }

/* ---------------------------------------------------------------- */
/* Passo 1                                                           */
/* ---------------------------------------------------------------- */

.vnsoa .vnsoa-layout { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; margin: 0; }

.vnsoa .vnsoa-card { flex: 3 1 600px; min-width: 0; background: #FFFFFF; border-top: 3px solid var(--vnsoa-blue); }

.vnsoa .vnsoa-card__head { padding: 26px 28px 20px; border-bottom: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-card__head p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--vnsoa-text); }
.vnsoa .vnsoa-card__title { display: flex; align-items: center; gap: 18px; margin-bottom: 8px; }
.vnsoa .vnsoa-card__title h3 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.022em; color: var(--vnsoa-blue); }

.vnsoa .vnsoa-badge { display: inline-flex; align-items: baseline; flex: none; padding: 8px 11px 7px; background: var(--vnsoa-red); line-height: 1; white-space: nowrap; }
.vnsoa .vnsoa-badge span { font-size: 20px; font-weight: 600; letter-spacing: -0.035em; color: #FFFFFF; }
.vnsoa .vnsoa-badge small { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; color: var(--vnsoa-pink-light); margin-left: 2px; }

.vnsoa .vnsoa-grid { display: grid; grid-template-columns: 28px minmax(0, 1fr) 150px 38px; gap: 14px; align-items: center; padding: 0 28px; }
.vnsoa .vnsoa-grid--head { font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--vnsoa-muted); background: var(--vnsoa-sand-light); border-bottom: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-grid--head span { padding: 10px 0; }
.vnsoa .vnsoa-row { padding-top: 14px; padding-bottom: 14px; border-bottom: 1px solid rgba(32, 30, 29, 0.1); }
.vnsoa .vnsoa-row__n { font-size: 13px; font-weight: 700; color: var(--vnsoa-red); }

.vnsoa .vnsoa-select { position: relative; display: block; min-width: 0; margin: 0; }
.vnsoa .vnsoa-select select {
	width: 100%; appearance: none; -webkit-appearance: none; margin: 0;
	padding: 10px 34px 10px 12px; font-family: inherit; font-size: 13.5px; font-weight: 500; line-height: 1.4;
	border-radius: 0; cursor: pointer; color: var(--vnsoa-muted); background: #FFFFFF;
	border: 1.5px solid rgba(18, 58, 94, 0.28); text-overflow: ellipsis;
	transition: border-color .15s, background .15s, color .15s;
}
.vnsoa .vnsoa-select select:focus-visible { outline: 2px solid var(--vnsoa-pink); outline-offset: 2px; }
.vnsoa .vnsoa-select svg { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-select.is-filled select { font-weight: 600; color: var(--vnsoa-blue); background: #FBF6F4; border-color: var(--vnsoa-blue); }
.vnsoa .vnsoa-select--class select { color: var(--vnsoa-blue); }
.vnsoa .vnsoa-select--class select { background: #FFFFFF; }
.vnsoa .vnsoa-select--class.is-active select { font-weight: 700; color: #FFFFFF; background: var(--vnsoa-red); border-color: var(--vnsoa-red); }
.vnsoa .vnsoa-select--class.is-active svg { color: #FFFFFF; }
.vnsoa .vnsoa-select option { color: var(--vnsoa-ink); background: #FFFFFF; font-weight: 500; }
.vnsoa .vnsoa-select option:disabled { color: #B0AAA2; }

.vnsoa .vnsoa-icon-btn {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0;
	background: transparent; border: 1px solid rgba(32, 30, 29, 0.2); color: var(--vnsoa-muted); cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.vnsoa .vnsoa-icon-btn:hover,
.vnsoa .vnsoa-icon-btn:focus-visible { background: var(--vnsoa-red); color: #FFFFFF; border-color: var(--vnsoa-red); }
.vnsoa .vnsoa-icon-btn--light { width: 32px; height: 32px; border-color: rgba(255, 255, 255, 0.3); color: #FFFFFF; }

.vnsoa .vnsoa-card__foot { padding: 18px 28px 24px; }
.vnsoa .vnsoa-add {
	display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; background: transparent;
	border: 1.5px dashed var(--vnsoa-blue); color: var(--vnsoa-blue); font-size: 11px; font-weight: 700;
	letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s;
}
.vnsoa .vnsoa-add svg { width: 14px; height: 14px; }
.vnsoa .vnsoa-add:hover,
.vnsoa .vnsoa-add:focus-visible { background: var(--vnsoa-blue); color: #FFFFFF; border-style: solid; }

/* Consorzio stabile */
.vnsoa .vnsoa-card__option { margin: 0 28px; padding: 18px 0 24px; border-top: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-option { display: inline-flex; align-items: center; gap: 12px; margin: 0; cursor: pointer; font-size: 14px; line-height: 1.5; color: var(--vnsoa-text); }
.vnsoa .vnsoa-option input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--vnsoa-red); cursor: pointer; }
.vnsoa .vnsoa-option strong { font-weight: 700; color: var(--vnsoa-ink); }

/* Pannello blu */
.vnsoa .vnsoa-panel {
	position: relative; align-self: flex-start; flex: 1 1 300px; min-width: 0;
	display: flex; flex-direction: column; background: var(--vnsoa-blue); color: #FFFFFF;
	border-left: 4px solid var(--vnsoa-red-accent);
}
.vnsoa .vnsoa-panel__head { padding: 26px 26px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
.vnsoa .vnsoa-panel__head .vnsoa-eyebrow { color: var(--vnsoa-pink); margin-bottom: 10px; }
.vnsoa .vnsoa-panel__count { display: flex; align-items: baseline; gap: 10px; }
.vnsoa .vnsoa-panel__count strong { font-size: 40px; font-weight: 600; line-height: 1; letter-spacing: -0.04em; }
.vnsoa .vnsoa-panel__count span { font-size: 13px; color: #DCE5EF; }
.vnsoa .vnsoa-panel__empty { margin: 0; padding: 22px 26px; font-size: 14px; line-height: 1.7; color: #C9D6E4; }
.vnsoa .vnsoa-panel__list { list-style: none; margin: 0; padding: 0; }
.vnsoa .vnsoa-panel__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto 32px; gap: 12px; align-items: center; margin: 0; padding: 14px 26px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.vnsoa .vnsoa-panel__cat { min-width: 0; }
.vnsoa .vnsoa-panel__cat strong { display: block; font-size: 15px; font-weight: 600; }
.vnsoa .vnsoa-panel__cat span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.4; color: #9FB4CC; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vnsoa .vnsoa-panel__class { padding: 5px 9px; background: #FFFFFF; color: var(--vnsoa-blue); font-size: 12.5px; font-weight: 700; }

.vnsoa .vnsoa-panel__form { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 16px; }
.vnsoa .vnsoa-summary + .vnsoa-panel__form { border-top: 1px solid rgba(255, 255, 255, 0.18); }
.vnsoa .vnsoa-summary.htmx-swapping { opacity: 1; }
.vnsoa .vnsoa-panel__error { padding: 10px 12px; background: var(--vnsoa-red); font-size: 13px; line-height: 1.5; }
.vnsoa .vnsoa-panel__note { margin: 0; font-size: 12px; line-height: 1.6; color: #9FB4CC; }

.vnsoa .vnsoa-field { display: block; margin: 0; }
.vnsoa .vnsoa-field__label { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #FFFFFF; margin-bottom: 8px; }
.vnsoa .vnsoa-req { color: var(--vnsoa-pink); }
.vnsoa .vnsoa-field input {
	width: 100%; margin: 0; padding: 14px 15px; font-family: inherit; font-size: 15px; color: var(--vnsoa-ink);
	background: #FFFFFF; border: 1px solid rgba(32, 30, 29, 0.24); border-radius: 0;
}
.vnsoa .vnsoa-field input:focus { outline: none; border-color: var(--vnsoa-pink); box-shadow: 0 0 0 3px rgba(227, 154, 162, 0.35); }
.vnsoa .vnsoa-field.is-invalid input { border-color: var(--vnsoa-red); box-shadow: 0 0 0 3px rgba(227, 154, 162, 0.35); }
.vnsoa .vnsoa-field__error { display: block; margin-top: 7px; font-size: 12.5px; color: var(--vnsoa-pink-light); }

.vnsoa .vnsoa-check { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; margin: 0; cursor: pointer; }
.vnsoa .vnsoa-check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--vnsoa-red); }
.vnsoa .vnsoa-check span { font-size: 12.5px; line-height: 1.6; color: #DCE5EF; }
.vnsoa .vnsoa-check a { color: #FFFFFF; text-decoration: underline; }

.vnsoa .vnsoa-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.vnsoa .vnsoa-submit {
	display: inline-flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%;
	padding: 17px 26px; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
	border: 1.5px solid #FFFFFF; background: #FFFFFF; color: var(--vnsoa-blue); cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.vnsoa .vnsoa-submit svg { width: 20px; height: 12px; stroke-width: 1.7; }
.vnsoa .vnsoa-submit:hover:not(:disabled),
.vnsoa .vnsoa-submit:focus-visible { background: #7A2230; border-color: #7A2230; color: #fff !important}
.vnsoa .vnsoa-submit:disabled { border-color: rgba(128, 128, 128, 0.4); background: transparent; color: rgba(255, 255, 255, 0.45); cursor: not-allowed; }
.vnsoa .vnsoa-submit__busy { display: none; }
.vnsoa .vnsoa-form.htmx-request .vnsoa-submit__label { display: none; }
.vnsoa .vnsoa-form.htmx-request .vnsoa-submit__busy { display: inline; }
.vnsoa .vnsoa-form.htmx-request .vnsoa-submit { cursor: progress; }

.vnsoa .htmx-request select,
.vnsoa select.htmx-request { cursor: progress; }

/* ---------------------------------------------------------------- */
/* Risultato                                                         */
/* ---------------------------------------------------------------- */

.vnsoa .vnsoa-result { background: #FFFFFF; padding: 40px 40px 10px; margin: 0; }

.vnsoa .vnsoa-notice { display: flex; align-items: center; gap: 16px; padding: 16px 20px; background: var(--vnsoa-sand); border-left: 4px solid var(--vnsoa-blue); margin-bottom: 44px; font-size: 14.5px; line-height: 1.6; color: var(--vnsoa-text); }
.vnsoa .vnsoa-notice svg { width: 22px; height: 22px; stroke: var(--vnsoa-blue); stroke-width: 1.8; }
.vnsoa .vnsoa-notice strong { font-weight: 600; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-notice--warning { border-left-color: var(--vnsoa-red); background: #FBF6F4; }
.vnsoa .vnsoa-notice--warning svg { stroke: var(--vnsoa-red); }
.vnsoa .vnsoa-notice a { color: var(--vnsoa-red); font-weight: 600; }
.vnsoa > .vnsoa-notice { margin: 0; }

.vnsoa .vnsoa-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 48px; }
.vnsoa .vnsoa-total { padding: 30px 32px 32px; color: #FFFFFF; }
.vnsoa .vnsoa-total--blue { background: var(--vnsoa-blue); }
.vnsoa .vnsoa-total--red { background: var(--vnsoa-red); }
.vnsoa .vnsoa-total .vnsoa-eyebrow { margin-bottom: 14px; color: var(--vnsoa-pink); }
.vnsoa .vnsoa-total--red .vnsoa-eyebrow { color: var(--vnsoa-pink-light); }
.vnsoa .vnsoa-total__value { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.vnsoa .vnsoa-total__value strong { font-size: 48px; font-weight: 600; line-height: 1; letter-spacing: -0.045em; }
.vnsoa .vnsoa-total__value span { font-size: 13px; color: #C9D6E4; }
.vnsoa .vnsoa-total--red .vnsoa-total__value span { color: var(--vnsoa-pink-light); }
.vnsoa .vnsoa-total__note { margin-top: 10px; font-size: 12.5px; color: #C9D6E4; }
.vnsoa .vnsoa-total__note + .vnsoa-total__note { margin-top: 4px; }
.vnsoa .vnsoa-total--red .vnsoa-total__note { color: var(--vnsoa-pink-light); }

.vnsoa .vnsoa-h3 { margin: 0 0 20px; font-size: 26px; font-weight: 600; letter-spacing: -0.025em; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-h3--tight { margin-bottom: 8px; }
.vnsoa .vnsoa-lead { margin: 0 0 26px; font-size: 15px; line-height: 1.7; color: var(--vnsoa-text); }

.vnsoa .vnsoa-table-wrap { overflow-x: auto; margin-bottom: 56px; }
.vnsoa .vnsoa-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 14.5px; margin: 0; border: 0; }
.vnsoa .vnsoa-table th,
.vnsoa .vnsoa-table td { border: 0; background: none; }
.vnsoa .vnsoa-table thead tr { border-top: 2px solid var(--vnsoa-blue); border-bottom: 1px solid rgba(32, 30, 29, 0.2); }
.vnsoa .vnsoa-table thead th { text-align: left; padding: 13px 12px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vnsoa-muted); }
.vnsoa .vnsoa-table tbody tr { border-bottom: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-table tbody td { padding: 16px 12px; vertical-align: top; }
.vnsoa .vnsoa-table tfoot tr { border-top: 2px solid var(--vnsoa-blue); }
.vnsoa .vnsoa-table tfoot th,
.vnsoa .vnsoa-table tfoot td { padding: 16px 12px; font-weight: 700; color: var(--vnsoa-blue); text-align: left; }
.vnsoa .vnsoa-table th:first-child,
.vnsoa .vnsoa-table td:first-child { padding-left: 0; }
.vnsoa .vnsoa-table th:last-child,
.vnsoa .vnsoa-table td:last-child { padding-right: 0; }
.vnsoa .vnsoa-table .is-num { text-align: right; white-space: nowrap; }
.vnsoa .vnsoa-table__code { display: block; font-weight: 600; color: var(--vnsoa-red); }
.vnsoa .vnsoa-table__name { display: block; margin-top: 3px; font-size: 13px; color: var(--vnsoa-muted); }
.vnsoa .vnsoa-table__class { font-weight: 600; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-table__sub { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--vnsoa-muted); }
.vnsoa .vnsoa-table__fee { font-weight: 600; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-table .vnsoa-table__review { font-weight: 600; color: var(--vnsoa-red); }

/* Lavori richiesti e lavori di punta */
.vnsoa .vnsoa-works { display: flex; flex-direction: column; gap: 22px; margin-bottom: 56px; }
.vnsoa .vnsoa-work { width: 100%; border-collapse: collapse; margin: 0; border: 0; font-size: 14px; }
.vnsoa .vnsoa-work th,
.vnsoa .vnsoa-work td { border: 0; background: none; padding: 11px 14px; vertical-align: middle; text-align: left; }
.vnsoa .vnsoa-work thead th { background: var(--vnsoa-sand); border-top: 2px solid var(--vnsoa-blue); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-work thead .vnsoa-work__title { letter-spacing: 0; text-transform: none; font-size: 14px; }
.vnsoa .vnsoa-work__title .vnsoa-table__code { display: inline; margin-right: 8px; }
.vnsoa .vnsoa-work__name { font-weight: 500; color: var(--vnsoa-text); }
.vnsoa .vnsoa-work__class { display: inline-block; margin-left: 10px; padding: 3px 8px; background: var(--vnsoa-blue); color: #FFFFFF; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.vnsoa .vnsoa-work tbody tr { border-bottom: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-work .is-num { text-align: right; white-space: nowrap; width: 160px; }
.vnsoa .vnsoa-work--og11 .is-num { width: 130px; }
.vnsoa .vnsoa-work__amount { font-weight: 600; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-work .vnsoa-work__top th { padding-top: 16px; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vnsoa-red); }
.vnsoa .vnsoa-work__alt td:first-child { padding-left: 28px; color: var(--vnsoa-text); }

/* Requisiti di capacità economica */
.vnsoa .vnsoa-reqlist { border-top: 2px solid var(--vnsoa-blue); margin-bottom: 26px; }
.vnsoa .vnsoa-reqlist__row { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 24px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--vnsoa-line); }
.vnsoa .vnsoa-reqlist__title { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vnsoa-blue); }
.vnsoa .vnsoa-reqlist__subtitle { margin-top: 5px; font-size: 14px; font-weight: 600; color: var(--vnsoa-ink); }
.vnsoa .vnsoa-reqlist__text { margin-top: 4px; font-size: 14px; line-height: 1.6; color: var(--vnsoa-text); }
.vnsoa .vnsoa-reqlist__value { text-align: right; font-size: 24px; font-weight: 600; letter-spacing: -0.025em; color: var(--vnsoa-blue); white-space: nowrap; }
.vnsoa .vnsoa-reqlist__row--accent .vnsoa-reqlist__value { color: var(--vnsoa-red); }
.vnsoa .vnsoa-reqlist__sep { padding: 10px 14px; background: var(--vnsoa-sand); border-left: 4px solid var(--vnsoa-red); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vnsoa-red); }

.vnsoa .vnsoa-notes { margin: 0 0 22px; padding: 14px 20px 14px 36px; background: var(--vnsoa-sand); border-left: 4px solid var(--vnsoa-red); font-size: 13.5px; line-height: 1.6; color: var(--vnsoa-text); }
.vnsoa .vnsoa-notes li { margin: 4px 0; }

.vnsoa .vnsoa-disclaimer { margin: 0 0 44px; font-size: 12.5px; line-height: 1.7; color: var(--vnsoa-muted); font-style: italic; }

.vnsoa .vnsoa-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 30px 0 40px; border-top: 1px solid rgba(32, 30, 29, 0.16); }
.vnsoa .vnsoa-btn {
	display: inline-flex; align-items: center; justify-content: center; padding: 15px 26px; font-size: 11px; font-weight: 700;
	letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; cursor: pointer; border-radius: 0;
	transition: background .2s, color .2s, border-color .2s; line-height: 1.4;
}
.vnsoa .vnsoa-btn--outline { background: transparent; color: var(--vnsoa-blue); border: 1.5px solid var(--vnsoa-blue); padding-left: 22px; padding-right: 22px; }
.vnsoa .vnsoa-btn--solid { background: var(--vnsoa-red); color: #FFFFFF; border: 1.5px solid var(--vnsoa-red); }
.vnsoa .vnsoa-btn--ghost { background: transparent; color: var(--vnsoa-red); border: 1.5px solid var(--vnsoa-red); }
.vnsoa .vnsoa-btn:hover,
.vnsoa .vnsoa-btn:focus-visible { background: var(--vnsoa-blue); color: #FFFFFF !important; border-color: var(--vnsoa-blue); }
.vnsoa .vnsoa-btn:visited { color: inherit; }
.vnsoa .vnsoa-btn--solid:visited { color: #FFFFFF; }
.vnsoa .vnsoa-link { margin-left: auto; padding: 10px 0; background: transparent; border: none; font-size: 13.5px; font-weight: 600; color: var(--vnsoa-red); text-decoration: underline; cursor: pointer; }
.vnsoa .vnsoa-link:hover,
.vnsoa .vnsoa-link:focus-visible { color: var(--vnsoa-blue); background: transparent; }

/* ---------------------------------------------------------------- */
/* Responsive                                                        */
/* ---------------------------------------------------------------- */

@media (max-width: 780px) {
	.vnsoa .vnsoa-card { flex-basis: 100%; }
	.vnsoa .vnsoa-grid { grid-template-columns: 28px minmax(0, 1fr) 38px; padding: 0 18px; }
	.vnsoa .vnsoa-grid--head span:nth-child(3) { display: none; }
	.vnsoa .vnsoa-row { row-gap: 10px; }
	.vnsoa .vnsoa-row .vnsoa-select--class { grid-column: 2; grid-row: 2; }
	.vnsoa .vnsoa-row .vnsoa-icon-btn { grid-column: 3; grid-row: 1; }
	.vnsoa .vnsoa-card__head,
	.vnsoa .vnsoa-card__foot { padding-left: 18px; padding-right: 18px; }
	.vnsoa .vnsoa-card__option { margin-left: 18px; margin-right: 18px; }
	.vnsoa .vnsoa-result { padding: 28px 18px 4px; }
	.vnsoa .vnsoa-totals { grid-template-columns: minmax(0, 1fr); }
	.vnsoa .vnsoa-total__value strong { font-size: 38px; }
	.vnsoa .vnsoa-reqlist__row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.vnsoa .vnsoa-reqlist__value { text-align: left; }
	.vnsoa .vnsoa-works { overflow-x: auto; }
	.vnsoa .vnsoa-work--og11 { min-width: 600px; }
	.vnsoa .vnsoa-work .is-num { width: auto; }
	.vnsoa .vnsoa-work__alt td:first-child { padding-left: 14px; }
	.vnsoa .vnsoa-link { margin-left: 0; }
}
