.qr-preset-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:6px; margin-bottom:1rem; }
.qr-preset-btn { padding:8px 6px; font-size:0.7rem; font-weight:600; border:2px solid var(--border); border-radius:var(--radius-sm); background:var(--bg); color:var(--text); cursor:pointer; transition:all 0.15s; text-align:center; font-family:var(--font); }
.qr-preset-btn:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-light); transform:translateY(-1px); }
.qr-preset-btn .preset-emoji { font-size:1.3rem; display:block; margin-bottom:2px; }
.qr-preset-btn.active { border-color:var(--accent); background:var(--accent-light); box-shadow:0 0 0 2px var(--accent-light); }
.qr-result-wrap { text-align:center; }
.qr-image { max-width:100%; height:auto; border-radius:var(--radius-sm); }
.qr-history-item { display:flex; align-items:center; gap:0.45rem; padding:0.4rem 0.6rem; background:var(--bg-card); border:1px solid var(--border-glass); border-radius:var(--radius-sm); margin-bottom:0.3rem; cursor:pointer; transition:all 0.2s; }
.qr-history-item:hover { border-color:var(--accent); background:var(--accent-light); }
.qr-history-icon { font-size:1.2rem; flex-shrink:0; }
.qr-history-info { flex:1; min-width:0; }
.qr-history-text { font-weight:600; font-size:0.72rem; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qr-history-type { font-size:0.62rem; color:var(--text-tertiary); }
.qr-dynamic-fields { display:none; margin-top:0.5rem; }
.qr-dynamic-fields.show { display:block; }
.qr-history-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.5rem; }
.qr-clear-history { font-size:0.65rem; color:var(--text-tertiary); cursor:pointer; padding:0.2rem 0.5rem; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg); transition:all 0.15s; }
.qr-clear-history:hover { color:var(--accent); border-color:var(--accent); background:var(--accent-light); }
.input-group textarea {
    display:block; width:100%; padding:12px 16px;
    border:1.5px solid var(--border);
    border-radius:var(--radius-sm);
    background:var(--bg-glass);
    color:var(--text); font-family:var(--font); font-size:1rem;
    transition:border-color 0.15s,box-shadow 0.15s;
    resize:vertical; line-height:1.55; box-sizing:border-box;
    min-height:80px; margin:0; outline:none;
}
.input-group textarea:focus {
    border-color:var(--accent);
    box-shadow:0 0 0 3px var(--accent-light);
}
.qr-result-box { padding:1.5rem 1rem; display:flex; flex-direction:column; align-items:center; gap:1.25rem; }
.qr-result-box.show { display: flex; }
#qrCodeContainer { display:flex; justify-content:center; align-items:center; min-height:200px; }
#qrCodeContainer canvas,
#qrCodeContainer img { display:block; max-width:100%; height:auto; border-radius:12px; box-shadow:0 4px 20px rgba(0,0,0,0.08); background:#fff; padding:12px; }
.qr-result-actions { display:flex; gap:0.75rem; padding-top:0.25rem; }
.qr-result-actions .qr-action-btn { padding:0.6rem 1.25rem; border:1.5px solid var(--border); border-radius:50px; background:var(--bg-glass); color:var(--text); font-family:var(--font); font-size:0.82rem; font-weight:500; cursor:pointer; transition:all 0.2s; display:inline-flex; align-items:center; gap:0.4rem; }
.qr-result-actions .qr-action-btn:hover { background:var(--accent); color:#fff; border-color:var(--accent); transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.1); }
.qr-result-actions .qr-action-btn .btn-icon { font-size:0.95rem; }
@media (max-width:768px) { .qr-preset-grid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:480px) { .qr-preset-grid { grid-template-columns:repeat(3,1fr); } }


.input-group textarea {
    display:block; width:100%; padding:12px 16px;
    border:1.5px solid var(--border);
    border-radius:var(--radius-sm);
    background:var(--bg-glass);
    color:var(--text); font-family:var(--font); font-size:1rem;
    transition:border-color 0.15s,box-shadow 0.15s;
    resize:vertical; line-height:1.55; box-sizing:border-box;
    min-height:80px;
}
.input-group textarea:focus {
    outline:none; border-color:var(--accent);
    box-shadow:0 0 0 3px var(--accent-light);
}