/* Shared styles for the "read text" tools: image-to-text, pdf-to-text, qr-code-scanner */
.rt-src{margin-top:12px}
.rt-src .btn{flex:1 1 150px}
.rt-app kbd{font:700 12px var(--font);border:1.5px solid var(--ink);border-radius:6px;padding:1px 6px;background:#fff}
.rt-thumbs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;margin-top:16px}
.rt-thumb{flex:none;width:64px;height:64px;display:grid;place-items:center;border:2px solid var(--line);border-radius:10px;background:var(--soft);padding:3px;cursor:pointer}
.rt-thumb[aria-pressed=true]{border-color:var(--ink);box-shadow:2px 2px 0 var(--blue)}
.rt-thumb canvas{max-width:100%;max-height:100%}
.rt-crop{margin-top:14px;display:grid;place-items:center;background:var(--soft);border:2px solid var(--ink);border-radius:var(--r-sm);padding:8px;min-height:120px}
.rt-crop canvas{display:block;max-width:100%;height:auto;touch-action:none;cursor:crosshair;border-radius:4px}
.rt-tools{margin-top:10px;gap:8px}
.rt-tools .btn{padding:8px 14px;font-size:14px}
.rt-go{flex:1 1 auto;font-size:17px;padding:14px 22px}
.rt-prog{background:var(--blue-soft);border:2px solid var(--ink);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:12px}
.rt-prog p{margin:0 0 6px;font-weight:700;font-size:14px}
.rt-prog progress{width:100%;height:10px;accent-color:var(--blue)}
.rt-text{min-height:300px;font:15.5px/1.6 var(--font);margin-top:6px}
.rt-sample{padding:12px;min-height:0}
.rt-sample img{width:100%;height:auto;max-height:none;aspect-ratio:4/3;box-shadow:none;border:2px solid var(--line)}
.rt-note{margin-top:16px}
.rt-pages{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.rt-pages li{font-size:12.5px;font-weight:700;border:2px solid var(--ink);border-radius:999px;padding:2px 10px;background:#fff}
.rt-pages li.scan{background:#fff5e0}
.rt-pages li.ocr{background:#e7f8ef}
.rt-pages li.empty{background:var(--soft);color:var(--muted);border-color:var(--line)}
.rt-flag{background:#fff5e0;border:2px solid var(--ink);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:12px;box-shadow:3px 3px 0 var(--sun)}
.rt-flag p{margin:0 0 8px;font-size:14px;font-weight:600}
.rt-flag .actions{margin-top:6px}
.rt-file{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--soft);border:2px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;font-weight:700;font-size:14px;word-break:break-word;margin-top:12px}
.rt-file small{color:var(--muted);white-space:nowrap}
.rt-dlg{border:var(--bw) solid var(--ink);border-radius:var(--r);box-shadow:var(--hard-lg);padding:20px;width:min(420px,calc(100vw - 24px));color:var(--ink)}
.rt-dlg::backdrop{background:rgba(15,18,34,.55)}
.rt-dlg h2{font-size:20px}

/* QR scanner */
.qs-cam{position:relative;background:#0f1222;border:2px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center;color:#fff}
.qs-cam video{width:100%;height:100%;object-fit:cover;display:block}
.qs-frame{position:absolute;inset:14%;pointer-events:none;border-radius:14px;--k:#ffb547;background:linear-gradient(var(--k),var(--k)) 0 0/34px 5px,linear-gradient(var(--k),var(--k)) 0 0/5px 34px,linear-gradient(var(--k),var(--k)) 100% 0/34px 5px,linear-gradient(var(--k),var(--k)) 100% 0/5px 34px,linear-gradient(var(--k),var(--k)) 0 100%/34px 5px,linear-gradient(var(--k),var(--k)) 0 100%/5px 34px,linear-gradient(var(--k),var(--k)) 100% 100%/34px 5px,linear-gradient(var(--k),var(--k)) 100% 100%/5px 34px;background-repeat:no-repeat}
.qs-idle{display:grid;gap:12px;justify-items:center;text-align:center;padding:20px;max-width:34ch}
.qs-idle p{margin:0;color:#dfe3f2;font-size:14px}
.qs-idle .ico{width:46px;height:46px;color:var(--sun)}
.qs-camrow{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:12px}
.qs-camrow .field{flex:1 1 180px;margin:0}
.qs-card{border:2px solid var(--ink);border-radius:var(--r-sm);padding:16px;background:#fff;box-shadow:3px 3px 0 var(--ink)}
.qs-type{display:inline-block;font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--sun);border:2px solid var(--ink);border-radius:999px;padding:2px 10px;margin-bottom:10px}
.qs-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0 0 10px;font-size:15px}
.qs-dl dt{font-weight:700;color:var(--muted)}
.qs-dl dd{margin:0;font-weight:700;word-break:break-word}
.qs-big{font-size:22px;font-weight:800;word-break:break-all;margin:0 0 8px;line-height:1.25}
.qs-body{font-size:16px;font-weight:600;white-space:pre-wrap;word-break:break-word;margin:0 0 10px;max-height:260px;overflow:auto}
.qs-warn{background:#fff1f0;border:2px solid var(--err);color:#5c1210;border-radius:var(--r-sm);padding:10px 12px;margin:10px 0 0;font-size:14px;font-weight:600}
.qs-warn ul{margin:4px 0 0;padding-left:18px}
.qs-ok{background:#e7f8ef;border:2px solid var(--ok);color:#0d4a26;border-radius:var(--r-sm);padding:10px 12px;margin:10px 0 0;font-size:14px;font-weight:600}
.qs-raw{font:13.5px/1.5 ui-monospace,Consolas,monospace;background:var(--soft);border:2px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;white-space:pre-wrap;word-break:break-all;max-height:180px;overflow:auto;margin:10px 0 0}
.qs-empty{text-align:center;color:var(--muted);padding:8px}
.qs-hist{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.qs-hist button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;text-align:left;font:600 14px var(--font);color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:12px;padding:8px 12px;cursor:pointer}
.qs-hist button:hover{border-color:var(--ink)}
.qs-hist b{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);grid-row:1/3;align-self:center}
.qs-hist span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-hist small{color:var(--muted);font-weight:500}
.qs-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0 10px}
.qs-head h3{margin:0;font-size:18px}
@media (max-width:480px){.qs-dl{grid-template-columns:1fr;gap:0}.qs-dl dd{margin-bottom:8px}.qs-big{font-size:20px}}
