.tool-card + .tool-card{margin-top:16px}
.qr-card{--qr-sage:#e8ede3;--qr-sage-ink:#617957;--qr-inset:#f8f9f4;--qr-warning:#ad5137}
.qr-icon{background:var(--qr-sage);color:var(--qr-sage-ink)}
.qr-workspace{padding-top:1px}
.qr-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px}
.qr-controls{min-width:0;padding:0 0 8px}
.qr-types{display:flex;gap:4px;border:1px solid var(--line);border-radius:7px;padding:4px;background:var(--qr-inset);margin:0 0 23px;max-width:270px}
.qr-types label{flex:1;position:relative;cursor:pointer}
.qr-types input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.qr-sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.qr-types span{display:block;text-align:center;border-radius:4px;font-size:11px;font-weight:600;padding:9px 12px;color:var(--muted)}
.qr-types input:checked + span{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #282c2b12}
.qr-types input:focus-visible + span{outline:2px solid var(--qr-sage-ink);outline-offset:2px}
.qr-fields>label,.qr-options>label,#qr-password-field>label{display:block;font-size:11px;font-weight:600;margin:16px 0 8px}
.qr-fields>label:first-child{margin-top:0}
.qr-fields input:not([type=checkbox]),.qr-fields textarea,.qr-fields select,.qr-options select{width:100%;border:1px solid #d7dace;border-radius:6px;background:var(--qr-inset);color:var(--ink);padding:12px;font:12px/1.5 Arial,Helvetica,sans-serif;min-width:0}
.qr-fields textarea{display:block;resize:vertical;min-height:112px;max-height:340px}
.qr-fields input::placeholder,.qr-fields textarea::placeholder{color:#9a9f90}
.qr-fields input:focus-visible,.qr-fields textarea:focus-visible,.qr-fields select:focus-visible,.qr-options select:focus-visible,.qr-export-size select:focus-visible{outline:2px solid var(--qr-sage-ink);outline-offset:2px}
.qr-fields input[aria-invalid=true],.qr-fields textarea[aria-invalid=true]{border-color:var(--qr-warning)}
.qr-hint{font-size:10px;line-height:1.55;color:#858d7b;margin:8px 0 0;overflow-wrap:anywhere}
.qr-example{margin-top:15px;font-size:10px}
.qr-password-wrap{position:relative}
.qr-password-wrap input{padding-right:60px!important}
.qr-password-wrap button{position:absolute;right:7px;top:7px;bottom:7px;background:transparent;padding:0 9px;font-size:10px;color:var(--qr-sage-ink);border-radius:4px}
.qr-fields .qr-checkbox{display:flex;align-items:center;gap:8px;font-weight:400;margin-top:15px;font-size:11px}
.qr-checkbox input{width:14px;height:14px;margin:0;accent-color:var(--qr-sage-ink)}
.qr-options{margin-top:23px;max-width:360px}
.qr-options summary{color:var(--muted);font-size:11px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;width:fit-content}
.qr-options summary::-webkit-details-marker{display:none}
.qr-options summary::before{content:'+';font-size:15px;line-height:1}
.qr-options[open] summary::before{content:'−'}
.qr-options select{font-size:11px;padding:9px 11px}
.qr-result{min-width:0;display:flex;flex-direction:column;align-items:stretch}
.qr-paper{background:#fff;border:1px solid var(--line);border-radius:8px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden;width:100%;box-shadow:0 2px 3px #282c2b04}
.qr-paper canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.qr-empty{display:flex;align-items:center;flex-direction:column;gap:18px;color:#9ba58e;font-size:11px}
.qr-empty svg{width:74px;height:74px;fill:none;stroke:#c5cfbb;stroke-width:2}
.qr-empty svg rect{fill:#edf1e8;stroke:none}
.qr-ready{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 20px;font-size:10px;color:#919887}
.qr-ready-dot{width:5px;height:5px;border-radius:50%;background:#b5beaa}
.qr-ready[data-ready=true]{color:var(--qr-sage-ink)}
.qr-ready[data-ready=true] .qr-ready-dot{background:var(--qr-sage-ink)}
.qr-export-size{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:12px}
.qr-export-size label{color:var(--muted);font-size:10px}
.qr-export-size select{border:0;background:transparent;padding:5px 0 5px 8px;color:var(--ink);font:11px Arial,Helvetica,sans-serif;max-width:180px}
.qr-downloads{display:flex;gap:7px}
.qr-downloads button{border-radius:6px;padding:12px 13px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:15px;transition:background .12s,transform .12s}
.qr-download-primary{background:var(--ink);color:var(--paper);flex:1}
.qr-download-secondary{background:var(--qr-sage);color:var(--qr-sage-ink)}
.qr-download-primary svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5}
.qr-download-secondary span{font-size:15px;font-weight:400;line-height:1}
.qr-downloads button:disabled{opacity:.35}
.qr-downloads button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.97)}
.qr-foot{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-top:21px;padding-top:15px;border-top:1px solid var(--line)}
#qr-status{font-size:11px;line-height:1.5;color:var(--qr-sage-ink);margin:0;overflow-wrap:anywhere}
#qr-status[data-error=true]{color:var(--qr-warning)}
.qr-foot button{font-size:10px;flex-shrink:0}
.qr-private-note{color:#93998b;font-size:10px;margin:10px 0 0;line-height:1.5}
.qr-export-size{margin-top:12px}
@media(max-width:800px){.qr-layout{gap:28px;grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:600px){.qr-layout{grid-template-columns:minmax(0,1fr);gap:24px}.qr-result{width:100%;max-width:300px;margin:0 auto}.qr-types{max-width:none}.qr-types span{font-size:12px}.qr-fields input:not([type=checkbox]),.qr-fields textarea,.qr-fields select,.qr-options select{font-size:16px}.qr-options select{padding:10px}.qr-options{max-width:none}.qr-fields>label,#qr-password-field>label{font-size:12px}.qr-hint{font-size:11px}.qr-downloads button{font-size:12px;min-height:44px}.qr-foot{margin-top:22px}.qr-export-size select{font-size:12px;min-height:36px}.qr-ready{margin-bottom:14px}.qr-password-wrap button{font-size:11px;min-width:44px}.qr-foot button{padding:7px 0}.qr-private-note{font-size:10px}}
