.loft-canvas-tool-panel{display:flex;flex-direction:column;gap:14px}.loft-canvas-tool-panel__tools{display:flex;gap:4px}.loft-canvas-tool-panel__tool-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md);background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s,background .2s,border-color .2s;font-family:var(--font-ui);font-size:.85rem;font-weight:600}.loft-canvas-tool-panel__tool-btn:hover{color:var(--text-primary);background:var(--color-overlay-faint);border-color:var(--color-overlay-medium)}.loft-canvas-tool-panel__tool-btn--active{color:var(--accent-cyan);background:var(--color-cyan-bg-faint);border-color:var(--glow-cyan)}.loft-canvas-tool-panel__config{display:flex;flex-direction:column;gap:10px}.loft-canvas-tool-panel__shared{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.loft-canvas-tool-panel__actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--border-subtle);padding-top:14px;margin-top:4px}@container tool (max-width: 640px){.loft-canvas-tool-panel__tools{flex-wrap:wrap}}.loft-sign-pdf{width:100%;container-type:inline-size;container-name:tool;display:flex;flex-direction:column;gap:16px}.loft-sign-pdf__draw-area{position:relative;border:1px dashed rgba(255,255,255,.12);border-radius:var(--radius-md);background:#fff;overflow:hidden}.loft-sign-pdf__draw-canvas{display:block;width:100%;height:180px;cursor:crosshair;touch-action:none;background:#fff}.loft-sign-pdf__sig-tool-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;font-weight:600;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:color var(--duration-base),background var(--duration-base),border-color var(--duration-base)}.loft-sign-pdf__sig-tool-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-glow)}.loft-sign-pdf__sig-tool-btn:disabled{opacity:.4;cursor:not-allowed}.loft-sign-pdf__sig-tool-btn>i{font-size:.95rem}.loft-sign-pdf__type-area{display:flex;flex-direction:column;gap:10px}.loft-sign-pdf__type-input{background:#0003;border:1px solid var(--color-overlay-medium);border-radius:var(--radius-lg);padding:12px 16px;color:var(--text-primary);font-size:1.4rem;font-family:Brush Script MT,Segoe Script,Dancing Script,cursive;transition:border-color var(--duration-base)}.loft-sign-pdf__type-input:focus{outline:none;border-color:var(--border-glow)}.loft-sign-pdf__type-preview{display:flex;align-items:center;justify-content:center;min-height:80px;border:1px solid var(--color-overlay-soft);border-radius:var(--radius-md);background:#ffffff05;padding:16px}.loft-sign-pdf__type-preview canvas{max-width:100%;max-height:80px}.loft-sign-pdf__upload-area{display:flex;flex-direction:column;align-items:center;gap:10px}.loft-sign-pdf__upload-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-md);background:var(--color-overlay-faint);border:1px solid var(--color-overlay-medium);color:var(--text-secondary);font-size:.85rem;font-family:var(--font-ui);cursor:pointer;transition:all var(--duration-base)}.loft-sign-pdf__upload-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.loft-sign-pdf__upload-preview{display:flex;align-items:center;justify-content:center;min-height:80px}.loft-sign-pdf__upload-preview img{max-width:280px;max-height:80px;object-fit:contain}.loft-sign-pdf__font-row{display:flex;gap:6px;flex-wrap:wrap}.loft-sign-pdf__font-btn{padding:6px 12px;border-radius:var(--radius-sm);background:var(--color-overlay-faint);border:1px solid var(--color-overlay-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-base);font-size:.85rem}.loft-sign-pdf__font-btn:hover{border-color:var(--color-overlay-strong);color:var(--text-primary)}.loft-sign-pdf__font-btn--active{color:var(--accent-cyan);border-color:var(--glow-cyan);background:var(--color-cyan-bg-faint)}.loft-sign-pdf__viewer{display:flex;justify-content:center;overflow:auto;max-height:70vh;border:1px solid var(--color-overlay-soft);border-radius:var(--radius-xl);background:#0003;padding:16px}.loft-sign-pdf__canvas-wrap{position:relative;display:inline-block;line-height:0}.loft-sign-pdf__pdf-canvas{display:block;max-width:min(100%,1100px);height:auto;border-radius:4px;box-shadow:0 2px 16px #0006}.loft-sign-pdf__pdf-canvas--clickable{cursor:crosshair}.loft-sign-pdf__hero-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-bottom:12px;background:var(--bg-elevated);border:1px solid var(--border-glow);border-radius:var(--radius-lg);color:var(--text-primary);font-size:.9rem;font-weight:500}.loft-sign-pdf__hero-banner>i{color:var(--accent-cyan);font-size:1.2rem}.loft-sign-pdf__modal-backdrop{position:fixed;inset:0;background:var(--color-surface-overlay);backdrop-filter:blur(4px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px}.loft-sign-pdf__modal{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-glow);border-radius:var(--radius-xl);padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 48px var(--color-surface-overlay)}.loft-sign-pdf__modal-head{display:flex;align-items:center;justify-content:space-between}.loft-sign-pdf__modal-head h3{margin:0;font-size:1.05rem;font-weight:700;color:var(--text-primary)}.loft-sign-pdf__modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);font-size:1.2rem;transition:color var(--duration-base),background var(--duration-base)}.loft-sign-pdf__modal-close:hover{color:var(--text-primary);background:var(--bg-card-hover)}.loft-sign-pdf__pen-row{display:flex;align-items:center;gap:8px;flex:1 1 200px}.loft-sign-pdf__pen-row .loft-sign-pdf__range{flex:1}.loft-sign-pdf__overlay-canvas{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.loft-sign-pdf__placed-sig{position:absolute;cursor:move;border:2px dashed rgba(6,182,212,.4);border-radius:4px;background:#06b6d40a;display:flex;align-items:center;justify-content:center;touch-action:none;transition:border-color var(--duration-base)}.loft-sign-pdf__placed-sig:hover{border-color:#06b6d4b3}.loft-sign-pdf__placed-sig img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.loft-sign-pdf__remove-sig{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;background:var(--color-error);border:none;color:var(--text-primary);font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-quick);z-index:5}.loft-sign-pdf__placed-sig:hover .loft-sign-pdf__remove-sig{opacity:1}.loft-sign-pdf__resize-handle{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;background:var(--accent-cyan);border:2px solid rgba(0,0,0,.3);border-radius:3px;cursor:nwse-resize;opacity:0;transition:opacity var(--duration-quick);z-index:5}.loft-sign-pdf__placed-sig:hover .loft-sign-pdf__resize-handle{opacity:1}.loft-sign-pdf__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.loft-sign-pdf__page-nav{display:flex;align-items:center;gap:8px}.loft-sign-pdf__nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-overlay-faint);border:1px solid var(--color-overlay-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-base);font-family:var(--font-ui)}.loft-sign-pdf__nav-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-hover)}.loft-sign-pdf__nav-btn:disabled{opacity:.3;cursor:not-allowed}.loft-sign-pdf__page-label{font-size:.85rem;font-family:var(--font-mono);color:var(--text-secondary);min-width:100px;text-align:center}.loft-sign-pdf__actions{display:flex;gap:8px}.loft-sign-pdf__group{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.loft-sign-pdf__label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-family:var(--font-ui)}.loft-sign-pdf__range{width:100%;accent-color:var(--accent-violet);cursor:pointer}.loft-sign-pdf__sidebar-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:var(--radius-md);background:var(--color-overlay-faint);border:1px solid var(--color-overlay-medium);color:var(--text-secondary);font-size:.85rem;font-family:var(--font-ui);cursor:pointer;transition:all var(--duration-base)}.loft-sign-pdf__sidebar-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.loft-sign-pdf__sidebar-btn:disabled{opacity:.3;cursor:not-allowed}.loft-sign-pdf__color-row{display:flex;align-items:center;gap:10px}.loft-sign-pdf__color-input{width:40px;height:36px;padding:2px;border:1px solid var(--color-overlay-medium);border-radius:var(--radius-sm);background:var(--color-overlay-faint);cursor:pointer}.loft-sign-pdf__color-hex{font-size:.85rem;font-family:var(--font-mono);color:var(--text-secondary)}.loft-sign-pdf__complete{display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 0}.loft-sign-pdf__result{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:480px}.loft-sign-pdf__file-info{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--color-overlay-soft);border-radius:var(--radius-xl);background:#ffffff08;width:100%}.loft-sign-pdf__file-icon{font-size:2rem;color:var(--accent-violet)}.loft-sign-pdf__filename{font-size:.95rem;font-weight:600;color:var(--text-primary);font-family:var(--font-ui);word-break:break-all}.loft-sign-pdf__meta{font-size:.8rem;color:var(--text-muted);font-family:var(--font-mono);display:flex;gap:8px}.loft-sign-pdf__result-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.loft-sign-pdf__error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;text-align:center}.loft-sign-pdf__error p{color:var(--color-error);font-size:.9rem}.loft-sign-pdf__error button{color:var(--accent-cyan);background:none;border:none;cursor:pointer;font-size:.9rem;font-family:var(--font-ui)}.loft-sign-pdf__hint{font-size:.8rem;color:var(--text-muted);text-align:center;font-family:var(--font-ui)}@container tool (max-width: 640px){.loft-sign-pdf__footer{flex-direction:column;align-items:stretch}.loft-sign-pdf__page-nav,.loft-sign-pdf__actions{justify-content:center}.loft-sign-pdf__viewer{max-height:50vh;padding:8px}.loft-sign-pdf__draw-canvas{height:120px}}
