
.vi-card{border:1px solid rgba(18,18,26,.10); border-radius:16px; padding:16px; background:#fff; box-shadow:0 10px 22px rgba(0,0,0,.05); margin:12px 0;}
.vi-grid2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;}
.vi-row{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.vi-input{width:100%; padding:10px 12px; border-radius:12px; border:1px solid rgba(18,18,26,.10);}
.vi-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:12px; padding:10px 14px; font-size:14px; border:1px solid rgba(18,18,26,.10); background:#fff; cursor:pointer;}
.vi-primary{background:#840024; color:#fff; border-color:transparent;}
.vi-pre{background:#0b0b0f; color:#f5f5fb; border-radius:14px; padding:12px; overflow:auto; font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px; line-height:1.5;}
.vi-hint{font-size:12px; color:rgba(18,18,26,.65); margin-top:8px;}
.vi-alert{padding:10px 12px; border-radius:12px; border:1px solid rgba(18,18,26,.10); background:#f6f6f8; margin-bottom:10px;}
.vi-success{border-color:rgba(132,0,36,.25); background:rgba(132,0,36,.06);}
.vi-error{border-color:rgba(200,0,0,.25); background:rgba(200,0,0,.06);}
.vi-req{color:#840024;}
.vi-table{width:100%; border-collapse:collapse; margin-top:10px;}
.vi-table th,.vi-table td{border-bottom:1px solid rgba(18,18,26,.10); padding:10px; text-align:left; font-size:13px;}
@media(max-width:900px){.vi-grid2{grid-template-columns:1fr}}
