:root{--font-family-sans: "Inter", "Helvetica Neue", "Helvetica", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--primary-color: #007bff;--primary-hover-color: #0056b3;--secondary-color: #6c757d;--secondary-hover-color: #5a6268;--danger-color: #dc3545;--danger-hover-color: #c82333;--bg-color: #f8f9fa;--surface-color: #ffffff;--border-color: #dee2e6;--text-color: #212529;--text-color-light: #6c757d;--border-radius: 8px;--box-shadow: 0 4px 12px rgba(0, 0, 0, .08);--sidebar-width: 220px;--sidebar-collapsed-width: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background-color:var(--bg-color);color:var(--text-color);overflow:hidden}#app{display:grid;grid-template-columns:var(--sidebar-width) 1fr 320px;height:100vh;gap:1rem;padding:1rem;transition:grid-template-columns .3s ease-in-out}#app.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-width) 1fr 320px}.sidebar,.main-content-wrapper,.toolbar{background-color:var(--surface-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);height:calc(100vh - 2rem);display:flex;flex-direction:column}.sidebar{padding:1rem;transition:padding .3s ease-in-out}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-shrink:0;transition:justify-content .3s ease-in-out}#app.sidebar-collapsed .sidebar-header{justify-content:center}.sidebar-header h2{font-size:1.25rem;white-space:nowrap;transition:opacity .2s,width .2s;width:auto;opacity:1}#app.sidebar-collapsed .sidebar-header h2{opacity:0;width:0;pointer-events:none}.thumbnail-container{overflow-y:auto;flex-grow:1;transition:opacity .2s ease-in-out}#app.sidebar-collapsed .thumbnail-container{opacity:0;pointer-events:none}.thumbnail-container .empty-state{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-color-light)}.thumbnail-item{margin-bottom:1rem;cursor:pointer;border:2px solid transparent;border-radius:4px;transition:border-color .2s ease;padding:4px;max-width:150px;margin-left:auto;margin-right:auto}.thumbnail-item canvas{width:100%;display:block;border-radius:2px}.thumbnail-item.active{border-color:var(--primary-color)}.thumbnail-item p{text-align:center;margin-top:.5rem;font-size:.875rem}.sidebar-toggle-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-color-light);border-radius:var(--border-radius);transition:color .2s,background-color .2s,transform .3s ease-in-out}.sidebar-toggle-btn:hover{background-color:var(--bg-color);color:var(--text-color)}#app.sidebar-collapsed .sidebar-toggle-btn{transform:rotate(180deg)}.main-content-wrapper{padding:0;position:relative;overflow:hidden}.main-content{overflow:auto;flex-grow:1;display:flex;padding:2rem;background-color:var(--bg-color);position:relative;height:100%}.drop-zone{display:none;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border:3px dashed var(--border-color);border-radius:var(--border-radius);transition:all .2s}#app.no-pdf-loaded .main-content{padding:0}#app.no-pdf-loaded .drop-zone{display:flex}.main-content.dragover .drop-zone{display:flex;position:absolute;top:0;left:0;background-color:#007bff1a;border-color:var(--primary-color);z-index:10}.drop-zone-prompt{text-align:center;color:var(--text-color-light)}.drop-zone-prompt h2{color:var(--text-color);margin:1rem 0}.canvas-wrapper{margin:auto}.canvas-wrapper .canvas-container{box-shadow:0 4px 15px #0003}.main-content-footer{flex-shrink:0;padding:.75rem 1.5rem;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;font-size:.875rem}.zoom-controls,.page-navigator{display:flex;align-items:center;gap:.75rem}#page-indicator{font-weight:700;min-width:80px}.page-selector{padding:4px 8px;border-radius:4px;border:1px solid var(--border-color);background-color:var(--surface-color)}#zoom-slider{flex-grow:1;max-width:200px}#zoom-value{font-weight:700;min-width:120px;text-align:right}.toolbar{padding:1.5rem;overflow-y:auto}.toolbar-header{text-align:center;margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.toolbar-header h1{font-size:2rem}.tool-section{margin-bottom:.5rem}.tool-section h3{font-size:1rem;margin-bottom:1rem;color:var(--text-color-light);text-transform:uppercase;letter-spacing:1px}.file-inputs,.button-group{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.button-group{margin-bottom:.5rem}.toolbar-footer{margin-top:1rem;text-align:center;font-size:.875rem;color:var(--text-color-light);padding-top:1rem;border-top:1px solid var(--border-color);flex-shrink:0}.toolbar-footer a{color:var(--primary-color);text-decoration:none}.seal-preview-container{width:100%;height:150px;border:1px dashed var(--border-color);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;background-color:#f8f9fa;position:relative;overflow:hidden}.seal-preview-image{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s ease-in-out}.seal-preview-placeholder{color:var(--text-color-light)}.hidden{display:none}.rotation-controls{display:flex;align-items:center;gap:.5rem}.rotation-controls label{font-size:.875rem;color:var(--text-color-light)}.rotation-controls input[type=range]{flex-grow:1}.rotation-input-box{width:60px;padding:4px 8px;border:1px solid var(--border-color);border-radius:4px;text-align:center}.btn{display:inline-block;font-weight:600;color:var(--surface-color);text-align:center;cursor:pointer;background-color:transparent;border:1px solid transparent;padding:.75rem 1.25rem;font-size:1rem;border-radius:var(--border-radius);transition:all .15s ease-in-out;width:100%}.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color)}.btn-primary:hover{background-color:var(--primary-hover-color);border-color:var(--primary-hover-color)}.btn-secondary{background-color:var(--secondary-color);border-color:var(--secondary-color)}.btn-secondary:hover{background-color:var(--secondary-hover-color);border-color:var(--secondary-hover-color)}.btn-danger{background-color:var(--danger-color);border-color:var(--danger-color)}.btn-danger:hover{background-color:var(--danger-hover-color);border-color:var(--danger-hover-color)}.btn-action{background-color:var(--surface-color);color:var(--primary-color);border:1px solid var(--primary-color)}.btn-action:hover{background-color:var(--primary-color);color:var(--surface-color)}.btn-export{font-size:1.125rem;padding:1rem}
