/* Trislee Digital - Ảnh thẻ */
.id-dims { margin: 0; font-size: 13px; color: var(--fg-subtle); font-variant-numeric: tabular-nums; }
.id-stage { min-height: 320px; }
.id-stage canvas { background: none; box-shadow: 0 1px 3px rgb(15 23 42 / .18), 0 6px 18px rgb(15 23 42 / .12); cursor: grab; touch-action: none; }
.id-stage canvas.is-drag { cursor: grabbing; }
.id-stage canvas:focus-visible { outline: 2px solid var(--secondary); outline-offset: 3px; }
.id-warn { color: var(--danger); }
p.id-warn { margin: 10px 0 0; padding: 8px 12px; font-size: 13.5px; border-radius: var(--radius-sm); background: var(--danger-bg); }
.id-tune { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin-top: 14px; }
.id-tune input[type="range"] { width: 100%; }
@media (max-width: 560px) { .id-tune { grid-template-columns: 1fr; } }
.id-sizes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.id-sizes button { display: grid; gap: 1px; padding: 8px 10px; text-align: left; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); transition: border-color .15s, background-color .15s; }
.id-sizes button:hover { border-color: var(--fg-subtle); }
.id-sizes button[aria-checked="true"] { border-color: var(--accent); background: var(--success-bg); }
.id-sizes b { font-size: 14px; }
.id-sizes small { font-size: 12px; line-height: 1.35; color: var(--fg-subtle); }
.id-custom { display: flex; gap: 10px; }
.id-custom label { display: grid; gap: 4px; flex: 1; font-size: 13px; color: var(--fg-muted); }
.id-custom input { width: 100%; }
.settings .check + .help { margin-top: 6px; }
