/* PDF Editor — Objects mode (editor/obj-mode.js, obj-bar.js): the outline of the object under the pointer, the selected
   object's box, its eight handles and the round turn handle, the copy that follows a drag, and the PDF layers list in the
   Layers section (tools/ocg-panel.js). Handles grow to a finger's reach through .tlbx-hit (shared/input/touch.css). */
.obj-layer { position: absolute; inset: 0; z-index: 3; pointer-events: none; touch-action: none; }
.obj-layer[hidden] { display: none; }
.viewer.obj-mode .pv-textlayer { pointer-events: none; }
.viewer.obj-mode .pv-page { cursor: default; }
.obj-outline { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.obj-outline polygon { fill: none; stroke: var(--accent, #e7efff); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.obj-outline.is-hover polygon { stroke-dasharray: 5 4; stroke: var(--sl-info, #38d6ff); }
.obj-outline.is-sel polygon { stroke-width: 2; filter: drop-shadow(0 0 1px rgba(0, 0, 0, .7)); }
.obj-box { position: absolute; pointer-events: auto; cursor: move; touch-action: none; background: color-mix(in srgb, var(--accent, #e7efff) 8%, transparent); }
.obj-h { position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; box-sizing: border-box; background: var(--accent, #e7efff); border: 1.5px solid #0a0a0a; border-radius: 3px; pointer-events: auto; touch-action: none; }
.obj-h-nw, .obj-h-se { cursor: nwse-resize; } .obj-h-ne, .obj-h-sw { cursor: nesw-resize; } .obj-h-n, .obj-h-s { cursor: ns-resize; } .obj-h-e, .obj-h-w { cursor: ew-resize; }
.obj-rot { position: absolute; width: 14px; height: 14px; margin: -34px 0 0 -7px; box-sizing: border-box; border-radius: 50%; background: var(--panel, #1d1d21); border: 2px solid var(--accent, #e7efff); cursor: grab; pointer-events: auto; touch-action: none; }
.obj-rot::before { content: ''; position: absolute; left: 50%; top: 100%; width: 0; height: 15px; border-left: 1.5px solid var(--accent, #e7efff); }
.obj-ghost { position: absolute; transform-origin: 0 0; opacity: .88; outline: 1px solid var(--accent, #e7efff); pointer-events: none; }
.obj-nudge { position: absolute; box-sizing: border-box; border: 2px dashed var(--accent, #e7efff); pointer-events: none; }
@media (pointer: coarse) { .obj-h { width: 20px; height: 20px; margin: -10px 0 0 -10px; } .obj-rot { width: 22px; height: 22px; margin: -44px 0 0 -11px; } }
#btnObjects.on { background: var(--accent-soft, rgba(231, 239, 255, .16)); color: var(--fg); box-shadow: inset 0 0 0 1px var(--accent-line, #e7efff); }
.selbar-btn.is-danger { color: var(--danger, #ff5a6e); }
.obj-pop { flex-direction: column; gap: 2px; min-width: 170px; }
.obj-pop .selbar-btn { justify-content: flex-start; }

/* PDF layers (optional content groups) in the Layers section */
.ocg-sec { margin-top: 12px; }
.ocg-list { list-style: none; margin: 4px 0 6px; padding: 0; display: grid; gap: 2px; }
.ocg { display: flex; align-items: center; gap: 4px; min-height: 30px; padding: 0 2px; border-radius: 6px; }
.ocg:hover { background: var(--hover); }
.ocg-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--fg); }
.ocg.is-off .ocg-name { color: var(--dim); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--fg) 40%, transparent); }
.ocg-file { margin: 8px 0 2px; font-size: 11px; font-weight: 600; letter-spacing: .02em; color: var(--dim); }
