.vfc-soft-wrapper{--vfc-border:#1e293b;--vfc-primary:#1d4ed8;--vfc-primary-bg:#dbeafe;max-width:760px;margin:0 auto;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1e293b;box-sizing:border-box}
.vfc-soft-wrapper *{box-sizing:border-box}
.vfc-card{background:#fff;border:2.5px solid var(--vfc-border);border-radius:20px;padding:20px;box-shadow:4px 4px 0 var(--vfc-border);margin-bottom:16px}
.vfc-card-title{margin:0;font-size:18px;font-weight:900;text-wrap:balance;color:#0f172a}
.vfc-soft-wrapper .vfc-label{display:block;font-weight:800;font-size:13.5px;margin:13px 0 5px;color:#1e293b;opacity:1}
.vfc-soft-wrapper .vfc-inp{width:100%;border:2px solid var(--vfc-border);border-radius:12px;padding:9px 11px;font-size:15px;font-weight:600;background:#fffef5;font-variant-numeric:tabular-nums;font-family:inherit;color:#0f172a;min-height:44px;opacity:1}
.vfc-inp-c{text-align:center}
.vfc-soft-wrapper .vfc-caption{display:block;font-size:12.5px;color:#1e40af;font-weight:700;margin-top:5px;min-height:17px;line-height:1.45}
.vfc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.vfc-stepper{display:flex;gap:6px;align-items:center}
.vfc-step{border:2px solid var(--vfc-border);background:var(--vfc-primary-bg);border-radius:50%;width:38px;height:38px;min-height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:19px;line-height:1;cursor:pointer;flex:none;color:var(--vfc-primary);font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:rgba(30,41,59,.08);transition:transform 100ms ease-out,background-color 150ms ease}
.vfc-step:hover{background:#bfdbfe}
.vfc-step:active{transform:scale(.94)}
.vfc-btn{width:100%;margin-top:16px;border:2.5px solid var(--vfc-border);background:var(--vfc-primary);color:#fff;border-radius:14px;padding:13px;font-weight:900;font-size:16px;cursor:pointer;min-height:48px;font-family:inherit;box-shadow:3px 3px 0 var(--vfc-border);touch-action:manipulation;transition:transform 100ms ease-out,background-color 150ms ease}
.vfc-btn:hover{background:#1e40af}
.vfc-btn:active{transform:scale(.98)}
.vfc-inp:focus-visible,.vfc-step:focus-visible,.vfc-btn:focus-visible{outline:3px solid #0284c7;outline-offset:2px}
.vfc-ph{border:2px dashed #94a3b8;border-radius:16px;padding:18px;background:#f8fafc}
.vfc-ph-title{margin:0 0 6px;font-weight:900;font-size:16px;color:#0f172a}
.vfc-ph-text{margin:0;font-size:14px;line-height:1.6;color:#475569}
.vfc-hero{background:linear-gradient(135deg,rgba(239,246,255,.94),rgba(219,234,254,.9));-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);border:2.5px solid var(--vfc-border);border-radius:16px;padding:16px;box-shadow:3px 3px 0 var(--vfc-border),inset 0 1px 0 rgba(255,255,255,.85);transform-origin:top center}
.vfc-hero-cap{display:block;font-size:12.5px;font-weight:800;color:#1e40af;letter-spacing:.01em}
.vfc-hero-line{display:block;margin-top:2px}
.vfc-hero-val{font-size:42px;font-weight:900;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#0f172a}
.vfc-hero-sub{display:block;font-size:13.5px;font-weight:700;color:#475569;margin-top:3px}
.vfc-due{margin-top:12px;border:2px solid var(--vfc-border);border-radius:14px;padding:11px 14px;font-weight:800;font-size:14.5px}
.vfc-due.ok{background:#ecfdf5;color:#065f46}
.vfc-due.warn{background:#fffbeb;color:#92400e}
.vfc-due.over{background:#fff1f2;color:#881337}
.vfc-row{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-bottom:1.5px dashed #e2e8f0;font-size:14.5px}
.vfc-row span:first-child{color:#475569;font-weight:600}
.vfc-row span:last-child{font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;color:#0f172a}
.vfc-note{font-size:13px;color:#526179;line-height:1.55;margin:13px 0 0}
@media (prefers-reduced-transparency:reduce){
  .vfc-hero{background:#eff6ff;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* — Mobile guard 2026-10-24: chống tràn ngang (grid/flex blowout) và chống zoom khi chạm ô nhập — */
.vfc-soft-wrapper{overflow-x:clip}
.vfc-soft-wrapper *{min-width:0}
.vfc-soft-wrapper input,.vfc-soft-wrapper select,.vfc-soft-wrapper textarea{font-size:16px !important;max-width:100%}
