/* UTIL-016 Tạo mã ngẫu nhiên. Kế thừa font Arial từ bộ UI chung; không ghi đè FontAwesome. */
.cg-presets button{min-height:44px}
.cg-presets button[disabled]{opacity:.6;cursor:not-allowed}
.cg-narrow{flex:0 1 130px!important}
.cg-sets{margin:0 0 6px;padding:4px 14px 6px;border:1px solid var(--sou-line);border-radius:12px;min-width:0}
.cg-sets legend{padding:0 6px;font-weight:700;color:var(--sou-ink);font-size:15px}
.cg-sets:focus{outline:2px solid #3869ed;outline-offset:2px}
.cg-sets small{display:block;margin:0 0 6px;color:var(--sou-warn);font-size:14px;font-weight:700}
.cg-checks{display:flex;flex-wrap:wrap;gap:0 18px}
.cg-checks input[disabled]+span{color:var(--sou-muted)}
.cg-advanced{margin:6px 0 4px;border:1px solid var(--sou-line);border-radius:12px;padding:0 12px}
.cg-advanced>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--sou-ink)}
.cg-progress{display:flex;gap:10px;align-items:center;margin:4px 0 0}
.cg-progress .sou-progress{flex:1 1 auto}
.cg-progress .sou-button{min-height:44px;padding:8px 14px}
.cg-preview h2{font-size:19px}
.cg-sample{margin:6px 0 14px;padding:14px;border-radius:12px;background:#fff;border:1px dashed #b9cbf3;color:var(--sou-ink);font:700 22px/1.3 Arial,"Helvetica Neue",Helvetica,sans-serif;letter-spacing:.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:center}
.cg-form .sou-row{align-items:flex-start}
.cg-form .sou-row>.sou-field{flex:1 1 130px}
.cg-stats{grid-template-columns:1fr;gap:6px}
.cg-stats li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;padding:10px 12px}
.cg-stats li span{flex:1 1 150px;min-width:0;overflow-wrap:anywhere}
.cg-stats strong{display:inline;font-size:18px;text-align:right;overflow-wrap:anywhere}
.cg-notes{margin:12px 0 0;color:var(--sou-muted);font-size:14px;min-height:1px;overflow-wrap:anywhere}
.cg-warn{margin:12px 0 0;font-size:14px}
.cg-security{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--sou-err-bg);color:var(--sou-err);font-size:14px;font-weight:700}
.cg-cta{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:#f5f9ff;border:1px solid var(--sou-line);font-size:15px}
.cg-cta a{font-weight:700}
.cg-results{margin-top:24px;padding-top:18px;border-top:1px solid var(--sou-line)}
.cg-results h2{font-size:21px}
.cg-results h2:focus{outline:none}
.cg-summary{margin:6px 0 0;color:var(--sou-muted);font-size:15px;overflow-wrap:anywhere}
.cg-results .sou-toolbar .sou-button{min-height:44px}
.cg-table{min-width:0}
.cg-table td{vertical-align:middle}
.cg-code{min-width:140px}
.cg-code code{font:700 15px Arial,"Helvetica Neue",Helvetica,sans-serif;letter-spacing:.03em;font-variant-numeric:tabular-nums;color:var(--sou-ink);overflow-wrap:anywhere}
.cg-dup{color:var(--sou-err);font-weight:700;white-space:nowrap}
.cg-actions{white-space:nowrap}
.cg-row-btn{min-height:44px;min-width:44px;margin:0 4px 0 0;padding:4px 10px;border:1px solid var(--sou-line);border-radius:10px;background:#fff;color:var(--sou-primary);font:700 14px Arial,"Helvetica Neue",Helvetica,sans-serif;cursor:pointer}
.cg-row-btn:hover{background:var(--sou-soft)}
.cg-more-note{margin:10px 0 0;color:var(--sou-muted);font-size:14px}
.cg-more{margin-top:10px}
.cg-qr{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:14px 0;padding:14px;border:1px solid var(--sou-line);border-radius:14px;background:#f7f9fd}
.cg-qr-box canvas{display:block;max-width:100%;height:auto;border-radius:8px;background:#fff}
.cg-qr-info{flex:1 1 220px;min-width:0}
.cg-qr-info p{margin:0 0 8px;overflow-wrap:anywhere}
.cg-qr-info code{font:700 15px Arial,"Helvetica Neue",Helvetica,sans-serif;overflow-wrap:anywhere}
.cg-code code,.cg-qr-info code{padding:0;border-radius:0;background:none;color:var(--sou-ink)}
.cg-qr-help{color:var(--sou-muted);font-size:14px}
@media(max-width:600px){.cg-narrow{flex:1 1 100%!important}.cg-sample{font-size:18px}.cg-toolbar .sou-button{flex:1 1 calc(50% - 8px)}.cg-table th,.cg-table td{padding:8px 6px}.cg-table:not(.cg-has-dup) th:nth-child(3),.cg-table:not(.cg-has-dup) td:nth-child(3){display:none}.cg-code{min-width:0}.cg-code code{font-size:14px;letter-spacing:0}.cg-row-btn{margin-right:2px;padding:4px 8px;font-size:13px}}
@media print{.cg-presets,.cg-form,.cg-preview,.cg-toolbar,.cg-actions,.cg-table th:last-child,.cg-more,.cg-qr .sou-toolbar{display:none!important}.cg-columns{display:block}}
