/* PDF category + PDF tool UI. Loaded after style.css. */
.cat-pdf-tools{--c:#e11d48;--cd:#be123c}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .cat-pdf-tools{--c:#ff7a96}}
:root[data-theme=dark] .cat-pdf-tools{--c:#ff7a96}
@media(min-width:1000px){.cat-tiles{grid-template-columns:repeat(5,1fr)}.cat-tile .ct-name{font-size:1rem}}
.pv .fi{fill:var(--ink)}.pv .fm{fill:var(--muted)}.pv .sd{fill:none}
/* page thumbnails grid */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:14px 0}.pgrid.small{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.pg{background:var(--surface);border:2px solid var(--line);border-radius:12px;padding:8px;text-align:center;cursor:pointer;transition:border-color .12s,opacity .12s}
.pg-thumb{height:190px;display:grid;place-items:center;overflow:hidden;background:#eef1f5;border-radius:8px}.pgrid.small .pg-thumb{height:150px}
.pg-thumb canvas,.pg-thumb img{max-width:100%;max-height:100%;transition:transform .15s}.pg-thumb .blank{color:var(--muted);font-size:.85rem}
.pg.sel{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}.pg.del{border-color:#d33;opacity:.55}.pg.drag{opacity:.35}.pg.over{outline:2px dashed var(--c)}
.pg-label{font-size:.78rem;margin:6px 0;color:var(--muted);min-height:1.2em}.pg-ctl{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.pg-ctl .btn{padding:2px 9px;font-size:.85rem}
/* crop preview */
.cropbox{position:relative;display:inline-block;line-height:0}.cropbox canvas{max-width:100%;height:auto}.cm{position:absolute;background:rgba(225,29,72,.38);pointer-events:none}.cm.t{top:0;left:0;right:0}.cm.b{bottom:0;left:0;right:0}.cm.l{left:0;top:0;bottom:0}.cm.r{right:0;top:0;bottom:0}
/* editor */
.ed-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}.ed-bar .btn.on{background:var(--c);color:#fff;border-color:var(--c)}
.ed-nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0}
.ed-stage{overflow:auto;background:#aab4c2;padding:16px;border-radius:12px;max-height:82vh}[data-theme=dark] .ed-stage{background:#2a3945}
.ed-page{position:relative;margin:0 auto;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.3)}.ed-page canvas{display:block}.ed-layer{position:absolute;inset:0;touch-action:none;overflow:hidden}.ed-layer.t-text{cursor:text}.ed-layer.t-rect,.ed-layer.t-highlight,.ed-layer.t-white,.ed-layer.t-redact,.ed-layer.t-draw{cursor:crosshair}
.ann{position:absolute;box-sizing:border-box;touch-action:none}.ann.sel{outline:2px solid var(--c);outline-offset:1px}.ann .rh{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;background:var(--c);border-radius:4px;cursor:nwse-resize;display:none}.ann.sel .rh{display:block}
.ann.atext{white-space:pre-wrap;line-height:1.2;font-family:Helvetica,Arial,sans-serif;min-width:16px;min-height:1em;cursor:move;outline:1px dashed rgba(0,0,0,.3);padding:0 2px}.ann.atext:focus{outline:2px solid var(--c);cursor:text}
.ann.arect{cursor:move}.ann.aimg{cursor:move}.ann.aimg img{width:100%;height:100%;display:block;pointer-events:none}.ann.adraw{pointer-events:auto;cursor:move}
dialog{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);color:var(--ink);max-width:96vw}dialog::backdrop{background:rgba(0,0,0,.45)}#sigPad{border:1px dashed var(--line);border-radius:8px;touch-action:none;background:#fff;max-width:100%;display:block;margin:10px 0}.tabs{display:flex;gap:8px}.tabs .btn.on{background:var(--c);color:#fff;border-color:var(--c)}#sigText{width:100%;font:italic 2rem "Segoe Script","Brush Script MT","Lucida Handwriting",cursive;margin:10px 0}
.formlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:12px 0}.formlist label{font-weight:600;font-size:.85rem}.formlist input[type=checkbox]{width:20px;height:20px;margin-top:6px}
progress{width:100%;height:12px;accent-color:var(--c)}

.pdftool{--c:#e11d48}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .pdftool{--c:#ff7a96}}
:root[data-theme=dark] .pdftool{--c:#ff7a96}
.ed-bar input[type=color]{width:44px;height:34px;padding:2px;margin:0;cursor:pointer}.ed-bar input[type=number]{width:72px;margin:0}.ed-bar label.sm{margin-right:6px}
