.v-cols { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 12px; align-items: start; }
.v-rows { display: grid; gap: 6px; margin-top: 10px; }
.v-row { display: grid; gap: 2px; width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.v-row:hover { background: var(--paper-2); }
.v-row[aria-pressed="true"] { border: 2px solid var(--ink); padding: 7px 11px; }
.v-row b { font-size: .9375rem; }
.v-row span { color: var(--ink-2); font-size: var(--t-s); }
.v-pw { display: block; padding: 10px 12px; border-radius: 9px; background: var(--paper-2); font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1rem; letter-spacing: .04em; overflow-wrap: anywhere; }
.v-warn { padding: 12px 14px; border: 2px solid var(--err); border-radius: 12px; background: var(--surface); }
.v-warn p { font-size: .9375rem; }
.v-checks { display: grid; gap: 2px; }
.v-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: .9375rem; cursor: pointer; }
.v-check input { width: 20px; height: 20px; }
.v-sample { padding: 9px 14px; border: 2px solid var(--err); border-radius: 10px; font-size: var(--t-s); font-weight: 700; }
.v-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; align-items: end; }
.v-form .v-wide { grid-column: 1 / -1; }
.v-meter { display: grid; gap: 4px; }
@media (max-width: 860px) { .v-cols { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .v-form { grid-template-columns: minmax(0, 1fr); } }
