/* Конфигуратор газовой пружины. Оформление из «Подбор газовых пружин2.html»,
   всё под .tvb-gs и со своими цветами — страница общая для двух тем, в т.ч. тёмной Ситуриса. */
.tvb-gs { padding: 32px 16px 56px; display: flex; justify-content: center; }
.tvb-gs *, .tvb-gs *::before, .tvb-gs *::after { box-sizing: border-box; }
.tvb-gs-card {
    width: 100%; max-width: 640px; padding: 30px; border-radius: 14px;
    background: #fff; color: #334155; box-shadow: 0 4px 25px rgba(0, 0, 0, .08);
    font-size: 16px; line-height: 1.45;
}
.tvb-gs-h {
    margin: 0 0 8px; padding-bottom: 12px; border-bottom: 2px solid #f1f5f9;
    font-size: 1.5rem; font-weight: 700; color: #1e293b;
}
.tvb-gs-vat { margin: 0 0 20px; color: #64748b; font-size: .85rem; font-style: italic; }

.tvb-gs-steps { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 25px; }
.tvb-gs-ind {
    flex: 1; min-width: 55px; padding: 8px 3px; border-radius: 8px; border: 2px solid transparent;
    background: #f1f5f9; color: #94a3b8; text-align: center; font-size: .7rem; font-weight: 600;
}
.tvb-gs-ind.is-active { background: #dbeafe; color: #2563eb; border-color: #2563eb; }
.tvb-gs-ind.is-done { background: #ecfdf5; color: #059669; border-color: #059669; }

.tvb-gs-panel { display: none; }
.tvb-gs-panel.is-active { display: block; }
.tvb-gs-title { margin-bottom: 6px; font-size: 1.1rem; font-weight: 700; color: #1e293b; }
.tvb-gs-hint { margin: 0 0 16px; font-size: .85rem; color: #64748b; }
.tvb-gs label { display: block; margin: 14px 0 6px; font-size: .9rem; font-weight: 600; color: #475569; }
.tvb-gs-input {
    display: block; width: 100%; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 8px;
    background: #fff; color: #334155; font: inherit; outline: none;
}
.tvb-gs-input:focus { border-color: #2563eb; }
.tvb-gs-input.is-invalid { border-color: #dc2626; background: #fef2f2; }
textarea.tvb-gs-input { resize: vertical; }
.tvb-gs-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
@media (max-width: 480px) {
    .tvb-gs-card { padding: 20px 16px; }
    .tvb-gs-ind { font-size: .9rem; }
    .tvb-gs-ind-l { display: none; }
    .tvb-gs-two { grid-template-columns: 1fr; }
}

.tvb-gs-note {
    margin-top: 12px; padding: 10px 14px; border-radius: 8px; font-size: .9rem;
    background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af;
}
.tvb-gs-note.tvb-gs-ok { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.tvb-gs-note.tvb-gs-err { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.tvb-gs-note.tvb-gs-empty { background: #f8fafc; border-color: #e2e8f0; color: #64748b; }

.tvb-gs-qty { display: flex; align-items: center; gap: 10px; max-width: 170px; }
.tvb-gs-qty .tvb-gs-input { width: 64px; text-align: center; font-weight: 700; }
.tvb-gs-qbtn {
    width: 42px; height: 42px; flex: none; border: 0; border-radius: 6px;
    background: #e2e8f0; color: #334155; font-size: 1.2rem; font-weight: 700; cursor: pointer;
}
.tvb-gs-qbtn:hover { background: #cbd5e1; }

.tvb-gs-row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f1f5f9; font-size: .95rem; }
.tvb-gs-l { color: #475569; font-weight: 600; }
.tvb-gs-v { color: #1e293b; font-weight: 600; text-align: right; }
.tvb-gs-total {
    display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px;
    margin-top: 15px; padding-top: 18px; border-top: 2px solid #f1f5f9;
    font-size: 1.35rem; font-weight: 700; color: #059669;
}
.tvb-gs-total-label { font-size: .95rem; font-weight: 600; color: #475569; }
.tvb-gs-total-label small { display: block; font-size: .75rem; font-weight: 400; font-style: italic; color: #94a3b8; }
#tvb-gs-total { padding: 6px 16px; border-radius: 8px; background: #ecfdf5; white-space: nowrap; }

.tvb-gs-form { margin-top: 24px; padding-top: 8px; border-top: 2px solid #f1f5f9; }
.tvb-gs-form .tvb-gs-hint { margin-top: 10px; }
.tvb-gs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
#tvb-gs-captcha { margin-top: 12px; }
.tvb-gs-send {
    width: 100%; margin-top: 16px; padding: 14px; border: 0; border-radius: 8px;
    background: #059669; color: #fff; font-size: 1.1rem; font-weight: 700; cursor: pointer;
}
.tvb-gs-send:hover { background: #047857; }
.tvb-gs-send:disabled { opacity: .6; cursor: wait; }

.tvb-gs-nav { display: flex; gap: 10px; margin-top: 25px; }
.tvb-gs-prev, .tvb-gs-next {
    flex: 1; padding: 12px; border: 0; border-radius: 8px; font-size: 1rem; font-weight: 700; cursor: pointer;
}
.tvb-gs-prev { background: #e2e8f0; color: #334155; }
.tvb-gs-prev:hover:not(:disabled) { background: #cbd5e1; }
.tvb-gs-next { background: #2563eb; color: #fff; }
.tvb-gs-next:hover:not(:disabled) { background: #1d4ed8; }
.tvb-gs-prev:disabled, .tvb-gs-next:disabled { opacity: .4; cursor: not-allowed; }
